* assert.xml (_assert_)[@neg-as@, @neg-yields@]: Rename from `@neg_as@' and
`@neg_yields' respectively.
This renames these params to be consistent with modern standards.
We want to do this before they're actually in use.
This won't be a problem in practice if nothing imports the
package, so existing systems won't be affected.
* datetime.xml: New assertion for timestamp_current.
* test/core/suite.xml: Import new fold test package.
* test/core/vector/fold.xml: New test package.
* vector/fold.xml: New package. Adds `_unfold-vector-grouped_'.
This would be better handled by better template arithmetic features, but
that's for another time.
* tplgen.xml (_for-each-n_): Add `current_n_dec' for caller body, which
decrements `current_n` by 1 (for 0-indexed values).
This makes it more unlikely to actually occur in a table lookup;
the previous value worried me.
* vector/filter.xml (TABLE_WHEN_MASK_VALUE): Decrease value.
These need to be re-thought, as they are now just confusing. For now,
things should just use the _assert_ primitive.
* assert.xml (_assert-nonzero_, _fail-on-empty_): Remove templates.
Keep things consistent. A deprecation warning will be displayed for
`_fail-on-empty_'.
* assert.xml (_assert-nonzero_): Rename from `_fail-on-empty'.
(_fail-on-empty_): Alias to `_assert-nonzero'. Display deprecation
warning.
This completely breaks BC by completely reversing existing behavior.
I'm not sure what I was thinking to begin with.
Assertions are supposed to state an _expected_ condition and fail if they
yield _false_; this is the opposite of what `_assert_' was doing before this
change!
To keep things simple, the template now requires a body and the extra
`@when@' and `@class@' params have been removed (but are still available on
`_fail-on-empty_').
* assert.xml (_assert_): Negate behavior.
[@when@, @class@]: Remove params.
This technically worked because the compiler produced correct JS code, but
it shouldn't have (there's just no validation here).
Recent changes to the summary page caused this to blow up when building the
suite.
Products of vectors and matrices respectively. It's surprising that this
was unneeded until now based on the requirements of the projects we have
done thusfar---dot products and other features have been sufficient.
* vector/arithmetic.xml (_vproduct_, _mproduct_): New templates.
(_vproduct, _mproduct): New functions.
This is much more general-purpose and is necessary when operating on more
than one list.
* vector/list.xml: Add numeric/common import, exported.
(_cons-until-empty_): Add @index@, incremented at each recursion.
Otherwise, they're not included in package eligibility classes.
@external will be removed at some point in the future anyway; it's no
longer needed.
* assert.xml (_assert_): Remove @external.
Information about the UI (generated for use with Liza) isn't public yet, but
it will be in the future; this provides some integration with it.
* test/core/sute.xml: Add ui test case.
* test/core/ui.xml: Added
* ui.xml: Added
* test/spec.xml (_given_): Honor new `@name' parameter instead of generating
a value.
(_it_): Modify docblock to indicate that arbitrary children are allowed
for definitions.
`join` was removed due to fundamental incompatibilities with how the new
compiler works. Instead, symbols are exposed via the template system and
are used to perform the equivalent of a join.
This uses the GNU Octave or MATLAB-style matrix definitions for tables,
which produces a single node instead of a node per field and row, which
results in a significantly smaller tree and drastically improves processing
time.
This uses the BDD specification package `test/spec`.
[LoVullo employees: this was extracted from the same point as the first
commit, and includes some minor cleanup and moving around.]
Some notes on this: The "Calc DSL" is the name of the DSL before it
became "TAME". This takes the entire core library and squashes its 91
commits into a single one; the reason for this is because those
commits often contain LoVullo-specific details that are either
irrelevant or should not be included.
This library has limited value to the public at the time of this
commit, since TAME has not yet been released (it requires some
additional cleanup and filtering before then). It is also in need of
heavy refactoring and reorganization, since it has accumulated a lot
of cruft, especially since the project in which the Calc DSL was
introduced was rushed (to put it lightly). Forgive the mess.
[LoVullo employees: the commit was extracted from dsl.git 4a3aea9;
full history can be found there. This commit contains some additional
minor tweaks in addition to squashing. It filters on the :/core/
directory.]