4.5 Release Notes
Last updated at 4:54 pm UTC on 8 March 2014
Environments allows multiple classes with the same name to exist in the same image, with code referencing through its class' "environment".
- New and improved sorting utilities for Arrays and OrderedCollections.
- New FloatCollection inherits the convenient add:/remove: API of OrderedCollection, but using an internal FloatArray for better efficiency.
- An all-new LRUCache implementation.
- Promise is now a fully chainable object with decent error handling.
- Moved classifying and logging behavior out of Compiler (a responsibility of Behavior).
- Faster and better Random.
- log/ln fixed for integers.
Dates and Times
- New methods provide access to primitive 240 and 241, which can provide microsecond resolution timestamps on Cog VMs.
- New convenience methods allow creating DateAndTimes relative to now (e.g., "5 minutes ago").
- Parsing improvements.
Text, Graphics, Sound
- Form>pixelValueAt: now makes use of the new primitivePixelValueAt:, avoiding the overhead of a full BitBlt.
- Elimination of the dual hierarchy of NewParagraph & MultiNewParagraph etc and TextStopConditions and lots of Scanner improvements.
- PaintBoxMorph re-engineering.
- ADPCMCodec performance improvement.
IDE, Monticello and Trunk process improvements
- Several MVC fixes allow debugging in MVC once again.
- Smart-Splitters causes the bars between browser panes to automatically optimize their position.
- Fixed color-selection from anywhere on the screen working again.
- Improved command-line interface via Smalltalk run: [ :arg1 :arg2 | ... ].
- squeakDebug.log report length is now settable.
- MCReorganizationPreloader now resolves moves between arbitrary packages, independent of their order in the configuration.
- mcz/snapshot/source.st now encoded in UTF8 instead of latin-1.
- New pre-selection highlight feature for lists.
- System space analysis now available in Help | About.
- Message-traces can be pared more easily.
- Lots of improvements in the CI build/test slave.
- Installer now documents externally-loadable packages as simple literal structures that can be merged via Installer>>#merge:.
- MC ancestry history strings can now be stubbed for a smaller image and sustainable MC history.
History and Accounting Tools
- A great new historical website by Bob Arning.
- MC history and origin is now available for methods and class-definitions from browser menus.
- A new amazing ObjectHistory makes it possible to efficiently track the born-on date of any object to a resolution of one minute.
- Added "search history" to Package history browser.
Fixes and cleanups
- Packages organized toward eliminating circular dependencies, and with proper concern for existing and future UI frameworks.
- Updated uses of SmalltalkImage current to, simply, "Smalltalk."
- Moving away from use of Utilities.
- More preferences made pragma-based.
- Compiler factorings and cleanups.
- Diminished excessive usage of ReadWriteStream.
- ProtoObject API balanced and minimal.
Application Upgrade Notes:
- Default Float printing is now true to its internal representation. Apps must now use appropriate methods to format Floats rather than roundTo:.
- ($a to: $b) now returns 'ab' rather than #($a $b).
- Remove OneCharacterSymbols optimization.
- LRUCache instance migrations, if any. See post-scripts in Collections-ul.546, 547.
- Rectangles with 0 area (e.g., lines) can now intersect.
- MultiNewParagraph was removed. Applications should now use NewParagraph.