1. Check that file out into your Squeak working directory under "release-notes".
2. Open Squeak's Help Browser via Help>ReleaseNotes in the world's main docking bar..
3. Make changes. [CMD]+[1-9] offer interesting formatting options. Text URLs can trigger code evaluation such as "code://String browse".
4. Save changes via [CMD]+[S]. Changes will be written into the file system directly.
5. Upload the changed file into the GitHub repository again. Or ask somebody with access rights to do it.
The call "ReleaseBuilder fileOutChangesBetweenReleases" creates a mark-down file with the latest commit messages. This can be used to track down what happened since the last release.
Temporary state:
Improvements in Language, Tools, and the Environment
Balloon
Balloon primitive methods now return default values instead of failing if there is no plugin available
ExternalForm from the EToys package has been added
WebClient
- Accept text/html by default only when the user has not specified their own mimeType
Network
Fixed issues with ServerDirectory
SocketStreams now makes use of IPv6 unless old networking is requested
Added TLS to ProtocolClient subclasses such as the SMTPClient
Updated MailMessage infrastructure which a more distinct separation between MailMessage and MIMEDocument
Added a new Toolbuilder-based MailComposition tool
Made the SMTPClient aware of cc and bcc
Improvements to closing Sockets
Compression
Improved error messages for ZipArchives
Fixed issues with the ZlibPlugin
Compiler
Extended support for full blocks (e.g. InstructionStream, Decompiler, source mapping, super sends)
Added further support for the SistaV1 bytecode
Made reindexingLiteralsDo: more robust
Changed the handling of the Undeclared dictionary
Made the method generator encoder-specific
The maximum number of literals changed to 32767
Fixed issues with the decompiler, the evaluate:in: messages
Added support to pretty-print code snippets
Renamed DecompilerConstructorForClosures into DecompilerConstructor
Moved BlockLocalTempCounter to Kernel as it is used to implement BlockClosure>>numTemps, which is used more broadly than simply the decompiler and debugger.
Moved CompiledMethod>>startpcsToBlockExtents and its support machinery to Compiler; it is used both by the Decompiler and the Debugger and so belongs in Compiler, not in Tools.
Removed references to the #braceWith: message
Collections
RFC2047MimeConverter class was deprecated as the name is too formal. It is replaced by the QEncodingMimeConverter converter.
The CharacterSet hierachy was consolidated
Improved the CharacterSetComplement collection filter protocol
Added a Bit7MimeConverter
Added support for writing Strings to binary WriteStreams
Added a convenience method for selecting a MIMEConverter
Added at:ifPresent:ifAbsent: support to SequenceableCollection
Improved the implementation of WeakIdentityKeyDictionary
Extended the convenience API of Text to be closer to the one provided by String
Several improvements of general collection mesesages in Intervall, RunArray, ArrayedCollection, Heap, and SequenceableCollection (including index-related search methods)
Updated messages to access the set of sent messages in a method to work with full blocks
Refactoringed parts of StringHolder
Integrated the new multiple bytecode set aware scanner
Changed the Monitor class to be a subclass of Mutex
Added isCompiledCode
Improved performance of Integer>>#isPrime
Improved CompiledCode handling and accessing of literals
Added CompiledMethod>>scanForInstructionPattern: as a convenience method
Random now makes use of primitive implementations for entropy gathering if available
Improved the handling of rejectors and resolvers of long-lived promises
Fixed an infinite wait after a rejection in Promise>>#waitTimeoutMSecs:
Introduced #isPromise
Introduced, #>>= as an alias for Promise>>#then: as a binary message allows for more convenient chaining of Promises (also added #>>)
Changed the Promise semantic to be closer to Javascript: resolving a Promise with another Promise causes them to be chained together, resolving or rejecting a Promise that is not pending is a no-op
Redefined CompiledCode>>#= in terms of hasSameLiteralsAs: which is a subclass responsibility
Added full blocks support to various messages (decompileWithTempts, pcPreviousTo:, =, ...) and refactored what is now the CompiledCode hierarchy
Added full blocks support to the debugger and the instruction printer
CompiledBlock now refers to outer method for full properties and pragma protocol
Moved BlockLocalTempCounter to Kernel
Moved CompiledMethod>>startpcsToBlockExtents and its support machinery to Compiler
Uses the new file dialog for object saving
Made saving of projects aware of different word sizes and different kinds of blocks
Removed the method UndefinedObject>>suspend
Moved messages to access global Morph objects (e.g. currentHand) to Morphic
Added support for custom compiler classes for class-side methods
Improved the implementation of Context>>arguments
Cleaned up pinning protocols
Improved the performance of #raisedTo: in some cases
Added Fraction>>gcd: and Fraction>>lcm:
Corrected digitLength for negative SmallInteger
Removed methods for pre-v3 bytecode sets
Multilingual
Added an UTF32TextConverter
Improved the exceptions created during conversion to Unicode by adding new exception classes and providing more details in exceptions
Added String>>utf8Encoded and ByteArray>>utf8Decoded
Added new TextConverters for a number of missing encodings
Renamed Latin1TextConverter to ISO88591TextConverter but keeps the Latin1TextConverter around
Made determining the localeID more robust
Fixed issues to make the Japanese locale work more reliably
Fixed an issue with MultiByteFileStream
Fixed issues in the ByteTextConverter classes and refactored classes across the hierarchy
MonticelloConfigurations
The upgrade/update process now suppresses deprecation warnings and logs errors instead of stopping
Extended the Monticello Updater protocol with methods for updating up to a specific version number
Finished a refactoring of MCMcmUpdater moving more methods to the instance side
Minor improvements to the MCConfigurationBrowser
PackageInfo
Changed lookup to respect environments
Environments
Added an exception to allow callers to choose an environment
Added convenience messages to dynamically scope the activation of an environment to a block
Fixed an issue with unbinding bindings from other environments
Fixed an issue with the Undecleared bindings
Chronology
Added support to create a DateAndTime from a UNIX time value
Added a convenience protocol to wait on a duration: Duration>>#wait
Files
Mitigated and issue with a read-only file stream on the changes file under Linux
Fixed an issue caused by a missing synchronization before an external file read
GetText
Removed deprecated API calls
Updated the exporter to respect dynamic translations
SqueakSSL
Added a message to check whether certificates can be verified on the current platform
Sound
Enabled drag and drop for wave files from the host system
Added SoundPlugin primitives that deal with multiple devices etc.
ToolBuilder-Kernel
Added a callback to pluggable tree specifications to retrieve the currently selected path in the tree
Added double click callbacks to pluggable tree specifications
Added various convenience selectors
Added new convenience selectors for saving files
Added a multi-column list
Made the new file dialogs available through the UIManager
Added a message to indicate some sequential progress
Installer
Added handling of SSL errors
Added a convenience script to install (or update) Metacello
Changed personal SqueakSource repositories to default to port 8079 because 8888 is often used for testing
ImageSegmentLoader
the legacy image segment loader was fixed, method readObject so that
a considerable number of SqueakLand Etoys projects load
Major Deprecations
SmallLand was unloaded because we have now UserInterfaceTheme instead of ColorTheme.
RFC2047MimeConverter was deprecated as the name is too formal. It is replaced by the QEncodingMimeConverter converter.
Deprecated #setAuthorInitials:. Use #authorInitials:.
Deprecated #exploreAndYourself anymore
Deprecated Object>>#clone. Use #shallowCopy instead
Known Issues
Compatibility Notes
Several classes and methods were deprecated and will be removed in the future.
The package 311Deprecated was unloaded.
Window re-use was deprecated
ContextPart, BlockContext, and MethodContext have been deprecated in favor of Context