tame/RELEASES.md

4.9 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

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 to gensub; fixed.
  • bootstrap will test explicitly whether hoxsl 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.

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.

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 to tamer/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 emitting xmle.
  • 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 updating RELEASES.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.

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 and yields 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.

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.