-
Notifications
You must be signed in to change notification settings - Fork 108
/
BuildPharo6VMMakerImage.st
80 lines (73 loc) · 4.08 KB
/
BuildPharo6VMMakerImage.st
1
| manifest load |manifest := #( "('http://source.squeak.org/FFI' 1 ('FFI-Pools' 'FFI-Kernel')) already in Pharo" ('http://source.squeak.org/VMMaker' 6 ('Balloon-Engine-Pools' 'CogPools-ISAs' 'BytecodeSets.spur' 'VMMaker.oscog' 'VMMakerUI' 'Cog' 'CogTools' 'ImageFormat' 'FileAttributesPlugin.oscog')) ('http://source.squeak.org/VMMaker' 0 ('VMMakerCompatibilityForPharo6')) ('http://ss3.gemstone.com/ss/MethodMassage' 3 ('MethodMassage' 'MethodMassageCompatibility')) ('http://www.squeaksource.com/AioPlugin' 7 ('VMConstruction-Plugins-AioPlugin.oscog')) "('http://www.squeaksource.com/Alien' 0 ('Alien-Core' 'Alien-Tests-Core' 'Alien-Win32')) already in Pharo" "('http://www.squeaksource.com/FreeTypePlus' 5 ('FreeType')) can't load this. it is toxic to Squeak 4.5" "('http://www.squeaksource.com/FreetypePlugin' 8 ('Freetype-Plugin')) hence we can do without this" "('http://www.squeaksource.com/OSProcess' 4 ('OSProcess')) appears to conflict with OSSVMProcess" ('http://www.squeaksource.com/OSProcessPlugin' 9 ('VMConstruction-Plugins-OSProcessPlugin.oscog')) "('http://www.squeaksource.com/rb' 5 ('AST-Core' 'AST-Semantic' 'AST-Tests-Core' 'AST-Tests-Semantic' 'Refactoring-Changes' 'Refactoring-Core' 'Refactoring-Environment' 'Refactoring-Tests-Changes' 'Refactoring-Tests-Core' 'Refactoring-Tests-Environment' 'Refactoring-Squeak-Platform')) already in Pharo" "This for the Klatt speech synthesiser, but seems to be AWOL" ('http://www.squeaksource.com/Speech' 2 ('SharedPool-Speech' )) ('http://www.squeaksource.com/XDCP' 9 ('VMConstruction-Plugins-XDisplayControlPlugin.oscog' )) ('http://www.squeaksource.com/Balloon3D' 9 ('Balloon3D-Constants' 'Balloon3D-Plugins' )) ('http://www.squeaksource.com/Cryptography' 9 ('CryptographyPlugins' )) ('http://ss3.gemstone.com/ss/AndreasSystemProfiler' 9 ('AndreasProfiler')) ('http://www.squeaksource.com/Printf' 5 ('Printf')) ).load := (manifest collect: [:tuple| [:path :order :packages| | repository | repository := MCHttpRepository location: path user: 'squeak' password: 'squeak'. MCRepositoryGroup default addRepository: repository. {repository. order. packages}] valueWithArguments: tuple]) sort: [:a :b| a second <= b second].#( "'FT2Constants.st'" ) do: [:fileName| (FileLocator cwd / fileName) fileIn].load do: [:tuple| [:repository :order :packages| packages do: [:package | | packageVersions latestVersion | "We need to filter-out branches of unbranched packages, but can't assume the package list is (reverse) ordered." packageVersions := ((repository retrieveVersionsWithPackageNames: Set new) "e.g. Set with: #('Alien-Core' 'IgorStasenko' 71 'Alien-Core-IgorStasenko.71.mcz')" select: [ :v | v first = package and: [(v last at: package size + 1) = $-]]) asSortedCollection: [ :a :b | a third < b third ]. latestVersion := packageVersions last fourth. [| version | version := (MCCacheRepository default loadVersionFromFileNamed: latestVersion) ifNil: [repository loadVersionFromFileNamed: latestVersion]. version load. version workingCopy repositoryGroup addRepository: repository] on: Warning do: [:ex| ((ex messageText beginsWith: 'This package depends on the following classes') or: [ex messageText beginsWith: 'About to serialize an empty diffy version.']) ifFalse: [ex pass]. ex resume]]] valueWithArguments: tuple]. UIManager default edit: 'PharoWorkspace.text' asFileReference contents label: 'Overview'. #('VM Simulation' 'Source Generation' 'Slang Test' 'In-image Compilation') reverseDo: [ :nickname | GTPlayground openContents: (nickname , ' Workspace.text') asFileReference contents label: nickname, ' Playground'].#('Cog' 'CogTools' 'VMMaker') do: [ :pkg | (RPackageSet named: pkg) definedClasses do: [ :c | c organization sortCategories. c class organization sortCategories]]."Alas not. (Smalltalk classNamed: #StackInterpreter) withAllSubclasses do: [:sic| sic reorganizeAsISeeFit]."Smalltalk snapshot: true andQuit: true