Break up big files

also begin execution model that supports 1st class fcns
tons more slicing & exec work

Gonna need some kind of vector lifetime management soon.
Get array slicing more generic.
Begin evaluating slice expressions.
tons of temp work

...sorting lifetime management, notions of big tmp that must be
available, etc...
Plow thru the function-op-vs-application split

Now function *application* is well defined & split from parsing function
ops (still only built-in functions, no user functions).   Back to sane
parsing of all expressions (but nothing executes)
1st class function scopes

Also clean up ASCII grammar
Allow leading dot in name
Type-inference is probably still too weak
assignment makes new vars

can assign a primitive fcn to a var
rename Expr as Val
Add a "statements" to the grammar
Bug fixes in error printing
Deep function type checking

Can parse 'Reduce' which takes a function argument.
Auto-insert 1st-class map calls to expand arrays

map will apply a function over an array.
Auto-insert in contexts with arrays and a simple scalar function
assignment type check & shadowing rules

Inner-scope assigns cannot change types (probably a mistake).
Outer-scope assigns actually define a new local var & shadown.
Unknown var uses give better error msgs.
ncol/nrow require an array
Top-level exec takes a statement list.
Revamp grammer rules to allow cascading function applications
Hindley-Milner typing

Yup.  HM.  Missing some varargs handling.
Otherwise appears to be fully "functional" - bad pun intended.
More things removed for having HM typing

Simpler yet again
Higher order functions are fun!

...plus varargs.  Bug fixes for fcns passed fcns returning fcns.
Sort IP addresses so that those for the bond driver are considered first.
Log possible ip addresses.
Merge branch 'master' into tomk-bond
Strong typing of polymorphic + & bin ops

Allows mixing arrays & scalars; type system notes where broadcast ops
are needed.
Probably too aggressive in the type system, but seems to keep strong
typing
almost sane when mixing scalars & arrays.
Cleanup ary/dbl type handling

Now that I understand it a little better...
Add if/then/else
Drop some dead attempts at ary/dbl handling
trinary operator
Pascal-style display

Start down exec-path again.  Exec'ing simple stuff.
hex slicing work

Slice-of-1 is typed as a scalar.
Add constants T,F to the global state
More error checking on slice types.
First real slice works

blah.hex[5,-4] gives the expected (one row, all cols minus col #4)