Commit Graph

985 Commits (e2c9944f1b86df2a9a6f8e4bfe350dcf154df1a9)

Author SHA1 Message Date
Mike Gerwitz 05736abe23 compiler/js (lv:classify): Extract @yields dest name into function
I will be changing how this work shortly.
2021-06-22 15:00:57 -04:00
Mike Gerwitz 6512ea245a Omit _CMATCH_ generation if no predicates, alias if one
I would like for _CMATCH_ to eventually go away entirely, but this is an
improvement in the meantime.
2021-06-22 15:00:57 -04:00
Mike Gerwitz 17db2d0df8 Use more concise var refs in generated code to reduce byte count 2021-06-22 15:00:57 -04:00
Mike Gerwitz 3c47858c73 Extract empty classify into own template
Simplify main template.
2021-06-22 15:00:57 -04:00
Mike Gerwitz ce0f51db2f compiler/js-calc: Make unknown calculation type a compile-time error
When the Summary Page was _first written_ (the first part of TAME), it was
compiled in the browser---development consisted of refreshing the page,
which was familiar to how we wrote PHP at the time.  No compile process.

In that situation, we couldn't have the XSLT stylesheet failing to
translate.  But of course those days are long since gone, and this must be a
compile-time error.

It shouldn't ever get to this point, granted.
2021-06-22 15:00:57 -04:00
Mike Gerwitz 9ed6d40386 compiler/js (lv:classify): Remove unused noclass
This existed back when the classifier was compiled separately from the
rate function; they are now one and the same.
2021-06-22 15:00:57 -04:00
Mike Gerwitz 894f7ffab8 compiler/js (lv:classify): Remove unused $ignores 2021-06-22 15:00:57 -04:00
Mike Gerwitz d0532fe75a Simplify predmatch and eliminate when no predicate 2021-06-22 15:00:57 -04:00
Mike Gerwitz 8d25d60c60 Significantly reduce parenthesis and whitespace in output
The intent here is simply to reduce byte count, as well as make the
generated code easier to read and find patterns in for future
optimizations.
2021-06-22 15:00:57 -04:00
Mike Gerwitz 3434efcdef Remove unnecesary ||0 defaults 2021-06-22 15:00:57 -04:00
Mike Gerwitz 1c07968375 Remove unused result intermediate value 2021-06-22 15:00:57 -04:00
Mike Gerwitz 80e3029fa0 Remove function wrapper from c:when 2021-06-22 15:00:57 -04:00
Mike Gerwitz 603e9fb342 Optimize single-true-match classes into aliases
Single-predicate classifications matching on TRUE can be optimized into
aliases.  These sometimes occur in hand-written code, but can also be
generated by templates.
2021-06-22 15:00:57 -04:00
Mike Gerwitz 3eca3cf8dc Modernization of some runtime JS functions
We still can't use arrow functions, since the output must be ES5-compatible.
2021-06-22 15:00:57 -04:00
Mike Gerwitz 525d138d33 Remove function wrapper from generic c:* 2021-06-22 15:00:57 -04:00
Mike Gerwitz 459a25e943 Replace toFixed to truncate rate blocks
toFixed required converting to a string and back, which had miserable
performance.  This avoids that cost.
2021-06-22 15:00:57 -04:00
Mike Gerwitz d27cedc70c Remove lv:rate function wrapper 2021-06-22 15:00:57 -04:00
Mike Gerwitz ef5a7c58d8 Remove function wrapper from class blocks
These are unneeded.
2021-06-22 15:00:57 -04:00
Mike Gerwitz 74f2849e8b Do not execute unnecessary code paths
Benchmarking showed virtually no benefit, surprisingly.  But this can be
used in conjunction with other optimizations in the future.
2021-06-22 15:00:57 -04:00
Mike Gerwitz 9c63337fc6 README.md: Mention Rust in upper paragraph alongside XSLT 2021-06-22 12:17:33 -04:00
Mike Gerwitz 8b5053d475 README.md: Mention TAMER 2021-06-22 12:15:50 -04:00
Mike Gerwitz 93fb1f1bdd tamer: Rust v1.{48=>53}.0 for rustdoc tool lints
A previous commit used a rustdoc tool lint, but that support wasn't added
until 1.52.0 (2021-05-06).

Note that this represents the minimum _required_ version to build TAMER; you
can use a later version.
2021-06-22 09:07:53 -04:00
Mike Gerwitz 716556c39f tamer: Rust 1.{42=>48}.0 for stable intra-doc links without nightly 2021-06-21 13:10:00 -04:00
Mike Gerwitz 96ea0302cc tamer: Cargo.lock: Dependency updates
This project has been on pause for over a year.
2021-06-21 12:46:38 -04:00
Mike Gerwitz 416676f1ab build-aux/progtest-runner: Deterministically concatenate files by name 2021-06-09 16:10:52 -04:00
Mike Gerwitz 645c4da541 RELEASES.md: Add _use-new-classification_system_ mention 2021-06-09 16:09:09 -04:00
Mike Gerwitz cdb2e876ab core/test/class: Begin classification system test cases
These are incomplete, but a start.
2021-06-09 13:33:11 -04:00
Mike Gerwitz 1e620e1e96 core/base (_use-new-classification-system): New template
This template prepares for the introduction of the new classification
system, which is a full rewrite that is both more performant and more
correct in its behavior.  Unfortunately, the corrections will cause problems
with old code that may be relying on certain cases, particularly where
undefined values are implicitly treated as zero.

Consequently, the legacy and new systems will exist side-by-side, able to be
toggled on as desired so people can verify that behavior is correct before
we switch it on by default.  This template allows switching on the system
for an entire package (if it's placed at the toplevel), or portions of a
package, though the latter should only be used in exceptional circumstances.

See the test cases in commits to follow for more information.
2021-06-09 13:32:46 -04:00
Mike Gerwitz d4dc1e651b core/base: Section _yield_ and _rate-each_ 2021-06-08 13:26:49 -04:00
Mike Gerwitz bf399c0370 core/aggregate: Remove package
This package is not used today.  See RELEASES.md for more information;  This
is a dangerous package that never should have existed.

This also fixes the test suite.
2021-06-08 12:00:45 -04:00
Mike Gerwitz 66e95fe9c4 src/current/summary: classify breakdown: Show lv:match/@on values
The classification system rewrite removed the debug value collection that
previously existed.  It didn't make a whole lot of sense anyway, given that
that compiler rearranges matches.

This falls back to showing the value of the @on, which should be good
enough, and is honestly better than what we had before.
2021-06-08 11:43:35 -04:00
Mike Gerwitz 702ba3f0c7 RELEASES.md: Sectioning tweak for recent release 2021-06-08 11:43:35 -04:00
Austin Schaffer f637b161b7 RELEASES.md: Update for v17.9.0 2021-05-27 13:22:00 -04:00
Mike Gerwitz e3a583624c design/tpl (Matches): Refine matrix visualization figure
This provides an element-level rather than row-level focus, which I feel is
more appropriate.

One could draw lines to connect each of the elements, but that'd likely be
too noisy and it'd be a lot of work.
2021-05-27 10:59:52 -04:00
Schaffer, Austin 9e9d5fc16b [DEV-9769] Allow feature flag mappings
See merge request floss/tame!52
2021-05-27 14:10:46 +00:00
Austin Schaffer d447e8107f [DEV-9769] Allow feature flag mappings 2021-05-27 14:06:56 +00:00
Mike Gerwitz 3cf859e72a design/tpl (Matches): Clean up matrix visualization
The previous design was a tad bit too noisy and I think undermined the
whole point of the visualization: to help grok the matching logic.
2021-05-26 14:33:31 -04:00
Mike Gerwitz 9c72d397d4 design/tpl: Introduce bibliography
This starts with the Hadamard Product as an example.  It also:

  - Configures BibLaTeX with biber.
  - Renames \undef, since BibLaTeX apparently defines it.
  - Redefines the citation and url colors, since they're bright and ugly.
2021-05-26 13:07:46 -04:00
Mike Gerwitz e07887f8b5 design/tpl: Remove now-unused listing package
All XML appears within the context of equations now.
2021-05-26 12:30:03 -04:00
Mike Gerwitz 9b0e97d0b9 design/tpl (Matches): Add light clarifying text
This is just some plain English to go along with and help rationalize the
text.  Further rationale will be provided in a dedicated section in the
future; such information is vitally important to understand why the system
evolved as it did.
2021-05-26 11:32:31 -04:00
Mike Gerwitz 972ea13623 design/tpl: {\bullet=>\monoidop}
This abstraction was introduced in the previous commit.
2021-05-26 10:38:36 -04:00
Mike Gerwitz ddcdb8d9c6 design/tpl (Classification System): Introduce linear algebra notation
I find this provides a visualization that is likely to be significantly more
intuitive for others.  It even holds when the matrix is not
rectangular (yes, I know, it's not really a matrix then), so long as all
matrices share the same respective K_j.
2021-05-26 10:33:01 -04:00
Mike Gerwitz cc057e8178 design/tpl (tpl.sty)[newtheoremwithlabel]: Use spref for *pref 2021-05-26 10:32:50 -04:00
Mike Gerwitz 72b6f95d4e design/tpl (Classification System): \odot=>\Classify-based monoid notation
This reads better, IMO.
2021-05-25 10:50:55 -04:00
Mike Gerwitz aeb862032d desgin/tpl (Makefile)[clean]: Delete tpl.pdf 2021-05-24 13:29:34 -04:00
Mike Gerwitz 848a415ab2 design/tpl (\equivish): Symbol change
This uses the same variable subscript on \equiv itself to define the symbol,
rather than the previous symbol which looked like equiv rotated, but also
looked too much like a turnstile used for "infer", a metalanguage construct
that is not appropriate here.  It kept bothering me.
2021-05-24 13:24:53 -04:00
Mike Gerwitz 9611dfc3fc design/tpl (Classification System): Correct vertical spacing on match ex
This is hinting that the xmlnl{,l} abstraction may not be working out.
2021-05-24 13:14:16 -04:00
Mike Gerwitz f9fc33944c design/tpl (Classification System): Improve page breaks (miscellaneous) 2021-05-24 12:57:09 -04:00
Mike Gerwitz 7a2f40e455 design/tpl (Classification System): Adjust always/never figure and use spref 2021-05-24 12:56:24 -04:00
Mike Gerwitz 9e8b4d0cb6 design/tpl (Classification System): Match example with all ranks
This does not yet provide the visualization using linear algebra notation;
that'll be coming soon.
2021-05-24 12:56:24 -04:00