-
-
Notifications
You must be signed in to change notification settings - Fork 425
Expand file tree
/
Copy pathPharoBootstrapInitialization.class.st
More file actions
108 lines (81 loc) · 3.27 KB
/
PharoBootstrapInitialization.class.st
File metadata and controls
108 lines (81 loc) · 3.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
"
I hold the code needed to initialize correctly a fresh generated bootstrap image.
I am invoked from the only process in the bootstraped image.
This process sends the message
initializeImageOfType: typeName majorVersion: major minor: minor suffix: suffix buid: build commitHash: hash
- The typeName is 'Pharo'
- Major and Minor are the versions of Pharo
- Suffix is the suffix of the version.
- Build is the build number from the CI server.
- hash is the commitish that produced this image.
I initialize the version object of the Image and perform the initial initialization.
Check #initializeCommandLineHandlerAndErrorHandling to see the steps performed.
"
Class {
#name : 'PharoBootstrapInitialization',
#superclass : 'Object',
#category : 'PharoBootstrap-Initialization-Base',
#package : 'PharoBootstrap-Initialization',
#tag : 'Base'
}
{ #category : 'initialization' }
PharoBootstrapInitialization class >> initializeCommandLineHandlerAndErrorHandling [
"This method is run before the new bootstrapped image is saved!"
ProcessorScheduler initialize.
Delay initialize.
ProcessorScheduler startUp.
OSPlatform startUp: true.
SmallInteger initialize.
String initialize.
ByteString initialize.
Float initialize.
ZnUTF8Encoder initialize. "needed by TextConverter to install LineEnd convention (called by Smalltalk openLog)"
"Weak array class initialization 2 lines"
Smalltalk specialObjectsArray at: 42 put: Semaphore new."to put in EPObjectSpace>>#createSpecialObjectsArray?"
FinalizationProcess restartFinalizationProcess.
Smalltalk globals
at: #Transcript
put: (NonInteractiveTranscript stdout install).
ErrorHandler default: NonInteractiveErrorHandler new.
InstructionStream initialize.
'Initializing Collections' traceCr.
CollectionElement initialize.
ExternalSemaphoreTable initialize.
'Initializing code model' traceCr.
CompiledMethod initialize.
Slot initialize.
Behavior initialize.
Class initialize.
Package initialize.
"Next three lines are for the deprecated aliases. This should be removed in Pharo 13"
PackageTag initialize.
PackageOrganizer initialize.
PackageConflictError initialize.
'Initializing sources' traceCr.
Smalltalk sourceFileVersionString: 'PharoV60'.
(Smalltalk class classVariableNamed: 'LastImagePath') value: Smalltalk imagePath. "set the default value"
SourceFileArray initialize.
'InitializingFFI' traceCr.
"FFI"
ExternalObject initialize.
ExternalType initialize.
'Initializing Session Manager' traceCr.
SessionManager initialize.
SessionManager initializeKernelRegistrations.
'Initializing basic command line behaviors' traceCr.
"Initialize basic command line behaviour"
NonInteractiveTranscript initialize.
PerformMessageCommandLineHandler initialize.
Smalltalk snapshot: true andQuit: true.
Processor terminateActive
]
{ #category : 'initialization' }
PharoBootstrapInitialization class >> initializeIcebergRepositories [
| specs repos |
specs := MetacelloProjectRegistration registry baselineProjectSpecs select: [ :spec | spec repositories printString includesSubstring: 'github://' ].
repos := specs collect: [ :spec | spec repositories map anyOne ] as: Set.
repos do: [ :repo |
| monticelloRepo |
monticelloRepo := MCRepository newRepositoryFromSpec: repo.
monticelloRepo getOrCreateIcebergRepository ]
]