Merge jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 16 Feb 2016 07:24:34 +0000
branchjv
changeset 19229 c20beb908660
parent 19228 f2f3abaadcb4 (diff)
parent 19224 9799d5bedd22 (current diff)
child 19236 e6403ba50de1
Merge
Collection.st
Dictionary.st
SequenceableCollection.st
Stream.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore	Tue Feb 16 07:24:34 2016 +0000
@@ -0,0 +1,23 @@
+syntax: glob
+*.chg
+*~
+*.orig
+*.o
+*.so
+*.sc
+*Init.c
+*.H
+*.STH
+*/makefile
+*/docs/output/*
+*/docs/*.xml.profiled
+
+*/objbc
+*/objvc
+*.res
+*-Test.xml
+*.base
+*.orig
+*.local
+*.other
+makefile
--- a/AbortOperationRequest.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/AbortOperationRequest.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 AbortAllOperationRequest subclass:#AbortOperationRequest
@@ -64,7 +63,14 @@
 !AbortOperationRequest class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/AbortOperationRequest.st,v 1.5 2005-01-11 17:04:57 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/AbortOperationRequest.st,v 1.5 2005/01/11 17:04:57 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: AbortOperationRequest.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 AbortOperationRequest initialize!
+
+
+
--- a/ActivityNotification.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ActivityNotification.st	Tue Feb 16 07:24:34 2016 +0000
@@ -74,7 +74,14 @@
 !ActivityNotification class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ActivityNotification.st,v 1.4 2008-10-04 08:42:14 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ActivityNotification.st,v 1.4 2008/10/04 08:42:14 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: ActivityNotification.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 ActivityNotification initialize!
+
+
+
--- a/AllocationFailure.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/AllocationFailure.st	Tue Feb 16 07:24:34 2016 +0000
@@ -40,9 +40,14 @@
 "
 ! !
 
+
 !AllocationFailure class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/AllocationFailure.st,v 1.6 2013-03-13 23:47:13 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: AllocationFailure.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
--- a/ApplicationDefinition.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ApplicationDefinition.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 2006 by eXept Software AG
               All Rights Reserved
@@ -1793,6 +1791,10 @@
 LIBFILES=$(LIBDIR_LIBRUN)\librun.lib
 ALLLIB=$(LIBFILES) $(APP_IMPORTLIBS) $(APP_RT_LIB)
 
+!!if defined(USEMINGW32)
+RT_DLL=libgcc_s_dw2-1.dll
+!!endif
+
 REQUIRED_LIBS=librun.dll %(REQUIRED_LIBS)
 REQUIRED_FILES=$(RT_DLL) $(X11_DLL) $(XEXT_DLL) symbols.stc $(REQUIRED_LIBS)
 
@@ -1953,6 +1955,7 @@
 librun.dll: $(TOP)\librun\$(OBJDIR_LIBRUN)\librun.dll
         copy $(TOP)\librun\$(OBJDIR_LIBRUN)\librun.dll librun.dll
 
+!!ifdef USEBC 
 #cs3245.dll
 $(RT_DLL): $(TOP)\support\win32\borland\$(RT_DLL)
         copy $(TOP)\support\win32\borland\$(RT_DLL) $(RT_DLL)
@@ -1962,6 +1965,12 @@
 
 Xext.dll: $(TOP)\support\win32\Xext.dll
         copy $(TOP)\support\win32\Xext.dll Xext.dll
+!!endif
+
+!!if defined(USEMINGW32)
+$(RT_DLL): $(MINGW_DIR)\bin\$(RT_DLL)
+        -copy $(MINGW_DIR)\bin\$(RT_DLL) $(RT_DLL)
+!!endif
 
 symbols.stc: $(TOP)\include\symbols.stc
         copy $(TOP)\include\symbols.stc symbols.stc
@@ -2000,6 +2009,7 @@
 
     "Modified: / 22-11-2012 / 17:18:28 / cg"
     "Modified: / 02-06-2015 / 17:40:03 / gg"
+    "Modified: / 26-01-2016 / 14:23:35 / jv"
 !
 
 bc_dot_mak_app_source_rules
@@ -2851,7 +2861,7 @@
   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
 SectionEnd
 
-LangString appOpen ${LANG_GERMAN}  "Mit %(PRODUCT_NAME) öffnen"
+LangString appOpen ${LANG_GERMAN}  "Mit %(PRODUCT_NAME) ffnen"
 LangString appOpen ${LANG_ENGLISH} "Open with %(PRODUCT_NAME)"
 
 LangString DESC_Section1 ${LANG_ENGLISH} "Program components of %(PRODUCT_NAME)"
@@ -2885,7 +2895,7 @@
 
 Function un.onInit
 !!insertmacro MUI_UNGETLANGUAGE
-  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Möchten Sie %(PRODUCT_NAME) und alle seine Komponenten deinstallieren?" IDYES +2
+  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Mchten Sie %(PRODUCT_NAME) und alle seine Komponenten deinstallieren?" IDYES +2
   Abort
 FunctionEnd
 
@@ -3152,6 +3162,11 @@
     ^ '$Header$'
 !
 
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+!
+
 version_SVN
     ^ '$ Id: ApplicationDefinition.st 10645 2011-06-09 15:28:45Z vranyj1  $'
 ! !
--- a/ArgumentError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ArgumentError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -50,6 +50,10 @@
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/ArgumentError.st,v 1.4 2013-12-16 13:36:35 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: ArgumentError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/ArithmeticError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ArithmeticError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -40,9 +40,14 @@
 "
 ! !
 
+
 !ArithmeticError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/ArithmeticError.st,v 1.8 2013-03-13 23:44:07 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: ArithmeticError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
--- a/Array.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Array.st	Tue Feb 16 07:24:34 2016 +0000
@@ -326,11 +326,11 @@
     if (__isSmallInteger(index)) {
 	indx = __intVal(index) - 1;
 	slf = self;
-
+	cls = __qClass(slf);
 	cls = __qClass(slf);
 	nIndex = __BYTES2OBJS__(__qSize(slf) - OHDR_SIZE);
 	if (cls == Array) {
-fetch:
+	    fetch:
 	    if ((unsigned INT)indx < (unsigned INT)nIndex) {
 		RETURN ( __InstPtr(slf)->i_instvars[indx] );
 	    }
@@ -372,11 +372,11 @@
     if (__isSmallInteger(index)) {
 	indx = __intVal(index) - 1;
 	slf = self;
-
+        cls = __qClass(slf);
 	cls = __qClass(slf);
 	nIndex = __BYTES2OBJS__(__qSize(slf) - OHDR_SIZE);
 	if (cls == Array) {
-store:
+	    store:
 	    if ((unsigned INT)indx < (unsigned INT)nIndex) {
 		__InstPtr(slf)->i_instvars[indx] = anObject;
 		__STORE(slf, anObject);
--- a/AspectVisitor.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/AspectVisitor.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 Visitor subclass:#AspectVisitor
@@ -131,5 +130,12 @@
 !AspectVisitor class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/AspectVisitor.st,v 1.1 2004-06-11 17:55:26 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/AspectVisitor.st,v 1.1 2004/06/11 17:55:26 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: AspectVisitor.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/AssertionFailedError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/AssertionFailedError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -43,5 +43,12 @@
 !AssertionFailedError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/AssertionFailedError.st,v 1.3 2008-09-30 18:09:46 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/AssertionFailedError.st,v 1.3 2008/09/30 18:09:46 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: AssertionFailedError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/BadLiteralsError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/BadLiteralsError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 InvalidCodeError subclass:#BadLiteralsError
@@ -50,7 +49,14 @@
 !BadLiteralsError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/BadLiteralsError.st,v 1.4 2003-09-05 10:27:45 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/BadLiteralsError.st,v 1.4 2003/09/05 10:27:45 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: BadLiteralsError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 BadLiteralsError initialize!
+
+
+
--- a/BadRomanNumberFormatError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/BadRomanNumberFormatError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -43,5 +43,8 @@
 !BadRomanNumberFormatError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/BadRomanNumberFormatError.st,v 1.3 2008-08-06 09:52:59 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/BadRomanNumberFormatError.st,v 1.3 2008/08/06 09:52:59 cg Exp $'
 ! !
+
+
+
--- a/Behavior.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Behavior.st	Tue Feb 16 07:24:34 2016 +0000
@@ -23,7 +23,7 @@
 !Behavior class methodsFor:'documentation'!
 
 VS
-    ^ 'Header: /cvs/stx/stx/libbasic/Behavior.st,v 1.315 2011/11/29 10:20:21 cg Exp '
+    ^ 'Header: /cvs/stx/stx/libbasic/Behavior.st,v 1.315 2011/11/29 10:20:21 cg Exp '
 !
 
 copyright
@@ -2539,7 +2539,11 @@
 # if ! defined(FAST_ARRAY_MEMSET)
     REGISTER char *cp;
     short *sp;
-    long *lp;
+#  if defined(__i386__) || defined(__x86__) || defined(__x86_64__) || defined(__sparc__)
+    int *lp;
+#  else
+#   error "please (conditionally) declare lp as pointer to 4byte integer type"
+#  endif
 # endif
     REGISTER OBJ *op;
     float *fp;
@@ -2683,8 +2687,12 @@
 #  else
 		    op = __InstPtr(newobj)->i_instvars;
 		    while (nInstVars--)
-			*op++ = nil;
-		    lp = (long *)op;
+		    *op++ = nil;
+#   if defined(__i386__) || defined(__x86__) || defined(__x86_64__) || defined(__sparc__)
+    		    lp = (int *)op;
+#   else
+#    error "please (conditionally) cast op to pointer to 4byte integer type"
+#   endif		    		    
 		    while (nindexedinstvars--)
 			*lp++ = 0;
 #  endif
--- a/Block.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Block.st	Tue Feb 16 07:24:34 2016 +0000
@@ -3022,6 +3022,19 @@
     sourcePos := aString  "/ misuse the sourcePosition slot
 !
 
+sourcePosition
+    "Returns the source position withing method's source.
+     The position is 1-based offset of opening bracket.
+     If the source position is not known (because of lack of
+     support in compiler and/or virtual machine or anut other 
+     reason, nil is returned"
+
+    ^ sourcePos
+
+    "Created: / 01-06-2015 / 13:05:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+
+!   
+
 sourcePosition:position
     "set the position of the source within my method.
      This interface is for the compiler only."
--- a/BreakPointInterrupt.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/BreakPointInterrupt.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 HaltInterrupt subclass:#BreakPointInterrupt
@@ -45,5 +44,12 @@
 !BreakPointInterrupt class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/BreakPointInterrupt.st,v 1.3 2003-08-29 19:18:16 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/BreakPointInterrupt.st,v 1.3 2003/08/29 19:18:16 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: BreakPointInterrupt.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/CachingRegistry.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CachingRegistry.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,7 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
+"{ Package: 'stx:libbasic' }"
 "{ Package: 'stx:libbasic' }"
 
 Registry subclass:#CachingRegistry
@@ -94,4 +94,11 @@
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/CachingRegistry.st,v 1.2 2015-04-21 16:01:16 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: CachingRegistry.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/CannotResumeError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CannotResumeError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -51,5 +51,9 @@
 
 version_CVS
     ^ '$Header: /cvs/stx/stx/libbasic/CannotResumeError.st,v 1.6 2013-12-24 10:39:51 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: CannotResumeError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
--- a/CannotReturnError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CannotReturnError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -51,5 +51,9 @@
 
 version_CVS
     ^ '$Header: /cvs/stx/stx/libbasic/CannotReturnError.st,v 1.6 2013-12-24 10:39:59 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: CannotReturnError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
--- a/CharacterArray.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterArray.st	Tue Feb 16 07:24:34 2016 +0000
@@ -6478,7 +6478,11 @@
 	]
     ].
 
-    str := self species new:newSz.
+    self isText ifTrue:[ 
+        str := Text string: (self string class new: newSz).
+    ] ifFalse:[
+        str := self species new:newSz.
+    ].
 
     hasEmphasis := self hasChangeOfEmphasis.
 
@@ -6532,7 +6536,8 @@
 	     with:$2) withTabsExpanded
     "
 
-    "Modified: 12.5.1996 / 13:05:10 / cg"
+    "Modified: / 12-05-1996 / 13:05:10 / cg"
+    "Modified: / 21-04-2015 / 15:40:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 withoutAllSpaces
@@ -7618,6 +7623,11 @@
 
 version_CVS
     ^ '$Header$'
+!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
 ! !
 
 
--- a/CharacterEncoder.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoder.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 2004 by eXept Software AG
               All Rights Reserved
@@ -1617,6 +1615,18 @@
 
 !CharacterEncoder::InverseEncoder methodsFor:'stream support'!
 
+readNext:charactersToRead charactersFrom:stream 
+    ^ decoder readNext:charactersToRead charactersFrom:stream
+
+    "Created: / 05-10-2015 / 09:05:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+readNextCharacterFrom:aStream
+    ^ decoder readNextCharacterFrom:aStream
+
+    "Created: / 05-10-2015 / 09:05:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 readNextInputCharacterFrom:aStream
     ^ decoder readNextInputCharacterFrom:aStream
 ! !
@@ -1748,6 +1758,11 @@
 
 version_CVS
     ^ '$Header$'
+!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
 ! !
 
 
--- a/CharacterEncoderImplementations__ASCII.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__ASCII.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -241,5 +240,12 @@
 !ASCII class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ASCII.st,v 1.4 2005-03-31 18:12:07 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ASCII.st,v 1.4 2005/03/31 18:12:07 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: CharacterEncoderImplementations__ASCII.st 10807 2012-05-05 21:58:24Z vranyj1 $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__BIG5.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__BIG5.st	Tue Feb 16 07:24:34 2016 +0000
@@ -52,5 +52,8 @@
 !BIG5 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__BIG5.st,v 1.3 2004-03-09 21:59:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__BIG5.st,v 1.3 2004/03/09 21:59:35 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__CNS11643.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__CNS11643.st	Tue Feb 16 07:24:34 2016 +0000
@@ -46,5 +46,8 @@
 !CNS11643 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__CNS11643.st,v 1.3 2004-03-09 21:59:27 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__CNS11643.st,v 1.3 2004/03/09 21:59:27 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__CP437.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__CP437.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -933,5 +932,9 @@
 !CP437 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__CP437.st,v 1.4 2005-03-31 18:12:18 cg Exp $'
+    ^ '$Id: CharacterEncoderImplementations__CP437.st 10842 2012-09-07 10:49:18Z vranyj1 $'
+!
+
+version_SVN
+    ^ '$Id:: CharacterEncoderImplementations__CP437.st 10842 2012-09-07 10:49:18Z vranyj1                                           $'
 ! !
--- a/CharacterEncoderImplementations__GB2313_1980.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__GB2313_1980.st	Tue Feb 16 07:24:34 2016 +0000
@@ -52,5 +52,8 @@
 !GB2313_1980 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__GB2313_1980.st,v 1.3 2004-03-09 21:57:26 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__GB2313_1980.st,v 1.3 2004/03/09 21:57:26 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__HANGUL.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__HANGUL.st	Tue Feb 16 07:24:34 2016 +0000
@@ -46,5 +46,8 @@
 !HANGUL class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__HANGUL.st,v 1.3 2004-03-09 21:57:59 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__HANGUL.st,v 1.3 2004/03/09 21:57:59 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__ISO10646_1.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__ISO10646_1.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -64,5 +63,12 @@
 !ISO10646_1 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ISO10646_1.st,v 1.4 2004-03-09 22:00:08 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ISO10646_1.st,v 1.4 2004/03/09 22:00:08 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: CharacterEncoderImplementations__ISO10646_1.st 10807 2012-05-05 21:58:24Z vranyj1 $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__ISO10646_to_SGML.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__ISO10646_to_SGML.st	Tue Feb 16 07:24:34 2016 +0000
@@ -145,7 +145,7 @@
 
     "
      CharacterEncoderImplementations::ISO10646_to_SGML
-        encodeString:'hello ' 
+        encodeString:'hello ' 
     "
 
     "Modified: / 23-10-2006 / 13:25:27 / cg"
@@ -154,5 +154,8 @@
 !ISO10646_to_SGML class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ISO10646_to_SGML.st,v 1.3 2006-10-23 11:25:11 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ISO10646_to_SGML.st,v 1.3 2006/10/23 11:25:11 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__ISO10646_to_UTF8.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__ISO10646_to_UTF8.st	Tue Feb 16 07:24:34 2016 +0000
@@ -424,7 +424,7 @@
     "
 ! !
 
-!ISO10646_to_UTF8 privateMethodsFor:'queries'!
+!ISO10646_to_UTF8 methodsFor:'queries'!
 
 bytesToReadFor:firstByte 
     |bytesToRead|
@@ -442,9 +442,7 @@
     ^bytesToRead
 
     "Created: / 14-06-2005 / 17:17:24 / janfrog"
-! !
-
-!ISO10646_to_UTF8 methodsFor:'queries'!
+!
 
 characterSize:charOrcodePoint
     "return the number of bytes required to encode codePoint"
@@ -482,26 +480,31 @@
     "Created: / 16-06-2005 / 11:45:14 / masca"
 !
 
-readNextCharacterFrom:aStream 
-
-    |firstByte bytesToRead str|
+readNextCharacterFrom:stream
 
-    firstByte := aStream peek. 
-    firstByte ifNil:[^nil].
-    firstByte := firstByte asInteger.
-    bytesToRead := self bytesToReadFor:firstByte.
-    str := self decodeString:(aStream next:bytesToRead).
-    str size > 1 ifTrue:[
-        self error:'Badly coded method'
+    | c bytesYetToRead s |
+    c := stream peek.
+    bytesYetToRead := self bytesToReadFor:c codePoint.
+    bytesYetToRead == 1 ifTrue:[ 
+        stream next.
+        ^ c.
     ].
-    ^ str first
+    s := (String new:1 + bytesYetToRead) writeStream.
+    s nextPutAll:(stream next: bytesYetToRead).
+    ^ self decodeString:s contents
 
     "Created: / 14-06-2005 / 17:03:59 / janfrog"
+    "Modified: / 03-10-2015 / 08:49:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ISO10646_to_UTF8 class methodsFor:'documentation'!
 
 version
     ^ '$Header$'
+!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
 ! !
 
--- a/CharacterEncoderImplementations__ISO8859_11.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__ISO8859_11.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -596,5 +595,9 @@
 !ISO8859_11 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ISO8859_11.st,v 1.4 2005-03-31 18:12:32 cg Exp $'
+    ^ '$Id: CharacterEncoderImplementations__ISO8859_11.st 10842 2012-09-07 10:49:18Z vranyj1 $'
+!
+
+version_SVN
+    ^ '$Id:: CharacterEncoderImplementations__ISO8859_11.st 10842 2012-09-07 10:49:18Z vranyj1                                      $'
 ! !
--- a/CharacterEncoderImplementations__ISO8859_2.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__ISO8859_2.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -766,5 +765,12 @@
 !ISO8859_2 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ISO8859_2.st,v 1.4 2005-03-31 18:12:47 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ISO8859_2.st,v 1.4 2005/03/31 18:12:47 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: CharacterEncoderImplementations__ISO8859_2.st 10807 2012-05-05 21:58:24Z vranyj1 $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__JIS0201.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__JIS0201.st	Tue Feb 16 07:24:34 2016 +0000
@@ -558,5 +558,8 @@
 !JIS0201 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JIS0201.st,v 1.3 2004-03-09 21:59:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JIS0201.st,v 1.3 2004/03/09 21:59:06 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__JIS0208.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__JIS0208.st	Tue Feb 16 07:24:34 2016 +0000
@@ -28646,5 +28646,8 @@
 !JIS0208 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JIS0208.st,v 1.4 2008-10-30 19:54:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JIS0208.st,v 1.4 2008/10/30 19:54:58 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__JIS0208_to_EUC.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__JIS0208_to_EUC.st	Tue Feb 16 07:24:34 2016 +0000
@@ -332,5 +332,8 @@
 !JIS0208_to_EUC class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JIS0208_to_EUC.st,v 1.4 2005-07-08 17:15:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JIS0208_to_EUC.st,v 1.4 2005/07/08 17:15:01 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__JIS0208_to_JIS7.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__JIS0208_to_JIS7.st	Tue Feb 16 07:24:34 2016 +0000
@@ -372,5 +372,8 @@
 !JIS0208_to_JIS7 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JIS0208_to_JIS7.st,v 1.7 2004-03-12 09:15:11 ca Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JIS0208_to_JIS7.st,v 1.7 2004/03/12 09:15:11 ca Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__JIS0212.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__JIS0212.st	Tue Feb 16 07:24:34 2016 +0000
@@ -46,5 +46,8 @@
 !JIS0212 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JIS0212.st,v 1.3 2004-03-09 21:58:52 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JIS0212.st,v 1.3 2004/03/09 21:58:52 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__JOHAB.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__JOHAB.st	Tue Feb 16 07:24:34 2016 +0000
@@ -46,5 +46,8 @@
 !JOHAB class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JOHAB.st,v 1.3 2004-03-09 21:57:37 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JOHAB.st,v 1.3 2004/03/09 21:57:37 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__KSC5601.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__KSC5601.st	Tue Feb 16 07:24:34 2016 +0000
@@ -46,5 +46,8 @@
 !KSC5601 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__KSC5601.st,v 1.3 2004-03-09 21:58:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__KSC5601.st,v 1.3 2004/03/09 21:58:35 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Arabic.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Arabic.st	Tue Feb 16 07:24:34 2016 +0000
@@ -584,5 +584,8 @@
 !MAC_Arabic class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Arabic.st,v 1.3 2004-03-09 21:59:43 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Arabic.st,v 1.3 2004/03/09 21:59:43 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_CentralEuropean.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_CentralEuropean.st	Tue Feb 16 07:24:34 2016 +0000
@@ -373,5 +373,8 @@
 !MAC_CentralEuropean class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_CentralEuropean.st,v 1.3 2004-03-09 21:57:41 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_CentralEuropean.st,v 1.3 2004/03/09 21:57:41 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Croatian.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Croatian.st	Tue Feb 16 07:24:34 2016 +0000
@@ -399,5 +399,8 @@
 !MAC_Croatian class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Croatian.st,v 1.3 2004-03-09 22:00:00 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Croatian.st,v 1.3 2004/03/09 22:00:00 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Cyrillic.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Cyrillic.st	Tue Feb 16 07:24:34 2016 +0000
@@ -398,5 +398,8 @@
 !MAC_Cyrillic class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Cyrillic.st,v 1.3 2004-03-09 21:57:56 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Cyrillic.st,v 1.3 2004/03/09 21:57:56 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Dingbats.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Dingbats.st	Tue Feb 16 07:24:34 2016 +0000
@@ -375,5 +375,8 @@
 !MAC_Dingbats class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Dingbats.st,v 1.3 2004-03-09 22:01:02 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Dingbats.st,v 1.3 2004/03/09 22:01:02 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Farsi.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Farsi.st	Tue Feb 16 07:24:34 2016 +0000
@@ -569,5 +569,8 @@
 !MAC_Farsi class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Farsi.st,v 1.3 2004-03-09 22:00:02 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Farsi.st,v 1.3 2004/03/09 22:00:02 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Greek.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Greek.st	Tue Feb 16 07:24:34 2016 +0000
@@ -847,5 +847,8 @@
 !MAC_Greek class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Greek.st,v 1.3 2004-03-09 21:59:52 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Greek.st,v 1.3 2004/03/09 21:59:52 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Hebrew.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Hebrew.st	Tue Feb 16 07:24:34 2016 +0000
@@ -611,5 +611,8 @@
 !MAC_Hebrew class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Hebrew.st,v 1.3 2004-03-09 22:01:14 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Hebrew.st,v 1.3 2004/03/09 22:01:14 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Iceland.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Iceland.st	Tue Feb 16 07:24:34 2016 +0000
@@ -417,5 +417,8 @@
 !MAC_Iceland class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Iceland.st,v 1.3 2004-03-09 21:59:24 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Iceland.st,v 1.3 2004/03/09 21:59:24 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Japanese.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Japanese.st	Tue Feb 16 07:24:34 2016 +0000
@@ -46,5 +46,8 @@
 !MAC_Japanese class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Japanese.st,v 1.3 2004-03-09 21:59:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Japanese.st,v 1.3 2004/03/09 21:59:58 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Korean.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Korean.st	Tue Feb 16 07:24:34 2016 +0000
@@ -46,5 +46,8 @@
 !MAC_Korean class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Korean.st,v 1.3 2004-03-09 21:58:29 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Korean.st,v 1.3 2004/03/09 21:58:29 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Romanian.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Romanian.st	Tue Feb 16 07:24:34 2016 +0000
@@ -414,5 +414,8 @@
 !MAC_Romanian class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Romanian.st,v 1.3 2004-03-09 21:58:05 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Romanian.st,v 1.3 2004/03/09 21:58:05 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Symbol.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Symbol.st	Tue Feb 16 07:24:34 2016 +0000
@@ -445,5 +445,8 @@
 !MAC_Symbol class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Symbol.st,v 1.3 2004-03-09 21:57:44 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Symbol.st,v 1.3 2004/03/09 21:57:44 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Thai.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Thai.st	Tue Feb 16 07:24:34 2016 +0000
@@ -432,5 +432,8 @@
 !MAC_Thai class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Thai.st,v 1.3 2004-03-09 21:59:00 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Thai.st,v 1.3 2004/03/09 21:59:00 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MAC_Turkish.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MAC_Turkish.st	Tue Feb 16 07:24:34 2016 +0000
@@ -389,5 +389,8 @@
 !MAC_Turkish class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Turkish.st,v 1.3 2004-03-09 21:59:55 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Turkish.st,v 1.3 2004/03/09 21:59:55 cg Exp $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MS_Arabic.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MS_Arabic.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -839,5 +838,9 @@
 !MS_Arabic class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Arabic.st,v 1.4 2005-03-31 18:48:44 cg Exp $'
+    ^ '$Id: CharacterEncoderImplementations__MS_Arabic.st 10842 2012-09-07 10:49:18Z vranyj1 $'
+!
+
+version_SVN
+    ^ '$Id:: CharacterEncoderImplementations__MS_Arabic.st 10842 2012-09-07 10:49:18Z vranyj1                                       $'
 ! !
--- a/CharacterEncoderImplementations__MS_Baltic.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MS_Baltic.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -852,5 +851,12 @@
 !MS_Baltic class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Baltic.st,v 1.4 2005-03-31 18:48:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Baltic.st,v 1.4 2005/03/31 18:48:58 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: CharacterEncoderImplementations__MS_Baltic.st 10807 2012-05-05 21:58:24Z vranyj1 $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MS_Cyrillic.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MS_Cyrillic.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -718,5 +717,12 @@
 !MS_Cyrillic class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Cyrillic.st,v 1.4 2005-03-31 18:48:53 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Cyrillic.st,v 1.4 2005/03/31 18:48:53 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: CharacterEncoderImplementations__MS_Cyrillic.st 10807 2012-05-05 21:58:24Z vranyj1 $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MS_EastEuropean.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MS_EastEuropean.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -813,5 +812,9 @@
 !MS_EastEuropean class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_EastEuropean.st,v 1.4 2005-03-31 18:48:47 cg Exp $'
+    ^ '$Id: CharacterEncoderImplementations__MS_EastEuropean.st 10842 2012-09-07 10:49:18Z vranyj1 $'
+!
+
+version_SVN
+    ^ '$Id:: CharacterEncoderImplementations__MS_EastEuropean.st 10842 2012-09-07 10:49:18Z vranyj1                                 $'
 ! !
--- a/CharacterEncoderImplementations__MS_Greek.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MS_Greek.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -671,5 +670,12 @@
 !MS_Greek class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Greek.st,v 1.4 2005-03-31 18:49:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Greek.st,v 1.4 2005/03/31 18:49:01 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: CharacterEncoderImplementations__MS_Greek.st 10807 2012-05-05 21:58:24Z vranyj1 $'
 ! !
+
+
+
--- a/CharacterEncoderImplementations__MS_Hebrew.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MS_Hebrew.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -607,5 +606,9 @@
 !MS_Hebrew class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Hebrew.st,v 1.4 2005-03-31 18:48:50 cg Exp $'
+    ^ '$Id: CharacterEncoderImplementations__MS_Hebrew.st 10842 2012-09-07 10:49:18Z vranyj1 $'
+!
+
+version_SVN
+    ^ '$Id:: CharacterEncoderImplementations__MS_Hebrew.st 10842 2012-09-07 10:49:18Z vranyj1                                       $'
 ! !
--- a/CharacterEncoderImplementations__MS_Symbol.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MS_Symbol.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -88,5 +87,9 @@
 !MS_Symbol class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Symbol.st,v 1.5 2005-03-31 18:48:55 cg Exp $'
+    ^ '$Id: CharacterEncoderImplementations__MS_Symbol.st 10842 2012-09-07 10:49:18Z vranyj1 $'
+!
+
+version_SVN
+    ^ '$Id:: CharacterEncoderImplementations__MS_Symbol.st 10842 2012-09-07 10:49:18Z vranyj1                                       $'
 ! !
--- a/CharacterEncoderImplementations__MS_Turkish.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__MS_Turkish.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 "{ NameSpace: CharacterEncoderImplementations }"
@@ -819,5 +818,9 @@
 !MS_Turkish class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Turkish.st,v 1.5 2005-03-31 18:49:37 cg Exp $'
+    ^ '$Id: CharacterEncoderImplementations__MS_Turkish.st 10842 2012-09-07 10:49:18Z vranyj1 $'
+!
+
+version_SVN
+    ^ '$Id:: CharacterEncoderImplementations__MS_Turkish.st 10842 2012-09-07 10:49:18Z vranyj1                                      $'
 ! !
--- a/CharacterEncoderImplementations__NEXT.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterEncoderImplementations__NEXT.st	Tue Feb 16 07:24:34 2016 +0000
@@ -313,5 +313,8 @@
 !NEXT class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__NEXT.st,v 1.3 2004-03-09 22:00:52 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__NEXT.st,v 1.3 2004/03/09 22:00:52 cg Exp $'
 ! !
+
+
+
--- a/CharacterRangeError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/CharacterRangeError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 DecodingError subclass:#CharacterRangeError
@@ -38,5 +37,12 @@
 !CharacterRangeError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterRangeError.st,v 1.2 2004-03-09 21:58:39 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterRangeError.st,v 1.2 2004/03/09 21:58:39 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: CharacterRangeError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/Class.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Class.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 1989 by Claus Gittinger
 	       All Rights Reserved
@@ -497,6 +495,8 @@
 ! !
 
 
+
+
 !Class methodsFor:'Compatibility-Dolphin'!
 
 defaultCategoryForDolphinClasses
@@ -700,8 +700,67 @@
 
 !Class methodsFor:'Compatibility-Squeak'!
 
-poolDictionaryNames
-    ^ self sharedPoolNames
+classVarNamed: aSymbol
+    "Returns the value of class variable named `aSymbol`.
+
+     Warning: This method is here for Squeak/Pharo compatibility.
+     Do not use it in Smalltalk/X code"
+
+    ^ self classVarAt: aSymbol
+
+    "Created: / 17-08-2015 / 13:07:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+
+!
+
+classVarNamed: aSymbol put: anObject
+    "Set the value of class variable named `aSymbol` to `anObject`.
+
+     Warning: This method is here for Squeak/Pharo compatibility.
+     Do not use it in Smalltalk/X code"
+
+    self classVarAt: aSymbol put: anObject
+
+    "Created: / 25-07-2015 / 07:25:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 27-07-2015 / 09:59:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+classVariableNamed: aSymbol
+    "Returns the value of class variable named `aSymbol`.
+
+     Warning: This method is here for Squeak/Pharo compatibility.
+     Do not use it in Smalltalk/X code"
+
+    ^ self classVarAt: aSymbol
+
+    "Created: / 27-07-2015 / 09:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+classVariables
+    "Return an array of class variable names.
+
+     Warning: This method is here for Squeak/Pharo compatibility.
+     Do not use it in Smalltalk/X code"
+
+    ^ self classVarNames
+
+    "Created: / 27-07-2015 / 09:36:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+instanceVariables
+    "Return an array of instance variable names.
+
+     Warning: This method is here for Squeak/Pharo compatibility.
+     Do not use it in Smalltalk/X code"
+   
+    ^ self instVarNames
+
+    "Created: / 27-07-2015 / 09:35:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+theMetaClass
+    ^ self theMetaclass
+
+    "Created: / 28-08-2015 / 09:36:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Class methodsFor:'accessing'!
@@ -1814,6 +1873,58 @@
     "Modified: / 06-10-2006 / 13:34:18 / cg"
 !
 
+sourceChecksumFromBinaryRevision
+    | start checksum |
+    revision isNil ifTrue:[ ^ nil ].
+    start:= revision indexOfString: 'SHA1='.
+    start ~~ 0 ifTrue:[ 
+        checksum := ByteArray new: 20.
+        1 to: 20 do: [ :i |
+            | si hi lo |
+
+            si := start + 3 + (i * 2).
+            hi := (revision at: si) digitValue.
+            lo := (revision at: si + 1) digitValue.
+            checksum at:i put: ((hi bitShift:4) bitOr: lo)
+        ]
+    ].
+    ^ checksum
+
+    "
+    Class sourceChecksumFromBinaryRevision
+    "
+
+    "Created: / 26-01-2016 / 11:18:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+sourceChecksumFromStream: aStream
+    | stream position hash buffer |
+
+    stream := aStream stream.
+    position := stream position.
+    hash := SHA1Stream new.
+    buffer := ByteArray new: 4096.
+    stream position: 0.
+
+    [ stream atEnd ] whileFalse:[ 
+        | read |
+
+        read := stream nextAvailableBytes: buffer size into: buffer startingAt: 1.
+        hash nextPutBytes: read from: buffer startingAt: 1 
+    ].
+    stream position: position.
+    ^ hash hashValue.
+    
+    "
+    Class sourceChecksumFromStream: Class sourceStream
+    Class sourceChecksumFromBinaryRevision            
+
+    (Class sourceChecksumFromStream: Class sourceStream) = (Class sourceChecksumFromBinaryRevision)
+    "
+
+    "Created: / 26-01-2016 / 11:24:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 sourceCodeManager
     "Return my (configured) source code manager."
 
@@ -1980,6 +2091,7 @@
 ! !
 
 
+
 !Class methodsFor:'adding & removing'!
 
 removeFromSystem
@@ -2920,6 +3032,7 @@
         encoder:encoder
 
     "Modified: / 18-07-2011 / 09:17:17 / cg"
+    "Modified: / 13-04-2015 / 21:15:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fileOutOn:outStreamArg withTimeStamp:stampIt withInitialize:initIt withDefinition:withDefinition methodFilter:methodFilter encoder:encoderOrNil
@@ -5411,7 +5524,7 @@
      against the version string as contained in the version method.
      This helps to detect mangled source code."
 
-    |cls meta cannotCheckReason versionMethod info
+    |cls cannotCheckReason versionMethod info
      versionFromCode versionFromSource oldPos pos src rev|
 
     ValidateSourceOnlyOnce == true ifTrue:[
@@ -5425,11 +5538,14 @@
         ].
     ].
 
-    meta := self theMetaclass.
     cls := self theNonMetaclass.
 
     cannotCheckReason := nil.
 
+    (cls sourceChecksumFromBinaryRevision) = (cls sourceChecksumFromStream: aStream) ifTrue:[ 
+        ^ true.
+    ].
+
     versionMethod := self findVersionMethod.
     versionMethod isNil ifTrue:[
         cannotCheckReason := 'no valid version method'.
@@ -5506,6 +5622,7 @@
     ^ false
 
     "Modified: / 29-09-2011 / 14:29:55 / cg"
+    "Modified: / 26-01-2016 / 12:32:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 versionMethodTemplateForSourceCodeManager:aSourceCodeManager
@@ -5795,6 +5912,11 @@
     ^ '$Header$'
 !
 
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+!
+
 version_SVN
     ^ '$ Id: Class.st 10643 2011-06-08 21:53:07Z vranyj1  $'
 ! !
--- a/ClassDescription.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ClassDescription.st	Tue Feb 16 07:24:34 2016 +0000
@@ -658,6 +658,7 @@
     "Modified: 23.4.1996 / 15:56:54 / cg"
 ! !
 
+
 !ClassDescription methodsFor:'Compatibility-Dolphin'!
 
 methodsFor
@@ -830,6 +831,13 @@
     "Created: / 28.3.1998 / 21:21:52 / cg"
 ! !
 
+!ClassDescription methodsFor:'Compatibility-Squeak'!
+
+subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString category:cat
+    ^ self subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries: '' category:cat
+
+    "Created: / 24-07-2015 / 19:28:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
 
 !ClassDescription methodsFor:'Compatibility-V''Age'!
 
@@ -4323,6 +4331,11 @@
 
 version_CVS
     ^ '$Header$'
+!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
 ! !
 
 
--- a/Context.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Context.st	Tue Feb 16 07:24:34 2016 +0000
@@ -499,14 +499,14 @@
     |l|
 
     receiver isJavaObject ifTrue:[
-	"/ chances are good that I am a javContext ...
-	self method isJavaMethod ifTrue:[
-	    ^ self javaLineNumber
-	]
+        "/ chances are good that I am a javContext ...
+        self method isJavaMethod ifTrue:[
+            ^ self javaLineNumber
+        ]
     ].
 
     lineNr notNil ifTrue:[
-	l := lineNr bitAnd:16rFFFF.
+        l := lineNr bitAnd:16rFFFF.
     ].
 
 "/    self isJavaContext ifTrue:[ |nr m|
@@ -2600,7 +2600,7 @@
                     ]
                 ].
                 numVars > 0 ifTrue:[
-                    vars := blockNode variablesIncludingInlined: (homeMethod code notNil and:[homeMethod byteCode isNil]).
+                    vars := blockNode variablesIncludingInlined: (homeMethod hasCode and:[homeMethod isDynamic not]).
                     vars notEmptyOrNil ifTrue:[
                         varNames := vars collect:[:var | var name].
                     ]
@@ -2666,7 +2666,7 @@
 
     ^ #()
 
-    "Modified: / 19-08-2013 / 12:13:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 26-12-2015 / 08:20:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 canResume
--- a/ContextError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ContextError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -44,5 +44,9 @@
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/ContextError.st,v 1.5 2013-12-24 10:39:33 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: ContextError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
--- a/Continuation.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Continuation.st	Tue Feb 16 07:24:34 2016 +0000
@@ -192,5 +192,9 @@
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/Continuation.st,v 1.16 2013-07-25 09:37:35 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: Continuation.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
--- a/ControlInterrupt.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ControlInterrupt.st	Tue Feb 16 07:24:34 2016 +0000
@@ -12,10 +12,10 @@
 "{ Package: 'stx:libbasic' }"
 
 GenericException subclass:#ControlInterrupt
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	category:'Kernel-Exceptions-Control'
+    instanceVariableNames: ''
+    classVariableNames: ''
+    poolDictionaries: ''
+    category: 'Kernel-Exceptions-Control'
 !
 
 !ControlInterrupt class methodsFor:'documentation'!
@@ -40,6 +40,7 @@
 "
 ! !
 
+
 !ControlInterrupt class methodsFor:'initialization'!
 
 initialize
@@ -50,6 +51,7 @@
     "
 ! !
 
+
 !ControlInterrupt class methodsFor:'testing'!
 
 isControlInterrupt
@@ -58,10 +60,15 @@
     "Created: / 16.11.2001 / 16:11:11 / cg"
 ! !
 
+
 !ControlInterrupt class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/ControlInterrupt.st,v 1.8 2013-04-27 10:13:40 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: ControlInterrupt.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/ControlRequest.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ControlRequest.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 Exception subclass:#ControlRequest
@@ -44,5 +43,12 @@
 !ControlRequest class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ControlRequest.st,v 1.4 2003-10-07 13:25:12 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ControlRequest.st,v 1.4 2003/10/07 13:25:12 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: ControlRequest.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/ConversionError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ConversionError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 ProceedableError subclass:#ConversionError
@@ -51,7 +50,14 @@
 !ConversionError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ConversionError.st,v 1.6 2004-08-22 17:47:16 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ConversionError.st,v 1.6 2004/08/22 17:47:16 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: ConversionError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 ConversionError initialize!
+
+
+
--- a/DateConversionError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/DateConversionError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -43,7 +43,14 @@
 !DateConversionError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/DateConversionError.st,v 1.1 2008-08-06 09:23:17 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/DateConversionError.st,v 1.1 2008/08/06 09:23:17 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: DateConversionError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 DateConversionError initialize!
+
+
+
--- a/DecodingError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/DecodingError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 CharacterEncoderError subclass:#DecodingError
@@ -38,5 +37,12 @@
 !DecodingError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/DecodingError.st,v 1.2 2004-03-09 21:59:09 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/DecodingError.st,v 1.2 2004/03/09 21:59:09 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: DecodingError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/DeepCopyError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/DeepCopyError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -50,6 +50,10 @@
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/DeepCopyError.st,v 1.2 2013-12-24 10:39:41 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: DeepCopyError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/DomainError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/DomainError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 ArithmeticError subclass:#DomainError
@@ -55,7 +54,14 @@
 !DomainError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/DomainError.st,v 1.4 2003-08-29 19:14:53 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/DomainError.st,v 1.4 2003/08/29 19:14:53 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: DomainError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 DomainError initialize!
+
+
+
--- a/ElementBoundsError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ElementBoundsError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 Error subclass:#ElementBoundsError
@@ -54,7 +53,14 @@
 !ElementBoundsError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ElementBoundsError.st,v 1.1 2004-04-23 11:16:20 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ElementBoundsError.st,v 1.1 2004/04/23 11:16:20 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: ElementBoundsError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 ElementBoundsError initialize!
+
+
+
--- a/EncodingError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/EncodingError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 CharacterEncoderError subclass:#EncodingError
@@ -38,5 +37,12 @@
 !EncodingError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/EncodingError.st,v 1.2 2004-03-09 21:57:20 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/EncodingError.st,v 1.2 2004/03/09 21:57:20 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: EncodingError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/EndOfStreamError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/EndOfStreamError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 StreamError subclass:#EndOfStreamError
@@ -64,7 +63,14 @@
 !EndOfStreamError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/EndOfStreamError.st,v 1.1 2005-11-16 08:45:55 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/EndOfStreamError.st,v 1.1 2005/11/16 08:45:55 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: EndOfStreamError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 EndOfStreamError initialize!
+
+
+
--- a/EndOfStreamNotification.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/EndOfStreamNotification.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 Notification subclass:#EndOfStreamNotification
@@ -58,5 +57,12 @@
 !EndOfStreamNotification class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/EndOfStreamNotification.st,v 1.3 2005-11-16 08:44:41 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/EndOfStreamNotification.st,v 1.3 2005/11/16 08:44:41 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: EndOfStreamNotification.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/Exception.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Exception.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 GenericException subclass:#Exception
@@ -62,6 +61,13 @@
 !Exception class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Exception.st,v 1.82 2003-10-07 13:25:24 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Exception.st,v 1.82 2003/10/07 13:25:24 stefan Exp $'
+
+!
 
+version_SVN
+    ^ '$Id: Exception.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/ExceptionHandlerSet.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ExceptionHandlerSet.st	Tue Feb 16 07:24:34 2016 +0000
@@ -110,6 +110,7 @@
 "
 ! !
 
+
 !ExceptionHandlerSet methodsFor:'Compatibility-VW5.4'!
 
 on:aSignalOrException handle:aHandler
@@ -120,6 +121,7 @@
     "Created: / 26.7.1999 / 09:51:37 / stefan"
 ! !
 
+
 !ExceptionHandlerSet methodsFor:'adding'!
 
 on:anExceptionHandler do:aHandlerBlock
@@ -135,6 +137,7 @@
     self at:anExceptionHandler put:aHandlerBlock
 ! !
 
+
 !ExceptionHandlerSet methodsFor:'queries'!
 
 accepts:anExceptionHandler
@@ -218,6 +221,7 @@
     ^ false
 ! !
 
+
 !ExceptionHandlerSet methodsFor:'save evaluation'!
 
 handleDo:aBlock
@@ -316,6 +320,7 @@
     "Modified: / 26.7.1999 / 11:36:47 / stefan"
 ! !
 
+
 !ExceptionHandlerSet methodsFor:'testing'!
 
 isExceptionHandler
@@ -325,9 +330,14 @@
     ^ true
 ! !
 
+
 !ExceptionHandlerSet class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/ExceptionHandlerSet.st,v 1.18 2013-04-04 09:37:41 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: ExceptionHandlerSet.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
--- a/ExecutionError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ExecutionError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 ProceedableError subclass:#ExecutionError
@@ -50,7 +49,14 @@
 !ExecutionError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ExecutionError.st,v 1.4 2003-09-05 10:26:58 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ExecutionError.st,v 1.4 2003/09/05 10:26:58 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: ExecutionError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 ExecutionError initialize!
+
+
+
--- a/ExternalLibraryFunction.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ExternalLibraryFunction.st	Tue Feb 16 07:24:34 2016 +0000
@@ -11,6 +11,8 @@
 "
 "{ Package: 'stx:libbasic' }"
 
+"{ NameSpace: Smalltalk }"
+
 ExternalFunction subclass:#ExternalLibraryFunction
 	instanceVariableNames:'flags moduleName returnType argumentTypes owningClass'
 	classVariableNames:'DLLPATH FLAG_VIRTUAL FLAG_NONVIRTUAL FLAG_OBJECTIVEC FLAG_ASYNC
@@ -391,6 +393,14 @@
     "Created: / 01-08-2006 / 13:56:44 / cg"
 !
 
+beObjectiveC
+    "specify this as an objective-c message send"
+
+    flags := (flags ? 0) bitOr: FLAG_OBJECTIVEC.
+
+    "Created: / 01-08-2006 / 13:56:48 / cg"
+!
+
 beUnlimitedStack
     "let this execute on the c-stack (as opposed to the thread-stack)
      for unlimited auto-sized-stack under unix/linux.
@@ -409,14 +419,6 @@
     "Created: / 01-08-2006 / 13:56:48 / cg"
 !
 
-beObjectiveC
-    "specify this as an objective-c message send"
-
-    flags := (flags ? 0) bitOr: FLAG_OBJECTIVEC.
-
-    "Created: / 01-08-2006 / 13:56:48 / cg"
-!
-
 callTypeNumber
     ^ (flags ? 0) bitAnd: CALLTYPE_MASK.
 
@@ -439,12 +441,6 @@
     "Created: / 01-08-2006 / 13:56:54 / cg"
 !
 
-isObjectiveC
-    "is this an objective-C message?"
-
-    ^ (flags ? 0) bitTest: FLAG_OBJECTIVEC.
-!
-
 isCallTypeAPI
     ^ ((flags ? 0) bitAnd: CALLTYPE_MASK) == CALLTYPE_API.
 
@@ -480,6 +476,12 @@
     "Created: / 01-08-2006 / 13:56:51 / cg"
 !
 
+isObjectiveC
+    "is this an objective-C message?"
+
+    ^ (flags ? 0) bitTest: FLAG_OBJECTIVEC.
+!
+
 isUnlimitedStack
     "will this execute on the c-stack (as opposed to the thread-stack)
      for unlimited auto-sized-stack under unix/linux.
@@ -630,10 +632,13 @@
 !ExternalLibraryFunction methodsFor:'private'!
 
 adjustTypes
+
     argumentTypes notNil ifTrue:[
-	argumentTypes := argumentTypes collect:[:argType | self ffiTypeSymbolForType:argType].
+        argumentTypes := argumentTypes collect:[:argType | self ffiTypeSymbolForType:argType].
     ].
     returnType := self ffiTypeSymbolForType:returnType.
+
+    "Modified: / 07-07-2015 / 22:18:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 linkToModule
@@ -868,41 +873,49 @@
      oldReturnType oldArgumentTypes|
 
     argTypeSymbols := argumentTypes.
+
     returnTypeSymbol := returnType.
+    returnTypeSymbol isSymbol ifTrue:[ 
+        | returnValueClass0 |
 
+        returnValueClass0 := Smalltalk at: returnTypeSymbol.
+        returnValueClass0 isBehavior ifTrue:[
+            returnValue := returnValueClass0 basicNew.
+        ] 
+    ].
     virtual := self isVirtualCPP.
     objectiveC := self isObjectiveC.
     (virtual "or:[self isNonVirtualCPP]") ifTrue:[
-	aReceiverOrNil isNil ifTrue:[
-	    "/ must have a c++ object instance
-	    self primitiveFailed.
-	].
+        aReceiverOrNil isNil ifTrue:[
+            "/ must have a c++ object instance
+            self primitiveFailed.
+        ].
 
-	"/ and it must be a kind of ExternalStructure !!
-	(aReceiverOrNil isKindOf:ExternalStructure) ifFalse:[
-	    self primitiveFailed.
-	].
-	virtual ifTrue:[
-	    vtOffset := name.
-	    (vtOffset between:0 and:10000) ifFalse:[
-		self primitiveFailed.
-	    ]
-	].
+        "/ and it must be a kind of ExternalStructure !!
+        (aReceiverOrNil isKindOf:ExternalStructure) ifFalse:[
+            self primitiveFailed.
+        ].
+        virtual ifTrue:[
+            vtOffset := name.
+            (vtOffset between:0 and:10000) ifFalse:[
+                self primitiveFailed.
+            ]
+        ].
     ] ifFalse:[
-	objectiveC ifTrue:[
-	    aReceiverOrNil isNil ifTrue:[
-		"/ must have an objective-c object instance
-		self primitiveFailed.
-	    ].
-	    (aReceiverOrNil isObjectiveCObject) ifFalse:[
-		self primitiveFailed
-	    ]
-	] ifFalse:[
-	    aReceiverOrNil notNil ifTrue:[
-		"/ must NOT have a c++/objectiveC object instance
-		self primitiveFailed.
-	    ]
-	].
+        objectiveC ifTrue:[
+            aReceiverOrNil isNil ifTrue:[
+                "/ must have an objective-c object instance
+                self primitiveFailed.
+            ].
+            (aReceiverOrNil isObjectiveCObject) ifFalse:[
+                self primitiveFailed
+            ]
+        ] ifFalse:[
+            aReceiverOrNil notNil ifTrue:[
+                "/ must NOT have a c++/objectiveC object instance
+                self primitiveFailed.
+            ]
+        ].
     ].
     async := self isAsync.
     unlimitedStack := self isUnlimitedStack.
@@ -927,17 +940,17 @@
     ffi_type *__returnType = NULL;
 
     union u {
-	INT iVal;
-	float fVal;
-	double dVal;
-	void *pointerVal;
+        INT iVal;
+        float fVal;
+        double dVal;
+        void *pointerVal;
 # if defined(HAS_LONGLONG)
-	long long longLongVal;
+        long long longLongVal;
 # else
 #  ifdef HAS_INT64
-	__int64__ longLongVal;
+        __int64__ longLongVal;
 #  else
-	struct ll { long low; long hi; } longLongVal;
+        struct ll { long low; long hi; } longLongVal;
 #  endif
 # endif
     };
@@ -956,29 +969,29 @@
 
 #   define __FAIL__(fcode) \
     { \
-	failureCode = fcode; goto getOutOfHere; \
+        failureCode = fcode; goto getOutOfHere; \
     }
 
     if (argumentsOrNil == nil) {
-	__numArgs = 0;
+        __numArgs = 0;
     } else if (__isArray(argumentsOrNil)) {
-	__numArgs = __arraySize(argumentsOrNil);
+        __numArgs = __arraySize(argumentsOrNil);
     } else {
-	__FAIL__(@symbol(BadArgumentVector))
+        __FAIL__(@symbol(BadArgumentVector))
     }
     if (argTypeSymbols == nil) {
-	__numArgsWanted = 0;
+        __numArgsWanted = 0;
     } else if (__isArray(argTypeSymbols)) {
-	__numArgsWanted = __arraySize(argTypeSymbols);
+        __numArgsWanted = __arraySize(argTypeSymbols);
     } else {
-	__FAIL__(@symbol(BadArgumentTypeVector))
+        __FAIL__(@symbol(BadArgumentTypeVector))
     }
 
     if (__numArgs != __numArgsWanted) {
-	__FAIL__(@symbol(ArgumentCountMismatch))
+        __FAIL__(@symbol(ArgumentCountMismatch))
     }
     if (__numArgs > MAX_ARGS) {
-	__FAIL__(@symbol(TooManyArguments))
+        __FAIL__(@symbol(TooManyArguments))
     }
 
     /*
@@ -987,130 +1000,130 @@
     __returnValuePointer = &__returnValue;
 
     if (returnTypeSymbol == @symbol(voidPointer)) {
-	returnTypeSymbol = @symbol(handle);
+        returnTypeSymbol = @symbol(handle);
     }
 
     if (returnTypeSymbol == @symbol(int)) {
-	__returnType = __get_ffi_type_sint();
+        __returnType = __get_ffi_type_sint();
     } else if (returnTypeSymbol == @symbol(uint)) {
-	__returnType = __get_ffi_type_uint();
+        __returnType = __get_ffi_type_uint();
     } else if (returnTypeSymbol == @symbol(uint8)) {
-	__returnType = __get_ffi_type_uint8();
+        __returnType = __get_ffi_type_uint8();
     } else if (returnTypeSymbol == @symbol(uint16)) {
-	__returnType = __get_ffi_type_uint16();
+        __returnType = __get_ffi_type_uint16();
     } else if (returnTypeSymbol == @symbol(uint32)) {
-	__returnType = __get_ffi_type_uint32();
+        __returnType = __get_ffi_type_uint32();
     } else if (returnTypeSymbol == @symbol(uint64)) {
-	__returnType = __get_ffi_type_uint64();
+        __returnType = __get_ffi_type_uint64();
 
     } else if (returnTypeSymbol == @symbol(sint)) {
-	__returnType = __get_ffi_type_sint();
+        __returnType = __get_ffi_type_sint();
     } else if (returnTypeSymbol == @symbol(sint8)) {
-	__returnType = __get_ffi_type_sint8();
+        __returnType = __get_ffi_type_sint8();
     } else if (returnTypeSymbol == @symbol(sint16)) {
-	__returnType = __get_ffi_type_sint16();
+        __returnType = __get_ffi_type_sint16();
     } else if (returnTypeSymbol == @symbol(sint32)) {
-	__returnType = __get_ffi_type_sint32();
+        __returnType = __get_ffi_type_sint32();
     } else if (returnTypeSymbol == @symbol(sint64)) {
-	__returnType = __get_ffi_type_sint64();
+        __returnType = __get_ffi_type_sint64();
 
     } else if (returnTypeSymbol == @symbol(long)) {
-	if (sizeof(long) == 4) {
-	   returnTypeSymbol = @symbol(sint32);
-	   __returnType = __get_ffi_type_sint32();
-	} else if (sizeof(long) == 8) {
-	   returnTypeSymbol = @symbol(sint64);
-	   __returnType = __get_ffi_type_sint64();
-	} else {
-	    __FAIL__(@symbol(UnknownReturnType))
-	}
+        if (sizeof(long) == 4) {
+           returnTypeSymbol = @symbol(sint32);
+           __returnType = __get_ffi_type_sint32();
+        } else if (sizeof(long) == 8) {
+           returnTypeSymbol = @symbol(sint64);
+           __returnType = __get_ffi_type_sint64();
+        } else {
+            __FAIL__(@symbol(UnknownReturnType))
+        }
 
     } else if (returnTypeSymbol == @symbol(ulong)) {
-	if (sizeof(long) == 4) {
-	   returnTypeSymbol = @symbol(uint32);
-	   __returnType = __get_ffi_type_uint32();
-	}else if (sizeof(long) == 8) {
-	   returnTypeSymbol = @symbol(uint64);
-	   __returnType = __get_ffi_type_uint64();
-	} else {
-	    __FAIL__(@symbol(UnknownReturnType))
-	}
+        if (sizeof(long) == 4) {
+           returnTypeSymbol = @symbol(uint32);
+           __returnType = __get_ffi_type_uint32();
+        }else if (sizeof(long) == 8) {
+           returnTypeSymbol = @symbol(uint64);
+           __returnType = __get_ffi_type_uint64();
+        } else {
+            __FAIL__(@symbol(UnknownReturnType))
+        }
 
     } else if (returnTypeSymbol == @symbol(bool)) {
-	__returnType = __get_ffi_type_uint();
+        __returnType = __get_ffi_type_uint();
 
     } else if (returnTypeSymbol == @symbol(float)) {
-	__returnType = __get_ffi_type_float();
+        __returnType = __get_ffi_type_float();
     } else if (returnTypeSymbol == @symbol(double)) {
-	__returnType = __get_ffi_type_double();
+        __returnType = __get_ffi_type_double();
 
     } else if (returnTypeSymbol == @symbol(void)) {
-	__returnType = __get_ffi_type_void();
-	__returnValuePointer = NULL;
+        __returnType = __get_ffi_type_void();
+        __returnValuePointer = NULL;
     } else if ((returnTypeSymbol == @symbol(pointer))
-	       || (returnTypeSymbol == @symbol(handle))
-	       || (returnTypeSymbol == @symbol(charPointer))
-	       || (returnTypeSymbol == @symbol(bytePointer))
-	       || (returnTypeSymbol == @symbol(floatPointer))
-	       || (returnTypeSymbol == @symbol(doublePointer))
-	       || (returnTypeSymbol == @symbol(intPointer))
-	       || (returnTypeSymbol == @symbol(shortPointer))
-	       || (returnTypeSymbol == @symbol(wcharPointer))) {
-	__returnType = __get_ffi_type_pointer();
+               || (returnTypeSymbol == @symbol(handle))
+               || (returnTypeSymbol == @symbol(charPointer))
+               || (returnTypeSymbol == @symbol(bytePointer))
+               || (returnTypeSymbol == @symbol(floatPointer))
+               || (returnTypeSymbol == @symbol(doublePointer))
+               || (returnTypeSymbol == @symbol(intPointer))
+               || (returnTypeSymbol == @symbol(shortPointer))
+               || (returnTypeSymbol == @symbol(wcharPointer))) {
+        __returnType = __get_ffi_type_pointer();
     } else {
-	if (__isSymbol(returnTypeSymbol)
-	 && ((returnValueClass = __GLOBAL_GET(returnTypeSymbol)) != nil)) {
-	    if (! __isBehaviorLike(returnValueClass)) {
-		__FAIL__(@symbol(NonBehaviorReturnType))
-	    }
-	    if (! __qIsSubclassOfExternalAddress(returnValueClass)) {
-		__FAIL__(@symbol(NonExternalAddressReturnType))
-	    }
-	    __returnType = __get_ffi_type_pointer();
-	    returnTypeSymbol = @symbol(pointer);
-	} else {
-	    __FAIL__(@symbol(UnknownReturnType))
-	}
+        if (__isSymbol(returnTypeSymbol)
+         && ((returnValueClass = __GLOBAL_GET(returnTypeSymbol)) != nil)) {
+            if (! __isBehaviorLike(returnValueClass)) {
+                __FAIL__(@symbol(NonBehaviorReturnType))
+            }
+            if (! __qIsSubclassOfExternalAddress(returnValueClass)) {
+                __FAIL__(@symbol(NonExternalAddressReturnType))
+            }
+            __returnType = __get_ffi_type_pointer();
+            returnTypeSymbol = @symbol(pointer);
+        } else {
+            __FAIL__(@symbol(UnknownReturnType))
+        }
     }
 
     /*
      * validate the c++ object
      */
     if (aReceiverOrNil != nil) {
-	struct cPlusPlusInstance {
-	    void **vTable;
-	};
-	struct cPlusPlusInstance *inst;
+        struct cPlusPlusInstance {
+            void **vTable;
+        };
+        struct cPlusPlusInstance *inst;
 
-	if (__isExternalAddressLike(aReceiverOrNil)) {
-	    inst = (void *)(__externalAddressVal(aReceiverOrNil));
-	} else if (__isExternalBytesLike(aReceiverOrNil)) {
-	    inst = (void *)(__externalBytesVal(aReceiverOrNil));
-	} else {
-	    __FAIL__(@symbol(InvalidInstance))
-	}
-	__argValues[0].pointerVal = inst;
-	__argValuePointersIncludingThis[0] = &(__argValues[0]);
-	__argTypes[0] = __get_ffi_type_pointer();
+        if (__isExternalAddressLike(aReceiverOrNil)) {
+            inst = (void *)(__externalAddressVal(aReceiverOrNil));
+        } else if (__isExternalBytesLike(aReceiverOrNil)) {
+            inst = (void *)(__externalBytesVal(aReceiverOrNil));
+        } else {
+            __FAIL__(@symbol(InvalidInstance))
+        }
+        __argValues[0].pointerVal = inst;
+        __argValuePointersIncludingThis[0] = &(__argValues[0]);
+        __argTypes[0] = __get_ffi_type_pointer();
 
-	__argValuePointers = &__argValuePointersIncludingThis[1];
-	__argTypes = &__argTypesIncludingThis[1];
-	__argValues = &__argValuesIncludingThis[1];
-	__numArgsIncludingThis = __numArgs + 1;
+        __argValuePointers = &__argValuePointersIncludingThis[1];
+        __argTypes = &__argTypesIncludingThis[1];
+        __argValues = &__argValuesIncludingThis[1];
+        __numArgsIncludingThis = __numArgs + 1;
 
-	if (virtual == true) {
-	    if (! __isSmallInteger(vtOffset)) {
-		__FAIL__(@symbol(InvalidVTableIndex))
-	    }
-	    codeAddress = inst->vTable[__intVal(vtOffset)];
+        if (virtual == true) {
+            if (! __isSmallInteger(vtOffset)) {
+                __FAIL__(@symbol(InvalidVTableIndex))
+            }
+            codeAddress = inst->vTable[__intVal(vtOffset)];
 # ifdef VERBOSE
-	    printf("virtual codeAddress: %x\n", codeAddress);
+            printf("virtual codeAddress: %x\n", codeAddress);
 # endif
-	}
+        }
     } else {
-	__numArgsIncludingThis = __numArgs;
+        __numArgsIncludingThis = __numArgs;
 # ifdef VERBOSE
-	printf("codeAddress: %x\n", codeAddress);
+        printf("codeAddress: %x\n", codeAddress);
 # endif
     }
 
@@ -1118,339 +1131,361 @@
      * validate all arg types and setup arg-buffers
      */
     for (i=0; i<__numArgs; i++) {
-	ffi_type *thisType;
-	void *argValuePtr;
-	OBJ typeSymbol;
-	OBJ arg;
+        ffi_type *thisType;
+        void *argValuePtr;
+        OBJ typeSymbol;
+        OBJ arg;
+
+        failureInfo = __mkSmallInteger(i+1);   /* in case there is one */
 
-	failureInfo = __mkSmallInteger(i+1);   /* in case there is one */
+        typeSymbol = __ArrayInstPtr(argTypeSymbols)->a_element[i];
+        arg = __ArrayInstPtr(argumentsOrNil)->a_element[i];
+
+        if (typeSymbol == @symbol(handle)) {
+            typeSymbol = @symbol(pointer);
+        } else if (typeSymbol == @symbol(voidPointer)) {
+            typeSymbol = @symbol(pointer);
+        }
 
-	typeSymbol = __ArrayInstPtr(argTypeSymbols)->a_element[i];
-	arg = __ArrayInstPtr(argumentsOrNil)->a_element[i];
-
-	if (typeSymbol == @symbol(handle)) {
-	    typeSymbol = @symbol(pointer);
-	} else if (typeSymbol == @symbol(voidPointer)) {
-	    typeSymbol = @symbol(pointer);
-	}
+        if (typeSymbol == @symbol(long)) {
+            if (sizeof(long) == sizeof(int)) {
+                typeSymbol = @symbol(sint);
+            } else {
+                if (sizeof(long) == 4) {
+                    typeSymbol = @symbol(sint32);
+                } else if (sizeof(long) == 8) {
+                    typeSymbol = @symbol(sint64);
+                }
+            }
+        }
+        if (typeSymbol == @symbol(ulong)) {
+            if (sizeof(unsigned long) == sizeof(unsigned int)) {
+                typeSymbol = @symbol(uint);
+            } else {
+                if (sizeof(long) == 4) {
+                    typeSymbol = @symbol(uint32);
+                } else if (sizeof(long) == 8) {
+                    typeSymbol = @symbol(uint64);
+                }
+            }
+        }
 
-	if (typeSymbol == @symbol(long)) {
-	    if (sizeof(long) == sizeof(int)) {
-		typeSymbol = @symbol(sint);
-	    } else {
-		if (sizeof(long) == 4) {
-		    typeSymbol = @symbol(sint32);
-		} else if (sizeof(long) == 8) {
-		    typeSymbol = @symbol(sint64);
-		}
-	    }
-	}
-	if (typeSymbol == @symbol(ulong)) {
-	    if (sizeof(unsigned long) == sizeof(unsigned int)) {
-		typeSymbol = @symbol(uint);
-	    } else {
-		if (sizeof(long) == 4) {
-		    typeSymbol = @symbol(uint32);
-		} else if (sizeof(long) == 8) {
-		    typeSymbol = @symbol(uint64);
-		}
-	    }
-	}
+        if (typeSymbol == @symbol(int) || typeSymbol == @symbol(sint)) {
+            thisType = __get_ffi_type_sint();
+            if (__isSmallInteger(arg)) {
+                __argValues[i].iVal = __intVal(arg);
+            } else {
+                __argValues[i].iVal = __signedLongIntVal(arg);
+                if (__argValues[i].iVal == 0) {
+                    __FAIL__(@symbol(InvalidArgument))
+                }
+            }
+            argValuePtr = &(__argValues[i].iVal);
+
+        } else if (typeSymbol == @symbol(uint)) {
+            thisType = __get_ffi_type_uint();
 
-	if (typeSymbol == @symbol(int) || typeSymbol == @symbol(sint)) {
-	    thisType = __get_ffi_type_sint();
-	    if (__isSmallInteger(arg)) {
-		__argValues[i].iVal = __intVal(arg);
-	    } else {
-		__argValues[i].iVal = __signedLongIntVal(arg);
-		if (__argValues[i].iVal == 0) {
-		    __FAIL__(@symbol(InvalidArgument))
-		}
-	    }
-	    argValuePtr = &(__argValues[i].iVal);
-
-	} else if (typeSymbol == @symbol(uint)) {
-	    thisType = __get_ffi_type_uint();
+            if (__isSmallInteger(arg)) {
+                __argValues[i].iVal = __intVal(arg);
+            } else {
+                __argValues[i].iVal = __unsignedLongIntVal(arg);
+                if (__argValues[i].iVal == 0) {
+                    __FAIL__(@symbol(InvalidArgument))
+                }
+            }
+            argValuePtr = &(__argValues[i].iVal);
 
-	    if (__isSmallInteger(arg)) {
-		__argValues[i].iVal = __intVal(arg);
-	    } else {
-		__argValues[i].iVal = __unsignedLongIntVal(arg);
-		if (__argValues[i].iVal == 0) {
-		    __FAIL__(@symbol(InvalidArgument))
-		}
-	    }
-	    argValuePtr = &(__argValues[i].iVal);
+        } else if (typeSymbol == @symbol(uint8)) {
+            thisType = __get_ffi_type_uint8();
+            if (! __isSmallInteger(arg)) {
+                __FAIL__(@symbol(InvalidArgument))
+            }
+            __argValues[i].iVal = __intVal(arg);
+            if (((unsigned)(__argValues[i].iVal)) > 0xFF) {
+                __FAIL__(@symbol(InvalidArgument))
+            }
+            argValuePtr = &(__argValues[i].iVal);
 
-	} else if (typeSymbol == @symbol(uint8)) {
-	    thisType = __get_ffi_type_uint8();
-	    if (! __isSmallInteger(arg)) {
-		__FAIL__(@symbol(InvalidArgument))
-	    }
-	    __argValues[i].iVal = __intVal(arg);
-	    if (((unsigned)(__argValues[i].iVal)) > 0xFF) {
-		__FAIL__(@symbol(InvalidArgument))
-	    }
-	    argValuePtr = &(__argValues[i].iVal);
+        } else if (typeSymbol == @symbol(sint8)) {
+            thisType = __get_ffi_type_sint8();
+            if (! __isSmallInteger(arg)) {
+                __FAIL__(@symbol(InvalidArgument))
+            }
+            __argValues[i].iVal = __intVal(arg);
+            if (((__argValues[i].iVal) < -0x80) || ((__argValues[i].iVal) > 0x7F))  {
+                __FAIL__(@symbol(InvalidArgument))
+            }
+            argValuePtr = &(__argValues[i].iVal);
 
-	} else if (typeSymbol == @symbol(sint8)) {
-	    thisType = __get_ffi_type_sint8();
-	    if (! __isSmallInteger(arg)) {
-		__FAIL__(@symbol(InvalidArgument))
-	    }
-	    __argValues[i].iVal = __intVal(arg);
-	    if (((__argValues[i].iVal) < -0x80) || ((__argValues[i].iVal) > 0x7F))  {
-		__FAIL__(@symbol(InvalidArgument))
-	    }
-	    argValuePtr = &(__argValues[i].iVal);
+        } else if (typeSymbol == @symbol(uint16)) {
+            thisType = __get_ffi_type_uint16();
+            if (! __isSmallInteger(arg)) {
+                __FAIL__(@symbol(InvalidArgument))
+            }
+            __argValues[i].iVal = __intVal(arg);
+            if (((unsigned)(__argValues[i].iVal)) > 0xFFFF) {
+                __FAIL__(@symbol(InvalidArgument))
+            }
+            argValuePtr = &(__argValues[i].iVal);
 
-	} else if (typeSymbol == @symbol(uint16)) {
-	    thisType = __get_ffi_type_uint16();
-	    if (! __isSmallInteger(arg)) {
-		__FAIL__(@symbol(InvalidArgument))
-	    }
-	    __argValues[i].iVal = __intVal(arg);
-	    if (((unsigned)(__argValues[i].iVal)) > 0xFFFF) {
-		__FAIL__(@symbol(InvalidArgument))
-	    }
-	    argValuePtr = &(__argValues[i].iVal);
+        } else if (typeSymbol == @symbol(sint16)) {
+            thisType = __get_ffi_type_sint16();
+            if (! __isSmallInteger(arg)) {
+                __FAIL__(@symbol(InvalidArgument))
+            }
+            __argValues[i].iVal = __intVal(arg);
+            if (((__argValues[i].iVal) < -0x8000) || ((__argValues[i].iVal) > 0x7FFF))  {
+                __FAIL__(@symbol(InvalidArgument))
+            }
+            argValuePtr = &(__argValues[i].iVal);
 
-	} else if (typeSymbol == @symbol(sint16)) {
-	    thisType = __get_ffi_type_sint16();
-	    if (! __isSmallInteger(arg)) {
-		__FAIL__(@symbol(InvalidArgument))
-	    }
-	    __argValues[i].iVal = __intVal(arg);
-	    if (((__argValues[i].iVal) < -0x8000) || ((__argValues[i].iVal) > 0x7FFF))  {
-		__FAIL__(@symbol(InvalidArgument))
-	    }
-	    argValuePtr = &(__argValues[i].iVal);
+        } else if ((typeSymbol == @symbol(uint32)) || (typeSymbol == @symbol(sint32))) {
+            thisType = __get_ffi_type_uint32();
+            if (__isSmallInteger(arg)) {
+                __argValues[i].iVal = __intVal(arg);
+            } else {
+                __argValues[i].iVal = __unsignedLongIntVal(arg);
+                if (__argValues[i].iVal == 0) {
+                    __FAIL__(@symbol(InvalidArgument))
+                }
+            }
+            argValuePtr = &(__argValues[i].iVal);
 
-	} else if ((typeSymbol == @symbol(uint32)) || (typeSymbol == @symbol(sint32))) {
-	    thisType = __get_ffi_type_uint32();
-	    if (__isSmallInteger(arg)) {
-		__argValues[i].iVal = __intVal(arg);
-	    } else {
-		__argValues[i].iVal = __unsignedLongIntVal(arg);
-		if (__argValues[i].iVal == 0) {
-		    __FAIL__(@symbol(InvalidArgument))
-		}
-	    }
-	    argValuePtr = &(__argValues[i].iVal);
+        } else if (typeSymbol == @symbol(uint64)) {
+            thisType = __get_ffi_type_uint64();
+            if (__isSmallInteger(arg)) {
+              __argValues[i].longLongVal = __intVal(arg);
+            } else {
+            	if (!__unsignedLong64IntVal(arg, &(__argValues[i].longLongVal))) {
+            	    __FAIL__(@symbol(InvalidArgument))
+            	}
+            }
+            argValuePtr = &(__argValues[i].longLongVal);
+            
+        } else if (typeSymbol == @symbol(sint64)) {
+            thisType = __get_ffi_type_sint64();
+            if (__isSmallInteger(arg)) {
+              __argValues[i].longLongVal = __intVal(arg);
+            } else {
+            	if (!__signedLong64IntVal(arg, &(__argValues[i].longLongVal))) {
+            	    __FAIL__(@symbol(InvalidArgument))
+            	}
+            }
+            argValuePtr = &(__argValues[i].longLongVal);
+            
+        } else if (typeSymbol == @symbol(float)) {
+            thisType = __get_ffi_type_float();
+            if (__isSmallInteger(arg)) {
+                __argValues[i].fVal = (float)(__intVal(arg));
+            } else if (__isFloat(arg)) {
+                __argValues[i].fVal = (float)(__floatVal(arg));
+            } else if (__isShortFloat(arg)) {
+                __argValues[i].fVal = (float)(__shortFloatVal(arg));
+            } else {
+                __FAIL__(@symbol(InvalidArgument))
+            }
+            argValuePtr = &(__argValues[i].fVal);
 
-	} else if (typeSymbol == @symbol(float)) {
-	    thisType = __get_ffi_type_float();
-	    if (__isSmallInteger(arg)) {
-		__argValues[i].fVal = (float)(__intVal(arg));
-	    } else if (__isFloat(arg)) {
-		__argValues[i].fVal = (float)(__floatVal(arg));
-	    } else if (__isShortFloat(arg)) {
-		__argValues[i].fVal = (float)(__shortFloatVal(arg));
-	    } else {
-		__FAIL__(@symbol(InvalidArgument))
-	    }
-	    argValuePtr = &(__argValues[i].fVal);
+        } else if (typeSymbol == @symbol(double)) {
+            thisType = __get_ffi_type_double();
+            if (__isSmallInteger(arg)) {
+                __argValues[i].dVal = (double)(__intVal(arg));
+            } else if (__isFloat(arg)) {
+                __argValues[i].dVal = (double)(__floatVal(arg));
+            } else if (__isShortFloat(arg)) {
+                __argValues[i].dVal = (double)(__shortFloatVal(arg));
+            } else {
+                __FAIL__(@symbol(InvalidArgument))
+            }
+            argValuePtr = &(__argValues[i].dVal);
 
-	} else if (typeSymbol == @symbol(double)) {
-	    thisType = __get_ffi_type_double();
-	    if (__isSmallInteger(arg)) {
-		__argValues[i].dVal = (double)(__intVal(arg));
-	    } else if (__isFloat(arg)) {
-		__argValues[i].dVal = (double)(__floatVal(arg));
-	    } else if (__isShortFloat(arg)) {
-		__argValues[i].dVal = (double)(__shortFloatVal(arg));
-	    } else {
-		__FAIL__(@symbol(InvalidArgument))
-	    }
-	    argValuePtr = &(__argValues[i].dVal);
-
-	} else if (typeSymbol == @symbol(void)) {
-	    thisType = __get_ffi_type_void();
-	    argValuePtr = &null;
+        } else if (typeSymbol == @symbol(void)) {
+            thisType = __get_ffi_type_void();
+            argValuePtr = &null;
 
-	} else if (typeSymbol == @symbol(charPointer)) {
-	    thisType = __get_ffi_type_pointer();
-	    if (__isStringLike(arg)) {
-		if (async == true) goto badArgForAsyncCall;
-		__argValues[i].pointerVal = (void *)(__stringVal(arg));
-	    } else if (__isBytes(arg)) {
-		if (async == true) goto badArgForAsyncCall;
-		__argValues[i].pointerVal = (void *)(__byteArrayVal(arg));
-	    } else if (__isExternalAddressLike(arg)) {
-		__argValues[i].pointerVal = (void *)(__externalAddressVal(arg));
-	    } else if (__isExternalBytesLike(arg)) {
-		__argValues[i].pointerVal = (void *)(__externalBytesVal(arg));
-	    } else {
-		if (arg == nil) {
-		    __argValues[i].pointerVal = (void *)0;
-		} else {
-		    __FAIL__(@symbol(InvalidArgument))
-		}
-	    }
-	    argValuePtr = &(__argValues[i].pointerVal);;
+        } else if (typeSymbol == @symbol(charPointer)) {
+            thisType = __get_ffi_type_pointer();
+            if (__isStringLike(arg)) {
+                if (async == true) goto badArgForAsyncCall;
+                __argValues[i].pointerVal = (void *)(__stringVal(arg));
+            } else if (__isBytes(arg)) {
+                if (async == true) goto badArgForAsyncCall;
+                __argValues[i].pointerVal = (void *)(__byteArrayVal(arg));
+            } else if (__isExternalAddressLike(arg)) {
+                __argValues[i].pointerVal = (void *)(__externalAddressVal(arg));
+            } else if (__isExternalBytesLike(arg)) {
+                __argValues[i].pointerVal = (void *)(__externalBytesVal(arg));
+            } else {
+                if (arg == nil) {
+                    __argValues[i].pointerVal = (void *)0;
+                } else {
+                    __FAIL__(@symbol(InvalidArgument))
+                }
+            }
+            argValuePtr = &(__argValues[i].pointerVal);;
 
-	} else if (typeSymbol == @symbol(wcharPointer)) {
-	    thisType = __get_ffi_type_pointer();
-	    if (__isUnicode16String(arg)) {
-		if (async == true) goto badArgForAsyncCall;
-		__argValues[i].pointerVal = (void *)(__unicode16StringVal(arg));
-	    } else if (__isBytes(arg)) {
-		if (async == true) goto badArgForAsyncCall;
-		__argValues[i].pointerVal = (void *)(__byteArrayVal(arg));
-	    } else if (__isExternalAddressLike(arg)) {
-		__argValues[i].pointerVal = (void *)(__externalAddressVal(arg));
-	    } else if (__isExternalBytesLike(arg)) {
-		__argValues[i].pointerVal = (void *)(__externalBytesVal(arg));
-	    } else {
-		if (arg == nil) {
-		    __argValues[i].pointerVal = (void *)0;
-		} else {
-		    __FAIL__(@symbol(InvalidArgument))
-		}
-	    }
-	    argValuePtr = &(__argValues[i].pointerVal);;
+        } else if (typeSymbol == @symbol(wcharPointer)) {
+            thisType = __get_ffi_type_pointer();
+            if (__isUnicode16String(arg)) {
+                if (async == true) goto badArgForAsyncCall;
+                __argValues[i].pointerVal = (void *)(__unicode16StringVal(arg));
+            } else if (__isBytes(arg)) {
+                if (async == true) goto badArgForAsyncCall;
+                __argValues[i].pointerVal = (void *)(__byteArrayVal(arg));
+            } else if (__isExternalAddressLike(arg)) {
+                __argValues[i].pointerVal = (void *)(__externalAddressVal(arg));
+            } else if (__isExternalBytesLike(arg)) {
+                __argValues[i].pointerVal = (void *)(__externalBytesVal(arg));
+            } else {
+                if (arg == nil) {
+                    __argValues[i].pointerVal = (void *)0;
+                } else {
+                    __FAIL__(@symbol(InvalidArgument))
+                }
+            }
+            argValuePtr = &(__argValues[i].pointerVal);;
 
-	} else if (typeSymbol == @symbol(floatPointer)) {
-	    thisType = __get_ffi_type_pointer();
-	    if (__isBytes(arg)) {
-		if (async == true) goto badArgForAsyncCall;
-		__argValues[i].pointerVal = (void *)(__byteArrayVal(arg));
-	    } else if (__isExternalAddressLike(arg)) {
-		__argValues[i].pointerVal = (void *)(__externalAddressVal(arg));
-	    } else if (__isExternalBytesLike(arg)) {
-		__argValues[i].pointerVal = (void *)(__externalBytesVal(arg));
-	    } else if (__isFloats(arg)) {
-		char *p = (char *)(__FloatArrayInstPtr(arg)->f_element);
-		int nInstBytes;
-		OBJ cls;
+        } else if (typeSymbol == @symbol(floatPointer)) {
+            thisType = __get_ffi_type_pointer();
+            if (__isBytes(arg)) {
+                if (async == true) goto badArgForAsyncCall;
+                __argValues[i].pointerVal = (void *)(__byteArrayVal(arg));
+            } else if (__isExternalAddressLike(arg)) {
+                __argValues[i].pointerVal = (void *)(__externalAddressVal(arg));
+            } else if (__isExternalBytesLike(arg)) {
+                __argValues[i].pointerVal = (void *)(__externalBytesVal(arg));
+            } else if (__isFloats(arg)) {
+                char *p = (char *)(__FloatArrayInstPtr(arg)->f_element);
+                int nInstBytes;
+                OBJ cls;
 
-		if (async == true) goto badArgForAsyncCall;
-		cls = __qClass(arg);
-		nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
-		p = p + nInstBytes;
-		__argValues[i].pointerVal = p;
-	    } else {
-		if (arg == nil) {
-		    __argValues[i].pointerVal = (void *)0;
-		} else {
-		    __FAIL__(@symbol(InvalidArgument))
-		}
-	    }
-	    argValuePtr = &(__argValues[i].pointerVal);;
+                if (async == true) goto badArgForAsyncCall;
+                cls = __qClass(arg);
+                nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
+                p = p + nInstBytes;
+                __argValues[i].pointerVal = p;
+            } else {
+                if (arg == nil) {
+                    __argValues[i].pointerVal = (void *)0;
+                } else {
+                    __FAIL__(@symbol(InvalidArgument))
+                }
+            }
+            argValuePtr = &(__argValues[i].pointerVal);;
 
-	} else if (typeSymbol == @symbol(doublePointer)) {
-	    thisType = __get_ffi_type_pointer();
-	    if (__isBytes(arg)) {
-		if (async == true) goto badArgForAsyncCall;
-		__argValues[i].pointerVal = (void *)(__byteArrayVal(arg));
-	    } else if (__isExternalAddressLike(arg)) {
-		__argValues[i].pointerVal = (void *)(__externalAddressVal(arg));
-	    } else if (__isExternalBytesLike(arg)) {
-		__argValues[i].pointerVal = (void *)(__externalBytesVal(arg));
-	    } else if (__isDoubles(arg)) {
-		char *p = (char *)(__DoubleArrayInstPtr(arg)->d_element);
-		int nInstBytes;
-		OBJ cls;
+        } else if (typeSymbol == @symbol(doublePointer)) {
+            thisType = __get_ffi_type_pointer();
+            if (__isBytes(arg)) {
+                if (async == true) goto badArgForAsyncCall;
+                __argValues[i].pointerVal = (void *)(__byteArrayVal(arg));
+            } else if (__isExternalAddressLike(arg)) {
+                __argValues[i].pointerVal = (void *)(__externalAddressVal(arg));
+            } else if (__isExternalBytesLike(arg)) {
+                __argValues[i].pointerVal = (void *)(__externalBytesVal(arg));
+            } else if (__isDoubles(arg)) {
+                char *p = (char *)(__DoubleArrayInstPtr(arg)->d_element);
+                int nInstBytes;
+                OBJ cls;
 
-		if (async == true) goto badArgForAsyncCall;
-		cls = __qClass(arg);
-		nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
-		p = p + nInstBytes;
+                if (async == true) goto badArgForAsyncCall;
+                cls = __qClass(arg);
+                nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
+                p = p + nInstBytes;
 # ifdef __NEED_DOUBLE_ALIGN
-		if ((INT)(__DoubleArrayInstPtr(arg)->d_element) & (__DOUBLE_ALIGN-1)) {
-		    int delta = __DOUBLE_ALIGN - ((INT)p & (__DOUBLE_ALIGN-1));
+                if ((INT)(__DoubleArrayInstPtr(arg)->d_element) & (__DOUBLE_ALIGN-1)) {
+                    int delta = __DOUBLE_ALIGN - ((INT)p & (__DOUBLE_ALIGN-1));
 
-		    p += delta;
-		}
+                    p += delta;
+                }
 # endif
-		__argValues[i].pointerVal = p;
-	    } else {
-		if (arg == nil) {
-		    __argValues[i].pointerVal = (void *)0;
-		} else {
-		    __FAIL__(@symbol(InvalidArgument))
-		}
-	    }
-	    argValuePtr = &(__argValues[i].pointerVal);;
+                __argValues[i].pointerVal = p;
+            } else {
+                if (arg == nil) {
+                    __argValues[i].pointerVal = (void *)0;
+                } else {
+                    __FAIL__(@symbol(InvalidArgument))
+                }
+            }
+            argValuePtr = &(__argValues[i].pointerVal);;
 
-	} else if (typeSymbol == @symbol(pointer)) {
+        } else if (typeSymbol == @symbol(pointer)) {
 commonPointerTypeArg: ;
-	    thisType = __get_ffi_type_pointer();
-	    if (arg == nil) {
-		__argValues[i].pointerVal = NULL;
-	    } else if (__isExternalAddressLike(arg)) {
-		__argValues[i].pointerVal = (void *)(__externalAddressVal(arg));
-	    } else if (__isExternalBytesLike(arg)) {
-		__argValues[i].pointerVal = (void *)(__externalBytesVal(arg));
-	    } else if (__isByteArrayLike(arg)) {
-		if (async == true) goto badArgForAsyncCall;
-		__argValues[i].pointerVal = (void *)(__byteArrayVal(arg));
-	    } else if (__isWordArray(arg) || __isSignedWordArray(arg)
-		    || __isIntegerArray(arg) || __isSignedIntegerArray(arg)) {
-		if (async == true) goto badArgForAsyncCall;
-		__argValues[i].pointerVal = (void *)(__integerArrayVal(arg));
-	    } else if (__isFloatArray(arg)) {
-		if (async == true) goto badArgForAsyncCall;
-		__argValues[i].pointerVal = (void *)(__FloatArrayInstPtr(arg)->f_element);
-	    } else if (__isDoubleArray(arg)) {
-		if (async == true) goto badArgForAsyncCall;
-		__argValues[i].pointerVal = (void *)(__DoubleArrayInstPtr(arg)->d_element);
-	    } else if (__isStringLike(arg)) {
-		if (async == true) {
+            thisType = __get_ffi_type_pointer();
+            if (arg == nil) {
+                __argValues[i].pointerVal = NULL;
+            } else if (__isExternalAddressLike(arg)) {
+                __argValues[i].pointerVal = (void *)(__externalAddressVal(arg));
+            } else if (__isExternalBytesLike(arg)) {
+                __argValues[i].pointerVal = (void *)(__externalBytesVal(arg));
+            } else if (__isByteArrayLike(arg)) {
+                if (async == true) goto badArgForAsyncCall;
+                __argValues[i].pointerVal = (void *)(__byteArrayVal(arg));
+            } else if (__isWordArray(arg) || __isSignedWordArray(arg)
+                    || __isIntegerArray(arg) || __isSignedIntegerArray(arg)) {
+                if (async == true) goto badArgForAsyncCall;
+                __argValues[i].pointerVal = (void *)(__integerArrayVal(arg));
+            } else if (__isFloatArray(arg)) {
+                if (async == true) goto badArgForAsyncCall;
+                __argValues[i].pointerVal = (void *)(__FloatArrayInstPtr(arg)->f_element);
+            } else if (__isDoubleArray(arg)) {
+                if (async == true) goto badArgForAsyncCall;
+                __argValues[i].pointerVal = (void *)(__DoubleArrayInstPtr(arg)->d_element);
+            } else if (__isStringLike(arg)) {
+                if (async == true) {
 badArgForAsyncCall: ;
-		    __FAIL__(@symbol(BadArgForAsyncCall))
-		}
-		__argValues[i].pointerVal = (void *)(__stringVal(arg));
-	    } else if (__isBytes(arg) || __isWords(arg) || __isLongs(arg)) {
-		char *p = (char *)(__byteArrayVal(arg));
-		int nInstBytes;
-		OBJ cls;
+                    __FAIL__(@symbol(BadArgForAsyncCall))
+                }
+                __argValues[i].pointerVal = (void *)(__stringVal(arg));
+            } else if (__isBytes(arg) || __isWords(arg) || __isLongs(arg)) {
+                char *p = (char *)(__byteArrayVal(arg));
+                int nInstBytes;
+                OBJ cls;
 
-		if (async == true) goto badArgForAsyncCall;
-		cls = __qClass(arg);
-		nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
-		__argValues[i].pointerVal = p + nInstBytes;
-	    } else {
-		__FAIL__(@symbol(InvalidArgument))
-	    }
-	    argValuePtr = &(__argValues[i].pointerVal);;
+                if (async == true) goto badArgForAsyncCall;
+                cls = __qClass(arg);
+                nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
+                __argValues[i].pointerVal = p + nInstBytes;
+            } else {
+                __FAIL__(@symbol(InvalidArgument))
+            }
+            argValuePtr = &(__argValues[i].pointerVal);;
 
-	} else if (typeSymbol == @symbol(bool)) {
-	    thisType = __get_ffi_type_uint();
+        } else if (typeSymbol == @symbol(bool)) {
+            thisType = __get_ffi_type_uint();
 
-	    if (arg == true) {
-		__argValues[i].iVal = 1;
-	    } else if (arg == false) {
-		__argValues[i].iVal = 0;
-	    } else if (__isSmallInteger(arg)) {
-		__argValues[i].iVal = __intVal(arg);
-	    } else {
-		__argValues[i].iVal = __unsignedLongIntVal(arg);
-		if (__argValues[i].iVal == 0) {
-		    __FAIL__(@symbol(InvalidArgument))
-		}
-	    }
-	    argValuePtr = &(__argValues[i].iVal);
-	} else {
-	    if (__isSymbol(typeSymbol)
-	     && ((argValueClass = __GLOBAL_GET(typeSymbol)) != nil)) {
-		if (! __isBehaviorLike(argValueClass)) {
-		    __FAIL__(@symbol(NonBehaviorArgumentType))
-		}
-		if (! __qIsSubclassOfExternalAddress(argValueClass)) {
-		    __FAIL__(@symbol(NonExternalAddressArgumentType))
-		}
-		goto commonPointerTypeArg; /* sorry */
-	    } else {
-		__FAIL__(@symbol(UnknownArgumentType))
-	    }
-	}
+            if (arg == true) {
+                __argValues[i].iVal = 1;
+            } else if (arg == false) {
+                __argValues[i].iVal = 0;
+            } else if (__isSmallInteger(arg)) {
+                __argValues[i].iVal = __intVal(arg);
+            } else {
+                __argValues[i].iVal = __unsignedLongIntVal(arg);
+                if (__argValues[i].iVal == 0) {
+                    __FAIL__(@symbol(InvalidArgument))
+                }
+            }
+            argValuePtr = &(__argValues[i].iVal);
+        } else {
+            if (__isSymbol(typeSymbol)
+             && ((argValueClass = __GLOBAL_GET(typeSymbol)) != nil)) {
+                if (! __isBehaviorLike(argValueClass)) {
+                    __FAIL__(@symbol(NonBehaviorArgumentType))
+                }
+                if (! __qIsSubclassOfExternalAddress(argValueClass)) {
+                    __FAIL__(@symbol(NonExternalAddressArgumentType))
+                }
+                goto commonPointerTypeArg; /* sorry */
+            } else {
+                __FAIL__(@symbol(UnknownArgumentType))
+            }
+        }
 
-	__argTypes[i] = thisType;
-	__argValuePointers[i] = argValuePtr;
+        __argTypes[i] = thisType;
+        __argValuePointers[i] = argValuePtr;
 
 # ifdef VERBOSE
-	printf("arg%d: %x\n", i, __argValues[i].iVal);
+        printf("arg%d: %x\n", i, __argValues[i].iVal);
 # endif
     }
     failureInfo = nil;
@@ -1459,53 +1494,53 @@
 
 # ifdef CALLTYPE_FFI_STDCALL
     if (callTypeNumber == @global(CALLTYPE_API)) {
-	__callType = CALLTYPE_FFI_STDCALL;
+        __callType = CALLTYPE_FFI_STDCALL;
     }
 # endif
 # ifdef CALLTYPE_FFI_V8
     if (callTypeNumber == @global(CALLTYPE_V8)) {
-	__callType = CALLTYPE_FFI_V8;
+        __callType = CALLTYPE_FFI_V8;
     }
 # endif
 # ifdef CALLTYPE_FFI_V9
     if (callTypeNumber == @global(CALLTYPE_V9)) {
-	__callType = CALLTYPE_FFI_V9;
+        __callType = CALLTYPE_FFI_V9;
     }
 # endif
 # ifdef CALLTYPE_FFI_UNIX64
     if (callTypeNumber == @global(CALLTYPE_UNIX64)) {
-	__callType = CALLTYPE_FFI_UNIX64;
+        __callType = CALLTYPE_FFI_UNIX64;
     }
 # endif
 
     if (ffi_prep_cif(&__cif, __callType, __numArgsIncludingThis, __returnType, __argTypesIncludingThis) != FFI_OK) {
-	__FAIL__(@symbol(FFIPrepareFailed))
+        __FAIL__(@symbol(FFIPrepareFailed))
     }
     if (async == true) {
 # ifdef VERBOSE
-	printf("async call 0x%x\n", codeAddress);
+        printf("async call 0x%x\n", codeAddress);
 # endif
 # ifdef WIN32
-	__STX_C_CALL4( "ffi_call", ffi_call, &__cif, codeAddress, __returnValuePointer, __argValuePointersIncludingThis);
+        __STX_C_CALL4( "ffi_call", ffi_call, &__cif, codeAddress, __returnValuePointer, __argValuePointersIncludingThis);
 # else
-	__BEGIN_INTERRUPTABLE__
-	ffi_call(&__cif, codeAddress, __returnValuePointer, __argValuePointersIncludingThis);
-	__END_INTERRUPTABLE__
+        __BEGIN_INTERRUPTABLE__
+        ffi_call(&__cif, codeAddress, __returnValuePointer, __argValuePointersIncludingThis);
+        __END_INTERRUPTABLE__
 # endif
     } else {
-	if (unlimitedStack == true) {
+        if (unlimitedStack == true) {
 # ifdef VERBOSE
-	    printf("UNLIMITEDSTACKCALL call 0x%x\n", codeAddress);
+            printf("UNLIMITEDSTACKCALL call 0x%x\n", codeAddress);
 # endif
 # if 0
-	    __UNLIMITEDSTACKCALL__(ffi_call, &__cif, codeAddress, __returnValuePointer, __argValuePointersIncludingThis);
+            __UNLIMITEDSTACKCALL__(ffi_call, &__cif, codeAddress, __returnValuePointer, __argValuePointersIncludingThis);
 # endif
-	} else {
+        } else {
 # ifdef VERBOSE
-	    printf("call 0x%x\n", codeAddress);
+            printf("call 0x%x\n", codeAddress);
 # endif
-	    ffi_call(&__cif, codeAddress, __returnValuePointer, __argValuePointersIncludingThis);
-	}
+            ffi_call(&__cif, codeAddress, __returnValuePointer, __argValuePointersIncludingThis);
+        }
     }
 # ifdef VERBOSE
     printf("retval is %d (0x%x)\n", __returnValue.iVal, __returnValue.iVal);
@@ -1515,54 +1550,64 @@
      || (returnTypeSymbol == @symbol(sint8))
      || (returnTypeSymbol == @symbol(sint16))
      || (returnTypeSymbol == @symbol(sint32))) {
-	RETURN ( __MKINT(__returnValue.iVal) );
+        RETURN ( __MKINT(__returnValue.iVal) );
     }
     if ((returnTypeSymbol == @symbol(uint))
      || (returnTypeSymbol == @symbol(uint8))
      || (returnTypeSymbol == @symbol(uint16))
      || (returnTypeSymbol == @symbol(uint32))) {
-	RETURN ( __MKUINT(__returnValue.iVal) );
+        RETURN ( __MKUINT(__returnValue.iVal) );
     }
     if (returnTypeSymbol == @symbol(bool)) {
-	RETURN ( __returnValue.iVal ? true : false );
+        RETURN ( __returnValue.iVal ? true : false );
     }
     if (returnTypeSymbol == @symbol(float)) {
-	RETURN ( __MKFLOAT(__returnValue.fVal ));
+        RETURN ( __MKFLOAT(__returnValue.fVal ));
     }
     if (returnTypeSymbol == @symbol(double)) {
-	RETURN ( __MKFLOAT(__returnValue.dVal ));
+        RETURN ( __MKFLOAT(__returnValue.dVal ));
     }
     if (returnTypeSymbol == @symbol(void)) {
-	RETURN ( nil );
+        RETURN ( nil );
     }
     if (returnTypeSymbol == @symbol(char)) {
-	RETURN ( __MKCHARACTER(__returnValue.iVal & 0xFF) );
+        RETURN ( __MKCHARACTER(__returnValue.iVal & 0xFF) );
     }
     if (returnTypeSymbol == @symbol(wchar)) {
-	RETURN ( __MKUCHARACTER(__returnValue.iVal & 0xFFFF) );
+        RETURN ( __MKUCHARACTER(__returnValue.iVal & 0xFFFF) );
     }
     if (returnTypeSymbol == @symbol(sint64)) {
-	RETURN ( __MKINT64(&__returnValue.longLongVal) );
+        RETURN ( __MKINT64(&__returnValue.longLongVal) );
     }
     if (returnTypeSymbol == @symbol(uint64)) {
-	RETURN ( __MKUINT64(&__returnValue.longLongVal) );
+        RETURN ( __MKUINT64(&__returnValue.longLongVal) );
     }
 
 # ifdef VERBOSE
     printf("%x\n", __returnValue.pointerVal);
 # endif
-    if (returnTypeSymbol == @symbol(handle)) {
-	returnValue = __MKEXTERNALADDRESS(__returnValue.pointerVal);
-    } else if (returnTypeSymbol == @symbol(pointer)) {
-	returnValue = __MKEXTERNALBYTES(__returnValue.pointerVal);
+    if (returnTypeSymbol == @symbol(handle) || returnTypeSymbol == @symbol(pointer)) {
+        if (__returnValue.pointerVal == NULL) {
+            RETURN ( nil );
+        } else {
+            if (returnValue != nil) {
+            	static struct inlineCache _initialize_ilc = _ILC0;
+                __externalAddressVal(returnValue) = __returnValue.pointerVal;
+                /* Call initialize */
+                (_initialize_ilc.ilc_func)(returnValue, @symbol(initialize), nil, &_initialize_ilc);
+                RETURN ( returnValue );
+            } else {
+                returnValue = __MKEXTERNALADDRESS(__returnValue.pointerVal);
+            }
+        }
     } else if (returnTypeSymbol == @symbol(bytePointer)) {
-	returnValue = __MKEXTERNALBYTES(__returnValue.pointerVal);
+        returnValue = __MKEXTERNALBYTES(__returnValue.pointerVal);
     } else if (returnTypeSymbol == @symbol(charPointer)) {
-	returnValue = __MKSTRING(__returnValue.pointerVal);
+        returnValue = __MKSTRING(__returnValue.pointerVal);
     } else if (returnTypeSymbol == @symbol(wcharPointer)) {
-	returnValue = __MKU16STRING(__returnValue.pointerVal);
+        returnValue = __MKU16STRING(__returnValue.pointerVal);
     } else {
-	__FAIL__(@symbol(UnknownReturnType2))
+        __FAIL__(@symbol(UnknownReturnType2))
     }
 #else /* no FFI support */
     failureCode = @symbol(FFINotSupported);
@@ -1570,55 +1615,55 @@
 getOutOfHere: ;
 %}.
     failureCode notNil ifTrue:[
-	(failureCode == #UnknownReturnType or:[ failureCode == #UnknownArgumentType ]) ifTrue:[
-	    oldReturnType := returnType.
-	    oldArgumentTypes := argumentTypes.
-	    self adjustTypes.
-	    ((oldReturnType ~= returnType) or:[oldArgumentTypes ~= argumentTypes]) ifTrue:[
-		thisContext restart
-	    ].
-	].
-	(failureCode == #BadArgForAsyncCall) ifTrue:[
-	    ^ self tryAgainWithAsyncSafeArguments:argumentsOrNil forCPPInstance:aReceiverOrNil
-	].
-	(failureCode == #FFINotSupported) ifTrue:[
-	    self primitiveFailed:'FFI support missing in this build'.
-	].
+        (failureCode == #UnknownReturnType or:[ failureCode == #UnknownArgumentType ]) ifTrue:[
+            oldReturnType := returnType.
+            oldArgumentTypes := argumentTypes.
+            self adjustTypes.
+            ((oldReturnType ~= returnType) or:[oldArgumentTypes ~= argumentTypes]) ifTrue:[
+                thisContext restart
+            ].
+        ].
+        (failureCode == #BadArgForAsyncCall) ifTrue:[
+            ^ self tryAgainWithAsyncSafeArguments:argumentsOrNil forCPPInstance:aReceiverOrNil
+        ].
+        (failureCode == #FFINotSupported) ifTrue:[
+            self primitiveFailed:'FFI support missing in this build'.
+        ].
 
-	self primitiveFailed.   "see failureCode and failureInfo for details"
-	^ nil
+        self primitiveFailed.   "see failureCode and failureInfo for details"
+        ^ nil
     ].
-
     returnType isSymbol ifTrue:[
-	returnValueClass notNil ifTrue:[
-	    self isConstReturnValue ifTrue:[
-		returnValue changeClassTo:returnValueClass.
-		^ returnValue
-	    ].
-	    ^ returnValueClass fromExternalAddress:returnValue.
-	].
+        returnValueClass notNil ifTrue:[
+            self isConstReturnValue ifTrue:[
+                returnValue changeClassTo:returnValueClass.
+                ^ returnValue
+            ].
+            ^ returnValueClass fromExternalAddress:returnValue.
+        ].
     ] ifFalse:[
-	returnType isCPointer ifTrue:[
-	    returnType baseType isCStruct ifTrue:[
-		stClass := Smalltalk classNamed:returnType baseType name.
-		stClass notNil ifTrue:[
-		    self isConstReturnValue ifTrue:[
-			returnValue changeClassTo:returnValueClass.
-			^ returnValue
-		    ].
-		    ^ stClass fromExternalAddress:returnValue.
-		].
-	    ].
-	    returnType baseType isCChar ifTrue:[
-		^ returnValue stringAt:1
-	    ].
-	].
+        returnType isCPointer ifTrue:[
+            returnType baseType isCStruct ifTrue:[
+                stClass := Smalltalk classNamed:returnType baseType name.
+                stClass notNil ifTrue:[
+                    self isConstReturnValue ifTrue:[
+                        returnValue changeClassTo:returnValueClass.
+                        ^ returnValue
+                    ].
+                    ^ stClass fromExternalAddress:returnValue.
+                ].
+            ].
+            returnType baseType isCChar ifTrue:[
+                ^ returnValue stringAt:1
+            ].
+        ].
     ].
 
     ^ returnValue
 
     "Created: / 01-08-2006 / 13:56:23 / cg"
     "Modified: / 11-06-2007 / 01:50:36 / cg"
+    "Modified: / 07-07-2015 / 22:21:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 tryAgainWithAsyncSafeArguments:argumentsOrNil forCPPInstance:aReceiverOrNil
@@ -1696,8 +1741,14 @@
     ^ '$Header: /cvs/stx/stx/libbasic/ExternalLibraryFunction.st,v 1.97 2015-04-20 10:48:54 cg Exp $'
 !
 
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+!
+
 version_SVN
     ^ ' Id: ExternalLibraryFunction.st 10643 2011-06-08 21:53:07Z vranyj1  '
 ! !
 
+
 ExternalLibraryFunction initialize!
--- a/ExternalStream.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ExternalStream.st	Tue Feb 16 07:24:34 2016 +0000
@@ -2742,7 +2742,7 @@
 	    if (_buffered) {
 		__WRITING__(f)
 	    }
-#ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 	    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 		cnt = __win32_fwrite(__stringVal(aString), 1, len, f);
 	    } else
@@ -2767,7 +2767,7 @@
 		} else {
 		    cp = "\n"; len = 1;
 		}
-#ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 		if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 		    cnt = __win32_fwrite(cp, 1, len, f);
 		} else
@@ -4220,7 +4220,7 @@
 	    if (_buffered) {
 		__WRITING__(f)
 	    }
-#ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 	    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 		cnt = __win32_fwrite(&c, 1, 1, f);
 	    } else
@@ -5722,7 +5722,7 @@
 		    cp = "\n"; len = 1;
 		}
 	    }
-#ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 	    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 		cnt = __win32_fwrite(cp, 1, len, f);
 	    } else
@@ -5777,7 +5777,7 @@
 	    if (__INST(mode) != @symbol(readonly)) {
 		if (_buffered) {
 		    FILEPOINTER f = __FILEVal(fp);
-#ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 		    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 			__win32_fflush(f);
 		    } else {
@@ -5871,7 +5871,7 @@
 			if (_buffered) {
 			    __WRITING__(f)
 			}
-# ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 			if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 			    cnt = __win32_fwrite(buff, 1, nBytes, f);
 			} else
@@ -6044,7 +6044,7 @@
 		    }
 
 		    len = dp - buf;
-# ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 		    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 			cnt = __win32_fwrite(buf, 1, len, f);
 		    } else
@@ -6054,7 +6054,7 @@
 		    }
 		    free(buf);
 		} else  {  // No EOL conversion needed
-# ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 		    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 			cnt = __win32_fwrite(stringP, 1, len, f);
 		    } else
@@ -6076,7 +6076,7 @@
 			len = __byteArraySize(aCollection) - offs;
 		    } else
 			goto out;
-# ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 		    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 			cnt = __win32_fwrite(__stringVal(aCollection), 1, len, f);
 		    } else
@@ -6243,7 +6243,7 @@
 		    }
 
 		    len = dp - buf;
-#ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 		    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 			cnt = __win32_fwrite(buf, 1, len, f);
 		    } else
@@ -6253,7 +6253,7 @@
 		    }
 		    free(buf);
 		} else  {  // No EOL conversion needed
-#ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 		    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 			cnt = __win32_fwrite(stringP, 1, len, f);
 		    } else
@@ -6283,7 +6283,7 @@
 			iStop = len;
 		    len = iStop - iStart + 1;
 		    offs += iStart - 1;
-#ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 		    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 			cnt = __win32_fwrite(__stringVal(aCollection)+iStart-1, 1, len, f);
 		    } else
@@ -6328,7 +6328,7 @@
     ].
 
     "
-	'Bnnigheim' asUnicode16String errorPrintCR
+	'Bnnigheim' asUnicode16String errorPrintCR
     "
 !
 
@@ -6435,7 +6435,7 @@
 		}
 
 		if (extPtr) {
-# ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 		    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 			cnt = __win32_fwrite(extPtr+offs, 1, len, f);
 		    } else
@@ -6449,7 +6449,7 @@
 		     * So we pass anObject, and the offset to the __WRITEBYTES_OBJ__ macro.
 		     */
 		    offs += nInstBytes;
-# ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 		    if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 			cnt = __win32_fwrite((char *)anObject+offs, 1, len, f);
 		    } else
@@ -6529,7 +6529,7 @@
     "
 	(FileStream newTemporary
 	    nextPutUtf16:$B;
-	    nextPutUtf16:$;
+	    nextPutUtf16:$;
 	    nextPutUtf16:(Character codePoint:16r10CCCC);
 	    reset;
 	    binary;
@@ -6576,7 +6576,7 @@
 			if (_buffered) {
 			    __WRITING__(f)
 			}
-#ifdef WIN32
+#if defined(WIN32) && !defined(__MINGW__)
 			if ((f == __win32_stdout()) || (f == __win32_stderr())) {
 			    cnt = __win32_fwrite(&c, 1, 1, f);
 			} else
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FileDirectory.st	Tue Feb 16 07:24:34 2016 +0000
@@ -0,0 +1,837 @@
+"
+ COPYRIGHT (c) 1989 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.
+"
+"{ Package: 'stx:libbasic' }"
+
+Collection subclass:#FileDirectory
+	instanceVariableNames:'pathName lazy'
+	classVariableNames:'PathOfCurrentDirectory'
+	poolDictionaries:''
+	category:'Compatibility-Squeak'
+!
+
+ArrayedCollection subclass:#DirectoryEntry
+	instanceVariableNames:'name creationTime modificationTime dirFlag fileSize'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:FileDirectory
+!
+
+!FileDirectory class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1989 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.
+"
+!
+
+documentation
+"
+    Notice:
+        This class is obsolete and does work only under UNIX. 
+        Use Filename instead. It is left here for squeak compatibility.
+
+        This class is not available in other ST-systems;
+        in contrast, VisualWorks provides a Filename class.
+        Therefore, Filename has taken over the functionality.
+
+    FileDirectories represent directories in the underlying host system.
+    They provide various methods to create/delete and query for files and/or
+    directories. Also, since FileDirectory inherits from Collection, it
+    provides all enumeration and testing protocol. For example, you can
+    loop over the filenames in a directory using 'aFileDirectory do:[:nm | ...]'.
+
+    [author:]
+        Claus Gittinger
+
+    [see also:]
+        Filename
+        FileStream DirectoryStream OperatingSystem
+"
+! !
+
+!FileDirectory class methodsFor:'initialization'!
+
+initialize
+    "/
+    "/ want to know about image restart
+    "/
+    ObjectMemory addDependent:self
+!
+
+update:something with:aParameter from:changedObject
+    "/
+    "/ currentDirectory may be different when restarted
+    "/
+    something == #earlySystemInstallation ifTrue:[
+        PathOfCurrentDirectory := nil
+    ]
+
+    "Created: / 15.6.1996 / 15:20:21 / cg"
+    "Modified: / 11.12.1998 / 16:28:40 / cg"
+! !
+
+!FileDirectory class methodsFor:'instance creation'!
+
+currentDirectory
+    "create and return a new FileDirectory for the current directory"
+
+    "/ self obsoleteMethodWarning:'use Filename'.
+    ^ self on:(Filename currentDirectory name)
+
+    "
+     FileDirectory currentDirectory contents
+     FileDirectory currentDirectory files
+     FileDirectory currentDirectory isReadable
+     FileDirectory currentDirectory pathName
+    "
+
+    "Modified: / 20-08-2011 / 12:19:51 / cg"
+!
+
+directoryNamed:name
+    "create and return a new FileDirectory for the directory
+     with given pathname"
+
+    "/ self obsoleteMethodWarning:'use Filename'.
+    name asString = '.' ifTrue:[
+        Filename currentDirectory name ~= '.' ifTrue:[
+            ^ self currentDirectory
+        ]
+    ].
+    ^ self on:(name asFilename constructString:'')
+
+    "
+     (FileDirectory directoryNamed:'..') pathName
+     (FileDirectory directoryNamed:'../..') files
+    "
+
+    "Modified: / 20-08-2011 / 12:19:57 / cg"
+!
+
+directoryNamed:name in:aFileDirectory
+    "create and return a new FileDirectory for the directory with given name
+     in another FileDirectory"
+
+    |baseName|
+
+    "/ self obsoleteMethodWarning:'use Filename'.
+
+    name asFilename isAbsolute ifTrue:[
+        ^ self directoryNamed:name
+    ].
+    
+    (aFileDirectory isKindOf:FileDirectory) ifTrue:[
+        baseName := aFileDirectory pathName
+    ] ifFalse:[
+        baseName := aFileDirectory
+    ].
+    ^ self on:((Filename named:baseName) constructString:name)
+
+    "Modified: / 28-04-1997 / 22:34:47 / dq"
+    "Modified: / 20-08-2011 / 12:20:03 / cg"
+!
+
+on:aDirectoryPathName
+    ^ (self basicNew) pathName:aDirectoryPathName
+
+    "Created: / 20-08-2011 / 12:19:28 / cg"
+!
+
+rootDirectory
+    "create and return a new FileDirectory for the root directory"
+
+    "/ self obsoleteMethodWarning:'use Filename'.
+    ^ self on:(Filename rootDirectory name)
+
+    "
+     FileDirectory rootDirectory contents
+     FileDirectory rootDirectory files
+     FileDirectory rootDirectory isReadable
+    "
+
+    "Modified: / 20-08-2011 / 12:20:09 / cg"
+! !
+
+!FileDirectory class methodsFor:'Compatibility-Squeak'!
+
+default
+    ^ (self basicNew) pathName:(Filename defaultDirectory name)
+!
+
+localNameFor:aFileNameString
+    ^ aFileNameString asFilename baseName
+!
+
+pathNameDelimiter
+    ^ Filename separator
+!
+
+slash
+    ^ Filename separator asString
+
+    "Created: / 20-08-2011 / 12:18:27 / cg"
+! !
+
+!FileDirectory class methodsFor:'private'!
+
+fullPathNameOf:name in:path
+    |sep|
+
+    sep := OperatingSystem fileSeparator asString.
+
+    "/ is it an absolute path ?
+
+    (name startsWith:sep) ifTrue:[
+        ^ name
+    ].
+
+    "/ temporary kludge; this and the previous should
+    "/ go into OS isAbsolutePath ..
+
+    OperatingSystem isMSDOSlike ifTrue:[
+        ('[a-zA-Z]:*' match:name) ifTrue:[
+            "/ drive spec ...
+            ^ name
+        ]
+    ].                  
+    ^ path , sep , name
+
+    "Modified: 28.4.1997 / 22:06:17 / cg"
+    "Modified: 28.4.1997 / 22:34:18 / dq"
+! !
+
+!FileDirectory methodsFor:'Compatibility-Squeak'!
+
+assureExistence
+    self asFilename recursiveMakeDirectory
+!
+
+containingDirectory
+    ^ self class
+        directoryNamed:(self asFilename directory pathName)
+!
+
+deleteDirectory:dirName
+    "Squeak/ST80 compatibility"
+
+    ^ self removeDirectory:dirName
+!
+
+deleteFileNamed:fileName
+    "Squeak/ST80 compatibility"
+
+    ^ self removeFile:fileName
+!
+
+directoryEntryFor:name
+    |info|
+
+    info := self infoOf:name.
+    info isNil ifTrue:[
+        info := (self filenameFor:name) linkInfo.
+    ].
+    ^ DirectoryEntry new
+        name:name
+        creationTime:(info creationTime)
+        modificationTime:(info modificationTime)
+        dirFlag:(info isDirectory)
+        fileSize:(info isDirectory)
+
+    "
+     (FileDirectory directoryNamed:'.') entries
+    "
+
+    "Modified: / 29-08-2011 / 08:19:48 / cg"
+!
+
+directoryExists:dir
+    "Squeak/ST80 compatibility"
+
+    |f|
+
+    f := self filenameFor:dir.
+    ^ f exists and:[f isDirectory ].
+!
+
+directoryNames
+    "Squeak/ST80 compatibility"
+
+    ^ self directories
+!
+
+entries
+    ^ self contents collect:[:nm | self directoryEntryFor:nm].
+!
+
+fileExists:dir
+    "Squeak/ST80 compatibility"
+
+    |f|
+
+    f := self filenameFor:dir.
+    ^ f exists and:[f isDirectory not ].
+!
+
+fileNames
+    "Squeak/ST80 compatibility"
+
+    ^ self files
+!
+
+forceNewFileNamed:fn
+    "Squeak/ST80 compatibility"
+
+    |f|
+
+    f := self filenameFor:fn.
+    ^ f writeStream
+!
+
+includesKey:name
+    "Squeak/ST80 compatibility"
+
+    ^ self exists:name
+!
+
+oldFileNamed:fn
+    "Squeak/ST80 compatibility"
+
+    |f|
+
+    f := self filenameFor:fn.
+    ^ f readStream
+!
+
+readOnlyFileNamed:fn
+    "Squeak/ST80 compatibility"
+
+    |f|
+
+    f := self filenameFor:fn.
+    ^ f readStream
+!
+
+recursiveDelete
+    self asFilename recursiveRemove
+! !
+
+!FileDirectory methodsFor:'accessing'!
+
+baseName
+    "return my baseName
+     - thats the directory name without leading parent-dirs"
+
+    lazy ifTrue:[self getFullPathName].
+    ^ pathName asFilename baseName
+!
+
+contents 
+    "return a collection with all files and subdirectories in the receiver.
+     Skips any '.' or '..' entries (UNIX)"
+
+    |coll|
+
+    coll := OrderedCollection new.
+    self do:[:name |
+        name ~= '.' ifTrue:[
+            name ~= '..' ifTrue:[
+                coll add:name
+            ]
+        ]
+    ].
+    coll sort.
+    ^ coll
+
+    "Modified: 20.6.1997 / 17:05:43 / cg"
+!
+
+directories
+    "return a collection with all subdirectories in the receiver directory"
+
+    |coll|
+
+    coll := OrderedCollection new.
+    self directoriesDo:[:name |
+	coll add:name
+    ].
+    coll sort.
+    ^ coll
+!
+
+directoryName
+    "return my directoryName
+     - thats the directory name where I'm in"
+
+    lazy ifTrue:[self getFullPathName].
+    ^ pathName asFilename directoryName
+!
+
+files
+    "return a collection with all plain files in the receiver directory"
+
+    |coll|
+
+    coll := OrderedCollection new.
+    self filesDo:[:name |
+	coll add:name
+    ].
+    coll sort.
+    ^ coll
+!
+
+pathName
+    "return my full pathname"
+
+    lazy ifTrue:[self getFullPathName].
+    ^ pathName
+!
+
+pathName:dirName
+    "set my pathname; return nil if not a valid path; self otherwise"
+
+    pathName := dirName.
+    (dirName startsWith:OperatingSystem fileSeparator) ifFalse:[
+	lazy := true
+    ] ifTrue:[
+	(dirName startsWith:'./') ifFalse:[
+"/        (dirName includes:$.) ifTrue:[
+	    lazy := true
+	]
+    ].
+    ^ self
+! !
+
+!FileDirectory methodsFor:'basic'!
+
+createDirectory:newName
+    "create a new filedirectory as a subdirectory of myself;
+     return true if successful"
+
+    |realName|
+
+    (newName notNil and:[newName notEmpty]) ifTrue:[
+	(newName ~= '.' and:[newName ~= '..']) ifTrue:[
+	    ((newName at:1) == OperatingSystem fileSeparator) ifTrue:[
+		realName := newName copyFrom:2
+	    ] ifFalse:[
+		realName := newName
+	    ].
+	    ^ (self filenameFor:realName) makeDirectory
+	]
+    ].
+    ^ false
+!
+
+link:oldFileName to:newFileName
+    "link oldFileName to newFileName in myself, return true if successful"
+
+    |path1 path2|
+
+    path1 := self pathNameOf:oldFileName.
+    path2 := self pathNameOf:newFileName.
+    ^ OperatingSystem linkFile:path1 to:path2
+!
+
+remove:aFileOrDirectoryName
+    "remove the file or directory from myself; return true if successful"
+
+    ^ (self filenameFor:aFileOrDirectoryName) remove
+!
+
+removeDirectory:dirName
+    "remove the directory 'dirName' from myself; return true if successful.
+     If the directory is not empty, the containing files/directories are also
+     removed."
+
+    ^ (self filenameFor:dirName) recursiveRemove
+!
+
+removeFile:fileName
+    "remove the file 'fileName' from myself; return true if successful"
+
+    ^ (self filenameFor:fileName) remove
+!
+
+renameFile:oldFileName newName:newFileName
+    "rename the file; return true if successful"
+
+    |f1 f2|
+
+    f1 := self filenameFor:oldFileName.
+    f2 := self filenameFor:newFileName.
+    ^ f1 renameTo:f2
+! !
+
+!FileDirectory methodsFor:'converting'!
+
+asFilename
+    "return myself as a filename"
+
+    ^ self pathName asFilename
+!
+
+asFilename:someFile
+    "return a filename for a file named someFile in myself"
+
+    ^ self asFilename construct:someFile
+! !
+
+!FileDirectory methodsFor:'enumerating'!
+
+allDirectoriesDo:aBlock
+    "evaluate the argument, aBlock for every directory name
+     in the directory and in all subdirectories"
+
+    |aStream command line|
+
+    lazy ifTrue:[self getFullPathName].
+    command := 'cd ' , pathName , '; find . -type d -print'.
+    aStream := PipeStream readingFrom:command.
+    aStream isNil ifTrue:[^ nil].
+    [aStream atEnd] whileFalse:[
+	line := aStream nextLine.
+	line notNil ifTrue:[
+	    (line = '.') ifFalse:[
+		"cut off initial ./"
+		line := line copyFrom:3
+	    ].
+	    aBlock value:line
+	]
+    ].
+    aStream close
+!
+
+allFilesDo:aBlock
+    "evaluate the argument, aBlock for every file name in the directory and in all
+     subdirectories"
+
+    |aStream command line|
+
+    lazy ifTrue:[self getFullPathName].
+    command := 'cd ' , pathName , '; find . -print'.
+    aStream := PipeStream readingFrom:command.
+    aStream isNil ifTrue:[^ nil].
+    [aStream atEnd] whileFalse:[
+	line := aStream nextLine.
+	line notNil ifTrue:[
+	    (line = '.') ifFalse:[
+		"cut off initial ./"
+		line := line copyFrom:3
+	    ].
+	    aBlock value:line
+	]
+    ].
+    aStream close
+!
+
+directoriesDo:aBlock
+    "evaluate the argument, aBlock for every subdirectory name in the directory"
+
+    self where:[:name | (self isDirectory:name) ifTrue:[
+			    ((name ~= '.') and:[name ~= '..'])
+			] ifFalse:[
+			    false
+			]
+	       ] do:aBlock
+!
+
+do:aBlock
+    "evaluate the argument, aBlock for every name in the directory"
+
+    self where:[:name | true] do:aBlock
+!
+
+filesDo:aBlock
+    "evaluate the argument, aBlock for every plain file name in the directory"
+
+    self where:[:name | (self isDirectory:name) not] do:aBlock
+!
+
+namesDo:aBlock
+    "evaluate the argument, aBlock for every name in the directory.
+     for ST-80 compatibility"
+
+    self do:aBlock
+!
+
+where:testBlock do:aBlock
+    "evaluate the argument, aBlock for every object in the directory
+     for which testBlock evaluates to true."
+
+    |aStream name|
+
+    ExternalStream openErrorSignal catch:[
+        aStream := DirectoryStream directoryNamed:pathName.
+    ].
+    aStream isNil ifTrue:[^ nil].
+    [aStream atEnd] whileFalse:[
+        name := aStream nextLine.
+        name notNil ifTrue:[
+            (testBlock value:name) ifTrue:[
+                aBlock value:name
+            ]
+        ]
+    ].
+    aStream close
+! !
+
+!FileDirectory methodsFor:'instance creation'!
+
+directoryNamed:aName
+    "create & return a new fileDirectory for a subdirectory in myself"
+
+    ^ self class directoryNamed:aName in:self pathName
+! !
+
+!FileDirectory methodsFor:'printing & storing'!
+
+printOn:aStream
+    "append a user printed representation of the receiver to aStream.
+     The format is suitable for a human - not meant to be read back."
+
+    lazy ifTrue:[self getFullPathName].
+    aStream nextPutAll:'(a FileDirectory pathName:';
+            nextPutAll:pathName;
+            nextPutAll:')'
+!
+
+storeOn:aStream
+    "append a printed representation of the receiver to aStream,
+     which allows reconstructing it via readFrom:"
+
+    lazy ifTrue:[self getFullPathName].
+    aStream nextPutAll:'(FileDirectory directoryNamed:'.
+    aStream nextPutAll:pathName.
+    aStream nextPut:$)
+! !
+
+!FileDirectory methodsFor:'private'!
+
+filenameFor:fileName
+    "return a filename representing the argument, fileName
+     either in myself (if the arg is a releative path) or absolute otherwise."
+
+    ^ pathName asFilename filenameFor:fileName
+!
+
+fullNameFor:fileName
+    "return a filename representing the argument, fileName
+     either in myself (if the arg is a releative path) or absolute otherwise."
+
+    ^ (pathName asFilename filenameFor:fileName) asAbsoluteFilename
+!
+
+getFullPathName
+    "make my pathname be a full pathname - i.e. starting at root"
+
+    |shortPathName|
+
+
+    (pathName = OperatingSystem fileSeparator asString) ifTrue:[
+	lazy := false.
+	^ self
+    ].
+
+    "since currentDirectory is used very often, cache its path here"
+
+    (pathName = '.') ifTrue:[
+	PathOfCurrentDirectory notNil ifTrue:[
+	    pathName := PathOfCurrentDirectory.
+	    lazy := false.
+	    ^ self
+	]
+    ].
+
+    shortPathName := pathName.
+
+    pathName := OperatingSystem pathNameOf:pathName.
+    lazy := false.
+
+    "
+     if it was the current dir, keep name for next query
+    "
+    (shortPathName = '.') ifTrue:[
+	PathOfCurrentDirectory := pathName
+    ]
+!
+
+pathNameOf:fileName
+    "return the pathname for an entry in myself"
+
+    ^ (pathName asFilename construct:fileName) osName
+! !
+
+!FileDirectory methodsFor:'queries'!
+
+accessModeOf:name
+    "return the access-mode bits (rwxrwxrwx) of a file in myself"
+
+    ^ OperatingSystem accessModeOf:(self pathNameOf:name)
+!
+
+changeAccessModeOf:name to:modeBits
+    "set the access-mode bits (rwxrwxrwx) of a file in myself"
+
+    ^ OperatingSystem changeAccessModeOf:(self pathNameOf:name) to:modeBits
+!
+
+exists
+    "return true if this directory exists"
+
+    ^ (Filename named:pathName) isDirectory
+
+    "
+     (FileDirectory directoryNamed:'fooBar') exists
+     (FileDirectory directoryNamed:'/tmp') exists
+    "
+!
+
+exists:name
+    "return true, if the given name exists in myself"
+
+    ^ (self filenameFor:name) exists
+!
+
+id
+    "return the directories file-id (inode number)"
+
+    ^ (Filename named:pathName) id
+!
+
+infoOf:name
+    "return an array filled with file info for the file 'aFileName';
+     return nil if such a file does not exist"
+
+    ^ (self filenameFor:name) info
+!
+
+isDirectory:name
+    "return true, if the given name is that of a directory in myself"
+
+    ^ (self filenameFor:name) isDirectory
+!
+
+isExecutable:name
+    "return true, if the given file is executable"
+
+    ^ (self filenameFor:name) isExecutable
+!
+
+isReadable:name
+    "return true, if the given file is readable"
+
+    ^ (self filenameFor:name) isReadable
+!
+
+isWritable:name
+    "return true, if the given file is readable"
+
+    ^ (self filenameFor:name) isWritable
+!
+
+species
+    "return the type of collection to be returned by collect, select etc."
+
+    ^ OrderedCollection
+!
+
+timeOfLastChange
+    "return the timeStamp of myself"
+
+    ^ (Filename named:pathName) modificationTime
+!
+
+timeOfLastChange:name
+    "return the timeStamp of a file in myself"
+
+    ^ (self filenameFor:name) modificationTime
+!
+
+typeOf:name
+    "return the symbolic type of a file in myself"
+
+    ^ (self filenameFor:name) type
+! !
+
+!FileDirectory methodsFor:'testing'!
+
+isEmpty
+    "return true, if the directory is empty;
+     redefined since '.' and '..' do not count as entries here."
+
+    self do:[:fName |
+	((fName ~= '.') and:[fName ~= '..']) ifTrue:[^ false].
+    ].
+    ^ true
+! !
+
+!FileDirectory::DirectoryEntry methodsFor:'accessing'!
+
+at: index
+    "compatibility interface"
+    "self halt: 'old-style access to DirectoryEntry'"
+    index = 1 ifTrue: [ ^self name ].
+    index = 2 ifTrue: [ ^self creationTime ].
+    index = 3 ifTrue: [ ^self modificationTime ].
+    index = 4 ifTrue:[ ^self isDirectory ].
+    index = 5 ifTrue:[ ^self fileSize ].
+    self error: 'invalid index specified'.
+!
+
+creationTime
+    ^ creationTime
+!
+
+dirFlag
+    ^ dirFlag
+!
+
+fileSize
+    ^ fileSize
+!
+
+modificationTime
+    ^ modificationTime
+!
+
+name
+    ^ name
+!
+
+name:nameArg creationTime:creationTimeArg modificationTime:modificationTimeArg dirFlag:dirFlagArg fileSize:fileSizeArg 
+    name := nameArg.
+    creationTime := creationTimeArg.
+    modificationTime := modificationTimeArg.
+    dirFlag := dirFlagArg.
+    fileSize := fileSizeArg.
+! !
+
+!FileDirectory class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/libbasic/FileDirectory.st,v 1.54 2013-08-16 11:49:12 cg Exp $'
+!
+
+version_CVS
+    ^ '$Header: /cvs/stx/stx/libbasic/FileDirectory.st,v 1.54 2013-08-16 11:49:12 cg Exp $'
+! !
+
+
+FileDirectory initialize!
--- a/FileStream.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/FileStream.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1032,8 +1032,12 @@
 		currentPosition = ftell(f);
 #endif /* ! _LFS_LARGEFILE */
 	    } else {
-		currentPosition = lseek(fileno(f), (off_t)0, SEEK_CUR);
-	    }
+		if (sizeof(off_t) == 8) {
+                    currentPosition = lseek64(fileno(f), (off_t)0, SEEK_CUR);
+                } else {
+                    currentPosition = lseek(fileno(f), (off_t)0, SEEK_CUR);
+                }
+            }
 #endif /* !WIN32 */
 	} while ((currentPosition < 0) && (__threadErrno == EINTR));
 
@@ -1118,6 +1122,11 @@
 		if (__INST(buffered) == true) {
 		    ret = FSEEK(f, nP, SEEK_SET);
 		} else {
+ #if !defined(__BORLANDC__)                
+                    if (sizeof(nP) == 8)
+                        ret = lseek64(fileno(f), nP, SEEK_SET);
+                    else
+#endif
 		    ret = lseek(fileno(f), nP, SEEK_SET);
 		}
 		__threadErrno = errno;
@@ -1208,7 +1217,11 @@
 		ret = fseek(f, 0L, SEEK_END);
 #endif
 	    } else {
+                if (sizeof(off_t) == 8) {
+                    ret = lseek64(fileno(f), (off_t)0, SEEK_END);
+                } else {
 		ret = lseek(fileno(f), (off_t)0, SEEK_END);
+                }
 	    }
 #endif
 	} while ((ret < 0) && (__threadErrno == EINTR));
--- a/HaltInterrupt.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/HaltInterrupt.st	Tue Feb 16 07:24:34 2016 +0000
@@ -12,10 +12,10 @@
 "{ Package: 'stx:libbasic' }"
 
 ControlInterrupt subclass:#HaltInterrupt
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	category:'Kernel-Exceptions-Control'
+    instanceVariableNames: ''
+    classVariableNames: ''
+    poolDictionaries: ''
+    category: 'Kernel-Exceptions-Control'
 !
 
 !HaltInterrupt class methodsFor:'documentation'!
@@ -41,6 +41,7 @@
 "
 ! !
 
+
 !HaltInterrupt class methodsFor:'initialization'!
 
 initialize
@@ -51,10 +52,15 @@
     "
 ! !
 
+
 !HaltInterrupt class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/HaltInterrupt.st,v 1.4 2013-04-27 10:12:51 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: HaltInterrupt.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/HandleRegistry.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/HandleRegistry.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 Registry subclass:#HandleRegistry
@@ -73,5 +72,12 @@
 !HandleRegistry class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/HandleRegistry.st,v 1.9 2002-03-04 19:15:09 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/HandleRegistry.st,v 1.9 2002/03/04 19:15:09 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: HandleRegistry.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/IncompleteNextCountError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/IncompleteNextCountError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 StreamError subclass:#IncompleteNextCountError
@@ -64,7 +63,14 @@
 !IncompleteNextCountError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/IncompleteNextCountError.st,v 1.2 2003-08-29 19:14:43 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/IncompleteNextCountError.st,v 1.2 2003/08/29 19:14:43 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: IncompleteNextCountError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 IncompleteNextCountError initialize!
+
+
+
--- a/IndexNotFoundError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/IndexNotFoundError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -12,10 +12,10 @@
 "{ Package: 'stx:libbasic' }"
 
 NotFoundError subclass:#IndexNotFoundError
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	category:'Kernel-Exceptions-Errors'
+    instanceVariableNames: ''
+    classVariableNames: ''
+    poolDictionaries: ''
+    category: 'Kernel-Exceptions-Errors'
 !
 
 !IndexNotFoundError class methodsFor:'documentation'!
@@ -40,6 +40,7 @@
 "
 ! !
 
+
 !IndexNotFoundError class methodsFor:'initialization'!
 
 initialize
@@ -50,10 +51,15 @@
     "
 ! !
 
+
 !IndexNotFoundError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/IndexNotFoundError.st,v 1.4 2013-04-27 10:06:42 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: IndexNotFoundError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/Integer.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Integer.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1,3 +1,4 @@
+
 "
  COPYRIGHT (c) 1988 by Claus Gittinger
               All Rights Reserved
@@ -2623,7 +2624,7 @@
      This may be useful for communication interfaces"
 
     (self bitTest:16r8000000000000000) ifTrue:[
-        ^ (self bitAnd:16rFFFFFFFFFFFFFFFF)-16r10000000000000000
+        ^ (self bitAnd:16rFFFFFFFFFFFFFFFF) - 16r10000000000000000
     ].
     ^ (self bitAnd:16r7FFFFFFFFFFFFFFF)
 
@@ -3418,7 +3419,7 @@
     ^ fibUsingDict value:self
 
     "the running time is mostly dictated by the LargeInteger multiplication performance...
-     (therefore, we get O(n) execution times, even for a linear number of multiplications)
+     (therefore, we get O(n?) execution times, even for a linear number of multiplications)
 
      Time millisecondsToRun:[50000 fib_iterative]  312    (DUO 1.7Ghz CPU)
      Time millisecondsToRun:[50000 fib_helper]     109
@@ -4185,6 +4186,7 @@
     "Modified: / 20-01-1998 / 18:05:02 / stefan"
     "Created: / 07-09-2001 / 13:51:33 / cg"
     "Modified: / 02-08-2010 / 12:24:14 / cg"
+    "Modified (comment): / 28-12-2015 / 08:23:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 printOn:aStream base:baseInteger size:sz
@@ -5549,6 +5551,11 @@
 
 version_CVS
     ^ '$Header$'
+!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
 ! !
 
 
--- a/InvalidByteCodeError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/InvalidByteCodeError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 InvalidCodeError subclass:#InvalidByteCodeError
@@ -50,7 +49,14 @@
 !InvalidByteCodeError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/InvalidByteCodeError.st,v 1.4 2003-09-05 10:28:30 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/InvalidByteCodeError.st,v 1.4 2003/09/05 10:28:30 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: InvalidByteCodeError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 InvalidByteCodeError initialize!
+
+
+
--- a/InvalidCodeError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/InvalidCodeError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 ExecutionError subclass:#InvalidCodeError
@@ -50,7 +49,14 @@
 !InvalidCodeError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/InvalidCodeError.st,v 1.4 2003-09-05 10:27:13 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/InvalidCodeError.st,v 1.4 2003/09/05 10:27:13 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: InvalidCodeError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 InvalidCodeError initialize!
+
+
+
--- a/InvalidEncodingError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/InvalidEncodingError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 DecodingError subclass:#InvalidEncodingError
@@ -44,5 +43,12 @@
 !InvalidEncodingError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/InvalidEncodingError.st,v 1.3 2004-03-09 22:00:59 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/InvalidEncodingError.st,v 1.3 2004/03/09 22:00:59 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: InvalidEncodingError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/InvalidInstructionError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/InvalidInstructionError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 InvalidCodeError subclass:#InvalidInstructionError
@@ -50,7 +49,14 @@
 !InvalidInstructionError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/InvalidInstructionError.st,v 1.4 2003-09-05 10:27:30 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/InvalidInstructionError.st,v 1.4 2003/09/05 10:27:30 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: InvalidInstructionError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 InvalidInstructionError initialize!
+
+
+
--- a/InvalidModeError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/InvalidModeError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 StreamError subclass:#InvalidModeError
@@ -38,5 +37,12 @@
 !InvalidModeError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/InvalidModeError.st,v 1.2 2005-02-02 10:59:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/InvalidModeError.st,v 1.2 2005/02/02 10:59:58 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: InvalidModeError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/InvalidOperationError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/InvalidOperationError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 StreamError subclass:#InvalidOperationError
@@ -38,5 +37,12 @@
 !InvalidOperationError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/InvalidOperationError.st,v 1.2 2005-02-02 11:02:30 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/InvalidOperationError.st,v 1.2 2005/02/02 11:02:30 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: InvalidOperationError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/InvalidReadError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/InvalidReadError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 ReadError subclass:#InvalidReadError
@@ -44,5 +43,12 @@
 !InvalidReadError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/InvalidReadError.st,v 1.3 2005-02-02 11:02:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/InvalidReadError.st,v 1.3 2005/02/02 11:02:06 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: InvalidReadError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/JavaPackage.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/JavaPackage.st	Tue Feb 16 07:24:34 2016 +0000
@@ -20,6 +20,8 @@
 "
 "{ Package: 'stx:libbasic' }"
 
+"{ NameSpace: Smalltalk }"
+
 NameSpace subclass:#JavaPackage
 	instanceVariableNames:''
 	classVariableNames:''
@@ -100,18 +102,13 @@
                     thisNamespace isBehavior ifFalse:[
                          self error:'name conflict: java package ' , aName , ' vs. global with the same name'.
                     ].
-                    (thisNamespace ~~ JAVA and:[thisNamespace isJavaPackage not]) ifTrue:[
+                    (thisNamespace ~~ JAVA and:[thisNamespace isJavaPackage not and:[(thisNamespace name startsWith: #'JAVA_') not]]) ifTrue:[
                         self error:'name conflict: non-java package ' , aName , 'aleady exists'.
                     ].
                 ]
             ].
             thisNamespace isNil ifTrue:[
-                key == #JAVA ifTrue:[
-                    thisNamespace := self name: #JAVA.
-                ] ifFalse:[
-                    self breakPoint: #jv.
-                    thisNamespace := self name:key
-                ].
+                thisNamespace := self name:key
             ].
         ] ifFalse:[
             thisNamespace isNameSpace ifTrue:[
@@ -139,7 +136,7 @@
 
     "Created: / 08-11-1996 / 13:41:59 / cg"
     "Modified: / 04-01-1997 / 16:50:59 / cg"
-    "Modified: / 13-11-2014 / 16:52:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-01-2016 / 22:43:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 name:aStringOrSymbol
--- a/LargeFloat.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/LargeFloat.st	Tue Feb 16 07:24:34 2016 +0000
@@ -735,7 +735,10 @@
 !LargeFloat class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/LargeFloat.st,v 1.7 2004-11-12 12:23:46 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/LargeFloat.st,v 1.7 2004/11/12 12:23:46 cg Exp $'
 ! !
 
 LargeFloat initialize!
+
+
+
--- a/MacFilename.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/MacFilename.st	Tue Feb 16 07:24:34 2016 +0000
@@ -64,5 +64,8 @@
 !MacFilename class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/MacFilename.st,v 1.1 1997-09-17 17:43:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/MacFilename.st,v 1.1 1997/09/17 17:43:58 cg Exp $'
 ! !
+
+
+
--- a/MallocFailure.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/MallocFailure.st	Tue Feb 16 07:24:34 2016 +0000
@@ -41,9 +41,14 @@
 "
 ! !
 
+
 !MallocFailure class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/MallocFailure.st,v 1.3 2013-03-13 23:47:08 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: MallocFailure.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
--- a/MappedExternalBytes.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/MappedExternalBytes.st	Tue Feb 16 07:24:34 2016 +0000
@@ -83,5 +83,8 @@
 !MappedExternalBytes class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/MappedExternalBytes.st,v 1.3 2007-02-22 15:27:19 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/MappedExternalBytes.st,v 1.3 2007/02/22 15:27:19 cg Exp $'
 ! !
+
+
+
--- a/MetaNumber.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/MetaNumber.st	Tue Feb 16 07:24:34 2016 +0000
@@ -129,5 +129,11 @@
 
 version
     ^ '$Header$'
+!
+
+version_SVN
+    ^ '$Id: MetaNumber.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MethodOverrideTests.st	Tue Feb 16 07:24:34 2016 +0000
@@ -0,0 +1,61 @@
+'From Smalltalk/X, Version:6.1.1 on 02-07-2010 at 08:40:49 AM'                  !
+
+"{ Package: 'stx:libbasic' }"
+
+TestCase subclass:#MethodOverrideTests
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Kernel-Tests'
+!
+
+
+!MethodOverrideTests methodsFor:'initialization & release'!
+
+tearDown
+
+    #(methodToBeOverriden_1) do:
+        [:sel|
+        (self respondsTo: sel) ifTrue:
+            [self class removeSelector: sel]].
+
+    "Created: / 17-06-2009 / 19:36:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!MethodOverrideTests methodsFor:'tests'!
+
+test_01
+
+    | oldMethod newMethod |
+    '"{ Package: ''stx:libbasic'' }"
+    !!
+    !!MethodOverridesTest methodsFor:''mock methods''!!
+
+    methodToBeOverriden_1
+        ^0
+        !! !!' readStream fileIn.
+    oldMethod := self class compiledMethodAt:#methodToBeOverriden_1.
+    self assert: self methodToBeOverriden_1 = 0.
+
+
+    '"{ Package: ''stx:goodies/sunit'' }"
+    !!
+    !!MethodOverridesTest methodsFor:''mock methods''!!
+
+    methodToBeOverriden_1
+        ^1
+    !! !!' readStream fileIn.
+
+    self assert: self methodToBeOverriden_1 = 1.
+    newMethod := self class compiledMethodAt:#methodToBeOverriden_1.
+
+    self assert: newMethod overridenMethod == oldMethod.
+
+    "Created: / 17-06-2009 / 19:27:23 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!MethodOverrideTests class methodsFor:'documentation'!
+
+version
+    ^'$Id: MethodOverrideTests.st 10717 2011-10-11 15:53:59Z vranyj1 $'
+! !
--- a/NaiveRomanNumberFormatNotification.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/NaiveRomanNumberFormatNotification.st	Tue Feb 16 07:24:34 2016 +0000
@@ -49,5 +49,8 @@
 !NaiveRomanNumberFormatNotification class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/NaiveRomanNumberFormatNotification.st,v 1.3 2008-08-06 09:53:07 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/NaiveRomanNumberFormatNotification.st,v 1.3 2008/08/06 09:53:07 cg Exp $'
 ! !
+
+
+
--- a/NoByteCodeError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/NoByteCodeError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 InvalidCodeError subclass:#NoByteCodeError
@@ -50,7 +49,14 @@
 !NoByteCodeError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/NoByteCodeError.st,v 1.4 2003-09-05 10:27:06 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/NoByteCodeError.st,v 1.4 2003/09/05 10:27:06 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: NoByteCodeError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 NoByteCodeError initialize!
+
+
+
--- a/NonBooleanReceiverError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/NonBooleanReceiverError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 ExecutionError subclass:#NonBooleanReceiverError
@@ -50,7 +49,14 @@
 !NonBooleanReceiverError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/NonBooleanReceiverError.st,v 1.4 2003-09-05 10:27:38 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/NonBooleanReceiverError.st,v 1.4 2003/09/05 10:27:38 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: NonBooleanReceiverError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 NonBooleanReceiverError initialize!
+
+
+
--- a/NonIntegerIndexError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/NonIntegerIndexError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -12,10 +12,10 @@
 "{ Package: 'stx:libbasic' }"
 
 IndexNotFoundError subclass:#NonIntegerIndexError
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	category:'Kernel-Exceptions-Errors'
+    instanceVariableNames: ''
+    classVariableNames: ''
+    poolDictionaries: ''
+    category: 'Kernel-Exceptions-Errors'
 !
 
 !NonIntegerIndexError class methodsFor:'documentation'!
@@ -41,6 +41,7 @@
 "
 ! !
 
+
 !NonIntegerIndexError class methodsFor:'initialization'!
 
 initialize
@@ -51,10 +52,15 @@
     "
 ! !
 
+
 !NonIntegerIndexError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/NonIntegerIndexError.st,v 1.4 2013-04-27 10:04:41 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: NonIntegerIndexError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/NotANumber.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/NotANumber.st	Tue Feb 16 07:24:34 2016 +0000
@@ -157,7 +157,10 @@
 !NotANumber class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/NotANumber.st,v 1.2 2003-07-02 09:52:32 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/NotANumber.st,v 1.2 2003/07/02 09:52:32 cg Exp $'
 ! !
 
 NotANumber initialize!
+
+
+
--- a/NotFoundError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/NotFoundError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -12,10 +12,10 @@
 "{ Package: 'stx:libbasic' }"
 
 ProceedableError subclass:#NotFoundError
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	category:'Kernel-Exceptions-Errors'
+    instanceVariableNames: ''
+    classVariableNames: ''
+    poolDictionaries: ''
+    category: 'Kernel-Exceptions-Errors'
 !
 
 !NotFoundError class methodsFor:'documentation'!
@@ -40,6 +40,7 @@
 "
 ! !
 
+
 !NotFoundError class methodsFor:'initialization'!
 
 initialize
@@ -50,10 +51,15 @@
     "
 ! !
 
+
 !NotFoundError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/NotFoundError.st,v 1.5 2013-04-27 10:05:48 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: NotFoundError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/NumberConversionError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/NumberConversionError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -37,5 +37,9 @@
 !NumberConversionError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/NumberConversionError.st,v 1.4 2008-08-06 09:53:01 cg Exp $'
+    ^ '$Id: NumberConversionError.st 10808 2012-05-09 15:04:12Z vranyj1 $'
+!
+
+version_SVN
+    ^ '$Id: NumberConversionError.st 10808 2012-05-09 15:04:12Z vranyj1 $'
 ! !
--- a/NumberFormatError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/NumberFormatError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -37,5 +37,9 @@
 !NumberFormatError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/NumberFormatError.st,v 1.3 2008-08-06 09:52:56 cg Exp $'
+    ^ '$Id: NumberFormatError.st 10808 2012-05-09 15:04:12Z vranyj1 $'
+!
+
+version_SVN
+    ^ '$Id: NumberFormatError.st 10808 2012-05-09 15:04:12Z vranyj1 $'
 ! !
--- a/OSSignalInterrupt.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OSSignalInterrupt.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 ProceedableError subclass:#OSSignalInterrupt
@@ -62,7 +61,14 @@
 !OSSignalInterrupt class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/OSSignalInterrupt.st,v 1.4 2005-04-11 08:53:28 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/OSSignalInterrupt.st,v 1.4 2005/04/11 08:53:28 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: OSSignalInterrupt.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 OSSignalInterrupt initialize!
+
+
+
--- a/Object.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Object.st	Tue Feb 16 07:24:34 2016 +0000
@@ -609,6 +609,14 @@
     ]
 !
 
+flag:aString
+    "Send this message, with a relevant symbol as argument, to flag a message for subsequent retrieval.  For example, you might put the following line in a number of messages:
+     self flag: #returnHereUrgently
+     Then, to retrieve all such messages, browse all senders of #returnHereUrgently."
+
+    "Created: / 21-04-2015 / 15:50:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 inform: aString
     "Display a message for the user to read and then dismiss."
 
@@ -10320,6 +10328,11 @@
     ^ '$Header$'
 !
 
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+!
+
 version_SVN
     ^ '$ Id: Object.st 10643 2011-06-08 21:53:07Z vranyj1  $'
 ! !
--- a/OpenVMSFileHandle.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OpenVMSFileHandle.st	Tue Feb 16 07:24:34 2016 +0000
@@ -53,5 +53,8 @@
 !OpenVMSFileHandle class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/OpenVMSFileHandle.st,v 1.1 1999-09-18 11:11:28 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/OpenVMSFileHandle.st,v 1.1 1999/09/18 11:11:28 cg Exp $'
 ! !
+
+
+
--- a/OpenVMSFilename.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OpenVMSFilename.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1170,5 +1170,8 @@
 !OpenVMSFilename class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/OpenVMSFilename.st,v 1.18 1997-10-16 10:41:25 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/OpenVMSFilename.st,v 1.18 1997/10/16 10:41:25 cg Exp $'
 ! !
+
+
+
--- a/OsError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OsError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 Error subclass:#OsError
@@ -44,5 +43,12 @@
 !OsError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/OsError.st,v 1.3 2003-08-30 12:31:08 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/OsError.st,v 1.3 2003/08/30 12:31:08 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: OsError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/OsIllegalOperation.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OsIllegalOperation.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 OsError subclass:#OsIllegalOperation
@@ -38,5 +37,12 @@
 !OsIllegalOperation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/OsIllegalOperation.st,v 1.3 2003-08-30 12:31:20 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/OsIllegalOperation.st,v 1.3 2003/08/30 12:31:20 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: OsIllegalOperation.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/OsInaccessibleError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OsInaccessibleError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 OsError subclass:#OsInaccessibleError
@@ -38,5 +37,12 @@
 !OsInaccessibleError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/OsInaccessibleError.st,v 1.3 2003-08-30 12:31:14 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/OsInaccessibleError.st,v 1.3 2003/08/30 12:31:14 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: OsInaccessibleError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/OsInvalidArgumentsError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OsInvalidArgumentsError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 OsError subclass:#OsInvalidArgumentsError
@@ -38,5 +37,12 @@
 !OsInvalidArgumentsError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/OsInvalidArgumentsError.st,v 1.3 2003-08-30 12:31:17 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/OsInvalidArgumentsError.st,v 1.3 2003/08/30 12:31:17 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: OsInvalidArgumentsError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/OsNeedRetryError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OsNeedRetryError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 OsError subclass:#OsNeedRetryError
@@ -38,5 +37,12 @@
 !OsNeedRetryError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/OsNeedRetryError.st,v 1.3 2003-08-30 12:31:04 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/OsNeedRetryError.st,v 1.3 2003/08/30 12:31:04 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: OsNeedRetryError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/OsNoResourcesError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OsNoResourcesError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 OsError subclass:#OsNoResourcesError
@@ -38,5 +37,12 @@
 !OsNoResourcesError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/OsNoResourcesError.st,v 1.3 2003-08-30 12:31:11 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/OsNoResourcesError.st,v 1.3 2003/08/30 12:31:11 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: OsNoResourcesError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/OsNotification.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OsNotification.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 OsError subclass:#OsNotification
@@ -38,5 +37,12 @@
 !OsNotification class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/OsNotification.st,v 1.3 2003-08-30 12:31:22 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/OsNotification.st,v 1.3 2003/08/30 12:31:22 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: OsNotification.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/OsTransferFaultError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OsTransferFaultError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 OsError subclass:#OsTransferFaultError
@@ -38,5 +37,12 @@
 !OsTransferFaultError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/OsTransferFaultError.st,v 1.3 2003-08-30 12:31:25 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/OsTransferFaultError.st,v 1.3 2003/08/30 12:31:25 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: OsTransferFaultError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/OverflowError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/OverflowError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -41,16 +41,22 @@
 "
 ! !
 
+
 !OverflowError class methodsFor:'initialization'!
 
 initialize
     NotifierString := 'overflow'.
 ! !
 
+
 !OverflowError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/OverflowError.st,v 1.4 2013-03-13 23:43:48 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: OverflowError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/Point.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Point.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1192,7 +1192,14 @@
 
 version
     ^ '$Header$'
+!
+
+version_SVN
+    ^ '$Id: Point.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
 Point initialize!
+
+
+
--- a/PositionError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/PositionError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 StreamError subclass:#PositionError
@@ -38,5 +37,12 @@
 !PositionError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/PositionError.st,v 1.2 2005-02-02 11:02:33 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/PositionError.st,v 1.2 2005/02/02 11:02:33 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: PositionError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/PositionOutOfBoundsError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/PositionOutOfBoundsError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 StreamError subclass:#PositionOutOfBoundsError
@@ -44,5 +43,12 @@
 !PositionOutOfBoundsError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/PositionOutOfBoundsError.st,v 1.3 2003-08-29 19:14:46 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/PositionOutOfBoundsError.st,v 1.3 2003/08/29 19:14:46 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: PositionOutOfBoundsError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/PositionableStream.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/PositionableStream.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
@@ -126,6 +124,7 @@
 ! !
 
 
+
 !PositionableStream methodsFor:'Compatibility-Dolphin'!
 
 endChunk
@@ -172,6 +171,28 @@
         ^ element
 
     "Created: / 03-10-2014 / 03:06:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+upToAnyOf: aCollection 
+        "Answer a subcollection from the current access position to the 
+        occurrence (if any, but not inclusive) of any object in the collection. If 
+        no matching object is found, answer the entire rest of the receiver."
+        ^self upToAnyOf: aCollection do: [:matchingObject | ]
+
+    "Created: / 21-04-2015 / 17:25:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+upToAnyOf: subcollection do: aBlock
+        "Answer a subcollection from the current access position to the occurrence (if any, but not inclusive) of any object in the collection.
+        Evaluate aBlock with this occurence as argument.
+        If no matching object is found, don't evaluate aBlock and answer the entire rest of the receiver."
+        
+        ^self collection species new: 1000 streamContents: [ :stream |
+                | ch |
+                [ self atEnd or: [ (subcollection includes: (ch := self next)) and: [aBlock value: ch. true] ] ] 
+                        whileFalse: [ stream nextPut: ch ] ]
+
+    "Created: / 21-04-2015 / 17:26:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !PositionableStream methodsFor:'accessing'!
@@ -887,6 +908,11 @@
 
 version_CVS
     ^ '$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.171 2015-03-12 19:24:30 stefan Exp $'
+!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
 ! !
 
 
--- a/PrimitiveFailure.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/PrimitiveFailure.st	Tue Feb 16 07:24:34 2016 +0000
@@ -12,10 +12,10 @@
 "{ Package: 'stx:libbasic' }"
 
 ExecutionError subclass:#PrimitiveFailure
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	category:'Kernel-Exceptions-ExecutionErrors'
+    instanceVariableNames: ''
+    classVariableNames: ''
+    poolDictionaries: ''
+    category: 'Kernel-Exceptions-ExecutionErrors'
 !
 
 !PrimitiveFailure class methodsFor:'documentation'!
@@ -43,6 +43,7 @@
 "
 ! !
 
+
 !PrimitiveFailure class methodsFor:'initialization'!
 
 initialize
@@ -53,6 +54,7 @@
     "
 ! !
 
+
 !PrimitiveFailure methodsFor:'printing & storing'!
 
 description
@@ -66,10 +68,15 @@
     ^ desc
 ! !
 
+
 !PrimitiveFailure class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/PrimitiveFailure.st,v 1.8 2013-04-27 10:11:13 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: PrimitiveFailure.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/PrivateMetaclass.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/PrivateMetaclass.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 1996 by eXept Software AG
               All Rights Reserved
@@ -11,9 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
-
-
 "{ Package: 'stx:libbasic' }"
 
 Metaclass subclass:#PrivateMetaclass
@@ -132,5 +127,12 @@
 !PrivateMetaclass class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/PrivateMetaclass.st,v 1.13 2004-03-05 17:53:16 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/PrivateMetaclass.st,v 1.13 2004/03/05 17:53:16 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: PrivateMetaclass.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/ProceedError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ProceedError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -12,10 +12,10 @@
 "{ Package: 'stx:libbasic' }"
 
 Warning subclass:#ProceedError
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	category:'Kernel-Exceptions-Errors'
+    instanceVariableNames: ''
+    classVariableNames: ''
+    poolDictionaries: ''
+    category: 'Kernel-Exceptions-Errors'
 !
 
 !ProceedError class methodsFor:'documentation'!
@@ -53,6 +53,7 @@
 
 ! !
 
+
 !ProceedError class methodsFor:'initialization'!
 
 initialize
@@ -66,6 +67,7 @@
 
 ! !
 
+
 !ProceedError methodsFor:'default actions'!
 
 defaultAction
@@ -94,10 +96,15 @@
    "
 ! !
 
+
 !ProceedError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/ProceedError.st,v 1.6 2013-04-19 08:40:03 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: ProceedError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/ProjectDefinition.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ProjectDefinition.st	Tue Feb 16 07:24:34 2016 +0000
@@ -103,6 +103,25 @@
       extensionOverwriteInfo. 
       This is used to correctly reinstall an overwritten method, whenever a package is unloaded.
 
+    ## Custom project definition methods
+
+    Some packages may want to compile custom methods when project definition is updated
+    based on project contents - similarly to how #classNamesAndAttributes or #extensionMethodNames
+    are updated.
+
+    To support this, packages mey add extension methods annotated by <method:category:overwrite:>
+    or <method:category:>. The meaning og arguments is the following:
+
+    * method: <Symbol>     - the selector of method which this method generates.
+    * category: <Symbol>   - the category in which to place generated method
+    * overwrite: <Boolean> - specifies whether the method should obe overwritten
+                             or not. Use `false` only for methods which should be
+                             generated once and then left for user to manually tweak.
+                             optional, defaults to `true` (i.e., do owerwrite methods)
+
+    The annotated method is invoked to get the code od the method to generate, i.e., it must
+    return the source code as String. If it returns nil - no method is generated.
+
     ## Build Support Files
 
     To support pre-compilation of a package, ProjectDefinition can generate a set of makefiles and other
@@ -874,6 +893,7 @@
 
 
 
+
 !ProjectDefinition class methodsFor:'accessing - packaging'!
 
 classNames:aCollectionOfClassNames
@@ -1136,6 +1156,7 @@
         ].
 ! !
 
+
 !ProjectDefinition class methodsFor:'accessing - tests'!
 
 excludedFromTestSuite
@@ -1663,6 +1684,8 @@
      If ignoreOldDefinition is true, new code is generated (class/method scan);
      otherwise, new items are added to the existing lists"
 
+    | cls |
+
     aTwoArgBlock
         value:(self classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition ignoreOldDefinition:ignoreOldDefinition)
         value:'description - contents'.
@@ -1700,7 +1723,32 @@
             value: 'description - monticello'.
     ].
 
-    "Modified: / 25-11-2013 / 13:56:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Add additional custom files"
+    cls := self.
+    [ cls ~~ Object ] whileTrue:[
+        cls class selectorsAndMethodsDo:[:selector :method |
+            | annotation overwrite |
+
+            annotation := method annotationAt: #method:category:overwrite:.
+            annotation notNil ifTrue:[ 
+                overwrite := annotation argumentAt: 3.
+            ] ifFalse:[ 
+                annotation := method annotationAt: #method:category:.
+                overwrite := true.
+            ].
+            (annotation notNil and:[ overwrite or:[ cls class methodDictionary includesKey: (annotation argumentAt:1) ] ]) ifTrue:[
+                | code |
+
+                code := self perform: selector.
+                code notNil ifTrue:[ 
+                    aTwoArgBlock value: code value: (annotation argumentAt: 2)
+                ].
+            ].
+        ].
+        cls := cls superclass.
+    ].
+
+    "Modified: / 12-06-2015 / 07:02:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 forEachDescriptionMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
@@ -1945,6 +1993,7 @@
     "Modified: / 29-03-2012 / 18:43:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+
 !ProjectDefinition class methodsFor:'defaults'!
 
 applicationTypes
@@ -2181,6 +2230,7 @@
 ! !
 
 
+
 !ProjectDefinition class methodsFor:'description - classes'!
 
 additionalClassNamesAndAttributes
@@ -2474,7 +2524,7 @@
                 sed -e "s/\"\$$SVN\-Revision:\".*\"\$$\"/\"\$$SVN-Revision:\"\''$$rev2\''\"\$$\"/g" $< > .%1.svn.st; \
         fi
         $(MAKE) CC="$(CLASSLIB_CC)" OPT="$(OPT)" SEPINITCODE="$(SEPINITCODE)" STC="$(STC)" STFILE=.%1.svn $(C_RULE);
-        sed -i -e "s/\".%1.svn.st\");/\"\%1.st\");/g" .%1.svn.c
+        sed -i -e "s/\".%1.svn.st\");/\"%1.st\");/g" .%1.svn.c
         $(MAKE) .%1.svn.$(O)
         @mv .%1.svn.$(O) %1.$(O)
 endif
@@ -2687,6 +2737,7 @@
     "Created: / 18-08-2006 / 12:51:38 / cg"
 ! !
 
+
 !ProjectDefinition class methodsFor:'description - project information'!
 
 applicationAdditionalIconFileNames
@@ -3943,22 +3994,24 @@
 package_dot_deps_dot_rake_mappings
     |dependencies|
 
-    dependencies := String
-            streamContents:[:s |
-                self allPreRequisites do:[:package |
-                    (self preRequisitesFor:package) do:[:prereq |
-                        s
-                            nextPutAll:('task "%1" => "%2"' bindWith:package with:prereq);
-                            cr
-                    ].
-                    s cr
-                ].
-                self effectivePreRequisites do:[:prereq |
-                    s
-                        nextPutAll:('task "%1" => "%2"' bindWith:self package with:prereq);
-                        cr
-                ].
+    dependencies := String streamContents:[:s |
+        "/ Generate dependencies based on mandatory prereqs to define
+        "/ build order
+        self allPreRequisites asSortedCollection do:[:pkg |
+            (ProjectDefinition definitionClassForPackage:pkg) mandatoryPreRequisites asSortedCollection do:[:prereq |
+                s nextPutAll:'task "'; nextPutAll: pkg; nextPutAll: '" => "'; nextPutAll: prereq; nextPut: $"; cr.
             ].
+            s cr.
+        ].
+        s cr.
+
+        "/ Now make sure all required libraries are included in the build
+        "/ by creating dependency from application to to each prerequisite (both mandatory
+        "/ and referenced)
+        self allPreRequisites asSortedCollection do:[:prereq |
+            s nextPutAll:'task "'; nextPutAll: self package; nextPutAll: '" => "'; nextPutAll: prereq; nextPut: $"; cr.
+        ].
+    ].
 
     ^ (Dictionary new)
         at:'DEPENDENCIES' put:dependencies;
@@ -3966,9 +4019,11 @@
 
     "
         stx_libjava generate_package_dot_deps_dot_rake
+        cvut_fel_izar_application generate_package_dot_deps_dot_rake
     "
 
     "Created: / 24-02-2011 / 22:32:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-02-2016 / 09:34:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 replaceMappings: mappings in: fileTemplate
@@ -4652,7 +4707,7 @@
     ^ String streamContents:[:s |
         self effectiveSubProjects do:[:packageID |
             s nextPutLine:'@echo "***********************************"'.
-            s nextPutLine:'@echo "Buildung ',(packageID copyReplaceAll:$: with:$/).
+            s nextPutLine:'@echo "Buildung ',(packageID copyReplaceAll:$: with:$/) , '"'.
             s nextPutLine:'@echo "***********************************"'.
             s nextPutLine:'@pushd ', (self msdosPathToPackage:packageID from:(self package)).
             s nextPutAll:'@'; nextPutAll:callString; nextPutLine:' || exit /b "%errorlevel%"'.
@@ -4663,6 +4718,7 @@
 
     "Created: / 14-09-2006 / 18:40:09 / cg"
     "Modified: / 27-09-2011 / 19:36:12 / cg"
+    "Modified: / 12-09-2015 / 12:33:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 subProjectMingwmakeCalls
@@ -4808,6 +4864,9 @@
 @REM do not edit - automatically generated from ProjectDefinition
 @REM -------
 @SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%%%i in (''hg root'') do SET HGROOT=%%%%i
+@IF "%%HGROOT%%" NEQ "" SET DEFINES=%%DEFINES%% "-DHGROOT=%%HGROOT%%"
 
 make.exe -N -f bc.mak  %%DEFINES%% %%*
 
@@ -4816,6 +4875,7 @@
 
     "Created: / 17-08-2006 / 20:04:14 / cg"
     "Modified: / 04-09-2012 / 11:46:22 / cg"
+    "Modified: / 12-09-2015 / 12:31:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 builder_baseline_dot_rbspec
@@ -5002,6 +5062,9 @@
 @REM do not edit - automatically generated from ProjectDefinition
 @REM -------
 @SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%%%i in (''hg root'') do SET HGROOT=%%%%i
+@IF "%%HGROOT%%" NEQ "" SET DEFINES=%%DEFINES%% "-DHGROOT=%%HGROOT%%"
 
 @pushd %(TOP)\rules
 @call find_mingw.bat
@@ -5012,7 +5075,7 @@
 '
 
     "Created: / 05-09-2012 / 19:44:51 / cg"
-    "Modified: / 19-03-2013 / 08:54:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 12-09-2015 / 12:31:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 objectLine_make_dot_spec
@@ -5121,6 +5184,10 @@
     popd
 )
 @SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%%%i in (''hg root'') do SET HGROOT=%%%%i
+@IF "%%HGROOT%%" NEQ "" SET DEFINES=%%DEFINES%% "-DHGROOT=%%HGROOT%%"
+
 
 make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
 
@@ -5129,6 +5196,7 @@
 '
 
     "Modified: / 04-09-2012 / 11:45:49 / cg"
+    "Modified: / 12-09-2015 / 12:31:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ProjectDefinition class methodsFor:'loading'!
@@ -6880,13 +6948,9 @@
 !
 
 allPreRequisitesSorted
-    [
-        ^ self allPreRequisitesSorted:#effectivePreRequisites
-    ] on:Error do:[:ex |
-        Transcript showCR:(self name,' [warning]: cycle in prerequisites. Watch out for errors during compile:').
-        Transcript showCR:ex parameter.
-        ^ self allPreRequisitesSorted:#mandatoryPreRequisites
-    ].
+    ^ self allPreRequisitesSorted:#effectivePreRequisites
+
+    "Modified: / 25-09-2015 / 05:45:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 allPreRequisitesSorted:aSelector
@@ -7078,16 +7142,24 @@
         ].
     ].
 
-    "/ ..but not if they're a Java class
+    "/ ...but not if they're a Java class
     requiredClasses := requiredClasses reject:[:each | each isJavaClass ].
 
+
     "all superclasses of my classes
      and my subProject's classes (if required) are mandatory.
      All shared pools used by my classes are required as well"
     requiredClasses do:[:cls |
-        cls allSuperclassesDo:[:eachSuperclass |
-            (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
-                add: (eachSuperclass name, ' - superclass of ', cls name).
+        (self isAutoloaded: cls) ifFalse:[
+            cls allSuperclassesDo:[:eachSuperclass |
+                (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
+                    add: (eachSuperclass name, ' - superclass of ', cls name).
+            ].
+        ] ifTrue:[ 
+            cls allSuperclassesDo:[:eachSuperclass |
+                (referencedClassesWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
+                    add: (eachSuperclass name, ' - superclass of ', cls name).
+            ].
         ].
         cls sharedPools do:[:eachSharedPool |
             (mandatoryClassesForLoadingWithReasons at: eachSharedPool ifAbsentPut:[OrderedSet new])
@@ -7171,7 +7243,7 @@
     "Modified: / 07-08-2006 / 21:56:25 / fm"
     "Created: / 17-11-2010 / 18:27:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 06-09-2011 / 08:29:37 / cg"
-    "Modified: / 30-07-2014 / 20:33:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-09-2015 / 11:21:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ProjectDefinition class methodsFor:'queries'!
@@ -7926,6 +7998,11 @@
     ^ '$Header$'
 !
 
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+!
+
 version_SVN
     ^ '$ Id: ProjectDefinition.st 10645 2011-06-09 15:28:45Z vranyj1  $'
 ! !
--- a/QualifiedName.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/QualifiedName.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1,4 +1,4 @@
-"{ Package: 'stx:libbasic' }"
+"{ Package: '__NoProject__' }"
 
 Object subclass:#QualifiedName
 	instanceVariableNames:'pathString'
--- a/QueryWithoutDefault.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/QueryWithoutDefault.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 Query subclass:#QueryWithoutDefault
@@ -83,7 +82,14 @@
 !QueryWithoutDefault class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/QueryWithoutDefault.st,v 1.3 2005-01-20 12:26:17 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/QueryWithoutDefault.st,v 1.3 2005/01/20 12:26:17 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: QueryWithoutDefault.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 QueryWithoutDefault initialize!
+
+
+
--- a/RangeError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/RangeError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -41,16 +41,22 @@
 "
 ! !
 
+
 !RangeError class methodsFor:'initialization'!
 
 initialize
     NotifierString := 'numeric range error'.
 ! !
 
+
 !RangeError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/RangeError.st,v 1.5 2013-03-13 23:43:54 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: RangeError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/ReadError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ReadError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 StreamError subclass:#ReadError
@@ -38,5 +37,12 @@
 !ReadError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ReadError.st,v 1.2 2005-02-02 10:59:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ReadError.st,v 1.2 2005/02/02 10:59:36 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: ReadError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/ReadOnlySequenceableCollection.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ReadOnlySequenceableCollection.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 SequenceableCollection subclass:#ReadOnlySequenceableCollection
@@ -106,5 +105,12 @@
 !ReadOnlySequenceableCollection class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ReadOnlySequenceableCollection.st,v 1.4 2005-06-27 10:24:03 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ReadOnlySequenceableCollection.st,v 1.4 2005/06/27 10:24:03 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: ReadOnlySequenceableCollection.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/RecursionError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/RecursionError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -12,10 +12,10 @@
 "{ Package: 'stx:libbasic' }"
 
 Error subclass:#RecursionError
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	category:'Kernel-Exceptions-Errors'
+    instanceVariableNames: ''
+    classVariableNames: ''
+    poolDictionaries: ''
+    category: 'Kernel-Exceptions-Errors'
 !
 
 !RecursionError class methodsFor:'documentation'!
@@ -41,6 +41,7 @@
 "
 ! !
 
+
 !RecursionError class methodsFor:'initialization'!
 
 initialize
@@ -51,6 +52,7 @@
     "
 ! !
 
+
 !RecursionError class methodsFor:'queries'!
 
 mayProceed
@@ -61,10 +63,15 @@
     "Created: / 10.11.2001 / 15:10:56 / cg"
 ! !
 
+
 !RecursionError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/RecursionError.st,v 1.6 2013-04-27 10:09:34 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: RecursionError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/RecursiveExceptionError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/RecursiveExceptionError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -12,10 +12,10 @@
 "{ Package: 'stx:libbasic' }"
 
 Error subclass:#RecursiveExceptionError
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	category:'Kernel-Exceptions-Errors'
+    instanceVariableNames: ''
+    classVariableNames: ''
+    poolDictionaries: ''
+    category: 'Kernel-Exceptions-Errors'
 !
 
 !RecursiveExceptionError class methodsFor:'documentation'!
@@ -47,6 +47,7 @@
 
 ! !
 
+
 !RecursiveExceptionError class methodsFor:'initialization'!
 
 initialize
@@ -60,6 +61,7 @@
 
 ! !
 
+
 !RecursiveExceptionError class methodsFor:'queries'!
 
 mayProceed
@@ -69,6 +71,7 @@
 
 ! !
 
+
 !RecursiveExceptionError methodsFor:'accessing'!
 
 exception
@@ -78,10 +81,15 @@
     ^ parameter
 ! !
 
+
 !RecursiveExceptionError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/RecursiveExceptionError.st,v 1.6 2013-04-19 08:40:19 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: RecursiveExceptionError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/RestartProcessRequest.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/RestartProcessRequest.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 ControlRequest subclass:#RestartProcessRequest
@@ -45,5 +44,12 @@
 !RestartProcessRequest class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/RestartProcessRequest.st,v 1.2 2003-08-29 19:18:11 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/RestartProcessRequest.st,v 1.2 2003/08/29 19:18:11 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: RestartProcessRequest.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/RomanNumberFormatError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/RomanNumberFormatError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -49,5 +49,9 @@
 !RomanNumberFormatError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/RomanNumberFormatError.st,v 1.4 2008-08-06 09:53:04 cg Exp $'
+    ^ '$Id: RomanNumberFormatError.st 10808 2012-05-09 15:04:12Z vranyj1 $'
+!
+
+version_SVN
+    ^ '$Id: RomanNumberFormatError.st 10808 2012-05-09 15:04:12Z vranyj1 $'
 ! !
--- a/SequenceableCollection.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/SequenceableCollection.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1808,7 +1808,7 @@
      and each of the receiver's elements equal the corresponding element of otherCollection.
      This should probably replace the current definition of #= ."
 
-    |size otherSize commonSize "{ Class: SamllInteger }" commonElements|
+    |size otherSize commonSize "{ Class: SmallInteger }" commonElements|
 
     (otherCollection == self) ifTrue:[^ self].
     otherCollection isSequenceable ifFalse: [^ self error:'not sequenceable'].
--- a/SignalError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/SignalError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,9 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
-
-
 "{ Package: 'stx:libbasic' }"
 
 ProceedableError subclass:#SignalError
@@ -49,5 +46,12 @@
 !SignalError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/SignalError.st,v 1.5 2004-04-22 15:28:24 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SignalError.st,v 1.5 2004/04/22 15:28:24 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: SignalError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/Smalltalk.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Smalltalk.st	Tue Feb 16 07:24:34 2016 +0000
@@ -1309,6 +1309,9 @@
         wrongName := true.
     ].
 
+    aClass isBuiltInClass ifTrue:[ 
+        self error: 'Cannot remove builtin class!!'.        
+    ].
     self at:sym put:nil.    "nil it out for compiled accesses"
 
     "/
@@ -2998,7 +3001,11 @@
 		].
 		cls isJavaClass ifFalse:[
 		    cls instAndClassSelectorsAndMethodsDo:[:sel :mthd |
-			allProjects add:mthd package asSymbol.
+			| package packageAsSymbol |
+
+			package := mthd package.
+			packageAsSymbol := package asSymbol.
+			allProjects add: packageAsSymbol
 		    ].
 		].
 	    ].
@@ -6424,7 +6431,7 @@
 !
 
 fileInSourceFile:filenameArg lazy:loadLazy silent:beSilent
-    "Try all available programming languages for a matching suffix"
+    "Try all available programming languages"
 
     |filename|
 
@@ -8107,7 +8114,7 @@
 
     "return a full version string"
 
-    ^ 'Smalltalk/X release ' , self versionString , ' of ' , self versionDate
+    ^ 'Smalltalk/X jv-branch release ' , self versionString , ' of ' , self versionDate
 
     "
      Smalltalk fullVersionString
@@ -8156,7 +8163,7 @@
         bitsPerWordString := ''
     ].        
 
-    ^ proto bindWith:('SmallTalk/X' allBold)
+    ^ proto bindWith:('Smalltalk/X jv-branch' allBold)
                 with:(self versionString)
                 with:(self versionDate)
                 with:bitsPerWordString
@@ -8350,7 +8357,7 @@
 
     dateString := String streamContents:[:s | Date today printOn:s language:#en].  "/ MUST be english !!!!
 
-    ^ ('From Smalltalk/X, Version:' , (Smalltalk versionString) , ' on '
+    ^ ('From Smalltalk/X jv-branch, Version:' , (Smalltalk versionString) , ' on '
        , dateString , ' at ' , Time now printString
        )
 !
@@ -8427,11 +8434,16 @@
 !Smalltalk class methodsFor:'documentation'!
 
 version
-    ^ '$Header$'
+    ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.1133 2015-05-22 18:41:08 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header$'
+    ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.1133 2015-05-22 18:41:08 cg Exp $'
+!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
 !
 
 version_SVN
--- a/SmalltalkChunkFileSourceWriter.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/SmalltalkChunkFileSourceWriter.st	Tue Feb 16 07:24:34 2016 +0000
@@ -131,7 +131,7 @@
                             |src|
 
                             src := m source.
-                            src notNil and:[src isWideString]
+                            src notNil and:[src isWideString and:[ src contains: [:c | c codePoint > 16rFF ] ] ]
                         ]]].
 
     any16Bit ifTrue:[
@@ -147,6 +147,7 @@
         encoder:encoder
 
     "Created: / 04-10-2014 / 12:11:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 13-04-2015 / 21:28:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fileOut:aClass on:outStreamArg withTimeStamp:stampIt withInitialize:initIt withDefinition:withDefinition methodFilter:methodFilter encoder:encoderOrNil
@@ -584,7 +585,7 @@
 
     |source possiblyRewrittenSource rewriteQuery|
 
-    source := aMethod source.
+    source := aMethod source asSingleByteStringIfPossible.
     source isNil ifTrue:[
         Class fileOutErrorSignal 
             raiseRequestWith:aMethod mclass
@@ -606,6 +607,8 @@
 "/    Transcript showCR: possiblyRewrittenSource.
 "/].
     ].
+
+    "Modified: / 13-04-2015 / 21:37:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fileOutMethods: methods on: stream
@@ -722,6 +725,11 @@
     ^ '$Header$'
 !
 
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+!
+
 version_SVN
     ^ '$ Id: SmalltalkChunkFileSourceWriter.st 10643 2011-06-08 21:53:07Z vranyj1  $'
 ! !
--- a/SnapshotError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/SnapshotError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 Error subclass:#SnapshotError
@@ -44,7 +43,14 @@
 !SnapshotError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/SnapshotError.st,v 1.3 2005-03-29 22:25:15 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SnapshotError.st,v 1.3 2005/03/29 22:25:15 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: SnapshotError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 SnapshotError initialize!
+
+
+
--- a/StreamIOError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/StreamIOError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 StreamError subclass:#StreamIOError
@@ -38,5 +37,12 @@
 !StreamIOError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/StreamIOError.st,v 1.2 2005-02-02 11:03:44 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/StreamIOError.st,v 1.2 2005/02/02 11:03:44 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: StreamIOError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/StreamNotOpenError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/StreamNotOpenError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 StreamError subclass:#StreamNotOpenError
@@ -44,5 +43,12 @@
 !StreamNotOpenError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/StreamNotOpenError.st,v 1.3 2005-02-02 10:59:49 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/StreamNotOpenError.st,v 1.3 2005/02/02 10:59:49 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: StreamNotOpenError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/String.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/String.st	Tue Feb 16 07:24:34 2016 +0000
@@ -45,11 +45,6 @@
  */
 #define INITIALIZE_WITH_SPACE
 
-#ifdef FAST_MEMCHR
-# if !defined(__osx__) && !defined(WIN32)
- char *memchr();
-# endif
-#endif
 %}
 ! !
 
@@ -573,13 +568,16 @@
 	slf = self;
 	cls = __qClass(slf);
 	indx = __intVal(index) - 1;
-	if (cls != String) {
-	    if (indx < 0) goto badIndex;
-	    indx += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
-	}
-	if ((unsigned)indx < (unsigned)(__stringSize(slf))) {
-	    RETURN ( __MKCHARACTER(__stringVal(slf)[indx] & 0xFF) );
-	}
+	if (cls == String) {
+	    fetch:
+	    if ((unsigned)indx < (unsigned)(__stringSize(slf))) {
+	        RETURN ( __MKCHARACTER(__stringVal(slf)[indx] & 0xFF) );
+	    }	    
+	   goto badIndex;
+        }
+	if (indx < 0) goto badIndex;
+	indx += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
+	goto fetch;
     }
 badIndex: ;
 #endif /* ! __SCHTEAM__ */
@@ -1248,7 +1246,7 @@
      'hello world' indexOfAny:'AOE' startingAt:1
      'hello world' indexOfAny:'o' startingAt:6
      'hello world' indexOfAny:'o' startingAt:6
-     'hello world' indexOfAny:'#$' startingAt:6
+     'hello world' indexOfAny:'#$' startingAt:6
     "
 !
 
@@ -1836,17 +1834,41 @@
     long h = me.hash_fnv1a();
     return __c__._RETURN(STInteger._new(h));
 #else
-    extern unsigned int __symbolHash(char *);
-    unsigned char *cp = __stringVal(self);
-    unsigned int h;
-
-    if (!__qIsStringLike(self)) {
-	cp += __OBJS2BYTES__(__intVal(__ClassInstPtr(__qClass(self))->c_ninstvars));
+    /* Following code is inlined FNV1a hash. 
+     * Inlined for speed (to avoid send).
+     * DO NOT use __symbolHash() here as it 
+     * does not handle characters with codepoint 0
+     * properly - see
+     * https://swing.fit.cvut.cz/projects/stx-jv/ticket/65
+     */
+    REGISTER unsigned int h;
+    REGISTER unsigned char *cp;
+    int l;
+
+    cp = __stringVal(self);
+    l = __stringSize(self);
+    if (__qClass(self) == String) {
+	cont:    
+	h = 2166136261U;
+	while (l >= 4) {
+	    l -= 4;
+	    h = (h ^ cp[0]) * 16777619;
+	    h = (h ^ cp[1]) * 16777619;
+	    h = (h ^ cp[2]) * 16777619;
+	    h = (h ^ cp[3]) * 16777619;
+	    cp += 4;
+    	}
+    	while (l--) {
+	    h = (h ^ *cp++) * 16777619;
+    	}
+    	// make it a smallInteger
+    	h = (h ^ (h >> 30)) & 0x3FFFFFFF;
+    	RETURN ( __mkSmallInteger(h));
+    } else {        
+	int n = __OBJS2BYTES__(__intVal(__ClassInstPtr(__qClass(self))->c_ninstvars));
+	cp += n;
+	goto cont;
     }
-    h = __symbolHash(cp);
-    // make sure, it fits into a smallInt
-    h = (h ^ (h >> 30)) & 0x3FFFFFFF;
-    RETURN(__mkSmallInteger(h));
 #endif /* not SCHTEAM */
 %}.
     ^ self primitiveFailed
@@ -1930,31 +1952,34 @@
     long h = me.hash_fnv1a();
     return __c__._RETURN(STInteger._new(h));
 #else
-    REGISTER unsigned int h  = 2166136261u;
-    REGISTER unsigned char *cp = __stringVal(self);
-    INT l  = __stringSize(self);
-
-    if (!__qIsStringLike(self)) {
-	int n = __OBJS2BYTES__(__intVal(__ClassInstPtr(__qClass(self))->c_ninstvars));
-
-	cp += n;
-	l -= n;
-    }
-
-    while (l >= 4) {
+    REGISTER unsigned int h;
+    REGISTER unsigned char *cp;
+    int l;
+
+    cp = __stringVal(self);
+    l = __stringSize(self);
+    if (__qClass(self) == String) {
+	cont:    
+	h = 2166136261U;
+	while (l >= 4) {
 	l -= 4;
 	h = (h ^ cp[0]) * 16777619;
 	h = (h ^ cp[1]) * 16777619;
 	h = (h ^ cp[2]) * 16777619;
 	h = (h ^ cp[3]) * 16777619;
 	cp += 4;
-    }
-    while (l--) {
+    	}
+    	while (l--) {
 	h = (h ^ *cp++) * 16777619;
+    	}
+    	// make it a smallInteger
+    	h = (h ^ (h >> 30)) & 0x3FFFFFFF;
+    	RETURN ( __mkSmallInteger(h));
+    } else {        
+	int n = __OBJS2BYTES__(__intVal(__ClassInstPtr(__qClass(self))->c_ninstvars));
+	cp += n;
+	goto cont;
     }
-    // make it a smallInteger
-    h = (h ^ (h >> 30)) & 0x3FFFFFFF;
-    RETURN ( __mkSmallInteger(h));
 #endif /* not SCHTEAM */
 %}.
     ^ self primitiveFailed
@@ -3075,10 +3100,10 @@
 	'abcde1234' utf8EncodedOn:w
      ].
      String streamContents:[:w|
-	 'abcde' utf8EncodedOn:w
+	 'abcde' utf8EncodedOn:w
      ].
      String streamContents:[:w|
-	 'abcde' asUnicode16String utf8EncodedOn:w
+	 'abcde' asUnicode16String utf8EncodedOn:w
      ].
     "
 ! !
@@ -3541,8 +3566,8 @@
     "
       'hello world' asUnicode16String errorPrint
       (Character value:356) asString errorPrint
-      'Bnnigheim' errorPrint
-      'Bnnigheim' asUnicodeString errorPrint
+      'Bnnigheim' errorPrint
+      'Bnnigheim' asUnicodeString errorPrint
     "
 !
 
--- a/SubscriptOutOfBoundsError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/SubscriptOutOfBoundsError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -12,10 +12,10 @@
 "{ Package: 'stx:libbasic' }"
 
 IndexNotFoundError subclass:#SubscriptOutOfBoundsError
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	category:'Kernel-Exceptions-Errors'
+    instanceVariableNames: ''
+    classVariableNames: ''
+    poolDictionaries: ''
+    category: 'Kernel-Exceptions-Errors'
 !
 
 !SubscriptOutOfBoundsError class methodsFor:'documentation'!
@@ -41,6 +41,7 @@
 "
 ! !
 
+
 !SubscriptOutOfBoundsError class methodsFor:'initialization'!
 
 initialize
@@ -51,10 +52,15 @@
     "
 ! !
 
+
 !SubscriptOutOfBoundsError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/SubscriptOutOfBoundsError.st,v 1.5 2013-04-27 10:07:39 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: SubscriptOutOfBoundsError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/Symbol.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Symbol.st	Tue Feb 16 07:24:34 2016 +0000
@@ -457,6 +457,38 @@
     ^ super = something
 !
 
+hash
+    "return an integer useful as a hash-key.
+     This default method uses whichever hash algorithm
+     used in the ST/X VM (which is actually fnv-1a)"
+
+%{  /* NOCONTEXT */
+#ifdef __SCHTEAM__
+    STString me = self.asSTString();
+    long h = me.hash_fnv1a();
+    return __c__._RETURN(STInteger._new(h));
+#else
+    extern unsigned int __symbolHash(char *);
+    unsigned char *cp;
+    unsigned int h;
+
+    cp = __stringVal(self);
+    if (__qClass(self) == Symbol) {    
+	cont:
+	/* Use __symbolHash() to make sure it's the same used by the VM */
+	h = __symbolHash(cp);
+	RETURN(__mkSmallInteger(h));
+    } else {
+	int n = __OBJS2BYTES__(__intVal(__ClassInstPtr(__qClass(self))->c_ninstvars));
+	cp += n;    
+	goto cont;
+    }
+#endif /* not SCHTEAM */
+%}.
+    ^ self primitiveFailed
+
+!
+
 identityHash
     "interned symbols can return a better hash key"
 
--- a/SystemNotification.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/SystemNotification.st	Tue Feb 16 07:24:34 2016 +0000
@@ -37,5 +37,8 @@
 !SystemNotification class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/SystemNotification.st,v 1.3 2008-10-04 08:42:18 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SystemNotification.st,v 1.3 2008/10/04 08:42:18 cg Exp $'
 ! !
+
+
+
--- a/TextCollectorStream.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/TextCollectorStream.st	Tue Feb 16 07:24:34 2016 +0000
@@ -195,5 +195,8 @@
 !TextCollectorStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/TextCollectorStream.st,v 1.2 2006-04-06 10:54:06 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/TextCollectorStream.st,v 1.2 2006/04/06 10:54:06 stefan Exp $'
 ! !
+
+
+
--- a/TimeConversionError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/TimeConversionError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -43,7 +43,14 @@
 !TimeConversionError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/TimeConversionError.st,v 1.1 2008-08-06 09:22:57 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/TimeConversionError.st,v 1.1 2008/08/06 09:22:57 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: TimeConversionError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 TimeConversionError initialize!
+
+
+
--- a/TimeoutError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/TimeoutError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 ProceedableError subclass:#TimeoutError
@@ -67,7 +66,14 @@
 !TimeoutError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/TimeoutError.st,v 1.5 2004-08-22 17:47:07 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/TimeoutError.st,v 1.5 2004/08/22 17:47:07 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: TimeoutError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 TimeoutError initialize!
+
+
+
--- a/UnboundedExternalStream.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/UnboundedExternalStream.st	Tue Feb 16 07:24:34 2016 +0000
@@ -71,3 +71,6 @@
 version
     ^ '$Header: /cvs/stx/stx/libbasic/UnboundedExternalStream.st,v 1.9 2015-04-21 16:06:59 cg Exp $'
 ! !
+
+
+
--- a/UndefinedObject.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/UndefinedObject.st	Tue Feb 16 07:24:34 2016 +0000
@@ -110,6 +110,7 @@
     "Modified: 3.1.1997 / 15:06:15 / cg"
 ! !
 
+
 !UndefinedObject class methodsFor:'queries'!
 
 canBeSubclassed
@@ -156,6 +157,16 @@
 
 
 
+!UndefinedObject methodsFor:'Compatibility-Squeak'!
+
+subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString category:cat
+    ^ self subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries: '' category:cat
+
+    "Created: / 24-07-2015 / 19:29:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+
+
 !UndefinedObject methodsFor:'converting'!
 
 asBoolean
@@ -299,7 +310,6 @@
     ^ 0
 ! !
 
-
 !UndefinedObject methodsFor:'subclass creation'!
 
 nilSubclass:action
@@ -729,6 +739,7 @@
     ^ aVisitor visitNilWith:aParameter
 ! !
 
+
 !UndefinedObject class methodsFor:'documentation'!
 
 version
--- a/UnderflowError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/UnderflowError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -41,16 +41,22 @@
 "
 ! !
 
+
 !UnderflowError class methodsFor:'initialization'!
 
 initialize
     NotifierString := 'underflow'.
 ! !
 
+
 !UnderflowError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/UnderflowError.st,v 1.4 2013-03-13 23:43:59 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: UnderflowError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/UnimplementedFunctionalityError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/UnimplementedFunctionalityError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 ProceedableError subclass:#UnimplementedFunctionalityError
@@ -63,7 +62,14 @@
 !UnimplementedFunctionalityError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UnimplementedFunctionalityError.st,v 1.2 2006-03-03 19:13:11 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnimplementedFunctionalityError.st,v 1.2 2006/03/03 19:13:11 stefan Exp $'
+!
+
+version_SVN
+    ^ '$Id: UnimplementedFunctionalityError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 UnimplementedFunctionalityError initialize!
+
+
+
--- a/UnixFileHandle.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/UnixFileHandle.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 OSFileHandle subclass:#UnixFileHandle
@@ -60,5 +59,12 @@
 !UnixFileHandle class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UnixFileHandle.st,v 1.4 2003-08-30 12:36:42 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnixFileHandle.st,v 1.4 2003/08/30 12:36:42 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: UnixFileHandle.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
+
+
+
--- a/UnixOperatingSystem.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/UnixOperatingSystem.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9154,9 +9154,10 @@
      NOTE: This is a private interface, please use RandomGenerator!!"
 
 %{
-#if defined(LINUX) && defined(USE_GETRANDOM)
+#ifdef LINUX
 # include <linux/random.h>
-# if defined(GRND_RANDOM) && defined(GRND_NONBLOCK)
+# include <sys/syscall.h>
+# if defined(GRND_RANDOM) && defined(GRND_NONBLOCK) && defined(SYS_getrandom)
     // getrandom(2) is upported starting with linux 3.17
 
     int wanted, cnt, gotSoFar = 0;
@@ -9166,7 +9167,7 @@
 	int buf = 0;
 
 	do {
-	    cnt = getrandom(&buf + gotSoFar, wanted - gotSoFar, 0);
+            cnt = syscall(SYS_getrandom, &buf + gotSoFar, wanted - gotSoFar, 0);
 	    if (cnt < 0) {
 		if (errno != EINTR && errno != EAGAIN)
 		    goto error;
@@ -9185,7 +9186,7 @@
 	goto error;
 
     do {
-	cnt = getrandom(buffer + gotSoFar, wanted - gotSoFar, 0);
+        cnt = syscall(SYS_getrandom, buffer + gotSoFar, wanted - gotSoFar, 0);
 	if (cnt < 0) {
 	    if (errno != EINTR && errno != EAGAIN)
 		goto error;
@@ -9197,8 +9198,8 @@
     } while (gotSoFar < wanted);
     RETURN(bufferOrInteger);
 
-# endif // GRND_RANDOM
-#endif
+# endif // linux
+#endif  // GRND_RANDOM
 error: ;
 %}.
 
@@ -9597,7 +9598,7 @@
      Codeset := #'utf8-mac'.
      CodesetEncoder := nil.
      OperatingSystem getCodesetEncoder
-     OperatingSystem encodePath:''
+     OperatingSystem encodePath:''
     "
 
     "Modified: / 23-01-2013 / 10:00:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -13122,7 +13123,7 @@
 	    domain:#'AF_INET' type:nil protocol:nil flags:nil
      self getAddressInfo:'www.exept.de' serviceName:nil
 	    domain:#'AF_INET6' type:nil protocol:nil flags:nil
-     self getAddressInfo:'www.baden-wrttemberg.de' serviceName:nil
+     self getAddressInfo:'www.baden-wrttemberg.de' serviceName:nil
 	    domain:#'AF_INET' type:#stream protocol:nil flags:nil
     "
 !
--- a/UnorderedNumbersError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/UnorderedNumbersError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -40,16 +40,22 @@
 "
 ! !
 
+
 !UnorderedNumbersError class methodsFor:'initialization'!
 
 initialize
     NotifierString := 'unordered'.
 ! !
 
+
 !UnorderedNumbersError class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/UnorderedNumbersError.st,v 1.5 2013-03-13 23:44:03 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: UnorderedNumbersError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/UserInformation.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/UserInformation.st	Tue Feb 16 07:24:34 2016 +0000
@@ -63,7 +63,14 @@
 !UserInformation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UserInformation.st,v 1.4 2008-10-04 08:42:26 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UserInformation.st,v 1.4 2008/10/04 08:42:26 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: UserInformation.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 UserInformation initialize!
+
+
+
--- a/WeakValueIdentityDictionary.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/WeakValueIdentityDictionary.st	Tue Feb 16 07:24:34 2016 +0000
@@ -255,3 +255,5 @@
     ^ '$Header$'
 ! !
 
+
+
--- a/Win32OperatingSystem.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/Win32OperatingSystem.st	Tue Feb 16 07:24:34 2016 +0000
@@ -203,6 +203,7 @@
 	privateIn:Win32OperatingSystem
 !
 
+
 Win32OperatingSystem::Win32IOHandle subclass:#Win32SocketHandle
 	instanceVariableNames:''
 	classVariableNames:''
@@ -221,7 +222,10 @@
 %{
 
 # define WINVER 0x0500   /*required for CoInitializeEx*/
-
+# undef  WINVER
+# define WINVER 0x0600   /*required for GetTokenInformation & associated typedefs */
+# undef  WINVER
+# define WINVER 0x0601   /*required for GetTimeZoneInformationForYear & associated typedefs */
 #include "stxOSDefs.h"
 
 #define USE_H_ERRNO
@@ -484,9 +488,17 @@
 
 #define _HANDLEVal(o)        (HANDLE)(__externalAddressVal(o))
 #define _SETHANDLEVal(o, v)  (__externalAddressVal(o) = (v))
-
-#if defined(__BORLANDC__)
-HANDLE _get_osfhandle(int);     // not for MINGW!
+#ifndef __MINGW__
+HANDLE _get_osfhandle(int);
+#endif
+
+/* Warning: a horrible hack here. For whatever reason, when compiled under 
+ * MINGW64, both __MINGW64__ and __MINGW32__ seems to be defined. As a quick
+ * and dirty hack, use `(defined(__MINGW32__) && !defined(__MINGW64__))` to 
+ * check whether compiling under MINGW32 or MINGW64. 
+ * This has to be solved properly later!
+ */
+#if defined(__BORLANDC__) || (defined(__MINGW32__) && !defined(__MINGW64__))
 
 typedef enum _TOKEN_ELEVATION_TYPE {
     TokenElevationTypeDefault = 1,
@@ -494,6 +506,10 @@
     TokenElevationTypeLimited,
 } TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE;
 
+#endif
+
+#if defined(__BORLANDC__)
+
 typedef struct _TOKEN_ELEVATION {
     DWORD TokenIsElevated;
 } TOKEN_ELEVATION, *PTOKEN_ELEVATION;
@@ -3660,55 +3676,65 @@
 
     cmdFile := aCommand asFilename.
     cmdFile isAbsolute ifTrue:[
-	cmdFile exists ifTrue:[
-	    ^ aCommand
-	].
-	^ nil
+        cmdFile exists ifTrue:[
+            ^ aCommand
+        ].
+        cmdFile suffix isEmpty ifTrue:[ 
+            ((path := cmdFile withSuffix: 'com') exists 
+                or:[ (path := cmdFile withSuffix: 'exe') exists 
+                or:[ (path := cmdFile withSuffix: 'bar') exists ]]) ifTrue:[ 
+                    path isExecutable ifTrue:[
+                        ^ path pathName
+                    ]. 
+                ].
+        ].
+        ^ nil
     ].
 
     (aCommand includes:Filename separator) ifTrue:[
-	path := Filename currentDirectory construct:aCommand.
-	(path exists
-	or:[ (path := path withSuffix:'com') exists
-	or:[ (path := path withSuffix:'exe') exists ]]) ifTrue:[
-	    path isExecutable ifTrue:[
-		^ path pathName
-	    ].
-	].
-	^ nil
+        path := Filename currentDirectory construct:aCommand.
+        (path exists
+        or:[ (path := path withSuffix:'com') exists
+        or:[ (path := path withSuffix:'exe') exists 
+        or:[ (path := path withSuffix:'bat') exists ]]]) ifTrue:[
+            path isExecutable ifTrue:[
+                ^ path pathName
+            ].
+        ].
+        ^ nil
     ].
 
     path := (self getEnvironment:'PATH') ? ''.
     (rentry := self registryEntry key: 'HKEY_CURRENT_USER\Environment') notNil ifTrue:[
-	rpath := rentry valueNamed: 'PATH'.
-	rpath notNil ifTrue:[
-	    path := path , self pathSeparator , rpath
-	].
+        rpath := rentry valueNamed: 'PATH'.
+        rpath notNil ifTrue:[
+            path := path , self pathSeparator , rpath
+        ].
     ].
     path := '.;',path.
 
     (path asCollectionOfSubstringsSeparatedBy:(self pathSeparator)) do:[:eachDirectory |
-	eachDirectory isEmpty ifTrue:[
-	    f := cmdFile
-	] ifFalse:[
-	    f := eachDirectory asFilename construct:aCommand.
-	].
-	f suffix isEmpty ifTrue:[
-	    self executableFileExtensions do:[:ext |
-		ext notEmpty ifTrue:[
-		    fExt := (f pathName , '.' , ext) asFilename.
-		] ifFalse:[
-		    fExt := f.
-		].
-		fExt isExecutable ifTrue:[
-		    ^ fExt pathName
-		].
-	    ].
-	] ifFalse:[
-	    f isExecutable ifTrue:[
-		^ f pathName
-	    ].
-	].
+        eachDirectory isEmpty ifTrue:[
+            f := cmdFile
+        ] ifFalse:[
+            f := eachDirectory asFilename construct:aCommand.
+        ].
+        f suffix isEmpty ifTrue:[
+            self executableFileExtensions do:[:ext |
+                ext notEmpty ifTrue:[
+                    fExt := (f pathName , '.' , ext) asFilename.
+                ] ifFalse:[
+                    fExt := f.
+                ].
+                fExt isExecutable ifTrue:[
+                    ^ fExt pathName
+                ].
+            ].
+        ] ifFalse:[
+            f isExecutable ifTrue:[
+                ^ f pathName
+            ].
+        ].
     ].
     ^ nil
 
@@ -3722,8 +3748,9 @@
      OperatingSystem pathOfCommand:'stx'
     "
 
-    "Modified: / 23-08-2011 / 21:11:47 / jv"
     "Modified: / 20-01-2012 / 13:32:55 / cg"
+    "Modified: / 01-07-2015 / 06:04:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+
 !
 
 primExec:commandPath commandLine:commandLine fileDescriptors:fdArray fork:doFork newPgrp:newPgrp inPath:dirName createFlags:flagsOrNil inheritHandles:inheritHandles
@@ -10634,7 +10661,7 @@
 	}
     } else if (__isSmallInteger(anIntegerOrNil)) {
 	int year = __intVal(anIntegerOrNil);
-#if defined(__BORLANDC__) || defined(__MINGW32__)
+#if defined(__BORLANDC__) || (defined(__MINGW32__) && !defined(__MINGW64__))
 	{
 	    typedef BOOL (WINAPI *P_GetTimeZoneInformationForYear)(
 					USHORT,
@@ -10827,7 +10854,7 @@
 	_utcOffset = longTime / 10000000;
 	utcOffset = __mkSmallInteger(_utcOffset);
 
-# if defined(__BORLANDC__) || defined(__MINGW32__)
+# if defined(__BORLANDC__) || (defined(__MINGW32__) && !defined(__MINGW64__))
 	{
 	    typedef BOOL (WINAPI *P_GetTimeZoneInformationForYear)(
 					USHORT,
--- a/WrongNumberOfArgumentsError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/WrongNumberOfArgumentsError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,7 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
 "{ Package: 'stx:libbasic' }"
 
 ArgumentError subclass:#WrongNumberOfArgumentsError
@@ -56,7 +55,14 @@
 !WrongNumberOfArgumentsError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/WrongNumberOfArgumentsError.st,v 1.5 2003-12-05 15:47:45 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/WrongNumberOfArgumentsError.st,v 1.5 2003/12/05 15:47:45 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: WrongNumberOfArgumentsError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 WrongNumberOfArgumentsError initialize!
+
+
+
--- a/WrongProceedabilityError.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/WrongProceedabilityError.st	Tue Feb 16 07:24:34 2016 +0000
@@ -9,9 +9,6 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-
-
-
 "{ Package: 'stx:libbasic' }"
 
 SignalError subclass:#WrongProceedabilityError
@@ -67,7 +64,14 @@
 !WrongProceedabilityError class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/WrongProceedabilityError.st,v 1.4 2003-08-29 19:14:38 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/WrongProceedabilityError.st,v 1.4 2003/08/29 19:14:38 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: WrongProceedabilityError.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 WrongProceedabilityError initialize!
+
+
+
--- a/ZeroDivide.st	Mon Feb 15 23:10:17 2016 +0100
+++ b/ZeroDivide.st	Tue Feb 16 07:24:34 2016 +0000
@@ -65,12 +65,14 @@
 "
 ! !
 
+
 !ZeroDivide class methodsFor:'initialization'!
 
 initialize
     NotifierString := 'division by zero'.
 ! !
 
+
 !ZeroDivide methodsFor:'accessing'!
 
 defaultResumeValue
@@ -123,10 +125,15 @@
     "
 ! !
 
+
 !ZeroDivide class methodsFor:'documentation'!
 
 version
     ^ '$Header: /cvs/stx/stx/libbasic/ZeroDivide.st,v 1.8 2013-01-25 17:19:34 cg Exp $'
+!
+
+version_SVN
+    ^ '$Id: ZeroDivide.st 10761 2012-01-19 11:46:00Z vranyj1 $'
 ! !
 
 
--- a/bmake.bat	Mon Feb 15 23:10:17 2016 +0100
+++ b/bmake.bat	Tue Feb 16 07:24:34 2016 +0000
@@ -4,6 +4,9 @@
 @REM do not edit - automatically generated from ProjectDefinition
 @REM -------
 @SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
 
 make.exe -N -f bc.mak  %DEFINES% %*
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lcmake.bat	Tue Feb 16 07:24:34 2016 +0000
@@ -0,0 +1,8 @@
+@REM -------
+@REM make using lcc compiler
+@REM type lcmake, and wait...
+@REM do not edit - automatically generated from ProjectDefinition
+@REM -------
+make.exe -N -f bc.mak USELCC=1 %1 %2
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/not_delivered/.cvsignore	Tue Feb 16 07:24:34 2016 +0000
@@ -0,0 +1,2 @@
+*.bad
+*.new
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/not_delivered/SysDict.st	Tue Feb 16 07:24:34 2016 +0000
@@ -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
+    ^ '$Header: /cvs/stx/stx/libbasic/not_delivered/SysDict.st,v 1.1 1996/09/12 01:05:30 cg Exp $'
+!
+
+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]
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/not_delivered/SystemDictionary.st	Tue Feb 16 07:24:34 2016 +0000
@@ -0,0 +1,321 @@
+"
+ 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
+    ^ '$Header: /cvs/stx/stx/libbasic/not_delivered/SysDict.st,v 1.1 1996/09/12 01:05:30 cg Exp $'
+!
+
+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]
+! !
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/not_delivered/VMBehavior.st	Tue Feb 16 07:24:34 2016 +0000
@@ -0,0 +1,615 @@
+"
+ COPYRIGHT (c) 1995 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.
+"
+
+Object subclass:#VMBehavior
+	instanceVariableNames:'superclass flags selectorArray methodArray'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Kernel-Classes'
+!
+
+!VMBehavior class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1995 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.
+"
+!
+
+documentation
+"
+    This class describes what the VM considers to be a classLike object.
+    Every class in the system inherits from VMBehavior (via Behavior, Class, ClassDescription).
+
+    In contrast to Behavior (which describes smalltalk behavior), the things defined
+    here are valid for all objects for which the VM can do a method lookup.
+    In theory, you can create totally different object systems on top of VMBehavior.
+    This class is purely abstract - therefore, no smalltalk behavior is defined here.
+
+    This is certainly not for normal applications.
+
+    Instance variables:
+
+	superclass        <Class>           where lookup continues when a selector is not
+					    found in the selector array
+					    (i.e. the superclass in Smalltalk terms)
+
+	selectorArray     <Array of Symbol> the selectors for which inst-methods are defined here
+
+	methodArray       <Array of Method> the inst-methods corresponding to the selectors
+
+	flags             <SmallInteger>    special flag bits coded in a number
+					    not for application use
+
+    flag bits (see stc.h):
+
+    NOTICE: layout known by compiler and runtime system; be careful when changing
+"
+! !
+
+!VMBehavior class methodsFor:'initialization'!
+
+initialize
+    self == VMBehavior ifTrue:[
+        self flags:(self flagBehavior).
+    ]
+
+    "
+      self initialize
+    "
+! !
+
+!VMBehavior class methodsFor:'flag bit constants'!
+
+flagBehavior
+    "return the flag code which marks Behavior-like instances.
+     You have to check this single bit in the flag value when
+     checking for behaviors."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(BEHAVIOR_INSTS) );
+%}
+
+    "consistency check:
+     all class-entries must be behaviors;
+     all behaviors must be flagged so (in its class's flags)
+     (otherwise, VM will bark)
+     all non-behaviors may not be flagged
+
+     |bit|
+     bit := Class flagBehavior.
+
+     ObjectMemory allObjectsDo:[:o|
+       o isBehavior ifTrue:[
+	 (o class flags bitTest:bit) ifFalse:[
+	     self halt
+	 ].
+       ] ifFalse:[
+	 (o class flags bitTest:bit) ifTrue:[
+	     self halt
+	 ].
+       ].
+       o class isBehavior ifFalse:[
+	 self halt
+       ] ifTrue:[
+	 (o class class flags bitTest:bit) ifFalse:[
+	     self halt
+	 ]
+       ]
+     ]
+    "
+!
+
+flagBlock
+    "return the flag code which marks Block-like instances.
+     You have to check this single bit in the flag value when
+     checking for blocks."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(BLOCK_INSTS) );
+%}
+!
+
+flagBlockContext
+    "return the flag code which marks BlockContext-like instances.
+     You have to check this single bit in the flag value when
+     checking for blockContexts."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(BCONTEXT_INSTS) );
+%}
+!
+
+flagBytes
+    "return the flag code for byte-valued indexed instances.
+     You have to mask the flag value with indexMask when comparing
+     it with flagBytes."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(BYTEARRAY) );
+%}
+    "
+     Behavior flagBytes    
+    "
+!
+
+flagContext
+    "return the flag code which marks Context-like instances.
+     You have to check this single bit in the flag value when
+     checking for contexts."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(CONTEXT_INSTS) );
+%}
+!
+
+flagDoubles
+    "return the flag code for double-valued indexed instances (i.e. 8-byte reals).
+     You have to mask the flag value with indexMask when comparing
+     it with flagDoubles."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(DOUBLEARRAY) );
+%}
+    "
+     Behavior flagDoubles    
+    "
+!
+
+flagFloat
+    "return the flag code which marks Float-like instances.
+     You have to check this single bit in the flag value when
+     checking for floats."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(FLOAT_INSTS) );
+%}
+!
+
+flagFloats
+    "return the flag code for float-valued indexed instances (i.e. 4-byte reals).
+     You have to mask the flag value with indexMask when comparing
+     it with flagFloats."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(FLOATARRAY) );
+%}
+    "
+     Behavior flagFloats    
+    "
+!
+
+flagLongs
+    "return the flag code for long-valued indexed instances (i.e. 4-byte).
+     You have to mask the flag value with indexMask when comparing
+     it with flagLongs."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(LONGARRAY) );
+%}
+    "
+     Behavior flagLongs    
+    "
+!
+
+flagMethod
+    "return the flag code which marks Method-like instances.
+     You have to check this single bit in the flag value when
+     checking for methods."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(METHOD_INSTS) );
+%}
+!
+
+flagNotIndexed
+    "return the flag code for non-indexed instances.
+     You have to mask the flag value with indexMask when comparing
+     it with flagNotIndexed."
+
+    ^ 0
+!
+
+flagPointers
+    "return the flag code for pointer indexed instances (i.e. Array of object).
+     You have to mask the flag value with indexMask when comparing
+     it with flagPointers."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(POINTERARRAY) );
+%}
+    "
+     Behavior flagPointers    
+    "
+!
+
+flagSymbol
+    "return the flag code which marks Symbol-like instances.
+     You have to check this single bit in the flag value when
+     checking for symbols."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(SYMBOL_INSTS) );
+%}
+!
+
+flagWeakPointers
+    "return the flag code for weak pointer indexed instances (i.e. WeakArray).
+     You have to mask the flag value with indexMask when comparing
+     it with flagWeakPointers."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(WKPOINTERARRAY) );
+%}
+!
+
+flagWords
+    "return the flag code for word-valued indexed instances (i.e. 2-byte).
+     You have to mask the flag value with indexMask when comparing
+     it with flagWords."
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(WORDARRAY) );
+%}
+    "
+     Behavior flagWords    
+    "
+!
+
+maskIndexType
+    "return a mask to extract all index-type bits"
+
+%{  /* NOCONTEXT */
+    /* this is defined as a primitive to get defines from stc.h */
+
+    RETURN ( _MKSMALLINT(ARRAYMASK) );
+%}
+! !
+
+!VMBehavior class methodsFor:'private'!
+
+basicNew
+    "I dont know how to do this ..."
+
+    ^ self subclassResponsibility
+!
+
+basicNew:size
+    "I dont know how to do this ..."
+
+    ^ self subclassResponsibility
+!
+
+new
+    "I dont know how to do this ..."
+
+    ^ self subclassResponsibility
+!
+
+new:size
+    "I dont know how to do this ..."
+
+    ^ self subclassResponsibility
+! !
+
+!VMBehavior class methodsFor:'queries'!
+
+isBuiltInClass
+    "this class is known by the run-time-system"
+
+    ^ true
+! !
+
+!VMBehavior methodsFor:'accessing'!
+
+flags
+    "return the receivers flag bits"
+
+    ^ flags
+!
+
+methodArray
+    "return the receivers method array.
+     Notice: this is not compatible with ST-80."
+
+    ^ methodArray
+!
+
+selectorArray 
+    "return the receivers selector array.
+     Notice: this is not compatible with ST-80."
+
+    ^ selectorArray
+!
+
+selectors:newSelectors methods:newMethods
+    "set both selector array and method array of the receiver,
+     and flush caches"
+
+    ObjectMemory flushCaches.
+    selectorArray := newSelectors.
+    methodArray := newMethods
+!
+
+superclass
+    "return the receivers superclass"
+
+    ^ superclass
+! !
+
+!VMBehavior methodsFor:'private accessing'!
+
+setFlags:aNumber
+    "set the flags.
+     Do NOT use it."
+
+    flags := aNumber
+!
+
+setMethodArray:anArray
+    "set the method array of the receiver.
+     this method is for special uses only - there will be no recompilation
+     and no change record written here.
+     NOT for general use."
+
+    methodArray := anArray
+!
+
+setSelectorArray:anArray
+    "set the selector array of the receiver.
+     this method is for special uses only - there will be no recompilation
+     and no change record written here.
+     NOT for general use."
+
+    selectorArray := anArray
+!
+
+setSelectors:sels methods:m
+    "set some inst vars. 
+     this method is for special uses only - there will be no recompilation
+     and no change record written here; 
+     Do NOT use it."
+
+    selectorArray := sels.
+    methodArray := m.
+!
+
+setSuperclass:aClass
+    "set the superclass of the receiver.
+     this method is for special uses only - there will be no recompilation
+     and no change record written here. Also, if the receiver class has
+     already been in use, future operation of the system is not guaranteed to
+     be correct, since no caches are flushed.
+     Therefore: do NOT use it; use Behavior>>superclass: (or flush the caches, at least)"
+
+    superclass := aClass
+! !
+
+!VMBehavior methodsFor:'queries'!
+
+cachedLookupMethodFor:aSelector
+    "return the method, which would be executed if aSelector was sent to
+     an instance of the receiver. I.e. the selector arrays of the receiver
+     and all of its superclasses are searched for aSelector.
+     Return the method, or nil if instances do not understand aSelector.
+     This interface provides exactly the same information as #lookupMethodFor:,
+     but uses the lookup-cache in the VM for faster search. 
+     However, keep in mind, that doing a lookup through the cache also adds new
+     entries and can thus slow down the system by polluting the cache with 
+     irrelevant entries. (do NOT loop over all objects calling this method).
+     Does NOT (currently) handle MI"
+
+%{  /* NOCONTEXT */
+    RETURN ( __lookup(self, aSelector, SENDER) );
+%}
+
+    "
+     String cachedLookupMethodFor:#=
+     String cachedLookupMethodFor:#asOrderedCollection
+    "
+!
+
+isBits
+    "return true, if instances have indexed byte or short instance variables.
+     Ignore long, float and double arrays, since ST-80 code using isBits are probably
+     not prepared to handle them correctly."
+
+%{  /* NOCONTEXT */
+
+    REGISTER int flags;
+
+    RETURN ( (((flags = (_intVal(_INST(flags)) & ARRAYMASK)) == BYTEARRAY)
+	     || (flags == WORDARRAY)) ? true : false ); 
+%}
+!
+
+isBytes
+    "return true, if instances have indexed byte instance variables"
+
+    "this could be defined as:
+	^ (flags bitAnd:(VMBehavior maskIndexType)) == VMBehavior flagBytes
+    "
+%{  /* NOCONTEXT */
+
+    RETURN ( ((_intVal(_INST(flags)) & ARRAYMASK) == BYTEARRAY) ? true : false ); 
+%}
+!
+
+isDoubles
+    "return true, if instances have indexed double instance variables"
+
+    "this could be defined as:
+	^ (flags bitAnd:(VMBehavior maskIndexType)) == VMBehavior flagDoubles
+    "
+%{  /* NOCONTEXT */
+
+    RETURN ( ((_intVal(_INST(flags)) & ARRAYMASK) == DOUBLEARRAY) ? true : false ); 
+%}
+!
+
+isFixed
+    "return true, if instances do not have indexed instance variables"
+
+    "this could be defined as:
+	^ self isVariable not
+    "
+
+%{  /* NOCONTEXT */
+
+    RETURN ( (_intVal(_INST(flags)) & ARRAYMASK) ? false : true ); 
+%}
+!
+
+isFloats
+    "return true, if instances have indexed float instance variables"
+
+    "this could be defined as:
+	^ (flags bitAnd:(VMBehavior maskIndexType)) == VMBehavior flagFloats
+    "
+%{  /* NOCONTEXT */
+
+    RETURN ( ((_intVal(_INST(flags)) & ARRAYMASK) == FLOATARRAY) ? true : false ); 
+%}
+!
+
+isLongs
+    "return true, if instances have indexed long instance variables"
+
+    "this could be defined as:
+	^ (flags bitAnd:(VMBehavior maskIndexType)) == VMBehavior flagLongs
+    "
+%{  /* NOCONTEXT */
+
+    RETURN ( ((_intVal(_INST(flags)) & ARRAYMASK) == LONGARRAY) ? true : false ); 
+%}
+!
+
+isPointers
+    "return true, if instances have pointer instance variables 
+     i.e. are either non-indexed or have indexed pointer variables"
+
+    "QUESTION: should we ignore WeakPointers ?"
+
+%{  /* NOCONTEXT */
+
+    REGISTER int flags;
+
+    flags = _intVal(_INST(flags)) & ARRAYMASK;
+    switch (flags) {
+	default:
+	    /* normal objects */
+	    RETURN ( true );
+
+	case BYTEARRAY:
+	case WORDARRAY:
+	case LONGARRAY:
+	case FLOATARRAY:
+	case DOUBLEARRAY:
+	    RETURN (false );
+
+	case WKPOINTERARRAY:
+	    /* what about those ? */
+	    RETURN (true );
+    }
+%}
+!
+
+isVariable
+    "return true, if instances have indexed instance variables"
+
+    "this could be defined as:
+	^ (flags bitAnd:(VMBehavior maskIndexType)) ~~ 0
+     "
+
+%{  /* NOCONTEXT */
+
+    RETURN ( (_intVal(_INST(flags)) & ARRAYMASK) ? true : false ); 
+%}
+!
+
+isWords
+    "return true, if instances have indexed short instance variables"
+
+    "this could be defined as:
+	^ (flags bitAnd:(VMBehavior maskIndexType)) == VMBehavior flagWords
+    "
+%{  /* NOCONTEXT */
+
+    RETURN ( ((_intVal(_INST(flags)) & ARRAYMASK) == WORDARRAY) ? true : false ); 
+%}
+!
+
+lookupMethodFor:aSelector
+    "return the method, which would be executed if aSelector was sent to
+     an instance of the receiver. I.e. the selector arrays of the receiver
+     and all of its superclasses are searched for aSelector.
+     Return the method, or nil if instances do not understand aSelector.
+     EXPERIMENTAL: take care of multiple superclasses."
+
+    |m cls|
+
+    cls := self.
+    [cls notNil] whileTrue:[
+	m := cls compiledMethodAt:aSelector.
+	m notNil ifTrue:[^ m].
+	cls := cls superclass
+    ].
+    ^ nil
+! !
+
+!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 $'
+! !
+VMBehavior initialize!
+
+
+
+
+
--- a/resources/af.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/af.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /cvs/stx/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
 ;
@@ -48,3 +48,10 @@
 'oct'         'okt'
 'nov'         'nov'
 'dec'         'des'
+
+
+
+
+
+
+
--- a/resources/el.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/el.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding iso8859-7
 
-; $Header: /cvs/stx/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
 ;
@@ -48,3 +48,10 @@
 'oct'         ''
 'nov'         ''
 'dec'         ''
+
+
+
+
+
+
+
--- a/resources/eo.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/eo.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding utf8
 
-; $Header: /cvs/stx/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
 ;
@@ -48,3 +48,10 @@
 'oct'         'okt'
 ; 'nov'         'nov'
 ; 'dec'         'dec'
+
+
+
+
+
+
+
--- a/resources/fr.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/fr.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /cvs/stx/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
 ;
@@ -50,3 +50,10 @@
 'oct'           'oct'
 'nov'           'nov'
 'dec'           'dc'
+
+
+
+
+
+
+
--- a/resources/hu.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/hu.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding utf-8
 
-; $Header: /cvs/stx/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
 ;
@@ -48,3 +48,10 @@
 'oct'           'okt'
 'nov'           'nov'
 'dec'           'dec'
+
+
+
+
+
+
+
--- a/resources/it.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/it.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /cvs/stx/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
 ;
@@ -54,3 +54,10 @@
 'oct'           'ott'
 'nov'           'nov'
 'dec'           'dic'
+
+
+
+
+
+
+
--- a/resources/ja.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/ja.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding utf-8
 
-; $Header: /cvs/stx/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
 ;
@@ -59,3 +59,10 @@
 'fri'         '金曜'
 'sat'         '土曜'
 'sun'         '日曜'
+
+
+
+
+
+
+
--- a/resources/nl.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/nl.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /cvs/stx/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
 ;
@@ -48,3 +48,10 @@
 'oct'           'okt'
 'nov'           'nov'
 'dec'           'dec'
+
+
+
+
+
+
+
--- a/resources/no.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/no.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /cvs/stx/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
 ;
@@ -48,3 +48,10 @@
 'oct'         'okt'
 'nov'         'nov'
 'dec'         'des'
+
+
+
+
+
+
+
--- a/resources/pt.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/pt.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /cvs/stx/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
 ;
@@ -49,3 +49,10 @@
 'oct'         'out'
 'nov'         'nov'
 'dec'         'dez'
+
+
+
+
+
+
+
--- a/resources/resources.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/resources.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,7 +1,7 @@
 #encoding ascii
 
 ;
-; $Header: /cvs/stx/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
@@ -128,3 +128,10 @@
 #else
 'TIME_FORMAT'                       ? 24
 #endif
+
+
+
+
+
+
+
--- a/resources/ro.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/ro.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding iso8859-2
 
-; $Header: /cvs/stx/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
 ;
@@ -48,3 +48,10 @@
 'oct'         'oct'
 'nov'         'noi'
 'dec'         'dec'
+
+
+
+
+
+
+
--- a/resources/ru.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/ru.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding iso8859-5
 
-; $Header: /cvs/stx/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
 ;
@@ -48,3 +48,10 @@
 'oct'         ''       "/ ???
 'nov'         ''       "/ ???
 'dec'         ''       "/ ???
+
+
+
+
+
+
+
--- a/resources/sv.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/sv.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /cvs/stx/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
 ;
@@ -52,3 +52,10 @@
 'oct'           'okt'
 'nov'           'nov'
 'dec'           'dec'
+
+
+
+
+
+
+
--- a/resources/tr.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/tr.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding iso8859-1
 
-; $Header: /cvs/stx/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
 ;
@@ -48,3 +48,10 @@
 'oct'         'eki'
 'nov'         'kas'
 'dec'         'ara'
+
+
+
+
+
+
+
--- a/resources/zh.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/zh.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding utf8
 
-; $Header: /cvs/stx/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.
@@ -48,3 +48,10 @@
 'oct'         '十月'
 'nov'         '十一月'
 'dec'         '十二月'
+
+
+
+
+
+
+
--- a/resources/zh_trad.rs	Mon Feb 15 23:10:17 2016 +0100
+++ b/resources/zh_trad.rs	Tue Feb 16 07:24:34 2016 +0000
@@ -1,6 +1,6 @@
 #encoding utf8
 
-; $Header: /cvs/stx/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;
@@ -9,3 +9,10 @@
 #include 'zh.rs'
 
 ; please redefine any differences to traditional chinese below
+
+
+
+
+
+
+
--- a/vms.mak	Mon Feb 15 23:10:17 2016 +0100
+++ b/vms.mak	Tue Feb 16 07:24:34 2016 +0000
@@ -2,7 +2,7 @@
 # DO NOT EDIT 
 # automatically generated from Make.proto
 #
-# $Header: /cvs/stx/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
@@ -296,3 +296,10 @@
 $(OUTDIR)WriteStream.$(O) WriteStream.$(H): WriteStream.st $(STCHDR)  ../include/PositionableStream.$(H)  ../include/PeekableStream.$(H)  ../include/Stream.$(H)  ../include/Object.$(H) 
 $(OUTDIR)WrongProceedabilityError.$(O) WrongProceedabilityError.$(H): WrongProceedabilityError.st $(STCHDR)  ../include/SignalError.$(H)  ../include/ProceedableError.$(H)  ../include/Error.$(H)  ../include/Exception.$(H)  ../include/GenericException.$(H)  ../include/Object.$(H) 
 # ENDMAKEDEPEND
+
+
+
+
+
+
+