[squeak-dev] The Trunk: Installer-Core-cmm.377.mcz

Frank Shearar frank.shearar at gmail.com
Tue Aug 13 16:08:16 UTC 2013


Specifically, these are recipes for building up a fatter Squeak from a
leaner one, so we don't have to worry about cross-platform issues.
It's exactly those kinds of issues that cause people to invent things
like Metacello.

frank

On 9 August 2013 23:30, Chris Muller <asqueaker at gmail.com> wrote:
> As Frank works toward a smaller image where packages have been
> unloaded, I want to establish the hierarchies for reloading them
> directly into the image.  This approach utilizes simple Smalltalk
> literal structures, suitable for making a core image expandable
> without bloating it.
>
> Since it is so little code (with good pop), and no disruption to
> anything, I felt comfortable putting into trunk.
>
> On Fri, Aug 9, 2013 at 5:21 PM,  <commits at source.squeak.org> wrote:
>> Chris Muller uploaded a new version of Installer-Core to project The Trunk:
>> http://source.squeak.org/trunk/Installer-Core-cmm.377.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Installer-Core-cmm.377
>> Author: cmm
>> Time: 9 August 2013, 9:51:53.931 am
>> UUID: 85dd5a14-e50a-482c-b9cb-f8971264f602
>> Ancestors: Installer-Core-fbs.373
>>
>> Document externally-loadable Squeak packages as simple literal structures that can be merged via:
>>
>>         Installer new merge: #thePackageName
>>
>> =============== Diff against Installer-Core-fbs.373 ===============
>>
>> Item was changed:
>>   Object subclass: #Installer
>> +       instanceVariableNames: 'answers packages messagesToSuppress useFileIn noiseLevel currentRepository'
>> -       instanceVariableNames: 'answers packages messagesToSuppress useFileIn noiseLevel'
>>         classVariableNames: 'InstallerBindings IsSetToTrapErrors Remembered SkipLoadingTests ValidationBlock'
>>         poolDictionaries: ''
>>         category: 'Installer-Core'!
>>
>>   !Installer commentStamp: 'kph 3/30/2009 01:29' prior: 0!
>>   Documentation now available at http://installer.pbwiki.com/Installer
>>
>>   useFileIn - flag to load source.st rather than using Monticello!
>>
>> Item was added:
>> + ----- Method: Installer class>>krestianstvo (in category 'repositories') -----
>> + krestianstvo
>> +       "Krestianstvo SDK code repository."
>> +       ^ self monticello http: 'http://sdk.krestianstvo.org/sdk/'!
>>
>> Item was added:
>> + ----- Method: Installer>>broomMorphsBase (in category 'external-packages') -----
>> + broomMorphsBase
>> +       "Morph alignment user-interface tool."
>> +       ^ { #ss3 -> 'Connectors'.
>> +       'BroomMorphs-Base' }!
>>
>> Item was added:
>> + ----- Method: Installer>>connectors (in category 'external-packages') -----
>> + connectors
>> +       "Connect Morphs together.  Make diagrams."
>> +       ^ { self broomMorphsBase.
>> +       'CGPrereqs'.
>> +       'FSM'.
>> +       'Connectors'.
>> +       'ConnectorsText'.
>> +       'ConnectorsShapes'.
>> +       'ConnectorsTools'.
>> +       'ConnectorsGraphLayout'.
>> +       'BroomMorphs-Connectors' }!
>>
>> Item was added:
>> + ----- Method: Installer>>curvedSpaceExplorer (in category 'external-packages') -----
>> + curvedSpaceExplorer
>> +       "Explore curved 3D spaces."
>> +       ^ { self openGL.
>> +       'CCSpaceExplorer' }!
>>
>> Item was added:
>> + ----- Method: Installer>>depthFirstOf:do: (in category 'private') -----
>> + depthFirstOf: structure do: oneArgBlock
>> +       self
>> +               depthFirstOf: structure
>> +               do: oneArgBlock
>> +               ifNotIn: Set new!
>>
>> Item was added:
>> + ----- Method: Installer>>depthFirstOf:do:ifNotIn: (in category 'private') -----
>> + depthFirstOf: structure do: oneArgBlock ifNotIn: aSet
>> +       (aSet includes: structure) ifTrue: [ ^ self ].
>> +       aSet add: structure.
>> +       structure isArray
>> +               ifTrue:
>> +                       [ structure do:
>> +                               [ : each | self
>> +                                       depthFirstOf: each
>> +                                       do: oneArgBlock
>> +                                       ifNotIn: aSet ] ]
>> +               ifFalse: [ oneArgBlock value: structure ]!
>>
>> Item was added:
>> + ----- Method: Installer>>ffi (in category 'external-packages') -----
>> + ffi
>> +       "Foreign Function Interface."
>> +       ^ { #squeak -> 'FFI'.
>> +       'FFI-Pools'.
>> +       'FFI-Kernel' }!
>>
>> Item was added:
>> + ----- Method: Installer>>ffiTests (in category 'external-packages') -----
>> + ffiTests
>> +       "Tests for Foreign Function Interface."
>> +       ^ { self ffi.
>> +       'FFI-Tests' }!
>>
>> Item was added:
>> + ----- Method: Installer>>fuel (in category 'external-packages') -----
>> + fuel
>> +       "Serialization package."
>> +       ^ { #ss3 -> 'Fuel'.
>> +       'ConfigurationOfFuel' }!
>>
>> Item was added:
>> + ----- Method: Installer>>htmlValidator (in category 'external-packages') -----
>> + htmlValidator
>> +       "Validates HTML and CSS pages against W3C DTD."
>> +       ^ { #ss -> 'htmlcssparser'.
>> +       'HTML-tb.37' }!
>>
>> Item was added:
>> + ----- Method: Installer>>merge: (in category 'public interface') -----
>> + merge: structureOrSymbol
>> +       structureOrSymbol isSymbol
>> +               ifTrue: [ self merge: (self perform: structureOrSymbol) ]
>> +               ifFalse:
>> +                       [ self
>> +                               depthFirstOf: structureOrSymbol
>> +                               do:
>> +                                       [ : each | each isVariableBinding
>> +                                               ifTrue: [ self setRepository: each ]
>> +                                               ifFalse:
>> +                                                       [ each isString
>> +                                                               ifTrue: [ self primMerge: each ]
>> +                                                               ifFalse: [ self error: 'invalid specification' ] ] ] ]!
>>
>> Item was added:
>> + ----- Method: Installer>>openGL (in category 'external-packages') -----
>> + openGL
>> +       "3D library."
>> +       ^ { self threeDtransform.
>> +       #krestianstvo -> 'ccse'.
>> +       'OpenGL-Pools'.
>> +       'OpenGL-Core'.
>> +       'OpenGL-NameManager' }!
>>
>> Item was added:
>> + ----- Method: Installer>>osProcess (in category 'external-packages') -----
>> + osProcess
>> +       "Launch external executable programs."
>> +       ^ { #ss -> 'OSProcess'.
>> +       'OSProcess' }!
>>
>> Item was added:
>> + ----- Method: Installer>>primMerge: (in category 'private') -----
>> + primMerge: packageName
>> +       [ | version |
>> +       version := (currentRepository includesVersionNamed: packageName)
>> +               ifTrue: [ currentRepository versionNamed: packageName ]
>> +               ifFalse: [ currentRepository highestNumberedVersionForPackageNamed: packageName ].
>> +       version shouldMerge
>> +               ifTrue: [ version merge ]
>> +               ifFalse: [ version load ] ]
>> +               on: MCNoChangesException
>> +               do: [ : req | req resume ]
>> +               on: MCMergeResolutionRequest
>> +               do:
>> +                       [ : request | request merger conflicts isEmpty
>> +                               ifTrue: [ request resume: true ]
>> +                               ifFalse: [ request pass ] ]!
>>
>> Item was added:
>> + ----- Method: Installer>>setRepository: (in category 'private') -----
>> + setRepository: anAssociation
>> +       currentRepository := (self class perform: anAssociation key)
>> +                project: anAssociation value ;
>> +                mc!
>>
>> Item was added:
>> + ----- Method: Installer>>threeDtransform (in category 'external-packages') -----
>> + threeDtransform
>> +       ^ { self ffiTests.
>> +       #ss -> 'CroquetGL'.
>> +       '3DTransform' }!
>>
>> Item was added:
>> + ----- Method: Installer>>webClientCore (in category 'external-packages') -----
>> + webClientCore
>> +       "Simple, compact, and easy to use HTTP client implementation from Andreas Raab."
>> +       ^ { #ss -> 'WebClient'.
>> +       'WebClient-Core' }!
>>
>> Item was added:
>> + ----- Method: Installer>>webClientSsp (in category 'external-packages') -----
>> + webClientSsp
>> +       "WebClient supports NTLM/SPNEGO authentication via the Microsoft SSP interface (Windows only)."
>> +       ^ { self ffiTests.
>> +       self webClientTests.
>> +       'WebClient-SSP' }!
>>
>> Item was added:
>> + ----- Method: Installer>>webClientTests (in category 'external-packages') -----
>> + webClientTests
>> +       "Help documentation and tests for Web Client."
>> +       ^ { self webClientCore.
>> +       'WebClient-Tests'.
>> +       'WebClient-Help' }!
>>
>>
>


More information about the Squeak-dev mailing list