I have released "Amber for Parrot" version 0.2.3a (Ashes):
Downloads: http://xamber.org/download.html
Release history: http://xamber.org/history.html
Project home page: http://xamber.org/index.html
"Amber for Parrot" is an Eiffel-like scripting language for the Parrot
Virtual Machine.
Changes since version 0.2.3:
- Added an implementation of 'Conway's Game of Life' to the examples
directory
- A name clash between a local variable and a feature is now a
validity error
- 'retry' and 'recover' instructions are now rejected if they appear
outside of a rescue clause
- The generated PIR code now uses the 'if_null' opcode instead of
the deprecated 'isnull'
- Manifest strings may now contain hex escapes, e.g. '\{7F}' (and
'\{0}' obsoletes the '\u' escape)
- A new kernel class ARGUMENTS replaces the previous
command-line-argument mechanism
- Escape codes are recognised within character constants, e.g.
'\n', '\{1F}'
- The catenation operator '&' now works for mixed-type expressions
(CHARACTERs, INTEGERs etc) and catenates their string value
- Parrot (non-Amber) classnames now begin with '@@' instead of
being enclosed by '{{..}}'
- Parrot (non-Amber) featurenames now begin with '@' instead of
being enclosed by '{..}'
- Added the 'catenate.am' test case
- Changed the '99 bottles of beer' example to use 'is'-functions
rather than 'do'-functions
- External 'pir' routines can now have postconditions
- External 'pir' routines can now have rescue and finally parts
- Disambiguation of the left parenthesis: A left parenthesis as the
first token on a new line, or as the first token after a
semicolon, starts a new instruction. A left parenthesis in other
positions opens the list of arguments to a call.
- Argument count mismatches are now also detected for 'is'-body
functions
- The main script no longer supports a Class_invariant (only
classes do)
- 'result' is now a keyword, and can't be a formal argument or
local variable name
- Local variables can now be initialized at the point of
declaration, e.g. 'local answer := 42'
- Source location is now always shown for Creation_expression
errors
- Better error message when garbage is present in the main script
- Parrot (non-Amber) identifiers may now include the colon character
- Creation parameters can now also be supplied to Parrot (non-Amber)
types
- Added features 'load_bytecode' and 'sleep' to class ANY
- Added 'amber-squares.am', a GUI example that uses Parrot's SDL
wrapper
- Added kernel class RULE, for regular expression matching
- Added the 'Exploring Regular Expressions' example (regexp.am)
- Documentation: Extended the website pages that describe language
interoparability and the use of Amber keywords. Added website
pages to document Amber symbols, other lexical elements, and
operator precedence.
- Major refactoring of the lexical analysis and parsing code
- Various bug fixes
- Estimated progress towards release 1.0: language constructs 41%,
libraries 2%, documentation 2%, robustness 2%
Roger Browne