Commit Graph

928 Commits (fc235b7eccc315cb0841534c3ef636386c5cd238)

Author SHA1 Message Date
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
Mike Gerwitz caafecdbda design/tpl: Add \spref
This is a bit opinionated, but I think it reads better, and it's certainly
better than manually having to proofread references frequently.
2021-05-24 12:56:23 -04:00
Mike Gerwitz e70933eef8 design/tpl (Vectors and Index Sets): Refinement and rectangular matrix intro
This refines the section a bit and introduces the familiar notation for
rectangular matrices (which normal people just call "matrices").
2021-05-21 16:10:44 -04:00
Mike Gerwitz 8edef8a8c8 design/tpl (\rank): Add macro 2021-05-20 15:28:10 -04:00
Mike Gerwitz 50a6ccf4ec design/tpl (Classification System): Equation number refinement
Just clean up a little bit using more proper AMS environments.
2021-05-20 15:22:06 -04:00
Mike Gerwitz 98d724a7d7 design/tpl (Vectors and Index Sets): Remove unique value set example
This ended up not being needed for the definition of the classification
system and just adds noise.
2021-05-20 12:42:51 -04:00
Mike Gerwitz 7d0402d350 src/current/doc: Remove
This represents the old cmatch system (which is in use today, but the
classification system has since been rewritten, though it has not yet been
merged).  It was my attempt over a decade ago to reason about how this
system ought to work.

I think it's fair to say that this is absolute insanity and that the new
formulation is significantly better.
2021-05-20 11:25:32 -04:00
Mike Gerwitz 9ad144d3d4 design/tpl (Classification System): Initial match definition
This is a bit raw; it needs some explanation and examples.
2021-05-20 10:45:44 -04:00