[Jastadd] JastAdd2 version 2.1.2 released!

From: Jesper qvist <jesper.oqvist_at_cs.lth.se>
Date: Mon, 26 Aug 2013 16:16:02 +0200

Hello JastAdders,

JastAdd2 version 2.1.2 is now available at

This version includes several changes that were implemented during
JastAthon 2013!

This new version may print a lot of warnings for some projects - this is
to warn about newly deprecated behaviour. In most cases you won't have
to change anything to be compatible with future JastAdd versions (some
warnings are auto-generated because JastAdd parses some internal aspects
containing interfaces - you can ignore warnings about the Filter
interface), but there may be some incompatible upcoming changes. These
things are explained in detail below in the release notes.

Happy hacking
/Team JastAdd

JastAdd 2.1.2 Release Notes:

      Newly Deprecated


    *Interface Modifiers:*JastAdd strips all modifiers from interface
    declarations. This stripping of access modifiers is probably an
    unintentional error in the parser.

    In future versions of JastAdd the interface modifiers will be
    retained in the generated code. Unfortunately if incorrect modifiers
    are given to an interface declaration in an aspect, then the
    generated code will fail to compile.

    Note that the|protected|,|private|and|static|modifiers are only
    allowed on member interfaces (declared inside an enclosing class).
    Top-level interface declarations should not
    use|protected|,|private|, or|static|.

    JastAdd now prints warning messages for each interface declaration
    that has any modifiers. Check that your interfaces use correct
    modifiers to ensure that your code continues to compile even with
    future JastAdd versions.


    *Type Declaration Modifiers:*In addition to the stripping of
    modifiers from interface declarations JastAdd alters the modifiers
    of class and interface declarations by removing any occurrence
    of|static|and adding the|public|modifier if the modifier list was empty.

    We want to remove this behaviour from JastAdd, so a new warning
    message is generated for all type declarations where the
    implicit|public|modifier is added. The message warns that future
    versions of JastAdd will cease to make the
    class|public|automatically. To silence the warning, simply
    add|public|or|protected|modifiers to the declaration.


    *SuppressWarnings:*JastAdd no longer
    generates|_at_SuppressWarnings|annotations. The purpose of using the
    annotation was to reduce the number of Java warnings in the
    generated code - however JastAdd was not smart enough to correctly
    use the annotation, and if the annotation is incorrectly used it
    will raise another warning. Ideally the number of warnings should be
    reduced by generating better code instead.

    The|--suppressWarnings|flag, and corresponding JastAddTask option,
    has been deprecated and will be removed from JastAdd in a future

      Improvements and Additions


    *Annotations:*Annotations are now supported for synthesized
    attributes and aspect-declared classes and interfaces!

    Annotations on attributes are allowed before the attribute keyword
    (|syn|,|eq|). For synthesized attributes the annotation is generated
    on the method with the same name - not the "compute" method.
    Annotations are not yet supported for other kinds of attributes
    although they should now produce more readable error messages rather
    than standard mysterious parser syntax errors.


    *Tracing:*Attribute evaluation tracing is now done in-memory by the
    generated class|Tracer|.


    *Comments:*Fixed several issues with comments in the generated code:

      o fixed indentation issues
      o fixed double unparsing of documentation comments
      o removed redundant empty line after comments
      o removed incorrectly generated|_at_ast method|tag

    JastAdd now generates the utility
    method|List.addAll(Collection)|which can be used to initialize an
    AST List with a set of children.


    List components now get a "has" accessor which returns|true|if the
    list component is non-empty.


    Added flag|--lineColumnNumbers|which makes JastAdd generate methods
    to get and set start- and end positions for AST nodes.

      Internal Changes


    The syntax for annotating collection attributes has been slightly
    changed. Annotations are now only allowed before the|coll|keyword,
    rather than after. The supported annotations for collection
    attributes are not discussed in the documentation, so we don't
    expect this change to affect anyone. It is possible that these
    annotations will disappear in the future anyway - use at your own peril!


    Generated source files have been moved to the package org.jastadd


    The build script now compiles to ant-bin in order to avoid conflicts
    with the eclipse project
Received on Mon Aug 26 2013 - 16:15:52 CEST

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