implicit.ly

Scala software, hot off the presses

kiama 1.1.0

Enhancements

  • attribution:

    • parent-child connections in Attributable now work for any GenTraversable, not just Seqs
    • parent-child connection setting is now protected rather than private so it can be customised
  • machine:

    • new reset method
  • pretty printing:

    • new pretty printing combinator library based on Swierstra and Chitil, Linear, bounded, functional pretty-printing, Journal of Functional Programming, 19 (1), 2008. See FIXME for documentation.
    • use pretty printer in many examples
  • rewriting:

    • generic traversals now work on Rewritable, Product, Traversable and Map values
    • generic traversals now return the subject term if no changes are made to its children
    • new Rewritable trait for custom rewriting of any structure
  • general:

    • move to Scala 2.9.0, ScalaTest 1.4.1, ScalaCheck 1.9 and sbt 0.7.7
    • use org.scala-lang version of JLine

Fixes

  • examples:

    • imperative: fix bug in unary minus tree construction
  • rewriting:

    • make more strategy parameters call-by-name
    • fix bugs in manybu and leaves combinators
    • remove unnecessary where strategies based on one and some
  • testing:

    • many new tests to significantly improve code coverage
    • uniplate: constrain division by zero test to avoid heap exhaustion

Kiama is a Scala library for language processing including attribute grammars, term rewriting, abstract state machines and pretty printing.

Filed under  //   Scala 2.9.0   com.googlecode   kiama  

kiama 1.0.2

Enhancements

  • rewriting:

    • new collect strategy combinator that uses 2.8 collection framework to build any Traversable
    • collectl and collects versions of collect for List and Set, respectively
    • new everything combinator to fold across a whole structure
    • everywhere combinator is alias for everywheretd (top-down version)
  • general:

    • ==> as an alias for PartialFunction is now in org.kiama package object
    • Scala 2.8.1 is default version
  • examples:

Fixes

  • command-line framework:

    • all argument files are now processed, not just one
    • no requirement for a usage message
  • test framework:

    • make filetest public again
  • general:

    • remove sbt launcher and invocation scripts from distribution
  • other minor fixes and tidying up

Kiama is a Scala library for language processing including attribute grammars, term rewriting and abstract state machines.

Filed under  //   Scala 2.8.1   com.googlecode   kiama  

kiama 1.0.1

Enhancements

  • allow abstract state machine state to be used more flexibly
  • test framework improvements:

    • command-line arguments
    • optional input files
    • default input text

Fixes

  • test framework: fix bug in tests that elicit parse errors
  • other minor fixes and tidying up

Kiama is a Scala library for language processing.

Filed under  //   Scala 2.8.0   com.googlecode   kiama  

kiama 1.0.0

Enhancements

  • depends on Scala 2.8.0
  • abstract state machine library (issue 43):

    • documentation page added to wiki
    • parameterised state
    • consistency checking for updates
  • attribute grammars:

    • attribute forwarding
    • tree splicing
    • beginning of decorators library
  • examples:

    • dataflow example now includes rewrites for simple optimisations
    • new example: Obr compiler from imperative language to SPARC
    • new example: ISWIM to SECD machine compiler
  • parsing:

    • removed, use Scala library packrat combinators
    • or try Rats!-generated parsers via our sbt-rats plugin
  • pretty-printing:

    • rudimentary support in util
  • rewriting:

    • support for congruences (issue 39)
    • failure combinator is now called fail as in Stratego
    • extended strategy library
  • sbt

    • build with sbt (currently 0.7.4)
    • "main" task for running a specific Main with arguments
  • testing:

    • use ScalaTest instead of JUnit (issue 35)
    • more powerful support for end-to-end testing (issue 46)

Fixes

  • top-level package is now org.kiama (issue 41)
  • examples now packaged with tests, not main library code (issue 44)
  • many smaller bug fixes and many new tests

Kiama is a Scala library for language processing.

Filed under  //   Scala 2.8.0   com.googlecode   kiama  

sbt-rats 1.1.1

  • move to Rats! 1.15.0 as default version

sbt-rats is a simple-buld-tool plugin that enables you to use the Rats! parser generator in Scala projects.

Filed under  //   Scala 2.7.7   com.googlecode   sbt-rats  

sbt-rats 1.1.0

sbt-rats provides

  • a rats sbt action for generating parsers from Rats! specifications

This release adds

  • support for Scala linked lists and positions, instead of Rats!-specific ones

sbt-rats is a plugin that enables you to use the Rats! parser generator with Scala projects that are built using the simple-buld-tool. For more information, see the project site http://sbt-rats.googlecode.com.

Filed under  //   Scala 2.8.0.RC2   com.googlecode   sbt-rats