Merged with trunk jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Wed, 08 Jun 2011 22:53:07 +0100
branchjv
changeset 17841 7abcc4aef871
parent 17840 a9bb0978dd43
child 17842 6d1f5775f902
Merged with trunk
AbortAllOperationRequest.st
AbortAllOperationWantedQuery.st
AbstractOperatingSystem.st
AbstractSourceFileReader.st
AbstractSourceFileWriter.st
AbstractTime.st
ApplicationDefinition.st
ArithmeticValue.st
Array.st
Association.st
Autoload.st
AutoloadMetaclass.st
Bag.st
Behavior.st
Block.st
Boolean.st
ByteArray.st
CharacterArray.st
CharacterEncoder.st
CharacterEncoderImplementations__EBCDIC.st
CharacterEncoderImplementations__ISO10646_to_UTF16BE.st
CharacterEncoderImplementations__JIS0208_to_SJIS.st
CharacterEncoderImplementations__MAC_Roman.st
CharacterEncoderImplementations__SingleByteEncoder.st
CharacterEncoderImplementations__TwoByteEncoder.st
CharacterWriteStream.st
Class.st
ClassBuildError.st
ClassBuilder.st
ClassDescription.st
Collection.st
CompiledCode.st
Context.st
Date.st
Delay.st
Dictionary.st
DirectoryStream.st
EncodedStream.st
Error.st
ExecutableFunction.st
ExternalAddress.st
ExternalBytes.st
ExternalFunction.st
ExternalFunctionCallback.st
ExternalLibrary.st
ExternalLibraryFunction.st
ExternalStream.st
FileDirectory.st
FileStream.st
Filename.st
FixedPoint.st
Float.st
FloatArray.st
Fraction.st
GenericException.st
HashStream.st
ImmutableArray.st
ImmutableByteArray.st
ImmutableString.st
Infinity.st
InlineObjectClassDescription.st
Integer.st
Interval.st
InvalidPatchError.st
KeyedCollection.st
LargeInteger.st
LibraryDefinition.st
LimitedPrecisionReal.st
LinkedList.st
LongFloat.st
MD5Stream.st
Make.proto
Make.spec
MessageNotUnderstood.st
MessageSend.st
Metaclass.st
Method.st
MiniDebugger.st
NameSpace.st
NoHandlerError.st
NoModificationError.st
NonPositionableExternalStream.st
Notification.st
Number.st
OSErrorHolder.st
OSProcess.st
Object.st
ObjectMemory.st
PCFilename.st
PackageId.st
PeekableStream.st
PipeStream.st
PluginSupport.st
PositionableStream.st
ProceedableError.st
Process.st
ProcessorScheduler.st
ProgrammingLanguage.st
Project.st
ProjectDefinition.st
ProtoObject.st
PrototypeLookupAlgorithm.st
Query.st
QuerySignal.st
ReadEvalPrintLoop.st
ReadStream.st
Rectangle.st
RecursionLock.st
Registry.st
SHA1Stream.st
SameForAllNotification.st
Semaphore.st
SemaphoreSet.st
SequenceableCollection.st
Set.st
SharedPool.st
ShortFloat.st
Signal.st
SignalSet.st
SmallInteger.st
Smalltalk.st
SmalltalkChunkFileSourceReader.st
SmalltalkChunkFileSourceWriter.st
SmalltalkLanguage.st
StandaloneStartup.st
Stream.st
StreamError.st
String.st
StringCollection.st
SubclassResponsibilityError.st
Symbol.st
SystemChangeNotifier.st
Time.st
TimeoutNotification.st
Timestamp.st
UndefinedObject.st
UninterpretedBytes.st
UnixFilename.st
UnixOperatingSystem.st
UserMessage.st
UserNotification.st
UserPreferences.st
UtcTimestamp.st
Visitor.st
Warning.st
WeakArray.st
Win32Constants.st
Win32OperatingSystem.st
Win32Process.st
WriteStream.st
YesToAllConfirmation.st
bc.mak
libInit.cc
not_delivered/SystemDictionary.st
not_delivered/VMBehavior.st
resources/af.rs
resources/de.rs
resources/el.rs
resources/en.rs
resources/eo.rs
resources/fr.rs
resources/hu.rs
resources/it.rs
resources/ja.rs
resources/nl.rs
resources/no.rs
resources/pt.rs
resources/resources.rs
resources/ro.rs
resources/ru.rs
resources/sv.rs
resources/tr.rs
resources/zh.rs
resources/zh_trad.rs
stx_libbasic.st
vms.mak
--- a/AbortAllOperationRequest.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/AbortAllOperationRequest.st	Wed Jun 08 22:53:07 2011 +0100
@@ -85,16 +85,17 @@
 !AbortAllOperationRequest class methodsFor:'documentation'!
 
 version
-    ^ '$Id: AbortAllOperationRequest.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AbortAllOperationRequest.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: AbortAllOperationRequest.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AbortAllOperationRequest.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/AbortAllOperationRequest.st,v 1.8 2011-02-09 12:59:00 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/AbortAllOperationRequest.st,v 1.8 2011/02/09 12:59:00 cg Exp '
 ! !
 
 AbortAllOperationRequest initialize!
 
+
--- a/AbortAllOperationWantedQuery.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/AbortAllOperationWantedQuery.st	Wed Jun 08 22:53:07 2011 +0100
@@ -67,5 +67,6 @@
 !AbortAllOperationWantedQuery class methodsFor:'documentation'!
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/AbortAllOperationWantedQuery.st,v 1.2 2011-02-09 10:44:37 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/AbortAllOperationWantedQuery.st,v 1.2 2011/02/09 10:44:37 cg Exp §'
 ! !
+
--- a/AbstractOperatingSystem.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/AbstractOperatingSystem.st	Wed Jun 08 22:53:07 2011 +0100
@@ -189,13 +189,18 @@
 
     ResourcePack notNil ifTrue:[
         Error handle:[:ex |
-            'OS [warning]: error when reading resources for libbasic' errorPrintCR.
+            'OS [warning]: error when reading resources for libbasic:' errorPrintCR.
+            'OS [info]: 'errorPrint. ex description errorPrintCR.
+            'OS [info]: backtrace: ' errorPrintCR.
+            self withErrorStreamDo:[:s | 
+                ex suspendedContext fullPrintAllOn:s.
+            ].
         ] do:[
             Resources := ResourcePack forPackage:(self package).
         ].
     ]
 
-    "Modified: / 01-10-2007 / 12:14:43 / cg"
+    "Modified: / 21-04-2011 / 12:48:02 / cg"
 !
 
 initialize
@@ -668,6 +673,10 @@
      (as kept in an osErrorHolder)."
 
     Resources isNil ifTrue:[
+        "/ do not care to load resource strings, if the error happens durig early initialization
+        Smalltalk isInitialized ifFalse:[
+            ^ errorSymbol
+        ].
         self initResources.
         Resources isNil ifTrue:[
             ^ errorSymbol
@@ -680,7 +689,7 @@
      OperatingSystem errorStringForSymbol:(OperatingSystem errorSymbolForNumber:4)
     "
 
-    "Modified: / 01-10-2007 / 12:14:52 / cg"
+    "Modified: / 21-04-2011 / 13:13:29 / cg"
 !
 
 errorSymbolAndTextForNumber:errNr
@@ -7025,15 +7034,15 @@
 !AbstractOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Id: AbstractOperatingSystem.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AbstractOperatingSystem.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/AbstractOperatingSystem.st,v 1.210 2011-03-08 17:48:53 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/AbstractOperatingSystem.st,v 1.213 2011/04/21 11:13:33 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: AbstractOperatingSystem.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AbstractOperatingSystem.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 AbstractOperatingSystem initialize!
@@ -7045,3 +7054,4 @@
 
 
 
+
--- a/AbstractSourceFileReader.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/AbstractSourceFileReader.st	Wed Jun 08 22:53:07 2011 +0100
@@ -73,15 +73,15 @@
 !AbstractSourceFileReader class methodsFor:'documentation'!
 
 version
-    ^ '$Id: AbstractSourceFileReader.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AbstractSourceFileReader.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/AbstractSourceFileReader.st,v 1.5 2010-08-08 12:38:42 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/AbstractSourceFileReader.st,v 1.5 2010/08/08 12:38:42 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: AbstractSourceFileReader.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AbstractSourceFileReader.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -90,3 +90,4 @@
 
 
 
+
--- a/AbstractSourceFileWriter.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/AbstractSourceFileWriter.st	Wed Jun 08 22:53:07 2011 +0100
@@ -188,15 +188,15 @@
 !AbstractSourceFileWriter class methodsFor:'documentation'!
 
 version
-    ^ '$Id: AbstractSourceFileWriter.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AbstractSourceFileWriter.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/AbstractSourceFileWriter.st,v 1.6 2009-10-08 12:03:57 fm Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/AbstractSourceFileWriter.st,v 1.6 2009/10/08 12:03:57 fm Exp §'
 !
 
 version_SVN
-    ^ '$Id: AbstractSourceFileWriter.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AbstractSourceFileWriter.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -204,3 +204,4 @@
 
 
 
+
--- a/AbstractTime.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/AbstractTime.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1180,15 +1180,15 @@
 !AbstractTime class methodsFor:'documentation'!
 
 version
-    ^ '$Id: AbstractTime.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AbstractTime.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/AbstractTime.st,v 1.73 2011-01-24 19:55:34 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/AbstractTime.st,v 1.73 2011/01/24 19:55:34 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: AbstractTime.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AbstractTime.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -1198,3 +1198,4 @@
 
 
 
+
--- a/ApplicationDefinition.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ApplicationDefinition.st	Wed Jun 08 22:53:07 2011 +0100
@@ -998,6 +998,7 @@
         at: 'REQUIRED_LINK_LIBOBJS' put: (self generateRequiredLinkLibobjs_make_dot_proto);
         at: 'DEPENDENCIES' put: (self generateDependencies_unix);
         at: 'SUBPROJECTS_LIBS' put: (self generateSubProjectLines_make_dot_proto ); 
+        at: 'REQUIRED_SUPPORT_DIRS' put: (self extraTargets asStringWith:' ');
         at: 'BUILD_TARGET' put: (self buildTarget ).
 
     self offerSmalltalkSourceCode ifTrue:[ 
@@ -1014,7 +1015,6 @@
 
     self needResources ifTrue:[
         mappings
-            at: 'REQUIRED_SUPPORT_DIRS' put: 'RESOURCEFILES';
             at: 'RESOURCE_RULES' put:( self replaceMappings: mappings 
                                             in: self make_dot_proto_resource_rules );
             at: 'STX_RESOURCE_RULES' put: ( self replaceMappings: mappings 
@@ -1642,7 +1642,7 @@
 
 # the executable only
 # with console
-consoleApp:
+consoleApp: $(REQUIRED_LIBS)
         -del main.obj
         $(MAKE) -N -f bc.mak \
                 MAKE_BAT=$(MAKE_BAT) \
@@ -1652,7 +1652,7 @@
                 CRT_STARTUP="$(CRT_STARTUP_CONSOLE)" theExe
 
 # without console
-noConsoleApp:
+noConsoleApp: $(REQUIRED_LIBS)
         -del main.obj
         $(MAKE) -N -f bc.mak \
                 MAKE_BAT=$(MAKE_BAT) \
@@ -1782,7 +1782,7 @@
 # ENDMAKEDEPEND --- do not remove this line
 '.
 
-    "Modified: / 31-01-2011 / 22:25:27 / cg"
+    "Modified: / 21-04-2011 / 12:43:15 / cg"
 !
 
 bc_dot_mak_app_source_rules
@@ -2867,14 +2867,15 @@
 !ApplicationDefinition class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ApplicationDefinition.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ApplicationDefinition.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ApplicationDefinition.st,v 1.172 2011-02-08 09:04:05 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ApplicationDefinition.st,v 1.174 2011/04/21 10:43:19 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: ApplicationDefinition.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ApplicationDefinition.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
+
--- a/ArithmeticValue.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ArithmeticValue.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1333,15 +1333,15 @@
 !ArithmeticValue class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ArithmeticValue.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ArithmeticValue.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ArithmeticValue.st,v 1.87 2010-08-09 17:52:46 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ArithmeticValue.st,v 1.87 2010/08/09 17:52:46 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: ArithmeticValue.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ArithmeticValue.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 ArithmeticValue initialize!
@@ -1353,3 +1353,4 @@
 
 
 
+
--- a/Array.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Array.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2527,15 +2527,15 @@
 !Array class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Array.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Array.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Array.st,v 1.149 2010-09-21 06:57:51 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Array.st,v 1.149 2010/09/21 06:57:51 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Array.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Array.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -2543,3 +2543,4 @@
 
 
 
+
--- a/Association.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Association.st	Wed Jun 08 22:53:07 2011 +0100
@@ -173,15 +173,15 @@
 !Association class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Association.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Association.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Association.st,v 1.23 2009-10-06 15:16:10 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Association.st,v 1.23 2009/10/06 15:16:10 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Association.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Association.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -189,3 +189,4 @@
 
 
 
+
--- a/Autoload.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Autoload.st	Wed Jun 08 22:53:07 2011 +0100
@@ -796,15 +796,15 @@
 !Autoload class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Autoload.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Autoload.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Autoload.st,v 1.158 2011-02-08 19:03:57 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.158 2011/02/08 19:03:57 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Autoload.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Autoload.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Autoload initialize!
@@ -814,3 +814,4 @@
 
 
 
+
--- a/AutoloadMetaclass.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/AutoloadMetaclass.st	Wed Jun 08 22:53:07 2011 +0100
@@ -101,15 +101,15 @@
 !AutoloadMetaclass class methodsFor:'documentation'!
 
 version
-    ^ '$Id: AutoloadMetaclass.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AutoloadMetaclass.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/AutoloadMetaclass.st,v 1.8 2010-04-03 10:47:04 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/AutoloadMetaclass.st,v 1.8 2010/04/03 10:47:04 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: AutoloadMetaclass.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: AutoloadMetaclass.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -117,3 +117,4 @@
 
 
 
+
--- a/Bag.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Bag.st	Wed Jun 08 22:53:07 2011 +0100
@@ -416,15 +416,15 @@
 !Bag class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Bag.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Bag.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Bag.st,v 1.41 2010-03-30 13:38:23 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Bag.st,v 1.41 2010/03/30 13:38:23 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Bag.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Bag.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -432,3 +432,4 @@
 
 
 
+
--- a/Behavior.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Behavior.st	Wed Jun 08 22:53:07 2011 +0100
@@ -4272,20 +4272,21 @@
      This is semantically equivalent to implements: (ST/80/Squeak compatibility).
 
      Hint:
-	Dont use this method to check if someone responds to a message -
-	use #canUnderstand: on the class or #respondsTo: on the instance
-	to do this.
+        Dont use this method to check if someone responds to a message -
+        use #canUnderstand: on the class or #respondsTo: on the instance
+        to do this.
 
      Caveat:
-	This simply checks for the selector being present in the classes
-	selector table - therefore, it does not care for ignoredMethods.
-	(but: you should not use this method for protocol-testing, anyway)."
+        This simply checks for the selector being present in the classes
+        selector table - therefore, it does not care for ignoredMethods.
+        (but: you should not use this method for protocol-testing, anyway)."
 
     ^ self methodDictionary includesIdenticalKey:aSelector
 
     "
      Object includesSelector:#==
      Object includesSelector:#murks
+     Object includesSelector:nil
     "
 
     "Modified: / 7.6.1996 / 14:27:24 / stefan"
@@ -4704,13 +4705,14 @@
 !Behavior class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Behavior.st 10637 2011-05-05 12:37:48Z vranyj1 $'
+    ^ '$Id: Behavior.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Behavior.st,v 1.308 2011-03-19 13:45:35 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Behavior.st,v 1.309 2011/05/20 10:06:03 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Behavior.st 10637 2011-05-05 12:37:48Z vranyj1 $'
+    ^ '$Id: Behavior.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
+
--- a/Block.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Block.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2950,15 +2950,15 @@
 !Block class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Block.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Block.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Block.st,v 1.184 2011-01-18 18:24:31 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Block.st,v 1.184 2011/01/18 18:24:31 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Block.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Block.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Block initialize!
@@ -2973,3 +2973,4 @@
 
 
 
+
--- a/Boolean.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Boolean.st	Wed Jun 08 22:53:07 2011 +0100
@@ -229,15 +229,15 @@
 !Boolean class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Boolean.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Boolean.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Boolean.st,v 1.41 2010-11-17 14:59:49 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Boolean.st,v 1.41 2010/11/17 14:59:49 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Boolean.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Boolean.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -245,3 +245,4 @@
 
 
 
+
--- a/ByteArray.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ByteArray.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2989,15 +2989,15 @@
 !ByteArray class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ByteArray.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ByteArray.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ByteArray.st,v 1.204 2011-01-18 17:09:02 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ByteArray.st,v 1.204 2011/01/18 17:09:02 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: ByteArray.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ByteArray.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -3007,3 +3007,4 @@
 
 
 
+
--- a/CharacterArray.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/CharacterArray.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1508,7 +1508,6 @@
 ! !
 
 
-
 !CharacterArray methodsFor:'character searching'!
 
 includesMatchCharacters
@@ -2331,58 +2330,72 @@
     "/ 'asd "hello bla" foo "bla bla" bar' asCollectionOfSubstringsSeparatedBy:$  exceptIn:$"
 !
 
-asCollectionOfSubstringsSeparatedBy:aFieldSeparator textSeparator:aTextSeparatorOrNil
-    "return a collection containing the words (separated by aFieldSeparator) of the receiver.
+asCollectionOfSubstringsSeparatedBy:aFieldSeparatorString textSeparator:aTextSeparatorOrNil
+    "return a collection containing the words (separated by aFieldSeparatorString) of the receiver.
      Individual words might be enclosed in aTextSeparator characters, in case they contain blanks or fieldSeparators.
      Typically used for CSV line parsing, with a $; as aFieldSeparator and $'' (dquote) as textSeparator."
 
-    |items myClass scanningWord
-     inStream element|
+    |aTextSeparatorChar items scanningWord inStream element lastIsFieldSeparator sz|
 
     aTextSeparatorOrNil isNil ifTrue:[
-        ^ self asCollectionOfSubstringsSeparatedByAll: aFieldSeparator
+        ^ self asCollectionOfSubstringsSeparatedByAll: aFieldSeparatorString
     ].
+    sz := aTextSeparatorOrNil size.
+    sz = 0 ifTrue:[
+        aTextSeparatorChar := aTextSeparatorOrNil
+    ] ifFalse:[sz = 1  ifTrue:[
+        "this is a String. Fetch the first character - compatibility to older expecco libs"
+        aTextSeparatorChar := aTextSeparatorOrNil first.
+    ] ifFalse:[
+        self error:'textSeparatoSize > 1'.
+    ]].
 
     items := OrderedCollection new.
-    myClass := self species.
 
     inStream := ReadStream on:self.
     [   
         inStream skipSeparators.
         inStream atEnd
     ] whileFalse:[
-        inStream peek == aTextSeparatorOrNil ifTrue:[
+        lastIsFieldSeparator := false.
+        inStream peek == aTextSeparatorChar ifTrue:[
             inStream next.
             element := ''.
             scanningWord := true.
             [ inStream atEnd not and:[scanningWord] ] whileTrue:[
-                element := element , (inStream upTo:aTextSeparatorOrNil).
-                (inStream peek == aTextSeparatorOrNil) ifTrue:[
-                    element := element , aTextSeparatorOrNil.    
+                element := element , (inStream upTo:aTextSeparatorChar).
+                (inStream peek == aTextSeparatorChar) ifTrue:[
+                    element := element , aTextSeparatorChar .    
                     inStream next.
                 ] ifFalse:[
                     scanningWord := false.
                 ].
             ].
-            inStream upToAllExcluding:aFieldSeparator.
+            inStream upToAll:aFieldSeparatorString.
         ] ifFalse:[
-            element := inStream upToAllExcluding:aFieldSeparator
+            element := inStream upToAll:aFieldSeparatorString
         ].
         items add:element.
+        lastIsFieldSeparator := (inStream skipThroughAll:aFieldSeparatorString) notNil.
+    ].
+    lastIsFieldSeparator ifTrue:[
+        "empty element at the end of the line"
+        items add:''.
     ].
 
     ^ items
 
     "
      self assert:(('#First#, #Second,SecondAdd#, #Third#' asCollectionOfSubstringsSeparatedBy:',' textSeparator: $#)
-                  sameContentsAs:#('First' 'Second,SecondAdd' 'Third'))
+                  sameContentsAs:#('First' 'Second,SecondAdd' 'Third')).
      self assert:(('#Fir##st#, #Second,SecondAdd#, #Third#' asCollectionOfSubstringsSeparatedBy:',' textSeparator: $#)
-                  sameContentsAs:#('Fir#st' 'Second,SecondAdd' 'Third'))
+                  sameContentsAs:#('Fir#st' 'Second,SecondAdd' 'Third')).
      self assert:(('#Fir##st#, Second,SecondAdd, #Third#' asCollectionOfSubstringsSeparatedBy:',' textSeparator: $#)
-                  sameContentsAs:#('Fir#st' 'Second' 'SecondAdd' 'Third'))
-    "
-    "
-     'First,Second,Third' asCollectionOfSubstringsSeparatedBy:',' textSeparator: nil
+                  sameContentsAs:#('Fir#st' 'Second' 'SecondAdd' 'Third')).
+     self assert:(('First,Second,Third,,' asCollectionOfSubstringsSeparatedBy:',' textSeparator:nil)
+                   sameContentsAs:#('First' 'Second' 'Third' '' '')).
+     self assert:(('First,Second,Third,,' asCollectionOfSubstringsSeparatedBy:',' textSeparator:'#')
+                   sameContentsAs:#('First' 'Second' 'Third' '' '')).
     "
 
     "Modified: / 07-04-2011 / 13:23:19 / cg"
@@ -3235,30 +3248,28 @@
      in the middle have been replaced by '...' for a total string length
      of maxLen. Can be used to abbreviate long entries in tables."
 
-    |sz "{ SmallInteger }"
-     halfSize "{ SmallInteger }"
-     leftEnd rightStart|
+    |sz "{ SmallInteger }" leftSize rightSize|
 
     (sz := self size) <= maxLen ifTrue:[ ^ self ].
 
-    halfSize := maxLen // 2.
-    leftEnd := halfSize-1.
-    rightStart := sz-halfSize+2.
-    halfSize even ifTrue:[
-	rightStart := rightStart+1.
-    ].
-    ^ (self copyTo:leftEnd),'...',(self copyFrom:rightStart)
-
-    "
-     '12345678901234' contractTo:15
+    rightSize := maxLen // 2.
+    leftSize := maxLen - rightSize.
+    leftSize := leftSize - 1.
+    rightSize := rightSize - 2.
+    ^ (self copyTo:leftSize),'...',(self copyFrom:(sz+1-rightSize))
+
+    "
+     '12345678901234' contractTo:15          
      '123456789012345' contractTo:15
-     '1234567890123456' contractTo:15
-     'aShortString' contractTo:15
+     '1234567890123456' contractTo:15 
+     'aShortString' contractTo:15  
      'aVeryLongNameForAStringThatShouldBeShortened' contractTo:15
      'C:\Dokumente und Einstellungen\cg\work\bosch\dapas\hw_schnittstellen\DAPAS__HpibDLL.st' contractTo:40
-    "
-
-    "Modified: / 24-10-2006 / 12:23:56 / cg"
+     ('1234567890123456789012345678901234567' contractTo:30) size  
+     ('1234567890123456789012345678901234567' contractTo:29) size   
+    "
+
+    "Modified: / 05-05-2011 / 16:28:15 / cg"
 !
 
 copyReplaceString:subString withString:newString
@@ -4774,7 +4785,6 @@
     "Modified: 17.4.1997 / 12:50:23 / cg"
 ! !
 
-
 !CharacterArray methodsFor:'special string converting'!
 
 expandPlaceholdersWith:argArrayOrDictionary
@@ -5706,7 +5716,7 @@
 
     |binopChars|
 
-    (self size > 3) ifTrue:[^ false].
+    (self size > Scanner maxBinarySelectorSize) ifTrue:[^ false].
 
     binopChars := Scanner binarySelectorCharacters.
     ^ (self conform:[:char | (binopChars includes:char)])
@@ -5950,15 +5960,15 @@
 !CharacterArray class methodsFor:'documentation'!
 
 version
-    ^ '$Id: CharacterArray.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterArray.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/CharacterArray.st,v 1.448 2011-04-07 11:23:33 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/CharacterArray.st,v 1.452 2011/05/05 14:28:34 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: CharacterArray.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterArray.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 CharacterArray initialize!
@@ -5974,3 +5984,4 @@
 
 
 
+
--- a/CharacterEncoder.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/CharacterEncoder.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1106,7 +1106,7 @@
     s := aFilename asFilename readStreamOrNil.
     s isNil ifTrue:[^ nil].
 
-    buffer := String new:2048.
+    buffer := String new:64.
     n := buffer size.
     n := s nextBytes:n into:buffer.
     s close.
@@ -1150,6 +1150,8 @@
      self guessEncodingOfFile:'../../libview2/resources/ApplicationModel_de.rs' asFilename
      self guessEncodingOfFile:'../../libview2/resources/ApplicationModel_ru.rs' asFilename
     "
+
+    "Modified: / 31-05-2011 / 15:45:19 / cg"
 !
 
 guessEncodingOfStream:aStream
@@ -1161,7 +1163,7 @@
 
     |oldPosition buffer n|
 
-    buffer := String new:2048.
+    buffer := String new:64.
 
     oldPosition := aStream position.
     n := buffer size.
@@ -1169,6 +1171,8 @@
     aStream position:oldPosition.
 
     ^ self guessEncodingOfBuffer:buffer
+
+    "Modified: / 31-05-2011 / 15:45:23 / cg"
 !
 
 showCharacterSet
@@ -1623,15 +1627,15 @@
 !CharacterEncoder class methodsFor:'documentation'!
 
 version
-    ^ '$Id: CharacterEncoder.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterEncoder.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/CharacterEncoder.st,v 1.110 2011-04-01 12:30:14 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.111 2011/05/31 14:06:40 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: CharacterEncoder.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterEncoder.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 CharacterEncoder initialize!
@@ -1641,3 +1645,4 @@
 
 
 
+
--- a/CharacterEncoderImplementations__EBCDIC.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/CharacterEncoderImplementations__EBCDIC.st	Wed Jun 08 22:53:07 2011 +0100
@@ -623,7 +623,8 @@
 !EBCDIC class methodsFor:'documentation'!
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/CharacterEncoderImplementations__EBCDIC.st,v 1.1 2010-09-20 15:26:46 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__EBCDIC.st,v 1.1 2010/09/20 15:26:46 cg Exp §'
 ! !
 
 
+
--- a/CharacterEncoderImplementations__ISO10646_to_UTF16BE.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/CharacterEncoderImplementations__ISO10646_to_UTF16BE.st	Wed Jun 08 22:53:07 2011 +0100
@@ -264,15 +264,15 @@
 !ISO10646_to_UTF16BE class methodsFor:'documentation'!
 
 version
-    ^ '$Id: CharacterEncoderImplementations__ISO10646_to_UTF16BE.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterEncoderImplementations__ISO10646_to_UTF16BE.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Encoder_ISO10646_to_UTF16BE.st,v 1.3 2009-11-04 00:46:08 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Encoder_ISO10646_to_UTF16BE.st,v 1.3 2009/11/04 00:46:08 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: CharacterEncoderImplementations__ISO10646_to_UTF16BE.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterEncoderImplementations__ISO10646_to_UTF16BE.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -280,3 +280,4 @@
 
 
 
+
--- a/CharacterEncoderImplementations__JIS0208_to_SJIS.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/CharacterEncoderImplementations__JIS0208_to_SJIS.st	Wed Jun 08 22:53:07 2011 +0100
@@ -339,16 +339,17 @@
 !JIS0208_to_SJIS class methodsFor:'documentation'!
 
 version
-    ^ '$Id: CharacterEncoderImplementations__JIS0208_to_SJIS.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterEncoderImplementations__JIS0208_to_SJIS.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Encoder_SJIS.st,v 1.12 2009-11-05 16:26:27 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Encoder_SJIS.st,v 1.12 2009/11/05 16:26:27 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: CharacterEncoderImplementations__JIS0208_to_SJIS.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterEncoderImplementations__JIS0208_to_SJIS.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
 
+
--- a/CharacterEncoderImplementations__MAC_Roman.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/CharacterEncoderImplementations__MAC_Roman.st	Wed Jun 08 22:53:07 2011 +0100
@@ -965,11 +965,12 @@
 !MAC_Roman class methodsFor:'documentation'!
 
 version
-    ^ '$Id: CharacterEncoderImplementations__MAC_Roman.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterEncoderImplementations__MAC_Roman.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/Encoder_MAC_Roman.st,v 1.4 2011-01-29 20:33:33 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/Encoder_MAC_Roman.st,v 1.4 2011/01/29 20:33:33 cg Exp §'
 ! !
 
 
+
--- a/CharacterEncoderImplementations__SingleByteEncoder.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/CharacterEncoderImplementations__SingleByteEncoder.st	Wed Jun 08 22:53:07 2011 +0100
@@ -73,15 +73,15 @@
 !SingleByteEncoder class methodsFor:'documentation'!
 
 version
-    ^ '$Id: CharacterEncoderImplementations__SingleByteEncoder.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterEncoderImplementations__SingleByteEncoder.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Encoder_SingleByteEncoder.st,v 1.9 2009-12-11 16:54:15 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Encoder_SingleByteEncoder.st,v 1.9 2009/12/11 16:54:15 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: CharacterEncoderImplementations__SingleByteEncoder.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterEncoderImplementations__SingleByteEncoder.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -89,3 +89,4 @@
 
 
 
+
--- a/CharacterEncoderImplementations__TwoByteEncoder.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/CharacterEncoderImplementations__TwoByteEncoder.st	Wed Jun 08 22:53:07 2011 +0100
@@ -79,15 +79,15 @@
 !TwoByteEncoder class methodsFor:'documentation'!
 
 version
-    ^ '$Id: CharacterEncoderImplementations__TwoByteEncoder.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterEncoderImplementations__TwoByteEncoder.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Encoder_TwoByteEncoder.st,v 1.6 2009-11-04 00:47:35 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Encoder_TwoByteEncoder.st,v 1.6 2009/11/04 00:47:35 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: CharacterEncoderImplementations__TwoByteEncoder.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterEncoderImplementations__TwoByteEncoder.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -95,3 +95,4 @@
 
 
 
+
--- a/CharacterWriteStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/CharacterWriteStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -240,15 +240,15 @@
 !CharacterWriteStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: CharacterWriteStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterWriteStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/CharacterWriteStream.st,v 1.9 2009-10-05 09:20:25 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/CharacterWriteStream.st,v 1.9 2009/10/05 09:20:25 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: CharacterWriteStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CharacterWriteStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -256,3 +256,4 @@
 
 
 
+
--- a/Class.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Class.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1701,7 +1701,7 @@
     subclasses isNil ifTrue:[
         self updateAllCachedSubclasses.
         "subclasses may still be nil - obsolete classes may not be updated"
-        ^ subclasses ?#().
+        ^ subclasses ? #().
     ].
     ^ subclasses.
 
@@ -1711,7 +1711,7 @@
      SmallInteger subclasses
     "
 
-    "Modified: / 30-04-2010 / 11:51:33 / cg"
+    "Modified: / 23-05-2011 / 17:33:43 / cg"
 !
 
 superclass:aClass
@@ -4164,25 +4164,45 @@
     "return my revision method. Either this is the sourceCodeManager-specific versionMethod,
      or the fallBack (for backward compatibility)"
 
-    |owner cls meta versionMethodsToTry|
+    |owner|
 
     (owner := self owningClass) notNil ifTrue:[^ owner findVersionMethod].
+    ^ self findVersionMethodOfManager:self sourceCodeManager
+
+    "
+     Smalltalk allClassesDo:[:cls |
+        Transcript show:cls name; show:' -> '; showCR:cls findVersionMethod
+     ].
+
+     Number findVersionMethod   
+     FileDirectory findVersionMethod     
+     Metaclass findVersionMethod       
+     Class findVersionMethod       
+    "
+
+    "Modified: / 19-04-2011 / 13:30:42 / cg"
+!
+
+findVersionMethodOfManager:aSourceCodemanagerOrNil
+    "{ Pragma: +optSpace }"
+
+    "return my revision method. Either this is the sourceCodeManager-specific versionMethod,
+     or the fallBack (for backward compatibility)"
+
+    |owner cls meta versionMethodsToTry|
+
+    (owner := self owningClass) notNil ifTrue:[^ owner findVersionMethodOfManager:aSourceCodemanagerOrNil].
 
     meta := self theMetaclass.
     cls := self theNonMetaclass.
 
     "/ allow for sc-manager-specific version methods,
     "/ before falling back to the default version method.
-    versionMethodsToTry := 
-        OrderedCollection streamContents:[:s |
-            |sourceCodeManager|
-
-            sourceCodeManager := self sourceCodeManager.
-            sourceCodeManager notNil ifTrue:[
-                s nextPut:(sourceCodeManager nameOfVersionMethodInClasses)
-            ].
-            s nextPut:self nameOfVersionMethod
-        ].
+    versionMethodsToTry := OrderedCollection new.
+    aSourceCodemanagerOrNil notNil ifTrue:[
+        versionMethodsToTry add:aSourceCodemanagerOrNil nameOfVersionMethodInClasses.   
+    ].
+    versionMethodsToTry add:self nameOfVersionMethod.   "/ fallback
 
     versionMethodsToTry do:[:versionMethodsName |
         |aVersionMethod val|
@@ -4209,6 +4229,8 @@
      Metaclass findVersionMethod       
      Class findVersionMethod       
     "
+
+    "Created: / 19-04-2011 / 13:30:05 / cg"
 !
 
 localSourceStreamFor:sourceFile
@@ -4228,8 +4250,7 @@
 
     (package := self package) notNil ifTrue:[
         "/ newest scheme ...
-        packageDir := package copyReplaceAll:$: with:$/.
-        packageDir := Smalltalk getPackageFileName:packageDir.
+        packageDir := Smalltalk findPackageDirectoryForPackage:package.
         packageDir notNil ifTrue:[
             "/ present there ?
             packageDir := packageDir asFilename.
@@ -4326,7 +4347,12 @@
 !
 
 nameOfVersionMethod
+    "this is now more ore less obsolete, as multiple sourceCodeManagers might use
+     different version_XXX methods. Keep this for backward compatibility."
+
     ^ #version
+
+    "Modified: / 19-04-2011 / 13:42:18 / cg"
 !
 
 packageSourceCodeInfo
@@ -4590,21 +4616,7 @@
         repositoryPath - the classes source container
     "
 
-    |vsnString info mgr|
-
-    vsnString := self revisionString.
-    vsnString notNil ifTrue:[
-        mgr := self sourceCodeManager.
-        mgr notNil ifTrue:[
-            info := mgr revisionInfoFromString:vsnString
-        ] ifFalse:[
-            info := Class revisionInfoFromString:vsnString.
-        ].
-        info notNil ifTrue:[
-            info binaryRevision:self binaryRevision.
-        ]
-    ].
-    ^ info
+    ^ self revisionInfoOfManager:self sourceCodeManager
 
     "
      Object revisionString
@@ -4614,7 +4626,51 @@
 
     "Created: / 11-11-1995 / 14:27:20 / cg"
     "Modified: / 26-03-1997 / 00:13:17 / stefan"
-    "Modified: / 22-10-2008 / 20:35:53 / cg"
+    "Modified: / 19-04-2011 / 13:41:24 / cg"
+!
+
+revisionInfoOfManager:aSourceCodemanagerOrNil
+    "return an object filled with revision info.
+     This extracts the relevant info from the revisionString.
+     The revisionInfo contains all or a subset of:
+        binaryRevision - the revision upon which the binary of this class is based
+        revision       - the revision upon which the class is based logically
+                          (different, if a changed class was checked in, but not yet recompiled)
+        user           - the user who checked in the logical revision
+        date           - the date when the logical revision was checked in
+        time           - the time when the logical revision was checked in
+        fileName       - the classes source file name
+        repositoryPath - the classes source container
+    "
+
+    |vsnString info|
+
+    aSourceCodemanagerOrNil notNil ifTrue:[
+        vsnString := self revisionStringOfManager:aSourceCodemanagerOrNil.
+    ].
+    vsnString isNil ifTrue:[
+        vsnString := self revisionStringOfManager:nil.
+    ].
+    vsnString isNil ifTrue:[^ nil].
+
+    aSourceCodemanagerOrNil notNil ifTrue:[
+        info := aSourceCodemanagerOrNil revisionInfoFromString:vsnString
+    ] ifFalse:[
+        info := Class revisionInfoFromString:vsnString.
+    ].
+    info notNil ifTrue:[
+        info binaryRevision:self binaryRevision.
+    ].
+    ^ info
+
+    "
+     Object revisionString
+     Object revisionInfo
+     Image revisionInfo
+    "
+
+    "Modified: / 26-03-1997 / 00:13:17 / stefan"
+    "Created: / 19-04-2011 / 13:41:13 / cg"
 !
 
 revisionString
@@ -4626,11 +4682,38 @@
      If the receiver is unloaded, or the source is not accessable,
      or no such method exists, then nil is returned."
 
+    ^ self revisionStringOfManager:nil
+
+    "
+     Smalltalk allClassesDo:[:cls |
+        Transcript show:cls name; show:' -> '; showCR:cls revisionString
+     ].
+
+     Number revisionString
+     FileDirectory revisionString
+     Metaclass revisionString
+    "
+
+    "Created: / 29-10-1995 / 19:28:03 / cg"
+    "Modified: / 01-04-1997 / 23:37:25 / stefan"
+    "Modified: / 07-02-2001 / 18:03:39 / ps"
+    "Modified: / 19-04-2011 / 13:38:07 / cg"
+!
+
+revisionStringOfManager:aSourceCodeManagerOrNil
+    "{ Pragma: +optSpace }"
+
+    "return my revision string; that one is extracted from the
+     classes #version method. Either this is a method returning that string,
+     or it's a comment-only method and the comment defines the version.
+     If the receiver is unloaded, or the source is not accessable,
+     or no such method exists, then nil is returned."
+
     |owner versionMethod|
 
     (owner := self owningClass) notNil ifTrue:[^ owner revisionString].
 
-    versionMethod := self findVersionMethod.
+    versionMethod := self findVersionMethodOfManager:aSourceCodeManagerOrNil.
     versionMethod notNil ifTrue:[
         ^ versionMethod valueWithReceiver:(self theNonMetaclass) arguments:#()
     ].
@@ -4646,10 +4729,9 @@
      Metaclass revisionString
     "
 
-    "Created: / 29-10-1995 / 19:28:03 / cg"
     "Modified: / 01-04-1997 / 23:37:25 / stefan"
     "Modified: / 07-02-2001 / 18:03:39 / ps"
-    "Modified: / 22-10-2008 / 20:33:49 / cg"
+    "Created: / 19-04-2011 / 13:37:42 / cg"
 !
 
 setBinaryRevision:aString
@@ -5174,17 +5256,18 @@
 !Class class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Class.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Class.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Class.st,v 1.579 2011-01-18 19:41:48 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Class.st,v 1.582 2011/05/23 15:33:52 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Class.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Class.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
 
 
+
--- a/ClassBuildError.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ClassBuildError.st	Wed Jun 08 22:53:07 2011 +0100
@@ -37,15 +37,15 @@
 !ClassBuildError class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ClassBuildError.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ClassBuildError.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ClassBuildError.st,v 1.2 2009-09-29 19:32:30 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ClassBuildError.st,v 1.2 2009/09/29 19:32:30 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: ClassBuildError.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ClassBuildError.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -53,3 +53,4 @@
 
 
 
+
--- a/ClassBuilder.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ClassBuilder.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2229,15 +2229,15 @@
 !ClassBuilder class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ClassBuilder.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ClassBuilder.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ClassBuilder.st,v 1.99 2011-01-30 09:59:26 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.99 2011/01/30 09:59:26 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: ClassBuilder.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ClassBuilder.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -2248,3 +2248,4 @@
 
 
 
+
--- a/ClassDescription.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ClassDescription.st	Wed Jun 08 22:53:07 2011 +0100
@@ -4105,15 +4105,15 @@
 !ClassDescription class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ClassDescription.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ClassDescription.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ClassDescription.st,v 1.215 2011-01-18 17:07:42 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.215 2011/01/18 17:07:42 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: ClassDescription.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ClassDescription.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 ClassDescription initialize!
@@ -4127,3 +4127,4 @@
 
 
 
+
--- a/Collection.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Collection.st	Wed Jun 08 22:53:07 2011 +0100
@@ -259,6 +259,7 @@
     ^ self withSize:n
 ! !
 
+
 !Collection class methodsFor:'Signal constants'!
 
 emptyCollectionSignal
@@ -479,6 +480,7 @@
     ].
 ! !
 
+
 !Collection methodsFor:'accessing'!
 
 anElement
@@ -3039,22 +3041,51 @@
 
 !Collection methodsFor:'queries'!
 
+arithmeticMean
+    "arithmetic mean value of all elements in the collection"
+
+    ^ self sum / self size
+
+    "
+     TestCase assert:( { 1. 2. 3. 4 } arithmeticMean = 2.5).
+     TestCase assert:( { 13. 23. 12. 44. 55 } arithmeticMean closeTo: 29.4).
+     TestCase assert:( { 13. 23. 12. 44. 55 } standardDeviation closeTo: 19.2431).
+    "
+
+    "Created: / 13-04-2011 / 16:52:32 / cg"
+!
+
 average
     "average value of all elements in the collection"
 
-    ^ self sum / self size
+    ^ self arithmeticMean
 
     "
      TestCase assert:( { 1. 2. 3. 4 } average = 2.5).
     "
 
     "Created: / 18-03-2011 / 10:31:04 / cg"
+    "Modified: / 13-04-2011 / 17:09:21 / cg"
 !
 
 defaultElement
     ^  nil
 !
 
+geometricMean
+    "geometric mean value of all elements in the collection"
+
+    ^ self product raisedTo:(1/self size)
+
+    "
+     TestCase assert:( { 1. 2. 3. 4. } geometricMean closeTo: 2.21336).
+     TestCase assert:( { 1. 2. 3. 4. 5 } geometricMean closeTo: 2.60517).
+     TestCase assert:( { 13. 23. 12. 44. 55 } geometricMean closeTo: 24.41932).
+    "
+
+    "Created: / 13-04-2011 / 16:53:44 / cg"
+!
+
 largest:n
     "return the n largest elements"
 
@@ -3443,6 +3474,24 @@
       Used by functions which create a growing collection (see collect:with:, for example)"
 
     ^ self species
+!
+
+standardDeviation
+    "standard deviation value of all elements in the collection"
+
+    |m sumDeltaSquares|
+
+    m := self arithmeticMean.
+    sumDeltaSquares := self inject:0 into:[:sum :this | sum + ((this - m) squared)].
+    ^ (sumDeltaSquares / (self size - 1)) sqrt
+
+    "
+     TestCase assert:( { 1. 2. 3. 4 } arithmeticMean = 2.5).
+     TestCase assert:( { 13. 23. 12. 44. 55 } arithmeticMean closeTo: 29.4).
+     TestCase assert:( { 13. 23. 12. 44. 55 } standardDeviation closeTo: 19.2431).
+    "
+
+    "Created: / 13-04-2011 / 17:58:47 / cg"
 ! !
 
 !Collection methodsFor:'searching'!
@@ -3902,15 +3951,15 @@
 !Collection class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Collection.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Collection.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Collection.st,v 1.256 2011-03-20 21:52:46 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Collection.st,v 1.257 2011/04/13 16:10:00 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Collection.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Collection.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Collection initialize!
@@ -3924,3 +3973,4 @@
 
 
 
+
--- a/CompiledCode.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/CompiledCode.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1848,15 +1848,16 @@
 !CompiledCode class methodsFor:'documentation'!
 
 version
-    ^ '$Id: CompiledCode.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CompiledCode.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/CompiledCode.st,v 1.108 2009-10-06 14:59:40 fm Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/CompiledCode.st,v 1.108 2009/10/06 14:59:40 fm Exp '
 !
 
 version_SVN
-    ^ '$Id: CompiledCode.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: CompiledCode.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
+
--- a/Context.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Context.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2408,16 +2408,17 @@
 !Context class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Context.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Context.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Context.st,v 1.158 2010-08-14 10:56:21 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Context.st,v 1.158 2010/08/14 10:56:21 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Context.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Context.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Context initialize!
 
+
--- a/Date.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Date.st	Wed Jun 08 22:53:07 2011 +0100
@@ -3051,15 +3051,15 @@
 !Date class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Date.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Date.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Date.st,v 1.138 2011-01-24 19:56:01 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Date.st,v 1.138 2011/01/24 19:56:01 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Date.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Date.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Date initialize!
@@ -3070,3 +3070,4 @@
 
 
 
+
--- a/Delay.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Delay.st	Wed Jun 08 22:53:07 2011 +0100
@@ -344,18 +344,19 @@
 !Delay class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Delay.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Delay.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: Delay.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Delay.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/Delay.st,v 1.44 2010-12-22 13:18:18 cg Exp §'
+    ^ 'Header: /cvs/stx/stx/libbasic/Delay.st,v 1.44 2010/12/22 13:18:18 cg Exp '
 ! !
 
 
 
 
 
+
--- a/Dictionary.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Dictionary.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2058,15 +2058,15 @@
 !Dictionary class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Dictionary.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Dictionary.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Dictionary.st,v 1.103 2011-04-08 11:56:21 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Dictionary.st,v 1.103 2011/04/08 11:56:21 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Dictionary.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Dictionary.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Dictionary initialize!
@@ -2077,3 +2077,4 @@
 
 
 
+
--- a/DirectoryStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/DirectoryStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -795,15 +795,15 @@
 !DirectoryStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: DirectoryStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: DirectoryStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/DirectoryStream.st,v 1.74 2010-04-30 16:48:14 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/DirectoryStream.st,v 1.74 2010/04/30 16:48:14 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: DirectoryStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: DirectoryStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -812,3 +812,4 @@
 
 
 
+
--- a/EncodedStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/EncodedStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -258,15 +258,15 @@
 !EncodedStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: EncodedStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: EncodedStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/EncodedStream.st,v 1.18 2010-02-04 16:11:51 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/EncodedStream.st,v 1.18 2010/02/04 16:11:51 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: EncodedStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: EncodedStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -274,3 +274,4 @@
 
 
 
+
--- a/Error.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Error.st	Wed Jun 08 22:53:07 2011 +0100
@@ -85,15 +85,15 @@
 !Error class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Error.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Error.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Error.st,v 1.11 2010-11-17 16:53:31 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Error.st,v 1.11 2010/11/17 16:53:31 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Error.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Error.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Error initialize!
@@ -103,3 +103,4 @@
 
 
 
+
--- a/ExecutableFunction.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ExecutableFunction.st	Wed Jun 08 22:53:07 2011 +0100
@@ -413,15 +413,15 @@
 !ExecutableFunction class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ExecutableFunction.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExecutableFunction.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: ExecutableFunction.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExecutableFunction.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ExecutableFunction.st,v 1.56 2010-04-27 10:26:12 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ExecutableFunction.st,v 1.56 2010/04/27 10:26:12 cg Exp '
 ! !
 
 
@@ -430,3 +430,4 @@
 
 
 
+
--- a/ExternalAddress.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ExternalAddress.st	Wed Jun 08 22:53:07 2011 +0100
@@ -333,15 +333,15 @@
 !ExternalAddress class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ExternalAddress.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalAddress.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ExternalAddress.st,v 1.30 2010-12-24 09:28:27 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ExternalAddress.st,v 1.30 2010/12/24 09:28:27 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: ExternalAddress.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalAddress.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -351,3 +351,4 @@
 
 
 
+
--- a/ExternalBytes.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ExternalBytes.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1305,15 +1305,15 @@
 !ExternalBytes class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ExternalBytes.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalBytes.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ExternalBytes.st,v 1.80 2011-01-05 15:11:14 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ExternalBytes.st,v 1.80 2011/01/05 15:11:14 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: ExternalBytes.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalBytes.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 ExternalBytes initialize!
@@ -1325,3 +1325,4 @@
 
 
 
+
--- a/ExternalFunction.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ExternalFunction.st	Wed Jun 08 22:53:07 2011 +0100
@@ -972,15 +972,15 @@
 !ExternalFunction class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ExternalFunction.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalFunction.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ExternalFunction.st,v 1.27 2009-11-05 16:26:28 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ExternalFunction.st,v 1.27 2009/11/05 16:26:28 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: ExternalFunction.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalFunction.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 ExternalFunction initialize!
@@ -990,3 +990,4 @@
 
 
 
+
--- a/ExternalFunctionCallback.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ExternalFunctionCallback.st	Wed Jun 08 22:53:07 2011 +0100
@@ -829,15 +829,15 @@
 !ExternalFunctionCallback class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ExternalFunctionCallback.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalFunctionCallback.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ExternalFunctionCallback.st,v 1.15 2009-11-05 16:25:17 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ExternalFunctionCallback.st,v 1.15 2009/11/05 16:25:17 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: ExternalFunctionCallback.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalFunctionCallback.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -845,3 +845,4 @@
 
 
 
+
--- a/ExternalLibrary.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ExternalLibrary.st	Wed Jun 08 22:53:07 2011 +0100
@@ -40,10 +40,28 @@
 "
 ! !
 
+!ExternalLibrary methodsFor:'error reporting'!
+
+externalCallFailed
+    "{ Pragma: +optSpace }"
+
+    "report an error that some external libraray call failed.
+     The error is reported by raising the PrimitiveFailure exception."
+
+    <resource: #skipInDebuggersWalkBack>
+
+    |sender|
+
+    sender := thisContext sender.
+
+    ^ PrimitiveFailure raiseRequestWith:(Message selector:sender selector arguments:sender args)
+                       in:sender.
+! !
+
 !ExternalLibrary class methodsFor:'documentation'!
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ExternalLibrary.st,v 1.2 2010-02-01 11:29:17 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ExternalLibrary.st,v 1.3 2011/04/13 09:40:50 stefan Exp '
 !
 
 version_SVN
@@ -55,3 +73,4 @@
 
 
 
+
--- a/ExternalLibraryFunction.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ExternalLibraryFunction.st	Wed Jun 08 22:53:07 2011 +0100
@@ -43,6 +43,8 @@
 extern ffi_type *__get_ffi_type_void();
 extern ffi_type *__get_ffi_type_pointer();
 
+#else
+#error "HAVE_FFI not defined!"
 #endif
 
 %}
@@ -139,7 +141,7 @@
 !
 
 dllPath
-    ^ DLLPATH ? #( '.' )
+    ^ DLLPATH
 !
 
 dllPath:aCollectionOfDirectoryPathNames
@@ -148,19 +150,23 @@
 
 initialize
     "using inline access to corresponding c--defines to avoid duplicate places of knowledge"
-    FLAG_VIRTUAL := %{ __MKSMALLINT(__EXTL_FLAG_VIRTUAL) %}.                "/ a virtual c++ call
-    FLAG_NONVIRTUAL := %{ __MKSMALLINT(__EXTL_FLAG_NONVIRTUAL) %}.          "/ a non-virtual c++ call
-    FLAG_UNLIMITEDSTACK := %{ __MKSMALLINT(__EXTL_FLAG_UNLIMITEDSTACK) %}.  "/ unlimitedstack under unix
-    FLAG_ASYNC := %{ __MKSMALLINT(__EXTL_FLAG_ASYNC) %}.                    "/ async under win32
-    FLAG_RETVAL_IS_CONST := %{ __MKSMALLINT(__EXTL_FLAG_RETVAL_IS_CONST) %}."/ return value is not to be registered for finalization
+
+    DLLPATH isNil ifTrue:[
+        DLLPATH := #('.').
+        FLAG_VIRTUAL := %{ __MKSMALLINT(__EXTL_FLAG_VIRTUAL) %}.                "/ a virtual c++ call
+        FLAG_NONVIRTUAL := %{ __MKSMALLINT(__EXTL_FLAG_NONVIRTUAL) %}.          "/ a non-virtual c++ call
+        FLAG_UNLIMITEDSTACK := %{ __MKSMALLINT(__EXTL_FLAG_UNLIMITEDSTACK) %}.  "/ unlimitedstack under unix
+        FLAG_ASYNC := %{ __MKSMALLINT(__EXTL_FLAG_ASYNC) %}.                    "/ async under win32
+        FLAG_RETVAL_IS_CONST := %{ __MKSMALLINT(__EXTL_FLAG_RETVAL_IS_CONST) %}."/ return value is not to be registered for finalization
 
-    CALLTYPE_API := %{ __MKSMALLINT(__EXTL_CALLTYPE_API) %}.                "/ WINAPI-call (win32 only)
-    CALLTYPE_C := %{ __MKSMALLINT(__EXTL_CALLTYPE_C) %}.                    "/ regular C-call (the default)
-    CALLTYPE_V8 := %{ __MKSMALLINT(__EXTL_CALLTYPE_V8) %}.                  "/ v8 call (sparc only)
-    CALLTYPE_V9 := %{ __MKSMALLINT(__EXTL_CALLTYPE_V9) %}.                  "/ v9 call (sparc only)
-    CALLTYPE_UNIX64 := %{ __MKSMALLINT(__EXTL_CALLTYPE_UNIX64) %}.          "/ unix64 call (alpha only)
+        CALLTYPE_API := %{ __MKSMALLINT(__EXTL_CALLTYPE_API) %}.                "/ WINAPI-call (win32 only)
+        CALLTYPE_C := %{ __MKSMALLINT(__EXTL_CALLTYPE_C) %}.                    "/ regular C-call (the default)
+        CALLTYPE_V8 := %{ __MKSMALLINT(__EXTL_CALLTYPE_V8) %}.                  "/ v8 call (sparc only)
+        CALLTYPE_V9 := %{ __MKSMALLINT(__EXTL_CALLTYPE_V9) %}.                  "/ v9 call (sparc only)
+        CALLTYPE_UNIX64 := %{ __MKSMALLINT(__EXTL_CALLTYPE_UNIX64) %}.          "/ unix64 call (alpha only)
 
-    CALLTYPE_MASK := %{ __MKSMALLINT(__EXTL_CALLTYPE_MASK) %}.
+        CALLTYPE_MASK := %{ __MKSMALLINT(__EXTL_CALLTYPE_MASK) %}.
+    ].
 
     "
      self initialize
@@ -578,11 +584,13 @@
     handle notNil ifTrue:[^ handle ].
 
     filename isAbsolute ifFalse:[
-        "First ask the class deining the ExternalFunction for the location of the dlls ..."
-        owningClass dllPath do:[:eachDirectory |
-            handle := ObjectFileLoader
-                        loadDynamicObject:(eachDirectory asFilename construct:nameString) pathName.
-            handle notNil ifTrue:[^ handle ].
+        "First ask the class defining the ExternalFunction for the location of the dlls ..."
+        owningClass notNil ifTrue:[
+            owningClass dllPath do:[:eachDirectory |
+                handle := ObjectFileLoader
+                            loadDynamicObject:(eachDirectory asFilename construct:nameString) pathName.
+                handle notNil ifTrue:[^ handle ].
+            ].
         ].
         ".. then ask the system"
         self class dllPath do:[:eachDirectory |
@@ -1492,15 +1500,15 @@
 !ExternalLibraryFunction class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ExternalLibraryFunction.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalLibraryFunction.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ExternalLibraryFunction.st,v 1.79 2010-07-08 14:16:05 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ExternalLibraryFunction.st,v 1.82 2011/04/13 14:00:08 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: ExternalLibraryFunction.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalLibraryFunction.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 ExternalLibraryFunction initialize!
@@ -1510,3 +1518,4 @@
 
 
 
+
--- a/ExternalStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ExternalStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -5692,15 +5692,15 @@
 !ExternalStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ExternalStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ExternalStream.st,v 1.342 2011-02-15 10:04:34 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.342 2011/02/15 10:04:34 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: ExternalStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ExternalStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 ExternalStream initialize!
@@ -5711,3 +5711,4 @@
 
 
 
+
--- a/FileDirectory.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/FileDirectory.st	Wed Jun 08 22:53:07 2011 +0100
@@ -794,18 +794,19 @@
 !FileDirectory class methodsFor:'documentation'!
 
 version
-    ^ '$Id: FileDirectory.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: FileDirectory.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/FileDirectory.st,v 1.49 2009-10-26 15:24:34 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/FileDirectory.st,v 1.49 2009/10/26 15:24:34 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: FileDirectory.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: FileDirectory.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 FileDirectory initialize!
 
 
 
+
--- a/FileStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/FileStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1710,15 +1710,15 @@
 !FileStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: FileStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: FileStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/FileStream.st,v 1.144 2010-08-31 18:05:23 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.144 2010/08/31 18:05:23 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: FileStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: FileStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 FileStream initialize!
@@ -1730,3 +1730,4 @@
 
 
 
+
--- a/Filename.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Filename.st	Wed Jun 08 22:53:07 2011 +0100
@@ -5833,15 +5833,15 @@
 !Filename class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Filename.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Filename.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Filename.st,v 1.365 2011-01-25 15:46:32 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Filename.st,v 1.365 2011/01/25 15:46:32 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Filename.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Filename.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Filename initialize!
@@ -5856,3 +5856,4 @@
 
 
 
+
--- a/FixedPoint.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/FixedPoint.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1349,15 +1349,15 @@
 !FixedPoint class methodsFor:'documentation'!
 
 version
-    ^ '$Id: FixedPoint.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: FixedPoint.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/FixedPoint.st,v 1.45 2010-11-23 13:39:59 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/FixedPoint.st,v 1.45 2010/11/23 13:39:59 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: FixedPoint.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: FixedPoint.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -1365,3 +1365,4 @@
 
 
 
+
--- a/Float.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Float.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2734,15 +2734,15 @@
 !Float class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Float.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Float.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Float.st,v 1.176 2010-11-23 13:35:52 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Float.st,v 1.176 2010/11/23 13:35:52 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Float.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Float.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Float initialize!
@@ -2753,3 +2753,4 @@
 
 
 
+
--- a/FloatArray.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/FloatArray.st	Wed Jun 08 22:53:07 2011 +0100
@@ -992,15 +992,15 @@
 !FloatArray class methodsFor:'documentation'!
 
 version
-    ^ '$Id: FloatArray.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: FloatArray.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/FloatArray.st,v 1.26 2009-12-01 22:11:19 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/FloatArray.st,v 1.26 2009/12/01 22:11:19 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: FloatArray.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: FloatArray.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -1008,3 +1008,4 @@
 
 
 
+
--- a/Fraction.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Fraction.st	Wed Jun 08 22:53:07 2011 +0100
@@ -193,11 +193,11 @@
 
     "
      Fraction pi         
-     Fraction pi asFloat
+     Fraction pi asFloat - Float pi
      Float pi            
     "
 
-    "Modified: 5.11.1996 / 11:11:44 / cg"
+    "Modified: / 03-05-2011 / 11:08:46 / cg"
 !
 
 pi_approximation
@@ -1158,11 +1158,17 @@
 !Fraction class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Fraction.st 10517 2010-04-26 18:26:38Z vranyj1 $'
+    ^ '$Id: Fraction.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: Fraction.st 10517 2010-04-26 18:26:38Z vranyj1 $'
+    ^ '$Id: Fraction.st 10643 2011-06-08 21:53:07Z vranyj1 $'
+
+!
+    
+version_CVS
+    ^ '§Header: /cvs/stx/stx/libbasic/Fraction.st,v 1.81 2011/05/03 09:08:52 cg Exp §'
 ! !
 
 Fraction initialize!
+
--- a/GenericException.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/GenericException.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2296,15 +2296,15 @@
 !GenericException class methodsFor:'documentation'!
 
 version
-    ^ '$Id: GenericException.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: GenericException.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/GenericException.st,v 1.130 2011-02-10 11:30:47 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/GenericException.st,v 1.130 2011/02/10 11:30:47 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: GenericException.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: GenericException.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 GenericException initialize!
@@ -2317,3 +2317,4 @@
 
 
 
+
--- a/HashStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/HashStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -103,16 +103,12 @@
             expectedHashBytes := expectedHash
         ].
 
+        "/ non-stream interface must be implemented by all
+        self assert:(self hashValueOf:data) = expectedHashBytes message:'Test failed'.
         self canStream ifTrue:[
             hashStream := self new.
             hashStream nextPut:data.
-            hashStream hashValue ~= expectedHashBytes ifTrue:[
-                self error:'Test failed'
-            ].
-        ].
-        "/ non-stream interface must be implemented by all
-        (self hashValueOf:data) ~= expectedHashBytes ifTrue:[
-            self error:'Test failed'
+            self assert:hashStream hashValue = expectedHashBytes message:'Test failed'
         ].
     ].
 
@@ -327,15 +323,15 @@
 !HashStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: HashStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: HashStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/HashStream.st,v 1.13 2010-03-04 14:34:21 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/HashStream.st,v 1.14 2011/05/13 08:32:58 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: HashStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: HashStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -343,3 +339,4 @@
 
 
 
+
--- a/ImmutableArray.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ImmutableArray.st	Wed Jun 08 22:53:07 2011 +0100
@@ -223,7 +223,7 @@
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ImmutableArray.st,v 1.28 2009-11-16 08:59:40 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ImmutableArray.st,v 1.28 2009/11/16 08:59:40 stefan Exp '
 !
 
 version_SVN
@@ -235,3 +235,4 @@
 
 
 
+
--- a/ImmutableByteArray.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ImmutableByteArray.st	Wed Jun 08 22:53:07 2011 +0100
@@ -237,7 +237,7 @@
 !ImmutableByteArray class methodsFor:'documentation'!
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ImmutableByteArray.st,v 1.7 2009-11-16 08:59:40 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ImmutableByteArray.st,v 1.7 2009/11/16 08:59:40 stefan Exp '
 !
 
 version_SVN
@@ -249,3 +249,4 @@
 
 
 
+
--- a/ImmutableString.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ImmutableString.st	Wed Jun 08 22:53:07 2011 +0100
@@ -232,7 +232,7 @@
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ImmutableString.st,v 1.9 2009-11-16 08:59:40 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ImmutableString.st,v 1.9 2009/11/16 08:59:40 stefan Exp '
 !
 
 version_SVN
@@ -244,3 +244,4 @@
 
 
 
+
--- a/Infinity.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Infinity.st	Wed Jun 08 22:53:07 2011 +0100
@@ -425,15 +425,15 @@
 !Infinity class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Infinity.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Infinity.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Infinity.st,v 1.13 2009-10-12 19:34:30 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Infinity.st,v 1.13 2009/10/12 19:34:30 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Infinity.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Infinity.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Infinity initialize!
@@ -443,3 +443,4 @@
 
 
 
+
--- a/InlineObjectClassDescription.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/InlineObjectClassDescription.st	Wed Jun 08 22:53:07 2011 +0100
@@ -53,17 +53,18 @@
 !InlineObjectClassDescription class methodsFor:'documentation'!
 
 version
-    ^ '$Id: InlineObjectClassDescription.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: InlineObjectClassDescription.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: InlineObjectClassDescription.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: InlineObjectClassDescription.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/InlineObjectClassDescription.st,v 1.2 2010-08-13 16:57:49 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/InlineObjectClassDescription.st,v 1.2 2010/08/13 16:57:49 cg Exp §'
 ! !
 
 
 
 
+
--- a/Integer.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Integer.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1600,21 +1600,21 @@
 !
 
 bitIndicesOfOneBitsReverseDo:aBlock
-    "evaluate aBlock for all inices of a 1-bit, starting with the index of the highest
+    "evaluate aBlock for all indices of a 1-bit, starting with the index of the highest
      and ending with the lowest bit.
      The index for the least significant bit is 1."
 
     self digitLength downTo:1 do:[:i8 |
-	|byte|
-
-	byte := self digitAt:i8.
-	byte ~~ 0 ifTrue:[
-	    8 downTo:1 do:[:i |
-		(byte bitAt:i) == 1 ifTrue:[
-		    aBlock value:(((i8-1)*8) + i).
-		].
-	    ].
-	]
+        |byte|
+
+        byte := self digitAt:i8.
+        byte ~~ 0 ifTrue:[
+            8 downTo:1 do:[:i |
+                (byte bitAt:i) == 1 ifTrue:[
+                    aBlock value:(((i8-1)*8) + i).
+                ].
+            ].
+        ]
     ].
 
     "
@@ -4720,15 +4720,15 @@
 !Integer class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Integer.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Integer.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Integer.st,v 1.251 2010-08-17 15:32:31 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Integer.st,v 1.252 2011/05/13 13:58:36 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Integer.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Integer.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Integer initialize!
@@ -4741,3 +4741,4 @@
 
 
 
+
--- a/Interval.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Interval.st	Wed Jun 08 22:53:07 2011 +0100
@@ -692,16 +692,17 @@
 !Interval class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Interval.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Interval.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: Interval.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Interval.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/Interval.st,v 1.52 2010-09-21 06:57:23 stefan Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/Interval.st,v 1.52 2010/09/21 06:57:23 stefan Exp §'
 ! !
 
 
 
+
--- a/InvalidPatchError.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/InvalidPatchError.st	Wed Jun 08 22:53:07 2011 +0100
@@ -61,7 +61,8 @@
 !InvalidPatchError class methodsFor:'documentation'!
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/InvalidPatchError.st,v 1.1 2011-02-03 11:49:27 stefan Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/InvalidPatchError.st,v 1.1 2011/02/03 11:49:27 stefan Exp §'
 ! !
 
 InvalidPatchError initialize!
+
--- a/KeyedCollection.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/KeyedCollection.st	Wed Jun 08 22:53:07 2011 +0100
@@ -200,15 +200,15 @@
 !KeyedCollection class methodsFor:'documentation'!
 
 version
-    ^ '$Id: KeyedCollection.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: KeyedCollection.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/KeyedCollection.st,v 1.8 2010-08-24 08:29:08 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/KeyedCollection.st,v 1.8 2010/08/24 08:29:08 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: KeyedCollection.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: KeyedCollection.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -217,3 +217,4 @@
 
 
 
+
--- a/LargeInteger.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/LargeInteger.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1085,11 +1085,11 @@
     anInteger class ~~ LargeInteger ifTrue:[^ super bitXor:anInteger].
 
     (len1 := anInteger digitLength) > (len2 := self digitLength) ifTrue:[
-	newBytes := anInteger digits copy.
-	newBytes bitXorBytesFrom:1 to:len2 with:digitByteArray startingAt:1
+        newBytes := anInteger digitBytes copy.
+        newBytes bitXorBytesFrom:1 to:len2 with:digitByteArray startingAt:1
     ] ifFalse:[
-	newBytes := digitByteArray copy.
-	newBytes bitXorBytesFrom:1 to:len1 with:anInteger digits startingAt:1
+        newBytes := digitByteArray copy.
+        newBytes bitXorBytesFrom:1 to:len1 with:anInteger digits startingAt:1
     ].
     ^ (LargeInteger digitBytes:newBytes) compressed
 
@@ -1104,9 +1104,9 @@
      bigNum1 := 2 raisedToInteger:512.
      bigNum2 := 2 raisedToInteger:510.
      Time millisecondsToRun:[
-	1000000 timesRepeat:[
-	   bigNum1 bitXor:bigNum2.
-	]
+        1000000 timesRepeat:[
+           bigNum1 bitXor:bigNum2.
+        ]
      ]
     "
 !
@@ -5141,15 +5141,15 @@
 !LargeInteger class methodsFor:'documentation'!
 
 version
-    ^ '$Id: LargeInteger.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: LargeInteger.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/LargeInteger.st,v 1.202 2010-08-10 10:34:11 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/LargeInteger.st,v 1.203 2011/05/17 13:18:34 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: LargeInteger.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: LargeInteger.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -5159,3 +5159,4 @@
 
 
 
+
--- a/LibraryDefinition.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/LibraryDefinition.st	Wed Jun 08 22:53:07 2011 +0100
@@ -690,15 +690,15 @@
 !LibraryDefinition class methodsFor:'documentation'!
 
 version
-    ^ '$Id: LibraryDefinition.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: LibraryDefinition.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/LibraryDefinition.st,v 1.100 2011-02-08 09:04:09 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/LibraryDefinition.st,v 1.100 2011/02/08 09:04:09 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: LibraryDefinition.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: LibraryDefinition.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -707,3 +707,4 @@
 
 
 
+
--- a/LimitedPrecisionReal.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/LimitedPrecisionReal.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1197,15 +1197,15 @@
 !LimitedPrecisionReal class methodsFor:'documentation'!
 
 version
-    ^ '$Id: LimitedPrecisionReal.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: LimitedPrecisionReal.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/LimitedPrecisionReal.st,v 1.72 2010-03-06 11:27:34 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/LimitedPrecisionReal.st,v 1.72 2010/03/06 11:27:34 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: LimitedPrecisionReal.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: LimitedPrecisionReal.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 LimitedPrecisionReal initialize!
@@ -1215,3 +1215,4 @@
 
 
 
+
--- a/LinkedList.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/LinkedList.st	Wed Jun 08 22:53:07 2011 +0100
@@ -430,15 +430,16 @@
 !LinkedList class methodsFor:'documentation'!
 
 version
-    ^ '$Id: LinkedList.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: LinkedList.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: LinkedList.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: LinkedList.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/LinkedList.st,v 1.40 2010-12-08 15:06:55 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/LinkedList.st,v 1.40 2010/12/08 15:06:55 stefan Exp '
 ! !
 
 
+
--- a/LongFloat.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/LongFloat.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2537,15 +2537,15 @@
 !LongFloat class methodsFor:'documentation'!
 
 version
-    ^ '$Id: LongFloat.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: LongFloat.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/LongFloat.st,v 1.68 2010-09-05 15:48:37 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/LongFloat.st,v 1.68 2010/09/05 15:48:37 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: LongFloat.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: LongFloat.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 LongFloat initialize!
@@ -2557,3 +2557,4 @@
 
 
 
+
--- a/MD5Stream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/MD5Stream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -455,15 +455,15 @@
 !MD5Stream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: MD5Stream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: MD5Stream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/MD5Stream.st,v 1.14 2010-08-07 17:11:19 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/MD5Stream.st,v 1.14 2010/08/07 17:11:19 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: MD5Stream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: MD5Stream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 MD5Stream initialize!
@@ -474,3 +474,4 @@
 
 
 
+
--- a/Make.proto	Fri Jun 03 18:15:16 2011 +0100
+++ b/Make.proto	Wed Jun 08 22:53:07 2011 +0100
@@ -1,4 +1,4 @@
-# $Header$
+# $Header: /cvs/stx/stx/libbasic/Make.proto,v 1.236 2011/02/09 10:45:55 cg Exp $
 #
 # DO NOT EDIT
 # automagically generated from the projectDefinition: stx_libbasic.
@@ -397,3 +397,4 @@
 
 # ENDMAKEDEPEND --- do not remove this line
 
+
--- a/Make.spec	Fri Jun 03 18:15:16 2011 +0100
+++ b/Make.spec	Wed Jun 08 22:53:07 2011 +0100
@@ -1,4 +1,4 @@
-# $Header: /var/local/cvs/stx/libbasic/Make.spec,v 1.113 2011-02-09 10:45:53 cg Exp $
+# $Header: /cvs/stx/stx/libbasic/Make.spec,v 1.113 2011/02/09 10:45:53 cg Exp $
 #
 # DO NOT EDIT 
 # automagically generated from the projectDefinition: stx_libbasic.
@@ -667,3 +667,4 @@
 
 
 
+
--- a/MessageNotUnderstood.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/MessageNotUnderstood.st	Wed Jun 08 22:53:07 2011 +0100
@@ -169,17 +169,18 @@
 !MessageNotUnderstood class methodsFor:'documentation'!
 
 version
-    ^ '$Id: MessageNotUnderstood.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: MessageNotUnderstood.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN  
-  ^ '$Id: MessageNotUnderstood.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+  ^ '$Id: MessageNotUnderstood.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !  
  
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/MessageNotUnderstood.st,v 1.11 2010-08-19 13:44:12 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/MessageNotUnderstood.st,v 1.11 2010/08/19 13:44:12 cg Exp '
 ! !
 
 
 
 
+
--- a/MessageSend.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/MessageSend.st	Wed Jun 08 22:53:07 2011 +0100
@@ -289,17 +289,18 @@
 !MessageSend class methodsFor:'documentation'!
 
 version
-    ^ '$Id: MessageSend.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: MessageSend.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: MessageSend.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: MessageSend.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/MessageSend.st,v 1.23 2010-12-22 12:50:41 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/MessageSend.st,v 1.23 2010/12/22 12:50:41 cg Exp §'
 ! !
 
 
 
 
+
--- a/Metaclass.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Metaclass.st	Wed Jun 08 22:53:07 2011 +0100
@@ -889,15 +889,15 @@
 !Metaclass class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Metaclass.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Metaclass.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Metaclass.st,v 1.208 2010-04-03 10:46:40 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Metaclass.st,v 1.208 2010/04/03 10:46:40 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Metaclass.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Metaclass.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Metaclass initialize!
@@ -907,3 +907,4 @@
 
 
 
+
--- a/Method.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Method.st	Wed Jun 08 22:53:07 2011 +0100
@@ -726,18 +726,19 @@
      Otherwise, source is the real source
     "
     sourcePosition isNil ifTrue:[^ source].
-
-    source notNil ifTrue:[
-        self class lastMethodSourcesLock critical:[
-            LastMethodSources notNil ifTrue:[
-                chunk := LastMethodSources at:self ifAbsent:nil.
-            ].
+    source isNil ifTrue:[^ nil].
+
+    self class lastMethodSourcesLock critical:[
+        LastMethodSources notNil ifTrue:[
+            chunk := LastMethodSources at:self ifAbsent:nil.
         ].
-        chunk notNil ifTrue:[
-            ^ chunk
-        ].
-
-        LastFileLock critical:[
+    ].
+    chunk notNil ifTrue:[
+        ^ chunk
+    ].
+
+    LastFileLock 
+        critical:[
             "have to protect sourceStream from being closed as a side effect
              of some other process fetching some the source from a different source file"
 
@@ -753,7 +754,9 @@
                     ex restart.
                 ].
             ].
-        ] timeoutMs:100 ifBlocking:[
+        ] 
+        timeoutMs:100 
+        ifBlocking:[
             "take care if LastFileLock is not available - maybe we are
              called by a debugger while someone holds the lock.
              Use uncached source streams"
@@ -771,7 +774,6 @@
                 ].
             ].
         ].
-    ].
 
     "Cache the source of recently used methods"
     chunk notNil ifTrue:[
@@ -794,7 +796,6 @@
     ^ chunk
 
     "Modified: / 07-01-1997 / 16:20:09 / stefan"
-    "Modified: / 28-11-2006 / 11:49:25 / cg"
 !
 
 source:aString
@@ -3393,15 +3394,15 @@
 !Method class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Method.st 10633 2011-04-23 10:55:48Z vranyj1 $'
+    ^ '$Id: Method.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/Method.st,v 1.355 2010-12-23 15:16:43 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/Method.st,v 1.356 2011/05/31 14:05:51 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: Method.st 10633 2011-04-23 10:55:48Z vranyj1 $'
+    ^ '$Id: Method.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Method initialize!
@@ -3409,3 +3410,4 @@
 
 
 
+
--- a/MiniDebugger.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/MiniDebugger.st	Wed Jun 08 22:53:07 2011 +0100
@@ -875,16 +875,17 @@
 !MiniDebugger class methodsFor:'documentation'!
 
 version
-    ^ '$Id: MiniDebugger.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: MiniDebugger.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: MiniDebugger.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: MiniDebugger.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/MiniDebugger.st,v 1.78 2010-10-29 16:52:00 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/MiniDebugger.st,v 1.78 2010/10/29 16:52:00 cg Exp §'
 ! !
 
 
 
+
--- a/NameSpace.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/NameSpace.st	Wed Jun 08 22:53:07 2011 +0100
@@ -718,17 +718,18 @@
 !NameSpace class methodsFor:'documentation'!
 
 version
-    ^ '$Id: NameSpace.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: NameSpace.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/NameSpace.st,v 1.70 2010-12-20 11:06:03 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/NameSpace.st,v 1.70 2010/12/20 11:06:03 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: NameSpace.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: NameSpace.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
 
 
+
--- a/NoHandlerError.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/NoHandlerError.st	Wed Jun 08 22:53:07 2011 +0100
@@ -560,15 +560,15 @@
 !NoHandlerError class methodsFor:'documentation'!
 
 version
-    ^ '$Id: NoHandlerError.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: NoHandlerError.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/NoHandlerError.st,v 1.19 2010-03-13 10:31:25 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/NoHandlerError.st,v 1.19 2010/03/13 10:31:25 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: NoHandlerError.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: NoHandlerError.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 NoHandlerError initialize!
@@ -578,3 +578,4 @@
 
 
 
+
--- a/NoModificationError.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/NoModificationError.st	Wed Jun 08 22:53:07 2011 +0100
@@ -50,7 +50,7 @@
 !NoModificationError class methodsFor:'documentation'!
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/NoModificationError.st,v 1.2 2009-11-05 22:42:42 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/NoModificationError.st,v 1.2 2009/11/05 22:42:42 cg Exp '
 !
 
 version_SVN
@@ -64,3 +64,4 @@
 
 
 
+
--- a/NonPositionableExternalStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/NonPositionableExternalStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -560,15 +560,15 @@
 !NonPositionableExternalStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: NonPositionableExternalStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: NonPositionableExternalStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/NonPositionableExternalStream.st,v 1.61 2010-03-04 15:11:43 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/NonPositionableExternalStream.st,v 1.61 2010/03/04 15:11:43 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: NonPositionableExternalStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: NonPositionableExternalStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -576,3 +576,4 @@
 
 
 
+
--- a/Notification.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Notification.st	Wed Jun 08 22:53:07 2011 +0100
@@ -234,6 +234,8 @@
     con := Context findFirstSpecialHandle:true raise:false.
     [con notNil] whileTrue:[
         (con selector ~~ #answer:do:) ifTrue:[
+            "there is another handler block, maybe it will return the answer.
+             Call it via raiseRequest"
             ^ super raiseRequest
         ].
         signal := con receiver.
@@ -338,15 +340,15 @@
 !Notification class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Notification.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Notification.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Notification.st,v 1.25 2009-10-14 17:34:24 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Notification.st,v 1.26 2011/05/09 08:22:54 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Notification.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Notification.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Notification initialize!
@@ -356,3 +358,4 @@
 
 
 
+
--- a/Number.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Number.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2251,15 +2251,15 @@
 !Number class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Number.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Number.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Number.st,v 1.133 2010-08-02 11:27:38 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Number.st,v 1.133 2010/08/02 11:27:38 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Number.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Number.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -2268,3 +2268,4 @@
 
 
 
+
--- a/OSErrorHolder.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/OSErrorHolder.st	Wed Jun 08 22:53:07 2011 +0100
@@ -412,15 +412,15 @@
 !OSErrorHolder class methodsFor:'documentation'!
 
 version
-    ^ '$Id: OSErrorHolder.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: OSErrorHolder.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/OSErrorHolder.st,v 1.19 2010-07-22 18:11:49 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/OSErrorHolder.st,v 1.19 2010/07/22 18:11:49 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: OSErrorHolder.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: OSErrorHolder.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 OSErrorHolder initialize!
@@ -431,3 +431,4 @@
 
 
 
+
--- a/OSProcess.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/OSProcess.st	Wed Jun 08 22:53:07 2011 +0100
@@ -158,7 +158,7 @@
 !OSProcess class methodsFor:'documentation'!
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/OSProcess.st,v 1.2 2011-03-08 17:01:30 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/OSProcess.st,v 1.2 2011/03/08 17:01:30 stefan Exp '
 !
 
 version_SVN
@@ -170,3 +170,4 @@
 
 
 
+
--- a/Object.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Object.st	Wed Jun 08 22:53:07 2011 +0100
@@ -525,6 +525,9 @@
     "Modified: 23.4.1996 / 16:00:07 / cg"
 ! !
 
+
+
+
 !Object methodsFor:'Compatibility-Dolphin'!
 
 stbFixup: anSTBInFiler at: newObjectIndex
@@ -686,6 +689,7 @@
     "
 ! !
 
+
 !Object methodsFor:'accessing'!
 
 _at:index
@@ -1693,6 +1697,7 @@
     "Modified: / 18.2.2000 / 11:32:19 / cg"
 ! !
 
+
 !Object methodsFor:'change & update'!
 
 broadcast:aSelectorSymbol
@@ -1882,6 +1887,7 @@
     ^ self
 ! !
 
+
 !Object methodsFor:'comparing'!
 
 = anObject
@@ -2130,7 +2136,6 @@
 %}
 ! !
 
-
 !Object methodsFor:'converting'!
 
 -> anObject
@@ -6449,19 +6454,9 @@
      The Transcript is directed to the standard error stream on
      headless applications."
 
-    |s|
-
-    s := Processor activeProcess isSystemProcess
-			ifTrue:Stderr
-			ifFalse:Transcript.
-    StreamError catch:[
-	self printOn:s
-    ].
-"/    s ~~ Stderr ifTrue:[
-"/        self printOn:Stderr
-"/    ].
-
-    "Modified: / 29-05-2007 / 20:00:54 / cg"
+    self withErrorStreamDo:[:s | self printOn:s].
+
+    "Modified: / 21-04-2011 / 12:46:42 / cg"
 !
 
 errorPrintCR
@@ -6471,22 +6466,14 @@
      The Transcript is directed to the standard error stream on
      headless applications."
 
-    |s|
-
-    s := Processor activeProcess isSystemProcess
-			ifTrue:Stderr
-			ifFalse:Transcript.
-    StreamError catch:[
-	self printOn:s.
-	s cr
-    ].
-"/    s ~~ Stderr ifTrue:[
-"/        self printOn:Stderr.
-"/        Stderr cr
-"/    ].
+    self withErrorStreamDo:[:s | self printOn:s. s cr].
+
+    "
+     'hello' errorPrintCR
+    "
 
     "Created: / 20-05-1996 / 10:20:41 / cg"
-    "Modified: / 29-05-2007 / 20:00:49 / cg"
+    "Modified: / 21-04-2011 / 12:47:13 / cg"
 !
 
 errorPrintNL
@@ -7040,6 +7027,24 @@
     s := WriteStream on:(String new:50).
     self storeOn:s.
     ^ s contents
+!
+
+withErrorStreamDo:aBlock
+    "{ Pragma: +optSpace }"
+
+    "helper for error messages - evaluate alock, passing it a stream on which to put
+     error messages."
+
+    |s|
+
+    s := Processor activeProcess isSystemProcess
+                        ifTrue:Stderr
+                        ifFalse:Transcript.
+    StreamError catch:[
+        aBlock value:s.
+    ].
+
+    "Created: / 21-04-2011 / 12:46:21 / cg"
 ! !
 
 !Object methodsFor:'queries'!
@@ -7230,6 +7235,7 @@
     ^ self
 ! !
 
+
 !Object methodsFor:'secure message sending'!
 
 ?: selector
@@ -7832,6 +7838,7 @@
     "
 ! !
 
+
 !Object methodsFor:'synchronized evaluation'!
 
 freeSynchronizationSemaphore
@@ -9403,15 +9410,15 @@
 !Object class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Object.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Object.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Object.st,v 1.664 2011-03-21 13:16:18 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Object.st,v 1.665 2011/04/21 10:47:33 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Object.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Object.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Object initialize!
@@ -9421,3 +9428,4 @@
 
 
 
+
--- a/ObjectMemory.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ObjectMemory.st	Wed Jun 08 22:53:07 2011 +0100
@@ -5449,15 +5449,15 @@
 !ObjectMemory class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ObjectMemory.st 10635 2011-04-23 16:27:23Z vranyj1 $'
+    ^ '$Id: ObjectMemory.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ObjectMemory.st,v 1.250 2011-02-09 19:44:55 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ObjectMemory.st,v 1.250 2011/02/09 19:44:55 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: ObjectMemory.st 10635 2011-04-23 16:27:23Z vranyj1 $'
+    ^ '$Id: ObjectMemory.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 ObjectMemory initialize!
@@ -5468,3 +5468,4 @@
 
 
 
+
--- a/PCFilename.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/PCFilename.st	Wed Jun 08 22:53:07 2011 +0100
@@ -883,11 +883,11 @@
 !PCFilename class methodsFor:'documentation'!
 
 version
-    ^ '$Id: PCFilename.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: PCFilename.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/PCFilename.st,v 1.53 2011-03-23 15:46:46 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/PCFilename.st,v 1.53 2011/03/23 15:46:46 cg Exp §'
 ! !
 
 
@@ -898,3 +898,4 @@
 
 
 
+
--- a/PackageId.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/PackageId.st	Wed Jun 08 22:53:07 2011 +0100
@@ -279,15 +279,15 @@
 !PackageId class methodsFor:'documentation'!
 
 version
-    ^ '$Id: PackageId.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: PackageId.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/PackageId.st,v 1.16 2009-10-22 15:43:27 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/PackageId.st,v 1.16 2009/10/22 15:43:27 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: PackageId.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: PackageId.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -295,3 +295,4 @@
 
 
 
+
--- a/PeekableStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/PeekableStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1034,15 +1034,15 @@
 !PeekableStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: PeekableStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: PeekableStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/PeekableStream.st,v 1.40 2011-02-05 10:40:33 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/PeekableStream.st,v 1.40 2011/02/05 10:40:33 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: PeekableStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: PeekableStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 PeekableStream initialize!
@@ -1052,3 +1052,4 @@
 
 
 
+
--- a/PipeStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/PipeStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -796,15 +796,15 @@
 !PipeStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: PipeStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: PipeStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/PipeStream.st,v 1.111 2010-02-09 18:01:01 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.111 2010/02/09 18:01:01 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: PipeStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: PipeStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 PipeStream initialize!
@@ -814,3 +814,4 @@
 
 
 
+
--- a/PluginSupport.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/PluginSupport.st	Wed Jun 08 22:53:07 2011 +0100
@@ -188,15 +188,15 @@
 !PluginSupport class methodsFor:'documentation'!
 
 version
-    ^ '$Id: PluginSupport.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: PluginSupport.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/PluginSupport.st,v 1.14 2010-09-14 14:07:59 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/PluginSupport.st,v 1.14 2010/09/14 14:07:59 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: PluginSupport.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: PluginSupport.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -204,3 +204,4 @@
 
 
 
+
--- a/PositionableStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/PositionableStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -503,6 +503,9 @@
 
     collection := aCollection.
     readLimit := aCollection size.
+    readLimit == 0 ifTrue:[
+        self assert:(aCollection isCollection)
+    ].
     position := ZeroPosition
 !
 
@@ -657,11 +660,17 @@
 !PositionableStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: PositionableStream.st 10517 2010-04-26 18:26:38Z vranyj1 $'
+    ^ '$Id: PositionableStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: PositionableStream.st 10517 2010-04-26 18:26:38Z vranyj1 $'
+    ^ '$Id: PositionableStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
+    
+!
+
+version_CVS
+    ^ '§Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.154 2011/05/27 14:22:27 sr Exp §'
 ! !
 
 PositionableStream initialize!
+
--- a/ProceedableError.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ProceedableError.st	Wed Jun 08 22:53:07 2011 +0100
@@ -70,17 +70,18 @@
 !ProceedableError class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ProceedableError.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ProceedableError.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: ProceedableError.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ProceedableError.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ProceedableError.st,v 1.6 2010-11-17 16:53:49 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ProceedableError.st,v 1.6 2010/11/17 16:53:49 cg Exp '
 ! !
 
 ProceedableError initialize!
 
 
+
--- a/Process.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Process.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2054,15 +2054,15 @@
 !Process class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Process.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Process.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Process.st,v 1.172 2011-01-13 12:50:05 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Process.st,v 1.172 2011/01/13 12:50:05 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Process.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Process.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Process initialize!
@@ -2074,3 +2074,4 @@
 
 
 
+
--- a/ProcessorScheduler.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ProcessorScheduler.st	Wed Jun 08 22:53:07 2011 +0100
@@ -3378,15 +3378,15 @@
 !ProcessorScheduler class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ProcessorScheduler.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ProcessorScheduler.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ProcessorScheduler.st,v 1.257 2010-12-08 15:09:24 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.257 2010/12/08 15:09:24 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: ProcessorScheduler.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ProcessorScheduler.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 ProcessorScheduler initialize!
@@ -3397,3 +3397,4 @@
 
 
 
+
--- a/ProgrammingLanguage.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ProgrammingLanguage.st	Wed Jun 08 22:53:07 2011 +0100
@@ -471,16 +471,17 @@
 !ProgrammingLanguage class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ProgrammingLanguage.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ProgrammingLanguage.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/ProgrammingLanguage.st,v 1.14 2011-01-30 09:06:33 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/ProgrammingLanguage.st,v 1.14 2011/01/30 09:06:33 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: ProgrammingLanguage.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ProgrammingLanguage.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 ProgrammingLanguage initialize!
 
+
--- a/Project.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Project.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1617,15 +1617,15 @@
 !Project class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Project.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Project.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Project.st,v 1.208 2009-10-27 09:00:33 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Project.st,v 1.208 2009/10/27 09:00:33 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Project.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Project.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Project initialize!
@@ -1635,3 +1635,4 @@
 
 
 
+
--- a/ProjectDefinition.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ProjectDefinition.st	Wed Jun 08 22:53:07 2011 +0100
@@ -6157,7 +6157,7 @@
 !ProjectDefinition class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ProjectDefinition.st 10641 2011-06-03 17:15:16Z vranyj1 $'
+    ^ '$Id: ProjectDefinition.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
@@ -6165,7 +6165,8 @@
 !
 
 version_SVN
-    ^ '$Id: ProjectDefinition.st 10641 2011-06-03 17:15:16Z vranyj1 $'
+    ^ '$Id: ProjectDefinition.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 ProjectDefinition initialize!
+
--- a/ProtoObject.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ProtoObject.st	Wed Jun 08 22:53:07 2011 +0100
@@ -183,15 +183,15 @@
 !ProtoObject class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ProtoObject.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ProtoObject.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ProtoObject.st,v 1.13 2009-12-01 19:59:38 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ProtoObject.st,v 1.13 2009/12/01 19:59:38 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: ProtoObject.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ProtoObject.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -199,3 +199,4 @@
 
 
 
+
--- a/PrototypeLookupAlgorithm.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/PrototypeLookupAlgorithm.st	Wed Jun 08 22:53:07 2011 +0100
@@ -105,7 +105,7 @@
 !PrototypeLookupAlgorithm class methodsFor:'documentation'!
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/PrototypeLookupAlgorithm.st,v 1.3 2010-04-07 16:39:47 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/PrototypeLookupAlgorithm.st,v 1.3 2010/04/07 16:39:47 cg Exp '
 !
 
 version_SVN
@@ -117,3 +117,4 @@
 
 
 
+
--- a/Query.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Query.st	Wed Jun 08 22:53:07 2011 +0100
@@ -272,15 +272,15 @@
 !Query class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Query.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Query.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Query.st,v 1.13 2009-10-01 13:44:05 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Query.st,v 1.13 2009/10/01 13:44:05 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Query.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Query.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Query initialize!
@@ -290,3 +290,4 @@
 
 
 
+
--- a/QuerySignal.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/QuerySignal.st	Wed Jun 08 22:53:07 2011 +0100
@@ -504,15 +504,15 @@
 !QuerySignal class methodsFor:'documentation'!
 
 version
-    ^ '$Id: QuerySignal.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: QuerySignal.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/QuerySignal.st,v 1.44 2009-10-01 07:27:33 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/QuerySignal.st,v 1.44 2009/10/01 07:27:33 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: QuerySignal.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: QuerySignal.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -520,3 +520,4 @@
 
 
 
+
--- a/ReadEvalPrintLoop.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ReadEvalPrintLoop.st	Wed Jun 08 22:53:07 2011 +0100
@@ -373,11 +373,11 @@
 !ReadEvalPrintLoop class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ReadEvalPrintLoop.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ReadEvalPrintLoop.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: ReadEvalPrintLoop.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ReadEvalPrintLoop.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
@@ -386,3 +386,4 @@
 
 
 
+
--- a/ReadStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ReadStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -828,15 +828,15 @@
 !ReadStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ReadStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ReadStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ReadStream.st,v 1.64 2009-11-05 16:25:23 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ReadStream.st,v 1.64 2009/11/05 16:25:23 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: ReadStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ReadStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -844,3 +844,4 @@
 
 
 
+
--- a/Rectangle.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Rectangle.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1817,11 +1817,11 @@
 !Rectangle class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Rectangle.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Rectangle.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: Rectangle.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Rectangle.st 10643 2011-06-08 21:53:07Z vranyj1 $'
    
 ! 
    
@@ -1832,3 +1832,4 @@
 
 
 
+
--- a/RecursionLock.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/RecursionLock.st	Wed Jun 08 22:53:07 2011 +0100
@@ -104,14 +104,22 @@
 
 !RecursionLock methodsFor:'printing & storing'!
 
-displayString
+displayOn:aGCOrStream
     "return a string to display the receiver - include the
-     count and user-friendly name for your convenience"
+     count for your convenience"
 
-    ^ self class name , '(' , sema count printString , ' name: ' , (self name ? 'unnamed') , ')'
-
-    "Created: / 28.6.1997 / 16:20:33 / cg"
-    "Modified: / 14.12.1999 / 21:04:08 / cg"
+    "/ what a kludge - Dolphin and Squeak mean: printOn: a stream;
+    "/ ST/X (and some old ST80's) mean: draw-yourself on a GC.
+    (aGCOrStream isStream) ifFalse:[
+        ^ super displayOn:aGCOrStream
+    ].
+    aGCOrStream
+        nextPutAll:self class name;
+        nextPut:$(.
+    sema count printOn:aGCOrStream.
+    aGCOrStream nextPutAll:' name: '.
+    (self name ? 'unnamed') printOn:aGCOrStream.
+    aGCOrStream nextPut:$).
 !
 
 name
@@ -310,15 +318,15 @@
 !RecursionLock class methodsFor:'documentation'!
 
 version
-    ^ '$Id: RecursionLock.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: RecursionLock.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/RecursionLock.st,v 1.35 2010-02-04 09:03:44 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/RecursionLock.st,v 1.36 2011/04/27 15:14:06 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: RecursionLock.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: RecursionLock.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -326,3 +334,4 @@
 
 
 
+
--- a/Registry.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Registry.st	Wed Jun 08 22:53:07 2011 +0100
@@ -514,17 +514,18 @@
 !Registry class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Registry.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Registry.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: Registry.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Registry.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Registry.st,v 1.61 2010-08-11 10:06:08 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Registry.st,v 1.61 2010/08/11 10:06:08 stefan Exp '
 ! !
 
 
 
 
+
--- a/SHA1Stream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SHA1Stream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -682,15 +682,15 @@
 !SHA1Stream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SHA1Stream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SHA1Stream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/SHA1Stream.st,v 1.19 2010-04-13 14:36:36 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/SHA1Stream.st,v 1.19 2010/04/13 14:36:36 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: SHA1Stream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SHA1Stream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 SHA1Stream initialize!
@@ -701,3 +701,4 @@
 
 
 
+
--- a/SameForAllNotification.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SameForAllNotification.st	Wed Jun 08 22:53:07 2011 +0100
@@ -45,7 +45,8 @@
 !SameForAllNotification class methodsFor:'documentation'!
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/SameForAllNotification.st,v 1.1 2010-10-14 08:38:23 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/SameForAllNotification.st,v 1.1 2010/10/14 08:38:23 cg Exp §'
 ! !
 
 
+
--- a/Semaphore.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Semaphore.st	Wed Jun 08 22:53:07 2011 +0100
@@ -333,11 +333,23 @@
 
 !Semaphore methodsFor:'printing & storing'!
 
-displayString
+displayOn:aGCOrStream
     "return a string to display the receiver - include the
      count for your convenience"
 
-    ^ self class name , '(' , count printString , ' name: ' , (name ? 'unnamed') , ')'
+    "/ what a kludge - Dolphin and Squeak mean: printOn: a stream;
+    "/ ST/X (and some old ST80's) mean: draw-yourself on a GC.
+    (aGCOrStream isStream) ifFalse:[
+        ^ super displayOn:aGCOrStream
+    ].
+    aGCOrStream
+        nextPutAll:self class name;
+        nextPut:$(.
+    count printOn:aGCOrStream.
+    aGCOrStream nextPutAll:' name: '.
+    (name ? 'unnamed') printOn:aGCOrStream.
+    aGCOrStream nextPut:$).
+
 
     "Modified: 28.6.1997 / 16:21:09 / cg"
 !
@@ -923,15 +935,15 @@
 !Semaphore class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Semaphore.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Semaphore.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Semaphore.st,v 1.84 2010-11-30 13:13:46 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Semaphore.st,v 1.85 2011/04/27 15:03:57 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Semaphore.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Semaphore.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -939,3 +951,4 @@
 
 
 
+
--- a/SemaphoreSet.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SemaphoreSet.st	Wed Jun 08 22:53:07 2011 +0100
@@ -306,15 +306,15 @@
 !SemaphoreSet class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SemaphoreSet.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SemaphoreSet.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/SemaphoreSet.st,v 1.19 2010-02-05 12:58:13 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/SemaphoreSet.st,v 1.19 2010/02/05 12:58:13 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: SemaphoreSet.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SemaphoreSet.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -322,3 +322,4 @@
 
 
 
+
--- a/SequenceableCollection.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SequenceableCollection.st	Wed Jun 08 22:53:07 2011 +0100
@@ -380,7 +380,6 @@
     ^ self == SequenceableCollection
 ! !
 
-
 !SequenceableCollection methodsFor:'Compatibility-Squeak'!
 
 allButFirst
@@ -4238,15 +4237,15 @@
     stop := index2.  "/ and guarantee inline loop code below.
 
     start to:stop do:[:index |
-	aBlock value:(self at:index).
+        aBlock value:(self at:index).
     ]
 
     "
      #(one two three four five six)
-	from:3
-	to:5
-	do:[:element | Transcript showCR:element]
-    "
+        from:3 to:5 do:[:element | Transcript showCR:element]
+    "
+
+    "Modified: / 02-06-2011 / 13:23:06 / cg"
 !
 
 from:index1 to:index2 keysAndValuesDo:aBlock
@@ -4271,6 +4270,20 @@
     "
 !
 
+from:index1 to:index2 orEndDo:aBlock
+    "evaluate the argument, aBlock for the elements with index index1 to
+     index2 or the end (whichever comes first) in the collection"
+
+    self from:index1 to:(index2 min:self size) do:aBlock
+
+    "
+     #(one two three four five six)
+        from:3 to:10 orEndDo:[:element | Transcript showCR:element]
+    "
+
+    "Created: / 02-06-2011 / 13:21:32 / cg"
+!
+
 from:index1 to:index2 reverseDo:aBlock
     "evaluate the argument, aBlock for the elements with index index1 to
      index2 in the collection. Step in reverse order"
@@ -5982,7 +5995,6 @@
     "Created: 14.2.1997 / 16:13:03 / cg"
 ! !
 
-
 !SequenceableCollection methodsFor:'searching'!
 
 detect:aBlock startingAt:startIndex
@@ -6243,7 +6255,10 @@
      #(1 2 3 4 5 6 7) indexOfSubCollection:#(5 6 7)
      #(1 2 3 4 5 6 7) indexOfSubCollection:#(5 6 8)
      #(1 2 3 4 5 6 7) indexOfSubCollection:#(5 6 7 8)
-    "
+     'foobarbaz' indexOfSubCollection:'bar'
+    "
+
+    "Modified: / 20-04-2011 / 19:11:20 / cg"
 !
 
 indexOfSubCollection:aCollection ifAbsent:exceptionBlock
@@ -7876,15 +7891,15 @@
 !SequenceableCollection class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SequenceableCollection.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SequenceableCollection.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/SequenceableCollection.st,v 1.301 2011-01-29 09:15:02 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/SequenceableCollection.st,v 1.304 2011/06/02 11:23:18 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: SequenceableCollection.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SequenceableCollection.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 SequenceableCollection initialize!
@@ -7898,3 +7913,4 @@
 
 
 
+
--- a/Set.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Set.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1176,15 +1176,15 @@
 !Set class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Set.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Set.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Set.st,v 1.108 2011-02-28 12:27:23 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Set.st,v 1.108 2011/02/28 12:27:23 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Set.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Set.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Set initialize!
@@ -1195,3 +1195,4 @@
 
 
 
+
--- a/SharedPool.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SharedPool.st	Wed Jun 08 22:53:07 2011 +0100
@@ -190,15 +190,15 @@
 !SharedPool class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SharedPool.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SharedPool.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/SharedPool.st,v 1.15 2011-01-15 13:21:03 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/SharedPool.st,v 1.15 2011/01/15 13:21:03 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: SharedPool.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SharedPool.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -208,3 +208,4 @@
 
 
 
+
--- a/ShortFloat.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/ShortFloat.st	Wed Jun 08 22:53:07 2011 +0100
@@ -928,6 +928,66 @@
     ^ super ~= aNumber
 ! !
 
+!ShortFloat methodsFor:'mathematical functions'!
+
+fastInverseSqrt
+    "return a rough but fast approximation of (1 / self sqrt).
+     The error is some 1%, which is ok for many 3D computations or physics simulations.
+     Do not use this for now: it is non-portable and probably not speeding things up
+     much, unless inlined into the sender code.
+     The code is here as a reminder and might be later used as a hint for the inliner
+     (to speed up 3D computations, for example).
+     see: http://betterexplained.com/articles/understanding-quakes-fast-inverse-square-root/"
+
+%{  /* NOCONTEXT */
+    float x, rslt;
+    OBJ newFloat;
+
+    if (sizeof(float) == 4) {
+        x = __shortFloatVal(self);
+        {
+            float xhalf = 0.5f * x;
+            int i = *(int*)&x; // store floating-point bits in integer
+
+            i = 0x5f3759d5 - (i >> 1); // initial guess for Newton's method
+            x = *(float*)&i; // convert new bits into float
+            x = x*(1.5f - xhalf*x*x); // One round of Newton's method
+            __qMKSFLOAT(newFloat, x);
+            RETURN ( newFloat );
+        }
+    }
+%}.
+    ^ 1 / self sqrt
+
+    "
+     10.0 asShortFloat fastInverseSqrt   
+     (1 / 10.0 asShortFloat sqrt)
+    "
+
+    "
+     |a b t0 t1 t2|
+
+     a := 345 asShortFloat.
+     t0 := Time millisecondsToRun:[
+        1000000 timesRepeat:[
+        ]
+     ].
+     t1 := Time millisecondsToRun:[
+        1000000 timesRepeat:[
+            a fastInverseSqrt
+        ]
+     ].
+     t2 := Time millisecondsToRun:[
+        1000000 timesRepeat:[
+            (1 / a sqrt)
+        ]
+     ].
+     Transcript show:'empty: '; showCR:t0.
+     Transcript show:'fast: '; showCR:t1.
+     Transcript show:'regular: '; showCR:t2.
+    "
+! !
+
 !ShortFloat methodsFor:'printing & storing'!
 
 printString
@@ -1724,15 +1784,15 @@
 !ShortFloat class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ShortFloat.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ShortFloat.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/ShortFloat.st,v 1.104 2010-05-05 13:56:55 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/ShortFloat.st,v 1.108 2011/05/05 08:57:20 mb Exp '
 !
 
 version_SVN
-    ^ '$Id: ShortFloat.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: ShortFloat.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -1741,3 +1801,4 @@
 
 
 
+
--- a/Signal.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Signal.st	Wed Jun 08 22:53:07 2011 +0100
@@ -964,15 +964,15 @@
 !Signal class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Signal.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Signal.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Signal.st,v 1.109 2010-08-10 08:35:38 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Signal.st,v 1.109 2010/08/10 08:35:38 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Signal.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Signal.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -981,3 +981,4 @@
 
 
 
+
--- a/SignalSet.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SignalSet.st	Wed Jun 08 22:53:07 2011 +0100
@@ -332,15 +332,15 @@
 !SignalSet class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SignalSet.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SignalSet.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/SignalSet.st,v 1.45 2009-10-01 07:38:40 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/SignalSet.st,v 1.45 2009/10/01 07:38:40 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: SignalSet.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SignalSet.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -348,3 +348,4 @@
 
 
 
+
--- a/SmallInteger.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SmallInteger.st	Wed Jun 08 22:53:07 2011 +0100
@@ -3922,15 +3922,15 @@
 !SmallInteger class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SmallInteger.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SmallInteger.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/SmallInteger.st,v 1.187 2010-08-09 17:52:27 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/SmallInteger.st,v 1.187 2010/08/09 17:52:27 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: SmallInteger.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SmallInteger.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -3941,3 +3941,4 @@
 
 
 
+
--- a/Smalltalk.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Smalltalk.st	Wed Jun 08 22:53:07 2011 +0100
@@ -24,7 +24,8 @@
 		BitmapDirName PackageDirName FileInDirName ChangeFileName
 		ImageStartTime ImageRestartTime DemoMode SaveEmergencyImage
 		SpecialObjectArray CallbackSignal KnownPackages
-		ClassesFailedToInitialize HasNoConsole IgnoreHalt'
+		ClassesFailedToInitialize HasNoConsole IgnoreHalt
+		PackageToPathMapping'
 	poolDictionaries:''
 	category:'System-Support'
 !
@@ -1039,6 +1040,7 @@
     "Created: 20.6.1997 / 16:58:28 / cg"
 ! !
 
+
 !Smalltalk class methodsFor:'browsing'!
 
 browseAllCallsOn:aSelectorSymbol
@@ -2388,10 +2390,10 @@
     |p t new|
 
     (self fileIn:aFilename) ifFalse:[
-        (self fileInClassLibrary:aFilename) ifFalse:[
-            self warn:'Failed to load the package ', packageId printString.
-            ^ false.
-        ]
+	(self fileInClassLibrary:aFilename) ifFalse:[
+	    self warn:'Failed to load the package ', packageId printString.
+	    ^ false.
+	]
     ].
 
     new := (p := Project projectWithId:packageId) isNil.
@@ -5890,14 +5892,9 @@
     "same as fileIn:, but do not output 'compiled...'-messages on Transcript.
      Main use is during startup."
 
-    |wasSilent|
-
-    wasSilent := self silentLoading:true.
-    [
+    self silentlyLoadingDo:[
 	self fileIn:aFilename
-    ] ensure:[
-	self silentLoading:wasSilent
-    ]
+    ].
 ! !
 
 !Smalltalk class methodsFor:'system management-files'!
@@ -6090,6 +6087,22 @@
     "
 !
 
+findPackageDirectoryForPackage:aPackage
+    "find a packages directory along a number of standard places"
+
+    |relDir|
+
+    relDir := Smalltalk relativePackagePathForPackage:aPackage.
+    relDir asFilename isAbsolute ifTrue:[^ relDir].
+
+    ^ Smalltalk getPackageFileName:relDir.
+
+    "
+     Smalltalk findPackageDirectoryForPackage:'stx:libview/resources'
+     Smalltalk findPackageDirectoryForPackage:'stx:libview'
+    "
+!
+
 flushPathCaches
     "{ Pragma: +optSpace }"
 
@@ -6797,6 +6810,25 @@
     ].
 !
 
+relativePackagePathForPackage:aPackage
+    |path|
+
+    PackageToPathMapping notNil ifTrue:[
+	path := PackageToPathMapping at:aPackage ifAbsent:nil.
+	PackageToPathMapping notNil ifTrue:[^ path].
+    ].
+    ^ aPackage copyReplaceAll:$: with:$/.
+
+    "
+     PackageToPathMapping := Dictionary new.
+     PackageToPathMapping at:'expeccoNET:server' put:'expeccoNET_oldVersion/server'.
+     PackageToPathMapping at:'expeccoNET:server/ui' put:'expeccoNET_oldVersion/server/ui'.
+
+     Smalltalk relativePackagePathForPackage:'stx:libview/resources'
+     Smalltalk relativePackagePathForPackage:'stx:libview'
+    "
+!
+
 resourceDirectoryForPackage:aPackage
     "given a packageID, return the path to its resource directory;
      nil if not found."
@@ -7564,14 +7596,15 @@
 !Smalltalk class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Smalltalk.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Smalltalk.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Smalltalk.st,v 1.949 2011-03-23 16:26:18 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.952 2011/05/14 08:10:16 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Smalltalk.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Smalltalk.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
+
--- a/SmalltalkChunkFileSourceReader.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SmalltalkChunkFileSourceReader.st	Wed Jun 08 22:53:07 2011 +0100
@@ -47,15 +47,15 @@
 !SmalltalkChunkFileSourceReader class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SmalltalkChunkFileSourceReader.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SmalltalkChunkFileSourceReader.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/SmalltalkChunkFileSourceReader.st,v 1.5 2009-10-08 11:56:01 fm Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/SmalltalkChunkFileSourceReader.st,v 1.5 2009/10/08 11:56:01 fm Exp §'
 !
 
 version_SVN
-    ^ '$Id: SmalltalkChunkFileSourceReader.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SmalltalkChunkFileSourceReader.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -66,3 +66,4 @@
 
 
 
+
--- a/SmalltalkChunkFileSourceWriter.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SmalltalkChunkFileSourceWriter.st	Wed Jun 08 22:53:07 2011 +0100
@@ -505,17 +505,18 @@
 !SmalltalkChunkFileSourceWriter class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SmalltalkChunkFileSourceWriter.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SmalltalkChunkFileSourceWriter.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/SmalltalkChunkFileSourceWriter.st,v 1.12 2009-10-02 14:30:07 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/SmalltalkChunkFileSourceWriter.st,v 1.12 2009/10/02 14:30:07 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: SmalltalkChunkFileSourceWriter.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SmalltalkChunkFileSourceWriter.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
 
 
+
--- a/SmalltalkLanguage.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SmalltalkLanguage.st	Wed Jun 08 22:53:07 2011 +0100
@@ -227,14 +227,15 @@
 !SmalltalkLanguage class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SmalltalkLanguage.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SmalltalkLanguage.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/SmalltalkLanguage.st,v 1.15 2011-01-30 14:20:27 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/SmalltalkLanguage.st,v 1.15 2011/01/30 14:20:27 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: SmalltalkLanguage.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SmalltalkLanguage.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
+
--- a/StandaloneStartup.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/StandaloneStartup.st	Wed Jun 08 22:53:07 2011 +0100
@@ -95,8 +95,292 @@
     Verbose := false.
 ! !
 
+!StandaloneStartup class methodsFor:'debugging support'!
+
+dumpCoverageInformation
+    "if the --coverage argument was given, dump that information now.
+     This is invoked via an exit block, when smalltalk terminates"
+
+    "/ count instrumented vs. non-instrumented classes
+    |nClasses nMethods 
+     locOverall locExecuted locUnexecuted locInstrumented locUninstrumented
+     locCovered locUncovered
+     nInstrumentedClasses nUninstrumentedClasses nPartiallyInstrumentedClasses
+     nInstrumentedMethods nUninstrumentedMethods 
+     nClassesCompletelyCovered nClassesPartiallyCovered nClassesUncovered
+     nMethodsCompletelyCovered nMethodsPartiallyCovered nMethodsUncovered|
+
+    nInstrumentedClasses := nUninstrumentedClasses := nPartiallyInstrumentedClasses := 0.
+    nInstrumentedMethods := nUninstrumentedMethods := 0.
+    nClasses := nMethods := 0.
+    locOverall := locCovered := locUncovered := 0.
+    locInstrumented := locUninstrumented := 0.
+    locExecuted := locUnexecuted := 0.
+    nClassesCompletelyCovered := nClassesPartiallyCovered := nClassesUncovered := 0.
+    nMethodsCompletelyCovered := nMethodsPartiallyCovered := nMethodsUncovered := 0.
+
+    Smalltalk allClassesDo:[:eachClass |
+        |nInstrumentedMethodsInClass nUninstrumentedMethodsInClass
+         nMethodsCompletelyCoveredInClass nMethodsPartiallyCoveredInClass nMethodsUncoveredInClass
+         locInstrumentedMethodsInClass locUninstrumentedMethodsInClass
+         locExecutedInClass locUnexecutedInClass locPartiallyExecutedInClass|
+
+        nMethodsCompletelyCoveredInClass := nMethodsPartiallyCoveredInClass := nMethodsUncoveredInClass := 0.
+        nInstrumentedMethodsInClass := nUninstrumentedMethodsInClass := 0.
+        locInstrumentedMethodsInClass := locUninstrumentedMethodsInClass := 0.
+        eachClass instAndClassMethodsDo:[:mthd |
+            |locMethod|
+
+            nMethods := nMethods + 1.
+            locMethod := 0. "/ mthd source asCollectionOfLines size.
+
+            mthd isInstrumented ifTrue:[
+                nInstrumentedMethodsInClass := nInstrumentedMethodsInClass + 1.
+                locInstrumentedMethodsInClass := locInstrumentedMethodsInClass + locMethod.
+                mthd hasBeenCalled ifTrue:[
+                    mthd haveAllBlocksBeenExecuted ifTrue:[
+                        "/ fully covered
+                        nMethodsCompletelyCoveredInClass := nMethodsCompletelyCoveredInClass + 1
+                    ] ifFalse:[
+                        "/ partially covered
+                        nMethodsPartiallyCoveredInClass := nMethodsPartiallyCoveredInClass + 1
+                    ]
+                ] ifFalse:[
+                    "/ completely uncovered
+                    nMethodsUncoveredInClass := nMethodsUncoveredInClass + 1
+                ].
+            ] ifFalse:[
+                nUninstrumentedMethodsInClass := nUninstrumentedMethodsInClass + 1.
+                locUninstrumentedMethodsInClass := locUninstrumentedMethodsInClass + locMethod.
+            ].
+        ].
+
+        nInstrumentedMethods := nInstrumentedMethods + nInstrumentedMethodsInClass.
+        nUninstrumentedMethods := nUninstrumentedMethods + nUninstrumentedMethodsInClass.
+
+        nMethodsCompletelyCovered := nMethodsCompletelyCovered + nMethodsCompletelyCoveredInClass.
+        nMethodsUncovered := nMethodsUncovered + nMethodsUncoveredInClass.
+        nMethodsPartiallyCovered := nMethodsPartiallyCovered + nMethodsPartiallyCoveredInClass.
+
+        nClasses := nClasses + 1.
+        nInstrumentedMethodsInClass == 0 ifTrue:[
+            nUninstrumentedMethodsInClass == 0 ifTrue:[
+                "/ empty class - do not count
+            ] ifFalse:[
+                "/ completely uninstrumented
+                nUninstrumentedClasses := nUninstrumentedClasses + 1.
+            ].
+        ] ifFalse:[
+            nUninstrumentedMethodsInClass == 0 ifTrue:[
+                "/ completely instrumented
+                nInstrumentedClasses := nInstrumentedClasses + 1.
+            ] ifFalse:[
+                "/ part/part
+                nPartiallyInstrumentedClasses := nPartiallyInstrumentedClasses + 1.
+            ].
+        ].
+
+        nMethodsCompletelyCoveredInClass > 0 ifTrue:[
+            nClassesCompletelyCovered := nClassesCompletelyCovered + 1.
+        ] ifFalse:[
+            nMethodsPartiallyCoveredInClass > 0 ifTrue:[
+                nClassesPartiallyCovered := nClassesPartiallyCovered + 1.
+            ] ifFalse:[
+                nClassesUncovered := nClassesUncovered + 1.
+            ].
+        ].
+    ].
+    
+    Stderr nextPutLine:'Coverage info:'.
+    Stderr nextPutLine:('  Classes, overall: %1' bindWith:nClasses).
+    Stderr nextPutLine:('  Classes, instrumented: %1 (%2%%)' bindWith:nInstrumentedClasses with:((nInstrumentedClasses / nClasses * 100) asFixedPoint:1)).
+    Stderr nextPutLine:('  Classes, uninstrumented: %1 (%2%%)' bindWith:nUninstrumentedClasses with:((nUninstrumentedClasses / nClasses * 100) asFixedPoint:1)).
+    Stderr nextPutLine:('  Classes, partially instrumented: %1 (%2%%)' bindWith:nPartiallyInstrumentedClasses with:((nPartiallyInstrumentedClasses / nClasses * 100) asFixedPoint:1)).
+    Stderr nextPutLine:('  Classes, covered: %1 (%2%%)' bindWith:nClassesCompletelyCovered with:((nClassesCompletelyCovered / nClasses * 100) asFixedPoint:1)).
+    Stderr nextPutLine:('  Classes, partially covered: %1 (%2%%)' bindWith:nClassesPartiallyCovered with:((nClassesPartiallyCovered / nClasses * 100) asFixedPoint:1)).
+    Stderr nextPutLine:('  Classes, uncovered: %1 (%2%%)' bindWith:nClassesUncovered with:((nClassesUncovered / nClasses * 100) asFixedPoint:1)).
+    Stderr nextPutLine:('  Methods, overall: %1' bindWith:nMethods).
+    Stderr nextPutLine:('  Methods, instrumented: %1 (%2%%)' bindWith:nInstrumentedMethods with:((nInstrumentedMethods / nMethods * 100) asFixedPoint:1)).
+    Stderr nextPutLine:('  Methods, uninstrumented: %1 (%2%%)' bindWith:nUninstrumentedMethods with:((nUninstrumentedMethods / nMethods * 100) asFixedPoint:1)).
+    Stderr nextPutLine:('  Methods, covered: %1 (%2%%)' bindWith:nMethodsCompletelyCovered with:((nMethodsCompletelyCovered / nMethods * 100) asFixedPoint:1)).
+    Stderr nextPutLine:('  Methods, partially covered: %1 (%2%%)' bindWith:nMethodsPartiallyCovered with:((nMethodsPartiallyCovered / nMethods * 100) asFixedPoint:1)).
+    Stderr nextPutLine:('  Methods, uncovered: %1 (%2%%)' bindWith:nMethodsUncovered with:((nMethodsUncovered / nMethods * 100) asFixedPoint:1)).
+
+    "
+     self dumpCoverageInformation
+    "
+
+    "Created: / 24-05-2011 / 17:08:46 / cg"
+    "Modified: / 25-05-2011 / 00:10:51 / cg"
+!
+
+handleCoverageMeasurementOptionsFromArguments:argv
+    "handle the coverage measurement command line argument:
+        --coverage 
+            [+/-]package: <package-pattern>       ... do / do not measure in package (regex match)
+            [+/-]class: <class-pattern>           ... do / do not measure in class (regex match, including nameSpace)
+            [+/-]method: <className>#<methodName> ... do / do not measure in method
+
+     adds instrumentation code to all selected methods.
+    "
+
+    |idx nextArg done doAdd addNames addMethodNames
+     anyItem nMethodsInstrumented checkClass checkMethod coverageAction
+     includedPackageNames excludedPackageNames 
+     includedClassNames excludedClassNames 
+     includedMethodNames excludedMethodNames|
+
+"
+ self handleCoverageMeasurementOptionsFromArguments:#('foo' '--coverage' '+package:' 'expeccoNET:*' '-class:' 'ExpeccoNET::ML' 'ExpeccoNET::LicenseString'  )
+ self handleCoverageMeasurementOptionsFromArguments:#('foo' '--coverage' '+package:' 'stx:*')
+ self handleCoverageMeasurementOptionsFromArguments:#('foo' '--coverage' '+package:' 'stx:libtool*')
+ self handleCoverageMeasurementOptionsFromArguments:#('foo' '--coverage' '+class:' 'Tools::*' '-class:' 'Tools::StringSearchTool' )
+ self handleCoverageMeasurementOptionsFromArguments:#('foo' '--coverage' '+class:' 'Tools::*Browser*'  )
+ self handleCoverageMeasurementOptionsFromArguments:#('foo' '--coverage' '+method:' 'String#at:put:' 'String#at:')
+"
+    includedPackageNames := Set new.
+    excludedPackageNames := Set new.
+    includedClassNames := Set new.
+    excludedClassNames := Set new.
+    includedMethodNames := Dictionary new.
+    excludedMethodNames := Dictionary new.
+
+    idx := argv indexOfAny:#('--coverage').
+    idx == 0 ifTrue:[^ self ].
+
+    addNames := [:collection |
+            [ 
+                nextArg := argv at:idx ifAbsent:nil.
+                nextArg notNil 
+                    and:[ ((nextArg startsWith:'+') or:[(nextArg startsWith:'-')]) not
+                    and:[ (nextArg endsWith:':') not ]]
+            ] whileTrue:[
+                collection add:nextArg.
+                anyItem := true.
+                idx := idx + 1.
+            ].
+        ].
+
+    addMethodNames := [:collection |
+            |idx2 className selector|
+
+            [ 
+                nextArg := argv at:idx ifAbsent:nil.
+                nextArg notNil 
+                    and:[ ((nextArg startsWith:'+') or:[(nextArg startsWith:'-')]) not]
+            ] whileTrue:[
+                idx2 := nextArg indexOf:$#.
+                className := nextArg copyTo:idx2-1.
+                selector := nextArg copyFrom:idx2+1.
+                (collection at:className ifAbsentPut:[Set new]) add:selector.
+                anyItem := true.
+                idx := idx + 1.
+            ].
+        ].
+
+    idx := idx + 1.
+    done := false.
+
+    [ 
+        nextArg := argv at:idx ifAbsent:nil.
+        done not 
+            and:[ nextArg notNil 
+            and:[ ((nextArg startsWith:'+') or:[(nextArg startsWith:'-')]) ]]
+    ] whileTrue:[
+        idx := idx + 1.
+        doAdd := nextArg first == $+.
+        nextArg := nextArg copyFrom:2.
+        nextArg = 'package:' ifTrue:[
+            addNames value:(doAdd ifTrue:includedPackageNames ifFalse:excludedPackageNames). 
+        ] ifFalse:[
+            nextArg = 'class:' ifTrue:[
+                addNames value:(doAdd ifTrue:includedClassNames ifFalse:excludedClassNames). 
+            ] ifFalse:[
+                nextArg = 'method:' ifTrue:[
+                    addMethodNames value:(doAdd ifTrue:includedMethodNames ifFalse:excludedMethodNames).
+                ] ifFalse:[
+                    done := true
+                ]
+            ].
+        ].
+    ].
+
+    anyItem ifFalse:[ ^ self ].
+    nMethodsInstrumented := 0.
+
+    coverageAction := [:aMethod |
+            ((aMethod sends:#subclassResponsibility) not
+            and:[ aMethod hasPrimitiveCode not ]) ifTrue:[
+                Transcript show:'instrumenting '; showCR:aMethod.
+                aMethod mclass recompile:aMethod selector usingCompilerClass:InstrumentingCompiler.
+                nMethodsInstrumented := nMethodsInstrumented + 1.
+            ] ifFalse:[
+                Transcript show:'skipped '; showCR:aMethod.
+            ].
+        ].
+
+    checkMethod := [:someMethod |
+            ((excludedMethodNames at:someMethod mclass name ifAbsent:#()) includes:someMethod selector) ifFalse:[
+                coverageAction value:someMethod
+            ].
+        ].
+
+    checkClass := [:someClass |
+            someClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
+                checkMethod value:mthd
+            ]
+        ].
+
+    Smalltalk allClassesDo:[:eachClass |
+        (includedPackageNames contains:[:somePackagePattern| somePackagePattern match:(eachClass package)]) ifTrue:[
+            (excludedPackageNames contains:[:somePackagePattern| somePackagePattern match:(eachClass package)]) ifFalse:[
+                (excludedClassNames contains:[:someClassPattern| someClassPattern match:(eachClass name)]) ifFalse:[
+                    checkClass value:eachClass
+                ]
+            ]
+        ] ifFalse:[
+            (includedClassNames contains:[:someClassPattern| someClassPattern match:(eachClass name)]) ifTrue:[
+                (excludedClassNames contains:[:someClassPattern| someClassPattern match:(eachClass name)]) ifFalse:[
+                    checkClass value:eachClass
+                ]
+            ] ifFalse:[ 
+                (Array with:eachClass theMetaclass with:eachClass) do:[:clsOrMeta |
+                    |selectors|
+
+                    selectors := includedMethodNames at:clsOrMeta name ifAbsent:nil.
+                    selectors notEmptyOrNil ifTrue:[
+                        selectors do:[:eachSelector |
+                            coverageAction value:(clsOrMeta compiledMethodAt:eachSelector asSymbol).
+                        ].
+                    ].
+                ].
+            ].
+        ].
+    ].
+
+    nMethodsInstrumented ifTrue:[
+        Transcript show:('%1 methods instrumented' bindWith:nMethodsInstrumented).
+        Smalltalk addExitBlock:[ self dumpCoverageInformation ].
+    ].
+
+    "Created: / 24-05-2011 / 16:30:54 / cg"
+    "Modified: / 24-05-2011 / 18:16:29 / cg"
+! !
+
 !StandaloneStartup class methodsFor:'defaults'!
 
+allowCoverageMeasurementOption
+    "enable/disable the --measureCoverage startup options.
+     The default is false, so standAlone apps do not support coverage measurements by default.
+     Can be redefined in subclasses to enable it 
+     (but will need the libcomp and possibly the programming/oom packages to be present)"
+
+    ^ Smalltalk isStandAloneApp not
+
+    "Created: / 24-05-2011 / 16:16:15 / cg"
+    "Modified: / 25-05-2011 / 00:21:18 / cg"
+!
+
 allowDebugOption
     "enable/disable the --debug startup option.
      The default is now false, so standAlone apps are closed by default.
@@ -450,9 +734,91 @@
 
 !StandaloneStartup class methodsFor:'startup'!
 
+handleRCFileOptionsFromArguments:argv
+    "handle rc-file command line arguments:
+        --rcFileName ......... define a startup rc-file
+    "
+
+    |idx nextArg rcFilename|
+
+    idx := argv indexOf:'--rcFileName'.
+    idx ~~ 0 ifTrue:[
+        nextArg := argv at:(idx + 1) ifAbsent:nil.
+        (nextArg notNil and:[ (nextArg startsWith:'-') not ]) ifTrue:[
+            rcFilename := nextArg.
+            argv removeAtIndex:idx+1; removeAtIndex:idx.
+        ]
+    ].
+
+    rcFilename isNil ifTrue:[
+        rcFilename := self startupFilename.
+    ].
+    rcFilename asFilename exists ifTrue:[
+        self verboseInfo:('reading ',rcFilename,'...').
+        rcFilename isAbsolute ifFalse:[
+            rcFilename := OperatingSystem pathOfSTXExecutable asFilename directory constructString:rcFilename.
+        ].
+        Smalltalk secureFileIn:rcFilename
+    ].
+
+    "Created: / 24-05-2011 / 16:13:34 / cg"
+!
+
+handleScriptingOptionsFromArguments:argv
+    "handle scripting command line argument:
+        --scripting portNr ... start a scripting server
+        --allowHost host ..... add host to the allowed scripting hosts
+    "
+
+    |scripting idx nextArg portNr allowedScriptingHosts|
+
+    scripting := false.
+
+    idx := argv indexOfAny:#('--scripting').
+    idx ~~ 0 ifTrue:[
+        nextArg := argv at:(idx + 1) ifAbsent:nil.
+        (nextArg notNil and:[ (nextArg startsWith:'-') not ]) ifTrue:[
+            portNr := nextArg asInteger.
+            argv removeAtIndex:idx+1.
+        ].
+        argv removeAtIndex:idx.
+
+        scripting := true
+    ].
+
+    allowedScriptingHosts := OrderedCollection new.
+
+    idx := argv indexOfAny:#('--allowHost').
+    [idx ~~ 0] whileTrue:[
+        nextArg := argv at:(idx + 1) ifAbsent:nil.
+        nextArg isNil ifTrue:[
+            self usage.
+            AbortOperationRequest raise.
+        ].
+        allowedScriptingHosts add:nextArg.
+        idx := argv indexOfAny:#('--allowHost').
+    ].
+
+    scripting ifTrue:[
+        self verboseInfo:('scripting on').
+        STXScriptingServer notNil ifTrue:[
+            allowedScriptingHosts do:[:eachHost | STXScriptingServer allowHost:eachHost ].
+
+            "/ scripting on port/stdin_out/8008
+            self verboseInfo:('start scripting').
+            STXScriptingServer startAt:portNr
+        ] ifFalse:[
+            self verboseInfo:('missing STXScriptingServer class').
+        ].
+    ].
+
+    "Created: / 24-05-2011 / 16:12:02 / cg"
+    "Modified: / 24-05-2011 / 17:40:26 / cg"
+!
+
 loadPatch:fileName
     self verboseInfo:('loading patch: ',fileName baseName).
-    Smalltalk fileIn:fileName pathName.
+    Smalltalk silentFileIn:fileName pathName.
 !
 
 loadPatches
@@ -529,7 +895,7 @@
         --allowHost host ..... add host to the allowed scripting hosts
     "
 
-    |idx rcFilename nextArg debugging scripting allowedScriptingHosts portNr|
+    |idx debugging|
 
 "/    Smalltalk beHeadless:true.
 "/    OperatingSystem disableSignal:(OperatingSystem sigHUP).
@@ -562,72 +928,19 @@
         self setupToolsForNoDebug.
     ].
 
-    self suppressRCFileReading ifFalse:[
-        idx := argv indexOf:'--rcFileName'.
-        idx ~~ 0 ifTrue:[
-            nextArg := argv at:(idx + 1) ifAbsent:nil.
-            (nextArg notNil and:[ (nextArg startsWith:'-') not ]) ifTrue:[
-                rcFilename := nextArg.
-                argv removeAtIndex:idx+1; removeAtIndex:idx.
-            ]
-        ].
-
-        rcFilename isNil ifTrue:[
-            rcFilename := self startupFilename.
-        ].
-        rcFilename asFilename exists ifTrue:[
-            self verboseInfo:('reading ',rcFilename,'...').
-            rcFilename isAbsolute ifFalse:[
-                rcFilename := OperatingSystem pathOfSTXExecutable asFilename directory constructString:rcFilename.
-            ].
-            Smalltalk secureFileIn:rcFilename
-        ].
+    (self suppressRCFileReading) ifFalse:[
+        self handleRCFileOptionsFromArguments:argv.
     ].
-
-    scripting := false.
     (self allowScriptingOption) ifTrue:[
-        idx := argv indexOfAny:#('--scripting').
-        idx ~~ 0 ifTrue:[
-            nextArg := argv at:(idx + 1) ifAbsent:nil.
-            (nextArg notNil and:[ (nextArg startsWith:'-') not ]) ifTrue:[
-                portNr := nextArg asInteger.
-                argv removeAtIndex:idx+1.
-            ].
-            argv removeAtIndex:idx.
-
-            scripting := true
-        ].
-
-        allowedScriptingHosts := OrderedCollection new.
-
-        idx := argv indexOfAny:#('--allowHost').
-        [idx ~~ 0] whileTrue:[
-            nextArg := argv at:(idx + 1) ifAbsent:nil.
-            nextArg isNil ifTrue:[
-                self usage.
-                AbortOperationRequest raise.
-            ].
-            allowedScriptingHosts add:nextArg.
-            idx := argv indexOfAny:#('--allowHost').
-        ].
+        self handleScriptingOptionsFromArguments:argv.
     ].
-
-    scripting ifTrue:[
-        self verboseInfo:('scripting on').
-        STXScriptingServer notNil ifTrue:[
-            allowedScriptingHosts do:[:eachHost | STXScriptingServer allowHost:eachHost ].
-
-            "/ scripting on port/stdin_out/8008
-            self verboseInfo:('start scripting').
-            STXScriptingServer startAt:portNr
-        ] ifFalse:[
-            self verboseInfo:('missing STXScriptingServer class').
-        ].
+    (self allowCoverageMeasurementOption) ifTrue:[
+        self handleCoverageMeasurementOptionsFromArguments:argv.
     ].
 
     ^ true
 
-    "Modified: / 15-11-2010 / 14:17:34 / cg"
+    "Modified: / 24-05-2011 / 16:14:45 / cg"
 !
 
 setupToolsForDebug
@@ -735,12 +1048,18 @@
     self allowDebugOption ifTrue:[
         Stderr nextPutLine:'  --debug ................. enable Debugger'.
     ].
+    self allowCoverageMeasurementOption ifTrue:[
+        Stderr nextPutLine:'  --coverage .............. turn on coverage measurement'.
+        Stderr nextPutLine:'     [+/-]package: pattern ...  - include/exclude packages'.
+        Stderr nextPutLine:'     [+/-]class: pattern ...    - include/exclude classes'.
+        Stderr nextPutLine:'     [+/-]method: cls#sel ...   - include/exclude methods'.
+    ].
     self suppressRCFileReading ifFalse:[
         Stderr nextPutLine:'  --rcFileName file ....... execute code from file on startup (default: ',self startupFilename,')'.
     ].
 
     "Created: / 19-09-2006 / 16:37:55 / cg"
-    "Modified: / 06-10-2010 / 09:52:18 / cg"
+    "Modified: / 24-05-2011 / 17:23:18 / cg"
 ! !
 
 !StandaloneStartup class methodsFor:'startup-to be redefined'!
@@ -812,15 +1131,15 @@
 !StandaloneStartup class methodsFor:'documentation'!
 
 version
-    ^ '$Id: StandaloneStartup.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: StandaloneStartup.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/StandaloneStartup.st,v 1.59 2011-03-23 16:05:22 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/StandaloneStartup.st,v 1.64 2011/05/24 22:21:26 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: StandaloneStartup.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: StandaloneStartup.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 StandaloneStartup initialize!
@@ -831,3 +1150,4 @@
 
 
 
+
--- a/Stream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Stream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -456,11 +456,15 @@
      Otherwise raise a notification, which is ignored if not handled; 
      otherwise return nil."
 
-    signalAtEnd == true ifTrue:[
+    |shouldSignalAtEnd|
+
+    shouldSignalAtEnd := self signalAtEnd.
+
+    shouldSignalAtEnd == true ifTrue:[
         "raise - a hard error..."
         ^ EndOfStreamError raiseRequestFrom:self
     ].
-    signalAtEnd == false ifTrue:[
+    shouldSignalAtEnd == false ifTrue:[
         "never raise ..."
         ^ nil
     ].
@@ -2530,12 +2534,22 @@
 nextLine
     "return the characters upTo (but excluding) the next cr (carriage return)
      character (i.e. read a single line of text).
+     If the previous-to-last character is a cr, this is also removed,
+     so its possible to read alien (i.e. ms-dos) text as well.
      Added for protocol compatibility with externalStreams."
 
+    |answerStream|
+
     self atEnd ifTrue:[
         ^ self pastEndRead
     ].
-    ^ self upTo:Character cr.
+    answerStream := WriteStream on:(self contentsSpecies new).
+    self upTo:Character cr into:answerStream.
+    (answerStream size > 0 and:[answerStream last = Character return]) ifTrue:[
+        answerStream backStep.
+    ].
+    ^ answerStream contents
+        
 
     "Modified: / 19.5.1998 / 17:26:25 / cg"
 ! !
@@ -3201,15 +3215,15 @@
 !Stream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Stream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Stream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Stream.st,v 1.186 2010-08-19 13:43:26 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Stream.st,v 1.189 2011/05/30 08:56:49 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Stream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Stream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Stream initialize!
@@ -3220,3 +3234,4 @@
 
 
 
+
--- a/StreamError.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/StreamError.st	Wed Jun 08 22:53:07 2011 +0100
@@ -53,15 +53,15 @@
 !StreamError class methodsFor:'documentation'!
 
 version
-    ^ '$Id: StreamError.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: StreamError.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/StreamError.st,v 1.7 2010-02-04 11:42:34 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/StreamError.st,v 1.7 2010/02/04 11:42:34 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: StreamError.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: StreamError.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -69,3 +69,4 @@
 
 
 
+
--- a/String.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/String.st	Wed Jun 08 22:53:07 2011 +0100
@@ -3716,15 +3716,15 @@
 !String class methodsFor:'documentation'!
 
 version
-    ^ '$Id: String.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: String.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/String.st,v 1.275 2011-01-12 13:51:12 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/String.st,v 1.275 2011/01/12 13:51:12 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: String.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: String.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -3733,3 +3733,4 @@
 
 
 
+
--- a/StringCollection.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/StringCollection.st	Wed Jun 08 22:53:07 2011 +0100
@@ -312,6 +312,12 @@
     self do:[:l | l notNil ifTrue:[^ l encoding]].
     "/ sigh
     ^ #'unicode'
+!
+
+stringSize
+    ^ self inject:0 into:[:sizeSoFar :eachLine | 
+            sizeSoFar + eachLine size + 1
+        ]
 ! !
 
 !StringCollection methodsFor:'searching'!
@@ -401,9 +407,14 @@
 !StringCollection class methodsFor:'documentation'!
 
 version
-    ^ '$Id: StringCollection.st 10517 2010-04-26 18:26:38Z vranyj1 $'
+    ^ '$Id: StringCollection.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: StringCollection.st 10517 2010-04-26 18:26:38Z vranyj1 $'
+    ^ '$Id: StringCollection.st 10643 2011-06-08 21:53:07Z vranyj1 $'
+!
+
+version_CVS
+    ^ 'Header: /cvs/stx/stx/libbasic/StringCollection.st,v 1.41 2011/04/11 09:17:14 stefan Exp '
 ! !
+
--- a/SubclassResponsibilityError.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SubclassResponsibilityError.st	Wed Jun 08 22:53:07 2011 +0100
@@ -61,17 +61,18 @@
 !SubclassResponsibilityError class methodsFor:'documentation'!
 
 version
-    ^ '$Id: SubclassResponsibilityError.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SubclassResponsibilityError.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/SubclassResponsibilityError.st,v 1.8 2010-12-19 11:59:59 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/SubclassResponsibilityError.st,v 1.8 2010/12/19 11:59:59 cg Exp §'
 !
     
 version_SVN
-    ^ '$Id: SubclassResponsibilityError.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SubclassResponsibilityError.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 SubclassResponsibilityError initialize!
 
 
+
--- a/Symbol.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Symbol.st	Wed Jun 08 22:53:07 2011 +0100
@@ -717,16 +717,17 @@
 !Symbol class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Symbol.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Symbol.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Symbol.st,v 1.91 2010-09-21 06:57:35 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.91 2010/09/21 06:57:35 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Symbol.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Symbol.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
 
+
--- a/SystemChangeNotifier.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/SystemChangeNotifier.st	Wed Jun 08 22:53:07 2011 +0100
@@ -113,11 +113,11 @@
 !SystemChangeNotifier class methodsFor:'documentation'!
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/SystemChangeNotifier.st,v 1.4 2010-04-14 16:13:57 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/SystemChangeNotifier.st,v 1.4 2010/04/14 16:13:57 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: SystemChangeNotifier.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: SystemChangeNotifier.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -126,3 +126,4 @@
 
 
 
+
--- a/Time.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Time.st	Wed Jun 08 22:53:07 2011 +0100
@@ -783,15 +783,15 @@
 !Time class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Time.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Time.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Time.st,v 1.89 2011-01-24 19:56:23 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Time.st,v 1.89 2011/01/24 19:56:23 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Time.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Time.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -800,3 +800,4 @@
 
 
 
+
--- a/TimeoutNotification.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/TimeoutNotification.st	Wed Jun 08 22:53:07 2011 +0100
@@ -43,7 +43,7 @@
 !TimeoutNotification class methodsFor:'documentation'!
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/TimeoutNotification.st,v 1.1 2010-08-20 10:16:29 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/TimeoutNotification.st,v 1.1 2010/08/20 10:16:29 cg Exp '
 !
 
 version_SVN
@@ -52,3 +52,4 @@
 
 
 
+
--- a/Timestamp.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Timestamp.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2640,15 +2640,15 @@
 !Timestamp class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Timestamp.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Timestamp.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Timestamp.st,v 1.136 2011-01-24 19:59:15 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Timestamp.st,v 1.136 2011/01/24 19:59:15 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: Timestamp.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Timestamp.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Timestamp initialize!
@@ -2659,3 +2659,4 @@
 
 
 
+
--- a/UndefinedObject.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/UndefinedObject.st	Wed Jun 08 22:53:07 2011 +0100
@@ -691,15 +691,15 @@
 !UndefinedObject class methodsFor:'documentation'!
 
 version
-    ^ '$Id: UndefinedObject.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UndefinedObject.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: UndefinedObject.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UndefinedObject.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/UndefinedObject.st,v 1.71 2010-07-28 17:20:51 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/UndefinedObject.st,v 1.71 2010/07/28 17:20:51 cg Exp '
 ! !
 
 UndefinedObject initialize!
@@ -707,3 +707,4 @@
 
 
 
+
--- a/UninterpretedBytes.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/UninterpretedBytes.st	Wed Jun 08 22:53:07 2011 +0100
@@ -2902,15 +2902,15 @@
 !UninterpretedBytes class methodsFor:'documentation'!
 
 version
-    ^ '$Id: UninterpretedBytes.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UninterpretedBytes.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/UninterpretedBytes.st,v 1.77 2010-07-19 13:58:34 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/UninterpretedBytes.st,v 1.77 2010/07/19 13:58:34 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: UninterpretedBytes.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UninterpretedBytes.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -2919,3 +2919,4 @@
 
 
 
+
--- a/UnixFilename.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/UnixFilename.st	Wed Jun 08 22:53:07 2011 +0100
@@ -207,15 +207,15 @@
 !UnixFilename class methodsFor:'documentation'!
 
 version
-    ^ '$Id: UnixFilename.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UnixFilename.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/UnixFilename.st,v 1.16 2009-10-28 14:02:12 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/UnixFilename.st,v 1.16 2009/10/28 14:02:12 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: UnixFilename.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UnixFilename.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -223,3 +223,4 @@
 
 
 
+
--- a/UnixOperatingSystem.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/UnixOperatingSystem.st	Wed Jun 08 22:53:07 2011 +0100
@@ -6781,6 +6781,207 @@
     "Created: 23.12.1995 / 14:19:20 / cg"
 !
 
+getNetworkAddressInfo
+    "return a dictionary filled with
+        key -> name of interface
+        value -> the socket adress of the interface
+     for each interface"
+
+    |returnArray addressArray nameArray noOfIf retDictionary error retIndex|
+
+    noOfIf := 0.
+
+%{
+#if defined(LINUX)
+# include <ifaddrs.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <netpacket/packet.h>
+# include <net/ethernet.h> /* the L2 protocols */
+
+    struct ifaddrs *ifap, *ifaLoop;
+    int n_ifa = 0;
+    int retI = 0;
+    OBJ t;
+
+    if (getifaddrs(&ifap) < 0) {
+        error = __MKSTRING("getifaddrs() failed");
+        goto out;
+    }
+
+    for (ifaLoop = ifap; ifaLoop != 0; ifaLoop = ifaLoop->ifa_next) n_ifa++;
+
+    returnArray = __ARRAY_NEW_INT(n_ifa*5);
+
+    if (returnArray == nil) {
+        /* Creating a string wouldn't work here */
+        error = @symbol(allocationFailure);
+        goto bad;
+    }
+
+    for (ifaLoop = ifap; ifaLoop != 0; ifaLoop = ifaLoop->ifa_next) {
+        int family, len;
+
+        if (ifaLoop->ifa_addr == 0)
+               continue;
+        family = ifaLoop->ifa_addr->sa_family;
+        switch (family) {
+        case AF_INET:
+            len = sizeof(struct sockaddr_in);
+            break;
+        case AF_INET6:
+            len = sizeof(struct sockaddr_in6);
+            break;
+#if 0
+        case AF_PACKET:
+            len = sizeof(sockaddr_ll);
+            break;
+#endif
+        default:
+            /* skip */
+            continue;
+        };
+        t = __MKSTRING(ifaLoop->ifa_name);
+        __arrayVal(returnArray)[retI++] = t; __STORE(returnArray, t);
+        t = __MKUINT(ifaLoop->ifa_flags);
+        __arrayVal(returnArray)[retI++] = t; __STORE(returnArray, t);
+        t = __MKBYTEARRAY((char *)ifaLoop->ifa_addr, len);
+        __arrayVal(returnArray)[retI++] = t; __STORE(returnArray, t);
+        if (ifaLoop->ifa_netmask != 0) {
+            t = __MKBYTEARRAY((char *)ifaLoop->ifa_netmask, len);
+            __arrayVal(returnArray)[retI] = t; __STORE(returnArray, t);
+        }
+        retI++;
+        if (ifaLoop->ifa_dstaddr != 0) {
+            t = __MKBYTEARRAY((char *)ifaLoop->ifa_dstaddr, len);
+            __arrayVal(returnArray)[retI] = t; __STORE(returnArray, t);
+        }
+        retI++;
+    }
+
+    noOfIf = __mkSmallInteger(n_ifa);
+
+bad:
+    freeifaddrs(ifap);
+
+#elif !defined(__osx__) && defined(SIOCGIFADDR) && defined(SIOCGIFCONF)
+
+    int             afinet_socket = -1;
+
+    struct ifconf   ifc;
+    struct ifreq    *ifr;
+    struct ifreq    ifreq;
+    unsigned char   buf[1024];
+    int             n_ifs, i, countOfIf;
+    OBJ             t;
+
+    /*
+    ** Open an INET socket
+    */
+
+    afinet_socket = socket(AF_INET, SOCK_DGRAM, 0);
+    if (afinet_socket < 0) {
+        goto bad;
+    }
+
+    /*
+    ** Get the list of network interfaces
+    */
+
+    ifc.ifc_len = sizeof (buf);
+    ifc.ifc_buf = (caddr_t) buf;
+
+    if (ioctl (afinet_socket, SIOCGIFCONF, (caddr_t) &ifc) < 0) {
+        close(afinet_socket);
+        error = __MKSTRING("ioctl(SIOCGIFCONF) failed");
+        goto bad;
+    }
+
+    n_ifs = ifc.ifc_len / sizeof (struct ifreq);
+
+    nameArray    = __ARRAY_NEW_INT(n_ifs);
+    addressArray = __ARRAY_NEW_INT(n_ifs);
+
+    if (nameArray == nil || addressArray == nil) {
+        /* Creating a string wouldn/t work here */
+        error = @symbol(allocationFailure);
+        goto bad;
+    }
+
+    /*
+    ** Iterate of the list of the system's netif. Find all
+    ** active interfaces and their ethernet addresses
+    */
+    countOfIf = 0;
+
+    for (i=0, ifr = ifc.ifc_req; i < n_ifs; i++, ifr++) {
+        /*
+        ** Get address for this interface
+        */
+        memset (&ifreq, 0, sizeof(ifreq));
+        memcpy (ifreq.ifr_name, ifr->ifr_name, sizeof(ifr->ifr_name));
+        if (ioctl (afinet_socket, SIOCGIFADDR, &ifreq) >= 0) {
+            t = __MKBYTEARRAY((char *)&ifreq.ifr_addr, sizeof(ifreq.ifr_addr));
+            __arrayVal(addressArray)[countOfIf] = t; __STORE(addressArray, t);
+            t = __MKSTRING(&ifreq.ifr_name);
+            __arrayVal(nameArray)[countOfIf] = t; __STORE(nameArray, t);
+            countOfIf++;
+        } else {
+            fprintf(stderr, "SIOCGIFADDR failed: %s\n", errno);
+        }
+        error = __MKSTRING("ioctl(SIOCGIFCONF) failed");
+    }
+
+    noOfIf = __mkSmallInteger(countOfIf);
+bad:
+    if (afinet_socket >= 0)
+        close(afinet_socket);
+#else
+    error = @symbol(notSupported);
+#endif /* defined(SIOCGIFADDR) */
+out:;
+%}.
+
+    retDictionary := Dictionary new:noOfIf.
+    error notNil ifTrue:[
+        self primitiveFailed:error.
+        "return empty dictionary if proceeding from error"
+        ^  retDictionary.
+    ].
+
+    retIndex := 1.
+
+    1 to:noOfIf do:[:cnt|
+        |name addressBytes set dict|
+
+        name := returnArray at:retIndex.
+        addressBytes := returnArray at:retIndex+2.
+
+        addressBytes notNil ifTrue:[
+            set := retDictionary at:name ifAbsentPut:[Set new].
+            dict := Dictionary new:5.
+            dict at:#flags put:(returnArray at:retIndex+1).
+            dict at:#address put:(SocketAddress fromBytes:addressBytes).
+            addressBytes := returnArray at:retIndex+3.
+            addressBytes notNil ifTrue:[
+                dict at:#netMask put:(SocketAddress fromBytes:addressBytes).
+            ].
+            addressBytes := returnArray at:retIndex+4.
+            addressBytes notNil ifTrue:[
+                dict at:#destAddress put:(SocketAddress fromBytes:addressBytes).
+            ].
+            set add:dict.    
+        ].
+        retIndex := retIndex + 5.
+    ].
+
+    ^ retDictionary
+
+    "
+      OperatingSystem getNetworkAddressInfo
+    "
+!
+
 getNetworkAddresses
     "return a dictionary filled with
 	key -> name of interface
@@ -13106,15 +13307,15 @@
 !UnixOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Id: UnixOperatingSystem.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UnixOperatingSystem.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/UnixOperatingSystem.st,v 1.279 2010-10-29 15:25:37 stefan Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.280 2011/05/12 20:48:56 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: UnixOperatingSystem.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UnixOperatingSystem.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 UnixOperatingSystem initialize!
@@ -13129,3 +13330,4 @@
 
 
 
+
--- a/UserMessage.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/UserMessage.st	Wed Jun 08 22:53:07 2011 +0100
@@ -45,8 +45,46 @@
     the resource mechanism, if the given catalogID is the name of a class;
     i.e.
         (YesNoBox classResources string:'continue')
+
     can now also be written as:
-        (#continue << #YesNoBox) 
+
+        (#continue << YesNoBox) asString
+        (#continue << #YesNoBox >> 'Continue really') asString
+"
+!
+
+examples
+"
+Use a class as catalog:
+                                                                [exBegin]
+        self warn:(#continue << YesNoBox) asString
+                                                                [exEnd]
+Use a class name as catalog:
+                                                                [exBegin]
+        self warn:(#continue << #YesNoBox) asString
+                                                                [exEnd]
+Some default text if the symbol is not present in the catalog:
+                                                                [exBegin]
+        self warn:(#continue << #YesNoBox >> 'Default for continue') asString.
+        self warn:(#continueRRRRRRR << #YesNoBox >> 'Default for continue') asString
+                                                                [exEnd]
+Here we inherit from the top catalog:
+                                                                [exBegin]
+        self information:(Time now printStringFormat:(#TIMEFORMAT << self >> 'Resolved via default %h:%m:%s') asString)
+                                                                [exEnd]
+
+Can also use a package's catalog:
+                                                                [exBegin]
+        self information:((#'WARN_RENAME' << #'stx:libtool' ) 
+                          withCRs bindWith:'ARG1' with:'ARG2')
+                                                                [exEnd]
+
+Lazy resolving the catalog in a block
+(if you generate the messages at startup and want to recognize language changes):
+                                                                [exBegin]
+        self information:((#'WARN_RENAME' << [ Tools::NewSystemBrowser classResources ] ) 
+                          withCRs bindWith:'ARG1' with:'ARG2')
+                                                                [exEnd]
 "
 ! !
 
@@ -60,6 +98,107 @@
      ^ self new key:aKeySymbol defaultString:aString
 ! !
 
+!UserMessage methodsFor:'Compatibility-V''Age'!
+
+bindWith:aString
+    "return a copy of the receiver, where a '%1' escape is
+     replaced by aString.
+     This has been added for VisualAge compatibility."
+
+    ^ self expandPlaceholdersWith:(Array with:aString)
+
+    "
+     'do you like %1 ?' bindWith:'smalltalk'
+    "
+!
+
+bindWith:string1 with:string2
+    "return a copy of the receiver, where a '%1' escape is
+     replaced by string1 and '%2' is replaced by string2.
+     This has been added for VisualAge compatibility."
+
+    ^ self expandPlaceholdersWith:(Array with:string1 with:string2)
+
+    "
+     'do you prefer %1 or rather %2 ?'
+	bindWith:'smalltalk' with:'c++'
+    "
+!
+
+bindWith:str1 with:str2 with:str3
+    "return a copy of the receiver, where a '%1', '%2' and '%3' escapes
+     are replaced by str1, str2 and str3 respectively.
+     This has been added for VisualAge compatibility."
+
+    ^ self expandPlaceholdersWith:(Array with:str1 with:str2 with:str3)
+
+    "
+     'do you prefer %1 or rather %2 (not talking about %3) ?'
+	bindWith:'smalltalk' with:'c++' with:'c'
+    "
+!
+
+bindWith:str1 with:str2 with:str3 with:str4
+    "return a copy of the receiver, where a '%1', '%2', '%3' and '%4' escapes
+     are replaced by str1, str2, str3 and str4 respectively.
+     This has been added for VisualAge compatibility."
+
+    ^ self expandPlaceholdersWith:(Array with:str1 with:str2 with:str3 with:str4)
+
+    "
+     'do you prefer %1 or rather %2 (not talking about %3 or even %4) ?'
+	bindWith:'smalltalk' with:'c++' with:'c' with:'assembler'
+    "
+!
+
+bindWith:str1 with:str2 with:str3 with:str4 with:str5
+    "return a copy of the receiver, where a '%1' .. '%5' escapes
+     are replaced by str1 .. str5 respectively.
+     This has been added for VisualAge compatibility."
+
+    ^ self expandPlaceholdersWith:(Array with:str1 with:str2 with:str3 with:str4 with:str5)
+
+    "Created: 31.1.1997 / 16:25:42 / cg"
+!
+
+bindWith:str1 with:str2 with:str3 with:str4 with:str5 with:str6
+    "return a copy of the receiver, where a '%1' .. '%6' escapes
+     are replaced by str1 .. str6 respectively.
+     This has been added for VisualAge compatibility."
+
+    ^ self expandPlaceholdersWith:(Array with:str1 with:str2
+					 with:str3 with:str4
+					 with:str5 with:str6)
+!
+
+bindWith:str1 with:str2 with:str3 with:str4 with:str5 with:str6 with:str7
+    "return a copy of the receiver, where a '%1' .. '%7' escapes
+     are replaced by str1 .. str7 respectively.
+     This has been added for VisualAge compatibility."
+
+    ^ self expandPlaceholdersWith:(Array with:str1 with:str2
+					 with:str3 with:str4
+					 with:str5 with:str6
+					 with:str7)
+!
+
+bindWithArguments:anArrayOfStrings
+    "return a copy of the receiver, where a '%i' escape
+     is replaced by the coresponding string from the argument array.
+     'i' may be between 1 and 9 (i.e. a maximum of 9 placeholders is allowed).
+     This has been added for VisualAge compatibility."
+
+    ^ self expandPlaceholdersWith:anArrayOfStrings
+
+    "
+     'do you prefer %1 or rather %2 (not talking about %3) ?'
+        bindWithArguments:#('smalltalk' 'c++' 'c')
+
+     'do you %(what) ?'
+        bindWithArguments:(Dictionary new at:#'what' put:'understand'; yourself)
+    "
+! !
+
 !UserMessage methodsFor:'accessing'!
 
 catalogID
@@ -99,7 +238,9 @@
 !UserMessage methodsFor:'converting'!
 
 asString
-    "for now: return the defaultString, ignoring the catalogID."
+    "convert the user message to a string.
+     If there us no mapping for the user message -
+        for now: return the defaultString, ignoring the catalogID."
 
     |str|
 
@@ -111,6 +252,35 @@
     ^ key asString
 !
 
+string
+    ^ self asString
+! !
+
+!UserMessage methodsFor:'printing & storing'!
+
+displayOn:aStream
+    (aStream isStream not and:[aStream ~~ Transcript]) ifTrue:[
+        "/ what a kludge - Dolphin and Squeak mean: printOn: a stream;
+        "/ ST/X (and some old ST80's) mean: draw-yourself on a GC.
+        self asString displayOn:aStream.
+        ^ self
+    ].
+
+    key storeOn:aStream.
+    aStream nextPutAll:' << '.
+    catalogID storeOn:aStream.
+    defaultString notNil ifTrue:[
+        aStream nextPutAll:' >> '.
+        defaultString storeOn:aStream.
+    ].
+!
+
+printOn:aStream
+    aStream nextPutAll:self asString
+! !
+
+!UserMessage methodsFor:'special string converting'!
+
 expandMacros
     ^ self asString expandMacros
 
@@ -121,26 +291,16 @@
 
 !
 
-string
-    ^ self asString
-! !
-
-!UserMessage methodsFor:'printing & storing'!
-
-displayString
-
-    |stream|
+expandPlaceholdersWith:argArrayOrDictionary
+    ^ self asString expandPlaceholdersWith:argArrayOrDictionary
+!
 
-    stream := '' writeStream.
+expandPlaceholdersWith:argArrayOrDictionary on:aStream
+    ^ self asString expandPlaceholdersWith:argArrayOrDictionary on:aStream
+!
 
-    key storeOn:stream.
-    stream nextPutAll:' << '.
-    catalogID storeOn:stream.
-    defaultString notNil ifTrue:[
-        stream nextPutAll:' >> '.
-        defaultString storeOn:stream.
-    ].
-    ^ stream contents.
+withCRs
+   ^ self asString withCRs
 ! !
 
 !UserMessage methodsFor:'utilities'!
@@ -162,48 +322,56 @@
 !
 
 lookupInMessageCatalog
-    |messageCatalog|
+    |messageCatalog resolvedMessageCatalog|
 
-    "/ for now - handle the case that the catalogID is
-    "/ a classes name; in that case, ask its resourcePack.
+    "catalogID may be a block"
+    messageCatalog := resolvedMessageCatalog :=catalogID value.
 
-    catalogID isSymbol ifTrue:[
-        messageCatalog := Smalltalk at:catalogID.
-    ] ifFalse:[
-        messageCatalog := catalogID.
+    "for now - handle the case that the catalogID is
+     a classes name; in that case, ask its resourcePack."
+    messageCatalog isSymbol ifTrue:[
+        resolvedMessageCatalog := Smalltalk at:messageCatalog.
+        resolvedMessageCatalog isNil ifTrue:[
+            "no class, so it is a packageID"
+            resolvedMessageCatalog := ResourcePack forPackage:messageCatalog cached:true.
+        ].
     ].
-    messageCatalog isBehavior ifTrue:[
-        messageCatalog := messageCatalog classResources.
+    resolvedMessageCatalog isBehavior ifTrue:[
+        resolvedMessageCatalog := resolvedMessageCatalog classResources.
     ].
-    messageCatalog isNil ifTrue:[
+    (resolvedMessageCatalog isNil) ifTrue:[
         defaultString isNil ifTrue:[
-            ^ 'Non-existant message (%1<<%2)' bindWith:key with:catalogID printString.
+            ^ 'Non-existant message: (%1<<%2)' bindWith:key with:catalogID printString.
         ].
         ^ defaultString.
     ].
 
-    ^ messageCatalog at:key ifAbsent:defaultString.
+    ^ resolvedMessageCatalog at:key ifAbsent:nil.
 
     "
-     (#'WARN_RENAME' << #BrowserView >> 'A class named %1 already exists (in ''%2'')\\that class will no longer be visible (i.e. removed) if you continue.\\Continue ?' )
-     (#'WARN_RENAME' << #BrowserView)
-     (#'WARN_RENAME' << BrowserView classResources)
+     (#'WARN_RENAME' << #BrowserView >> 'A class named %1 already exists (in ''%2'')\\that class will no longer be visible (i.e. removed) if you continue.\\Continue ?' ) asString
+     (#'WARN_RENAME' << #BrowserView) asString
+     (#'WARN_RENAME' << BrowserView classResources) asString
+     (#'WARN_RENAME' << [ BrowserView classResources] ) asString
+     (#'WARN_RENAME' << #'stx:libtool' ) asString
      (#dontKnow << #nonExistantMessageCatalog) asString
+     (#dontKnow << [YesNoBox]) asString
+     (#dontKnow << #nonExistantMessageCatalog >> 'Default text') asString
     "
 ! !
 
 !UserMessage class methodsFor:'documentation'!
 
 version
-    ^ '$Id: UserMessage.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UserMessage.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/UserMessage.st,v 1.6 2009-10-02 00:08:10 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/UserMessage.st,v 1.7 2011/05/09 13:59:06 stefan Exp '
 !
 
 version_SVN
-    ^ '$Id: UserMessage.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UserMessage.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -211,3 +379,4 @@
 
 
 
+
--- a/UserNotification.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/UserNotification.st	Wed Jun 08 22:53:07 2011 +0100
@@ -142,15 +142,15 @@
 !UserNotification class methodsFor:'documentation'!
 
 version
-    ^ '$Id: UserNotification.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UserNotification.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/UserNotification.st,v 1.15 2009-10-14 17:34:46 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/UserNotification.st,v 1.15 2009/10/14 17:34:46 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: UserNotification.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UserNotification.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 UserNotification initialize!
@@ -160,3 +160,4 @@
 
 
 
+
--- a/UserPreferences.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/UserPreferences.st	Wed Jun 08 22:53:07 2011 +0100
@@ -417,11 +417,19 @@
     s nextPutLine:'"/ User preference values:'.
     s nextPutLine:'"/'.
     userPrefs keysAndValuesDo:[:k :v |
-        (UserPreferences includesSelector:(k , ':') asSymbol) ifTrue:[
-            s nextPutLine:'UserPreferences current ' , k , ':' , v storeString , '.'.
+        |putSelector|
+
+        putSelector := (k , ':') asSymbolIfInterned.
+        (UserPreferences includesSelector:putSelector) ifTrue:[
+            s nextPutAll:'UserPreferences current ';
+              nextPutAll:putSelector.
         ] ifFalse:[
-            s nextPutLine:'UserPreferences current at:' , k storeString , ' put:' , v storeString , '.'.
-        ]
+            s nextPutAll:'UserPreferences current at:'.
+            k storeOn:s.
+            s nextPutAll:' put:'.
+        ].
+        v storeOn:s.
+        s nextPut:$.; cr.
     ].
 
     s cr.
@@ -514,32 +522,15 @@
 
     s cr.
     s nextPutLine:'"/'.
-    s nextPutLine:'"/ Language setting:'.
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ Notice:'.
-    s nextPutLine:'"/   Language should be taken from the Environment Variable LANG'.
-    s nextPutLine:'"/   To use the previous seting, uncomment the following:'.
-    s nextPutLine:'"/ Smalltalk language: ' , (Smalltalk language storeString) , '.'.
-    s nextPutLine:'"/ Smalltalk languageTerritory: ' , (Smalltalk languageTerritory storeString) , '.'.
-
-    s cr.
-    s nextPutLine:'"/'.
     s nextPutLine:'"/ SourceCodeManager settings:'.
-    s nextPutLine:'"/ (only restored, if image is restarted on the same host)'.
+    s nextPutLine:'"/ (repositories are networked nowadays, so the settings are host independent)'.
     s nextPutLine:'"/'.
-    s nextPutLine:'OperatingSystem getHostName = ' , (OperatingSystem getHostName storeString) , ' ifTrue:['.
-    s nextPutLine:'  Class tryLocalSourceFirst:' , Class tryLocalSourceFirst storeString , '.'.
-    s nextPutLine:'  AbstractSourceCodeManager cacheDirectoryName:' , AbstractSourceCodeManager cacheDirectoryName storeString , '.'.
-    CVSSourceCodeManager notNil ifTrue:[
-        CVSSourceCodeManager savePreferencesOn:s
+    s nextPutLine:'Class tryLocalSourceFirst:' , Class tryLocalSourceFirst storeString , '.'.
+    s nextPutLine:'AbstractSourceCodeManager cacheDirectoryName:' , AbstractSourceCodeManager cacheDirectoryName storeString , '.'.
+
+    AbstractSourceCodeManager availableManagers do:[:eachManager |
+        eachManager savePreferencesOn:s
     ].
-    (StoreSourceCodeManager notNil and:[StoreSourceCodeManager isExperimental not]) ifTrue:[
-        StoreSourceCodeManager savePreferencesOn:s
-    ].
-    (SmallTeamSourceCodeManager notNil and:[SmallTeamSourceCodeManager isExperimental not]) ifTrue:[
-        SmallTeamSourceCodeManager savePreferencesOn:s
-    ].
-    s nextPutLine:'].'.
 
     s close.
 
@@ -548,7 +539,7 @@
     "
 
     "Modified: / 09-08-2006 / 18:52:14 / fm"
-    "Modified: / 09-11-2006 / 15:12:07 / cg"
+    "Modified: / 18-04-2011 / 17:13:34 / cg"
 ! !
 
 !UserPreferences methodsFor:'acccesing-locale'!
@@ -2001,9 +1992,9 @@
     "the emphasis used for illegal identifiers;
      If syntaxColoring is turned on."
 
-    ^ self at:#badIdentifierEmphasis ifAbsentPut:[UserPreferences default at:#badIdentifierEmphasis]
-
-    "Modified: / 7.7.1999 / 00:30:00 / cg"
+    ^ self at:#badIdentifierEmphasis ifAbsentPut:[UserPreferences default at:#badIdentifierEmphasis ifAbsent:#normal]
+
+    "Modified: / 21-04-2011 / 12:34:50 / cg"
 !
 
 booleanConstantColor
@@ -2083,20 +2074,20 @@
     "the color used for comments;
      If syntaxColoring is turned on."
 
-    ^ self at:#commentColor ifAbsentPut:[UserPreferences default at:#commentColor]
-
-    "Created: / 31.3.1998 / 15:10:23 / cg"
-    "Modified: / 11.9.1998 / 19:24:04 / cg"
+    ^ self at:#commentColor ifAbsentPut:[UserPreferences default at:#commentColor ifAbsent:[Color black]]
+
+    "Created: / 31-03-1998 / 15:10:23 / cg"
+    "Modified: / 21-04-2011 / 12:33:39 / cg"
 !
 
 commentEmphasis
     "the emphasis used for comments;
      If syntaxColoring is turned on."
 
-    ^ self at:#commentEmphasis ifAbsentPut:[UserPreferences default at:#commentEmphasis]
-
-    "Created: / 31.3.1998 / 15:09:59 / cg"
-    "Modified: / 1.4.1998 / 13:25:53 / cg"
+    ^ self at:#commentEmphasis ifAbsentPut:[UserPreferences default at:#commentEmphasis ifAbsent:#normal]
+
+    "Created: / 31-03-1998 / 15:09:59 / cg"
+    "Modified: / 21-04-2011 / 12:34:48 / cg"
 !
 
 commentEmphasisAndColor
@@ -2109,10 +2100,10 @@
     "the color used for constants;
      If syntaxColoring is turned on."
 
-    ^ self at:#constantColor ifAbsentPut:[UserPreferences default at:#constantColor]
-
-    "Created: / 31.3.1998 / 18:13:15 / cg"
-    "Modified: / 1.4.1998 / 13:20:37 / cg"
+    ^ self at:#constantColor ifAbsentPut:[UserPreferences default at:#constantColor ifAbsent:[Color black]]
+
+    "Created: / 31-03-1998 / 18:13:15 / cg"
+    "Modified: / 21-04-2011 / 12:33:36 / cg"
 !
 
 constantEmphasis
@@ -2151,8 +2142,9 @@
     "the color used for anything else;
      If syntaxColoring is turned on."
 
-    ^ self at:#defaultSyntaxColor ifAbsentPut:[UserPreferences default at:#defaultSyntaxColor]
-
+    ^ self at:#defaultSyntaxColor ifAbsentPut:[UserPreferences default at:#defaultSyntaxColor ifAbsent:[Color black]]
+
+    "Modified: / 21-04-2011 / 12:31:48 / cg"
 !
 
 defaultSyntaxEmphasis
@@ -2161,9 +2153,9 @@
 
     ^ self 
         at:#defaultSyntaxEmphasis 
-        ifAbsentPut:[UserPreferences default at:#defaultSyntaxEmphasis]
-
-    "Modified: / 17-02-2011 / 14:17:30 / cg"
+        ifAbsentPut:[UserPreferences default at:#defaultSyntaxEmphasis ifAbsent:#normal]
+
+    "Modified: / 21-04-2011 / 12:34:46 / cg"
 !
 
 doesNotUnderstand:aMessage
@@ -2227,8 +2219,9 @@
     "the color used for illegal identifiers;
      If syntaxColoring is turned on."
 
-    ^ self at:#errorColor ifAbsentPut:[UserPreferences default at:#errorColor]
-
+    ^ self at:#errorColor ifAbsentPut:[UserPreferences default at:#errorColor ifAbsent:[Color black]]
+
+    "Modified: / 21-04-2011 / 12:33:33 / cg"
 !
 
 fullSelectorCheck
@@ -2399,10 +2392,10 @@
     "the emphasis used for a methods selector pattern;
      If syntaxColoring is turned on."
 
-    ^ self at:#methodSelectorEmphasis ifAbsentPut:[UserPreferences default at:#methodSelectorEmphasis]
-
-    "Created: / 31.3.1998 / 15:11:16 / cg"
-    "Modified: / 1.4.1998 / 13:24:20 / cg"
+    ^ self at:#methodSelectorEmphasis ifAbsentPut:[UserPreferences default at:#methodSelectorEmphasis ifAbsent:#normal]
+
+    "Created: / 31-03-1998 / 15:11:16 / cg"
+    "Modified: / 21-04-2011 / 12:34:42 / cg"
 !
 
 numberConstantColor
@@ -2465,10 +2458,10 @@
     "the emphasis used for message selectors;
      If syntaxColoring is turned on."
 
-    ^ self at:#selectorEmphasis ifAbsentPut:[UserPreferences default at:#selectorEmphasis]
-
-    "Created: / 31.3.1998 / 15:19:09 / cg"
-    "Modified: / 1.4.1998 / 13:23:59 / cg"
+    ^ self at:#selectorEmphasis ifAbsentPut:[UserPreferences default at:#selectorEmphasis ifAbsent:#normal]
+
+    "Created: / 31-03-1998 / 15:19:09 / cg"
+    "Modified: / 21-04-2011 / 12:34:39 / cg"
 !
 
 selfColor
@@ -2581,17 +2574,19 @@
     "the color used for bad message selectors;
      If syntaxColoring is turned on."
 
-    ^ self at:#unimplementedSelectorColor ifAbsentPut:[UserPreferences default at:#unimplementedSelectorColor]
+    ^ self at:#unimplementedSelectorColor ifAbsentPut:[UserPreferences default at:#unimplementedSelectorColor ifAbsent:[Color black]]
+
+    "Modified: / 21-04-2011 / 12:33:29 / cg"
 !
 
 unimplementedSelectorEmphasis
     "the emphasis used for bad message selectors;
      If syntaxColoring is turned on."
 
-    ^ self at:#unimplementedSelectorEmphasis ifAbsentPut:[UserPreferences default at:#unimplementedSelectorEmphasis]
-
-    "Created: / 31.3.1998 / 15:19:09 / cg"
-    "Modified: / 1.4.1998 / 13:23:59 / cg"
+    ^ self at:#unimplementedSelectorEmphasis ifAbsentPut:[UserPreferences default at:#unimplementedSelectorEmphasis ifAbsent:#normal]
+
+    "Created: / 31-03-1998 / 15:19:09 / cg"
+    "Modified: / 21-04-2011 / 12:34:36 / cg"
 !
 
 unknownIdentifierColor
@@ -2960,6 +2955,76 @@
     "Created: / 03-07-2006 / 16:50:20 / cg"
 ! !
 
+!UserPreferences methodsFor:'accessing-prefs-localization'!
+
+language
+    "/ intermediate migration code;
+    "/ for now, Smalltalk uses a global language and territory setting;
+    "/ however, for multi-user operation, this must be in a preference-setting.
+    "/ For now, forward to smalltalk, until all references to "Smalltalk-language"
+    "/ are replaced with "UserPreferences current language"
+
+    ^ self at:#language ifAbsent:[Smalltalk language].
+
+    "
+     UserPreferences current language
+    "
+
+    "Created: / 20-09-2006 / 23:55:01 / cg"
+!
+
+language:aLanguageSymbol
+    "/ intermediate migration code;
+    "/ for now, Smalltalk uses a global language and territory setting;
+    "/ however, for multi-user operation, this must be in a preference-setting.
+    "/ For now, forward to smalltalk, until all references to "Smalltalk-language"
+    "/ are replaced with "UserPreferences current language"
+
+    self at:#language put:aLanguageSymbol.
+    Smalltalk language:aLanguageSymbol
+
+    "
+     UserPreferences current language
+     UserPreferences current language:#en
+    "
+
+    "Created: / 20-09-2006 / 23:55:01 / cg"
+!
+
+languageTerritory
+    "/ intermediate migration code;
+    "/ for now, Smalltalk uses a global language and territory setting;
+    "/ however, for multi-user operation, this must be in a preference-setting.
+    "/ for now, forward to smalltalk, while all references to "Smalltalk-language"
+    "/ are replaced with "UserPreferences current language"
+
+    ^ self at:#languageTerritory ifAbsent:[Smalltalk languageTerritory]
+
+    "
+     UserPreferences current languageTerritory
+    "
+
+    "Created: / 20-09-2006 / 23:55:01 / cg"
+!
+
+languageTerritory:aLanguageSymbol
+    "/ intermediate migration code;
+    "/ for now, Smalltalk uses a global language and territory setting;
+    "/ however, for multi-user operation, this must be in a preference-setting.
+    "/ For now, forward to smalltalk, until all references to "Smalltalk-language"
+    "/ are replaced with "UserPreferences current language"
+
+    self at:#languageTerritory put:aLanguageSymbol.
+    Smalltalk languageTerritory:aLanguageSymbol
+
+    "
+     UserPreferences current languageTerritory 
+     UserPreferences current languageTerritory:#en
+    "
+
+    "Created: / 20-09-2006 / 23:55:01 / cg"
+! !
+
 !UserPreferences methodsFor:'accessing-prefs-times'!
 
 timeToAutoExpandItemsWhenDraggingOver
@@ -3118,72 +3183,6 @@
     "Created: / 14-07-2007 / 16:43:44 / cg"
 !
 
-language
-    "/ intermediate migration code;
-    "/ for now, Smalltalk uses a global language and territory setting;
-    "/ however, for multi-user operation, this must be in a preference-setting.
-    "/ For now, forward to smalltalk, until all references to "Smalltalk-language"
-    "/ are replaced with "UserPreferences current language"
-
-    ^ Smalltalk language
-
-    "
-     UserPreferences current language
-    "
-
-    "Created: / 20-09-2006 / 23:55:01 / cg"
-!
-
-language:aLanguageSymbol
-    "/ intermediate migration code;
-    "/ for now, Smalltalk uses a global language and territory setting;
-    "/ however, for multi-user operation, this must be in a preference-setting.
-    "/ For now, forward to smalltalk, until all references to "Smalltalk-language"
-    "/ are replaced with "UserPreferences current language"
-
-    Smalltalk language:aLanguageSymbol
-
-    "
-     UserPreferences current language
-     UserPreferences current language:#en
-    "
-
-    "Created: / 20-09-2006 / 23:55:01 / cg"
-!
-
-languageTerritory
-    "/ intermediate migration code;
-    "/ for now, Smalltalk uses a global language and territory setting;
-    "/ however, for multi-user operation, this must be in a preference-setting.
-    "/ for now, forward to smalltalk, while all references to "Smalltalk-language"
-    "/ are replaced with "UserPreferences current language"
-
-    ^ Smalltalk languageTerritory
-
-    "
-     UserPreferences current languageTerritory
-    "
-
-    "Created: / 20-09-2006 / 23:55:01 / cg"
-!
-
-languageTerritory:aLanguageSymbol
-    "/ intermediate migration code;
-    "/ for now, Smalltalk uses a global language and territory setting;
-    "/ however, for multi-user operation, this must be in a preference-setting.
-    "/ For now, forward to smalltalk, until all references to "Smalltalk-language"
-    "/ are replaced with "UserPreferences current language"
-
-    Smalltalk languageTerritory:aLanguageSymbol
-
-    "
-     UserPreferences current languageTerritory 
-     UserPreferences current languageTerritory:#en
-    "
-
-    "Created: / 20-09-2006 / 23:55:01 / cg"
-!
-
 localBuild
     ^ self at:#localBuild ifAbsent:true
 
@@ -3511,14 +3510,15 @@
 !UserPreferences class methodsFor:'documentation'!
 
 version
-    ^ '$Id: UserPreferences.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UserPreferences.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/UserPreferences.st,v 1.268 2011-02-17 13:33:23 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/UserPreferences.st,v 1.272 2011/05/20 11:49:26 stefan Exp §'
 !
 
 version_SVN
-    ^ '$Id: UserPreferences.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: UserPreferences.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
+
--- a/UtcTimestamp.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/UtcTimestamp.st	Wed Jun 08 22:53:07 2011 +0100
@@ -111,6 +111,7 @@
 !UtcTimestamp class methodsFor:'documentation'!
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/UtcTimestamp.st,v 1.3 2011-01-24 17:58:33 stefan Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/UtcTimestamp.st,v 1.3 2011/01/24 17:58:33 stefan Exp §'
 ! !
 
+
--- a/Visitor.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Visitor.st	Wed Jun 08 22:53:07 2011 +0100
@@ -262,15 +262,16 @@
 !Visitor class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Visitor.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Visitor.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/Visitor.st,v 1.7 2011-01-24 13:20:08 stefan Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/Visitor.st,v 1.7 2011/01/24 13:20:08 stefan Exp §'
 !
 
 version_SVN
-    ^ '$Id: Visitor.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Visitor.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
+
--- a/Warning.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Warning.st	Wed Jun 08 22:53:07 2011 +0100
@@ -155,15 +155,15 @@
 !Warning class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Warning.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Warning.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Warning.st,v 1.14 2009-10-14 17:34:52 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Warning.st,v 1.14 2009/10/14 17:34:52 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Warning.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Warning.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Warning initialize!
@@ -173,3 +173,4 @@
 
 
 
+
--- a/WeakArray.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/WeakArray.st	Wed Jun 08 22:53:07 2011 +0100
@@ -1020,15 +1020,15 @@
 !WeakArray class methodsFor:'documentation'!
 
 version
-    ^ '$Id: WeakArray.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: WeakArray.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_SVN
-    ^ '$Id: WeakArray.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: WeakArray.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/WeakArray.st,v 1.66 2010-08-11 14:11:08 sr Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/WeakArray.st,v 1.66 2010/08/11 14:11:08 sr Exp §'
 ! !
 
 WeakArray initialize!
@@ -1037,3 +1037,4 @@
 
 
 
+
--- a/Win32Constants.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Win32Constants.st	Wed Jun 08 22:53:07 2011 +0100
@@ -62,11 +62,11 @@
 !Win32Constants class methodsFor:'documentation'!
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Win32Constants.st,v 1.4 2010-12-24 10:22:26 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Win32Constants.st,v 1.4 2010/12/24 10:22:26 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Win32Constants.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Win32Constants.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Win32Constants initialize!
@@ -77,3 +77,4 @@
 
 
 
+
--- a/Win32OperatingSystem.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Win32OperatingSystem.st	Wed Jun 08 22:53:07 2011 +0100
@@ -3324,48 +3324,48 @@
     "Internal lowLevel entry for combined fork & exec for WIN32
 
      If fork is false (chain a command):
-         execute the OS command specified by the argument, aCommandPath, with
-         arguments in argArray (no arguments, if nil).
-         If successful, this method does not return and smalltalk is gone.
-         If not successful, it does return.
-         Normal use is with forkForCommand.
+	 execute the OS command specified by the argument, aCommandPath, with
+	 arguments in argArray (no arguments, if nil).
+	 If successful, this method does not return and smalltalk is gone.
+	 If not successful, it does return.
+	 Normal use is with forkForCommand.
 
      If fork is true (subprocess command execution):
-        fork a child to do the above.
-        The Win32ProcessHandle of the child process is returned; nil if the fork failed.
+	fork a child to do the above.
+	The Win32ProcessHandle of the child process is returned; nil if the fork failed.
 
      fdArray contains the filedescriptors, to be used for the child (if fork is true).
-        fdArray[1] = 15 -> use fd 15 as stdin.
-        If an element of the array is set to nil, the corresponding filedescriptor
-        will be closed for the child.
-        fdArray[0] == StdIn for child
-        fdArray[1] == StdOut for child
-        fdArray[2] == StdErr for child
-        on VMS, these must be channels as returned by createMailBox.
+	fdArray[1] = 15 -> use fd 15 as stdin.
+	If an element of the array is set to nil, the corresponding filedescriptor
+	will be closed for the child.
+	fdArray[0] == StdIn for child
+	fdArray[1] == StdOut for child
+	fdArray[2] == StdErr for child
+	on VMS, these must be channels as returned by createMailBox.
 
      NOTE that in WIN32 the fds are HANDLES.
 
      If newPgrp is true, the subprocess will be established in a new process group.
-        The processgroup will be equal to id.
-        newPgrp is not used on WIN32 and VMS systems."
+	The processgroup will be equal to id.
+	newPgrp is not used on WIN32 and VMS systems."
 
     |dirPath rslt|
 
     aDirectory notNil ifTrue:[
-        dirPath := aDirectory asFilename asAbsoluteFilename osNameForDirectory.
-        (dirPath endsWith:':') ifTrue:[
-            dirPath := dirPath , '\'.
-        ].
+	dirPath := aDirectory asFilename asAbsoluteFilename osNameForDirectory.
+	(dirPath endsWith:':') ifTrue:[
+	    dirPath := dirPath , '\'.
+	].
     ].
 
     rslt := self
-        primExec:aCommandPath
-        commandLine:argString
-        fileDescriptors:fdArray
-        fork:doFork
-        newPgrp:newPgrp
-        inPath:dirPath
-        createFlags:nil.
+	primExec:aCommandPath
+	commandLine:argString
+	fileDescriptors:fdArray
+	fork:doFork
+	newPgrp:newPgrp
+	inPath:dirPath
+	createFlags:nil.
 
 "/ 'created ' print. cmdLine print. ' -> ' print. rslt printCR.
     ^ rslt
@@ -3394,34 +3394,34 @@
     |nullStream in out err rslt auxFd|
 
     (in := anExternalInStream) isNil ifTrue:[
-        nullStream := Filename nullDevice readWriteStream.
-        in := nullStream.
+	nullStream := Filename nullDevice readWriteStream.
+	in := nullStream.
     ].
     (out := anExternalOutStream) isNil ifTrue:[
-        nullStream isNil ifTrue:[nullStream := Filename nullDevice writeStream].
-        out := nullStream.
+	nullStream isNil ifTrue:[nullStream := Filename nullDevice writeStream].
+	out := nullStream.
     ].
     (err := anExternalErrStream) isNil ifTrue:[
-        err := out
+	err := out
     ].
     anAuxiliaryStream notNil ifTrue:[
-        auxFd := anAuxiliaryStream fileDescriptor
+	auxFd := anAuxiliaryStream fileDescriptor
     ].
 
     rslt := self
-        exec:commandString
-        withArguments:argString
-        environment:anEvironmentDictionary
-        fileDescriptors:(Array with:in fileDescriptor
-                               with:out fileDescriptor
-                               with:err fileDescriptor
-                               with:auxFd)
-        fork:true
-        newPgrp:true "/ false
-        inDirectory:dir.
+	exec:commandString
+	withArguments:argString
+	environment:anEvironmentDictionary
+	fileDescriptors:(Array with:in fileDescriptor
+			       with:out fileDescriptor
+			       with:err fileDescriptor
+			       with:auxFd)
+	fork:true
+	newPgrp:true "/ false
+	inDirectory:dir.
 
     nullStream notNil ifTrue:[
-        nullStream close.
+	nullStream close.
     ].
     ^ rslt
 
@@ -3444,7 +3444,7 @@
      The following will no longer work. monitorPid has disappeared
 
      pid notNil ifTrue:[
-         Processor monitorPid:pid action:[:OSstatus | sema signal ].
+	 Processor monitorPid:pid action:[:OSstatus | sema signal ].
      ].
      in close.
      out close.
@@ -3869,10 +3869,10 @@
     shellAndArgs := self commandAndArgsForOSCommand:aCommandString.
 
     ^ self
-        exec:(shellAndArgs at:1) withArguments:(shellAndArgs at:2)
-        inputFrom:anExternalInStream outputTo:anExternalOutStream
-        errorTo:anExternalErrStream auxFrom:anAuxiliaryStream
-        environment:anEvironmentDictionary inDirectory:dir
+	exec:(shellAndArgs at:1) withArguments:(shellAndArgs at:2)
+	inputFrom:anExternalInStream outputTo:anExternalOutStream
+	errorTo:anExternalErrStream auxFrom:anAuxiliaryStream
+	environment:anEvironmentDictionary inDirectory:dir
 
     "blocking at current prio (i.e. only higher prio threads execute):
 
@@ -3893,7 +3893,7 @@
      The following will no longer work. monitorPid has disappeared
 
      pid notNil ifTrue:[
-         Processor monitorPid:pid action:[:OSstatus | sema signal ].
+	 Processor monitorPid:pid action:[:OSstatus | sema signal ].
      ].
      in close.
      out close.
@@ -4113,10 +4113,10 @@
      Return true if successful, false if not."
 
     (oldPath isString not or:[newPath isString not]) ifTrue:[
-        "/
-        "/ bad argument(s) given
-        "/
-        ^ self primitiveFailed
+	"/
+	"/ bad argument(s) given
+	"/
+	^ self primitiveFailed
     ].
 
     ^ self createHardLinkFrom:oldPath to:newPath
@@ -8295,48 +8295,48 @@
     int err;
 
     if (__isExternalAddressLike(processHandleOrPid) ) {
-        DWORD exitCode;
-
-        processHandle = _HANDLEVal(processHandleOrPid);
-
-        if (processHandle == 0) {
-            error = @symbol(invalidParameter);
-        } else {
-            /* check if the handle still refers to a running process */
-            if (GetExitCodeProcess(processHandle, &exitCode) != 0) {
-                if (exitCode == STILL_ACTIVE) {
-                    RETURN(true);
-                } else {
-                    RETURN(false);
-                }
-            } else { 
-                goto checkError;
-            }
+	DWORD exitCode;
+
+	processHandle = _HANDLEVal(processHandleOrPid);
+
+	if (processHandle == 0) {
+	    error = @symbol(invalidParameter);
+	} else {
+	    /* check if the handle still refers to a running process */
+	    if (GetExitCodeProcess(processHandle, &exitCode) != 0) {
+		if (exitCode == STILL_ACTIVE) {
+		    RETURN(true);
+		} else {
+		    RETURN(false);
+		}
+	    } else {
+		goto checkError;
+	    }
        }
     } else if( __isSmallInteger(processHandleOrPid) ) {
-        // assume, that synchronize needs less privilege...
-        processHandle = OpenProcess(SYNCHRONIZE, FALSE, __smallIntegerVal(processHandleOrPid));
-        if (processHandle) {
-            CloseHandle(processHandle);
-            RETURN(true);
-        }
+	// assume, that synchronize needs less privilege...
+	processHandle = OpenProcess(SYNCHRONIZE, FALSE, __smallIntegerVal(processHandleOrPid));
+	if (processHandle) {
+	    CloseHandle(processHandle);
+	    RETURN(true);
+	}
 
 checkError:
-        err = GetLastError();
-        // we do not have access to the process (so pid does exist ;-))
-        if (err == ERROR_ACCESS_DENIED) {
-            RETURN(true);
-        }
-        // pid does not exist
-        if (err == ERROR_INVALID_PARAMETER) {
-            RETURN(false);
-        }
-
-        // any other error - raise signal
-        __threadErrno = __WIN32_ERR(err);
-        error = __mkSmallInteger(__threadErrno);
+	err = GetLastError();
+	// we do not have access to the process (so pid does exist ;-))
+	if (err == ERROR_ACCESS_DENIED) {
+	    RETURN(true);
+	}
+	// pid does not exist
+	if (err == ERROR_INVALID_PARAMETER) {
+	    RETURN(false);
+	}
+
+	// any other error - raise signal
+	__threadErrno = __WIN32_ERR(err);
+	error = __mkSmallInteger(__threadErrno);
     } else {
-        error = @symbol(invalidParameter);
+	error = @symbol(invalidParameter);
     }
 %}.
 
@@ -8704,22 +8704,22 @@
 	    ]
 	]
     ] ifFalse:[
-	#(
-	    '\smalltalk'
-	    '\programme\smalltalk'
-	    '\programme\eXept\smalltalk'
-	    '\programs\smalltalk'
-	    '\programs\eXept\smalltalk'
-	) do:[:d | |dd|
-	    dd := d asFilename constructString:'packages'.
-	    (pPath includes:dd) ifFalse:[
-		pPath add:dd.
-	    ].
-	    dd := (d asFilename construct:Smalltalk versionString) constructString:'packages'.
-	    (pPath includes:dd) ifFalse:[
-		pPath add:dd.
-	    ].
-	].
+"/        #(
+"/            '\smalltalk'
+"/            '\programme\smalltalk'
+"/            '\programme\eXept\smalltalk'
+"/            '\programs\smalltalk'
+"/            '\programs\eXept\smalltalk'
+"/        ) do:[:d | |dd|
+"/            dd := d asFilename constructString:'packages'.
+"/            (pPath includes:dd) ifFalse:[
+"/                pPath add:dd.
+"/            ].
+"/            dd := (d asFilename construct:Smalltalk versionString) constructString:'packages'.
+"/            (pPath includes:dd) ifFalse:[
+"/                pPath add:dd.
+"/            ].
+"/        ].
     ].
 
     "/ under windows, the commandName includes the path - good.
@@ -8753,27 +8753,27 @@
 	    sysPath add:libDirPath
 	].
     ].
-    #(
-	'\programs\eXept\smalltalk'
-	'\programme\eXept\smalltalk'
-	'\programs\smalltalk'
-	'\programme\smalltalk'
-	'\smalltalk'
-    ) do:[:dir |
-	|vsnDir|
-
-	(dir asFilename isDirectory) ifTrue:[
-	    vsnDir := dir , '\' , Smalltalk versionString.
-	    (vsnDir asFilename isDirectory) ifTrue:[
-		(sysPath includes:vsnDir) ifFalse:[
-		    sysPath add:vsnDir.
-		]
-	    ].
-	    (sysPath includes:dir) ifFalse:[
-		sysPath add:dir.
-	    ].
-	]
-    ].
+"/    #(
+"/        '\programs\eXept\smalltalk'
+"/        '\programme\eXept\smalltalk'
+"/        '\programs\smalltalk'
+"/        '\programme\smalltalk'
+"/        '\smalltalk'
+"/    ) do:[:dir |
+"/        |vsnDir|
+"/
+"/        (dir asFilename isDirectory) ifTrue:[
+"/            vsnDir := dir , '\' , Smalltalk versionString.
+"/            (vsnDir asFilename isDirectory) ifTrue:[
+"/                (sysPath includes:vsnDir) ifFalse:[
+"/                    sysPath add:vsnDir.
+"/                ]
+"/            ].
+"/            (sysPath includes:dir) ifFalse:[
+"/                sysPath add:dir.
+"/            ].
+"/        ]
+"/    ].
 
     ^ sysPath
 
@@ -9471,8 +9471,8 @@
 dateFormat
     "Answer the current system value for date format.
      Answer DfMDY = Month-Day-Year
-            DfDMY = Day-Month-Year
-            DfYMD = Year-Month-Day."
+	    DfDMY = Day-Month-Year
+	    DfYMD = Year-Month-Day."
 
     |separatorString code|
 
@@ -9672,22 +9672,22 @@
      This looks for the files extension, and is typically used to present help-files,
      html documents, pdf documents etc.
      operationSymbol is one of:
-        open
-        edit
-        explore
-        print
+	open
+	edit
+	explore
+	print
     "
 
     |result filename|
 
     filename := aFilenameOrString asFilename.
     result := self
-        shellExecute:nil
-        lpOperation:operationSymbol
-        lpFile:filename pathName
-        lpParameters:nil
-        lpDirectory:filename directory pathName
-        nShowCmd:#SW_SHOWNORMAL.
+	shellExecute:nil
+	lpOperation:operationSymbol
+	lpFile:filename pathName
+	lpParameters:nil
+	lpDirectory:filename directory pathName
+	nShowCmd:#SW_SHOWNORMAL.
     ^ self.
 
     "
@@ -13690,11 +13690,11 @@
 
     idx := aKeyNamePath indexOf:(self separator).
     idx == 0 ifTrue:[
-        first := aKeyNamePath.
-        rest := nil.
+	first := aKeyNamePath.
+	rest := nil.
     ] ifFalse:[
-        first := aKeyNamePath copyTo:idx-1.
-        rest := aKeyNamePath copyFrom:idx+1
+	first := aKeyNamePath copyTo:idx-1.
+	rest := aKeyNamePath copyFrom:idx+1
     ].
 
     first := first asUppercase.
@@ -13702,17 +13702,17 @@
     "/ the first is a pseudo name
     root := self rootKey:first.
     root isNil ifTrue:[
-        ^ nil
+	^ nil
     ].
 
     rest size == 0 ifTrue:[
-        ^ root
+	^ root
     ].
 
     Error handle:[:ex |
-        ^ nil
+	^ nil
     ] do:[
-        ^ root subKeyNamed:rest createIfAbsent:createIfAbsent.
+	^ root subKeyNamed:rest createIfAbsent:createIfAbsent.
     ].
 
     "
@@ -14189,9 +14189,9 @@
     |k|
 
     (k := self subKeyNamed:subKeyString) isNil ifTrue:[
-        createIfAbsent ifTrue:[
-            ^ self createSubKeyNamed:subKeyString
-        ].
+	createIfAbsent ifTrue:[
+	    ^ self createSubKeyNamed:subKeyString
+	].
     ].
     ^ k
 
@@ -14704,7 +14704,7 @@
     "evaluate aBlock for all value names"
 
     ^ Array streamContents:[:s |
-        self valueNamesDo:[:nm | s nextPut:nm]
+	self valueNamesDo:[:nm | s nextPut:nm]
     ].
 
     "Created: / 18-01-2011 / 20:24:52 / cg"
@@ -16336,15 +16336,15 @@
 !Win32OperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Win32OperatingSystem.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Win32OperatingSystem.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/Win32OperatingSystem.st,v 1.420 2011-03-28 15:10:10 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.421 2011/04/19 09:04:01 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: Win32OperatingSystem.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Win32OperatingSystem.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 Win32OperatingSystem initialize!
@@ -16359,3 +16359,4 @@
 
 
 
+
--- a/Win32Process.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/Win32Process.st	Wed Jun 08 22:53:07 2011 +0100
@@ -217,11 +217,11 @@
 !Win32Process class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Win32Process.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: Win32Process.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/Win32Process.st,v 1.2 2010-02-01 11:29:35 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/Win32Process.st,v 1.2 2010/02/01 11:29:35 cg Exp §'
 ! !
 
 
@@ -230,3 +230,4 @@
 
 
 
+
--- a/WriteStream.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/WriteStream.st	Wed Jun 08 22:53:07 2011 +0100
@@ -622,15 +622,15 @@
 !WriteStream class methodsFor:'documentation'!
 
 version
-    ^ '$Id: WriteStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: WriteStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/WriteStream.st,v 1.71 2009-10-05 09:19:55 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/WriteStream.st,v 1.71 2009/10/05 09:19:55 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: WriteStream.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: WriteStream.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
@@ -638,3 +638,4 @@
 
 
 
+
--- a/YesToAllConfirmation.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/YesToAllConfirmation.st	Wed Jun 08 22:53:07 2011 +0100
@@ -101,16 +101,17 @@
 !YesToAllConfirmation class methodsFor:'documentation'!
 
 version
-    ^ '$Id: YesToAllConfirmation.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: YesToAllConfirmation.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /var/local/cvs/stx/libbasic/YesToAllConfirmation.st,v 1.6 2010-10-14 08:38:03 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/YesToAllConfirmation.st,v 1.6 2010/10/14 08:38:03 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: YesToAllConfirmation.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: YesToAllConfirmation.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
 
+
--- a/bc.mak	Fri Jun 03 18:15:16 2011 +0100
+++ b/bc.mak	Wed Jun 08 22:53:07 2011 +0100
@@ -1,4 +1,4 @@
-# $Header: /var/local/cvs/stx/libbasic/bc.mak,v 1.171 2011-02-09 10:45:58 cg Exp $
+# $Header: /cvs/stx/stx/libbasic/bc.mak,v 1.171 2011/02/09 10:45:58 cg Exp $
 #
 # DO NOT EDIT
 # automagically generated from the projectDefinition: stx_libbasic.
@@ -356,3 +356,4 @@
 
 
 
+
--- a/libInit.cc	Fri Jun 03 18:15:16 2011 +0100
+++ b/libInit.cc	Wed Jun 08 22:53:07 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * $Header: /var/local/cvs/stx/libbasic/libInit.cc,v 1.164 2011-02-09 10:46:14 cg Exp $
+ * $Header: /cvs/stx/stx/libbasic/libInit.cc,v 1.164 2011/02/09 10:46:14 cg Exp $
  *
  * DO NOT EDIT
  * automagically generated from the projectDefinition: stx_libbasic.
@@ -338,3 +338,4 @@
 
 
 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/not_delivered/SystemDictionary.st	Wed Jun 08 22:53:07 2011 +0100
@@ -0,0 +1,316 @@
+"
+ COPYRIGHT (c) 1994 by Claus Gittinger
+	      All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+
+Collection subclass:#SystemDictionary
+       instanceVariableNames:'sysId'
+       classVariableNames:''
+       poolDictionaries:''
+       category:'System-Support'
+!
+
+!SystemDictionary class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1994 by Claus Gittinger
+	      All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+!
+
+version
+    ^ '$Id$'
+!
+
+documentation
+"
+    SystemDictionaries are nameSpaces, which are also known in the c-world
+    somehow (i.e. names found in SystemDictionaries may also be known as
+    a c-global).
+
+    As you will notice, this is NOT a Dictionary
+     - my implementation of globals is totally different
+       (due to the need to be able to access globals from c-code as well).
+    However, it provides the known enumeration protocol.
+
+    Instance variables:
+	sysId           <SmallInteger>  the dictionaries id
+"
+! !
+
+!SystemDictionary methodsFor:'accessing'!
+
+at:aKey
+    "retrieve the value stored under aKey, which must be some kind of symbol.
+     Return nil if not present."
+
+%{  /* NOCONTEXT */
+    extern OBJ _SYSDICT_GET();
+
+    if (__isSmallInteger(__INST(sysId))) {
+	RETURN ( _SYSDICT_GET(__intVal(__INST(sysId)), aKey) );
+    }
+%}.
+    "
+     the receiver is not a valid systemDictionary
+    "
+    self pimitiveFailed
+!
+
+at:aKey ifAbsent:aBlock
+    "retrieve the value stored under aKey.
+     If there is none stored this key, return the value of
+     the evaluation of aBlock"
+
+    (self includesKey:aKey) ifTrue:[
+	^ self at:aKey
+    ].
+    ^ aBlock value
+!
+
+at:aKey put:aValue
+    "store the argument aValue under aKey, which must be some kind of symbol."
+
+%{  /* NOCONTEXT */
+    if (__isSmallInteger(__INST(sysId))) {
+	_SYSDICT_SET(__intVal(__INST(sysId)), aKey, aValue, (OBJ *)0);
+	RETURN (aValue);
+    }
+%}.
+    "
+     the receiver is not a valid systemDictionary
+    "
+    self pimitiveFailed
+!
+
+removeKey:aKey
+    "remove the argument from the globals dictionary"
+
+%{  /* NOCONTEXT */
+    extern OBJ _SYSDICT_REMOVE();
+
+    if (__isSmallInteger(__INST(sysId))) {
+	RETURN ( _SYSDICT_REMOVE(__intVal(__INST(sysId)), aKey) );
+    }
+%}.
+    "
+     the receiver is not a valid systemDictionary
+    "
+    self pimitiveFailed
+!
+
+includesKey:aKey
+    "return true, if the key is known"
+
+%{  /* NOCONTEXT */
+    extern OBJ _SYSDICT_KEYKNOWN();
+
+    if (__isSmallInteger(__INST(sysId))) {
+	RETURN ( _SYSDICT_KEYKNOWN(__intVal(__INST(sysId)), aKey) );
+    }
+%}.
+    "
+     the receiver is not a valid systemDictionary
+    "
+    self pimitiveFailed
+!
+
+keyAtValue:anObject
+    "return the symbol under which anObject is stored - or nil"
+
+    self allKeysDo:[:aKey |
+	(self at:aKey) == anObject ifTrue:[^ aKey]
+    ]
+
+    "Smalltalk keyAtValue:Object"
+!
+
+keys
+    "return a collection with all keys in the Smalltalk dictionary"
+
+    |keys|
+
+    keys := IdentitySet new.
+    self allKeysDo:[:k | keys add:k].
+    ^ keys
+! !
+
+!SystemDictionary class methodsFor:'copying'!
+
+shallowCopy
+    "redefine copy - there is only one instance of each dictionary"
+
+    ^ self
+!
+
+simpleDeepCopy
+    "redefine copy - there is only one instance of each dictionary"
+
+    ^ self
+!
+
+deepCopyUsing:aDictionary
+    "redefine copy - there is only one instance of each dictionary"
+
+    ^ self
+!
+
+deepCopy
+    "redefine copy - there is only one instance of each dictionary"
+
+    ^ self
+! !
+
+!SystemDictionary methodsFor:'inspecting'!
+
+inspect
+    "redefined to launch a DictionaryInspector on the receiver
+     (instead of the default InspectorView)."
+
+    DictionaryInspectorView isNil ifTrue:[
+	super inspect
+    ] ifFalse:[
+	DictionaryInspectorView openOn:self
+    ]
+! !
+
+!SystemDictionary methodsFor:'enumeration'!
+
+do:aBlock
+    "evaluate the argument, aBlock for all values in the dictionary"
+%{
+    if (__isSmallInteger(__INST(sysId))) {
+	_SYSDICT_DO(__intVal(__INST(sysId)), &aBlock COMMA_CON);
+    }
+%}.
+    "
+     the receiver is not a valid systemDictionary
+    "
+    self pimitiveFailed
+
+    "
+     Smalltalk do:[:value | value class name printNL]
+    "
+!
+
+allKeysDo:aBlock
+    "evaluate the argument, aBlock for all keys in the dictionary"
+%{
+    if (__isSmallInteger(__INST(sysId))) {
+	_SYSDICT_KEYSDO(__intVal(__INST(sysId)), &aBlock COMMA_CON);
+    }
+%}.
+    "
+     the receiver is not a valid systemDictionary
+    "
+    self pimitiveFailed
+
+    "
+     Smalltalk allKeysDo:[:key | key printNL]
+    "
+!
+
+associationsDo:aBlock
+    "evaluate the argument, aBlock for all key/value pairs 
+     in the dictionary"
+
+    self allKeysDo:[:aKey |
+	aBlock value:(aKey -> (self at:aKey))
+    ]
+
+    "
+     Smalltalk associationsDo:[:assoc | assoc printNL]
+    "
+!
+
+keysAndValuesDo:aBlock
+    "evaluate the two-arg block, aBlock for all keys and values"
+
+    self allKeysDo:[:aKey |
+	aBlock value:aKey value:(self at:aKey)
+    ]
+! !
+
+!SystemDictionary methodsFor:'queries'!
+
+cellAt:aKey
+    "return the address of a global cell
+     - used internally for compiler only"
+
+%{  /* NOCONTEXT */
+    extern OBJ _SYSDICT_GETCELL();
+
+    if (__isSmallInteger(__INST(sysId))) {
+	RETURN ( _SYSDICT_GETCELL(__intVal(__INST(sysId)), aKey) );
+    }
+%}.
+    "
+     the receiver is not a valid systemDictionary
+    "
+    self pimitiveFailed
+!
+
+references:anObject
+    "return true, if I refer to the argument, anObject
+     must be reimplemented since systemDictionaries are no real collections."
+
+    self do:[:o |
+	(o == anObject) ifTrue:[^ true]
+    ].
+    ^ false
+! !
+
+!SystemDictionary class methodsFor: 'binary storage'!
+
+addGlobalsTo:globalDictionary manager: manager
+    |pools|
+
+    pools := Set new.
+    self associationsDo:[:assoc |
+	|value|
+
+	value := assoc value.
+	value == self ifFalse:[
+	    value isClass ifTrue:[
+		value addGlobalsTo:globalDictionary manager:manager.
+		pools addAll:value sharedPools
+	    ] ifFalse:[
+		globalDictionary at:assoc put:self
+	    ].
+	    value isNil ifFalse:[
+		globalDictionary at:value put:self
+	    ]
+	]
+    ].
+
+    pools do:[:poolDictionary|
+	poolDictionary addGlobalsTo:globalDictionary manager:manager
+    ]
+!
+
+storeBinaryDefinitionOf:anObject on:stream manager:manager
+    |string|
+
+    anObject class == Association ifTrue:[
+	string := 'Smalltalk associationAt:', anObject key storeString
+    ] ifFalse: [
+	string := 'Smalltalk at:', (self keyAtValue: anObject) storeString
+    ].
+    stream nextNumber:2 put:string size.
+    string do:[:char | stream nextPut:char asciiValue]
+! !
--- a/not_delivered/VMBehavior.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/not_delivered/VMBehavior.st	Wed Jun 08 22:53:07 2011 +0100
@@ -605,6 +605,7 @@
 !VMBehavior class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/not_delivered/VMBehavior.st,v 1.1 1996/09/12 01:03:24 cg Exp $'
+    ^ '$Id$'
 ! !
 VMBehavior initialize!
+
--- a/resources/af.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/af.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /var/local/cvs/stx/libbasic/resources/af.rs,v 1.3 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/af.rs,v 1.3 2004/03/15 16:39:09 cg Exp $
 ;
 ; Afrikaans strings
 ;
@@ -53,3 +53,4 @@
 
 
 
+
--- a/resources/de.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/de.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /var/local/cvs/stx/libbasic/resources/de.rs,v 1.8 2010-06-08 19:20:52 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/de.rs,v 1.8 2010/06/08 19:20:52 cg Exp $
 ;
 ; German strings
 ;
@@ -200,3 +200,4 @@
 
 
 
+
--- a/resources/el.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/el.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-7
 
-; $Header: /var/local/cvs/stx/libbasic/resources/el.rs,v 1.2 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/el.rs,v 1.2 2004/03/15 16:39:09 cg Exp $
 ;
 ; Greek strings
 ;
@@ -53,3 +53,4 @@
 
 
 
+
--- a/resources/en.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/en.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /var/local/cvs/stx/libbasic/resources/en.rs,v 1.2 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/en.rs,v 1.2 2004/03/15 16:39:09 cg Exp $
 ;
 ; English date strings
 ;
@@ -148,3 +148,4 @@
 
 
 
+
--- a/resources/eo.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/eo.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding utf8
 
-; $Header: /var/local/cvs/stx/libbasic/resources/eo.rs,v 1.3 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/eo.rs,v 1.3 2004/03/15 16:39:09 cg Exp $
 ;
 ; Esperanto strings
 ;
@@ -53,3 +53,4 @@
 
 
 
+
--- a/resources/fr.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/fr.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /var/local/cvs/stx/libbasic/resources/fr.rs,v 1.3 2008-02-05 12:23:42 sr Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/fr.rs,v 1.3 2008/02/05 12:23:42 sr Exp $
 ;
 ; French strings
 ;
@@ -55,3 +55,4 @@
 
 
 
+
--- a/resources/hu.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/hu.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding utf-8
 
-; $Header: /var/local/cvs/stx/libbasic/resources/hu.rs,v 1.2 2006-10-23 10:20:55 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/hu.rs,v 1.2 2006/10/23 10:20:55 cg Exp $
 ;
 ; Hungarian strings
 ;
@@ -53,3 +53,4 @@
 
 
 
+
--- a/resources/it.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/it.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /var/local/cvs/stx/libbasic/resources/it.rs,v 1.4 2006-10-28 14:11:17 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/it.rs,v 1.4 2006/10/28 14:11:17 cg Exp $
 ;
 ; Italian strings
 ;
@@ -59,3 +59,4 @@
 
 
 
+
--- a/resources/ja.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/ja.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding utf-8
 
-; $Header: /var/local/cvs/stx/libbasic/resources/ja.rs,v 1.2 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/ja.rs,v 1.2 2004/03/15 16:39:09 cg Exp $
 ;
 ; Japanese strings
 ;
@@ -64,3 +64,4 @@
 
 
 
+
--- a/resources/nl.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/nl.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /var/local/cvs/stx/libbasic/resources/nl.rs,v 1.2 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/nl.rs,v 1.2 2004/03/15 16:39:09 cg Exp $
 ;
 ; Dutch strings
 ;
@@ -53,3 +53,4 @@
 
 
 
+
--- a/resources/no.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/no.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /var/local/cvs/stx/libbasic/resources/no.rs,v 1.2 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/no.rs,v 1.2 2004/03/15 16:39:09 cg Exp $
 ;
 ; Norwegian strings
 ;
@@ -53,3 +53,4 @@
 
 
 
+
--- a/resources/pt.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/pt.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /var/local/cvs/stx/libbasic/resources/pt.rs,v 1.2 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/pt.rs,v 1.2 2004/03/15 16:39:09 cg Exp $
 ;
 ; Portuguese strings
 ;
@@ -54,3 +54,4 @@
 
 
 
+
--- a/resources/resources.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/resources.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,7 +1,7 @@
 #encoding ascii
 
 ;
-; $Header: /var/local/cvs/stx/libbasic/resources/resources.rs,v 1.8 2008-11-28 16:44:55 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/resources.rs,v 1.8 2008/11/28 16:44:55 cg Exp $
 ;
 
 #if Language == #af
@@ -133,3 +133,4 @@
 
 
 
+
--- a/resources/ro.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/ro.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-2
 
-; $Header: /var/local/cvs/stx/libbasic/resources/ro.rs,v 1.2 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/ro.rs,v 1.2 2004/03/15 16:39:09 cg Exp $
 ;
 ; Romanian strings
 ;
@@ -53,3 +53,4 @@
 
 
 
+
--- a/resources/ru.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/ru.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-5
 
-; $Header: /var/local/cvs/stx/libbasic/resources/ru.rs,v 1.2 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/ru.rs,v 1.2 2004/03/15 16:39:09 cg Exp $
 ;
 ; Russian strings
 ;
@@ -53,3 +53,4 @@
 
 
 
+
--- a/resources/sv.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/sv.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /var/local/cvs/stx/libbasic/resources/sv.rs,v 1.3 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/sv.rs,v 1.3 2004/03/15 16:39:09 cg Exp $
 ;
 ; Swedish strings
 ;
@@ -57,3 +57,4 @@
 
 
 
+
--- a/resources/tr.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/tr.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /var/local/cvs/stx/libbasic/resources/tr.rs,v 1.2 2004-03-15 16:39:09 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/tr.rs,v 1.2 2004/03/15 16:39:09 cg Exp $
 ;
 ; Turkish strings
 ;
@@ -53,3 +53,4 @@
 
 
 
+
--- a/resources/zh.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/zh.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding utf8
 
-; $Header: /var/local/cvs/stx/libbasic/resources/zh.rs,v 1.2 2008-11-28 16:44:28 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/zh.rs,v 1.2 2008/11/28 16:44:28 cg Exp $
 ;
 ; Chinese simplified
 ; extracted from google by claus - can someone proofread, please.
@@ -53,3 +53,4 @@
 
 
 
+
--- a/resources/zh_trad.rs	Fri Jun 03 18:15:16 2011 +0100
+++ b/resources/zh_trad.rs	Wed Jun 08 22:53:07 2011 +0100
@@ -1,6 +1,6 @@
 #encoding utf8
 
-; $Header: /var/local/cvs/stx/libbasic/resources/zh_trad.rs,v 1.2 2008-11-28 16:50:03 cg Exp $
+; $Header: /cvs/stx/stx/libbasic/resources/zh_trad.rs,v 1.2 2008/11/28 16:50:03 cg Exp $
 ;
 ; Chinese traditional
 ; this file contains 8bit national characters;
@@ -14,3 +14,4 @@
 
 
 
+
--- a/stx_libbasic.st	Fri Jun 03 18:15:16 2011 +0100
+++ b/stx_libbasic.st	Wed Jun 08 22:53:07 2011 +0100
@@ -533,23 +533,24 @@
     "Return a SVN revision number of myself.
      This number is updated after a commit"
 
-    ^ "$SVN-Revision:"'10631M'"$"
+    ^ "$SVN-Revision:"'10642M'"$"
 ! !
 
 !stx_libbasic class methodsFor:'documentation'!
 
 version
-    ^ '$Id: stx_libbasic.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: stx_libbasic.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /var/local/cvs/stx/libbasic/stx_libbasic.st,v 1.82 2011-02-09 10:46:16 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/stx_libbasic.st,v 1.82 2011/02/09 10:46:16 cg Exp '
 !
 
 version_SVN
-    ^ '$Id: stx_libbasic.st 10632 2011-04-09 17:19:04Z vranyj1 $'
+    ^ '$Id: stx_libbasic.st 10643 2011-06-08 21:53:07Z vranyj1 $'
 ! !
 
 
 
 
+
--- a/vms.mak	Fri Jun 03 18:15:16 2011 +0100
+++ b/vms.mak	Wed Jun 08 22:53:07 2011 +0100
@@ -2,7 +2,7 @@
 # DO NOT EDIT 
 # automatically generated from Make.proto
 #
-# $Header: /var/local/cvs/stx/libbasic/vms.mak,v 1.9 2001-10-31 15:02:19 cg Exp $
+# $Header: /cvs/stx/stx/libbasic/vms.mak,v 1.9 2001/10/31 15:02:19 cg Exp $
 #
 TOP=..
 LIBNAME=libbasic
@@ -301,3 +301,4 @@
 
 
 
+