[Pharo-dev] [ANN] Amber 0.11.0 released!

Nicolas Petton petton.nicolas at gmail.com
Tue Jul 9 10:25:59 EDT 2013


Amber 0.11.0 released!

* About the release

Three months have passed and we are happy to announce the release
of Amber 0.11.0!

Some numbers about this release: 433 commits by 13 committers,
increasing the number of core committers to 25. 50 unit tests
were added to the kernel, bringing us to 313 unit tests in total.
Since the last release 60 issues were closed, bringing us to 499
issues closed.

This release includes a lot of bug fixes, improvements to the
CLI, as well as a preview of the next IDE, named Helios. Amber
now also uses a CI server [1].

To try the Helios, the new IDE, open the helios.html page, or
evaluate in any other amber page `amber.loadHelios()`.

The compiler also received some improvements, especially
regarding message send optimisations and super sends.

Here's the list of commits and closed issues: 
https://github.com/amber-smalltalk/amber/commits/master
https://github.com/amber-smalltalk/amber/issues?direction=desc&sort=updated&state=closed

There is a lot more to come with Helios, a stepping debugger
based on the AST is in progress and currently in the 'debugger'
branch on GitHub.

* Installing Amber from NPM

To install amber from NPM, run
    
    npm install amber


* Migration from Amber 0.10.0

Amber compiled code should be compatible with Amber 0.10.0, but
recompiling is needed in order to get contexts working:

    Compiler new recompile: (Package named: 'MyPackage') classes.
    (Package named: 'MyPackage') commit


* API changes

0.11.0:

* AnnouncementSubscription use #valuable: instead of #block: (deprecated)
* AbstractCodeGenerator inherits from Object, not NodeVisitor
* Object>>printString
* replace >>printString with >>printOn:
* replace >>storeString with >>printString
* PackageLoader is now PackageHandler (>>commit: >>setupPackagenamed:prefix: >>ajaxPutAt:data:
* Package>>fetch: is now Package>>load:
* Package>>fetch:prefix: is now Package>>load:prefix:
* Queue>>front replaced by Queue>>next
* Queue>>frontIfAbsent: replaced by Queue>>nextIfAbsent:
* Queue>>back: replaced by Queue>>nextPut:
* smalltalk.addMethod() does not use explicit JS selector
* JSObjectProxy>>canForwardMessage: replaced by use of JSObjectProxy>>lookupProperty: with asJavaScriptSelector
* JSObjectProxy>>forwardMessage: replaced by explicit JSObjectProxy>>forwardMessage:withArguments:
* String>>asJavaScriptSelector moved to Kernel-Objects package

+ Object>>asString
+ Object>>putOn:
+ String>>isVowel
+ Collection>>putOn:
+ CharacterArray>>putOn:
+ Stream>><<
+ Stream>>write
+ SequenceableCollection>>newStream
+ SequenceableCollection>>readStream
+ SequenceableCollection>>stream
+ SequenceableCollection>>streamClass
+ SequenceableCollection>>writeStream
+ Collection>>isImmutable
+ Stream>>nextPutString:
+ StringStream>>nextPutString:
+ JSStream>>nextPutClassRefFunction:
+ String>>crlfSanitized
+ inlined Block now also responds to >>value:
+ Parser: split literal into runtimeLiteral and parseTimeLiteral
+ Parser: write #(4 #(5 6 #()) 7) as #(4 (5 6 ()) 7)
+ Parser: write #(#on:do: #Object) as #(on:do: Object)
+ Parser: Symbols for binarie selectores
+ Package>>commit
+ AIContext>>initializeLocals
+ ASTInterpreter>>withBlockContext:
+ smalltalk.allSelectors()
+ Object>>isCompiledMethod
+ Object>>isPackage
+ Object>>isBehavior
+ ClassMoved Announcemen class
+ Behavior>>includesBehavior:
+ Environment>>classes
+ Environment>>allSelectors
+ Environment>>removeProtocol:
+ Environment>>renameProtocol:to:in:
+ CompiledMethod>>protocol:
+ Smalltalk>>globalJsVariables
+ Smalltalk>>addGlobalJsVariable:
+ Smalltalk>>deleteGlobalJsVariable:


- Object>>storeOn:
- Object>>log:block:
- Object>>printNl
- Compiler-IR.st >>javascriptSelector
- Compiler-IR.st >>nextPutVar:
- Kernel-Collections.st >>asSuperSelector
- Collection>>readStream
- Collection>>stream
- Collection>>streamClass
- Collection>>writeStream
- Symbol class (replaced with String)
- IRInlinedNonLocalReturn class
- IRInlinedSend>>nonLocalReturnInliner
- IRNonLocalReturnInliner class
- Package>>dependencies
- Package>>dependencies:
- Package>>properties
- Package>>jsProperties
- Package>>jsProperties:
- Package>>propertiesAsJSON
- Package>>propertyAt:
- Package>>propertyAt:ifAbsent:
- Package>>propertyAt:put:
- Browser>>ajaxPutAt:data:


We hope you join us in developing Amber and having fun! Fork at
github, join in #amber-lang on freenode and hop onto the mailing
list.

The Amber crew

[1] https://travis-ci.org/amber-smalltalk/amber


More information about the Pharo-dev mailing list