Added classes for command line parsing jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Wed, 17 Jun 2009 12:47:57 +0100
branchjv
changeset 17714 0d64723fe7f5
parent 17713 5eb630ab84e4
child 17715 8a84885551df
Added classes for command line parsing
CmdLineOption.st
CmdLineOptionError.st
CmdLineParser.st
CmdLineParserTest.st
Make.proto
Make.spec
abbrev.stc
libInit.cc
stx_libbasic.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CmdLineOption.st	Wed Jun 17 12:47:57 2009 +0100
@@ -0,0 +1,106 @@
+"{ Package: 'stx:libbasic' }"
+
+Object subclass:#CmdLineOption
+	instanceVariableNames:'action description short long'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'System-Support-Command line'
+!
+
+
+!CmdLineOption methodsFor:'accessing'!
+
+action
+    ^ action
+
+    "Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+action:aBlockOrMessageSend
+
+    aBlockOrMessageSend numArgs > 1 ifTrue:
+        [CmdLineOptionError raiseErrorString: 'Action must be zero-or-one arg block/message send'].    
+    action := aBlockOrMessageSend.
+
+    "Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 16-06-2009 / 15:46:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+description
+    ^ description
+
+    "Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+description:aString
+    description := aString.
+
+    "Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+long
+    ^ long
+!
+
+long:aString
+    long := aString.
+!
+
+short
+    ^ short
+!
+
+short:aCharacterOrString
+
+    (aCharacterOrString isCharacter 
+        and:[aCharacterOrString isAlphaNumeric])
+            ifTrue:[short := aCharacterOrString]
+            ifFalse:[self error: 'short option name should be alphanumeric character']
+
+    "Modified: / 29-05-2009 / 16:05:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineOption methodsFor:'printing & storing'!
+
+printOn: stream
+
+    super printOn: stream.
+    stream nextPut:$(.
+    short ifNotNil:[stream nextPut: $-; nextPut: short].
+    (short notNil and: [long notNil]) ifTrue:[stream nextPut:$|].
+    long ifNotNil:[stream nextPut: $-;  nextPut: $-; nextPutAll: long].
+    stream nextPut:$)
+
+    "Created: / 08-06-2009 / 14:48:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineOption methodsFor:'processing'!
+
+process
+
+    action value
+
+    "Created: / 08-06-2009 / 14:35:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+process: value
+
+    action value: value
+
+    "Created: / 08-06-2009 / 14:35:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineOption methodsFor:'queries'!
+
+hasParam
+
+    ^action numArgs = 1
+
+    "Created: / 08-06-2009 / 13:45:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineOption class methodsFor:'documentation'!
+
+version
+    ^'$Id: CmdLineOption.st 10452 2009-06-17 11:47:57Z vranyj1 $'
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CmdLineOptionError.st	Wed Jun 17 12:47:57 2009 +0100
@@ -0,0 +1,15 @@
+"{ Package: 'stx:libbasic' }"
+
+Error subclass:#CmdLineOptionError
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'System-Support-Command line'
+!
+
+
+!CmdLineOptionError class methodsFor:'documentation'!
+
+version
+    ^'$Id: CmdLineOptionError.st 10452 2009-06-17 11:47:57Z vranyj1 $'
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CmdLineParser.st	Wed Jun 17 12:47:57 2009 +0100
@@ -0,0 +1,254 @@
+"{ Package: 'stx:libbasic' }"
+
+Object subclass:#CmdLineParser
+	instanceVariableNames:'options argv'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'System-Support-Command line'
+!
+
+
+!CmdLineParser class methodsFor:'parsing'!
+
+parse: argv for: object
+
+    ^self new parse: argv for: object
+
+    "Created: / 28-01-2009 / 12:06:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineParser methodsFor:'accessing'!
+
+args
+    ^ argv
+!
+
+args:aCollection
+
+    argv := aCollection
+
+    "Modified: / 08-06-2009 / 13:24:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+cmdlineOptionHelp
+
+    ^CmdLineOption new
+        short: $a;
+        long: 'help';
+        description: 'Prints short summary of available options';
+        action:[self printHelp]
+
+    "Created: / 08-06-2009 / 14:54:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+options
+    ^ options
+!
+
+options:something
+    options := something.
+! !
+
+!CmdLineParser methodsFor:'error reporting'!
+
+error: message option: option
+
+    <resource: #skipInDebuggerWalkback>
+
+    ^CmdLineOptionError new
+        errorString: message;
+        parameter: option;
+        raise
+
+    "Created: / 08-06-2009 / 14:22:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+errorOptionHasNoArgument:option 
+    self error:'option has no argument' option:option
+
+    "Created: / 08-06-2009 / 14:27:49 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+errorOptionRequiresArgument:option 
+    self error:'option requires an argument' option:option
+! !
+
+!CmdLineParser methodsFor:'initialization'!
+
+collectOptionsFrom: anObject
+
+    options := anObject class allSelectors  
+                select:[:sel|sel startsWith: 'cmdlineOption']
+                thenCollect:[:sel|anObject perform: sel].
+
+    "Created: / 08-06-2009 / 13:06:23 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineParser methodsFor:'parsing'!
+
+parse 
+    "
+     Parses argv array. Returns array of unparsed (i.e. non-option)
+     arguments
+    "
+
+    | i |
+    i := 1.
+    [i <= argv size] whileTrue:
+        [|arg option |
+        arg := argv at:i.
+        "arg is not an option"
+        arg first ~= $-
+            ifTrue:
+                [^argv copyFrom: i].
+        i := self parseArg: i].
+    ^#()
+
+    "Created: / 08-06-2009 / 13:26:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 08-06-2009 / 14:38:33 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+parse:aCollection 
+    "
+     Parses argv array. Returns array of unparsed (i.e. non-option)
+     arguments
+    "
+
+    ^self
+        args: aCollection;
+        parse.
+
+    "Created: / 28-01-2009 / 12:08:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 08-06-2009 / 13:26:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+parse: argv for: object
+
+     "
+      Parses argv array. Returns array of unparsed (i.e. non-option)
+      arguments. Options are obtained from given object
+     "
+
+    ^self 
+        collectOptionsFrom: object;
+        parse: argv
+
+    "Created: / 28-01-2009 / 11:50:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 08-06-2009 / 13:07:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+parse:argv options: opts
+
+    "
+      Parses argv array. Returns array of unparsed (i.e. non-option)
+      arguments. Options are obtained from given object
+    "
+
+    options := opts.
+    ^self parse: argv
+
+    "Created: / 29-05-2009 / 15:51:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 08-06-2009 / 13:08:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineParser methodsFor:'printing & storing'!
+
+printHelp
+
+    ^self printHelpOn: Stdout
+
+    "Created: / 08-06-2009 / 14:55:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+printHelpOn: stream
+
+    stream nextPutAll:'help...'; cr.
+
+    "Created: / 08-06-2009 / 14:56:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineParser methodsFor:'private'!
+
+optionByLong:longName 
+    ^ options 
+        detect:[:option | option long = longName ]
+        ifNone:[ 
+            longName = 'help' 
+                ifTrue:[self cmdlineOptionHelp]
+                ifFalse:[CmdLineOptionError raiseErrorString:'Unknown option: ' , longName ]]
+
+    "Created: / 30-01-2009 / 09:15:24 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 08-06-2009 / 14:57:42 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+optionByShort:shortName 
+    ^ options 
+        detect:[:option | option short = shortName ]
+        ifNone:
+            [ shortName = $h 
+                ifTrue:[self cmdlineOptionHelp]
+                ifFalse:[CmdLineOptionError raiseErrorString:'Unknown option: ' , shortName ]]
+
+    "Created: / 30-01-2009 / 09:16:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 08-06-2009 / 14:58:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+parseArg:index 
+    "
+        Parses arg at index. Returns an index of
+        next arg to be parsed."
+    
+    |arg option param|
+
+    arg := argv at:index.
+    arg second ~= $- 
+    ifTrue:
+        ["/ short option or bunch of those
+        2 to:arg size do:[:subIndex | 
+            option := self optionByShort:(arg at:subIndex).
+            option ifNotNil:
+                [option hasParam 
+                    ifFalse:[option process]
+                    ifTrue:
+                        ["Do additional check, if this short option
+                        is last."
+                        ((subIndex ~= arg size) or:[ (argv size) < (index + 1) ]) ifTrue:[
+                            self errorOptionRequiresArgument:option
+                        ].
+                        param := (argv at:index + 1).
+                        option process:param.
+                        ^ index + 2
+                        ]]].
+           ^ index + 1]
+    ifFalse:
+        ["/ long option starting with --
+        | equalPos |
+
+        (equalPos := arg indexOf:$=) == 0 ifTrue:[
+            "/no arg specified
+            (option := self optionByLong:(arg copyFrom:3))
+                ifNotNil:[
+                    option hasParam ifTrue:[self errorOptionRequiresArgument:option].
+                    option process].
+            ^index + 1.
+        ] ifFalse: [
+            option := self optionByLong:(arg copyFrom:3 to: equalPos - 1).
+            param := arg copyFrom: equalPos + 1.
+            option ifNotNil:
+                [option hasParam
+                    ifTrue:
+                        [option process: param]
+                    ifFalse:
+                        [self errorOptionHasNoArgument: option]]
+                ].            
+            ^index + 2
+        ]
+
+    "Created: / 08-06-2009 / 14:38:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineParser class methodsFor:'documentation'!
+
+version
+    ^'$Id: CmdLineParser.st 10452 2009-06-17 11:47:57Z vranyj1 $'
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CmdLineParserTest.st	Wed Jun 17 12:47:57 2009 +0100
@@ -0,0 +1,185 @@
+"{ Package: 'stx:libbasic' }"
+
+TestCase subclass:#CmdLineParserTest
+	instanceVariableNames:'optionA optionB optionBValue'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'System-Support-Command line'
+!
+
+
+!CmdLineParserTest methodsFor:'accessing'!
+
+cmdlineOptionA
+
+    ^CmdLineOption new
+        short: $a;
+        long: 'option-a';
+        description: 'option a with no arg';
+        action:[optionA := true]
+
+    "Created: / 28-01-2009 / 11:56:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 08-06-2009 / 14:34:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+cmdlineOptionB
+
+    ^CmdLineOption new
+        short: $b;
+        long: 'option-b';
+        description: 'option b with one arg';
+        action:[:value | optionB := true. optionBValue := value]
+
+    "Created: / 28-01-2009 / 12:01:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 08-06-2009 / 14:33:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineParserTest methodsFor:'initialization'!
+
+setUp
+
+    optionA := optionB := false.
+    optionBValue := nil
+
+    "Created: / 28-01-2009 / 12:01:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineParserTest methodsFor:'tests'!
+
+test_01
+
+    CmdLineParser 
+        parse: #('-a')
+        for: self.
+
+    self assert: optionA.
+    self deny: optionB.
+
+    "Created: / 28-01-2009 / 14:19:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 29-05-2009 / 15:47:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_02
+
+    CmdLineParser
+        parse: #('--option-a')
+        for: self.
+
+    self assert: optionA.
+    self deny: optionB.
+
+    "Created: / 28-01-2009 / 14:19:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 29-05-2009 / 15:47:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_04a
+
+    CmdLineParser
+        parse: #('--option-b= value')
+        for: self.
+
+    self deny: optionA.
+    self assert: optionB.
+    self assert: optionBValue = ' value'
+
+    "Created: / 30-01-2009 / 10:43:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 29-05-2009 / 15:47:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_04b
+
+    self 
+        should:[CmdLineParser  parse: #('--option-b') for: self]
+        raise: CmdLineOptionError
+
+    "Created: / 30-01-2009 / 10:43:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 29-05-2009 / 15:47:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_04c
+
+    CmdLineParser parse: #('--option-b=') for: self.
+
+    self deny: optionA.
+    self assert: optionB.
+    self assert: optionBValue = ''
+
+    "Created: / 30-01-2009 / 10:44:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 29-05-2009 / 15:47:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_05
+
+    CmdLineParser
+        parse: #('-b' 'value')
+        for: self.
+
+    self deny: optionA.
+    self assert: optionB.
+    self assert: optionBValue = 'value'.
+
+    "Created: / 03-02-2009 / 17:38:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 29-05-2009 / 15:47:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_06
+
+    CmdLineParser
+        parse: #('-a' '-b' 'value')
+        for: self.
+
+    self assert: optionA.
+    self assert: optionB.
+    self assert: optionBValue = 'value'.
+
+    "Created: / 03-02-2009 / 17:39:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 29-05-2009 / 15:47:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_07
+
+    CmdLineParser
+        parse: #('-ab' 'value')
+        for: self.
+
+    self assert: optionA.
+    self assert: optionB.
+    self assert: optionBValue = 'value'.
+
+    "Created: / 03-02-2009 / 17:40:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 29-05-2009 / 15:48:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_08
+
+    | rest |
+    rest := CmdLineParser
+                parse: #('-a' '/tmp/abc.txt')
+                for: self.
+
+    self assert: optionA.
+    self assert: optionB not.
+    self assert: rest asArray = #('/tmp/abc.txt')
+
+    "Created: / 08-06-2009 / 14:51:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_09
+
+    | rest |
+    rest := CmdLineParser
+                parse: #('/tmp/abc.txt')
+                for: self.
+
+    self assert: optionA not.
+    self assert: optionB not.
+    self assert: rest asArray = #('/tmp/abc.txt')
+
+    "Created: / 08-06-2009 / 14:52:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CmdLineParserTest class methodsFor:'documentation'!
+
+version
+    ^'$Id: CmdLineParserTest.st 10452 2009-06-17 11:47:57Z vranyj1 $'
+! !
--- a/Make.proto	Tue Jun 16 07:29:40 2009 +0100
+++ b/Make.proto	Wed Jun 17 12:47:57 2009 +0100
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/libbasic/Make.proto,v 1.211 2009/05/07 11:13:14 stefan Exp $
+# $Header$
 #
 # DO NOT EDIT 
 # automagically generated from the projectDefinition: stx_libbasic.
@@ -34,7 +34,7 @@
 # add the path(es) here:, 
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES=-I$(TOP)/librun
+LOCALINCLUDES=-I$(TOP)/librun -I$(INCLUDE_TOP)/stx/goodies/sunit
 
 
 # if you need any additional defines for embedded C code, 
@@ -75,15 +75,12 @@
 
 # add more preMake actions here
 preMake::
-	sed -i -e \
-		's/"\$$SVN\-Revision:".*"\$$"/"\$$SVN-Revision:"$(shell svn info . | grep Revision | sed -e 's/^Revision: //g')"\$$"/g' \
-		$(subst /,_,$(subst :,_,$(PACKAGE))).st
 
 # add more postMake actions here
 postMake:: cleanjunk
 
 prereq: $(REQUIRED_SUPPORT_DIRS)
-	(cd ../librun ; $(MAKE))
+	cd ../librun && $(MAKE)
 
 
 
@@ -106,6 +103,8 @@
 $(OUTDIR)CharacterEncoder.$(O) CharacterEncoder.$(H): CharacterEncoder.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ClassBuilder.$(O) ClassBuilder.$(H): ClassBuilder.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ClassCategoryReader.$(O) ClassCategoryReader.$(H): ClassCategoryReader.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)CmdLineOption.$(O) CmdLineOption.$(H): CmdLineOption.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)CmdLineParser.$(O) CmdLineParser.$(H): CmdLineParser.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Collection.$(O) Collection.$(H): Collection.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Context.$(O) Context.$(H): Context.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Continuation.$(O) Continuation.$(H): Continuation.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -185,6 +184,7 @@
 $(OUTDIR)Association.$(O) Association.$(H): Association.st $(INCLUDE_TOP)/stx/libbasic/LookupKey.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Block.$(O) Block.$(H): Block.st $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CharacterEncoderImplementations__ASCII.$(O) CharacterEncoderImplementations__ASCII.$(H): CharacterEncoderImplementations__ASCII.st $(INCLUDE_TOP)/stx/libbasic/CharacterEncoderImplementations__SingleByteEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)CharacterEncoderImplementations__ISO10646_to_UTF16BE.$(O) CharacterEncoderImplementations__ISO10646_to_UTF16BE.$(H): CharacterEncoderImplementations__ISO10646_to_UTF16BE.st $(INCLUDE_TOP)/stx/libbasic/CharacterEncoderImplementations__TwoByteEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CharacterEncoderImplementations__ISO10646_to_UTF8.$(O) CharacterEncoderImplementations__ISO10646_to_UTF8.$(H): CharacterEncoderImplementations__ISO10646_to_UTF8.st $(INCLUDE_TOP)/stx/libbasic/CharacterEncoderImplementations__TwoByteEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CharacterEncoderImplementations__ISO8859_1.$(O) CharacterEncoderImplementations__ISO8859_1.$(H): CharacterEncoderImplementations__ISO8859_1.st $(INCLUDE_TOP)/stx/libbasic/CharacterEncoderImplementations__SingleByteEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CharacterEncoderImplementations__ISO8859_15.$(O) CharacterEncoderImplementations__ISO8859_15.$(H): CharacterEncoderImplementations__ISO8859_15.st $(INCLUDE_TOP)/stx/libbasic/CharacterEncoderImplementations__SingleByteEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -192,6 +192,7 @@
 $(OUTDIR)CharacterEncoderImplementations__ISO8859_5.$(O) CharacterEncoderImplementations__ISO8859_5.$(H): CharacterEncoderImplementations__ISO8859_5.st $(INCLUDE_TOP)/stx/libbasic/CharacterEncoderImplementations__SingleByteEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CharacterEncoderImplementations__ISO8859_7.$(O) CharacterEncoderImplementations__ISO8859_7.$(H): CharacterEncoderImplementations__ISO8859_7.st $(INCLUDE_TOP)/stx/libbasic/CharacterEncoderImplementations__SingleByteEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CharacterEncoderImplementations__JIS0208_to_SJIS.$(O) CharacterEncoderImplementations__JIS0208_to_SJIS.$(H): CharacterEncoderImplementations__JIS0208_to_SJIS.st $(INCLUDE_TOP)/stx/libbasic/CharacterEncoderImplementations__TwoByteEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)CharacterEncoderImplementations__KOI8_R.$(O) CharacterEncoderImplementations__KOI8_R.$(H): CharacterEncoderImplementations__KOI8_R.st $(INCLUDE_TOP)/stx/libbasic/CharacterEncoderImplementations__SingleByteEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CharacterEncoderImplementations__MS_Ansi.$(O) CharacterEncoderImplementations__MS_Ansi.$(H): CharacterEncoderImplementations__MS_Ansi.st $(INCLUDE_TOP)/stx/libbasic/CharacterEncoderImplementations__SingleByteEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterEncoder.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ClassDescription.$(O) ClassDescription.$(H): ClassDescription.st $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Notification.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(STCHDR)
 $(OUTDIR)ControlRequest.$(O) ControlRequest.$(H): ControlRequest.st $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -230,6 +231,7 @@
 $(OUTDIR)BreakPointInterrupt.$(O) BreakPointInterrupt.$(H): BreakPointInterrupt.st $(INCLUDE_TOP)/stx/libbasic/HaltInterrupt.$(H) $(INCLUDE_TOP)/stx/libbasic/ControlInterrupt.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CheapBlock.$(O) CheapBlock.$(H): CheapBlock.st $(INCLUDE_TOP)/stx/libbasic/Block.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Class.$(O) Class.$(H): Class.st $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Association.$(H) $(INCLUDE_TOP)/stx/libbasic/LookupKey.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(STCHDR)
+$(OUTDIR)CmdLineOptionError.$(O) CmdLineOptionError.$(H): CmdLineOptionError.st $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)DoubleArray.$(O) DoubleArray.$(H): DoubleArray.st $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ElementBoundsError.$(O) ElementBoundsError.$(H): ElementBoundsError.st $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)FloatArray.$(O) FloatArray.$(H): FloatArray.st $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -239,6 +241,7 @@
 $(OUTDIR)Interval.$(O) Interval.$(H): Interval.st $(INCLUDE_TOP)/stx/libbasic/ReadOnlySequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)LimitedPrecisionReal.$(O) LimitedPrecisionReal.$(H): LimitedPrecisionReal.st $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)MeasurementValue.$(O) MeasurementValue.$(H): MeasurementValue.st $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)MetaNumber.$(O) MetaNumber.$(H): MetaNumber.st $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Metaclass.$(O) Metaclass.$(H): Metaclass.st $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)OsError.$(O) OsError.$(H): OsError.st $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ProceedError.$(O) ProceedError.$(H): ProceedError.st $(INCLUDE_TOP)/stx/libbasic/Warning.$(H) $(INCLUDE_TOP)/stx/libbasic/UserNotification.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -265,6 +268,7 @@
 $(OUTDIR)AllocationFailure.$(O) AllocationFailure.$(H): AllocationFailure.st $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ArithmeticError.$(O) ArithmeticError.$(H): ArithmeticError.st $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)AssertionFailedError.$(O) AssertionFailedError.$(H): AssertionFailedError.st $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)AutoloadMetaclass.$(O) AutoloadMetaclass.$(H): AutoloadMetaclass.st $(INCLUDE_TOP)/stx/libbasic/Metaclass.$(H) $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ByteArray.$(O) ByteArray.$(H): ByteArray.st $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CharacterWriteStream.$(O) CharacterWriteStream.$(H): CharacterWriteStream.st $(INCLUDE_TOP)/stx/libbasic/WriteStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PositionableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PeekableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/Stream.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ContextError.$(O) ContextError.$(H): ContextError.st $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -276,6 +280,7 @@
 $(OUTDIR)FixedPoint.$(O) FixedPoint.$(H): FixedPoint.st $(INCLUDE_TOP)/stx/libbasic/Fraction.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Float.$(O) Float.$(H): Float.st $(INCLUDE_TOP)/stx/libbasic/LimitedPrecisionReal.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GetOpt.$(O) GetOpt.$(H): GetOpt.st $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)Infinity.$(O) Infinity.$(H): Infinity.st $(INCLUDE_TOP)/stx/libbasic/MetaNumber.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)LargeInteger.$(O) LargeInteger.$(H): LargeInteger.st $(INCLUDE_TOP)/stx/libbasic/Integer.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)LongFloat.$(O) LongFloat.$(H): LongFloat.st $(INCLUDE_TOP)/stx/libbasic/LimitedPrecisionReal.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)MessageNotUnderstood.$(O) MessageNotUnderstood.$(H): MessageNotUnderstood.st $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -318,6 +323,7 @@
 $(OUTDIR)KeyNotFoundError.$(O) KeyNotFoundError.$(H): KeyNotFoundError.st $(INCLUDE_TOP)/stx/libbasic/NotFoundError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)MallocFailure.$(O) MallocFailure.$(H): MallocFailure.st $(INCLUDE_TOP)/stx/libbasic/AllocationFailure.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)NonBooleanReceiverError.$(O) NonBooleanReceiverError.$(H): NonBooleanReceiverError.st $(INCLUDE_TOP)/stx/libbasic/ExecutionError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)NumberConversionError.$(O) NumberConversionError.$(H): NumberConversionError.st $(INCLUDE_TOP)/stx/libbasic/ConversionError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)OpenError.$(O) OpenError.$(H): OpenError.st $(INCLUDE_TOP)/stx/libbasic/StreamError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)PositionError.$(O) PositionError.$(H): PositionError.st $(INCLUDE_TOP)/stx/libbasic/StreamError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)PositionOutOfBoundsError.$(O) PositionOutOfBoundsError.$(H): PositionOutOfBoundsError.st $(INCLUDE_TOP)/stx/libbasic/StreamError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -342,6 +348,7 @@
 $(OUTDIR)NoByteCodeError.$(O) NoByteCodeError.$(H): NoByteCodeError.st $(INCLUDE_TOP)/stx/libbasic/InvalidCodeError.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutionError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)NonIntegerIndexError.$(O) NonIntegerIndexError.$(H): NonIntegerIndexError.st $(INCLUDE_TOP)/stx/libbasic/IndexNotFoundError.$(H) $(INCLUDE_TOP)/stx/libbasic/NotFoundError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)NonPositionableExternalStream.$(O) NonPositionableExternalStream.$(H): NonPositionableExternalStream.st $(INCLUDE_TOP)/stx/libbasic/ExternalStream.$(H) $(INCLUDE_TOP)/stx/libbasic/ReadWriteStream.$(H) $(INCLUDE_TOP)/stx/libbasic/WriteStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PositionableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PeekableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/Stream.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)NumberFormatError.$(O) NumberFormatError.$(H): NumberFormatError.st $(INCLUDE_TOP)/stx/libbasic/NumberConversionError.$(H) $(INCLUDE_TOP)/stx/libbasic/ConversionError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)OverflowError.$(O) OverflowError.$(H): OverflowError.st $(INCLUDE_TOP)/stx/libbasic/RangeError.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)String.$(O) String.$(H): String.st $(INCLUDE_TOP)/stx/libbasic/CharacterArray.$(H) $(INCLUDE_TOP)/stx/libbasic/ByteArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SubscriptOutOfBoundsError.$(O) SubscriptOutOfBoundsError.$(H): SubscriptOutOfBoundsError.st $(INCLUDE_TOP)/stx/libbasic/IndexNotFoundError.$(H) $(INCLUDE_TOP)/stx/libbasic/NotFoundError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -353,12 +360,12 @@
 $(OUTDIR)DirectoryStream.$(O) DirectoryStream.$(H): DirectoryStream.st $(INCLUDE_TOP)/stx/libbasic/FileStream.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalStream.$(H) $(INCLUDE_TOP)/stx/libbasic/ReadWriteStream.$(H) $(INCLUDE_TOP)/stx/libbasic/WriteStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PositionableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PeekableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/Stream.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)InvalidEncodingError.$(O) InvalidEncodingError.$(H): InvalidEncodingError.st $(INCLUDE_TOP)/stx/libbasic/DecodingError.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterEncoderError.$(H) $(INCLUDE_TOP)/stx/libbasic/ConversionError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)PipeStream.$(O) PipeStream.$(H): PipeStream.st $(INCLUDE_TOP)/stx/libbasic/NonPositionableExternalStream.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalStream.$(H) $(INCLUDE_TOP)/stx/libbasic/ReadWriteStream.$(H) $(INCLUDE_TOP)/stx/libbasic/WriteStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PositionableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PeekableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/Stream.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)RomanNumberFormatError.$(O) RomanNumberFormatError.$(H): RomanNumberFormatError.st $(INCLUDE_TOP)/stx/libbasic/NumberFormatError.$(H) $(INCLUDE_TOP)/stx/libbasic/NumberConversionError.$(H) $(INCLUDE_TOP)/stx/libbasic/ConversionError.$(H) $(INCLUDE_TOP)/stx/libbasic/ProceedableError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Symbol.$(O) Symbol.$(H): Symbol.st $(INCLUDE_TOP)/stx/libbasic/String.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterArray.$(H) $(INCLUDE_TOP)/stx/libbasic/ByteArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Unicode16String.$(O) Unicode16String.$(H): Unicode16String.st $(INCLUDE_TOP)/stx/libbasic/TwoByteString.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterArray.$(H) $(INCLUDE_TOP)/stx/libbasic/ByteArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)AutoloadMetaclass.$(O) AutoloadMetaclass.$(H): AutoloadMetaclass.st $(STCHDR)
-$(OUTDIR)UnixFileDescriptorHandle.$(O) UnixFileDescriptorHandle.$(H): UnixFileDescriptorHandle.st $(STCHDR)
-$(OUTDIR)UnixFileHandle.$(O) UnixFileHandle.$(H): UnixFileHandle.st $(STCHDR)
-$(OUTDIR)UnixOperatingSystem.$(O) UnixOperatingSystem.$(H): UnixOperatingSystem.st $(STCHDR)
+$(OUTDIR)UnixFileDescriptorHandle.$(O) UnixFileDescriptorHandle.$(H): UnixFileDescriptorHandle.st $(INCLUDE_TOP)/stx/libbasic/OSFileHandle.$(H) $(INCLUDE_TOP)/stx/libbasic/OSHandle.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)UnixFileHandle.$(O) UnixFileHandle.$(H): UnixFileHandle.st $(INCLUDE_TOP)/stx/libbasic/OSFileHandle.$(H) $(INCLUDE_TOP)/stx/libbasic/OSHandle.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)UnixOperatingSystem.$(O) UnixOperatingSystem.$(H): UnixOperatingSystem.st $(INCLUDE_TOP)/stx/libbasic/AbstractOperatingSystem.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/OSFileHandle.$(H) $(INCLUDE_TOP)/stx/libbasic/OSHandle.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/Make.spec	Tue Jun 16 07:29:40 2009 +0100
+++ b/Make.spec	Wed Jun 17 12:47:57 2009 +0100
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/libbasic/Make.spec,v 1.88 2009/05/07 11:13:31 stefan Exp $
+# $Header$
 #
 # DO NOT EDIT 
 # automagically generated from the projectDefinition: stx_libbasic.
@@ -50,21 +50,10 @@
 STCWARNINGS=-warnNonStandard
 
 WIN32_OBJS= \
-    $(OUTDIR)CharacterEncoderImplementations__MS_Baltic.$(O) \
-    $(OUTDIR)CharacterEncoderImplementations__MS_Cyrillic.$(O) \
-    $(OUTDIR)CharacterEncoderImplementations__MS_Greek.$(O) \
-    $(OUTDIR)PCFilename.$(O) \
-    $(OUTDIR)Win32FILEHandle.$(O) \
     $(OUTDIR)Win32Handle.$(O) \
     $(OUTDIR)Win32OperatingSystem.$(O) \
 
 
-VMS_OBJS= \
-    $(OUTDIR)OpenVMSFileHandle.$(O) \
-    $(OUTDIR)OpenVMSFilename.$(O) \
-    $(OUTDIR)OpenVMSOperatingSystem.$(O) \
-
-
 UNIX_OBJS= \
     $(OUTDIR)UnixFileDescriptorHandle.$(O) \
     $(OUTDIR)UnixFileHandle.$(O) \
@@ -79,9 +68,10 @@
     $(OUTDIR)Behavior.$(O) \
     $(OUTDIR)Boolean.$(O) \
     $(OUTDIR)CharacterEncoder.$(O) \
-    $(OUTDIR)CharacterEncoderImplementations__SingleByteEncoder.$(O) \
     $(OUTDIR)ClassBuilder.$(O) \
     $(OUTDIR)ClassCategoryReader.$(O) \
+    $(OUTDIR)CmdLineOption.$(O) \
+    $(OUTDIR)CmdLineParser.$(O) \
     $(OUTDIR)Collection.$(O) \
     $(OUTDIR)Context.$(O) \
     $(OUTDIR)Continuation.$(O) \
@@ -91,6 +81,7 @@
     $(OUTDIR)Filename.$(O) \
     $(OUTDIR)GenericException.$(O) \
     $(OUTDIR)Geometric.$(O) \
+    $(OUTDIR)InlineObject.$(O) \
     $(OUTDIR)InterestConverter.$(O) \
     $(OUTDIR)Link.$(O) \
     $(OUTDIR)Magnitude.$(O) \
@@ -127,7 +118,7 @@
     $(OUTDIR)CachingRegistry.$(O) \
     $(OUTDIR)Character.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__ISO10646_1.$(O) \
-    $(OUTDIR)CharacterEncoderImplementations__MS_Ansi.$(O) \
+    $(OUTDIR)CharacterEncoderImplementations__SingleByteEncoder.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__TwoByteEncoder.$(O) \
     $(OUTDIR)CompiledCode.$(O) \
     $(OUTDIR)ControlInterrupt.$(O) \
@@ -137,6 +128,7 @@
     $(OUTDIR)False.$(O) \
     $(OUTDIR)HandleRegistry.$(O) \
     $(OUTDIR)HashStream.$(O) \
+    $(OUTDIR)InlineObjectPrototype.$(O) \
     $(OUTDIR)KeyedCollection.$(O) \
     $(OUTDIR)LibraryDefinition.$(O) \
     $(OUTDIR)LookupKey.$(O) \
@@ -159,13 +151,16 @@
     $(OUTDIR)Association.$(O) \
     $(OUTDIR)Block.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__ASCII.$(O) \
+    $(OUTDIR)CharacterEncoderImplementations__ISO10646_to_UTF16BE.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__ISO10646_to_UTF8.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__ISO8859_1.$(O) \
+    $(OUTDIR)CharacterEncoderImplementations__ISO8859_15.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__ISO8859_2.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__ISO8859_5.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__ISO8859_7.$(O) \
-    $(OUTDIR)CharacterEncoderImplementations__ISO8859_15.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__JIS0208_to_SJIS.$(O) \
+    $(OUTDIR)CharacterEncoderImplementations__KOI8_R.$(O) \
+    $(OUTDIR)CharacterEncoderImplementations__MS_Ansi.$(O) \
     $(OUTDIR)ClassDescription.$(O) \
     $(OUTDIR)ControlRequest.$(O) \
     $(OUTDIR)Dictionary.$(O) \
@@ -203,6 +198,7 @@
     $(OUTDIR)BreakPointInterrupt.$(O) \
     $(OUTDIR)CheapBlock.$(O) \
     $(OUTDIR)Class.$(O) \
+    $(OUTDIR)CmdLineOptionError.$(O) \
     $(OUTDIR)DoubleArray.$(O) \
     $(OUTDIR)ElementBoundsError.$(O) \
     $(OUTDIR)FloatArray.$(O) \
@@ -212,6 +208,7 @@
     $(OUTDIR)Interval.$(O) \
     $(OUTDIR)LimitedPrecisionReal.$(O) \
     $(OUTDIR)MeasurementValue.$(O) \
+    $(OUTDIR)MetaNumber.$(O) \
     $(OUTDIR)Metaclass.$(O) \
     $(OUTDIR)OsError.$(O) \
     $(OUTDIR)ProceedError.$(O) \
@@ -250,6 +247,7 @@
     $(OUTDIR)FixedPoint.$(O) \
     $(OUTDIR)Float.$(O) \
     $(OUTDIR)GetOpt.$(O) \
+    $(OUTDIR)Infinity.$(O) \
     $(OUTDIR)LargeInteger.$(O) \
     $(OUTDIR)LongFloat.$(O) \
     $(OUTDIR)MessageNotUnderstood.$(O) \
@@ -292,6 +290,7 @@
     $(OUTDIR)KeyNotFoundError.$(O) \
     $(OUTDIR)MallocFailure.$(O) \
     $(OUTDIR)NonBooleanReceiverError.$(O) \
+    $(OUTDIR)NumberConversionError.$(O) \
     $(OUTDIR)OpenError.$(O) \
     $(OUTDIR)PositionError.$(O) \
     $(OUTDIR)PositionOutOfBoundsError.$(O) \
@@ -316,6 +315,7 @@
     $(OUTDIR)NoByteCodeError.$(O) \
     $(OUTDIR)NonIntegerIndexError.$(O) \
     $(OUTDIR)NonPositionableExternalStream.$(O) \
+    $(OUTDIR)NumberFormatError.$(O) \
     $(OUTDIR)OverflowError.$(O) \
     $(OUTDIR)String.$(O) \
     $(OUTDIR)SubscriptOutOfBoundsError.$(O) \
@@ -327,9 +327,8 @@
     $(OUTDIR)DirectoryStream.$(O) \
     $(OUTDIR)InvalidEncodingError.$(O) \
     $(OUTDIR)PipeStream.$(O) \
+    $(OUTDIR)RomanNumberFormatError.$(O) \
     $(OUTDIR)Symbol.$(O) \
     $(OUTDIR)Unicode16String.$(O) \
-    $(OUTDIR)InlineObject.$(O) \
-    $(OUTDIR)InlineObjectPrototype.$(O) \
 
 
--- a/abbrev.stc	Tue Jun 16 07:29:40 2009 +0100
+++ b/abbrev.stc	Wed Jun 17 12:47:57 2009 +0100
@@ -1,4 +1,5 @@
 Autoload Autoload stx:libbasic 'Kernel-Classes' 0
+CmdLineParserTest CmdLineParserTest stx:libbasic 'System-Support-Command line' 2
 Object Object stx:libbasic 'Kernel-Objects' 0
 ProtoObject ProtoObject stx:libbasic 'Kernel-Objects' 0
 AbstractOperatingSystem AbstractOperatingSystem stx:libbasic 'System-Support' 0
@@ -13,7 +14,6 @@
 CharacterEncoderImplementations::HANGUL CharacterEncoderImplementations__HANGUL stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::ISO10646_to_JavaText Encoder_ISO10646_to_JavaText stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::ISO10646_to_SGML CharacterEncoderImplementations__ISO10646_to_SGML stx:libbasic 'Collections-Text-Encodings' 0
-CharacterEncoderImplementations::ISO10646_to_UTF16BE CharacterEncoderImplementations__ISO10646_to_UTF16BE stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::ISO10646_to_UTF16LE CharacterEncoderImplementations__ISO10646_to_UTF16LE stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::ISO8859_10 CharacterEncoderImplementations__ISO8859_10 stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::ISO8859_11 CharacterEncoderImplementations__ISO8859_11 stx:libbasic 'Collections-Text-Encodings' 0
@@ -32,7 +32,6 @@
 CharacterEncoderImplementations::JIS0212 CharacterEncoderImplementations__JIS0212 stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::JOHAB CharacterEncoderImplementations__JOHAB stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::KOI7 CharacterEncoderImplementations__KOI7 stx:libbasic 'Collections-Text-Encodings' 0
-CharacterEncoderImplementations::KOI8_R CharacterEncoderImplementations__KOI8_R stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::KOI8_U CharacterEncoderImplementations__KOI8_U stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::KSC5601 CharacterEncoderImplementations__KSC5601 stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::MAC_Arabic CharacterEncoderImplementations__MAC_Arabic stx:libbasic 'Collections-Text-Encodings' 0
@@ -51,7 +50,6 @@
 CharacterEncoderImplementations::MAC_Symbol CharacterEncoderImplementations__MAC_Symbol stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::MAC_Thai CharacterEncoderImplementations__MAC_Thai stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::MAC_Turkish CharacterEncoderImplementations__MAC_Turkish stx:libbasic 'Collections-Text-Encodings' 0
-CharacterEncoderImplementations::MS_Ansi CharacterEncoderImplementations__MS_Ansi stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::MS_Arabic CharacterEncoderImplementations__MS_Arabic stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::MS_Baltic CharacterEncoderImplementations__MS_Baltic stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::MS_Cyrillic CharacterEncoderImplementations__MS_Cyrillic stx:libbasic 'Collections-Text-Encodings' 0
@@ -63,6 +61,8 @@
 CharacterEncoderImplementations::NEXT CharacterEncoderImplementations__NEXT stx:libbasic 'Collections-Text-Encodings' 0
 ClassBuilder ClassBuilder stx:libbasic 'Kernel-Support' 0
 ClassCategoryReader ClassCategoryReader stx:libbasic 'Kernel-Support' 0
+CmdLineOption CmdLineOption stx:libbasic 'System-Support-Command line' 0
+CmdLineParser CmdLineParser stx:libbasic 'System-Support-Command line' 0
 Collection Collection stx:libbasic 'Collections-Abstract' 0
 Context Context stx:libbasic 'Kernel-Methods' 0
 Continuation Continuation stx:libbasic 'Kernel-Processes' 0
@@ -74,7 +74,7 @@
 GenericException GenericException stx:libbasic 'Kernel-Exceptions' 1
 Geometric Geometric stx:libbasic 'Graphics-Geometry-Objects' 0
 ImaginaryResultError ImaginaryResultError stx:libbasic 'Kernel-Exceptions-Errors' 1
-Infinity Infinity stx:libbasic 'Magnitude-Numbers' 0
+InlineObject InlineObject stx:libbasic 'Programming-Support' 0
 InterestConverter InterestConverter stx:libbasic 'Interface-Support-Models' 0
 LargeFloat LargeFloat stx:libbasic 'Magnitude-Numbers' 0
 Link Link stx:libbasic 'Collections-Support' 0
@@ -82,14 +82,11 @@
 Magnitude Magnitude stx:libbasic 'Magnitude-General' 0
 MappedExternalBytes MappedExternalBytes stx:libbasic 'System-Support' 0
 Message Message stx:libbasic 'Kernel-Methods' 0
-MetaNumber MetaNumber stx:libbasic 'Magnitude-Numbers' 0
 MiniDebugger MiniDebugger stx:libbasic 'System-Debugging-Support' 0
 MiniInspector MiniInspector stx:libbasic 'System-Debugging-Support' 0
 NaiveRomanNumberFormatNotification NaiveRomanNumberFormatNotification stx:libbasic 'Magnitude-Numbers' 1
 NameSpace NameSpace stx:libbasic 'Kernel-Classes' 0
 NotANumber NotANumber stx:libbasic 'Magnitude-Numbers' 0
-NumberConversionError NumberConversionError stx:libbasic 'Magnitude-Numbers' 1
-NumberFormatError NumberFormatError stx:libbasic 'Magnitude-Numbers' 1
 OSErrorHolder OSErrorHolder stx:libbasic 'OS-Support' 0
 ObjectMemory ObjectMemory stx:libbasic 'System-Support' 0
 OpenVMSFileHandle OpenVMSFileHandle stx:libbasic 'OS-OpenVMS' 0
@@ -105,7 +102,6 @@
 ReadEvalPrintLoop ReadEvalPrintLoop stx:libbasic 'System-Support' 0
 RecursionLock RecursionLock stx:libbasic 'Kernel-Processes' 0
 Registry Registry stx:libbasic 'System-Support' 0
-RomanNumberFormatError RomanNumberFormatError stx:libbasic 'Magnitude-Numbers' 1
 Semaphore Semaphore stx:libbasic 'Kernel-Processes' 0
 SharedPool SharedPool stx:libbasic 'Kernel-Classes' 0
 Signal Signal stx:libbasic 'Kernel-Exceptions' 0
@@ -123,8 +119,6 @@
 Visitor Visitor stx:libbasic 'System-Visiting' 0
 WeakValueIdentityDictionary WeakValueIdentityDictionary stx:libbasic 'Collections-Weak' 0
 Win32FILEHandle Win32FILEHandle stx:libbasic 'OS-Windows' 0
-Win32Handle Win32Handle stx:libbasic 'OS-Windows' 0
-Win32OperatingSystem Win32OperatingSystem stx:libbasic 'OS-Windows' 0
 Win32Process Win32Process stx:libbasic 'OS-Windows' 0
 AbstractTime AbstractTime stx:libbasic 'Magnitude-Time' 0
 ApplicationDefinition ApplicationDefinition stx:libbasic 'System-Support-Projects' 2
@@ -146,6 +140,7 @@
 False False stx:libbasic 'Kernel-Objects' 0
 HandleRegistry HandleRegistry stx:libbasic 'System-Support' 0
 HashStream HashStream stx:libbasic 'System-Crypt-Streams' 0
+InlineObjectPrototype InlineObjectPrototype stx:libbasic 'Programming-Support' 0
 KeyedCollection KeyedCollection stx:libbasic 'Collections-Abstract' 0
 LibraryDefinition LibraryDefinition stx:libbasic 'System-Support-Projects' 2
 LookupKey LookupKey stx:libbasic 'Collections-Support' 0
@@ -168,13 +163,16 @@
 Association Association stx:libbasic 'Collections-Support' 0
 Block Block stx:libbasic 'Kernel-Methods' 0
 CharacterEncoderImplementations::ASCII CharacterEncoderImplementations__ASCII stx:libbasic 'Collections-Text-Encodings' 0
+CharacterEncoderImplementations::ISO10646_to_UTF16BE CharacterEncoderImplementations__ISO10646_to_UTF16BE stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::ISO10646_to_UTF8 CharacterEncoderImplementations__ISO10646_to_UTF8 stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::ISO8859_1 CharacterEncoderImplementations__ISO8859_1 stx:libbasic 'Collections-Text-Encodings' 0
+CharacterEncoderImplementations::ISO8859_15 CharacterEncoderImplementations__ISO8859_15 stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::ISO8859_2 CharacterEncoderImplementations__ISO8859_2 stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::ISO8859_5 CharacterEncoderImplementations__ISO8859_5 stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::ISO8859_7 CharacterEncoderImplementations__ISO8859_7 stx:libbasic 'Collections-Text-Encodings' 0
-CharacterEncoderImplementations::ISO8859_15 CharacterEncoderImplementations__ISO8859_15 stx:libbasic 'Collections-Text-Encodings' 0
 CharacterEncoderImplementations::JIS0208_to_SJIS CharacterEncoderImplementations__JIS0208_to_SJIS stx:libbasic 'Collections-Text-Encodings' 0
+CharacterEncoderImplementations::KOI8_R CharacterEncoderImplementations__KOI8_R stx:libbasic 'Collections-Text-Encodings' 0
+CharacterEncoderImplementations::MS_Ansi CharacterEncoderImplementations__MS_Ansi stx:libbasic 'Collections-Text-Encodings' 0
 ClassDescription ClassDescription stx:libbasic 'Kernel-Classes' 0
 ControlRequest ControlRequest stx:libbasic 'Kernel-Exceptions-Control' 1
 Dictionary Dictionary stx:libbasic 'Collections-Unordered' 0
@@ -205,6 +203,7 @@
 UserInformation UserInformation stx:libbasic 'Kernel-Exceptions-Notifications' 1
 UserInterrupt UserInterrupt stx:libbasic 'Kernel-Exceptions-Control' 1
 Warning Warning stx:libbasic 'Kernel-Exceptions' 1
+Win32Handle Win32Handle stx:libbasic 'OS-Windows' 0
 YesToAllConfirmation YesToAllConfirmation stx:libbasic 'Kernel-Exceptions-Notifications' 1
 stx_libbasic stx_libbasic stx:libbasic '* Projects & Packages *' 2
 AbortAllOperationRequest AbortAllOperationRequest stx:libbasic 'Kernel-Exceptions-Control' 1
@@ -212,6 +211,7 @@
 BreakPointInterrupt BreakPointInterrupt stx:libbasic 'Kernel-Exceptions-Control' 1
 CheapBlock CheapBlock stx:libbasic 'Kernel-Methods' 0
 Class Class stx:libbasic 'Kernel-Classes' 0
+CmdLineOptionError CmdLineOptionError stx:libbasic 'System-Support-Command line' 1
 DoubleArray DoubleArray stx:libbasic 'Collections-Arrayed' 0
 ElementBoundsError ElementBoundsError stx:libbasic 'Kernel-Exceptions-Errors' 1
 FloatArray FloatArray stx:libbasic 'Collections-Arrayed' 0
@@ -221,6 +221,7 @@
 Interval Interval stx:libbasic 'Collections-Sequenceable' 0
 LimitedPrecisionReal LimitedPrecisionReal stx:libbasic 'Magnitude-Numbers' 0
 MeasurementValue MeasurementValue stx:libbasic 'Magnitude-Numbers' 0
+MetaNumber MetaNumber stx:libbasic 'Magnitude-Numbers' 0
 Metaclass Metaclass stx:libbasic 'Kernel-Classes' 0
 OsError OsError stx:libbasic 'OS-Support' 1
 ProceedError ProceedError stx:libbasic 'Kernel-Exceptions-Errors' 1
@@ -262,6 +263,7 @@
 FixedPoint FixedPoint stx:libbasic 'Magnitude-Numbers' 0
 Float Float stx:libbasic 'Magnitude-Numbers' 0
 GetOpt GetOpt stx:libbasic 'System-Support' 0
+Infinity Infinity stx:libbasic 'Magnitude-Numbers' 0
 LargeInteger LargeInteger stx:libbasic 'Magnitude-Numbers' 0
 LongFloat LongFloat stx:libbasic 'Magnitude-Numbers' 0
 MessageNotUnderstood MessageNotUnderstood stx:libbasic 'Kernel-Exceptions-Errors' 1
@@ -304,6 +306,7 @@
 KeyNotFoundError KeyNotFoundError stx:libbasic 'Kernel-Exceptions-Errors' 1
 MallocFailure MallocFailure stx:libbasic 'System-Support' 1
 NonBooleanReceiverError NonBooleanReceiverError stx:libbasic 'Kernel-Exceptions-ExecutionErrors' 1
+NumberConversionError NumberConversionError stx:libbasic 'Magnitude-Numbers' 1
 OpenError OpenError stx:libbasic 'Kernel-Exceptions-Errors' 1
 PositionError PositionError stx:libbasic 'Kernel-Exceptions-Errors' 1
 PositionOutOfBoundsError PositionOutOfBoundsError stx:libbasic 'Kernel-Exceptions-Errors' 1
@@ -315,6 +318,7 @@
 TimeConversionError TimeConversionError stx:libbasic 'Magnitude-Time' 1
 UnorderedNumbersError UnorderedNumbersError stx:libbasic 'Kernel-Exceptions-Errors' 1
 WeakDependencyDictionary WeakDependencyDictionary stx:libbasic 'Collections-Weak' 0
+Win32OperatingSystem Win32OperatingSystem stx:libbasic 'OS-Windows' 0
 WriteError WriteError stx:libbasic 'Kernel-Exceptions-Errors' 1
 WrongProceedabilityError WrongProceedabilityError stx:libbasic 'Kernel-Exceptions-Errors' 1
 BadLiteralsError BadLiteralsError stx:libbasic 'Kernel-Exceptions-ExecutionErrors' 1
@@ -328,6 +332,7 @@
 NoByteCodeError NoByteCodeError stx:libbasic 'Kernel-Exceptions-ExecutionErrors' 1
 NonIntegerIndexError NonIntegerIndexError stx:libbasic 'Kernel-Exceptions-Errors' 1
 NonPositionableExternalStream NonPositionableExternalStream stx:libbasic 'Streams-External' 0
+NumberFormatError NumberFormatError stx:libbasic 'Magnitude-Numbers' 1
 OverflowError OverflowError stx:libbasic 'Kernel-Exceptions-Errors' 1
 String String stx:libbasic 'Collections-Text' 0
 SubscriptOutOfBoundsError SubscriptOutOfBoundsError stx:libbasic 'Kernel-Exceptions-Errors' 1
@@ -339,7 +344,6 @@
 DirectoryStream DirectoryStream stx:libbasic 'Streams-External' 0
 InvalidEncodingError InvalidEncodingError stx:libbasic 'Collections-Text-Encodings' 1
 PipeStream PipeStream stx:libbasic 'Streams-External' 0
+RomanNumberFormatError RomanNumberFormatError stx:libbasic 'Magnitude-Numbers' 1
 Symbol Symbol stx:libbasic 'Collections-Text' 0
 Unicode16String Unicode16String stx:libbasic 'Collections-Text' 0
-InlineObject InlineObject stx:libbasic 'Programming-Support' 0
-InlineObjectPrototype InlineObjectPrototype stx:libbasic 'Programming-Support' 0
--- a/libInit.cc	Tue Jun 16 07:29:40 2009 +0100
+++ b/libInit.cc	Wed Jun 17 12:47:57 2009 +0100
@@ -1,5 +1,5 @@
 /*
- * $Header: /cvs/stx/stx/libbasic/libInit.cc,v 1.139 2009/05/07 11:13:43 stefan Exp $
+ * $Header$
  *
  * DO NOT EDIT 
  * automagically generated from the projectDefinition: stx_libbasic.
@@ -27,6 +27,8 @@
 _CharacterEncoder_Init(pass,__pRT__,snd);
 _ClassBuilder_Init(pass,__pRT__,snd);
 _ClassCategoryReader_Init(pass,__pRT__,snd);
+_CmdLineOption_Init(pass,__pRT__,snd);
+_CmdLineParser_Init(pass,__pRT__,snd);
 _Collection_Init(pass,__pRT__,snd);
 _Context_Init(pass,__pRT__,snd);
 _Continuation_Init(pass,__pRT__,snd);
@@ -106,6 +108,7 @@
 _Association_Init(pass,__pRT__,snd);
 _Block_Init(pass,__pRT__,snd);
 _CharacterEncoderImplementations__ASCII_Init(pass,__pRT__,snd);
+_CharacterEncoderImplementations__ISO10646_137to_137UTF16BE_Init(pass,__pRT__,snd);
 _CharacterEncoderImplementations__ISO10646_137to_137UTF8_Init(pass,__pRT__,snd);
 _CharacterEncoderImplementations__ISO8859_1371_Init(pass,__pRT__,snd);
 _CharacterEncoderImplementations__ISO8859_13715_Init(pass,__pRT__,snd);
@@ -113,6 +116,7 @@
 _CharacterEncoderImplementations__ISO8859_1375_Init(pass,__pRT__,snd);
 _CharacterEncoderImplementations__ISO8859_1377_Init(pass,__pRT__,snd);
 _CharacterEncoderImplementations__JIS0208_137to_137SJIS_Init(pass,__pRT__,snd);
+_CharacterEncoderImplementations__KOI8_137R_Init(pass,__pRT__,snd);
 _CharacterEncoderImplementations__MS_137Ansi_Init(pass,__pRT__,snd);
 _ClassDescription_Init(pass,__pRT__,snd);
 _ControlRequest_Init(pass,__pRT__,snd);
@@ -151,6 +155,7 @@
 _BreakPointInterrupt_Init(pass,__pRT__,snd);
 _CheapBlock_Init(pass,__pRT__,snd);
 _Class_Init(pass,__pRT__,snd);
+_CmdLineOptionError_Init(pass,__pRT__,snd);
 _DoubleArray_Init(pass,__pRT__,snd);
 _ElementBoundsError_Init(pass,__pRT__,snd);
 _FloatArray_Init(pass,__pRT__,snd);
@@ -160,6 +165,7 @@
 _Interval_Init(pass,__pRT__,snd);
 _LimitedPrecisionReal_Init(pass,__pRT__,snd);
 _MeasurementValue_Init(pass,__pRT__,snd);
+_MetaNumber_Init(pass,__pRT__,snd);
 _Metaclass_Init(pass,__pRT__,snd);
 _OsError_Init(pass,__pRT__,snd);
 _ProceedError_Init(pass,__pRT__,snd);
@@ -186,6 +192,7 @@
 _AllocationFailure_Init(pass,__pRT__,snd);
 _ArithmeticError_Init(pass,__pRT__,snd);
 _AssertionFailedError_Init(pass,__pRT__,snd);
+_AutoloadMetaclass_Init(pass,__pRT__,snd);
 _ByteArray_Init(pass,__pRT__,snd);
 _CharacterWriteStream_Init(pass,__pRT__,snd);
 _ContextError_Init(pass,__pRT__,snd);
@@ -197,6 +204,7 @@
 _FixedPoint_Init(pass,__pRT__,snd);
 _Float_Init(pass,__pRT__,snd);
 _GetOpt_Init(pass,__pRT__,snd);
+_Infinity_Init(pass,__pRT__,snd);
 _LargeInteger_Init(pass,__pRT__,snd);
 _LongFloat_Init(pass,__pRT__,snd);
 _MessageNotUnderstood_Init(pass,__pRT__,snd);
@@ -239,6 +247,7 @@
 _KeyNotFoundError_Init(pass,__pRT__,snd);
 _MallocFailure_Init(pass,__pRT__,snd);
 _NonBooleanReceiverError_Init(pass,__pRT__,snd);
+_NumberConversionError_Init(pass,__pRT__,snd);
 _OpenError_Init(pass,__pRT__,snd);
 _PositionError_Init(pass,__pRT__,snd);
 _PositionOutOfBoundsError_Init(pass,__pRT__,snd);
@@ -263,6 +272,7 @@
 _NoByteCodeError_Init(pass,__pRT__,snd);
 _NonIntegerIndexError_Init(pass,__pRT__,snd);
 _NonPositionableExternalStream_Init(pass,__pRT__,snd);
+_NumberFormatError_Init(pass,__pRT__,snd);
 _OverflowError_Init(pass,__pRT__,snd);
 _String_Init(pass,__pRT__,snd);
 _SubscriptOutOfBoundsError_Init(pass,__pRT__,snd);
@@ -274,28 +284,18 @@
 _DirectoryStream_Init(pass,__pRT__,snd);
 _InvalidEncodingError_Init(pass,__pRT__,snd);
 _PipeStream_Init(pass,__pRT__,snd);
+_RomanNumberFormatError_Init(pass,__pRT__,snd);
 _Symbol_Init(pass,__pRT__,snd);
 _Unicode16String_Init(pass,__pRT__,snd);
-_AutoloadMetaclass_Init(pass,__pRT__,snd);
 #ifdef UNIX
 _UnixFileDescriptorHandle_Init(pass,__pRT__,snd);
 _UnixFileHandle_Init(pass,__pRT__,snd);
 _UnixOperatingSystem_Init(pass,__pRT__,snd);
 #endif /* UNIX */
 #ifdef WIN32
-_CharacterEncoderImplementations__MS_137Baltic_Init(pass,__pRT__,snd);
-_CharacterEncoderImplementations__MS_137Cyrillic_Init(pass,__pRT__,snd);
-_CharacterEncoderImplementations__MS_137Greek_Init(pass,__pRT__,snd);
-_PCFilename_Init(pass,__pRT__,snd);
-_Win32FILEHandle_Init(pass,__pRT__,snd);
 _Win32Handle_Init(pass,__pRT__,snd);
 _Win32OperatingSystem_Init(pass,__pRT__,snd);
 #endif /* WIN32 */
-#ifdef VMS
-_OpenVMSFileHandle_Init(pass,__pRT__,snd);
-_OpenVMSFilename_Init(pass,__pRT__,snd);
-_OpenVMSOperatingSystem_Init(pass,__pRT__,snd);
-#endif /* VMS */
 
 
 __END_PACKAGE__();
--- a/stx_libbasic.st	Tue Jun 16 07:29:40 2009 +0100
+++ b/stx_libbasic.st	Wed Jun 17 12:47:57 2009 +0100
@@ -60,9 +60,13 @@
         #'stx:libwidg2'    "DoWhatIMeanSupport - referenced by Smalltalk class>>selectorCompletion: "
         #'exept:xml'    "XMLRepresenter - referenced by ClassDescription>>fileOutXMLString:on: "
         #'stx:goodies'    "Future - referenced by Block>>futureValue:value:value: "
+        #'stx:goodies/sunit'
         #'stx:goodies/xml/vw'    "XML::XMLParser - referenced by PeekableStream>>fileInXMLNotifying:passChunk: "
+        #'stx:goodies/xml/stx'
         #'stx:libcompat'    "StringCollationPolicy - referenced by SequenceableCollection>>quickSort: "
     )
+
+    "Modified: / 16-06-2009 / 21:10:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
 !
 
 preRequisites
@@ -97,6 +101,7 @@
     ^ #(
         "<className> or (<className> attributes...) in load order"
         Autoload
+        CmdLineParserTest
         Object
         ProtoObject
         AbstractOperatingSystem
@@ -111,7 +116,6 @@
         (#'CharacterEncoderImplementations::HANGUL' autoload)
         (#'CharacterEncoderImplementations::ISO10646_to_JavaText' autoload)
         (#'CharacterEncoderImplementations::ISO10646_to_SGML' autoload)
-        (#'CharacterEncoderImplementations::ISO10646_to_UTF16BE' autoload)
         (#'CharacterEncoderImplementations::ISO10646_to_UTF16LE' autoload)
         (#'CharacterEncoderImplementations::ISO8859_10' autoload)
         (#'CharacterEncoderImplementations::ISO8859_11' autoload)
@@ -130,7 +134,6 @@
         (#'CharacterEncoderImplementations::JIS0212' autoload)
         (#'CharacterEncoderImplementations::JOHAB' autoload)
         (#'CharacterEncoderImplementations::KOI7' autoload)
-        (#'CharacterEncoderImplementations::KOI8_R' autoload)
         (#'CharacterEncoderImplementations::KOI8_U' autoload)
         (#'CharacterEncoderImplementations::KSC5601' autoload)
         (#'CharacterEncoderImplementations::MAC_Arabic' autoload)
@@ -149,18 +152,19 @@
         (#'CharacterEncoderImplementations::MAC_Symbol' autoload)
         (#'CharacterEncoderImplementations::MAC_Thai' autoload)
         (#'CharacterEncoderImplementations::MAC_Turkish' autoload)
-        #'CharacterEncoderImplementations::MS_Ansi'
         (#'CharacterEncoderImplementations::MS_Arabic' autoload)
-        (#'CharacterEncoderImplementations::MS_Baltic' win32)
-        (#'CharacterEncoderImplementations::MS_Cyrillic' win32)
+        (#'CharacterEncoderImplementations::MS_Baltic' win32 autoload)
+        (#'CharacterEncoderImplementations::MS_Cyrillic' win32 autoload)
         (#'CharacterEncoderImplementations::MS_EastEuropean' autoload)
-        (#'CharacterEncoderImplementations::MS_Greek' win32)
+        (#'CharacterEncoderImplementations::MS_Greek' win32 autoload)
         (#'CharacterEncoderImplementations::MS_Hebrew' autoload)
         (#'CharacterEncoderImplementations::MS_Symbol' autoload)
         (#'CharacterEncoderImplementations::MS_Turkish' autoload)
         (#'CharacterEncoderImplementations::NEXT' autoload)
         ClassBuilder
         ClassCategoryReader
+        CmdLineOption
+        CmdLineParser
         Collection
         Context
         Continuation
@@ -172,7 +176,7 @@
         GenericException
         Geometric
         (ImaginaryResultError autoload)
-        (Infinity autoload)
+        InlineObject
         InterestConverter
         (LargeFloat autoload)
         Link
@@ -180,20 +184,17 @@
         Magnitude
         (MappedExternalBytes autoload)
         Message
-        (MetaNumber autoload)
         MiniDebugger
         MiniInspector
         (NaiveRomanNumberFormatNotification autoload)
         NameSpace
         (NotANumber autoload)
-        (NumberConversionError autoload)
-        (NumberFormatError autoload)
         OSErrorHolder
         ObjectMemory
-        (OpenVMSFileHandle vms)
-        (OpenVMSFilename vms)
-        (OpenVMSOperatingSystem vms)
-        (PCFilename win32)
+        (OpenVMSFileHandle vms autoload)
+        (OpenVMSFilename vms autoload)
+        (OpenVMSOperatingSystem vms autoload)
+        (PCFilename win32 autoload)
         PackageId
         PluginSupport
         ProcessorScheduler
@@ -203,7 +204,6 @@
         ReadEvalPrintLoop
         RecursionLock
         Registry
-        (RomanNumberFormatError autoload)
         Semaphore
         SharedPool
         Signal
@@ -220,9 +220,7 @@
         (UserMessage autoload)
         Visitor
         (WeakValueIdentityDictionary autoload)
-        (Win32FILEHandle win32)
-        (Win32Handle win32)
-        (Win32OperatingSystem win32)
+        (Win32FILEHandle win32 autoload)
         (Win32Process autoload)
         AbstractTime
         ApplicationDefinition
@@ -244,6 +242,7 @@
         False
         HandleRegistry
         HashStream
+        InlineObjectPrototype
         KeyedCollection
         LibraryDefinition
         LookupKey
@@ -266,13 +265,16 @@
         Association
         Block
         #'CharacterEncoderImplementations::ASCII'
+        #'CharacterEncoderImplementations::ISO10646_to_UTF16BE'
         #'CharacterEncoderImplementations::ISO10646_to_UTF8'
         #'CharacterEncoderImplementations::ISO8859_1'
+        #'CharacterEncoderImplementations::ISO8859_15'
         #'CharacterEncoderImplementations::ISO8859_2'
         #'CharacterEncoderImplementations::ISO8859_5'
         #'CharacterEncoderImplementations::ISO8859_7'
-        #'CharacterEncoderImplementations::ISO8859_15'
         #'CharacterEncoderImplementations::JIS0208_to_SJIS'
+        #'CharacterEncoderImplementations::KOI8_R'
+        #'CharacterEncoderImplementations::MS_Ansi'
         ClassDescription
         ControlRequest
         Dictionary
@@ -303,6 +305,7 @@
         UserInformation
         UserInterrupt
         Warning
+        (Win32Handle win32)
         YesToAllConfirmation
         #'stx_libbasic'
         AbortAllOperationRequest
@@ -310,6 +313,7 @@
         BreakPointInterrupt
         CheapBlock
         Class
+        CmdLineOptionError
         DoubleArray
         ElementBoundsError
         FloatArray
@@ -319,6 +323,7 @@
         Interval
         LimitedPrecisionReal
         MeasurementValue
+        MetaNumber
         Metaclass
         OsError
         ProceedError
@@ -360,6 +365,7 @@
         FixedPoint
         Float
         GetOpt
+        Infinity
         LargeInteger
         LongFloat
         MessageNotUnderstood
@@ -402,6 +408,7 @@
         KeyNotFoundError
         MallocFailure
         NonBooleanReceiverError
+        NumberConversionError
         OpenError
         PositionError
         PositionOutOfBoundsError
@@ -413,6 +420,7 @@
         TimeConversionError
         UnorderedNumbersError
         WeakDependencyDictionary
+        (Win32OperatingSystem win32)
         WriteError
         WrongProceedabilityError
         BadLiteralsError
@@ -426,6 +434,7 @@
         NoByteCodeError
         NonIntegerIndexError
         NonPositionableExternalStream
+        NumberFormatError
         OverflowError
         String
         SubscriptOutOfBoundsError
@@ -437,10 +446,9 @@
         DirectoryStream
         InvalidEncodingError
         PipeStream
+        RomanNumberFormatError
         Symbol
         Unicode16String
-        InlineObject
-        InlineObjectPrototype
     )
 !
 
@@ -471,14 +479,14 @@
     "Modified: / 08-11-2007 / 16:58:06 / cg"
 ! !
 
-!stx_libbasic class methodsFor:'documentation'!
-
-version
-    ^ '$Id: stx_libbasic.st 10451 2009-06-16 06:29:40Z vranyj1 $'
-! !
-
 !stx_libbasic class methodsFor:'description - svn'!
 
 svnRevisionNr
     ^"$SVN-Revision:"10449"$"
 ! !
+
+!stx_libbasic class methodsFor:'documentation'!
+
+version
+    ^ '$Id: stx_libbasic.st 10452 2009-06-17 11:47:57Z vranyj1 $'
+! !