Hi,

I collected information about classes present in the Pharo-Kernel and
the result is the set of packages that are essential for Pharo. This
is a list of this packages with some small reorganizations proposals.
If the packages will be reorganized, the shrinking process will be
start to be package-oriented and Pharo more modular.

Announcements without Announcements-View category

Collections without KedamaFloatArrayAbstract, Transcripter

Compiler

Exceptions (Exceptions-Extensions category is empty)

Files

Graphics:
        - Graphics-Display Objects without CornerRounder, DisplayText
        - Graphics-Primitives without Pen, PenPointRecorder
        - Graphics-Text (only class TextStyle)
        - Graphics-Transformations without MorphicTransform
        
Kernel

some classes should be moved to Exceptions package:
- BlockCannotReturn
- ArithmeticError
- FloatingPointException

some classes should be moved to a new UIManager package
- ProvideAnswerNotification
- ProgressInitiationException
- ProgressNotification

Multilingual:
        - Multilingual-Encodings
        - Multilingual-ImmPlugin
        - Multilingual-Languages
        - Multilingual-TextConversion
        
some classes should be moved to a new Base64 package
        - MimeConverter
        - Base64MimeConverter
        
ST80-Kernel-Remnants (ValueHolder, StringHolder) should have own
package or to be part of the Kernel package

System:
        - System-Change Notification (all classes)
        - System-Changes (all classes)
        - System-Clipboard (all classes)
        - System-Download (only AbstractLauncher)
        - System-FileRegistry (all classes)
        - System-Finalization (all classes)
        - System-Localization (all classes, at least for now ;-)
        - System-Object Events (all classes)
        - System-Object Storage (all classes)
        - System-Platforms (all classes)
        - System-Pools (all classes)
        - System-Support without AbstractSoundSystem, DummySoundSystem,
FontSubstitutionDuringLoading, Imports, MczInstaller, RealEstateAgent,
SARInstaller, SoundSettings
        - System-Tools only classes MethodReference, BreakPoint, 
BreakpointManager

(better modularization of System package is welcome)
        
ToolBuilder-Kernel:
        - UIManager class should be in standalone package, maybe together
with DummyUIManager (currently not present in Pharo)
        
Tools:
        - Tools-Changes
                - keep: ChangeSetCategory, ChangeSetCategoryWithParameters,
ElementCategory, ObjectWithDocumentation, StaticChangeSetCategory
                - remove: ChangeList, ChangeListForProjects, ChangeSetBrowser,
ChangeSorter, ClassCommentVersionsBrowser, DualChangeSorter,
VersionsBrowser
        - Tools-Debugger
                - keep: DebuggerMethodMap, DebuggerMethodMapForBlueBookMethods,
DebuggerMethodMapForClosureCompiledMethods, PointerFinder
                - remove: ContextVariablesInspector,. Debugger, MessageTally,
PreDebugWindow, SyntaxError, TimeProfileBrowser
        - class ThreadSafeTranscript (could be moved to Collections-Streams,
this class is a little bit Morphic dependent but this will be fixed)
        
Traits
        
        
It is very simple to change class categories however I suppose that to
fight with MC and automatic updates will be a hell. So maybe we should
prepare a simple reorganization script, upload new packages, prepare
prebuild image and break update process here as several times in the
past. The next step will be some reorganization of method categories.

Cheers,
-- Pavel

_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to