Squeak 6.1 "Vanessa" is een grote update die diverse onderdelen van het systeem moderniseert en optimaliseert.
De belangrijkste wijzigingen zijn:
GUI & Frameworks: Er is een grondige herziening gedaan van de tree morphs in Morphic, inclusief verbeterde filtering, navigatie en High-DPI ondersteuning. Daarnaast keert 'Objectland' terug en zijn er updates doorgevoerd voor Etoys and ST80.
Programmering & Tools: De introductie van een nieuwe Tree Browser maakt hiërarchische navigatie eenvoudiger. Debuggers zijn uitgebreid met een byteCodes-modus voor VM-instructies en nieuwe 'send until'-commando's.
Kernlanguage: Verbeteringen in de Kernel omvatten nieuwe wiskundige functies, optimalisaties bij het bouwen van klassen (30% sneller) en betere afhandeling van promises en processen.
Systeemdiensten & Netwerk: Er is nu ondersteuning voor IPv6, HTTPS-schema's in Monticello, en Unicode literals in Regex. Ook zijn er belangrijke verbeteringen doorgevoerd in de garbage collection via ephemerons.
Compatibiliteit: Hoewel achterwaartse compatibiliteit een prioriteit blijft, zijn sommige debugger-subklassen verwijderd en is de afhandeling van Promise>>value gewijzigd.
Versienotities voor Squeak 6.1 "Vanessa"
Hoogtepunten van deze release
Nieuwe tree browser: Maakt navigatie door klassen en categorieën mogelijk via vernieuwde hiërarchische morphs.
Terugkeer van Objectland: Ook bekend als de "Worlds of Squeak".
Kerninfrastructuur: Diverse wijzigingen en fixes voor het simuleren, unwinden en plannen (scheduling) van processen, evenals het hervormen van klassen.
Toolset en gebruikersinterface: Diverse verbeteringen aan tools voor inspectie, debugging, profiling en versiebeheer van code.
---
Gedetailleerde verbeteringen in taal, tools en omgeving
Verbeterde kleuren en sneltoetsen voor muis en toetsenbord bij het navigeren door bomen.
Herziening van de 'type-to-filter' functie (vergelijkbaar met lijsten), markering van zoektermen en mogelijkheid om via [TAB] in enkele kolommen te zoeken. Er is een configureerbare filtermodus toegevoegd voor het zoeken binnen de huidige selectie, alle zichtbare knooppunten of de gehele boom.
Introductie van een recursieve "zoek"/"zoek opnieuw" functie via [CMD] + [F] / [CMD] + [G].
Toevoeging van een vlag voor automatische uitbreiding van bomen.
Verbeterde ondersteuning voor drag-and-drop door knooppunten automatisch uit te breiden na één seconde hoveren tijdens het slepen.
Stabiliteits- en prestatieverbeteringen voor lay-out, rendering en event-handling in bomen.
Ondersteuning in de 'world' voor het droppen van klassenreferenties, systeem- en methodecategorieën, en inspector/explorer-velden om deze in een nieuw venster of widget weer te geven.
Overige GUI wijzigingen:
Muisinteracties: Nieuwe voorkeuren voor het aanpassen van de dubbelkliktijd en drag-drempels.
Venstermenus: In het menu van de docking bar is een optie toegevoegd om vensters in te klappen. De functie "find workspace" is verbeterd door het geselecteerde venster uit te vouwen als dit was ingeklapt. Het helpmenu is herordend en gedecoreerd.
Teksteditors: Links worden nu onderstreept tijdens hoveren; klikken en tekstselectie via links is gemakkelijker gemaakt. Bij het omhullen van een selectie met enkele of dubbele aanhalingstekens worden geneste quotes nu automatisch ge-escape/unescaped.
Morphic API: Morphs kunnen nu individuele halo-events uitsluiten en ballontekst via een block specificeren in plaats van een selector.
Menuconstructie: Nieuwe utilities voor het toevoegen van itemgroepen en het tijdelijk schakelen van actiedoelen. #addList: interpreteert backslashes in help-tuples nu als regelafbrekingen. Trailing lines tussen menu-items worden automatisch verwijderd.
Debugmenu's: De debugmenu's van diverse morphs zijn herzien met een time-profiler sneltoets voor knoppen en snellere toegang tot lijst- en boominhoud.
UI-tweaks en stabiliteit:
Verbeterde themaondersteuning voor voortgangsbalken, tekstmorph-menu's en dialoogvensters.
Verbeterde high-DPI ondersteuning voor knoppen, scroll panes, sliders, menu's, multi-selectielijsten, bomen, schaduwen, de scratch pad en de keyboard exerciser.
Opgelost probleem waarbij user events werden genegeerd tijdens het profilen van code.
diverse layoutfixes voor proportionele layouts, tekstmorphs en transformatiemorphs.
Verbeterde stabiliteit van tekstselectie in tekstmorphs en aanpassingen in indentatie bij lege regels.
MorphicExtras (tot MorphicExtras-ct.360)
Objectland: Een reconstructie van de "Worlds of Squeak" uit 2003, met een collectie voorbeelden die de mogelijkheden van Squeak demonstreren. Inclusief de klassieke Etoys racecar en nieuwe voorbeelden.
BlobMorph: Herintroductie en update van de bekende BlobMorph.
Webcams: Toevoeging van een spiegeloptie, uitbreiding van de interface voor double-buffering en verbeterde stabiliteit van de webcam morph.
Overig: Verbeteringen aan het instrumentmenu van score players en high-DPI ondersteuning voor de objects tool (event recorders, score players, etc.).
Etoys (tot EToys-ct.532)
Herstel en herziening van de tutorial over schilderen en scripts maken in Etoys.
Toevoeging van een undo-knop aan FreeCell.
Verbeterde statusindicatie in Tetris.
Verbeteringen aan de players gallery, de spectrum analyzer en de midi input morph.
High-DPI ondersteuning voor iconen, tile morphs, script editors, games en kalenders.
ST80 (tot ST80-mt.311)
Toevoeging van een 'sluit'-item aan het world menu.
Verbeterde high-DPI ondersteuning voor systeemweergaven.
Nieuwe functie View>>imageForm voor screenshots van weergaven, zichtbaar in inspectors.
Sneltoets [CMD] + [SHIFT] + [D] toegevoegd voor "debug it".
CommandLine (tot CommandLine-eem.27)
Herstel van de voorkeur "Save snapshot of image on failure".
Verbeterde UIManager ondersteuning voor bestandsdialogen, font-dialogen en bevestigingen.
---
Programmering & Tools
Tools (tot Tools-mt.1366 / ToolsTests-ct.137)
Nieuwe Tree Browser: Toont systeemcategorieën, klassen en berichtcategorieën in hiërarchische panelen en integreert Monticello-pakketten. Bevat vijf nieuwe voorkeuren voor het uiterlijk.
Drag'n'drop: Herziening voor tree browsers en traditionele browsers om alle zinvolle combinaties van panelen te ondersteunen bij het kopiëren of verplaatsen van klassen, methoden en categorieën.
Hiërarchie-browsers: Ondersteuning voor dubbelklikken om de centrale klasse te wisselen (nuttig bij multi-inheritance met traits).
Inspector: Uitbreiding van ondersteuning voor custom fields; objecten kunnen nu eigen inspector-velden en menu-items bijdragen. Mogelijkheid om truncatie uit te schakelen bij grote collecties.
Debuggers:
Nieuwe "send until..." commando's om nauwkeurig naar condities in geneste methodaanroepen te zoeken.
Verbeterde "run to here" functionaliteit voor expressies in blocks.
Toevoeging van een byteCodes-modus in de debugger om individuele VM-instructies te bekijken en door te stappen via een nieuwe "simulate"-knop.
Overige Tool-verbeteringen:
Integratie van AndreasSystemProfiler in de trunk.
In workspaces is een optie "load contents from file..." toegevoegd aan het venstermenu.
Verbeterde herstelmodus voor wijzigingen (change recovery), inclusief betere parsing van klassedefinities en methodeverwijderingen.
Ondersteuning voor blocks in ToolBuilderSpec>>help: en PluggableMenuItemSpec>>action:.
Verbeterde UIManager met nieuwe methoden zoals inform:title: en chooseFileFrom:[...].
Morphic-specifiek: Bestandsdialogen bevatten nu een adresbalk. Modellen in lijsten en bomen kunnen nu bepalen of ze een gedropt object accepteren op basis van het item waarover wordt gehoverd.
SUnit (tot SUnit-mt.153 / etc.)
Time-outs worden nu aangegeven in TestResult en getoond in de test runner.
Fixes voor testgeneratie bij #// selectors.
Nebraska (tot Nebraska-ct.65)
Ondersteuning voor muiswiel-scrollen in remote terminals.
Verbeterde betrouwbaarheid van event handling, waardoor terminals weer vrij kunnen worden verplaatst, vergroot en geroteerd.
Commentaren worden standaard cursief weergegeven (instelbaar via voorkeuren).
Verbeterde parsing van unaire selectors die beginnen of eindigen met underscores.
---
Kernlanguage (Core Language)
Kernel (tot Kernel-ct.1688 / KernelTests-ct.482)
Getallen: Nieuwe functies zoals Complex>>log, Integer>>bitInvert64, Integer>>timesCollect:, Number>>timesTwoPower: en ScaledDecimal>>printFractionAsDecimal. Correcties voor #sin, #cos en #tan bij zeer grote gehele getallen.
Blocks: Ondersteuning voor non-local exits met waarden via BlockClosure>>valueWithExitValue.
Debugging & Simulatie: Diverse edge cases van de context simulator zijn opgelost, wat de robuustheid verbetert bij het debuggen van het systeem vanuit zichzelf. Ondersteuning voor recursieve process-faithful debugging (het debuggen van een debugger die een derde debugger debugt).
Processen & Scheduling: Verbeterde documentatie en afhandeling van procesbeëindiging en stack unwinding. Process>>destroy veroorzaakt nu geen VM-crash meer bij geblokkeerde processen.
Promises: Nieuwe helpers voor het combineren van promises (#all:, #anyOne:, #race:). Promise>>value is nu een synoniem voor #wait.
Klassen: De snelheid van het (her)bouwen van klassen is met meer dan 30% verhoogd door gebruik van het MethodMassage pakket.
Veel nieuwe gemaksvoorzieningen voor enumeratie, kopiëren en modificeren van collecties en streams.
Introductie van AlternativeSortFunction voor sortering op basis van binaire predicaten.
Teksten: Verbeterde HTML-parsing (ondersteuning voor <blockquote, betere whitespace handling voor <p>, <div> en <pre>). Ondersteuning voor base32 encoding/decoding.
Tijdzones zijn omgezet naar een uitbreidbare klassenhierarchie voor DST-bewuste zones (zoals TZ-Olson).
Herstel van ANSI-compliance voor DateAndTime>>offset:.
Compiler (tot Compiler-ct.535)
Mogelijkheid om #pvt* selectors naar super te sturen, waardoor private methoden in subklassen kunnen worden overschreven of uitgebreid.
Nieuwe optionele voorkeur voor interactieve waarschuwingen bij variable shadowing.
MethodMassage (tot MethodMassage-ct.75)
Dit nieuwe pakket in de trunk maakt het mogelijk om gecompileerde methoden te disassembleren als first-class objecten, ze te inspecteren/herschrijven en weer samen te stellen.
---
Grafische weergave & Geluid
Graphics (tot Graphics-nice.562)
Ondersteuning voor basis CSS-kleurfuncties voor betere HTML-parsing.
Toevoeging van dithering voor het vloeiend verlagen van de kleurdiepte van forms.
Ondersteuning voor schermdimensies van meerdere monitoren.
Sound (tot Sound-ct.102)
Accessors toegevoegd voor het opsommen en instellen van beschikbare geluidsspelers en recorders.
Bestandsdienst toegevoegd voor het lezen van AIFF-bestanden.
---
Bestanden & Netwerk
Files (tot Files-mt.223)
Voorkeur toegevoegd om het changes bestand in het image te cachen in plaats van op disk, waardoor een Squeak image als standalone bestand kan draaien.
Toegang tot systeemomgevingsvariabelen en de huidige werkmap van de VM.
Op Linux/Unix ondersteuning voor tilde (~) pad-expansie naar de home directory.
Verbeterde IPv6-ondersteuning, nu standaard ingeschakeld.
Bestandsdiensten toegevoegd voor het bekijken van EML-bestanden als e-mails.
SMTP-client uitgebreid met nieuwe commando's (verify, quit) en CRLF injection detectie.
WebClient & JSON (tot JSON-ul.68 / etc.)
Ondersteuning voor handmatige verwerking van OPTIONS requests door webservers (nodig voor CORS preflight).
In het JSON-pakket is een nieuwe utility toegevoegd voor navigatie langs paden in JSON-achtige objecten.
---
Systeemdiensten
System (tot System-ct.1522)
Ephemerons: Introductie van ephemerons die instance-based finalisatie ondersteunen, wat een grote verbetering is ten opzichte van WeakArrays. Dit lost problemen met zwakke indirecte cyclische afhankelijkheden bij garbage collection op.
Clipboard: Herziening van uitgebreide clipboard interfaces; het plakken van rich text vanuit het host-systeem wordt nu op alle OS'en ondersteund.
HTTPS: Ondersteuning voor HTTPS-schema's toegevoegd; source.squeak.org en squeaksource.com gebruiken nu HTTPS.
Monticello: Toevoeging van "file out theirs" aan het patch-lijstmenu.
---
Help & Internationalisering
Help (tot HelpSystem-Core-ct.159 / etc.)
Inhoud: Nieuwe tutorial over bijdragen aan Squeak, inclusief het communitymodel en het ontwikkelproces.
Systeem: Gebruikers kunnen nu custom help-topics beheren via de help browser zonder code te schrijven (via contextmenu of drag-and-drop).
---
Deployment & Diversen
Tests (tot Tests-ct.522)
Deze release bevat meer dan 5800 tests die in minder dan 3 minuten draaien op CI.
---
Belangrijke Deprecations (Verouderde functies)
Squeak streeft naar achterwaartse compatibiliteit, maar de volgende wijzigingen zijn doorgevoerd:
Debuggers: Project-specifieke debugger subklassen (MorphicDebugger en MVCDebugger) zijn verwijderd; custom debuggers kunnen nu weer direct overerven van Debugger.
BrokenPromise: Wordt gedeprecereerd. Bij een rejected promise zullen Promise>>wait etc. nu de originele exception opnieuw signaleren.
Naamswijzigingen:
Promise>>error is hernoemd naar #errorValue.
ClassDescription>>[all]MethodsInCategory: is hernoemd naar #[all]SelectorsInCategory:.
---
Bekende Problemen (Known Issues)
Debugger notifiers vanuit achtergrondprocessen kunnen verschijnen met een uitgeschakelde "Proceed"-knop.
In zeldzame gevallen kan recursieve process-faithful debugging leiden tot oneindige loops.
Reguliere expressies behandelen greedy patterns binnen lookbehinds incorrect.
Het draaien van een HTTPS-server via SqueakSSL werkt momenteel niet op Linux en macOS.
Op Linux (Wayland) kunnen tekstmorphs hun focus verliezen bij elke klik.
---
Compatibiliteitsnotities
Promise>>value wacht nu op de receiver (voorheen gaf het nil terug tot de receiver was opgelost).
Matrix-operaties (#with:do:, #with:collect:, etc.) signaleren nu een fout bij size-mismatches in plaats van deze te negeren.
In het helpsysteem wordt de sortBlock voor FileBasedHelpTopic en DirectoryBasedHelpTopic nu ook toegepast op mappen en recursief doorgegeven aan submappen.
Terwijl Squeak zijn 30ste verjaardag nadert, presenteren we met trots de volgende versie van het systeem: Squeak 6.1.
Versienotities voor Squeak 6.1 "Vanessa"
Hoogtepunten van deze release
Nieuwe tree browser: Maakt navigatie door klassen en categorieën mogelijk via vernieuwde hiërarchische morphs.
Terugkeer van Objectland: Ook bekend als de "Worlds of Squeak".
Kerninfrastructuur: Diverse wijzigingen en fixes voor het simuleren, unwinden en plannen (scheduling) van processen, evenals het hervormen van klassen.
Toolset en gebruikersinterface: Diverse verbeteringen aan tools voor inspectie, debugging, profiling en versiebeheer van code.
---
Gedetailleerde verbeteringen in taal, tools en omgeving
Verbeterde kleuren en sneltoetsen voor muis en toetsenbord bij het navigeren door bomen.
Herziening van de 'type-to-filter' functie (vergelijkbaar met lijsten), markering van zoektermen en mogelijkheid om via [TAB] in enkele kolommen te zoeken. Er is een configureerbare filtermodus toegevoegd voor het zoeken binnen de huidige selectie, alle zichtbare knooppunten of de gehele boom.
Introductie van een recursieve "zoek"/"zoek opnieuw" functie via [CMD] + [F] / [CMD] + [G].
Toevoeging van een vlag voor automatische uitbreiding van bomen.
Verbeterde ondersteuning voor drag-and-drop door knooppunten automatisch uit te breiden na één seconde hoveren tijdens het slepen.
Stabiliteits- en prestatieverbeteringen voor lay-out, rendering en event-handling in bomen.
Ondersteuning in de 'world' voor het droppen van klassenreferenties, systeem- en methodecategorieën, en inspector/explorer-velden om deze in een nieuw venster of widget weer te geven.
Overige GUI wijzigingen:
Muisinteracties: Nieuwe voorkeuren voor het aanpassen van de dubbelkliktijd en drag-drempels.
Venstermenus: In het menu van de docking bar is een optie toegevoegd om vensters in te klappen. De functie "find workspace" is verbeterd door het geselecteerde venster uit te vouwen als dit was ingeklapt. Het helpmenu is herordend en gedecoreerd.
Teksteditors: Links worden nu onderstreept tijdens hoveren; klikken en tekstselectie via links is gemakkelijker gemaakt. Bij het omhullen van een selectie met enkele of dubbele aanhalingstekens worden geneste quotes nu automatisch ge-escape/unescaped.
Morphic API: Morphs kunnen nu individuele halo-events uitsluiten en ballontekst via een block specificeren in plaats van een selector.
Menuconstructie: Nieuwe utilities voor het toevoegen van itemgroepen en het tijdelijk schakelen van actiedoelen. #addList: interpreteert backslashes in help-tuples nu als regelafbrekingen. Trailing lines tussen menu-items worden automatisch verwijderd.
Debugmenu's: De debugmenu's van diverse morphs zijn herzien met een time-profiler sneltoets voor knoppen en snellere toegang tot lijst- en boominhoud.
UI-tweaks en stabiliteit:
Verbeterde themaondersteuning voor voortgangsbalken, tekstmorph-menu's en dialoogvensters.
Verbeterde high-DPI ondersteuning voor knoppen, scroll panes, sliders, menu's, multi-selectielijsten, bomen, schaduwen, de scratch pad en de keyboard exerciser.
Opgelost probleem waarbij user events werden genegeerd tijdens het profilen van code.
diverse layoutfixes voor proportionele layouts, tekstmorphs en transformatiemorphs.
Verbeterde stabiliteit van tekstselectie in tekstmorphs en aanpassingen in indentatie bij lege regels.
MorphicExtras (tot MorphicExtras-ct.360)
Objectland: Een reconstructie van de "Worlds of Squeak" uit 2003, met een collectie voorbeelden die de mogelijkheden van Squeak demonstreren. Inclusief de klassieke Etoys racecar en nieuwe voorbeelden.
BlobMorph: Herintroductie en update van de bekende BlobMorph.
Webcams: Toevoeging van een spiegeloptie, uitbreiding van de interface voor double-buffering en verbeterde stabiliteit van de webcam morph.
Overig: Verbeteringen aan het instrumentmenu van score players en high-DPI ondersteuning voor de objects tool (event recorders, score players, etc.).
Etoys (tot EToys-ct.532)
Herstel en herziening van de tutorial over schilderen en scripts maken in Etoys.
Toevoeging van een undo-knop aan FreeCell.
Verbeterde statusindicatie in Tetris.
Verbeteringen aan de players gallery, de spectrum analyzer en de midi input morph.
High-DPI ondersteuning voor iconen, tile morphs, script editors, games en kalenders.
ST80 (tot ST80-mt.311)
Toevoeging van een 'sluit'-item aan het world menu.
Verbeterde high-DPI ondersteuning voor systeemweergaven.
Nieuwe functie View>>imageForm voor screenshots van weergaven, zichtbaar in inspectors.
Sneltoets [CMD] + [SHIFT] + [D] toegevoegd voor "debug it".
CommandLine (tot CommandLine-eem.27)
Herstel van de voorkeur "Save snapshot of image on failure".
Verbeterde UIManager ondersteuning voor bestandsdialogen, font-dialogen en bevestigingen.
---
Programmering & Tools
Tools (tot Tools-mt.1366 / ToolsTests-ct.137)
Nieuwe Tree Browser: Toont systeemcategorieën, klassen en berichtcategorieën in hiërarchische panelen en integreert Monticello-pakketten. Bevat vijf nieuwe voorkeuren voor het uiterlijk.
Drag'n'drop: Herziening voor tree browsers en traditionele browsers om alle zinvolle combinaties van panelen te ondersteunen bij het kopiëren of verplaatsen van klassen, methoden en categorieën.
Hiërarchie-browsers: Ondersteuning voor dubbelklikken om de centrale klasse te wisselen (nuttig bij multi-inheritance met traits).
Inspector: Uitbreiding van ondersteuning voor custom fields; objecten kunnen nu eigen inspector-velden en menu-items bijdragen. Mogelijkheid om truncatie uit te schakelen bij grote collecties.
Debuggers:
Nieuwe "send until..." commando's om nauwkeurig naar condities in geneste methodaanroepen te zoeken.
Verbeterde "run to here" functionaliteit voor expressies in blocks.
Toevoeging van een byteCodes-modus in de debugger om individuele VM-instructies te bekijken en door te stappen via een nieuwe "simulate"-knop.
Overige Tool-verbeteringen:
Integratie van AndreasSystemProfiler in de trunk.
In workspaces is een optie "load contents from file..." toegevoegd aan het venstermenu.
Verbeterde herstelmodus voor wijzigingen (change recovery), inclusief betere parsing van klassedefinities en methodeverwijderingen.
Ondersteuning voor blocks in ToolBuilderSpec>>help: en PluggableMenuItemSpec>>action:.
Verbeterde UIManager met nieuwe methoden zoals inform:title: en chooseFileFrom:[...].
Morphic-specifiek: Bestandsdialogen bevatten nu een adresbalk. Modellen in lijsten en bomen kunnen nu bepalen of ze een gedropt object accepteren op basis van het item waarover wordt gehoverd.
SUnit (tot SUnit-mt.153 / etc.)
Time-outs worden nu aangegeven in TestResult en getoond in de test runner.
Fixes voor testgeneratie bij #// selectors.
Nebraska (tot Nebraska-ct.65)
Ondersteuning voor muiswiel-scrollen in remote terminals.
Verbeterde betrouwbaarheid van event handling, waardoor terminals weer vrij kunnen worden verplaatst, vergroot en geroteerd.
Commentaren worden standaard cursief weergegeven (instelbaar via voorkeuren).
Verbeterde parsing van unaire selectors die beginnen of eindigen met underscores.
---
Kernlanguage (Core Language)
Kernel (tot Kernel-ct.1688 / KernelTests-ct.482)
Getallen: Nieuwe functies zoals Complex>>log, Integer>>bitInvert64, Integer>>timesCollect:, Number>>timesTwoPower: en ScaledDecimal>>printFractionAsDecimal. Correcties voor #sin, #cos en #tan bij zeer grote gehele getallen.
Blocks: Ondersteuning voor non-local exits met waarden via BlockClosure>>valueWithExitValue.
Debugging & Simulatie: Diverse edge cases van de context simulator zijn opgelost, wat de robuustheid verbetert bij het debuggen van het systeem vanuit zichzelf. Ondersteuning voor recursieve process-faithful debugging (het debuggen van een debugger die een derde debugger debugt).
Processen & Scheduling: Verbeterde documentatie en afhandeling van procesbeëindiging en stack unwinding. Process>>destroy veroorzaakt nu geen VM-crash meer bij geblokkeerde processen.
Promises: Nieuwe helpers voor het combineren van promises (#all:, #anyOne:, #race:). Promise>>value is nu een synoniem voor #wait.
Klassen: De snelheid van het (her)bouwen van klassen is met meer dan 30% verhoogd door gebruik van het MethodMassage pakket.
Veel nieuwe gemaksvoorzieningen voor enumeratie, kopiëren en modificeren van collecties en streams.
Introductie van AlternativeSortFunction voor sortering op basis van binaire predicaten.
Teksten: Verbeterde HTML-parsing (ondersteuning voor <blockquote, betere whitespace handling voor <p>, <div> en <pre>). Ondersteuning voor base32 encoding/decoding.
Tijdzones zijn omgezet naar een uitbreidbare klassenhierarchie voor DST-bewuste zones (zoals TZ-Olson).
Herstel van ANSI-compliance voor DateAndTime>>offset:.
Compiler (tot Compiler-ct.535)
Mogelijkheid om #pvt* selectors naar super te sturen, waardoor private methoden in subklassen kunnen worden overschreven of uitgebreid.
Nieuwe optionele voorkeur voor interactieve waarschuwingen bij variable shadowing.
MethodMassage (tot MethodMassage-ct.75)
Dit nieuwe pakket in de trunk maakt het mogelijk om gecompileerde methoden te disassembleren als first-class objecten, ze te inspecteren/herschrijven en weer samen te stellen.
---
Grafische weergave & Geluid
Graphics (tot Graphics-nice.562)
Ondersteuning voor basis CSS-kleurfuncties voor betere HTML-parsing.
Toevoeging van dithering voor het vloeiend verlagen van de kleurdiepte van forms.
Ondersteuning voor schermdimensies van meerdere monitoren.
Sound (tot Sound-ct.102)
Accessors toegevoegd voor het opsommen en instellen van beschikbare geluidsspelers en recorders.
Bestandsdienst toegevoegd voor het lezen van AIFF-bestanden.
---
Bestanden & Netwerk
Files (tot Files-mt.223)
Voorkeur toegevoegd om het changes bestand in het image te cachen in plaats van op disk, waardoor een Squeak image als standalone bestand kan draaien.
Toegang tot systeemomgevingsvariabelen en de huidige werkmap van de VM.
Op Linux/Unix ondersteuning voor tilde (~) pad-expansie naar de home directory.
Verbeterde IPv6-ondersteuning, nu standaard ingeschakeld.
Bestandsdiensten toegevoegd voor het bekijken van EML-bestanden als e-mails.
SMTP-client uitgebreid met nieuwe commando's (verify, quit) en CRLF injection detectie.
WebClient & JSON (tot JSON-ul.68 / etc.)
Ondersteuning voor handmatige verwerking van OPTIONS requests door webservers (nodig voor CORS preflight).
In het JSON-pakket is een nieuwe utility toegevoegd voor navigatie langs paden in JSON-achtige objecten.
---
Systeemdiensten
System (tot System-ct.1522)
Ephemerons: Introductie van ephemerons die instance-based finalisatie ondersteunen, wat een grote verbetering is ten opzichte van WeakArrays. Dit lost problemen met zwakke indirecte cyclische afhankelijkheden bij garbage collection op.
Clipboard: Herziening van uitgebreide clipboard interfaces; het plakken van rich text vanuit het host-systeem wordt nu op alle OS'en ondersteund.
HTTPS: Ondersteuning voor HTTPS-schema's toegevoegd; source.squeak.org en squeaksource.com gebruiken nu HTTPS.
Monticello: Toevoeging van "file out theirs" aan het patch-lijstmenu.
---
Help & Internationalisering
Help (tot HelpSystem-Core-ct.159 / etc.)
Inhoud: Nieuwe tutorial over bijdragen aan Squeak, inclusief het communitymodel en het ontwikkelproces.
Systeem: Gebruikers kunnen nu custom help-topics beheren via de help browser zonder code te schrijven (via contextmenu of drag-and-drop).
---
Deployment & Diversen
Tests (tot Tests-ct.522)
Deze release bevat meer dan 5800 tests die in minder dan 3 minuten draaien op CI.
---
Belangrijke Deprecations (Verouderde functies)
Squeak streeft naar achterwaartse compatibiliteit, maar de volgende wijzigingen zijn doorgevoerd:
Debuggers: Project-specifieke debugger subklassen (MorphicDebugger en MVCDebugger) zijn verwijderd; custom debuggers kunnen nu weer direct overerven van Debugger.
BrokenPromise: Wordt gedeprecereerd. Bij een rejected promise zullen Promise>>wait etc. nu de originele exception opnieuw signaleren.
Naamswijzigingen:
Promise>>error is hernoemd naar #errorValue.
ClassDescription>>[all]MethodsInCategory: is hernoemd naar #[all]SelectorsInCategory:.
---
Bekende Problemen (Known Issues)
Debugger notifiers vanuit achtergrondprocessen kunnen verschijnen met een uitgeschakelde "Proceed"-knop.
In zeldzame gevallen kan recursieve process-faithful debugging leiden tot oneindige loops.
Reguliere expressies behandelen greedy patterns binnen lookbehinds incorrect.
Het draaien van een HTTPS-server via SqueakSSL werkt momenteel niet op Linux en macOS.
Op Linux (Wayland) kunnen tekstmorphs hun focus verliezen bij elke klik.
---
Compatibiliteitsnotities
Promise>>value wacht nu op de receiver (voorheen gaf het nil terug tot de receiver was opgelost).
Matrix-operaties (#with:do:, #with:collect:, etc.) signaleren nu een fout bij size-mismatches in plaats van deze te negeren.
In het helpsysteem wordt de sortBlock voor FileBasedHelpTopic en DirectoryBasedHelpTopic nu ook toegepast op mappen en recursief doorgegeven aan submappen.
Zichtbare categorieën
Kies welke categorieën je wilt zien.
Over deze site
Waarom Tech-update?
Tech-update is ontstaan omdat ik merkte dat ik dagelijks veel verschillende websites moest bezoeken om interessant technieuws te vinden. Dat kon efficiënter.
Hoe werkt het?
Meerdere keren per etmaal gaat mijn zelfgebouwde AI-agent op zoek naar interessante artikelen op blogs en nieuwssites.
Vindt hij iets relevants, dan wordt het artikel naar het Nederlands vertaald en op Tech-Update geplaatst.
Van ieder artikel maakt de AI ook een korte samenvatting. Zo kun je snel bepalen of het de moeite waard is om het volledige artikel te lezen.
Bij ieder artikel staat altijd een link naar de oorspronkelijke bron (vaak een Engelstalige website).
Artikelen kun je bewaren als favoriet, vastzetten in de zijbalk of terugvinden via de zoekfunctie.
In de instellingen (tandwielikoon rechtsboven) geef je aan in welk soort nieuws je geïnteresseert bent.