5.1 KiB
TAME Release Notes
This file contains notes for each release of TAME since v17.4.0.
TAME uses semantic versioning. Any major version number increment indicates that backwards-incompatible changes have been introduced in that version. Each such version will be accompanied by notes that provide a migration path to resolve incompatibilities.
TAME developers: Add new changes under a "NEXT" heading as part of the
commits that introduce the changes. To make a new release, run
tools/mkrelease
, which will handle updating the heading for you.
NEXT
Compiler
lv:param-class-to-yields
will now trigger a failure rather than relying on propagating bad values, which may not result in failure if the symbol is represented by another type (non-class) of object.
Miscellaneous
package-lock.json
additions.
v17.6.0 (2020-08-19)
This release provides a new environment variable for JVM tuning. It does not provide any new compiler features or performance enhancements in itself, though it enables optimizations through JVM tuning.
Compiler
- The new environment variable
TAMED_JAVA_OPTS
can now be used to provide arguments to the JVM. This feature was added to support heap ratio tuning.
Miscellaneous
build-aux/lsimports
was causing Gawk to complain about the third argument togensub
; fixed.bootstrap
will test explicitly whetherhoxsl
is a symbol link, since-e
fails if the symlink is broken.
v17.5.0 (2020-07-15)
This release adds support for experimental human-guided tail call
optimizations (TCO) to resolve issues of stack exhaustion during runtime for
tables with a large number of rows after having applied the first
predicate. This feature should not be used outside of tame-core
, and will
be done automatically by TAMER in the future.
tame-core
vector/filter/mrange
, used by the table lookup system, has had its mutually recursive function inlined and now uses TCO.- This was the source of stack exhaustion on tables whose predicates were unable to filter rows sufficiently.
Compiler
- Experimental guided tail call optimizations (TCO) added to XSLT-based
compiler, allowing a human to manually indicate recursive calls in tail
position.
- This is undocumented and should only be used by
tame-core
. The experimental warning will be removed in future releases if the behavior proves to be sound. - TAMER will add support for proper tail calls that will be detected automatically.
- This is undocumented and should only be used by
v17.4.3 (2020-07-02)
This release fixes a bug caused by previous refactoring that caused unresolved externs to produce an obscure and useless error for the end user.
Linker
- Provide useful error for unresolved identifiers.
- This was previously falling through to an
unreachable!
block, producing a very opaque and useless internal error message.
- This was previously falling through to an
v17.4.2 (2020-05-13)
This release adds GraphML output for linked objects to allow us to inspect the graph.
Linker
- Add
--emit
oprion totamer/src/bin/tameld.rs
that allows us to specify the type of output we want. - Minor refactoring.
Miscellaneous
- Added
make
target to build linked GraphML files. - Updated
make *.xmle
target to explicitly state it is emittingxmle
. - Added Cypher script to use in Neo4J after a GraphML file is imported.
RELEASES.md
- Add missing link to semver.org.
- Fix
tame-core
heading, which was erroneously Org-mode-styled. - Rephrase and correct formatting of an introduction paragraph.
v17.4.1 (2020-04-29)
This release refactors the linker, adds additional tests, and improves errors slightly. There are otherwise no functional changes.
Compiler
- Refactor proof-of-concept dependency graph construction code.
- Improvements to error abstraction which will later aid in reporting.
Miscellaneous
RELEASES.md
added.tools/mkrelease
added to help automate updatingRELEASES.md
.build-aux/release-check
added to check releases.- This is invoked both by
tools/mkrelease
and by CI via.gitlab-ci.yml
on tags.
- This is invoked both by
v17.4.0 (2020-04-17)
This release focuses on moving some code out of the existing XSLT-based compiler so that the functionality does not need to be re-implemented in TAMER. There are no user-facing changes aside form the introduction of two new templates, which are not yet expected to be used directly.
tame-core
- New
rate-each
template to replace XSLT template in compiler. - New
yields
template to replace XSLT template in compiler. - Users should continue to use
rate-each
andyields
as before rather than invoking the new templates directly.- The intent is to remove the
t
namespace prefix in the future so that templates will be applied automatically.
- The intent is to remove the
Compiler
- XSLT-based compiler now emits
t:rate-each
in place of the previous XSLT template. - XSLT-based compiler now emits
t:yields
in place of the previous XSLT template.