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

Chris Muller asqueaker at gmail.com
Fri Aug 9 22:30:42 UTC 2013


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