[Modules] Progress report

Bergel Alexandre bergel at iam.unibe.ch
Sat May 25 12:28:00 UTC 2002


Hello Daniel,

I just want to say I appreciate your efforts. I am currently busy for participating actively to the modularization process. Perhaps this summer...

Regards,
Alexandre

On Sat, May 25, 2002 at 04:24:45AM +0300, danielv at netvision.net.il wrote:
> Someone asked a while ago for a progress report. I just finished running
> everything released that's supposed to unload something, while
> collecting some metrics. The first datum is that in this order,
> everything works off a clean 4857 image.
> 
> What was unloaded?
> 
> These are small modules, removed based on my work of the last couple of
> weekends.
> #(Squeak Network Applications MailReader)
> #(Squeak Network Applications IRCChat)
> #(Squeak Technology Benchmarks)
> #(Squeak Morphic Demo Games)
> #(Squeak Technology Archives Applications)
> #(Squeak Language Exceptions Tests)
> 
> The big ones by Henrik:
> #(Squeak VMConstruction)
> #(Squeak Media Balloon3D)
> 
> At this point, these are modules had no incoming dependencies and could
> be removed (I don't know if Henrik worked on this explicitly, I didn't).
> #(Image StandardRelease)
> #(Squeak EToy Imported)
> #(Squeak EToy Outliner)
> #(Squeak EToy UserObjects)
> #(Squeak Development Test TextEditing)
> #(Squeak Development Test SUnit UI)
> #(Squeak Development Test SUnit Tests)
> #(Squeak Development FileList Test)
> #(Squeak Network Applications PluggableWebServer)
> #(Squeak Network UUID)
> #(Squeak Morphic Tests)
> #(Squeak Morphic Widgets)
> #(Squeak Morphic Applications Media)
> #(Squeak Morphic Applications PDA)
> #(Squeak Morphic Library Models)
> #(Squeak Morphic Demo Components Built)
> #(Squeak MVC Symbols)
> #(Squeak Media Movies Player)
> #(Squeak Media Speech PhonemeRecognizer)
> #(Squeak Media Speech Klatt KlattResonatorIndices)
> #(Squeak Media Speech TTS)
> #(Squeak Media Speech)
> #(Squeak Media Balloon TrueType)
> #(Squeak Media Graphics Tools Simplification)
> #(Squeak Media Graphics Tools Triangulation)
> #(Squeak Media Graphics Tools Intersection)
> #(Squeak Media Graphics Tools)
> #(Squeak Media Graphics External)
> #(Squeak Technology FFI Examples X11)
> #(Squeak Technology FFI Examples Win32)
> #(Squeak Technology FFI Examples MacOS)
> #(Squeak Technology FFI Examples)
> #(Squeak Technology FFI Plugin)
> #(Squeak Technology SerialPort)
> #(Squeak Technology Files Tests)
> #(Squeak Language Modules Analysis)
> #(Squeak Language Modules Tests)
> #(Squeak Language Modules Refactorings)
> #(Squeak Language Collections Tests)
> #(Squeak Language Core Tests)
> #(Squeak Language Core Magnitudes Tests)
> 
> How far are we? 
> Before the unload, we had 1805 classes under Squeak.
> 
> After the unload we have 1229 classes under Squeak, of which 804 are
> still strung up in various loops according to a strong connected
> components. That's 804 classes Object is indirectly dependent on - quite
> a lot awaits removal.
> 
> Analyzing by major categories, these are the numbers of classes that
> exist:
> Before:
>  an OrderedCollection(
> Squeak Language)->208 
> Squeak Technology)->136 
> Squeak Media)->451 
> Squeak MVC)->74 
> Squeak Morphic)->329 
> Squeak Network)->189 
> Squeak Development)->87 
> Squeak VMConstruction)->99 
> Squeak EToy)->232)
> 
> And after:
> Squeak Language)->187 
> Squeak Technology)->113 
> Squeak Media)->194 
> Squeak MVC)->72 
> Squeak Morphic)->279 
> Squeak Network)->131 
> Squeak Development)->76 
> Squeak EToy)->175)
> 
> This is the script I've used in order to do this (I think I've sent up
> everything except for MoreAnalysis.1.cs which matters only for the SCC
> data, and I haven't yet cleaned up):
> 
> ChangeSorter fileIntoNewChangeSet:
> '/home/danielv/offLoadNoteBook/squeak/MovingClasses.cs'.
> ChangeSorter fileIntoNewChangeSet:
> '/home/danielv/offLoadNoteBook/squeak/MoreAnalysis.1.cs'.
> ChangeSorter fileIntoNewChangeSet:
> '/home/danielv/offLoadNoteBook/squeak/CarefulModule.2.cs'.
> 
> Preferences disable: #accessOnlineModuleRepositories.
> 
> {'plugin-rename.4.cs'. 
> 'makeVMConstrReloadable.5.cs'.
> 'dependencyFix.4.cs'.
> 'poolsFix.1.cs'.
> 'fasterModuleSaving-hg.1.cs'.
> 'fixChessPool.3.cs'.
> 'refactoringToolsRefactoring.cs'.
> 'codegeneratorModuleFix.1.cs'} 
> do: [:name | |fileName |
> fileName _ '/home/danielv/offLoadNoteBook/squeak/', name.
> ChangeSorter fileIntoNewChangeSet: fileName].
> 
> {'CelesteRemoval.8.cs'.
> 'MailComposition.st'.
> 'RefactoredCeleste.5.cs'.
> 'UnloadingDemos.1.cs'.
> 'DynamicWorldMenu.4.cs'}
> do: [:name | |fileName |
> fileName _ '/home/danielv/offLoadNoteBook/squeak/', name.
> ChangeSorter fileIntoNewChangeSet: fileName].
> 
> ParserRemovedUnusedTemps moveTo: Module @ #(Squeak Language Exceptions
> Core).
> FileList removeSelector: #addFileToZip.
> Benchmarks moveTo: (Module fromPath: #(Squeak Technology Benchmarks)
> forceCreate: true).
> 
> | module nextRound |
> #(
> (Squeak Network Applications MailReader)
> (Squeak Network Applications IRCChat)
> (Squeak Technology Benchmarks)
> (Squeak Morphic Demo Games)
> (Squeak Technology Archives Applications)
> (Squeak Language Exceptions Tests)
> ) do: [:path | module _ Module @ path.
> 	module deepDeclareExternalRefs.
> 	nextRound _ (module importedModules, {module parentModule}) asSet.
> 	module repository beStandalone.
> 	ModuleInstaller upload: module.
> 	Transcript show: 'About to remove'; show: module; cr.
> 	ModuleInstaller unload: module.
> 	Transcript show: 'Now have: '; show: (Module root Squeak submodules
> collect: [:e | e -> e deepClasses size]).
> 	Transcript show: 'candidates '; show: (nextRound select: [:e | e valid
> and: [(e deepIncomingRefsFromOutside: e) size = 0]])]
> 
>  | module |
>    module := Module @  #(Squeak VMConstruction).
>    module defineClassExtensionsOutside: module.
>    ModuleInstaller unload: module
> 
>  | module | 
>    (module _ Module @  #(Squeak Media Balloon3D))
> defineClassExtensionsOutside: module.
>    ModuleInstaller unload: module

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._
Bergel Alexandre  http://www.iam.unibe.ch/~bergel
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^



More information about the Squeak-dev mailing list