I know about some of these. I'll leave my comments On Wed, Oct 01, 2008 at 10:53:25PM +0200, Damien Pollet wrote:
Hi list, we (with Stef) are browsing Kernel-Extensions, here are some notes for discussion, as we think there is stuff that should be merged in Pharo.
Most of the cleanup methods make sense, but what's the difference between cleanUp and freeSomeSpace ?
http://installer.pbwiki.com/FreeSomeSpace
AppRegistry class >> removeObsolete "AppRegistry removeObsoleteClasses" self registeredClasses copy do:[:cls| (cls class isObsolete or:[cls isBehavior and:[cls isObsolete]]) ifTrue:[self unregister: cls]]. self subclasses do:[:cls| cls removeObsolete].
A cleanup method. I think I wrote it. It is used by a freeSomeSpace script
Behavior class >> flushObsoleteSubclasses "Behavior flushObsoleteSubclasses" ObsoleteSubclasses finalizeValues.
Behavior >> sourceMatchesBytecodeAt:
I wrote this one to make it possible to debug things that are badly compiled
Class class >> freeSomeSpace "Fix some problems with classes. Use Smalltalk allClassesDo: since it does not use the subclass list, which we may be modifying during this iteration" Smalltalk allClassesDo: [:ea | ea fixObsoleteSuperclass. ea removeDuplicateSubclassEntries]
I wrote this one to fix some somewhat common problems that can happen in the class heiarchy, especially when unloading packages.
SystemDictionary >> globals needs to pay attention that compiled methods share the associations
Number >> to: stop do: aBlock displayingProgress: aString would be probably nicer with the block argument last
I wrote that one to complement #do:displayingProgress:
SequenceableCollection >> <= smells funny⦠what is it useful for ?
This is built to make it easy to make multi-level sort blocks for SortedCollection: aSortedCollection sortBlock: [:a :b | {a isSpecial. a name} <= {b isSpecial. b name}]
=== Useless:
ProtoObject >> iconOrThumbnailOfSize: Object >> askFor: and askFor:ifDefault: that's a workaround
Object >> deprecated is already here Object >> log should be packaged in a logging package since it's a convenience method
No, that's not the idea at all. Object >> log and Null provide a very lightweight discarding logging framework. We would like it in the kernel so that no matter where a package winds up, it can always do logging, but it may be discarded. After the package Logging is loaded, the user or release team can decide where the logs go (transcript, stdout, and syslog are currently implemented) See http://wiki.squeak.org/squeak/3706 for the documentation on the logging framework.
SequenceableCollection >> copyReplacing:with: just to type one space less ?
-- Damien Pollet type less, do more [ | ] http://people.untyped.org/damien.pollet
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Matthew Fulmer -- http://mtfulmer.wordpress.com/