8 Apr 2020 - Release 0.25.0 =================================== * Teachable class (in SUnit package). * $core.removeClass returns removed class. * Subclassing JS classes, pragma. * Both 'nil' and '$nil' compiled in method code. * '$nil' used as receiver, 'nil' used to pass a value. * Cleaned error-handling code. * More Set fixes. Commits: https://lolg.it/amber/amber/commits/0.25.0 4 Jun 2019 - Release 0.24.0 =================================== * Subclasses of captured system classes now inherit new methods. * Object.setPrototypeOf was needed to fix, no IE9 / IE10 any more. * Working supersends in trait methods. * New form of method with more late binding. * Loading old form supported, but compiler always compiles in new format. * As TMethodContext >> printOn: works now, less annoyances in Helios debugger. Commits: https://lolg.it/amber/amber/commits/0.24.0 3 Jun 2019 - Release 0.23.2 =================================== * Some fixes. * API for `fetch` in Platform. * Last release compatible with IE9 and IE10. * Fixing issue #1240 needs operations not possible there. Commits: https://lolg.it/amber/amber/commits/0.23.2 26 Mar 2019 - Release 0.23.1 =================================== * Deprecate global "SmalltalkParser". * Lot of small fixes in engine and IDEs. Commits: https://lolg.it/amber/amber/commits/0.23.1 25 Feb 2019 - Release 0.23.0 =================================== * Remove kernel-level deprecations. * `imports:` loaded lazily using isReady promise * you can have circular `import:` clauses * you cannot presume your `import:` dependency is initialized in your own class-level `initialize` * `aJsObject Uppercase: foo and: bar` is called as `aJsObject.Uppercase(foo, bar)` * only the unary `aJsObject Uppercase` is special and returns `aJsObject.Uppercase` * so far all uppercase selectors made an exception, even ones with args * `aJsObject selector: foo withMoreArguments: bar` fails if `aJsObject.selector` is not a function * only the single-arg `aJsObject selector: foo` sets the value `aJsObject selector = foo` * so far even more-than-one-arg ones did set the value denoted by first keyword * Namespace change: amber_core => amber/core. * Backward compatibility mapping added, so old code should load and save with new implicit deps. * You must edit explicit deps (aka `imports:`) as well as Gruntfile, deploy, testing and devel .js files yourself. * Instance variables are now compiled as `obj.ivarName` instead of `obj["@ivarName"]`. * There is compat layer so old code is loadable. * Classes can be created using API containing `slots: {#foo. #bar}` instead of `instanceVariableNames: 'foo bar'` * Smalltalk files are saved using this new API. * No actual slots yet, only 'plain data slots' eg. instance variables. Commits: https://lolg.it/amber/amber/commits/0.23.0 18 Feb 2019 - Release 0.22.6 =================================== * Bug fix in the use of recently added isReady promise for packages. Commits: https://lolg.it/amber/amber/commits/0.22.6 15 Feb 2019 - Release 0.22.5 =================================== * Bug fix in recently introduced amber/helpers loadPackages. * Some internal API changed to be future-proof for lazy dependents. Commits: https://lolg.it/amber/amber/commits/0.22.5 11 Feb 2019 - Release 0.22.4 =================================== * Fixes. * Flatter Collection hierarchy with traits, remove IndexableCollection class. * Remove some old IE8 cruft. * Push CharacterArray down, make it and alias to String and deprecate it. Commits: https://lolg.it/amber/amber/commits/0.22.4 24 Jun 2018 - Release 0.22.1 =================================== * Added one usable API: {BlockClosure,Class} >> provided. Commits: https://lolg.it/amber/amber/commits/0.22.1 22 Jun 2018 - Release 0.22.0 =================================== * Simple pragmas. * `` is an (only implemented so far) pragma. * Remove legacy inline JS syntax (only works). * Programmatic loading of packages works. * Use new @ambers/sdk (at least 0.10.5) (formerly amber-dev). * Remove some older deprecated API. Commits: https://lolg.it/amber/amber/commits/0.22.0 8 Apr 2018 - Release 0.21.1 =================================== * A few new APIs, one bug fix. Commits: https://lolg.it/amber/amber/commits/0.21.1 28 Feb 2018 - Release 0.21.0 =================================== * Kernel assumes global variable `global` exists. * In browser, it must be polyfilled before loading amber. * Smalltalk-level code should continue to use `Platform globals`. Commits: https://lolg.it/amber/amber/commits/0.21.0 12 Nov 2017 - Release 0.20.0 =================================== * Kernel changes, so differences in .js files. Recompile your projects with `grunt`. * Use new amber-dev (0.10.1 atm). Commits: https://lolg.it/amber/amber/commits/0.20.0 7 Oct 2017 - Release 0.19.2 =================================== * Silent bower-only release * Removed dependency on amber/Platform and amber/compatibility. * Thus, can be used with amber-dev 0.10.0 and grunt template 0.19.5. Commits: https://lolg.it/amber/amber/commits/0.19.2. 18 Jun 2017 - Release 0.19.1 =================================== * Kernel slimmed, things moved to Smalltalk side. * Kernel (via kernel-runtime.js) calls only this Smalltalk-side API: * AmberBootstrapInitialization class >> run * Message class >> selector:arguments:notUnderstoodBy: * Dictionary class >> newFromPairs: * ErrorHandler class >> handleError: * JSObjectProxy class >> on: * NonBooleanReceiver class >> signalOn: * TMasterBehavior >> enterOrganization * TMasterBehavior >> leaveOrganization * TBehaviorProvider >> methodOrganizationEnter:andLeave: * Set fix (#1224). Commits: https://lolg.it/amber/amber/commits/0.19.1. 20 April 2017 - Release 0.19.0 =================================== * Removed BehaviorBody in favour of traits TBehaviorDefaults and TBehaviorProvider. * Move Thenable class to TThenable trait. * Removed `.allowJavaScriptCalls` flag. * Internal `.isNil` deprecated in favour of `.a$nil`. * Internal `.klass` deprecated in favour of `.a$cls`. * Both 'self' and '$self' compiled in method code. * '$self' used as receiver, 'self' used to pass a value. * Libs bumped: amber-contrib-{web,jquery,legacy}, helios, domite, silk. Breaks fw compat, uses `a$nil` and `a$cls` when compiling / saving code. May break bw compat for code using `.allowJavaScriptCalls` (very unlikely). Commits: https://lolg.it/amber/amber/commits/0.19.0. 7 April 2017 - Release 0.18.5 =================================== * Fix inability to change ivars. * Wrapper-JQuery bumped to use inlineJS: syntax. Commits: https://lolg.it/amber/amber/commits/0.18.5. 5 March 2017 - Release 0.18.4 =================================== * Fix export of extension trait methods. Commits: https://lolg.it/amber/amber/commits/0.18.4. 22 February 2017 - Release 0.18.3 =================================== * Traits, with a few limitations and incomplete IDE support. * Methods / classes / traits are recompiled when moved (fix #1142, #1170). Commits: https://lolg.it/amber/amber/commits/0.18.3. 1 January 2017 - Release 0.18.2 =================================== * DOM-related stuff in own package (not loaded by default, use imports:). * Accompanying libs updated and semver-bumped: Web, Domite, Helios-* and IDE. * Silk is high-level enough so no bump neither b/c of inlineJS: nor b/c of DOM stuff needed. * Wrapper-JQuery bump postponed. Commits: https://lolg.it/amber/amber/commits/0.18.2. 21 November 2016 - Release 0.18.1 =================================== * Parser fails fast on mistyped inlineJS: form. * Previously, it treated it as legacy form. Commits: https://lolg.it/amber/amber/commits/0.18.1. 5 November 2016 - Release 0.18.0 =================================== * Remove some old internal pieces. * Allow new syntax for inline JS method body: * If used in libraries / reused modules, breaks fw compat. * Old syntax is deprecated, but retained in libraries for some grace period. May break bw compat because of removed internal pieces. Commits: https://lolg.it/amber/amber/commits/0.18.0. 19 October 2016 - Release 0.17.0 =================================== * Remove some deprecated classes and methods. * Fix fw compat break of 0.16.1. Breaks bw compat because of removed deprecated pieces. Commits: https://lolg.it/amber/amber/commits/0.17.0. 27 September 2016 - Release 0.16.1 =================================== * Fix node builds (lazy loaded kernel-runtime wasn't packaged). * amber-dev upgrade (to fix UMDs checking for module before define). * Kernel files use 'use strict'. Breaks fw compat (uses $boot.nilAsClass in supersends). Commits: https://lolg.it/amber/amber/commits/0.16.1. 25 September 2016 - Release 0.16.0 =================================== * boot.js overhaul: * brikz external, reworked to less imperative (no ensure call). * addClass returns the class. * no wrapClassName, using setClassConstructor in later stage. * traverseClassTree (eg allSubclassesDo:) in kernel, not allSubclasses. * runtime part extracted to kernel-runtime.js. * runtime loaded lazily, packages can load without runtime in. * initialize returns a Promise. * init done automatically upon class creation if runtime is active. * amber-dev upgrade (to honour initialize returning a Promise). * Edits relating to lolg.it move. * Fixes. May break bw compat for kernel API using code. Commits: https://lolg.it/amber/amber/commits/0.16.0. 6 February 2016 - Release 0.15.1 =================================== * From this version on, Amber will fully comply to semver: * Any breaking change will result in increase of first non-zero number. * If first non-zero number is not changed, no breaking changes are present in release. * Changed how ST globals are implemented, resulting in shorter and faster code. * Not working any more on IE8 (b/c of changed globals). * amber.initialize(...) returns a promise. * JS global Promise must be present. * If missing, you can polyfill with `bower install amber-compat-es2015 --save`. * JS Promise is wrapped in ST class Promise. * Accompanying libs updated and semver-bumped: * Wrapper-JQuery, Web, Domite, Silk, IDE, Helios-*. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.18...0.15.1. 1 January 2016 - Release 0.14.18 =================================== Maintenance release. Cleaning the code in compiler and parser. Some bug fixes (in compiler/interpreter as well as in other places). Breaks fw compat (uses $boot.dnu in supercall). Commits: https://github.com/amber-smalltalk/amber/compare/0.14.17...0.14.18 6 October 2015 - Release 0.14.17 =================================== Maintenance release. Some fixes, optimizations and moving things around. Using virtual module "amber/Platform". This needs to be mapped to either "amber_core/Platform-Browser" or "amber_core/Platform-Node". Commits: https://github.com/amber-smalltalk/amber/compare/0.14.16...0.14.17 20 June 2015 - Release 0.14.16 =================================== Bugfix release - Date >> =, Class >> javascriptConstructor:. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.15...0.14.16 9 June 2015 - Release 0.14.15 =================================== Bugfix release - in some browsers, package commit failed. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.14...0.14.15 24 May 2015 - Release 0.14.14 =================================== Highlights: * Extraction of `Web` and `Wrappers-JQuery` to own repos. * Amber core itself formally with no production dependencies. * Packages with 'use strict'. * `PlatformInterface` replaced by services `Terminal` and `Platform`. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.13...0.14.14 29 March 2015 - Release 0.14.13 =================================== Highlights: * Rename namespaces of `Web` and `Wrappers-JQuery`. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.12...0.14.13 22 February 2015 - Release 0.14.12 =================================== Highlights: * Wrapped JS object can be put on streams via aStream << anObject. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.11...0.14.12 21 February 2015 - Release 0.14.11 =================================== Highlights: * `anObject in: aBlock` added * ProtoStream with extracted basic streaming protocol. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.10...0.14.11 17 February 2015 - Release 0.14.10 =================================== Highlights: * Package renames, classes moved between packages: * Web and Wrappers-JQuery in amber-contrib-xxx namespaces, * Platform-Xxx packages to keep Kernel-Xxx to kernel. * Some core speedups. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.4...0.14.10 1 February 2015 - Release 0.14.4 =================================== Highlights: * Compiler now allows the "import them as package-global vars" of 0.14.3. * Some core speedups. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.3...0.14.4 20 January 2015 - Release 0.14.3 =================================== Highlights: * Package can specify external dependencies and import them as package-global vars. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.2...0.14.3 Issues: https://github.com/amber-smalltalk/amber/issues?q=milestone%3A0.14.3+is%3Aclosed For the most important API related changes see the file API-CHANGES.txt. 11 January 2015 - Release 0.14.2 =================================== Highlights: * Slimmed core - es5-shim and IE8 compatibilty tweaks in amber-compat-* repos. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.1...0.14.2 For the most important API related changes see the file API-CHANGES.txt. 8 January 2015 - Release 0.14.1 =================================== Highlights: * Slimmed core - legacy IDE, Examples and Benchfib in own repo. * Smalltalk optOut: used instead allowJavaScriptCalls to make jQuery work. Commits: https://github.com/amber-smalltalk/amber/compare/0.14.0...0.14.1 For the most important API related changes see the file API-CHANGES.txt. 1 January 2015 - Release 0.14.0 =================================== Highlights: * Removed deprecated stuff and backward compatibility support code. * You can wrap any object using #asJQuery. Commits: https://github.com/amber-smalltalk/amber/compare/0.13.2...0.14.0 Issues: https://github.com/amber-smalltalk/amber/issues?q=is%3Aissue+is%3Aclosed+milestone%3A0.14.0 For the most important API related changes see the file API-CHANGES.txt. 31 December 2014 - Release 0.13.3 =================================== This is a planned maintenance release. It contains everything 0.14.0 contains, but it retains all the backwards compatibility stuff, which is going to be removed in 0.14.0. 22 October 2014 - Release 0.13.2 =================================== This is maintenance release to upgrade CodeMirror jointly in Amber and Helios. Highlights: * CodeMirror upgrade for Amber and Helios. * Cleaned of all (as far as findable) uses of deprecated code. * Recompile using `grunt` in Windows now does not add cr characters. Commits: https://github.com/amber-smalltalk/amber/compare/0.13.0...0.13.2 For the most important API related changes see the file API-CHANGES.txt. 10 October 2014 - Release 0.13.1 =================================== Highlights: * Reworked cleaner DNU handling in core. * `amber init` fully embraced as the way to create new project. * Helios IDE is extracted and is now a project on its own. * It is included as dev-dependency in any new project by default. * Movable data out of index.html: * list of production packages in deploy.js; * list of development packages in devel.js; * project amd mappings in local.amd.json; * libraries' amd mappings in lib_directory.amd.json. * 'Batteries included' deployment via `grunt deploy`. * 0.13.1 because of technical issues w/ 0.13.0 release process. Commits: https://github.com/amber-smalltalk/amber/compare/0.12.6...0.13.0 Issues: https://github.com/amber-smalltalk/amber/issues?q=is%3Aissue+is%3Aclosed+milestone%3A0.13.0 For the most important API related changes see the file API-CHANGES.txt. 1 July 2014 - Release 0.12.6 =================================== Highlights: * SUnit Runner in Helios IDE. * `amber` and `amberc` cli moved to `external` directory and to dedicated npm package. * Bootstrap 3 can be used in Amber projects (no more nameclash with Helios' bootstrap 2 using bootstrap2.3.2 name). * Wider range of jQuery versions allowed. * Amber now parses `$c` character literal. * `amber` is not to be installed globally any more. Instead, `npm install -g amber-cli` installs cli tooling. * After installing the cli tooling, `amber init` initializes new project if run in empty directory. Commits: https://github.com/amber-smalltalk/amber/compare/0.12.4...0.12.6 Issues: https://github.com/amber-smalltalk/amber/issues?milestone=13&state=closed For the most important API related changes see the file API-CHANGES.txt. 11 April 2014 - Release 0.12.4 =================================== Highlights: * Fixed backward compatibility for pre-0.12.3 loader syntax. * `namespace/_source` is not needed to map and is recommended not to use; `.st` files are by default committed to the `.js` location. * All sources, including js files into the src/ directory * Many improvements in Helios, especially in its debugger and inspector, as well as UI-related improvements * New Helios dark theme by @BenjaminVanRyseghem Commits: https://github.com/amber-smalltalk/amber/compare/0.12.3...0.12.4 Issues: https://github.com/amber-smalltalk/amber/issues?milestone=12&state=closed For the most important API related changes see the file API-CHANGES.txt. 22 January 2014 - Release 0.12.3 =================================== Highlights: * JQuery updated to ~1.10.2; jquery-ui updated to match * Subclasses of `nil` can be created * Several fixes for IE8 * amber.js can be loaded asynchronously (it must have an id 'amber-path-mapper' in that case) * CodeMirror updated to ~3.20.0 Commits: https://github.com/amber-smalltalk/amber/compare/0.12.2...0.12.3 Issues: https://github.com/amber-smalltalk/amber/issues?milestone=11&state=closed For the most important API related changes see the file API-CHANGES.txt. 3 December 2013 - Release 0.12.2 =================================== Highlights: * Loading Amber in nested pages now possible (via additional `data-libs` attribute of the `