[squeak-dev] The Inbox: System-lrnp.1355.mcz

Lauren Pullen drurowin at gmail.com
Wed May 25 05:52:26 UTC 2022

Hi List,

When combined with System-lrnp.1354 and Environments-lrnp.85 this
introduces a 1-click fix for a slough of MNU discovered while authoring
Installer-Core-lrnp.447 that prevented operations on the Metacello-Core
system category and package if #ensureRecentMetacello fails.  See below
for an example.

I have decided against running #sweepObsoleteClassReferences
automatically in case it masks a bug.  In the process of deciding that,
I discovered that there are far too many ways programs (not only can,
but do) access the class list and system category list.

===== Contrived Example =====

Open a Browser and a Workspace.  Turn on 'List Classes Hierarchically'

Create a temporary system category 'Unbind Bug' and UnbindBug class in it.

In the Workspace, do (Smalltalk globals unbind: #theClassName).

The Browser will generate a debugger on MNU #superclass periodically, or
when that system category is selected.

To recover without the patch, use ProtoObject>>allSubclassesDo: to
access UnbindBug and do (Smalltalk globals bind: #UnbindBug to: theClass).

On 5/25/22 04:53, commits at source.squeak.org wrote:
> ==================== Summary ====================
> Name: System-lrnp.1355
> Author: lrnp
> Time: 24 May 2022, 10:52:59.28838 pm
> UUID: 49c54e01-3846-49de-a922-ccbb32721e73
> Ancestors: System-lrnp.1354
> adds a menu command for error recovery
> Adds the command to fix obsolete references to the Do menu in case they are to blame for misbehavior.
> When used in conjunction with System-lrnp.1354 (and Environments-lrnp.85) will also properly remove classes that were not removed properly, but does not depend on System-lrnp.1354.

More information about the Squeak-dev mailing list