From cf7877e24a909f69f549f4aa681d22098b3b3811 Mon Sep 17 00:00:00 2001 From: Christoph Thiede Date: Sun, 2 Aug 2026 03:18:34 +0200 Subject: [PATCH] Implement welcome=false and wizard=false for Squeak 6.1 Also fix incorrect commentary of existing hacks for Squeak 6.0 --- dist/squeak_bundle.js | 9 +++++++-- dist/squeak_headless_bundle.js | 9 +++++++-- vm.interpreter.js | 9 +++++++-- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/dist/squeak_bundle.js b/dist/squeak_bundle.js index 0f3fb451..75cb7695 100644 --- a/dist/squeak_bundle.js +++ b/dist/squeak_bundle.js @@ -2919,10 +2919,15 @@ {method: "SmalltalkImage>>wordSize", literal: {index: 1, old: 8, hack: 4, skip: this.nilObj}, enabled: true}, // Squeak 5.3 disable wizard by replacing #open send with pop {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {pc: 28, old: 0xD8, hack: 0x87}, enabled: !sista & this.options.wizard===false}, - // Squeak 6.0 disable wizard by replacing #openWelcomeWorkspacesWith: send with pop + // Squeak 6.0 disable wizard by replacing #open send with pop {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 5, old: 0x81, hack: 0xD8}, enabled: sista & this.options.wizard===false}, - // Squeak 6.0 disable welcome workspace by replacing #open send with pop + // Squeak 6.1 disable wizard by replacing #open send with pop + {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 24, old: 0x89, hack: 0xD8}, enabled: sista & this.options.wizard===false}, + // Squeak 6.0 disable welcome workspace by replacing #openWelcomeWorkspacesWith: send with pop {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 2, old: 0x90, hack: 0xD8}, enabled: sista & this.options.welcome===false}, + // Squeak 6.1 disable welcome workspaces by replacing #openWelcomeWorkspacesWith: and #openObjectlandStarter sends with pop + {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 15, old: 0x93, hack: 0xD8}, enabled: sista & this.options.welcome===false}, + {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 18, old: 0x85, hack: 0xD8}, enabled: sista & this.options.welcome===false}, // Squeak source file should use UTF8 not MacRoman (both V3 and Sista) {method: "Latin1Environment class>>systemConverterClass", bytecode: {pc: 53, old: 0x45, hack: 0x49}, enabled: !this.image.isSpur}, {method: "Latin1Environment class>>systemConverterClass", bytecode: {pc: 38, old: 0x16, hack: 0x13}, enabled: this.image.isSpur && sista}, diff --git a/dist/squeak_headless_bundle.js b/dist/squeak_headless_bundle.js index 3f36d461..1b4e14b7 100644 --- a/dist/squeak_headless_bundle.js +++ b/dist/squeak_headless_bundle.js @@ -2916,10 +2916,15 @@ Object.subclass('Squeak.Interpreter', {method: "SmalltalkImage>>wordSize", literal: {index: 1, old: 8, hack: 4, skip: this.nilObj}, enabled: true}, // Squeak 5.3 disable wizard by replacing #open send with pop {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {pc: 28, old: 0xD8, hack: 0x87}, enabled: !sista & this.options.wizard===false}, - // Squeak 6.0 disable wizard by replacing #openWelcomeWorkspacesWith: send with pop + // Squeak 6.0 disable wizard by replacing #open send with pop {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 5, old: 0x81, hack: 0xD8}, enabled: sista & this.options.wizard===false}, - // Squeak 6.0 disable welcome workspace by replacing #open send with pop + // Squeak 6.1 disable wizard by replacing #open send with pop + {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 24, old: 0x89, hack: 0xD8}, enabled: sista & this.options.wizard===false}, + // Squeak 6.0 disable welcome workspace by replacing #openWelcomeWorkspacesWith: send with pop {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 2, old: 0x90, hack: 0xD8}, enabled: sista & this.options.welcome===false}, + // Squeak 6.1 disable welcome workspaces by replacing #openWelcomeWorkspacesWith: and #openObjectlandStarter sends with pop + {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 15, old: 0x93, hack: 0xD8}, enabled: sista & this.options.welcome===false}, + {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 18, old: 0x85, hack: 0xD8}, enabled: sista & this.options.welcome===false}, // Squeak source file should use UTF8 not MacRoman (both V3 and Sista) {method: "Latin1Environment class>>systemConverterClass", bytecode: {pc: 53, old: 0x45, hack: 0x49}, enabled: !this.image.isSpur}, {method: "Latin1Environment class>>systemConverterClass", bytecode: {pc: 38, old: 0x16, hack: 0x13}, enabled: this.image.isSpur && sista}, diff --git a/vm.interpreter.js b/vm.interpreter.js index 58f14ad4..ccb9a12d 100644 --- a/vm.interpreter.js +++ b/vm.interpreter.js @@ -165,10 +165,15 @@ Object.subclass('Squeak.Interpreter', {method: "SmalltalkImage>>wordSize", literal: {index: 1, old: 8, hack: 4, skip: this.nilObj}, enabled: true}, // Squeak 5.3 disable wizard by replacing #open send with pop {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {pc: 28, old: 0xD8, hack: 0x87}, enabled: !sista & this.options.wizard===false}, - // Squeak 6.0 disable wizard by replacing #openWelcomeWorkspacesWith: send with pop + // Squeak 6.0 disable wizard by replacing #open send with pop {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 5, old: 0x81, hack: 0xD8}, enabled: sista & this.options.wizard===false}, - // Squeak 6.0 disable welcome workspace by replacing #open send with pop + // Squeak 6.1 disable wizard by replacing #open send with pop + {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 24, old: 0x89, hack: 0xD8}, enabled: sista & this.options.wizard===false}, + // Squeak 6.0 disable welcome workspace by replacing #openWelcomeWorkspacesWith: send with pop {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 2, old: 0x90, hack: 0xD8}, enabled: sista & this.options.welcome===false}, + // Squeak 6.1 disable welcome workspaces by replacing #openWelcomeWorkspacesWith: and #openObjectlandStarter sends with pop + {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 15, old: 0x93, hack: 0xD8}, enabled: sista & this.options.welcome===false}, + {method: "ReleaseBuilder class>>prepareEnvironment", bytecode: {closure: 9, pc: 18, old: 0x85, hack: 0xD8}, enabled: sista & this.options.welcome===false}, // Squeak source file should use UTF8 not MacRoman (both V3 and Sista) {method: "Latin1Environment class>>systemConverterClass", bytecode: {pc: 53, old: 0x45, hack: 0x49}, enabled: !this.image.isSpur}, {method: "Latin1Environment class>>systemConverterClass", bytecode: {pc: 38, old: 0x16, hack: 0x13}, enabled: this.image.isSpur && sista},