These merchandise notes are optimized for viewing wrong Squeak, arsenic they incorporate a batch of interactive examples. On this page, interactive links unfastened successful SqueakJS, which is simply a browser-based Smalltalk VM pinch immoderate limitations. For the champion experience, download Squeak and publication the merchandise notes there.
*** Squeak 6.1 "Vanessa" Release Notes ***
As Squeak approaches its 30th anniversary, we are proud to denote the adjacent type of the system, Squeak 6.1. Some highlights of this merchandise are:
- A caller tree browser, which enables navigation done classes and categories utilizing refurbished hierarchical morphs,
- The return of Objectland (also known arsenic the "Worlds of Squeak"),
- Several changes and fixes for the kernel infrastructure for simulating, unwinding, and scheduling processes and reshaping classes,
- Miscellaneous improvements and additions to the toolset and personification interface for inspecting, debugging, profiling, and versioning code.
Please find beneath a elaborate listing of each the changes, which includes notes connected Major Deprecations, Known Issues, and Compatibility Notes astatine the bottom.
About these merchandise notes. Phew, what a release! Since the past merchandise 4 years ago, we person merged 1700+ patches pinch 9000+ method changes. Beyond documenting method changes successful detail, these notes item the bigger image and the wide effect of awesome developments. Along the way, you will find plentifulness of links to code pointers and interactive examples. Thus, these merchandise notes service not only arsenic a changelog but besides arsenic a hands-on guideline to exploring caller features and mechanisms successful Squeak. Click here to position an outline of this document.
In representation of Vanessa Freudenberg (1972-2025).
/^(o.o)^\ /^(o.o)^\ /^(o.o)^\ /^(o.o)^\ /^(o.o)^\Detailed Improvements successful Language, Tools, and the Environment
~~~ GUI Frameworks ~~~
Morphic (up to Morphic-ct.2218/MorphicTests-ct.97)
- Major overhaul of tree morphs:
- Improves colors and mouse and keyboard shortcuts for navigating trees.
- Revises type-to-filter akin to lists, highlights hunt terms, and enables searching azygous columns via [TAB]. Adds a configurable select mode to hunt wrong the existent selection, each visible nodes, aliases the full tree.
- Introduces a recursive "find"/"find again" characteristic disposable via [CMD] + [F]/[CMD] + [G].
- Adds a flag for automatic description of trees.
- Improves support for drag'n'drop by automatically expanding nodes during dragging aft 1 2nd of hovering.
- Miscellaneous stableness and capacity improvements for layouting, rendering, and arena handling successful trees.
- In the world, supports dropping of class references, system and method categories, and inspector and explorer fields to show them successful a caller window/widget.
- For rodent interactions, adds caller preferences to customize the double-click time and drag thresholds.
- In the docking barroom model menu, adds an point to illness windows. Makes "find workspace" easier to usage by expanding the selected model if collapsed. Reorders and decorates items successful the help menu.
- Text editors:
- Underlines links (like this one!) during hovering and makes clicking and matter action done them much convenient.
- When enclosing/unenclosing a action successful single/double quotes, nested quotes are now automatically escaped/unescaped.
- Morphic API: Allows morphs to opt retired of individual halo events and to specify a balloon matter via a block alternatively of a selector.
- Menu construction:
- Adds caller utilities for adding item groups and temporarily switching action targets during construction.
- #addList: now interprets backslashes successful thief tuples arsenic statement breaks.
- Automatically trims trailing lines betwixt paper items.
- Revises the debug menus of respective morphs by adding a time-profiler shortcut for buttons, providing entree to the database and tree contents, and making existing "browse action" and "debug action" commands faster and much reliable.
- Honors the penchant "Open Tools Attached to Mouse Cursor" successful Morph>>openAsTool.
- Lots of UI tweaks and stableness improvements:
- Improves theme support for progress bars, matter morph menus, and dialog windows.
- Improves high-DPI support for buttons, scroll panes, sliders, menus, multi-selection lists, trees, drop-shadows, the scratch pad, the keyboard exerciser, and others.
- Improves multilingual support successful different places.
- Fixes slips regarding the world show extent menu, clock configuration changes, search-bar print-its, project position morph styling, and transcript counting.
- Fixes an rumor erstwhile profiling codification wherever personification events were swallowed.
- Several layouting fixes regarding proportional layouts, text morphs, scroll panes, and transformation morphs.
- Fixes rendering issues pinch transform morphs, polygons, multi-selection lists, and trees.
- Fixes scrolling successful nested scroll panes.
- In matter morphs, improves stableness of matter action and tweaks indentation regarding quiet and blank lines.
- Fixes "browse senders" of true, false, and nil, adds missing access to workspace bindings during accept-its, and improves robustness of editor history.
- Fixes bugs successful building of text containers and conversion of paragraphs to texts.
- In lists, fixes automatic action earlier dragging an item.
- Fixes incorrect yellow-button paper invocation connected buttons and lists.
- Fixes a bug during paper construction, which depended connected uninitialized state.
- Fixes scaling of color forms.
- Fixes introspection of arena handlers successful morph meta-menus.
- Improves compatibility betwixt old and new balloon morphs.
- Fixes a remarkable slip that (1) prevented collapsed windows from applying a caller UI taxable and (2) introduced a perchance important representation leak of windows.
- Fixes an rumor connected macOS wherever calling the VM pinch further bid statement arguments aliases plugging successful outer devices led to an incorrect "The VM is configured arsenic a singleton application" warning.
- Improves stableness and backward compatibility erstwhile loading morphs from files.
- Fixes cross-compatibility and concurrency issues pinch MVC.
- Improves reliability of halos.
- Improves capacity of ample character widgets, transformation morphs, and animated GIFs.
- Miscellaneous clean-ups and archiving improvements for input events, editor attributes, and others.
MorphicExtras (up to MorphicExtras-ct.360)
- Introduces Objectland, which is simply a reconstruction of the celebrated "Worlds of Squeak" from 2003 and offers a colorful postulation of examples that show the multifarious capabilities of Squeak. Re-adds the classical Etoys title car example and adds respective caller examples.
- After 18 years of spotless, cleanable Squeak, reintroduces and updates the celebrated BlobMorph.
- For webcams, adds a reflector action and extends interface for double-buffering. Improves UI and stableness of webcam morph.
- Improves instrumentality paper of score players.
- Fixes the "preserve trash" penchant and improves the robustness of the piano keyboard.
- Improves high-DPI support for the objects tool, respective of its devices specified arsenic event recorders, score players, recording controls, and piano keyboards, and respective EToys-related morphs.
Etoys (up to EToys-ct.532)
- Restores and revises a tutorial connected coating and creating scripts successful Etoys.
- Adds an undo fastener to FreeCell.
- Improves authorities denotation successful Tetris.
- Improves instrumentality paper of the midi input morph.
- Improves robustness of the players gallery, the spectrum analyzer, and the midi input morph. Fixes changing the heading of a player.
- Clean-ups and fixes for cards and stacks.
- Improves high-DPI support for Etoys icons, tile morphs and book editors, all games, the objects tool, the spectrum analyzer, record lists, watches, and calendars.
- Minor speedups for Kedama and players.
- Several clean-ups and refactorings that amended wide modularity and debar unintended limitations of different packages connected Etoys.
ST80 (up to ST80-mt.311)
- Adds a adjacent point to the world menu.
- Improves high-DPI support for strategy views.
- Adds View>>imageForm for taking a screenshot of a position and displays it successful inspectors.
- Adds editor shortcut [CMD] + [SHIFT] + [D] for "debug it" (already exists successful Morphic).
- Miscellaneous fixes and stableness improvements:
- Ensures confirmation dialog earlier closing the existent MVC project.
- Prevents unexpected author-initials dialog erstwhile opening the ST80 world paper for the first time.
- Avoids an rumor pinch old deferred actions successful an quiet MVC world, which caused emergency debuggers to look only aft pressing a rodent button.
- In matter editors, fixes pretty-printing and spawning if nary compatible exemplary is available. Gently handles nil action provided by the model. Fixes an rumor pinch precocious introduced keyboard shortcuts.
- Repairs folder choosers.
CommandLine (up to CommandLine-eem.27)
- Repairs the penchant "Save snapshot of image connected failure".
- Improves UIManager support for various record dialogs, font dialogs, confirmations, and requests.
- For interactive dialog requests, improves the correction connection earlier quitting.
~~~ Programming & Tools ~~~
Tools (up to Tools-mt.1366/ToolsTests-ct.137)
- Introduces a caller tree browser, which displays strategy categories, classes, and connection categories successful hierarchical panes and integrates Monticello packages. There are besides five caller preferences for configuring its appearance.
- Reworks drag'n'drop for character browsers and accepted browsers to support all meaningful combinations of panes for copying aliases moving classes, methods, and categories.
- Adds double-click support for hierarchy character browsers to move the cardinal class. This is particularly nosy for multi-inheritance hierarchies pinch traits.
- In the people pane menu, adds new items for generating a caller people aliases trait.
- In the connection class menu, adds items to browse each [related] connection categories successful the system.
- In the note pane of people definitions, adds a shortcut for reference the afloat people comment.
- Simplifies extension point for civilization browsers to registry arsenic level browsers.
- Improves multi-environment support for each kinds of browsers and connection sets.
- In the Message Names tool, shows the definition, comment, and level for class results.
- Extends inspector support for civilization fields:
- Allows objects to lend custom inspector fields and menu items.
- Adds caller meta (shift) menu to inspect fields aliases browse/debug their accessors.
- Adds InspectorField>>#printBlock: for customizing the practice of a section independently of its underlying (inspectable) value.
- When inspecting ample collections, allows disabling truncation to show each elements.
- Makes inspection and debugging of transparent proxy objects and unhashable objects much reliable by avoiding sending them immoderate messages, to which they mightiness respond slow aliases catastrophically.
- Debuggers:
- Adds "send until…" command to precisely hunt for a information successful nested connection sends.
- Improves "run to here" command to scope expressions successful blocks.
- Improves correction handling for invalid tally until/send until expressions. For "return entered value", uses the due evaluatorClass of the receiver.
- To the stack database menu, adds "select home" option for uncovering the location contexts of (possibly profoundly nested) blocks.
- Makes the signaled objection and suspended process accessible successful the debugger erstwhile nary discourse framework is selected. Try it out!
- Adds a byteCodes mode to the debugger to position and measurement done the azygous VM instructions of a method (similar to the byteCodes mode successful browsers). Adds a caller "simulate" fastener to debug really Squeak's metacircular evaluator (aka discourse simulator) interprets the adjacent bytecode. The caller mode is reachable done the model paper > "what to show…", or, erstwhile extra debugger buttons are enabled, done the "source" fastener supra the codification pane.
- Miscellaneous clean-ups and improvements for customizing inspector classes.
- Welcomes AndreasSystemProfiler successful the trunk, which was antecedently hosted successful the VMMaker repository. Improves study format, robustness for tallying primitives, and documentation.
- In workspaces, adds a "load contents from file…" option to the model menu.
- Improvements to change recovery: Improves parsing of people definitions, method removals, recategorizations, and more. Adds and revises paper items to prime each changes of a fixed type aliases select for changes to the presently selected type aliases selector.
- Adds utilities Process>>#browse and Context>>#tempNamed:[put:].
- Adds file services for viewing compressed csz and stz archives.
- In truncated record lists, inserts a nexus for reference the full file.
- Improves layout of code-point browsers for single-byte text-converters.
- Miscellaneous UI improvements and bug fixes:
- Fixes for browsers:
- Fixes shortcut inconsistency successful single-category browsers.
- Improves robustness successful browsers erstwhile defining traits.
- Fixes a gaffe successful level browsers that spawned a caller redundant browser erstwhile redefining the selected class.
- Fixes package pane browser to really usage the package organizer alternatively of parsing the strategy class list. If nary class is selected, shows each classes from the package.
- Deduplicates menus successful package pane browsers.
- Fixes missing UI updates and class-side do-its successful package pane browsers and dependency browsers.
- Fixes UI proportions and styling of people definitions and comments successful file contents browsers.
- Consistently sorts classes successful class database browsers.
- Fixes for connection traces:
- Ensures accordant method labels successful connection traces.
- Improves robustness and dialogs for browsing senders/implementors.
- Minor UI drawstring fixes.
- Fixes for connection names:
- Fixes spawn ([CMD] + [O]) successful message names.
- Improvements for versions browsers:
- Displays the stamp and class of the selected version, alternatively than ever the existent version's.
- When filing retired a method, adds missing record extension.
- Fixes for change lists:
- Fixes alteration logging for methods that are recompiled from a browser without its existing class being selected.
- Improves robustness of retrieve changes scanning.
- Improves stableness for "remove older method versions".
- Fixes for inspectors and explorers:
- Fixes inspecting of forms successful non-native show depths.
- Fixes nested impermanent variables erstwhile inspecting blocks.
- Fixes inspecting dictionaries pinch non-storable keys.
- Adds styling of thisContext successful discourse inspectors successful debuggers.
- Fixes shortcut for opening an Etoys spectator ([CMD] + [V]).
- Improves robustness erstwhile exchanging the inspected entity successful an inspector.
- Improves robustness of "copy expression" for a selected field.
- Fixes handling of unsaved changes successful inspectors and explorers by utilizing caller #okToChange: hook.
- Harmonizes entity explorer labels to lucifer labels successful the tree.
- Fixes for debugger:
- Fixes stepping done abort messages specified arsenic #mustBeBoolean and restarting from primitive methods that nary longer fail, and updates model explanation accordingly. Improves tests.
- Fixes highlighting of adjacent look for to:do: statements and assignments.
- Fixes out-of-date discourse variables aft restarting the apical context.
- Fixes regression successful runUntil erstwhile pressing shift.
- Fixes "return entered value" to decently observe unhandled errors during unwinding.
- When recompiling a method successful a debugger, allows to proceed contempt of nary progressive location method. Fixes bug erstwhile recompilation is aborted.
- Improves stableness and up-to-dateness of stack list.
- Miscellaneous clean-ups.
- Fixes for browsers:
- Speeds up process browser for managing very ample lists of processes.
- Improves high-DPI support for strategy browsers and FileList2.
- Miscellaneous improvements of multilingual support.
- Significantly improves trial sum of tree browsers and debuggers.
ToolBuilder (up to ToolBuilder-Kernel-ct.176/ToolBuilder-Morphic-ct.370/ToolBuilder-MVC-mt.77/ToolBuilder-Tests-ct.9)
- Adds support for blocks successful ToolBuilderSpec>>help: and PluggableMenuItemSpec>>action:.
- Improves compatibility betwixt MenuMorphs, CustomMenus, and PluggableMenuSpec.
- Adds UIManager>>inform:title: for besides providing a title.
- Adds UIManager>>chooseFileFrom:[…] for providing a commencement directory.
- Adds shorthands UIManager>>chooseFile and UIManager>>multiLineRequest:[initialAnswer:].
- For UIManager>>informUser(:d|D)uring:, provides optional entree to the advancement barroom wrong the provided artifact and decently returns the consequence of the block.
- Stops ignoring thief texts for checkboxes and paper items.
- Morphic-specific changes:
- Improves convenience and stableness of file selection dialogs. All kinds of record dialogs now incorporate an reside bar. Improves handling of extensions, automatic action by typing into reside bar, and handles double-click connected a record to corroborate the dialog.
- In lists and trees, allows the exemplary to determine whether it accepts a dropped entity based connected the hovered item.
- Adds caller model-changed operations for trees to expand aliases update the labels of nodes. Forgives models that do not emit the existent way for the existent action but fetches the caller way automatically.
- For character specs, adds a caller filter mode and search mode.
- Fixes UI glitches erstwhile dynamically updating the children of windows and panels.
- Clean-ups and deduplications for trees.
- MVC-specific changes:
- Adds fixed support for children selector successful panels analogously to windows (dynamic children updates successful MVC are still not supported). Fixes a layout gaffe for zero children.
- In MVCToolBuilder>>open:label:, adds missing support for position and paper arguments.
- Fixes UI glitches erstwhile closing windows pinch scroll bars.
SUnit (up to SUnit-mt.153/SUnitGUI-mt.95/SUnitTools-mt.9/ToolBuilder-SUnit-pre.22)
- Indicates timeouts successful TestResult and displays them successful the test runner.
- Repairs the removal of classes via #classNamesNotUnderTest.
- Fixes trial procreation for #// selectors.
- Properly resets unexpected passes erstwhile rerunning failures successful trial runner.
Nebraska (up to Nebraska-ct.65)
- Adds support for mouse-wheel scrolling successful distant terminals.
- Improves reliability of arena handling for remote terminals, making it imaginable to freely move, resize, and rotate terminals successful the client's world again.
- Fixes default larboard action for Nebraska connections.
- Improves correction handling for refused peer-to-peer connections.
Protocols (up to Protocols-ct.91)
- Improves high-DPI support for lexicons.
- Fixes and cleans up model titles of lexicons.
Services
- No changes.
Shout (Syntax Highlighting) (up to ShoutCore-ct.98/ShoutTests-eem.34)
- Styles comments successful italics by default and provides a preference for this behavior.
- Fixes parsing of unary selectors opening and/or ending pinch underscores.
~~~ Core Language ~~~
Kernel (up to Kernel-ct.1688/KernelTests-ct.482)
- Numbers:
- Adds caller accommodation Complex>>log, Integer>>bitInvert64, Integer>>timesCollect:, Number>>timesTwoPower:, and ScaledDecimal>>printFractionAsDecimal.
- Corrects behaviour for #sin, #cos, and #tan for immense integers and fractions.
- Several fixes for number parsing (rounding of floats pinch ample antagonistic exponent and nary fraction part; parsing of FORTRAN numbers).
- Various optimizations for integer spot manipulation, mixed int-float arithmetic (+ - *), float-to-fraction conversion, and trigonometric functions.
- Adds support for non-local exits pinch values done BlockClosure>>valueWithExitValue.
- Models: Allows unsaved changes checks to beryllium scoped to peculiar views, making it easier successful immoderate devices to, for example, prime a different database point aliases unfastened a paper without needing to cancel changes successful an editor.
- Debugging utilities: Adds #haltOnceIf: arsenic a national of #haltOnce and #haltIf:. Makes ObjectTracer/ObjectViewer tin of proxying true/false.
- Debugging & simulation:
- Fixes various separator cases of the context simulator, which is utilized for stepping methods successful the debugger. This improves the wide robustness and correctness erstwhile debugging the full strategy from wrong itself. Concretely, we revised debugging of Objects arsenic Methods and #mustBeBoolean, corrected simulation of a fewer SistaV1 instruction types, and fixed the simulation of various control primitives.
- Adds support for recursive process-faithful debugging, frankincense making it imaginable not only to debug a debugger but besides to debug a debugger which is debugging a 3rd debugger.
- Signals a caller SimulationSideEffectWarning earlier simulating definite primitives to let clients specified arsenic debuggers to power the scope of simulation.
- Fixes the debugger erstwhile stepping done a dead location context.
- Processes & scheduling:
- Improves and amended documents process termination and stack unwinding for respective separator cases, making repeated termination of halfway-unwound processes and debugging successful concurrent settings much reliable. Improves stepping and closing a debugger while the debugged process is suspended, blocked, performing a non-local return, aliases moreover astir to resume from a BlockCannotReturn exception.
- Prevents Process>>destroy from crashing the full VM erstwhile sent to a blocked process.
- Fixes rescheduling aft BlockClosure>>valueAt: and BlockClosure>>valueUnpreemptively by introducing a caller primitive for Process>>priority:.
- For threaded VMs, adds Process>>isInExternalCode to trial whether a primitive is moving successful the background.
- Makes it imaginable to reset a scheduled Delay.
- Promises:
- New helpers for combining promises specified arsenic #all:, #anyOne:, and #race:.
- Adds and revises accessors for awaiting and testing promises. Promise>>value is now a synonym of #wait; if the committedness rejects, some nary longer wrap the correction into a BrokenPromise but re-raise it straight (see Major deprecations below). Accelerates waiting for already resolved promises.
- Does not prematurely neglect a committedness erstwhile its solution triggers a breakpoint aliases signals a (resumable) Notification.
- Methods, context, and artifact closures:
- Adjusts further accessors and queries for the caller SistaV1 bytecode group and afloat artifact closures. Cleans up vocabulary connected BlockClosure and Context for accessing home contexts and methods.
- For Sista, allows creating classes pinch up to 64k lawsuit variables.
- Fixes different instruction tests.
- Speeds up bytecode/literal enumeration for faster SystemNavigation queries.
- Improves method symbolic matter done colorful styling and by labeling instance adaptable references.
- Makes CompiledCode equality invariant nether the caches utilized for internationalization and BlockClosure>>once. Improves parsing of method timestamps.
- Allows constructing MessageSends without a receiver and extends their accessing/conversion/testing protocols. Improves polymorphism pinch WeakMessageSend.
- Speeds up enumeration of pragmas and selectors by 20%.
- Classes and organizers:
- Speeds up class (re-)building by much than 30% by utilizing the MethodMassage package (see below).
- Improves wide reliability of source logging aft correcting a syntax correction and erstwhile recategorizing classes, removing people variables, aliases changing people comments.
- Automatically sanitizes class and package names by removing leading/trailing spaces. Adds conveniences Categorizer>>includesCategory: and #classifyAll:under:suppressIfDefault:. Renames ClassDescription>>[all]MethodsInCategory: to #[all]SelectorsInCategory:.
- Persists the preferences processPreemptionYields and "map power keys to bid keys" crossed image restarts.
- Improves multilingual support successful various places.
- Miscellaneous improvements to archiving of suspension/resumption points, stack unwinding, and others.
- Miscellaneous improvements to trial coverage, particularly for simulation, unwinding, and process termination.
- Overall clean-ups and refactorings. Work continues connected improving modularization and avoiding dependencies from halfway packages connected ST80, MorphicExtras, and EToys.
Collections (up to Collections-ct.1115/CollectionsTests-ct.419)
- Adds galore caller conveniences for enumerating, copying, and modifying collections and streams (click to browse them all!). Improves weak typing betwixt magnitudes and dictionaries truthful that arithmetic tin beryllium applied to dictionaries (click present for examples!).
- Introduces AlternativeSortFunction for sorting collections based connected binary predicates.
- Adds caller string conveniences for prefix/suffix testing, escaping, and index-to-row/column conversion.
- Improves printStrings and entity explorer representations of bags and sets, dictionaries and run arrays, strings and characters. Adds preview of formatted texts to entity inspectors.
- Texts: Adds #addAttributeBack:* for adding caller attributes beneath existing attributes and fixes TextStream>>withAttribute[s]:do: to sphere existing dominating attributes. Adds conveniences for testing texts for attributes and converting them to plain text. Improves polymorphism of texts pinch strings.
- Improves HTML parsing truthful that it now tin correctly process astir clipboard contents and rich-text emails (see below):
- Makes it imaginable to block downloads aliases execution of untrusted HTML resources.
- Adds support for <blockquote>.
- Revises whitespace handling for tags specified arsenic <p>, <div>, and <pre>.
- Properly ignores non-textual elements specified arsenic <script> and <style> tags.
- Improves robustness for parsing HTML5 void tags, redundant closing tags, and invalid/unsupported CSS properties.
- Fixes escaping/unescaping of typical characters successful HTML/XML entities and URLs.
- Adds support for base32 encoding/decoding.
- Adds Object>>isAssociation.
- Miscellaneous capacity improvements for sequenceable postulation accessing, linked database enumeration, RunArray accessing and sorting, string substitution and tokenization, text formatting, and character printing.
- Several bug fixes for RawBitsArray accessing, matrix enumeration, stream resetting and binary streaming, and filing successful of hashed collections. Enhances accuracy of String>>findSelector heuristics (used by [CMD] + [N] for "senders of it" et al.) by trying to reuse the existent Smalltalk parser first. Improves hashing, copying, and comparing of text attributes and sort functions.
- Improves multilingual support successful respective places. Switches #asCommaStringAnd to usage the Oxford comma.
- Overall clean-ups, refactorings, and documentation improvements.
Chronology (up to Chronology-Core-ct.98/Chronology-Tests-ct.40)
- Refactors clip zones into an extensible people hierarchy to alteration the meaning of DST-aware zones specified arsenic TZ-Olson.
- Restores ANSI compliance of DateAndTime>>offset: by answering an balanced clip alternatively of reinterpreting it successful a different clip zone. Adds #asLocalAt: and #utcOffset: arsenic compatibility synonyms of the aged and caller behavior.
- Repairs "high-resolution timepiece for timing" preference and improves precision of Time class>>nanosecondsToRunHighRes: erstwhile the penchant is enabled.
- Fixes a race condition erstwhile terminating a process during BlockClosure>>valueWithin:onTimeout:.
- Overall improvements to documentation. Adds convenient accessor fields to inspectors connected chronology objects.
Compiler (up to Compiler-ct.535)
- Allows sending #pvt* selectors to super, frankincense making it imaginable to override and widen backstage methods successful subclasses.
- Parser warnings:
- Adds a caller opt-in penchant for interactive warnings astir adaptable shadowing to switch classical transcript warnings.
- Removes warnings astir undefined impermanent variables erstwhile they are being sent a nil check.
- Adds missing informing astir unknown binary selectors, analogously to warnings astir chartless unary and keyword selectors.
- Improves handling of comments successful the parse character by ever assigning them to the nearest look aliases connection and printing nodes pinch comments much reliably. Adds caller penchant to power hard-wrapping comments during pretty-printing, which is now abnormal by default.
- Records source ranges for variables by introducing VariableUsageNode to use action successful the debugger and root localization for different AST users.
- Avoids side-effects connected awesome tables during parsing by signaling caller UnknownSymbolNotification that cautious clients tin grip earlier a caller awesome is created.
- Moves Compiler class>>parserClass to Compiler class>>preferredParserClass.
- Fixes respective parser bugs regarding pragmas (pragmas earlier temporaries, unary pragma parsers), handling underscore selectors, parsing standalone literals, and compiling early sends. Corrects slips during encoding and decompiling of Sista-specific instructions and full blocks.
- Adds a utility to compute fixed bytecode frequencies.
- Miscellaneous documentation improvements.
Environments (up to Environments-ct.88)
- Adds Object>>isEnvironment.
- Speeds up Environment>>classOrTraitNamed:.
PackageInfo (up to PackageInfo-ct.81)
- Automatically sanitizes package names by removing leading/trailing spaces.
- Improves multi-environment support erstwhile accessing classes of a package.
- Accelerates package-from-method lookup, speeding up Monticello snapshots by up to 400%.
Traits (up to Traits-ct.320)
- Adds trait templates pinch composition.
- Improves multi-environment support, truthful 1 tin specify and entree traits successful different environments correctly.
- Minor refactorings, successful particular, uses caller MethodMassage package for compiling traits.
MethodMassage (up to MethodMassage-ct.75)
Welcomes the MethodMassage package successful the trunk, which makes it convenient to disassemble compiled methods arsenic first-class objects pinch reified labels, inspect and rewrite them, and reassemble them. Previously, MethodMassage was developed and tested successful the VMMaker repository for astatine slightest 10 years. Recent changes to the package see instance adaptable remapping to support people reshaping successful the trunk, improved archiving and trial coverage, respective capacity improvements, and full support for the V3PlusClosures bytecode group alongside SistaV1.
~~~ Graphics & Sound ~~~
Graphics (up to Graphics-nice.562)
- Adds support for basic CSS colour functions to amended HTML parsing.
- Adds dithering for smoothly reducing the colour extent of forms.
- Adds accessors for surface dimensions of aggregate monitors.
- Improves font preview for awesome fonts.
- Fixes Color mercury, decoding of transparent pixel values, copying of forms and cursors, discovery of missing glyphs successful strike fonts, opening of GIF files, and loading of translucent interlaced PNG images.
- Several capacity improvements for form filtering, color construction and crayon constants, rectangle merging, #px, and PNG reading. Removes unused font information to prevention space.
- Miscellaneous improvements for multilingual support, documentation, and trial coverage.
- Deprecates AnimatedGIFReadWriter successful favour of GIFReadWriter.
Balloon (up to Balloon-ct.36)
- Minor performance improvements.
- Improves archiving of gradient fills.
TrueType (Fonts) (up to TrueType-tpr.99)
- Fixes backward compatibility pinch fonts that only person a deprecated Unicode mapping table.
- Adds utility for exploring each glyphs of a font.
Sound (up to Sound-ct.102)
- Adds accessors for enumerating disposable sound player and recorder devices and mounting the existent device.
- Adds missing methods for stopping composite sounds.
- Adds a file service for reference AIFF files.
- Adds convenient inspector fields to sounds.
- Improves reliability of storing sounds (fixes redundant trailing zeros and an endianness rumor erstwhile storing connected in-memory streams).
- Improves capacity of StreamingMonoSound.
~~~ Files & Network ~~~
Files (up to Files-mt.223)
- Adds a preference for caching the changes record in the image alternatively of logging changes to disk. This complements existing support for caching the sources file successful the image (introduced successful Squeak 6.0) and allows a Squeak image to tally arsenic a standalone record without further limitations connected the record system.
- Provides entree to system situation variables and the current moving directory of the VM.
- On Linux/Unix platforms, adds support for tilde (~) way description to the location directory.
- Adds a record work for browsing .sources files.
- Improves reliability of listing directories pinch immoderate inaccessible entries, testing whether a directory exists, calculating creation and modification times of files.
- Improves correction discovery erstwhile opening a file aliases copying files.
- Fixes filing out of methods aliases change sets pinch a slash successful their name.
- Improves capacity erstwhile parsing record names, testing directory existence, and reopening a record successful read-only mode.
- Extends archiving connected file opening, long record paths connected Windows, and creation/modification dates.
Compression (up to Compression-ct.64)
- Fixes file service for installing compressed alteration sets.
Network (up to Network-nice.289/NetworkTests-pre.80)
- Improves new web support for IPv6 and enables it by default. Extends entity inspector and explorer representations of sockets and socket addresses.
- Adds file services for viewing and exploring EML files arsenic message messages.
- Improves rendering of message messages that incorporate rich | matter aliases attachments and adds support for inline (cid) images.
- Extends SMTP client pinch caller commands (verify, quit) and features (CRLF injection detection, 8BITMIME support, due handling of 421 responses).
- Improves wide robustness and RFC compliance (click for details!) of serializing and parsing MIME documents and message messages.
- Implements case-insensitive comparison of MIME types and case-insensitive access to parameters.
- Improves robustness of external-semaphore management for sockets.
- Miscellaneous improvements to trial sum for MIME documents, MIME types, SMTP sending, and IPv6 sockets.
- Extends archiving for MIMEType and socket utilities and examples.
- Improves capacity of socket streaming.
SqueakSSL (up to SqueakSSL-Core-mt.36/SqueakSSL-Tests-ct.30)
- Updates list of existent known bugs for SqueakSSL connected Linux and macOS.
WebClient (up to WebClient-Core-ul.138/WebClient-Tests-nice.66)
- Allows web servers to process OPTIONS requests manually. For instance, this is required to grip CORS preflight requests properly.
- Several improvements and updates to WebServer documentation.
- Sunsets JSON parser successful WebUtils successful favour of the JSON package.
- Improves robustness of chunked transportation decoding and fixes parsing of WebCookie expiries.
- Speeds up MD5 computation successful WebUtils by up to 600%.
JSON (up to JSON-ul.68)
- Adds caller utility for navigating JSON-ish objects on paths.
- Miscellaneous fixes for parsing excessive inputs aliases negative zeros, testing key membership of ordered JSON objects, #at:ifAbsentPut:, and rendering JSON objects with non-string keys.
XML (up to XML-Explorer-eem.3)
- Fixes a performance issue erstwhile exploring immense XML documents.
~~~ System Services ~~~
System (up to System-ct.1522)
- Introduces ephemerons, which support instance-based finalization, a awesome betterment complete the post-mortem finalization provided by WeakArrays. By utilizing ephemeron personality dictionaries alternatively of weak personality dictionaries, anemic indirect cyclic limitations tin now beryllium decently garbage-collected for the first time.
- Revises extended clipboard interfaces and enables them by default. With this change, pasting rich | matter from the big system is supported successful each operating systems. Copying rich | text and copying/pasting different formats specified arsenic pictures is still experimental.
- Improves change recovery by discovering people definitions and method removals successful alteration records and parsing the selectors of do-its.
- System navigation:
- Adds queries for browsing methods pinch primitives, pragmas successful a package, and methods aliases classes successful categories containing a token.
- Fixes queries for callers successful package, methods containing a string, and methods containing pool variables, unbound globals, aliases unused blocks.
- Adds accommodation for enumerating the class names successful a strategy category and the versions of a people comment.
- Adds convenient accessors for image header flags specified arsenic high-DPI support and threaded VMs. Facilitates responding to level changes aft VM restarts by remembering the erstwhile level name. Improves detection of headless mode.
- Adds support for plain-text diffing to complement existing rich-text diffing.
- Adds an optional penchant for reusing the size of instrumentality windows, which antecedently was disposable for debuggers only.
- For the emergency mode REPL, adds a clear bid and improves high-DPI support.
- Miscellaneous UI improvements:
- Adds syntax highlighting erstwhile editing the preamble aliases postscript of a alteration set.
- Revises the layout of the annotation setup dialog.
- Automatically derives the full sanction of known authors from their initials.
- Revises algorithm for collapsing much windows than fresh successful 1 file connected the screen.
- For projects, adds an accessor to group an explicit name.
- Improves UI strings and multilingual support successful respective places.
- Tunes syntax highlighting colors for the Community Dark and Trim themes.
- Refactors debugger invocation and resumption for different GUI frameworks, making it easier to constitute and merge a civilization debugger. Introduces a debugger invocation cue for passing on further discourse specified arsenic an objection to the debugger.
- Refactors and fixes the low-space watcher for Spur VMs and tunes thresholds to debar premature redundant warnings.
- Miscellaneous fixes:
- Makes saving projects much reliable and improves backward compatibility for loading projects/morphs from older image versions.
- For alteration files, improves multi-environment during fileIn/Out, browsing of file-out classes, checking removed classes successful a alteration group for slips, and condensing into caller .sources files.
- Makes canceling default app dialogs safer and allows providing quiet credentials for message senders.
- Improves high-DPI support for model placement.
- Improves headless support for print-its, syntax errors, and interactive dialogs.
- Noteworthy optimizations for user interface taxable requests (speeds up emblematic instrumentality building by ~50%), window collapsing, changes enumeration, and space tallies.
- Improves archiving of respective interfaces specified arsenic system navigation queries, VM parameters, and others.
- Cleans up unused preferences and task parameters.
Regex (up to Regex-Core-ct.93/Regex-Tests-Core-ct.38)
- Adds new support for Unicode literals (\x41, \u{1F388}) and character people escapes (\p{N}, \P{Lu}), named capturing groups ((?<num>\d+)/(?'den'\d+)), and non-capturing groups ((?:ab)+). Allows nullable closures to beryllium repeated ((a|b*)?).
- Adds support for leftmost-longest matching (POSIX style) done an optional flag.
- Adds utility to flight strings for usage successful regular expressions.
- Adds convenience selectors for accessing captured groups.
- Makes #asRegex idempotent truthful methods that expect a shape drawstring tin besides return a preconfigured matcher instead.
- Fixes respective issues pinch parsing nested aliases repeated quantifiers and lookaround-alike patterns.
- Fixes incorrect bid of capture groups wrong branches and removes redundant capturing of lookarounds.
- Repairs surgery regex punctual dialog.
SystemReporter (up to SystemReporter-eem.68)
- Updates description for Cog VM parameters and image-header flags.
PreferenceBrowser (up to PreferenceBrowser-codefrau.159)
- Improves robustness of penchant wizard erstwhile adjusting settings for debased performance.
Additional packages:
- FFI:
- A threaded version of the OpenSmalltalk VM that tin tally primitives and FFI callouts successful the inheritance is nether development.
- Improves FFI objection handling by offering a configurable objection handling mode, adding support for PrimitiveError and ExceptionInFFICallError for failed FFI callouts, and adding a new pragma for asynchronous correction reporting successful ThreadedFFI.
- Adds support for varargs (optional arguments) successful C declarations.
- Adds support for ARM64.
- Several robustness improvements to the type framework, thread safety, and level changes.
- Adds much convenient Win32 utils.
- Overall improvements to trial coverage, documentation, and performance.
- OSProcess:
- Enables buffered readers (such arsenic PipeableOSProcess from companion package CommandShell) to watercourse complete a very ample input watercourse by implementing automatic pruning.
- Adds support for Cuis and Unicode strings.
- Sunsets support for the IOHandle package, which is nary longer maintained for caller versions of Squeak.
- Overall stableness and capacity improvements.
- Refactoring tools: Minor bug fixes, extensions, and capacity improvements for refactoring rules.
- A caller type of Squot was released, which adds support for git revert, tags, and co-authors, contains respective UI improvements, and improves wide stableness and performance.
- The first unchangeable type of Squeak Inbox Talk was released, which integrates the caller HyperKitty archives for the Squeak mailing lists, adds support for rich-text messages and attachments (only disposable successful the Squeak Trunk version), and contains respective UI improvements.
~~~ Version Control & Package Management ~~~
Installer (VersionNumber, UpdateStream, Squeak-Version) (up to Installer-Core-ct.458/VersionNumber-eem.5)
- Adds support for HTTPS schemes to InstallerMonticello. Uses HTTPS for source.squeak.org and squeaksource.com.
- Avoids compiler and linter warnings erstwhile installing a Metacello package for the first time.
- Fixes a bug that polluted the existent alteration group during the installation of Metacello. Slightly accelerates installation.
- Fixes comparison of type numbers pinch different lengths.
- Fixes multi-environment rumor erstwhile unloading packages via Monticello.
Monticello (up to Monticello-ct.822/MonticelloConfigurations-codefrau.187)
- Adds "file retired theirs" to the spot database paper of codification dialogs (such arsenic erstwhile redeeming a type aliases comparing 2 snapshots).
- Makes "add (all) to existent alteration set" successful codification dialogs tin of people and book definitions.
- Improves support for HTTPS repositories and enables migration of existing HTTP repositories to HTTPS.
- Adds inferior for eradicating a repository from each moving copies.
- Improves robustness of MCFileBasedRepository>>versionNamed: by automatically appending a missing MCZ extension.
- Adds, improves, and fixes several dialogs.
- Fixes loading of classes and trait definitions without comments.
- Fixes multi-environment issues erstwhile loading/unloading statement definitions.
- Fixes merging and "copy reference" of removed definitions.
- Improves handling of #acceptsLoggingOfCompilation while loading packages.
- Fixes change detection of moving copies erstwhile renaming categories.
- Improves error reporting erstwhile accessing HTTP repositories.
SqueakMap (up to SMBase-ct.147/SMLoader-ct.102)
- Fixes a bug erstwhile installing missing WebClient via SqueakMap.
~~~ Help & Internationalization ~~~
GetText
- No important changes.
Multilingual (up to Multilingual-mt.293)
- Fixes a bug successful UTF16 conversion for applying line-end conventions successful small endian.
- Improves archiving connected UTF8 encoding/decoding.
Help (up to HelpSystem-Core-ct.159/Help-Squeak-Project-ct.105)
- Help contents:
- Adds a tutorial connected how to lend to Squeak. Includes a short explanation of Squeak's organization model, our improvement process, and recommended devices specified arsenic Monticello and Squeak Inbox Talk. It has ne'er been easier to subordinate the organization - spell up and make your first publication NOW! :-)
- Updates keyboard shortcut reference pinch world shortcuts and shortcuts for windows, menus, lists, and trees arsenic good arsenic instructions to customize shortcuts.
- Improves and updates respective sections of the terse guide.
- Minor clean-ups and improvements connected various thief topics. Updates collection of online resources.
- Moves merchandise notes (like this one!) into the image, which were antecedently managed connected GitHub. They are mirrored to squeak.org/release_notes/, truthful you tin position them and click connected examples to tally them successful SqueakJS moreover if you person nary image astatine manus (how situation you!).
- Help system:
- Expands support for editing thief done the thief browser without penning code. Users tin now negociate civilization thief topics and file-based thief topics by utilizing the discourse paper successful the character position aliases dragging and dropping topics.
- Revises icons successful thief browsers for quiet thief books, references of generic classes, and hunt results.
- Refactors help search and integrations for files/directories and HTML sites into the thief system. In directory-based thief topics, now uses the aforesaid sorting strategy for kid directories (recursively).
- Stability improvements for browsing azygous styled topics, editing contents of directory topics, and searching topics.
~~~ Deployment & Miscellaneous ~~~
Tests (up to Tests-ct.522)
- There are now complete 5800 tests successful this merchandise that tally successful little than 3 minutes connected our CI.
- Improves precision and sum of tests for DataStreams, UI themes, and package dependencies.
- Improves information of several tests that mightiness person corrupted aliases collapsed the image before.
ReleaseBuilder (up to ReleaseBuilder-mt.248)
- Minor improvements for mounting preferences reproducibly erstwhile creating caller merchandise images.
Major Deprecations (up to 60Deprecated-ct.117/61Deprecated-ct.29)
Miscellaneous minor deprecations successful different packages. We worth backward compatibility and effort to debar breaking changes wherever imaginable (see Compatibility Notes beneath for exceptions). All non-private methods and classes that were removed during refactorings are preserved successful the 61Deprecated package and awesome a (suppressible) deprecation informing erstwhile used.
- As portion of a debugger refactoring, project-specific debugger subclasses (MorphicDebugger and MVCDebugger) person been eliminated. Custom debuggers tin now straight inherit from Debugger again.
- Deprecates BrokenPromise: If a committedness is rejected, Promise>>wait et al. will now resignal the original objection (or a generic correction if the committedness was rejected without an exception). If the 61Deprecated package is installed, you tin still grip BrokenPromise, but it is nary longer a subclass of Error. Note that the determination to deprecate BrokenPromise is tentative and mightiness beryllium revised again.
- Renames misleading Promise>>error to #errorValue.
- Renames ClassDescription>>[all]MethodsInCategory: to #[all]SelectorsInCategory: because they ne'er answered codification objects but ever symbols.
- Deprecates SequenceableCollection>>checkedAt: and #copyWithoutFirst.
Known Issues
- Debugger notifiers raised from inheritance processes whitethorn look pinch a abnormal "Proceed" button. As a workaround, you tin first click connected "Debug" and past connected "Proceed".
- An rumor pinch recursive process-faithful debugging whitethorn origin uncommon infinite loops erstwhile performing definite steps successful a debugger. If you brushwood this issue, please travel the steps advised here and send america a bug report to reproduce the situation. :-)
- Regular expressions grip greedy patterns wrong lookbehinds incorrectly.
- Running an HTTPS server via SqueakSSL is presently not working connected Linux and macOS.
- On Linux, the image whitethorn tally retired of record descriptors successful definite situations. This tin manifest arsenic recurring primitive failures from #primGetPosition: aliases an unresponsive image. As a workaround, you tin summation the number of allowed record descriptors utilizing ulimit -n.
- On Linux erstwhile utilizing Wayland, text morphs whitethorn loose their attraction connected each click (a workaround is attached to the bug report).
- Found different bug? Share it pinch america connected http://bugs.squeak.org/! :-)
Compatibility Notes
- Promise>>value now waits for the receiver (previously, it returned nil alternatively until the receiver had resolved).
- Matrix>>with:do:, #with:collect:, and #with:inject:into: nary longer implicitly disregard size-mismatches betwixt some matrices but awesome a clear correction successful this case.
- Text>>format: and TextStream>>withAttribute[s]:do: now insert attributes from the past statement above existing attributes alternatively of beneath them, e.g.:
Text streamContents: [:stream |
stream withAttributes: {TextColor blue. TextEmphasis bold} do:
[stream nextPutAll: 'abc'.
stream withAttribute: TextColor reddish do:
[stream nextPutAll: 'def']]].
'hi {1}' asText
addAttribute: TextColor red;
format: {'name' asText addAttribute: TextColor green}.
- DateAndTime>>offset: has been fixed for ANSI compliance and now answers an balanced type of the receiver successful a different clip area alternatively of reinterpreting the receiver successful a different clip zone. Use #asLocalAt: for the aged behaviour aliases #utcOffset: to debar cross-compatibility issues.
- Regex: Captured subexpressions are now stored consistently successful left-to-right bid (previously, captures successful alternatives were ordered from correct to left).
- When constructing menus, #addList: now interprets backslashes successful thief tuples arsenic statement breaks.
- Help system: The sortBlock for FileBasedHelpTopic and DirectoryBasedHelpTopic is now applied to directories arsenic good and propagated recursively to subdirectory topics. See AbstractFileBasedHelpTopic>>defaultSortBlock for a imaginable implementation.
English (US) ·
Indonesian (ID) ·