Skip to content

Commit

Permalink
Merge pull request #423 from GemTalk/candidateV1.2
Browse files Browse the repository at this point in the history
v1.2.3 release
  • Loading branch information
dalehenrich authored Nov 20, 2018
2 parents 7a221e2 + 256bb6f commit e2c281a
Show file tree
Hide file tree
Showing 44 changed files with 2,526 additions and 295 deletions.
21 changes: 8 additions & 13 deletions platforms/gemstone/bin/packing_oscar
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
set -e

# Usage:
# $ROWAN_PROJECTS_HOME/Rowan/bin/packing_oscar <base_label> <rowan_tag> <jadeite_tag> <location_of_sett_zip>
# $ROWAN_PROJECTS_HOME/Rowan/bin/packing_oscar <base_label> <rowan_tag> <jadeite_tag>
#
# 1. clone the Rowan project
# 2. confirm that the master branches of Rowan is on the correct tag
Expand All @@ -24,8 +24,14 @@ set -e
# 1.1.1 candidate $ROWAN_PROJECTS_HOME/Rowan/platforms/gemstone/bin/packing_oscar Edelweiss-1.1.1-candidate v1.1.1-candidate Oscar-3.0.16 /export/gcm/where/gemstone64/releases/Edelweiss/sett/Sett1.0.zip
# 1.1.1 candidate 2 $ROWAN_PROJECTS_HOME/Rowan/platforms/gemstone/bin/packing_oscar Edelweiss-1.1.1-candidate_2 v1.1.1-candidate_2 Oscar-3.0.16 /export/gcm/where/gemstone64/releases/Edelweiss/sett/Sett1.0.zip
# 1.1.1 candidate 3 $ROWAN_PROJECTS_HOME/Rowan/platforms/gemstone/bin/packing_oscar Edelweiss-1.1.1-candidate_3 v1.1.1-candidate_3 Oscar-3.0.16 /export/gcm/where/gemstone64/releases/Edelweiss/sett/Sett1.0.zip
# 1.1.3 $ROWAN_PROJECTS_HOME/Rowan/platforms/gemstone/bin/packing_oscar Edelweiss-1.1.3 v1.1.3 Oscar-3.0.16 /export/gcm/where/gemstone64/releases/Edelweiss/sett/Sett1.0.zip
# 1.1.4 $ROWAN_PROJECTS_HOME/Rowan/platforms/gemstone/bin/packing_oscar Edelweiss-1.1.4 v1.1.4 Oscar-3.0.16 /export/gcm/where/gemstone64/releases/Edelweiss/sett/Sett1.0.zip
# 1.1.5 $ROWAN_PROJECTS_HOME/Rowan/platforms/gemstone/bin/packing_oscar Edelweiss-1.1.5 v1.1.5 Oscar-3.0.16 /export/gcm/where/gemstone64/releases/Edelweiss/sett/Sett1.0.zip
# 1.1.6 $ROWAN_PROJECTS_HOME/Rowan/platforms/gemstone/bin/packing_oscar Edelweiss-1.1.6 v1.1.6 Oscar-3.0.16 /export/gcm/where/gemstone64/releases/Edelweiss/sett/Sett1.0.zip
# 1.1.7 $ROWAN_PROJECTS_HOME/Rowan/platforms/gemstone/bin/packing_oscar Edelweiss-1.1.7 v1.1.7 Oscar-3.0.16
# 1.2.0 $ROWAN_PROJECTS_HOME/Rowan/platforms/gemstone/bin/packing_oscar Edelweiss-1.2.0 v1.2.0 Oscar-3.0.40 /export/gcm/where/gemstone64/releases/Edelweiss/sett/Sett1.0.zip
# 1.2.1 $ROWAN_PROJECTS_HOME/Rowan/platforms/gemstone/bin/packing_oscar Edelweiss-1.2.1 v1.2.1 Oscar-3.0.45 /export/gcm/where/gemstone64/releases/Edelweiss/sett/Sett1.0.zip
# 1.2.2 $ROWAN_PROJECTS_HOME/Rowan/platforms/gemstone/bin/packing_oscar Edelweiss-1.2.2 v1.2.2 Oscar-3.0.45 /export/gcm/where/gemstone64/releases/Edelweiss/sett/Sett1.0.zip
#
ANSI_RED="\033[91;1m"
ANSI_GREEN="\033[92;1m"
Expand All @@ -38,8 +44,6 @@ if [ "$base_label"x = "x" ] ; then
fi
rowan_tag="$2"
jadeite_tag="$3"
sett_zip_location="$4"
sett_zip=$(basename ${sett_zip_location})
rowanDeploymentBranch="candidateV1.2"
rowanDeploymentBranch="masterV1.2"

Expand Down Expand Up @@ -135,12 +139,6 @@ echo " Jadeite runtime directory" >> MANIFEST.TXT
echo "------------------------------" >> MANIFEST.TXT
echo "Jadeite_runtime_${jadeite_tag}" >> MANIFEST.TXT

echo "" >> MANIFEST.TXT
echo "------------------------------" >> MANIFEST.TXT
echo " SETT release " >> MANIFEST.TXT
echo "------------------------------" >> MANIFEST.TXT
echo "${sett_zip} " >> MANIFEST.TXT

echo "" >> MANIFEST.TXT
echo "------------------------------" >> MANIFEST.TXT
echo " doc file(s)" >> MANIFEST.TXT
Expand All @@ -159,12 +157,9 @@ if [ $count -lt 1 ] ; then
exit 1
fi

# Copy SETT
cp $sett_zip_location .

# create zip file

zip -r ${base_label}.zip MANIFEST.TXT ${jadeite_runtime_dirName} ${sett_zip} *.pdf Rowan
zip -r ${base_label}.zip MANIFEST.TXT ${jadeite_runtime_dirName} *.pdf Rowan

# create sha256 file

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Extension { #name : 'CypressAddition' }

{ #category : '*cypress-environmental-tools' }
CypressAddition >> loadClassDefinition: aSymbolDictionaryName environmentLoader: environmentLoader [
self definition
loadClassDefinition: aSymbolDictionaryName
environmentLoader: environmentLoader

]

{ #category : '*cypress-environmental-tools' }
CypressAddition >> loadMethodDefinition: lookupSymbolList environmentLoader: environmentLoader [
self definition
loadMethodDefinition: lookupSymbolList
environmentLoader: environmentLoader

]

{ #category : '*cypress-environmental-tools' }
CypressAddition >> postLoadDefinition: lookupSymbolList environmentId: environmentId [
self definition
postLoadOver: nil
lookupSymbolList: lookupSymbolList
environmentId: environmentId

]
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
Extension { #name : 'CypressClassDefinition' }

{ #category : '*cypress-environmental-tools' }
CypressClassDefinition >> createOrReviseClass: aSymbolDictionaryName environmentLoader: environmentLoader [
^ self subclassType = ''
ifTrue: [
self
createOrReviseRegularClass: aSymbolDictionaryName
environmentLoader: environmentLoader ]
ifFalse: [
self subclassType = 'byteSubclass'
ifTrue: [
self
createOrReviseByteClass: aSymbolDictionaryName
environmentLoader: environmentLoader ]
ifFalse: [
self subclassType = 'indexableSubclass'
ifTrue: [
self
createOrReviseIndexableClass: aSymbolDictionaryName
environmentLoader: environmentLoader ]
ifFalse: [ self error: 'unknown subclass type: ' , self subclassType printString ] ] ]

]

{ #category : '*cypress-environmental-tools' }
CypressClassDefinition >> createOrReviseRegularClass: aSymbolDictionaryName environmentLoader: environmentLoader [
"To be resolved:
- the question of an 'environment' in which to create the class.
- the question of which SymbolDictionary in which to create the class.
These are perhaps the same question."

| superClass lookupSymbolList |
lookupSymbolList := environmentLoader lookupSymbolList.
superClass := (lookupSymbolList resolveSymbol: self superclassName) value.
^ (superClass
subclass: self name
instVarNames: (self instVarNames collect: [ :each | each asSymbol ])
classVars: (self classVarNames collect: [ :each | each asSymbol ])
classInstVars: (self classInstVarNames collect: [ :each | each asSymbol ])
poolDictionaries: #()
inDictionary:
((self symbolDictionaryForClassNamed: self name symbolList: lookupSymbolList)
ifNil: [ (lookupSymbolList resolveSymbol: aSymbolDictionaryName) value ])
options: #())
category: category;
comment: self comment

]

{ #category : '*cypress-environmental-tools' }
CypressClassDefinition >> loadClassDefinition: aSymbolDictionaryName environmentLoader: environmentLoader [
"Create a new version of the defined class. If the class already exists,
copy the behaviors and state from the old version."

| newClass oldClass lookupSymbolList |
lookupSymbolList := environmentLoader lookupSymbolList.
self defaultSymbolDictionaryName: aSymbolDictionaryName.
(lookupSymbolList resolveSymbol: self name)
ifNotNil: [ :assoc | oldClass := assoc value ].
newClass := self
createOrReviseClass: aSymbolDictionaryName
environmentLoader: environmentLoader.
(oldClass isNil or: [ newClass == oldClass ])
ifTrue: [ ^ self ].
self classNeedingMigration: newClass.
self
recompileWithSubclassesFrom: oldClass
to: newClass
symbolList: lookupSymbolList

]

{ #category : '*cypress-environmental-tools' }
CypressClassDefinition >> symbolDictionaryForClassNamed: aString symbolList: aSymbolList [
"Answer the SymbolDictionary containing the named class.
If there are multiple answers, answer the first.
If there are no answers (i.e., the class does not exist), answer
the result of evaluating aBlock."

^ aSymbolList asArray detect: [ :each | each
anySatisfy: [ :every | every isBehavior and: [ every name asString = aString asString ] ] ]
ifNone: [ ]

]
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
Extension { #name : 'CypressDefinition' }

{ #category : '*cypress-environmental-tools' }
CypressDefinition >> loadClassDefinition: aSymbolDictionaryName environmentLoader: environmentLoader [
"default is to do nothing"


]

{ #category : '*cypress-environmental-tools' }
CypressDefinition >> loadMethodDefinition: lookupSymbolList environmentLoader: environmentLoader [
"default is to do nothing"


]

{ #category : '*cypress-environmental-tools' }
CypressDefinition >> postLoad: lookupSymbolList environmentId: environmentId [
"noop"


]

{ #category : '*cypress-environmental-tools' }
CypressDefinition >> postLoadOver: aDefinition lookupSymbolList: lookupSymbolList environmentId: environmentId [
self postLoad: lookupSymbolList environmentId: environmentId

]
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Extension { #name : 'CypressMethodDefinition' }

{ #category : '*cypress-environmental-tools' }
CypressMethodDefinition >> loadMethodDefinition: lookupSymbolList environmentLoader: environmentLoader [
| cls actualCls |
cls := (lookupSymbolList resolveSymbol: self className) value.
actualCls := self classIsMeta
ifTrue: [ cls class ]
ifFalse: [ cls ].
actualCls
compileMethod: self source
dictionaries: environmentLoader compilationSymbolList
category: self category
environmentId: environmentLoader defaultEnvironmentId

]

{ #category : '*cypress-environmental-tools' }
CypressMethodDefinition >> postLoadOver: aDefinition lookupSymbolList: lookupSymbolList environmentId: environmentId [
super
postLoadOver: aDefinition
lookupSymbolList: lookupSymbolList
environmentId: environmentId.
(self isInitializer
and: [ aDefinition isNil or: [ self source ~= aDefinition source ] ])
ifTrue: [
(self theNonMetaClass: lookupSymbolList)
perform: #'initialize'
env: environmentId ]

]

{ #category : '*cypress-environmental-tools' }
CypressMethodDefinition >> theNonMetaClass: lookupSymbolList [
^ self
resolveGlobalNamed: self className
lookupSymbolList: lookupSymbolList
or: [ ]

]
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Extension { #name : 'CypressModification' }

{ #category : '*cypress-environmental-tools' }
CypressModification >> loadClassDefinition: aSymbolDictionaryName environmentLoader: environmentLoader [
self modification
loadClassDefinition: aSymbolDictionaryName
environmentLoader: environmentLoader

]

{ #category : '*cypress-environmental-tools' }
CypressModification >> loadMethodDefinition: lookupSymbolList environmentLoader: environmentLoader [
self modification
loadMethodDefinition: lookupSymbolList
environmentLoader: environmentLoader

]

{ #category : '*cypress-environmental-tools' }
CypressModification >> postLoadDefinition: lookupSymbolList environmentId: environmentId [
self modification
postLoadOver: self obsoletion
lookupSymbolList: lookupSymbolList
environmentId: environmentId

]
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Extension { #name : 'CypressObject' }

{ #category : '*cypress-environmental-tools' }
CypressObject >> resolveGlobalNamed: aString lookupSymbolList: lookupSymbolList or: aBlock [
^ ((lookupSymbolList resolveSymbol: aString) ifNil: [ ^ aBlock value ]) value

]
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Extension { #name : 'CypressRemoval' }

{ #category : '*cypress-environmental-tools' }
CypressRemoval >> loadClassDefinition: aSymbolDictionaryName environmentLoader: environmentLoader [
CypressError
signal:
'inappropriate to send #loadClassDefinition:environmentLoader: to a removal operation'

]

{ #category : '*cypress-environmental-tools' }
CypressRemoval >> loadMethodDefinition: lookupSymbolList environmentLoader: environmentLoader [
CypressError
signal:
'inappropriate to send #loadMethodDefinition:environmentLoader: to a removal operation'

]

{ #category : '*cypress-environmental-tools' }
CypressRemoval >> postLoadDefinition: lookupSymbolList environmentId: environmentId [
CypressError
signal:
'inappropriate to send #postLoadDefinition:environmentId: to a removal operation'

]
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
Extension { #name : 'CypressClassStructure' }

{ #category : '*Cypress-MesssageDigest' }
CypressClassStructure >> addToDigest: aMessageDigestStream [

aMessageDigestStream
tab;
tab;
nextPutAll: self class name;
cr;
tab;
tab;
tab;
nextPutAll: 'extension:';
nextPutAll: self isClassExtension printString;
cr;
tab;
tab;
tab;
nextPutAll: 'comment:';
nextPutAll: self comment;
cr;
tab;
tab;
tab;
nextPutAll: 'properties:';
cr;
tab;
tab;
tab;
tab.
self properties _writeCypressJsonOn: aMessageDigestStream indent: 4.
aMessageDigestStream
cr;
tab;
tab;
tab;
nextPutAll: 'class methods:';
cr.
(self classMethods asSortedCollection:
[:a :b |
(a isMetaclass printString , a selector)
< (b isMetaclass printString , b selector)])
do: [:each | each addToDigest: aMessageDigestStream].
aMessageDigestStream
tab;
tab;
tab;
nextPutAll: 'instance methods:';
cr.
(self instanceMethods asSortedCollection:
[:a :b |
(a isMetaclass printString , a selector)
< (b isMetaclass printString , b selector)])
do: [:each | each addToDigest: aMessageDigestStream]

]

{ #category : '*Cypress-MesssageDigest' }
CypressClassStructure >> isSkeleton [

^instanceMethods isNil
and: [classMethods isNil
and: [comment isNil
and: [isClassExtension isNil]]]
]
Loading

0 comments on commit e2c281a

Please sign in to comment.