Frank Shearar uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-fbs.557.mcz
==================== Summary ====================
Name: System-fbs.557
Author: fbs
Time: 4 July 2013, 8:34:50.016 pm
UUID: dc5bb9ff-688b-5a4c-a756-c096700f9f47
Ancestors: System-fbs.556
Using #at:ifPresent: means never having to say KeyNotFound.
=============== Diff against System-fbs.556 ===============
Item was changed:
----- Method: SmalltalkImage>>presumedSentMessages (in category 'shrinking') -----
presumedSentMessages | sent |
"Smalltalk presumedSentMessages"
"The following should be preserved for doIts, etc"
sent := IdentitySet new.
#(compactSymbolTable rebuildAllProjects
browseAllSelect: lastRemoval
scrollBarValue: vScrollBarValue: scrollBarMenuButtonPressed:
withSelectionFrom: to: removeClassNamed:
dragon: hilberts: mandala: web test3 factorial tinyBenchmarks benchFib
newDepth: restoreAfter: zapAllMethods obsoleteClasses
removeAllUnSentMessages abandonSources removeUnreferencedKeys
reclaimDependents zapOrganization condenseChanges browseObsoleteReferences
subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:
methodsFor:stamp: methodsFor:stamp:prior: instanceVariableNames:
startTimerInterruptWatcher unusedClasses) do:
[:sel | sent add: sel].
"The following may be sent by perform: in dispatchOnChar..."
+ Smalltalk at: #ParagraphEditor ifPresent: [:paragraphEditor |
- (Smalltalk at: #ParagraphEditor) ifNotNilDo: [:paragraphEditor |
(paragraphEditor classPool at: #CmdActions) asSet do:
[:sel | sent add: sel].
(paragraphEditor classPool at: #ShiftCmdActions) asSet do:
[:sel | sent add: sel]].
^ sent!
On 3 July 2013 22:15, <commits(a)source.squeak.org> wrote:
> Frank Shearar uploaded a new version of ReleaseBuilder to project The Trunk:
> http://source.squeak.org/trunk/ReleaseBuilder-fbs.99.mcz
>
> ==================== Summary ====================
>
> Name: ReleaseBuilder-fbs.99
> Author: fbs
> Time: 3 July 2013, 10:15:15.841 pm
> UUID: c4defea8-9581-bd4f-b3d2-b1ddcdf5f90b
> Ancestors: ReleaseBuilder-fbs.98
>
> Ensure that ST80, ST80Tools and SmallLand-ColorTheme are loaded into a released 4..5 image.
>
> =============== Diff against ReleaseBuilder-fbs.98 ===============
>
> Item was changed:
> ----- Method: ReleaseBuilder class>>loadWellKnownPackages (in category 'private') -----
> loadWellKnownPackages
> "Load into the release image those packages that have been stripped from Trunk, but still deemed necessary for a release artifact."
> #('311Deprecated'
> '39Deprecated'
> '45Deprecated'
> 'Nebraska'
> + 'SmallLand-ColorTheme'
> + 'ST80'
> + 'ST80Tools'
So it should be clear I'm trying a semi-radical experiment here. The
base image used in CI has had these three packages removed. This has
caused some minor issues, but once I've fixed things, I'll mention a
ReleaseSqueakTrunk version that I'd really like people to test.
Especially Dave.
frank
Frank Shearar uploaded a new version of ST80Tests to project The Trunk:
http://source.squeak.org/trunk/ST80Tests-fbs.1.mcz
==================== Summary ====================
Name: ST80Tests-fbs.1
Author: fbs
Time: 4 July 2013, 8:05:53.456 pm
UUID: 717f9103-a5ab-9d4e-91b3-13a72aa859b0
Ancestors:
ST-80's very own test suite. For now, just test that ST-80's package dependencies are as expected.
==================== Snapshot ====================
SystemOrganization addCategory: #ST80Tests!
TestCase subclass: #ST80PackageDependencyTest
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'ST80Tests'!
----- Method: ST80PackageDependencyTest>>testPackage:dependsExactlyOn: (in category 'as yet unclassified') -----
testPackage: pkgName dependsExactlyOn: pkgList
"Ensure that the package with the given name depends only on the packages in pkgList.
NOTE: If you use this for fixing dependencies, classDeps includes the classes
and users from the package(s) not declared as dependents. Basically, you need
to fix all the references in classDeps to make the test pass."
| classDeps pi pkgDeps |
classDeps := IdentityDictionary new.
pi := PackageOrganizer default packageNamed: pkgName ifAbsent:[^self]. "unloaded"
pi classes do:[:pkgClass|
(classDeps at: (pkgClass superclass ifNil:[ProtoObject])
ifAbsentPut:[OrderedCollection new]) add: pkgClass name, ' superclass'.
].
pi methods do:[:mref| | cm |
cm := mref compiledMethod.
1 to: cm numLiterals do:[:i| | lit |
((lit := cm literalAt: i) isVariableBinding
and:[lit value isBehavior]) ifTrue:[(classDeps at: lit value ifAbsentPut:[OrderedCollection new]) add: cm methodClass asString, '>>', cm selector]]].
pkgDeps := Dictionary new.
classDeps keys do:[:aClass| | pkg |
pkg := PackageOrganizer default packageOfClass: aClass ifNone:[nil].
pkg ifNil:[
Transcript cr; show: 'WARNING: No package for ', aClass.
(classDeps removeKey: aClass) do:[:each| Transcript crtab; show: each].
] ifNotNil:[
(pkgDeps at: pkg name ifAbsentPut:[OrderedCollection new]) add: aClass.
].
].
(pkgDeps removeKey: pkgName ifAbsent:[#()])
do:[:aClass| classDeps removeKey: aClass ifAbsent:[]].
pkgList do:[:pkg|
self assert: (pkgDeps includesKey: pkg)
description: pkgName, ' no longer depends on ', pkg.
(pkgDeps removeKey: pkg ifAbsent: [#()])
do:[:aClass| classDeps removeKey: aClass ifAbsent:[]].
].
classDeps keysAndValuesDo:[:class :deps|
Transcript cr; show: class name, ' dependencies:'.
deps do:[:each| Transcript crtab; show: each].
].
self assert: pkgDeps isEmpty
description: pkgName, ' now depends on ', pkgDeps.
!
----- Method: ST80PackageDependencyTest>>testST80 (in category 'as yet unclassified') -----
testST80
self testPackage: 'ST80' dependsExactlyOn: #(
Collections
Compiler
Files
Graphics
Kernel
Morphic
Multilingual
Network
SUnit
System
'ToolBuilder-Kernel'
Tools
).!