[Jastadd] JastAdd2 version 2.1.6 released!

From: Jesper Öqvist <jesper.oqvist_at_cs.lth.se>
Date: Fri, 29 Nov 2013 10:21:43 +0100

Hello JastAdders,

JastAdd2 version 2.1.6 is now available at
http://jastadd.org/releases/jastadd2/2.1.6/

To the best of our knowledge 2.1.6 is compatible with 2.1.5. If you
currently use 2.1.5 then you should be able to upgrade without hassle.
Our goal is to keep the 2.1.X releases backward compatible.

There are some problems with the correctness of flushing and caching
semantics in generated JastAdd code currently which we are aware of and
hope to fix in an upcoming release but the fixes unfortunately affect
compatibility with existing projects since some projects may depend on
incorrect caching or incomplete flushing of rewritten values. Such fixes
to caching etc. will be released in version 2.2.0.

/Team JastAdd


  JastAdd2 Release Notes


    2.1.6 - 2013-11-29


      Performance

  *

    JastAdd now inlines all equation compute methods where the equation
    is a single Java expression.

  *

    JastAdd uses a new inherited equation checking analysis that runs
    quicker on grammars with many inherited attributes. This can reduce
    JastAdd compile times for large projects.


      Stability

  * Fixed potential crash during refinement processing.


      Command-Line Interface

  * JastAdd now reports a warning if multiple values are given to an
    option that only accepts one value argument.


      Code Generation

  *

    JastAdd now generates the trace class as the nested
    class|ASTNode$State.Trace|. The global|Trace|instance is accessed
    using the method|ASTNode$State.trace()|.

  *

    Added the|ASTNode.treeCopyNoTransform()|method to
    replace|ASTNode.fullCopy()|, deprecating|fullCopy|.

  *

    Added the|ASTNode.doFullTraversal()|method which uses|getChild()|to
    traverse the subtree and trigger rewrites.

  *

    Added the|ASTNode.treeCopy()|method which uses|doFullTraversal()|to
    trigger rewrites before copying the tree with|treeCopyNoTransform()|.


      Flushing

  *

    JastAdd now supports a flush flag which allows for configuring of
    flushing. The flag takes the following
    values:|attr|,|coll|,|rewrite|,|full|. Default is|attr|and|coll|.
    The|rewrite|value makes flushing of outermost rewrites possible by
    storing their initial values. The|full|value includes all values.

  *

    The default flushing API provided by JastAdd has been extended with
    a|flushTreeCache()|method calling|flushCache()|and traversing the
    tree. A call to this method together with the use of
    the|flush=full|will result in a full flush of an AST.

  *

    Attributes are flushed via separate reset methods, one per cache
    attribute.

  *

    All cached attributes in a node are flushed from
    a|flushAttrCache()|method which is called from|flushCache()|.

  *

    Rewrites are flushed from a|flushRewriteCache()|method which is
    called from|flushCache()|.
Received on Fri Nov 29 2013 - 10:19:18 CET

This archive was generated by hypermail 2.3.0 : Wed Apr 16 2014 - 17:19:06 CEST