diff --git a/go/reg_test/run b/go/reg_test/run index a8ac7c174..c1c9e0ad7 100755 --- a/go/reg_test/run +++ b/go/reg_test/run @@ -1,7 +1,7 @@ #!/bin/sh # ================================================================ -set -e +#####set -e # For building with autoconf: # * in-directory build: @@ -138,7 +138,7 @@ mlr_expect_fail() { echo "Exit status was $status; expected 1." echo "Exit status was $status; expected 1." >> $outfile fi - set -e + #####set -e echo >> $outfile test $status -eq 1 # since set -e diff --git a/go/src/miller/types/mlrval_functions_base.go b/go/src/miller/types/mlrval_functions_base.go index 1babe5f8e..dcce6ec72 100644 --- a/go/src/miller/types/mlrval_functions_base.go +++ b/go/src/miller/types/mlrval_functions_base.go @@ -142,3 +142,13 @@ func _i0__(ma, mb *Mlrval) Mlrval { func _f0__(ma, mb *Mlrval) Mlrval { return MlrvalFromFloat64(0.0) } + +// Return boolean true (binary) +func _true(ma, mb *Mlrval) Mlrval { + return MlrvalFromBool(true) +} + +// Return boolean false (binary) +func _fals(ma, mb *Mlrval) Mlrval { + return MlrvalFromBool(false) +} diff --git a/go/src/miller/types/mlrval_functions_booleans.go b/go/src/miller/types/mlrval_functions_booleans.go index 5bd9e491d..88b9c7c21 100644 --- a/go/src/miller/types/mlrval_functions_booleans.go +++ b/go/src/miller/types/mlrval_functions_booleans.go @@ -145,81 +145,81 @@ func le_b_ff(ma, mb *Mlrval) Mlrval { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - var eq_dispositions = [MT_DIM][MT_DIM]BinaryFunc{ - // ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP - /*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*VOID */ {_erro, _absn, eq_b_ss, eq_b_ss, eq_b_sx, eq_b_sx, _erro, _absn, _absn}, - /*STRING */ {_erro, _absn, eq_b_ss, eq_b_ss, eq_b_sx, eq_b_sx, _erro, _absn, _absn}, - /*INT */ {_erro, _absn, eq_b_xs, eq_b_xs, eq_b_ii, eq_b_if, _erro, _absn, _absn}, - /*FLOAT */ {_erro, _absn, eq_b_xs, eq_b_xs, eq_b_fi, eq_b_ff, _erro, _absn, _absn}, - /*BOOL */ {_erro, _erro, _absn, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP +/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro}, +/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +/*VOID */ {_erro, _absn, eq_b_ss, eq_b_ss, eq_b_sx, eq_b_sx, _fals, _fals, _fals}, +/*STRING */ {_erro, _absn, eq_b_ss, eq_b_ss, eq_b_sx, eq_b_sx, _fals, _fals, _fals}, +/*INT */ {_erro, _absn, eq_b_xs, eq_b_xs, eq_b_ii, eq_b_if, _fals, _fals, _fals}, +/*FLOAT */ {_erro, _absn, eq_b_xs, eq_b_xs, eq_b_fi, eq_b_ff, _fals, _fals, _fals}, +/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, +/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, +/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, } var ne_dispositions = [MT_DIM][MT_DIM]BinaryFunc{ - // ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP - /*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*VOID */ {_erro, _absn, ne_b_ss, ne_b_ss, ne_b_sx, ne_b_sx, _erro, _absn, _absn}, - /*STRING */ {_erro, _absn, ne_b_ss, ne_b_ss, ne_b_sx, ne_b_sx, _erro, _absn, _absn}, - /*INT */ {_erro, _absn, ne_b_xs, ne_b_xs, ne_b_ii, ne_b_if, _erro, _absn, _absn}, - /*FLOAT */ {_erro, _absn, ne_b_xs, ne_b_xs, ne_b_fi, ne_b_ff, _erro, _absn, _absn}, - /*BOOL */ {_erro, _erro, _absn, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP +/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro}, +/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +/*VOID */ {_erro, _absn, ne_b_ss, ne_b_ss, ne_b_sx, ne_b_sx, _true, _true, _true}, +/*STRING */ {_erro, _absn, ne_b_ss, ne_b_ss, ne_b_sx, ne_b_sx, _true, _true, _true}, +/*INT */ {_erro, _absn, ne_b_xs, ne_b_xs, ne_b_ii, ne_b_if, _true, _true, _true}, +/*FLOAT */ {_erro, _absn, ne_b_xs, ne_b_xs, ne_b_fi, ne_b_ff, _true, _true, _true}, +/*BOOL */ {_erro, _absn, _true, _true, _true, _true, _true, _true, _true}, +/*ARRAY */ {_erro, _absn, _true, _true, _true, _true, _true, _true, _true}, +/*MAP */ {_erro, _absn, _true, _true, _true, _true, _true, _true, _true}, } var gt_dispositions = [MT_DIM][MT_DIM]BinaryFunc{ - // ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP - /*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*VOID */ {_erro, _absn, gt_b_ss, gt_b_ss, gt_b_sx, gt_b_sx, _erro, _absn, _absn}, - /*STRING */ {_erro, _absn, gt_b_ss, gt_b_ss, gt_b_sx, gt_b_sx, _erro, _absn, _absn}, - /*INT */ {_erro, _absn, gt_b_xs, gt_b_xs, gt_b_ii, gt_b_if, _erro, _absn, _absn}, - /*FLOAT */ {_erro, _absn, gt_b_xs, gt_b_xs, gt_b_fi, gt_b_ff, _erro, _absn, _absn}, - /*BOOL */ {_erro, _erro, _absn, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP +/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro}, +/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +/*VOID */ {_erro, _absn, gt_b_ss, gt_b_ss, gt_b_sx, gt_b_sx, _fals, _fals, _fals}, +/*STRING */ {_erro, _absn, gt_b_ss, gt_b_ss, gt_b_sx, gt_b_sx, _fals, _fals, _fals}, +/*INT */ {_erro, _absn, gt_b_xs, gt_b_xs, gt_b_ii, gt_b_if, _fals, _fals, _fals}, +/*FLOAT */ {_erro, _absn, gt_b_xs, gt_b_xs, gt_b_fi, gt_b_ff, _fals, _fals, _fals}, +/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, +/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, +/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, } var ge_dispositions = [MT_DIM][MT_DIM]BinaryFunc{ - // ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP - /*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*VOID */ {_erro, _absn, ge_b_ss, ge_b_ss, ge_b_sx, ge_b_sx, _erro, _absn, _absn}, - /*STRING */ {_erro, _absn, ge_b_ss, ge_b_ss, ge_b_sx, ge_b_sx, _erro, _absn, _absn}, - /*INT */ {_erro, _absn, ge_b_xs, ge_b_xs, ge_b_ii, ge_b_if, _erro, _absn, _absn}, - /*FLOAT */ {_erro, _absn, ge_b_xs, ge_b_xs, ge_b_fi, ge_b_ff, _erro, _absn, _absn}, - /*BOOL */ {_erro, _erro, _absn, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP +/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro}, +/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +/*VOID */ {_erro, _absn, ge_b_ss, ge_b_ss, ge_b_sx, ge_b_sx, _fals, _fals, _fals}, +/*STRING */ {_erro, _absn, ge_b_ss, ge_b_ss, ge_b_sx, ge_b_sx, _fals, _fals, _fals}, +/*INT */ {_erro, _absn, ge_b_xs, ge_b_xs, ge_b_ii, ge_b_if, _fals, _fals, _fals}, +/*FLOAT */ {_erro, _absn, ge_b_xs, ge_b_xs, ge_b_fi, ge_b_ff, _fals, _fals, _fals}, +/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, +/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, +/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, } var lt_dispositions = [MT_DIM][MT_DIM]BinaryFunc{ - // ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP - /*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*VOID */ {_erro, _absn, lt_b_ss, lt_b_ss, lt_b_sx, lt_b_sx, _erro, _absn, _absn}, - /*STRING */ {_erro, _absn, lt_b_ss, lt_b_ss, lt_b_sx, lt_b_sx, _erro, _absn, _absn}, - /*INT */ {_erro, _absn, lt_b_xs, lt_b_xs, lt_b_ii, lt_b_if, _erro, _absn, _absn}, - /*FLOAT */ {_erro, _absn, lt_b_xs, lt_b_xs, lt_b_fi, lt_b_ff, _erro, _absn, _absn}, - /*BOOL */ {_erro, _erro, _absn, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP +/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro}, +/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +/*VOID */ {_erro, _absn, lt_b_ss, lt_b_ss, lt_b_sx, lt_b_sx, _fals, _fals, _fals}, +/*STRING */ {_erro, _absn, lt_b_ss, lt_b_ss, lt_b_sx, lt_b_sx, _fals, _fals, _fals}, +/*INT */ {_erro, _absn, lt_b_xs, lt_b_xs, lt_b_ii, lt_b_if, _fals, _fals, _fals}, +/*FLOAT */ {_erro, _absn, lt_b_xs, lt_b_xs, lt_b_fi, lt_b_ff, _fals, _fals, _fals}, +/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, +/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, +/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, } var le_dispositions = [MT_DIM][MT_DIM]BinaryFunc{ - // ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP - /*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*VOID */ {_erro, _absn, le_b_ss, le_b_ss, le_b_sx, le_b_sx, _erro, _absn, _absn}, - /*STRING */ {_erro, _absn, le_b_ss, le_b_ss, le_b_sx, le_b_sx, _erro, _absn, _absn}, - /*INT */ {_erro, _absn, le_b_xs, le_b_xs, le_b_ii, le_b_if, _erro, _absn, _absn}, - /*FLOAT */ {_erro, _absn, le_b_xs, le_b_xs, le_b_fi, le_b_ff, _erro, _absn, _absn}, - /*BOOL */ {_erro, _erro, _absn, _erro, _erro, _erro, _erro, _absn, _absn}, - /*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, - /*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP +/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro}, +/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn}, +/*VOID */ {_erro, _absn, le_b_ss, le_b_ss, le_b_sx, le_b_sx, _fals, _fals, _fals}, +/*STRING */ {_erro, _absn, le_b_ss, le_b_ss, le_b_sx, le_b_sx, _fals, _fals, _fals}, +/*INT */ {_erro, _absn, le_b_xs, le_b_xs, le_b_ii, le_b_if, _fals, _fals, _fals}, +/*FLOAT */ {_erro, _absn, le_b_xs, le_b_xs, le_b_fi, le_b_ff, _fals, _fals, _fals}, +/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, +/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, +/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals}, } func MlrvalEquals(ma, mb *Mlrval) Mlrval { diff --git a/go/todo.txt b/go/todo.txt index 24499c96d..6b4a1ffc6 100644 --- a/go/todo.txt +++ b/go/todo.txt @@ -9,9 +9,12 @@ TOP OF LIST: ! come up with some kind of blank-line trigger for miller and a condition for it ..... o i want this pattern over and over +! csvlite + * UDF nexts: ! check for multiple put -f; any/multiple put -e > non-flag copy from sort + * filter -x ! more functions ! function metadata, w/ sort-by, for online help ! double-check $-anything in begin/end @@ -41,6 +44,7 @@ TOP OF LIST: * some more verbs o easies first + o having-fields -x feature ... or something o join, stats1, stats2 * double-check rand-seeding diff --git a/go/u/try-cst b/go/u/try-cst index fef672cf2..562b39ebf 100755 --- a/go/u/try-cst +++ b/go/u/try-cst @@ -261,10 +261,10 @@ echo; run_mlr --from u/s.dkvp put -q '@sum += $x; @count += 1; print' echo; run_mlr --from u/s.dkvp put -q '@sum += $x; @count += 1; print @sum' echo; run_mlr --from u/s.dkvp put -q '@sum += $x; @count += 1; print @sum, @count' -echo; run_mlr --from s put -q 'print' -echo; run_mlr --from s put -q 'print $x' -echo; run_mlr --from s put -q 'print $x,$y' -echo; run_mlr --from s put -q 'print $x,$y,$i' +echo; run_mlr --from u/s.dkvp put -q 'print' +echo; run_mlr --from u/s.dkvp put -q 'print $x' +echo; run_mlr --from u/s.dkvp put -q 'print $x,$y' +echo; run_mlr --from u/s.dkvp put -q 'print $x,$y,$i' # ---------------------------------------------------------------- echo; run_mlr --from u/s.dkvp put -q '@sum += $x; dump' diff --git a/go/u/try-cst.out b/go/u/try-cst.out index ad46175d9..8bc9e1100 100644 --- a/go/u/try-cst.out +++ b/go/u/try-cst.out @@ -2503,13 +2503,7 @@ mlr --from u/s.dkvp put -q @sum += $x; @count += 1; print @sum, @count ---------------------------------------------------------------- -mlr --from s put -q print - - - - - - +mlr --from u/s.dkvp put -q print @@ -2517,45 +2511,27 @@ mlr --from s put -q print ---------------------------------------------------------------- -mlr --from s put -q print $x +mlr --from u/s.dkvp put -q print $x 0.3467901443380824 --0.7586799647899636 +0.7586799647899636 0.20460330576630303 --0.38139939387114097 -0.5732889198020006 -0.5271261600918548 -0.6117840605678454 --0.5985540091064224 -0.03144187646093577 -0.5026260055412137 +0.38139939387114097 ---------------------------------------------------------------- -mlr --from s put -q print $x,$y +mlr --from u/s.dkvp put -q print $x,$y 0.3467901443380824 0.7268028627434533 --0.7586799647899636 0.5221511083334797 +0.7586799647899636 0.5221511083334797 0.20460330576630303 0.33831852551664776 --0.38139939387114097 0.13418874328430463 -0.5732889198020006 0.8636244699032729 -0.5271261600918548 0.49322128674835697 -0.6117840605678454 0.1878849191181694 --0.5985540091064224 0.976181385699006 -0.03144187646093577 0.7495507603507059 -0.5026260055412137 0.9526183602969864 +0.38139939387114097 0.13418874328430463 ---------------------------------------------------------------- -mlr --from s put -q print $x,$y,$i +mlr --from u/s.dkvp put -q print $x,$y,$i 0.3467901443380824 0.7268028627434533 1 --0.7586799647899636 0.5221511083334797 2 +0.7586799647899636 0.5221511083334797 2 0.20460330576630303 0.33831852551664776 3 --0.38139939387114097 0.13418874328430463 4 -0.5732889198020006 0.8636244699032729 5 -0.5271261600918548 0.49322128674835697 6 -0.6117840605678454 0.1878849191181694 7 --0.5985540091064224 0.976181385699006 8 -0.03144187646093577 0.7495507603507059 9 -0.5026260055412137 0.9526183602969864 10 +0.38139939387114097 0.13418874328430463 4 ----------------------------------------------------------------