Commit Graph

1487 Commits (b8a7a78f43b9ad91044663b4053ab2c7d08e8195)

Author SHA1 Message Date
Mike Gerwitz 7d426c7fc3 test/core/suite: Add yield
This is required since keep support was removed in TAME some time ago.

* test/core/suite.xml: Add yield.
2018-09-11 09:30:50 -04:00
Mike Gerwitz 08e5e4a127 Add states package
* states.xml: New file.
2018-09-11 09:30:50 -04:00
Mike Gerwitz 7e1b0c6d0d Add _repeat-value_ template
* vector/common.xml (_repeat-value_): Add template.
2018-09-11 09:30:50 -04:00
Mike Gerwitz 2b72a21b84 Remove @external from assertion classes
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.
2018-09-11 09:30:50 -04:00
Mike Gerwitz 99d52f9559 Add timestamp parameters
* base.xml: Modify documentation to discourage DATE_TIME.
* datetime.xml (timestamp_*): Add params.
2018-09-11 09:30:50 -04:00
Mike Gerwitz 18fe43b38f Add up/down _premium_/@round@ support
* insurance.xml (_premium_): Added up/down support for @round@
* test/core/insurance.xml: Associated test cases
2018-09-11 09:30:50 -04:00
Mike Gerwitz 44be881050 Initial insurance package
This will evolve as needed and is currently very primitive.
2018-09-11 09:30:50 -04:00
Mike Gerwitz dbc5a74948 Add dummy package
* dummy.xml: Added
2018-09-11 09:30:50 -04:00
Mike Gerwitz 9e023c7238 UI integration package
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
2018-09-11 09:30:50 -04:00
Mike Gerwitz 35dd49301e .gitignore *.html
.gitignore: Ignore *.html files
2018-09-11 09:30:50 -04:00
Mike Gerwitz 88ebfba9f3 Allow for arbitrary name for BDD given clause
* 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.
2018-09-11 09:30:50 -04:00
Arthur Domino 49663c5779 Added missing export in table package for numeric/common 2018-09-11 09:30:50 -04:00
Mike Gerwitz 40fd487249 Implement _rtop_/@negate@ 2018-09-11 09:30:50 -04:00
Mike Gerwitz af0862f1f1 Percent package formatting 2018-09-11 09:30:50 -04:00
Mike Gerwitz 3a9ef76bea Extract percent templates from convert.xml 2018-09-11 09:30:49 -04:00
Mike Gerwitz d2d595a3d7 Add _rtop_ template 2018-09-11 09:30:49 -04:00
Mike Gerwitz ff59f1502f Update spec to work with new system
`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.
2018-09-11 09:30:49 -04:00
Mike Gerwitz 9805eaf755 Support table data definition via _table-rows_/@data@
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.
2018-09-11 09:30:49 -04:00
Mike Gerwitz 0989895ea6 _map-else_ error when _map_/@default@ already provided 2018-09-11 09:30:49 -04:00
Mike Gerwitz 08d6c812d1 Map set package documentation 2018-09-11 09:30:49 -04:00
Mike Gerwitz 8758274685 Add missing _map-else_/@desc@ 2018-09-11 09:30:49 -04:00
Mike Gerwitz 9ce6324a23 Remove now unneeded const type from map templates 2018-09-11 09:30:49 -04:00
Mike Gerwitz 286e7242ab Add _map{,-else}_/@to-index@ 2018-09-11 09:30:49 -04:00
Mike Gerwitz 6a9b9bf2e5 _classify-scalar_ template introduced 2018-09-11 09:30:49 -04:00
Mike Gerwitz a696f63711 Introduce _ptor{-each}_/@negate@ 2018-09-11 09:30:49 -04:00
Mike Gerwitz 01503bbd0f Corrected `never' definition
Yes, I screwed up "never".
2018-09-11 09:30:49 -04:00
Mike Gerwitz 3c2eedf95f BC break warning added to README.md 2018-09-11 09:30:49 -04:00
Mike Gerwitz 415ab05610 Extracted vector min/max templates/functions from vector/arithmetic
BC incompatible.
2018-09-11 09:30:49 -04:00
Mike Gerwitz b256744c32 NEGATE moved into `numeric/common' with _negate_
Together with documentation.
2018-09-11 09:30:49 -04:00
Mike Gerwitz 0094a3b94a Standard _assert_ added with package documentation 2018-09-11 09:30:49 -04:00
Mike Gerwitz cab144394d _fail-on-empty_ extracted into `assert' package 2018-09-11 09:30:48 -04:00
Mike Gerwitz 45200baedd `base' package documentation 2018-09-11 09:30:48 -04:00
Mike Gerwitz 06f85aeca2 xmle and js extensions added to ignore
Both output from TAME linking.
2018-09-11 09:30:48 -04:00
Mike Gerwitz 02a4e256ac Handful of test cases
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.]
2018-09-11 09:30:48 -04:00
Mike Gerwitz fbd1abb49b README with description of TAME and Core features 2018-09-11 09:30:48 -04:00
Mike Gerwitz a3b6b45df9 LGPL license; copyright notice added to head of each file 2018-09-11 09:30:48 -04:00
Mike Gerwitz 2bcf7f611b .gitignore added for build-generated files 2018-09-11 09:30:48 -04:00
Mike Gerwitz fb1416837b Package namespace/imports/decl cleanup 2018-09-11 09:30:48 -04:00
Mike Gerwitz 4ddda94a4c TAME core library extracted from Calc DSL repository
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.]
2018-09-11 09:30:48 -04:00
Mike Gerwitz f169c91927 expand: Correct priority of constant suffix templates
* src/current/include/preproc/expand.xsl (preproc:expand)[c:const]: Adjust
  priorities.
2018-09-10 15:37:17 -04:00
Mike Gerwitz 91316d1e8f js compiler: Escape exception string
* src/current/compiler/js.xsl (compile)[lv:classify]: Escape output for
  Error.
2018-09-07 14:25:24 -04:00
Mike Gerwitz d1e2b435a0 linker: >50% performance improvements in both time and space
This has a significant performance impact: processing time is cut in about
half and memory usage is reduced by more than 50%.  For example, a package
that previously took 30s and 2.1GiB of memory to link now takes 14s and less
than 900MiB of memory.
2018-07-16 08:44:39 -04:00
Mike Gerwitz ea7e0e1565 preproc: Remove @override from eseq:is-expandable function
This was throwing a warning in non-ancient versions of Saxon.  It does not
need to be there, nor should it be, nor do I know why it was put there.

* src/current/include/preproc/template.xsl (eseq:is-expandable): Remove
  @override.
2018-07-13 23:49:18 -04:00
Mike Gerwitz d624ee6d7e linker: Use sequences for stacks (instead of trees)
This has a significant performance impact: processing time is cut in about
half and memory usage is reduced by more than 50%.  For example, a
package that previously took 30s and 2.1GiB of memory to link now takes
14s and less than 900MiB of memory.

I had tried to perform this optimization a couple years ago but was
thwarted (I think) by the classifier markers.  The previous commit did away
with those.  I'm encouraged by the gains from the low-hanging fruit.

* src/current/compiler/linker.xsl
  (l:process-empty, l:stack-empty): Convert from l:pstack and
    l:sym-stack (respectively) to empty preproc:sym sequences.
  (l:depgen-process-sym)[preproc:sym]: Append to sequence rather than
    outputting new l:sym-stack tree.
  Update all annotations and uses accordingly.
2018-07-13 23:40:48 -04:00
Mike Gerwitz f2db9f1268 linker: Remove classifier vs. calculation distinction
This is something that I thought would be useful back in the day when TAME
was in its infancy, but it is not important.  Rather than having the linker
spend time trying to figure out what symbols belong in the classifier---and
rather than keeping that complexity around---this simplifies things by
making the existing `classify' method simply perform _all_ calculations, and
then yield only the classification portion of the result.

This isn't a problem in practice because, if we only desire the use of a
classifier, then we create a "supplier" that only uses classifications and
has no other dependencies.  The end result is, as far as we care, the same.

* src/current/compiler/js.xsl (compiler:entry-rater)[lv:package]: Initialize
    `classes' rather than invoking classifier
  (compiler:entry-classifier)[lv:package]: Invoke all calculations and
    return only classes to provide equivalent behavior.
  (compiler:exit-classifier): Post-process classifications from calculation
    results, iterating through classmap.
  (compiler:classifier-yields-map)[lv:package]: Output all classifications
    that are not generated.  This differs slightly from the original
    implementation in that it includes all non-generated classes rather than
    just classes that have a non-generated `@yields'; this distinction is
    important since `compiler:exit-classifier' is now using it to produce a
    classification result set that doesn't contain all the generated
    stuff (since it didn't before, and shouldn't now).
* src/current/compiler/linker.xsl: Update copyright year.
  (l:resolv-deps)[preproc:sym[@l:mark-inclass]]: Remove template.
  (l:resolv-deps)[preproc:sym...@l:mark-inclass...]: Remove template.
  (l:depgen-sym): Set type of result to `element(preproc:sym)', since
    `l:mark-inclass' is no longer produced.
    [inclass, needs-class-mark]: Remove variables and all instances where
      they are used.
  (l:dep-aug)[inclass]: Remove param.  Stop producing `@inclass' attribute.
  (l:link-classifier)[lv:package]: Do not process any dependencies.  This
    can be removed entirely in the future since it now only produces static
    code, which we can perhaps combine with a different block.
  (l:link-rater)[lv:package]: Remove mention of `inclass' for dependencies;
    all dependencies will now be compiled into this block.
2018-07-13 13:08:52 -04:00
Mike Gerwitz 844c6512c9 build-aux/gen-c1make: New build script
This solves the dependency-related problems with rebuilding c1map files.

* build-aux/gen-c1make: New file.
* build-aux/Makefile.2.in (suppliers.mk): Use it.
2018-07-05 16:07:42 -04:00
Mike Gerwitz 0453d78329 build-aux: Liberate remaining build scripts
These were forgotten during the initial liberation.

* build-aux/Makefile.2.in: New file.
* build-aux/Makefile.am: New file.
* build-aux/m4/calcdsl.m4: New file.
* build-aux/progtest-runner: New file.
* build-aux/suppmk-gen: New file.
2018-07-05 16:04:33 -04:00
Gregory Torbenson 9889838c5e Merge branch 'jira-3251' into 'master'
[DEV-3251] add escape-param attribute to tame

See merge request floss/tame!19
2018-07-02 15:04:29 -04:00
Greg Torbenson 84f9321a4d [DEV-3251] factor escape check out to a function, and also fix a bug. 2018-07-02 10:27:53 -04:00
Greg Torbenson 5cbffa9c10 remove debug code 2018-06-29 17:15:00 -04:00