Block.st
changeset 18252 1c69f8f3574c
parent 17697 c88f1b712134
child 18261 22bdfc405bca
child 18316 0f25aa39967c
--- a/Block.st	Tue Apr 21 21:15:00 2015 +0200
+++ b/Block.st	Tue Apr 21 21:40:04 2015 +0200
@@ -65,11 +65,11 @@
     A return (via ^-statement) out of a block will force a return from the
     blocks method context (if it is still living) - this make the implementation
     of long-jumps and control structures possible.
-    (If the method is not alive (i.e. has already returned), a return out of the 
+    (If the method is not alive (i.e. has already returned), a return out of the
      block will trigger an error)
 
     Long-jump is done by defining a catchBlock as ''[^ self]''
-    somewhere up in the calling-tree. Then, to do the long-jump from out of some 
+    somewhere up in the calling-tree. Then, to do the long-jump from out of some
     deeply nested method, simply do: ''catchBlock value''.
 
     [Instance variables:]
@@ -105,71 +105,71 @@
 examples
 "
     define a block and evaluate it:
-                                                                        [exBegin]
-        |b|
-
-        b := [ Transcript showCR:'hello' ].
-
-        Transcript showCR:'now evaluating the block ...'.
-        b value.
-                                                                        [exEnd]
-
-
-
-    even here, blocks are involved: 
+									[exBegin]
+	|b|
+
+	b := [ Transcript showCR:'hello' ].
+
+	Transcript showCR:'now evaluating the block ...'.
+	b value.
+									[exEnd]
+
+
+
+    even here, blocks are involved:
     (although, the compiler optimizes things if possible)
-                                                                        [exBegin]
-        Transcript showCR:'now evaluating one of two blocks ...'.
-        1 > 4 ifTrue:[
-            Transcript showCR:'foo'
-        ] ifFalse:[
-            Transcript showCR:'bar'
-        ]
-                                                                        [exEnd]
+									[exBegin]
+	Transcript showCR:'now evaluating one of two blocks ...'.
+	1 > 4 ifTrue:[
+	    Transcript showCR:'foo'
+	] ifFalse:[
+	    Transcript showCR:'bar'
+	]
+									[exEnd]
 
 
 
     here things become obvious:
-                                                                        [exBegin]
-        |yesBlock noBlock|
-
-        yesBlock := [ Transcript showCR:'foo' ].
-        noBlock := [ Transcript showCR:'bar' ].
-
-        Transcript showCR:'now evaluating one of two blocks ...'.
-        1 > 4 ifTrue:yesBlock
-              ifFalse:noBlock
-                                                                        [exEnd]
+									[exBegin]
+	|yesBlock noBlock|
+
+	yesBlock := [ Transcript showCR:'foo' ].
+	noBlock := [ Transcript showCR:'bar' ].
+
+	Transcript showCR:'now evaluating one of two blocks ...'.
+	1 > 4 ifTrue:yesBlock
+	      ifFalse:noBlock
+									[exEnd]
 
 
 
     simple loops:
       not very objectOriented:
-                                                                        [exBegin]
-        |i|
-
-        i := 1.
-        [i < 10] whileTrue:[
-            Transcript showCR:i.
-            i := i + 1
-        ]
-                                                                        [exEnd]
+									[exBegin]
+	|i|
+
+	i := 1.
+	[i < 10] whileTrue:[
+	    Transcript showCR:i.
+	    i := i + 1
+	]
+									[exEnd]
 
 
       using integer protocol:
-                                                                        [exBegin]
-        1 to:10 do:[:i |
-            Transcript showCR:i.
-        ]
-                                                                        [exEnd]
+									[exBegin]
+	1 to:10 do:[:i |
+	    Transcript showCR:i.
+	]
+									[exEnd]
 
 
       interval protocol:
-                                                                        [exBegin]
-        (1 to:10) do:[:i |
-            Transcript showCR:i.
-        ]
-                                                                        [exEnd]
+									[exBegin]
+	(1 to:10) do:[:i |
+	    Transcript showCR:i.
+	]
+									[exEnd]
 
 
 
@@ -177,131 +177,131 @@
 
       bad code:
       (only works with numeric-indexable collections)
-                                                                        [exBegin]
-        |i coll|
-
-        coll := #(9 8 7 6 5).
-        i := 1.
-        [i <= coll size] whileTrue:[
-            Transcript showCR:(coll at:i).
-            i := i + 1.
-        ]
-                                                                        [exEnd]
+									[exBegin]
+	|i coll|
+
+	coll := #(9 8 7 6 5).
+	i := 1.
+	[i <= coll size] whileTrue:[
+	    Transcript showCR:(coll at:i).
+	    i := i + 1.
+	]
+									[exEnd]
 
 
 
       just as bad (well, marginally better ;-):
       (only works with numeric-indexable collections)
-                                                                        [exBegin]
-        |coll|   
-
-        coll := #(9 8 7 6 5).
-        1 to:coll size do:[:i |
-            Transcript showCR:(coll at:i).
-        ]
-                                                                        [exEnd]
+									[exBegin]
+	|coll|
+
+	coll := #(9 8 7 6 5).
+	1 to:coll size do:[:i |
+	    Transcript showCR:(coll at:i).
+	]
+									[exEnd]
 
 
 
       the smalltalk way:
       (works with any collection)
-                                                                        [exBegin]
-        |coll|   
-
-        coll := #(9 8 7 6 5).
-        coll do:[:element |
-            Transcript showCR:element.
-        ]
-                                                                        [exEnd]
-        
+									[exBegin]
+	|coll|
+
+	coll := #(9 8 7 6 5).
+	coll do:[:element |
+	    Transcript showCR:element.
+	]
+									[exEnd]
+
     Rule: use enumeration protocol of the collection instead of
-          manually indexing it. [with few exceptions]
+	  manually indexing it. [with few exceptions]
 
 
 
     processes:
 
       forking a lightweight process (thread):
-                                                                        [exBegin]
-        [
-            Transcript showCR:'waiting ...'.
-            Delay waitForSeconds:2.
-            Transcript showCR:'here I am'.
-        ] fork
-                                                                        [exEnd]
-
-
-        
+									[exBegin]
+	[
+	    Transcript showCR:'waiting ...'.
+	    Delay waitForSeconds:2.
+	    Transcript showCR:'here I am'.
+	] fork
+									[exEnd]
+
+
+
       some with low prio:
-                                                                        [exBegin]
-        [
-            Transcript showCR:'computing ...'.
-            10000 factorial.
-            Transcript showCR:'here I am'.
-        ] forkAt:(Processor userBackgroundPriority)
-                                                                        [exEnd]
+									[exBegin]
+	[
+	    Transcript showCR:'computing ...'.
+	    10000 factorial.
+	    Transcript showCR:'here I am'.
+	] forkAt:(Processor userBackgroundPriority)
+									[exEnd]
 
 
 
     handling exceptions:
-                                                                        [exBegin]
-        Error handle:[:ex |
-            Transcript showCR:'exception handler forces return'.
-            ex return
-        ] do:[
-            Transcript showCR:'now, doing something bad ...'.
-            1 / 0.
-            Transcript showCR:'not reached'
-        ]
-                                                                        [exEnd]
+									[exBegin]
+	Error handle:[:ex |
+	    Transcript showCR:'exception handler forces return'.
+	    ex return
+	] do:[
+	    Transcript showCR:'now, doing something bad ...'.
+	    1 / 0.
+	    Transcript showCR:'not reached'
+	]
+									[exEnd]
 
 
 
     performing cleanup actions:
-                                                                        [exBegin]
-        Error handle:[:ex |
-            Transcript showCR:'exception handler forces return'.
-            ex return
-        ] do:[
-            [
-                Transcript showCR:'doing something bad ...'.
-                1 / 0.
-                Transcript showCR:'not reached'
-            ] ifCurtailed:[
-                Transcript showCR:'cleanup'
-            ]
-        ]
-                                                                        [exEnd]
+									[exBegin]
+	Error handle:[:ex |
+	    Transcript showCR:'exception handler forces return'.
+	    ex return
+	] do:[
+	    [
+		Transcript showCR:'doing something bad ...'.
+		1 / 0.
+		Transcript showCR:'not reached'
+	    ] ifCurtailed:[
+		Transcript showCR:'cleanup'
+	    ]
+	]
+									[exEnd]
 
 
     delayed execution (visitor pattern):
-    (looking carefully into the example, 
+    (looking carefully into the example,
      C/C++ programmers may raise their eyes ;-)
-                                                                        [exBegin]
-        |showBlock countBlock 
-         howMany 
-         top panel b1 b2|
-
-        howMany := 0.
-
-        showBlock := [ Transcript showCR:howMany ].
-        countBlock := [ howMany := howMany + 1 ].
-
-        top := StandardSystemView extent:200@200.
-        panel := HorizontalPanelView origin:0.0@0.0 corner:1.0@1.0 in:top.
-
-        b1 := Button label:'count up' in:panel.
-        b1 action:countBlock.
-
-        b2 := Button label:'show value' in:panel.
-        b2 action:showBlock.
-
-        top open.
-
-        Transcript showCR:'new process started;'.
-        Transcript showCR:'notice: the blocks can still access the'.
-        Transcript showCR:'        howMany local variable.'.
-                                                                        [exEnd]
+									[exBegin]
+	|showBlock countBlock
+	 howMany
+	 top panel b1 b2|
+
+	howMany := 0.
+
+	showBlock := [ Transcript showCR:howMany ].
+	countBlock := [ howMany := howMany + 1 ].
+
+	top := StandardSystemView extent:200@200.
+	panel := HorizontalPanelView origin:0.0@0.0 corner:1.0@1.0 in:top.
+
+	b1 := Button label:'count up' in:panel.
+	b1 action:countBlock.
+
+	b2 := Button label:'show value' in:panel.
+	b2 action:showBlock.
+
+	top open.
+
+	Transcript showCR:'new process started;'.
+	Transcript showCR:'notice: the blocks can still access the'.
+	Transcript showCR:'        howMany local variable.'.
+									[exEnd]
 "
 ! !
 
@@ -311,9 +311,9 @@
     "create signals raised by various errors"
 
     InvalidNewSignal isNil ifTrue:[
-        InvalidNewSignal := Error newSignalMayProceed:false.
-        InvalidNewSignal nameClass:self message:#invalidNewSignal.
-        InvalidNewSignal notifierString:'blocks are only created by the system'.
+	InvalidNewSignal := Error newSignalMayProceed:false.
+	InvalidNewSignal nameClass:self message:#invalidNewSignal.
+	InvalidNewSignal notifierString:'blocks are only created by the system'.
     ]
 
     "Modified: 22.4.1996 / 16:34:20 / cg"
@@ -335,7 +335,7 @@
 
     |newBlock|
 
-    newBlock := (super basicNew:(literals size)) 
+    newBlock := (super basicNew:(literals size))
 			   byteCode:bCode
 			   numArgs:numArgs
 			   numVars:numVars
@@ -408,24 +408,24 @@
 
     "
      [
-        [
-            Transcript showCR:'one'.
-            Processor activeProcess terminate.
-            Transcript showCR:'two'.
-        ] ensure:[
-            Transcript showCR:'three'.
-        ].
+	[
+	    Transcript showCR:'one'.
+	    Processor activeProcess terminate.
+	    Transcript showCR:'two'.
+	] ensure:[
+	    Transcript showCR:'three'.
+	].
      ] fork.
     "
 
     "
      [
-        [
-            Transcript showCR:'one'.
-            Transcript showCR:'two'.
-        ] ensure:[
-            Transcript showCR:'three'.
-        ].
+	[
+	    Transcript showCR:'one'.
+	    Transcript showCR:'two'.
+	] ensure:[
+	    Transcript showCR:'three'.
+	].
      ] fork.
     "
 !
@@ -452,23 +452,23 @@
 
      s := 'Makefile' asFilename readStream.
      [
-        ^ self
+	^ self
      ] ifCurtailed:[
-        Transcript showCR:'closing the stream - even though a return occurred'.
-        s close
+	Transcript showCR:'closing the stream - even though a return occurred'.
+	s close
      ]
     "
     "
      [
-         |s|
-
-         s := 'Makefile' asFilename readStream.
-         [
-            Processor activeProcess terminate
-         ] ifCurtailed:[
-            Transcript showCR:'closing the stream - even though process was terminated'.
-            s close
-         ]
+	 |s|
+
+	 s := 'Makefile' asFilename readStream.
+	 [
+	    Processor activeProcess terminate
+	 ] ifCurtailed:[
+	    Transcript showCR:'closing the stream - even though process was terminated'.
+	    s close
+	 ]
      ] fork
     "
 ! !
@@ -488,15 +488,15 @@
     "Dolphin compatibility method - do not use in new code.
      Dolphin's alias for futureValue"
 
-    ^ Future new 
-        priority:priority block:self
+    ^ Future new
+	priority:priority block:self
 
     "Created: / 04-10-2011 / 14:55:56 / cg"
 ! !
 
 !Block methodsFor:'Compatibility-Squeak'!
 
-cull: optionalFirstArg 
+cull: optionalFirstArg
     "activate the receiver with one or zero arguments.
      Squeak compatibility, but also present in VW Smalltalk"
 
@@ -518,10 +518,10 @@
      Squeak compatibility, but also present in VW Smalltalk"
 
     nargs >= 2 ifTrue:[
-        nargs >= 3 ifTrue:[
-            ^ self value:optionalFirstArg value:optionalSecondArg value:optionalThirdArg
-        ].
-        ^ self value:optionalFirstArg value:optionalSecondArg
+	nargs >= 3 ifTrue:[
+	    ^ self value:optionalFirstArg value:optionalSecondArg value:optionalThirdArg
+	].
+	^ self value:optionalFirstArg value:optionalSecondArg
     ].
     nargs = 1 ifTrue:[^ self value:optionalFirstArg].
     ^ self value
@@ -539,22 +539,22 @@
 
     numArgs := handlerBlock isBlock ifTrue:[handlerBlock numArgs] ifFalse:[0].
     numArgs == 1 ifTrue:[
-        ^ self on:Error do:handlerBlock
+	^ self on:Error do:handlerBlock
     ].
 
-    ^ self 
-        on:Error 
-        do:[:ex | 
-            |errString errReceiver|
-
-            numArgs == 0 ifTrue:[
-                ex return:handlerBlock value
-            ] ifFalse:[
-                errString := ex description.
-                errReceiver := ex suspendedContext receiver.
-                ex return:(handlerBlock value:errString value:errReceiver)
-            ].
-        ]
+    ^ self
+	on:Error
+	do:[:ex |
+	    |errString errReceiver|
+
+	    numArgs == 0 ifTrue:[
+		ex return:handlerBlock value
+	    ] ifFalse:[
+		errString := ex description.
+		errReceiver := ex suspendedContext receiver.
+		ex return:(handlerBlock value:errString value:errReceiver)
+	    ].
+	]
 
     "
      |a|
@@ -594,7 +594,7 @@
 
 apply:aCollection from:start to:end
     "VisualAge compatibility:
-     Evaluate the receiver for each variable slot of aCollection from start to end. 
+     Evaluate the receiver for each variable slot of aCollection from start to end.
      Answer aCollection."
 
     aCollection from:start to:end do:self.
@@ -602,7 +602,7 @@
 
     "
      [:i | Transcript showCR:i ]
-        apply:#(10 20 30 40 50 60) from:2 to:4
+	apply:#(10 20 30 40 50 60) from:2 to:4
     "
 
     "Created: / 16-05-2012 / 11:20:55 / cg"
@@ -610,7 +610,7 @@
 
 applyWithIndex:aCollection from:start to:end
     "VisualAge compatibility:
-     Evaluate the receiver for each variable slot and index of aCollection from start to end. 
+     Evaluate the receiver for each variable slot and index of aCollection from start to end.
      Answer aCollection."
 
     aCollection from:start to:end doWithIndex:self.
@@ -618,7 +618,7 @@
 
     "
      [:el :i | Transcript showCR:(i -> el) ]
-        applyWithIndex:#(10 20 30 40 50 60) from:2 to:4
+	applyWithIndex:#(10 20 30 40 50 60) from:2 to:4
     "
 
     "Created: / 16-05-2012 / 11:22:01 / cg"
@@ -628,7 +628,7 @@
     "VisualAge compatibility: alias for #ensure:
      evaluate the receiver - when the block returns either a local return
      or an unwind (i.e. does a long return), evaluate the argument, aBlock.
-     This is used to make certain that cleanup actions 
+     This is used to make certain that cleanup actions
      (for example closing files etc.) are executed regardless of error actions."
 
     ^ [self value:arg1] ensure:aBlock
@@ -640,7 +640,7 @@
     "VisualAge compatibility: alias for #ensure:
      evaluate the receiver - when the block returns either a local return
      or an unwind (i.e. does a long return), evaluate the argument, aBlock.
-     This is used to make certain that cleanup actions 
+     This is used to make certain that cleanup actions
      (for example closing files etc.) are executed regardless of error actions."
 
     ^ [self value:arg1 value:arg2] ensure:aBlock
@@ -652,7 +652,7 @@
     "VisualAge compatibility: alias for #ensure:
      evaluate the receiver - when the block returns either a local return
      or an unwind (i.e. does a long return), evaluate the argument, aBlock.
-     This is used to make certain that cleanup actions 
+     This is used to make certain that cleanup actions
      (for example closing files etc.) are executed regardless of error actions."
 
     ^ [self value:arg1 value:arg2 value:arg3] ensure:aBlock
@@ -664,7 +664,7 @@
     "VisualAge compatibility: alias for #ensure:
      evaluate the receiver - when the block returns either a local return
      or an unwind (i.e. does a long return), evaluate the argument, aBlock.
-     This is used to make certain that cleanup actions 
+     This is used to make certain that cleanup actions
      (for example closing files etc.) are executed regardless of error actions."
 
     ^ self ensure:aBlock
@@ -697,8 +697,8 @@
     |m|
 
     home notNil ifTrue:[
-        m := home method.
-        m notNil ifTrue:[^ m].
+	m := home method.
+	m notNil ifTrue:[^ m].
     ].
     m := self literalAt:1 ifAbsent:nil.
     m isMethod ifTrue:[^ m].
@@ -708,7 +708,7 @@
 !
 
 method
-    "return the receivers method 
+    "return the receivers method
      (the method where the block was created).
      Obsolete: use #homeMethod for ST80 compatibility."
 
@@ -724,7 +724,7 @@
      defined). For cheap blocks, nil is returned"
 
     home notNil ifTrue:[
-        ^ home methodHome
+	^ home methodHome
     ].
     ^ nil
 !
@@ -763,8 +763,8 @@
     "
      |b|
 
-     b := [:argList | Transcript 
-			show:'invoked with args:'; 
+     b := [:argList | Transcript
+			show:'invoked with args:';
 			showCR:argList
 	  ] asVarArgBlock.
      b value.
@@ -789,12 +789,12 @@
      |b b1 b2 b3|
 
      b := [:a :b :c | a + b + c] beCurryingBlock.
-     b numArgs.    
+     b numArgs.
      b value:1 value:2 value:3.
 
      b1 := b value:10.
-     b1 numArgs.         
-     b1 value:2 value:3.    
+     b1 numArgs.
+     b1 value:2 value:3.
 
      b2 := b value:10 value:20.
      b2 numArgs.
@@ -833,7 +833,7 @@
     |copyOfHome copyOfMe|
 
     home isNil ifTrue:[
-        ^ super deepCopyUsing:aDictionary postCopySelector:postCopySelector
+	^ super deepCopyUsing:aDictionary postCopySelector:postCopySelector
     ].
     copyOfHome := home deepCopyUsing:aDictionary.
     copyOfMe := self shallowCopy.
@@ -860,21 +860,21 @@
 
     Transcript show:anInfoString.
     micros < 1000 ifTrue:[
-        Transcript show:micros; show:' µs'.
+	Transcript show:micros; show:' µs'.
     ] ifFalse:[
-        micros < 100000 ifTrue:[
-            millis := (micros / 1000.0) asFixedPointRoundedToScale:2.
-            Transcript show:millis; show:' ms'.
-        ] ifFalse:[
-            millis := micros // 1000.
-            Transcript show:(TimeDuration milliseconds:millis).
-        ].
+	micros < 100000 ifTrue:[
+	    millis := (micros / 1000.0) asFixedPointRoundedToScale:2.
+	    Transcript show:millis; show:' ms'.
+	] ifFalse:[
+	    millis := micros // 1000.
+	    Transcript show:(TimeDuration milliseconds:millis).
+	].
     ].
     Transcript cr.
 
     "
-        [10 factorial] benchmark:'10 factorial:'
-        [100 factorial] benchmark:'100 factorial:'
+	[10 factorial] benchmark:'10 factorial:'
+	[100 factorial] benchmark:'100 factorial:'
     "
 ! !
 
@@ -890,8 +890,8 @@
      someone played around."
 
     ^ InvalidCodeError
-        raiseRequestWith:self
-        errorString:'invalid block - not executable'
+	raiseRequestWith:self
+	errorString:'invalid block - not executable'
 
     "Modified: 4.11.1996 / 22:46:39 / cg"
 ! !
@@ -899,88 +899,97 @@
 !Block methodsFor:'evaluation'!
 
 value
-    "evaluate the receiver with no block args. 
+    "evaluate the receiver with no block args.
      The receiver must be a block without arguments."
 
 %{  /* NOCONTEXT */
-
+#ifdef __SCHTEAM__
+    return context.TAILCALL0( self.asSTCallable() );
+    /* NOTREACHED */
+#else
     REGISTER OBJFUNC thecode;
     OBJ home;
 
     if (__INST(nargs) == __mkSmallInteger(0)) {
-#if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
-#endif
-
-        thecode = __BlockInstPtr(self)->b_code;
-#ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            /* compiled machine code */
-            RETURN ( (*thecode)(self) );
-        }
-        /* interpreted code */
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 0, nil, nil, nil, nil) );
+# if defined(THIS_CONTEXT)
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+# endif
+
+	thecode = __BlockInstPtr(self)->b_code;
+# ifdef NEW_BLOCK_CALL
+	if (thecode != (OBJFUNC)nil) {
+	    /* compiled machine code */
+	    RETURN ( (*thecode)(self) );
+	}
+	/* interpreted code */
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 0, nil, nil, nil, nil) );
+#  else
+	RETURN ( __interpret(self, 0, nil, nil, nil, nil) );
+#  endif
 # else
-        RETURN ( __interpret(self, 0, nil, nil, nil, nil) );
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    /* compiled machine code */
+	    RETURN ( (*thecode)(home) );
+	}
+	/* interpreted code */
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 0, nil, home, nil, nil) );
+#  else
+	RETURN ( __interpret(self, 0, nil, home, nil, nil) );
+#  endif
 # endif
-#else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            /* compiled machine code */
-            RETURN ( (*thecode)(home) );
-        }
-        /* interpreted code */
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 0, nil, home, nil, nil) );
-# else
-        RETURN ( __interpret(self, 0, nil, home, nil, nil) );
-# endif
-#endif
     }
+#endif /* not SCHTEAM */
 %}.
     ^ self wrongNumberOfArguments:0
 !
 
 value:arg
-    "evaluate the receiver with one argument. 
+    "evaluate the receiver with one argument.
      The receiver must be a 1-arg block."
 
 %{  /* NOCONTEXT */
+#ifdef __SCHTEAM__
+    return context.TAILCALL1( self.asSTCallable(), arg );
+    /* NOTREACHED */
+#else
 
     REGISTER OBJFUNC thecode;
     OBJ home;
 
     if (__INST(nargs) == __mkSmallInteger(1)) {
-#if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
-#endif
-        thecode = __BlockInstPtr(self)->b_code;
-#ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg) );
-        }
-        /* interpreted code */
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 1, nil, nil, nil, nil, &arg) );
+# if defined(THIS_CONTEXT)
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+# endif
+	thecode = __BlockInstPtr(self)->b_code;
+# ifdef NEW_BLOCK_CALL
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg) );
+	}
+	/* interpreted code */
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 1, nil, nil, nil, nil, &arg) );
+#  else
+	RETURN ( __interpret(self, 1, nil, nil, nil, nil, arg) );
+#  endif
 # else
-        RETURN ( __interpret(self, 1, nil, nil, nil, nil, arg) );
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg) );
+	}
+	/* interpreted code */
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 1, nil, home, nil, nil, &arg) );
+#  else
+	RETURN ( __interpret(self, 1, nil, home, nil, nil, arg) );
+#  endif
 # endif
-#else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg) );
-        }
-        /* interpreted code */
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 1, nil, home, nil, nil, &arg) );
-# else
-        RETURN ( __interpret(self, 1, nil, home, nil, nil, arg) );
-# endif
-#endif
     }
+#endif /* not SCHTEAM */
 %}.
     ^ self wrongNumberOfArguments:1
 !
@@ -990,7 +999,7 @@
      Optionally pass up one or to two arguments (if the receiver is a one/two arg block)."
 
     nargs == 2 ifTrue:[
-        ^ self value:arg1 value:arg2
+	^ self value:arg1 value:arg2
     ].
     ^ self value:arg1
 
@@ -998,10 +1007,10 @@
      |block|
 
      block := [:arg | Transcript showCR:arg ].
-     block value:2 optionalArgument:3.     
+     block value:2 optionalArgument:3.
 
      block := [:arg1 :arg2 | Transcript show:arg1; space; showCR:arg2 ].
-     block value:2 optionalArgument:3.     
+     block value:2 optionalArgument:3.
     "
 !
 
@@ -1010,10 +1019,10 @@
      Optionally pass up one, two or three arguments (if the receiver is a 1/2/3-arg block)."
 
     nargs == 3 ifTrue:[
-        ^ self value:arg1 value:arg2 value:arg3
+	^ self value:arg1 value:arg2 value:arg3
     ].
     nargs == 2 ifTrue:[
-        ^ self value:arg1 value:arg2
+	^ self value:arg1 value:arg2
     ].
     ^ self value:arg1
 
@@ -1021,49 +1030,54 @@
      |block|
 
      block := [:arg | Transcript showCR:arg ].
-     block value:2 optionalArgument:3.     
+     block value:2 optionalArgument:3.
 
      block := [:arg1 :arg2 | Transcript show:arg1; space; showCR:arg2 ].
-     block value:2 optionalArgument:3.     
+     block value:2 optionalArgument:3.
     "
 !
 
 value:arg1 value:arg2
-    "evaluate the receiver with two arguments. 
+    "evaluate the receiver with two arguments.
      The receiver must be a 2-arg block."
 
 %{  /* NOCONTEXT */
+#ifdef __SCHTEAM__
+    return context.TAILCALL2( self.asSTCallable(), arg1, arg2 );
+    /* NOTREACHED */
+#else
 
     REGISTER OBJFUNC thecode;
     OBJ home;
 
     if (__INST(nargs) == __mkSmallInteger(2)) {
-#if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
-#endif
-        thecode = __BlockInstPtr(self)->b_code;
-#ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg1, arg2) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 2, nil, nil, nil, nil, &arg1) );
+# if defined(THIS_CONTEXT)
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+# endif
+	thecode = __BlockInstPtr(self)->b_code;
+# ifdef NEW_BLOCK_CALL
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg1, arg2) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 2, nil, nil, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 2, nil, nil, nil, nil, arg1, arg2) );
+#  endif
 # else
-        RETURN ( __interpret(self, 2, nil, nil, nil, nil, arg1, arg2) );
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg1, arg2) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 2, nil, home, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 2, nil, home, nil, nil, arg1, arg2) );
+#  endif
 # endif
-#else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg1, arg2) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 2, nil, home, nil, nil, &arg1) );
-# else
-        RETURN ( __interpret(self, 2, nil, home, nil, nil, arg1, arg2) );
-# endif
-#endif
     }
+#endif /* not SCHTEAM */
 %}.
     ^ self wrongNumberOfArguments:2
 !
@@ -1073,167 +1087,187 @@
      Optionally pass two or threearguments (if the receiver is a 2/3-arg block)."
 
     nargs == 3 ifTrue:[
-        ^ self value:arg1 value:arg2 value:arg3
+	^ self value:arg1 value:arg2 value:arg3
     ].
     ^ self value:arg1 value:arg2
 !
 
 value:arg1 value:arg2 value:arg3
-    "evaluate the receiver with three arguments. 
+    "evaluate the receiver with three arguments.
      The receiver must be a 3-arg block."
 
 %{  /* NOCONTEXT */
+#ifdef __SCHTEAM__
+    return context.TAILCALL3( self.asSTCallable(), arg1, arg2, arg3 );
+    /* NOTREACHED */
+#else
 
     REGISTER OBJFUNC thecode;
     OBJ home;
 
     if (__INST(nargs) == __mkSmallInteger(3)) {
-#if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
-#endif
-        thecode = __BlockInstPtr(self)->b_code;
-#ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg1, arg2, arg3) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 3, nil, nil, nil, nil, &arg1) );
+# if defined(THIS_CONTEXT)
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+# endif
+	thecode = __BlockInstPtr(self)->b_code;
+# ifdef NEW_BLOCK_CALL
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg1, arg2, arg3) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 3, nil, nil, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 3, nil, nil, nil, nil, arg1, arg2, arg3) );
+#  endif
 # else
-        RETURN ( __interpret(self, 3, nil, nil, nil, nil, arg1, arg2, arg3) );
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg1, arg2, arg3) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 3, nil, home, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 3, nil, home, nil, nil, arg1, arg2, arg3) );
+#  endif
 # endif
-#else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg1, arg2, arg3) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 3, nil, home, nil, nil, &arg1) );
-# else
-        RETURN ( __interpret(self, 3, nil, home, nil, nil, arg1, arg2, arg3) );
-# endif
-#endif
     }
+#endif /* not SCHTEAM */
 %}.
     ^ self wrongNumberOfArguments:3
 !
 
 value:arg1 value:arg2 value:arg3 value:arg4
-    "evaluate the receiver with four arguments. 
+    "evaluate the receiver with four arguments.
      The receiver must be a 4-arg block."
 
 %{  /* NOCONTEXT */
+#ifdef __SCHTEAM__
+    return context.TAILCALL4( self.asSTCallable(), arg1, arg2, arg3, arg4 );
+    /* NOTREACHED */
+#else
 
     REGISTER OBJFUNC thecode;
     OBJ home;
 
     if (__INST(nargs) == __mkSmallInteger(4)) {
-#if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
-#endif
-        thecode = __BlockInstPtr(self)->b_code;
-#ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 4, nil, nil, nil, nil, &arg1) );
+# if defined(THIS_CONTEXT)
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+# endif
+	thecode = __BlockInstPtr(self)->b_code;
+# ifdef NEW_BLOCK_CALL
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 4, nil, nil, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 4, nil, nil, nil, nil, arg1, arg2, arg3, arg4) );
+#  endif
 # else
-        RETURN ( __interpret(self, 4, nil, nil, nil, nil, arg1, arg2, arg3, arg4) );
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 4, nil, home, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 4, nil, home, nil, nil, arg1, arg2, arg3, arg4) );
+#  endif
 # endif
-#else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 4, nil, home, nil, nil, &arg1) );
-# else
-        RETURN ( __interpret(self, 4, nil, home, nil, nil, arg1, arg2, arg3, arg4) );
-# endif
+    }
 #endif
-    }
 %}.
     ^ self wrongNumberOfArguments:4
 !
 
 value:arg1 value:arg2 value:arg3 value:arg4 value:arg5
-    "evaluate the receiver with five arguments. 
+    "evaluate the receiver with five arguments.
      The receiver must be a 5-arg block."
 
 %{  /* NOCONTEXT */
+#ifdef __SCHTEAM__
+    return context.TAILCALL5( self.asSTCallable(), arg1, arg2, arg3, arg4, arg5 );
+    /* NOTREACHED */
+#else
 
     REGISTER OBJFUNC thecode;
     OBJ home;
 
     if (__INST(nargs) == __mkSmallInteger(5)) {
-#if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
-#endif
-        thecode = __BlockInstPtr(self)->b_code;
-#ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 5, nil, nil, nil, nil, &arg1) );
+# if defined(THIS_CONTEXT)
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+# endif
+	thecode = __BlockInstPtr(self)->b_code;
+# ifdef NEW_BLOCK_CALL
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 5, nil, nil, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 5, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5) );
+#  endif
 # else
-        RETURN ( __interpret(self, 5, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5) );
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 5, nil, home, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 5, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5) );
+#  endif
 # endif
-#else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 5, nil, home, nil, nil, &arg1) );
-# else
-        RETURN ( __interpret(self, 5, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5) );
-# endif
-#endif
     }
+#endif /* not SCHTEAM */
 %}.
     ^ self wrongNumberOfArguments:5
 !
 
 value:arg1 value:arg2 value:arg3 value:arg4 value:arg5 value:arg6
-    "evaluate the receiver with six arguments. 
+    "evaluate the receiver with six arguments.
      The receiver must be a 6-arg block."
 
 %{  /* NOCONTEXT */
+#ifdef __SCHTEAM__
+    return context.TAILCALL6( self.asSTCallable(), arg1, arg2, arg3, arg4, arg5, arg6 );
+    /* NOTREACHED */
+#else
 
     REGISTER OBJFUNC thecode;
     OBJ home;
 
     if (__INST(nargs) == __mkSmallInteger(6)) {
-#if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
-#endif
-        thecode = __BlockInstPtr(self)->b_code;
-#ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 6, nil, nil, nil, nil, &arg1) );
+# if defined(THIS_CONTEXT)
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+# endif
+	thecode = __BlockInstPtr(self)->b_code;
+# ifdef NEW_BLOCK_CALL
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 6, nil, nil, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 6, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6) );
+#  endif
 # else
-        RETURN ( __interpret(self, 6, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6) );
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 6, nil, home, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 6, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6) );
+#  endif
 # endif
-#else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 6, nil, home, nil, nil, &arg1) );
-# else
-        RETURN ( __interpret(self, 6, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6) );
-# endif
-#endif
     }
+#endif /* not SCHTEAM */
 %}.
     ^ self wrongNumberOfArguments:6
 !
@@ -1243,37 +1277,42 @@
      The receiver must be a 7-arg block."
 
 %{  /* NOCONTEXT */
+#ifdef __SCHTEAM__
+    return context.TAILCALL7( self.asSTCallable(), arg1, arg2, arg3, arg4, arg5, arg6, arg7 );
+    /* NOTREACHED */
+#else
 
     REGISTER OBJFUNC thecode;
     OBJ home;
 
     if (__INST(nargs) == __mkSmallInteger(7)) {
-#if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
-#endif
-        thecode = __BlockInstPtr(self)->b_code;
-#ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 7, nil, nil, nil, nil, &arg1) );
+# if defined(THIS_CONTEXT)
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+# endif
+	thecode = __BlockInstPtr(self)->b_code;
+# ifdef NEW_BLOCK_CALL
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 7, nil, nil, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 7, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7) );
+#  endif
 # else
-        RETURN ( __interpret(self, 7, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7) );
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7) );
+	}
+#  ifdef PASS_ARG_POINTER
+	RETURN ( __interpret(self, 7, nil, home, nil, nil, &arg1) );
+#  else
+	RETURN ( __interpret(self, 7, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7) );
+#  endif
 # endif
-#else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7) );
-        }
-# ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 7, nil, home, nil, nil, &arg1) );
-# else
-        RETURN ( __interpret(self, 7, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7) );
-# endif
+    }
 #endif
-    }
 %}.
     ^ self wrongNumberOfArguments:7
 !
@@ -1289,28 +1328,28 @@
 
     if (__INST(nargs) == __mkSmallInteger(8)) {
 #if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
 #endif
-        thecode = __BlockInstPtr(self)->b_code;
+	thecode = __BlockInstPtr(self)->b_code;
 #ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) );
-        }
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) );
+	}
 # ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 8, nil, nil, nil, nil, &arg1) );
+	RETURN ( __interpret(self, 8, nil, nil, nil, nil, &arg1) );
 # else
-        RETURN ( __interpret(self, 8, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) );
+	RETURN ( __interpret(self, 8, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) );
 # endif
 #else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) );
-        }
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) );
+	}
 # ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 8, nil, home, nil, nil, &arg1) );
+	RETURN ( __interpret(self, 8, nil, home, nil, nil, &arg1) );
 # else
-        RETURN ( __interpret(self, 8, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) );
+	RETURN ( __interpret(self, 8, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) );
 # endif
 #endif
     }
@@ -1329,28 +1368,28 @@
 
     if (__INST(nargs) == __mkSmallInteger(9)) {
 #if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
 #endif
-        thecode = __BlockInstPtr(self)->b_code;
+	thecode = __BlockInstPtr(self)->b_code;
 #ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) );
-        }
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) );
+	}
 # ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 9, nil, nil, nil, nil, &arg1) );
+	RETURN ( __interpret(self, 9, nil, nil, nil, nil, &arg1) );
 # else
-        RETURN ( __interpret(self, 9, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) );
+	RETURN ( __interpret(self, 9, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) );
 # endif
 #else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) );
-        }
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) );
+	}
 # ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 9, nil, home, nil, nil, &arg1) );
+	RETURN ( __interpret(self, 9, nil, home, nil, nil, &arg1) );
 # else
-        RETURN ( __interpret(self, 9, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) );
+	RETURN ( __interpret(self, 9, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) );
 # endif
 #endif
     }
@@ -1369,28 +1408,28 @@
 
     if (__INST(nargs) == __mkSmallInteger(10)) {
 #if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
 #endif
-        thecode = __BlockInstPtr(self)->b_code;
+	thecode = __BlockInstPtr(self)->b_code;
 #ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) );
-        }
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) );
+	}
 # ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 10, nil, nil, nil, nil, &arg1) );
+	RETURN ( __interpret(self, 10, nil, nil, nil, nil, &arg1) );
 # else
-        RETURN ( __interpret(self, 10, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) );
+	RETURN ( __interpret(self, 10, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) );
 # endif
 #else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) );
-        }
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) );
+	}
 # ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 10, nil, home, nil, nil, &arg1) );
+	RETURN ( __interpret(self, 10, nil, home, nil, nil, &arg1) );
 # else
-        RETURN ( __interpret(self, 10, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) );
+	RETURN ( __interpret(self, 10, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) );
 # endif
 #endif
     }
@@ -1409,28 +1448,28 @@
 
     if (__INST(nargs) == __mkSmallInteger(11)) {
 #if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
 #endif
-        thecode = __BlockInstPtr(self)->b_code;
+	thecode = __BlockInstPtr(self)->b_code;
 #ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) );
-        }
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) );
+	}
 # ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 11, nil, nil, nil, nil, &arg1) );
+	RETURN ( __interpret(self, 11, nil, nil, nil, nil, &arg1) );
 # else
-        RETURN ( __interpret(self, 11, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) );
+	RETURN ( __interpret(self, 11, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) );
 # endif
 #else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) );
-        }
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) );
+	}
 # ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 11, nil, home, nil, nil, &arg1) );
+	RETURN ( __interpret(self, 11, nil, home, nil, nil, &arg1) );
 # else
-        RETURN ( __interpret(self, 11, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) );
+	RETURN ( __interpret(self, 11, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) );
 # endif
 #endif
     }
@@ -1449,28 +1488,28 @@
 
     if (__INST(nargs) == __mkSmallInteger(12)) {
 #if defined(THIS_CONTEXT)
-        if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+	if (__ISVALID_ILC_LNO(__pilc))
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
 #endif
-        thecode = __BlockInstPtr(self)->b_code;
+	thecode = __BlockInstPtr(self)->b_code;
 #ifdef NEW_BLOCK_CALL
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) );
-        }
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) );
+	}
 # ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 12, nil, nil, nil, nil, &arg1) );
+	RETURN ( __interpret(self, 12, nil, nil, nil, nil, &arg1) );
 # else
-        RETURN ( __interpret(self, 12, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) );
+	RETURN ( __interpret(self, 12, nil, nil, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) );
 # endif
 #else
-        home = __BlockInstPtr(self)->b_home;
-        if (thecode != (OBJFUNC)nil) {
-            RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) );
-        }
+	home = __BlockInstPtr(self)->b_home;
+	if (thecode != (OBJFUNC)nil) {
+	    RETURN ( (*thecode)(home, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) );
+	}
 # ifdef PASS_ARG_POINTER
-        RETURN ( __interpret(self, 12, nil, home, nil, nil, &arg1) );
+	RETURN ( __interpret(self, 12, nil, home, nil, nil, &arg1) );
 # else
-        RETURN ( __interpret(self, 12, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) );
+	RETURN ( __interpret(self, 12, nil, home, nil, nil, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) );
 # endif
 #endif
     }
@@ -1488,18 +1527,18 @@
     activeProcess := Processor activeProcess.
     oldPrio := Processor activePriority.
     [
-        activeProcess priority:priority.
-        retVal := self value.
+	activeProcess priority:priority.
+	retVal := self value.
     ] ensure:[
-        activeProcess priority:oldPrio
+	activeProcess priority:oldPrio
     ].
     ^ retVal
 
     "
      [
-         1000 timesRepeat:[
-             1000 factorial
-         ]
+	 1000 timesRepeat:[
+	     1000 factorial
+	 ]
      ] valueAt:3
     "
 
@@ -1514,13 +1553,13 @@
     |a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15|
 
     (argArray notNil and:[(argArray class ~~ Array) and:[argArray isArray not]]) ifTrue:[
-        argArray isCollection ifTrue:[
-            ^ self valueWithArguments:argArray asArray
-        ].
-        ^ self badArgumentArray:argArray
+	argArray isCollection ifTrue:[
+	    ^ self valueWithArguments:argArray asArray
+	].
+	^ self badArgumentArray:argArray
     ].
     (argArray size == nargs) ifFalse:[
-        ^ self wrongNumberOfArguments:argArray size
+	^ self wrongNumberOfArguments:argArray size
     ].
 %{
 
@@ -1531,7 +1570,7 @@
 
 #if defined(THIS_CONTEXT)
     if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
 #endif
     thecode = __BlockInstPtr(self)->b_code;
 
@@ -1540,96 +1579,96 @@
 #ifndef NEW_BLOCK_CALL
     home = __BlockInstPtr(self)->b_home;
     if (thecode != (OBJFUNC)nil) {
-        /* the most common case (0 args) here (without a switch) */
-
-        if (nA == __mkSmallInteger(0)) {
-            RETURN ( (*thecode)(home) );
-        }
-
-        ap = __arrayVal(argArray);   /* nonNil after above test (size is known to be ok) */
-        switch ((INT)(nA)) {
-            default:
-                goto error;
-            case (INT)__mkSmallInteger(15):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12], ap[13], ap[14]) );
-            case (INT)__mkSmallInteger(14):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12], ap[13]) );
-            case (INT)__mkSmallInteger(13):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12]) );
-            case (INT)__mkSmallInteger(12):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11]) );
-            case (INT)__mkSmallInteger(11):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10]) );
-            case (INT)__mkSmallInteger(10):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9]) );
-            case (INT)__mkSmallInteger(9):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8]) );
-            case (INT)__mkSmallInteger(8):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7]) );
-            case (INT)__mkSmallInteger(7):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6]) );
-            case (INT)__mkSmallInteger(6):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5]) );
-            case (INT)__mkSmallInteger(5):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4]) );
-            case (INT)__mkSmallInteger(4):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3]) );
-            case (INT)__mkSmallInteger(3):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2]) );
-            case (INT)__mkSmallInteger(2):
-                RETURN ( (*thecode)(home, ap[0], ap[1]) );
-            case (INT)__mkSmallInteger(1):
-                RETURN ( (*thecode)(home, ap[0]) );
-            case (INT)__mkSmallInteger(0):
-                RETURN ( (*thecode)(home) );
-                break;
-        }
+	/* the most common case (0 args) here (without a switch) */
+
+	if (nA == __mkSmallInteger(0)) {
+	    RETURN ( (*thecode)(home) );
+	}
+
+	ap = __arrayVal(argArray);   /* nonNil after above test (size is known to be ok) */
+	switch ((INT)(nA)) {
+	    default:
+		goto error;
+	    case (INT)__mkSmallInteger(15):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12], ap[13], ap[14]) );
+	    case (INT)__mkSmallInteger(14):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12], ap[13]) );
+	    case (INT)__mkSmallInteger(13):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12]) );
+	    case (INT)__mkSmallInteger(12):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11]) );
+	    case (INT)__mkSmallInteger(11):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10]) );
+	    case (INT)__mkSmallInteger(10):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9]) );
+	    case (INT)__mkSmallInteger(9):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8]) );
+	    case (INT)__mkSmallInteger(8):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7]) );
+	    case (INT)__mkSmallInteger(7):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6]) );
+	    case (INT)__mkSmallInteger(6):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5]) );
+	    case (INT)__mkSmallInteger(5):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4]) );
+	    case (INT)__mkSmallInteger(4):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3]) );
+	    case (INT)__mkSmallInteger(3):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2]) );
+	    case (INT)__mkSmallInteger(2):
+		RETURN ( (*thecode)(home, ap[0], ap[1]) );
+	    case (INT)__mkSmallInteger(1):
+		RETURN ( (*thecode)(home, ap[0]) );
+	    case (INT)__mkSmallInteger(0):
+		RETURN ( (*thecode)(home) );
+		break;
+	}
     }
 #endif
 
     if (nA != __mkSmallInteger(0)) {
-        ap = __arrayVal(argArray);   /* nonNil after above test (size is known to be ok) */
-        switch ((INT)nA) {
-            default:
-                goto error;
-            case (INT)__mkSmallInteger(15):
-                a15 = ap[14];
-            case (INT)__mkSmallInteger(14):
-                a14 = ap[13];
-            case (INT)__mkSmallInteger(13):
-                a13 = ap[12];
-            case (INT)__mkSmallInteger(12):
-                a12 = ap[11];
-            case (INT)__mkSmallInteger(11):
-                a11 = ap[10];
-            case (INT)__mkSmallInteger(10):
-                a10 = ap[9];
-            case (INT)__mkSmallInteger(9):
-                a9 = ap[8];
-            case (INT)__mkSmallInteger(8):
-                a8 = ap[7];
-            case (INT)__mkSmallInteger(7):
-                a7 = ap[6];
-            case (INT)__mkSmallInteger(6):
-                a6 = ap[5];
-            case (INT)__mkSmallInteger(5):
-                a5 = ap[4];
-            case (INT)__mkSmallInteger(4):
-                a4 = ap[3];
-            case (INT)__mkSmallInteger(3):
-                a3 = ap[2];
-            case (INT)__mkSmallInteger(2):
-                a2 = ap[1];
-            case (INT)__mkSmallInteger(1):
-                a1 = ap[0];
-            case (INT)__mkSmallInteger(0):
-                break;
-        }
+	ap = __arrayVal(argArray);   /* nonNil after above test (size is known to be ok) */
+	switch ((INT)nA) {
+	    default:
+		goto error;
+	    case (INT)__mkSmallInteger(15):
+		a15 = ap[14];
+	    case (INT)__mkSmallInteger(14):
+		a14 = ap[13];
+	    case (INT)__mkSmallInteger(13):
+		a13 = ap[12];
+	    case (INT)__mkSmallInteger(12):
+		a12 = ap[11];
+	    case (INT)__mkSmallInteger(11):
+		a11 = ap[10];
+	    case (INT)__mkSmallInteger(10):
+		a10 = ap[9];
+	    case (INT)__mkSmallInteger(9):
+		a9 = ap[8];
+	    case (INT)__mkSmallInteger(8):
+		a8 = ap[7];
+	    case (INT)__mkSmallInteger(7):
+		a7 = ap[6];
+	    case (INT)__mkSmallInteger(6):
+		a6 = ap[5];
+	    case (INT)__mkSmallInteger(5):
+		a5 = ap[4];
+	    case (INT)__mkSmallInteger(4):
+		a4 = ap[3];
+	    case (INT)__mkSmallInteger(3):
+		a3 = ap[2];
+	    case (INT)__mkSmallInteger(2):
+		a2 = ap[1];
+	    case (INT)__mkSmallInteger(1):
+		a1 = ap[0];
+	    case (INT)__mkSmallInteger(0):
+		break;
+	}
     }
 
 #ifdef NEW_BLOCK_CALL
     if (thecode != (OBJFUNC)nil) {
-        RETURN ( (*thecode)(self, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) );
+	RETURN ( (*thecode)(self, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) );
     }
 # ifdef PASS_ARG_POINTER
     RETURN ( __interpret(self, __intVal(nA), nil, nil, nil, nil, &a1) );
@@ -1653,8 +1692,8 @@
      the above code only supports up-to 15 arguments
     "
     ^ ArgumentError
-        raiseRequestWith:self
-        errorString:'only blocks with up-to 15 arguments supported'
+	raiseRequestWith:self
+	errorString:'only blocks with up-to 15 arguments supported'
 !
 
 valueWithOptionalArgument:arg
@@ -1662,7 +1701,7 @@
      Optionally pass an argument (if the receiver is a one arg block)."
 
     nargs == 1 ifTrue:[
-        ^ self value:arg
+	^ self value:arg
     ].
     ^ self value
 
@@ -1670,10 +1709,10 @@
      |block|
 
      block := [ Transcript showCR:'hello' ].
-     block valueWithOptionalArgument:2.     
+     block valueWithOptionalArgument:2.
 
      block := [:arg | Transcript showCR:arg ].
-     block valueWithOptionalArgument:2.     
+     block valueWithOptionalArgument:2.
     "
 !
 
@@ -1682,10 +1721,10 @@
      Optionally pass up to two arguments (if the receiver is a one/two arg block)."
 
     nargs == 2 ifTrue:[
-        ^ self value:arg1 value:arg2
+	^ self value:arg1 value:arg2
     ].
     nargs == 1 ifTrue:[
-        ^ self value:arg1
+	^ self value:arg1
     ].
     ^ self value
 
@@ -1693,13 +1732,13 @@
      |block|
 
      block := [ Transcript showCR:'hello' ].
-     block valueWithOptionalArgument:2.     
+     block valueWithOptionalArgument:2.
 
      block := [:arg | Transcript showCR:arg ].
-     block valueWithOptionalArgument:2.     
+     block valueWithOptionalArgument:2.
 
      block := [:arg1 :arg2 | Transcript showCR:arg1. Transcript showCR:arg2 ].
-     block valueWithOptionalArgument:10 and:20.     
+     block valueWithOptionalArgument:10 and:20.
     "
 !
 
@@ -1708,13 +1747,13 @@
      Optionally pass up to three arguments (if the receiver is a one/two/three arg block)."
 
     nargs == 3 ifTrue:[
-        ^ self value:arg1 value:arg2 value:arg3
+	^ self value:arg1 value:arg2 value:arg3
     ].
     nargs == 2 ifTrue:[
-        ^ self value:arg1 value:arg2
+	^ self value:arg1 value:arg2
     ].
     nargs == 1 ifTrue:[
-        ^ self value:arg1
+	^ self value:arg1
     ].
     ^ self value
 
@@ -1722,13 +1761,13 @@
      |block|
 
      block := [ Transcript showCR:'hello' ].
-     block valueWithOptionalArgument:2.     
+     block valueWithOptionalArgument:2.
 
      block := [:arg | Transcript showCR:arg ].
-     block valueWithOptionalArgument:2.     
+     block valueWithOptionalArgument:2.
 
      block := [:arg1 :arg2 | Transcript showCR:arg1. Transcript showCR:arg2 ].
-     block valueWithOptionalArgument:10 and:20.     
+     block valueWithOptionalArgument:10 and:20.
     "
 !
 
@@ -1737,16 +1776,16 @@
      Optionally pass up to four arguments (if the receiver is a one/two/three/four arg block)."
 
     nargs == 4 ifTrue:[
-        ^ self value:arg1 value:arg2 value:arg3 value:arg4
+	^ self value:arg1 value:arg2 value:arg3 value:arg4
     ].
     nargs == 3 ifTrue:[
-        ^ self value:arg1 value:arg2 value:arg3
+	^ self value:arg1 value:arg2 value:arg3
     ].
     nargs == 2 ifTrue:[
-        ^ self value:arg1 value:arg2
+	^ self value:arg1 value:arg2
     ].
     nargs == 1 ifTrue:[
-        ^ self value:arg1
+	^ self value:arg1
     ].
     ^ self value
 
@@ -1754,13 +1793,13 @@
      |block|
 
      block := [ Transcript showCR:'hello' ].
-     block valueWithOptionalArgument:2.     
+     block valueWithOptionalArgument:2.
 
      block := [:arg | Transcript showCR:arg ].
-     block valueWithOptionalArgument:2.     
+     block valueWithOptionalArgument:2.
 
      block := [:arg1 :arg2 | Transcript showCR:arg1. Transcript showCR:arg2 ].
-     block valueWithOptionalArgument:10 and:20.     
+     block valueWithOptionalArgument:10 and:20.
     "
 !
 
@@ -1773,13 +1812,13 @@
     |numArgsProvided a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15|
 
     (argArray notNil and:[(argArray class ~~ Array) and:[argArray isArray not]]) ifTrue:[
-        argArray isCollection ifTrue:[
-            ^ self valueWithArguments:argArray asArray
-        ].
-        ^ self badArgumentArray:argArray
+	argArray isCollection ifTrue:[
+	    ^ self valueWithArguments:argArray asArray
+	].
+	^ self badArgumentArray:argArray
     ].
     (argArray size >= nargs) ifFalse:[
-        ^ self wrongNumberOfArguments:argArray size
+	^ self wrongNumberOfArguments:argArray size
     ].
 %{
     REGISTER OBJFUNC thecode;
@@ -1790,109 +1829,109 @@
 
 #if defined(THIS_CONTEXT)
     if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
 #endif
     thecode = __BlockInstPtr(self)->b_code;
 
     nA = __INST(nargs);
 
     if (argArray == nil) {
-        ap = 0;  
+	ap = 0;
     } else {
-        ap = __arrayVal(argArray);   /* nonNil after above test (size is known to be ok) */
+	ap = __arrayVal(argArray);   /* nonNil after above test (size is known to be ok) */
     }
 
 #ifndef NEW_BLOCK_CALL
     home = __BlockInstPtr(self)->b_home;
     if (thecode != (OBJFUNC)nil) {
-        /* the most common case (0 args) here (without a switch) */
-
-        if (nA == __mkSmallInteger(0)) {
-            RETURN ( (*thecode)(home) );
-        }
-
-        switch ((INT)(nA)) {
-            default:
-                goto error;
-            case (INT)__mkSmallInteger(15):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12], ap[13], ap[14]) );
-            case (INT)__mkSmallInteger(14):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12], ap[13]) );
-            case (INT)__mkSmallInteger(13):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12]) );
-            case (INT)__mkSmallInteger(12):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11]) );
-            case (INT)__mkSmallInteger(11):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10]) );
-            case (INT)__mkSmallInteger(10):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9]) );
-            case (INT)__mkSmallInteger(9):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8]) );
-            case (INT)__mkSmallInteger(8):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7]) );
-            case (INT)__mkSmallInteger(7):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6]) );
-            case (INT)__mkSmallInteger(6):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5]) );
-            case (INT)__mkSmallInteger(5):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4]) );
-            case (INT)__mkSmallInteger(4):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3]) );
-            case (INT)__mkSmallInteger(3):
-                RETURN ( (*thecode)(home, ap[0], ap[1], ap[2]) );
-            case (INT)__mkSmallInteger(2):
-                RETURN ( (*thecode)(home, ap[0], ap[1]) );
-            case (INT)__mkSmallInteger(1):
-                RETURN ( (*thecode)(home, ap[0]) );
-            case (INT)__mkSmallInteger(0):
-                RETURN ( (*thecode)(home) );
-                break;
-        }
+	/* the most common case (0 args) here (without a switch) */
+
+	if (nA == __mkSmallInteger(0)) {
+	    RETURN ( (*thecode)(home) );
+	}
+
+	switch ((INT)(nA)) {
+	    default:
+		goto error;
+	    case (INT)__mkSmallInteger(15):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12], ap[13], ap[14]) );
+	    case (INT)__mkSmallInteger(14):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12], ap[13]) );
+	    case (INT)__mkSmallInteger(13):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11], ap[12]) );
+	    case (INT)__mkSmallInteger(12):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11]) );
+	    case (INT)__mkSmallInteger(11):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10]) );
+	    case (INT)__mkSmallInteger(10):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9]) );
+	    case (INT)__mkSmallInteger(9):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8]) );
+	    case (INT)__mkSmallInteger(8):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7]) );
+	    case (INT)__mkSmallInteger(7):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6]) );
+	    case (INT)__mkSmallInteger(6):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5]) );
+	    case (INT)__mkSmallInteger(5):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4]) );
+	    case (INT)__mkSmallInteger(4):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3]) );
+	    case (INT)__mkSmallInteger(3):
+		RETURN ( (*thecode)(home, ap[0], ap[1], ap[2]) );
+	    case (INT)__mkSmallInteger(2):
+		RETURN ( (*thecode)(home, ap[0], ap[1]) );
+	    case (INT)__mkSmallInteger(1):
+		RETURN ( (*thecode)(home, ap[0]) );
+	    case (INT)__mkSmallInteger(0):
+		RETURN ( (*thecode)(home) );
+		break;
+	}
     }
 #endif
 
     if (nA != __mkSmallInteger(0)) {
-        ap = __arrayVal(argArray);   /* nonNil after above test (size is known to be ok) */
-        switch ((INT)nA) {
-            default:
-                goto error;
-            case (INT)__mkSmallInteger(15):
-                a15 = ap[14];
-            case (INT)__mkSmallInteger(14):
-                a14 = ap[13];
-            case (INT)__mkSmallInteger(13):
-                a13 = ap[12];
-            case (INT)__mkSmallInteger(12):
-                a12 = ap[11];
-            case (INT)__mkSmallInteger(11):
-                a11 = ap[10];
-            case (INT)__mkSmallInteger(10):
-                a10 = ap[9];
-            case (INT)__mkSmallInteger(9):
-                a9 = ap[8];
-            case (INT)__mkSmallInteger(8):
-                a8 = ap[7];
-            case (INT)__mkSmallInteger(7):
-                a7 = ap[6];
-            case (INT)__mkSmallInteger(6):
-                a6 = ap[5];
-            case (INT)__mkSmallInteger(5):
-                a5 = ap[4];
-            case (INT)__mkSmallInteger(4):
-                a4 = ap[3];
-            case (INT)__mkSmallInteger(3):
-                a3 = ap[2];
-            case (INT)__mkSmallInteger(2):
-                a2 = ap[1];
-            case (INT)__mkSmallInteger(1):
-                a1 = ap[0];
-            case (INT)__mkSmallInteger(0):
-                break;
-        }
+	ap = __arrayVal(argArray);   /* nonNil after above test (size is known to be ok) */
+	switch ((INT)nA) {
+	    default:
+		goto error;
+	    case (INT)__mkSmallInteger(15):
+		a15 = ap[14];
+	    case (INT)__mkSmallInteger(14):
+		a14 = ap[13];
+	    case (INT)__mkSmallInteger(13):
+		a13 = ap[12];
+	    case (INT)__mkSmallInteger(12):
+		a12 = ap[11];
+	    case (INT)__mkSmallInteger(11):
+		a11 = ap[10];
+	    case (INT)__mkSmallInteger(10):
+		a10 = ap[9];
+	    case (INT)__mkSmallInteger(9):
+		a9 = ap[8];
+	    case (INT)__mkSmallInteger(8):
+		a8 = ap[7];
+	    case (INT)__mkSmallInteger(7):
+		a7 = ap[6];
+	    case (INT)__mkSmallInteger(6):
+		a6 = ap[5];
+	    case (INT)__mkSmallInteger(5):
+		a5 = ap[4];
+	    case (INT)__mkSmallInteger(4):
+		a4 = ap[3];
+	    case (INT)__mkSmallInteger(3):
+		a3 = ap[2];
+	    case (INT)__mkSmallInteger(2):
+		a2 = ap[1];
+	    case (INT)__mkSmallInteger(1):
+		a1 = ap[0];
+	    case (INT)__mkSmallInteger(0):
+		break;
+	}
     }
 #ifdef NEW_BLOCK_CALL
     if (thecode != (OBJFUNC)nil) {
-        RETURN ( (*thecode)(self, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) );
+	RETURN ( (*thecode)(self, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) );
     }
 # ifdef PASS_ARG_POINTER
     RETURN ( __interpret(self, __intVal(nA), nil, nil, nil, nil, &a1) );
@@ -1916,13 +1955,13 @@
      the above code only supports up-to 15 arguments
     "
     ^ ArgumentError
-        raiseRequestWith:self
-        errorString:'only blocks with up-to 15 arguments supported'
+	raiseRequestWith:self
+	errorString:'only blocks with up-to 15 arguments supported'
 !
 
 valueWithPossibleArguments:argArray
     "evaluate the receiver with arguments as required taken from argArray.
-     If argArray provides less than the required number of arguments, 
+     If argArray provides less than the required number of arguments,
      nil is assumed for any remaining argument.
      (i.e. argArray may be smaller than the required number).
      Only the required number of arguments is taken from argArray or nil;
@@ -1931,10 +1970,10 @@
     |numArgsProvided a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15|
 
     (argArray notNil and:[(argArray class ~~ Array) and:[argArray isArray not]]) ifTrue:[
-        argArray isCollection ifTrue:[
-            ^ self valueWithArguments:argArray asArray
-        ].
-        ^ self badArgumentArray:argArray
+	argArray isCollection ifTrue:[
+	    ^ self valueWithArguments:argArray asArray
+	].
+	^ self badArgumentArray:argArray
     ].
     numArgsProvided := argArray size.
 %{
@@ -1946,89 +1985,89 @@
 
 #if defined(THIS_CONTEXT)
     if (__ISVALID_ILC_LNO(__pilc))
-            __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
+	    __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
 #endif
     thecode = __BlockInstPtr(self)->b_code;
 
     nA = __INST(nargs);
 
     if (argArray == nil) {
-        ap = 0;  
+	ap = 0;
     } else {
-        ap = __arrayVal(argArray);   /* nonNil after above test (size is known to be ok) */
+	ap = __arrayVal(argArray);   /* nonNil after above test (size is known to be ok) */
     }
     switch (__numArgsProvided) {
-        default:
-        case 15: a15 = ap[14];
-        case 14: a14 = ap[13];
-        case 13: a13 = ap[12];
-        case 12: a12 = ap[11];
-        case 11: a11 = ap[10];
-        case 10: a10 = ap[9];
-        case 9: a9 = ap[8];
-        case 8: a8 = ap[7];
-        case 7: a7 = ap[6];
-        case 6: a6 = ap[5];
-        case 5: a5 = ap[4];
-        case 4: a4 = ap[3];
-        case 3: a3 = ap[2];
-        case 2: a2 = ap[1];
-        case 1: a1 = ap[0];
-        case 0: ;
+	default:
+	case 15: a15 = ap[14];
+	case 14: a14 = ap[13];
+	case 13: a13 = ap[12];
+	case 12: a12 = ap[11];
+	case 11: a11 = ap[10];
+	case 10: a10 = ap[9];
+	case 9: a9 = ap[8];
+	case 8: a8 = ap[7];
+	case 7: a7 = ap[6];
+	case 6: a6 = ap[5];
+	case 5: a5 = ap[4];
+	case 4: a4 = ap[3];
+	case 3: a3 = ap[2];
+	case 2: a2 = ap[1];
+	case 1: a1 = ap[0];
+	case 0: ;
     }
 
 #ifndef NEW_BLOCK_CALL
     home = __BlockInstPtr(self)->b_home;
     if (thecode != (OBJFUNC)nil) {
-        /* the most common case (0 args) here (without a switch) */
-
-        if (nA == __mkSmallInteger(0)) {
-            RETURN ( (*thecode)(home) );
-        }
-
-        switch ((INT)(nA)) {
-            default:
-                goto error;
-            case (INT)__mkSmallInteger(15):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) );
-            case (INT)__mkSmallInteger(14):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) );
-            case (INT)__mkSmallInteger(13):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) );
-            case (INT)__mkSmallInteger(12):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) );
-            case (INT)__mkSmallInteger(11):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) );
-            case (INT)__mkSmallInteger(10):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) );
-            case (INT)__mkSmallInteger(9):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9) );
-            case (INT)__mkSmallInteger(8):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8) );
-            case (INT)__mkSmallInteger(7):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7) );
-            case (INT)__mkSmallInteger(6):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6) );
-            case (INT)__mkSmallInteger(5):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4, a5) );
-            case (INT)__mkSmallInteger(4):
-                RETURN ( (*thecode)(home, a1, a2, a3, a4) );
-            case (INT)__mkSmallInteger(3):
-                RETURN ( (*thecode)(home, a1, a2, a3) );
-            case (INT)__mkSmallInteger(2):
-                RETURN ( (*thecode)(home, a1, a2) );
-            case (INT)__mkSmallInteger(1):
-                RETURN ( (*thecode)(home, a1) );
-            case (INT)__mkSmallInteger(0):
-                RETURN ( (*thecode)(home) );
-                break;
-        }
+	/* the most common case (0 args) here (without a switch) */
+
+	if (nA == __mkSmallInteger(0)) {
+	    RETURN ( (*thecode)(home) );
+	}
+
+	switch ((INT)(nA)) {
+	    default:
+		goto error;
+	    case (INT)__mkSmallInteger(15):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) );
+	    case (INT)__mkSmallInteger(14):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) );
+	    case (INT)__mkSmallInteger(13):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) );
+	    case (INT)__mkSmallInteger(12):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) );
+	    case (INT)__mkSmallInteger(11):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) );
+	    case (INT)__mkSmallInteger(10):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) );
+	    case (INT)__mkSmallInteger(9):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8, a9) );
+	    case (INT)__mkSmallInteger(8):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7, a8) );
+	    case (INT)__mkSmallInteger(7):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6, a7) );
+	    case (INT)__mkSmallInteger(6):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4, a5, a6) );
+	    case (INT)__mkSmallInteger(5):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4, a5) );
+	    case (INT)__mkSmallInteger(4):
+		RETURN ( (*thecode)(home, a1, a2, a3, a4) );
+	    case (INT)__mkSmallInteger(3):
+		RETURN ( (*thecode)(home, a1, a2, a3) );
+	    case (INT)__mkSmallInteger(2):
+		RETURN ( (*thecode)(home, a1, a2) );
+	    case (INT)__mkSmallInteger(1):
+		RETURN ( (*thecode)(home, a1) );
+	    case (INT)__mkSmallInteger(0):
+		RETURN ( (*thecode)(home) );
+		break;
+	}
     }
 #endif
 
 #ifdef NEW_BLOCK_CALL
     if (thecode != (OBJFUNC)nil) {
-        RETURN ( (*thecode)(self, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) );
+	RETURN ( (*thecode)(self, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) );
     }
 # ifdef PASS_ARG_POINTER
     RETURN ( __interpret(self, __intVal(nA), nil, nil, nil, nil, &a1) );
@@ -2052,15 +2091,15 @@
      the above code only supports up-to 15 arguments
     "
     ^ ArgumentError
-        raiseRequestWith:self
-        errorString:'only blocks with up-to 15 arguments supported'
+	raiseRequestWith:self
+	errorString:'only blocks with up-to 15 arguments supported'
 ! !
 
 !Block methodsFor:'exception handling'!
 
 on:aSignalOrSignalSetOrException do:exceptionBlock
     "added for ANSI compatibility; evaluate the receiver,
-     handling aSignalOrSignalSetOrException. 
+     handling aSignalOrSignalSetOrException.
      The 2nd argument, exceptionBlock is evaluated
      if the signal is raised during evaluation."
 
@@ -2072,15 +2111,15 @@
 
     "
      [
-        1 foo
+	1 foo
      ] on:MessageNotUnderstood do:[:ex | self halt]
 
      [
-        1 foo
+	1 foo
      ] on:(MessageNotUnderstood , AbortOperationRequest) do:[:ex | self halt]
 
      [
-        1 foo
+	1 foo
      ] on:SignalSet anySignal do:[:ex| 2 bar. self halt]
     "
 
@@ -2089,7 +2128,7 @@
 
 on:aSignalOrSignalSetOrException do:exceptionBlock ensure:ensureBlock
     "added for ANSI compatibility; evaluate the receiver,
-     handling aSignalOrSignalSetOrException. 
+     handling aSignalOrSignalSetOrException.
      The 2nd argument, exceptionBlock is evaluated
      if the signal is raised during evaluation.
      The 3rd argument, ensureBlock is evaluated in any case - even if the activity
@@ -2111,8 +2150,8 @@
 
      e := 0.
      [
-        1 foo
-     ] on:MessageNotUnderstood 
+	1 foo
+     ] on:MessageNotUnderstood
      do:[:ex | self halt]
      ensure:[ e := 1 ].
      self assert:(e == 1).
@@ -2123,8 +2162,8 @@
 
      e := 0.
      [
-        1 negated
-     ] on:MessageNotUnderstood 
+	1 negated
+     ] on:MessageNotUnderstood
      do:[:ex | self halt]
      ensure:[ e := 1 ].
      self assert:(e == 1).
@@ -2133,7 +2172,7 @@
 
 on:anExceptionHandler do:exceptionBlock on:anExceptionHandler2 do:anExceptionBlock2
     "added for ANSI compatibility; evaluate the receiver,
-     handling aSignalOrSignalSetOrException. 
+     handling aSignalOrSignalSetOrException.
      The 2nd argument, exceptionBlock is evaluated
      if the signal is raised during evaluation."
 
@@ -2145,13 +2184,13 @@
 
     "
      [
-        1 foo
-     ] on:MessageNotUnderstood do:[:ex | self halt:'Got MessageNotUnderstood'] 
+	1 foo
+     ] on:MessageNotUnderstood do:[:ex | self halt:'Got MessageNotUnderstood']
        on:Error do:[:ex| self halt:'Got Error']
 
      [
-        1 // 0
-     ] on:MessageNotUnderstood do:[:ex | self halt:'Got MessageNotUnderstood'] 
+	1 // 0
+     ] on:MessageNotUnderstood do:[:ex | self halt:'Got MessageNotUnderstood']
        on:Error do:[:ex| self halt:'Got Error']
     "
 
@@ -2180,22 +2219,22 @@
 
     "
      [
-        1 to:15 do:[:round |
-            Transcript showCR:round.
-            Delay waitForMilliseconds:20.
-        ].
-        true
-     ] valueWithTimeout:(TimeDuration seconds:1)      
+	1 to:15 do:[:round |
+	    Transcript showCR:round.
+	    Delay waitForMilliseconds:20.
+	].
+	true
+     ] valueWithTimeout:(TimeDuration seconds:1)
     "
 
     "
      [
-        1 to:100 do:[:round |
-            Transcript showCR:round.
-            Delay waitForMilliseconds:20.
-        ].
-        true
-     ] valueWithTimeout:(TimeDuration seconds:1)                  
+	1 to:100 do:[:round |
+	    Transcript showCR:round.
+	    Delay waitForMilliseconds:20.
+	].
+	true
+     ] valueWithTimeout:(TimeDuration seconds:1)
     "
 !
 
@@ -2210,47 +2249,47 @@
     done := false.
     me := Processor activeProcess.
 
-    showStopper := 
-        [ 
-            done ifFalse:[ 
-                me interruptWith:[
-                    (Processor activeProcess state ~~ #debug) ifTrue:[
-                        done ifFalse:[ TimeoutNotification raiseRequest ]
-                    ]
-                ] 
-            ]
-        ].
+    showStopper :=
+	[
+	    done ifFalse:[
+		me interruptWith:[
+		    (Processor activeProcess state ~~ #debug) ifTrue:[
+			done ifFalse:[ TimeoutNotification raiseRequest ]
+		    ]
+		]
+	    ]
+	].
 
     TimeoutNotification handle:[:ex |
-        inError ifTrue:[
-            ex proceed
-        ].
-        retVal := exceptionBlock value.
+	inError ifTrue:[
+	    ex proceed
+	].
+	retVal := exceptionBlock value.
     ] do:[
-        NoHandlerError handle:[:ex |
-            inError := true.
-            ex reject.
-        ] do:[
-            [
-                Processor 
-                    addTimedBlock:showStopper 
-                    for:me 
-                    afterMilliseconds:aTimeLimit.
-
-                retVal := self value.
-                done := true.
-            ] ensure:[ 
-                Processor removeTimedBlock:showStopper 
-            ].
-        ]
+	NoHandlerError handle:[:ex |
+	    inError := true.
+	    ex reject.
+	] do:[
+	    [
+		Processor
+		    addTimedBlock:showStopper
+		    for:me
+		    afterMilliseconds:aTimeLimit.
+
+		retVal := self value.
+		done := true.
+	    ] ensure:[
+		Processor removeTimedBlock:showStopper
+	    ].
+	]
     ].
     ^ retVal
 
     "
      [
-        Delay waitForSeconds:5.
-        true
-     ] valueWithWatchDog:[false] afterMilliseconds:2000      
+	Delay waitForSeconds:5.
+	true
+     ] valueWithWatchDog:[false] afterMilliseconds:2000
     "
 
     "Modified: / 21-05-2010 / 12:19:57 / sr"
@@ -2263,53 +2302,53 @@
     "answer the exceptionHandler (the Error or signal) for anException from aContext."
 
     aContext selector == #on:do:on:do: ifTrue:[
-        |exceptionCreator exceptionHandlerInContext|
-
-        exceptionCreator := anException creator.
-        exceptionHandlerInContext := aContext argAt:1.
-        exceptionHandlerInContext isExceptionHandler ifFalse:[
-            exceptionHandlerInContext isNil ifTrue:[
-                'Block [warning]: nil ExceptionHandler in on:do:on:do:-context' errorPrintCR.
-            ] ifFalse:[
-                (exceptionHandlerInContext isBehavior 
-                and:[exceptionHandlerInContext isLoaded not]) ifTrue:[
-                    "If the exception class is still autoloaded,
-                     it does not accept our exception. Raising the exception would load the class"
-                    ^ nil
-                ] ifFalse:[
-                    'Block [warning]: non-ExceptionHandler in on:do:on:do:-context' errorPrintCR.
-                ]
-            ].
-            aContext fullPrintString errorPrintCR.
-            self breakPoint:#cg.
-            ^ nil.
-        ].
-        (exceptionHandlerInContext accepts:exceptionCreator) ifTrue:[
-            ^ exceptionHandlerInContext.
-        ].
-
-        exceptionHandlerInContext := aContext argAt:3.
-        exceptionHandlerInContext isExceptionHandler ifFalse:[
-            exceptionHandlerInContext isNil ifTrue:[
-                'Block [warning]: nil ExceptionHandler in on:do:on:do:-context' errorPrintCR.
-            ] ifFalse:[
-                (exceptionHandlerInContext isBehavior 
-                and:[exceptionHandlerInContext isLoaded not]) ifTrue:[
-                    "If the exception class is still autoloaded,
-                     it does not accept our exception. Raising the exception would load the class"
-                    ^ nil
-                ] ifFalse:[
-                    'Block [warning]: non-ExceptionHandler in on:do:on:do:-context' errorPrintCR.
-                ]
-            ].
-            aContext fullPrintString errorPrintCR.
-            self breakPoint:#cg.
-            ^ nil.
-        ].
-        (exceptionHandlerInContext accepts:exceptionCreator) ifTrue:[
-            ^ exceptionHandlerInContext.
-        ].
-        ^ nil.
+	|exceptionCreator exceptionHandlerInContext|
+
+	exceptionCreator := anException creator.
+	exceptionHandlerInContext := aContext argAt:1.
+	exceptionHandlerInContext isExceptionHandler ifFalse:[
+	    exceptionHandlerInContext isNil ifTrue:[
+		'Block [warning]: nil ExceptionHandler in on:do:on:do:-context' errorPrintCR.
+	    ] ifFalse:[
+		(exceptionHandlerInContext isBehavior
+		and:[exceptionHandlerInContext isLoaded not]) ifTrue:[
+		    "If the exception class is still autoloaded,
+		     it does not accept our exception. Raising the exception would load the class"
+		    ^ nil
+		] ifFalse:[
+		    'Block [warning]: non-ExceptionHandler in on:do:on:do:-context' errorPrintCR.
+		]
+	    ].
+	    aContext fullPrintString errorPrintCR.
+	    self breakPoint:#cg.
+	    ^ nil.
+	].
+	(exceptionHandlerInContext accepts:exceptionCreator) ifTrue:[
+	    ^ exceptionHandlerInContext.
+	].
+
+	exceptionHandlerInContext := aContext argAt:3.
+	exceptionHandlerInContext isExceptionHandler ifFalse:[
+	    exceptionHandlerInContext isNil ifTrue:[
+		'Block [warning]: nil ExceptionHandler in on:do:on:do:-context' errorPrintCR.
+	    ] ifFalse:[
+		(exceptionHandlerInContext isBehavior
+		and:[exceptionHandlerInContext isLoaded not]) ifTrue:[
+		    "If the exception class is still autoloaded,
+		     it does not accept our exception. Raising the exception would load the class"
+		    ^ nil
+		] ifFalse:[
+		    'Block [warning]: non-ExceptionHandler in on:do:on:do:-context' errorPrintCR.
+		]
+	    ].
+	    aContext fullPrintString errorPrintCR.
+	    self breakPoint:#cg.
+	    ^ nil.
+	].
+	(exceptionHandlerInContext accepts:exceptionCreator) ifTrue:[
+	    ^ exceptionHandlerInContext.
+	].
+	^ nil.
     ].
 
     "aContext selector must be #on:do: , #on:do:ensure: or #valueWithExceptionHandler:"
@@ -2327,73 +2366,73 @@
 
     (selector == #on:do:
     or:[ selector == #on:do:ensure: ]) ifTrue:[
-        exceptionHandlerInContext := theContext argAt:1.
-        exceptionHandlerInContext isExceptionHandler ifFalse:[
-            exceptionHandlerInContext isNil ifTrue:[
-                'Block [warning]: nil ExceptionHandler in on:do:on:do:-context' errorPrintCR.
-            ] ifFalse:[(exceptionHandlerInContext isBehavior 
-                        and:[exceptionHandlerInContext isLoaded not]) ifTrue:[
-                "If the exception class is still autoloaded,
-                 it does not accept our exception. Raising the exception would load the class"
-                ^ nil
-            ] ifFalse:[
-                'Block [warning]: non-ExceptionHandler in on:do:-context' errorPrintCR.
-            ]].
-            theContext fullPrint.
-            ^ nil.
-        ].
-        (exceptionHandlerInContext == exceptionHandler 
-         or:[exceptionHandlerInContext accepts:exceptionHandler]) ifTrue:[
-            ^ (theContext argAt:2) ? [nil].
-        ].
-        ^ nil
+	exceptionHandlerInContext := theContext argAt:1.
+	exceptionHandlerInContext isExceptionHandler ifFalse:[
+	    exceptionHandlerInContext isNil ifTrue:[
+		'Block [warning]: nil ExceptionHandler in on:do:on:do:-context' errorPrintCR.
+	    ] ifFalse:[(exceptionHandlerInContext isBehavior
+			and:[exceptionHandlerInContext isLoaded not]) ifTrue:[
+		"If the exception class is still autoloaded,
+		 it does not accept our exception. Raising the exception would load the class"
+		^ nil
+	    ] ifFalse:[
+		'Block [warning]: non-ExceptionHandler in on:do:-context' errorPrintCR.
+	    ]].
+	    theContext fullPrint.
+	    ^ nil.
+	].
+	(exceptionHandlerInContext == exceptionHandler
+	 or:[exceptionHandlerInContext accepts:exceptionHandler]) ifTrue:[
+	    ^ (theContext argAt:2) ? [nil].
+	].
+	^ nil
     ].
 
     selector == #on:do:on:do: ifTrue:[
-        exceptionHandlerInContext := theContext argAt:1.
-        exceptionHandlerInContext isExceptionHandler ifFalse:[
-            exceptionHandlerInContext isNil ifTrue:[
-                'Block [warning]: nil ExceptionHandler in on:do:on:do:-context' errorPrintCR.
-            ] ifFalse:[(exceptionHandlerInContext isBehavior 
-                        and:[exceptionHandlerInContext isLoaded not]) ifTrue:[
-                "If the exception class is still autoloaded,
-                 it does not accept our exception. Raising the exception would load the class"
-                ^ nil
-            ] ifFalse:[
-                'Block [warning]: non-ExceptionHandler in on:do:on:do:-context' errorPrintCR.
-            ]].
-            theContext fullPrint.
-            ^ nil.
-        ].
-        (exceptionHandlerInContext == exceptionHandler 
-         or:[exceptionHandlerInContext accepts:exceptionHandler]) ifTrue:[
-            ^ (theContext argAt:2) ? [nil].
-        ].
-
-        exceptionHandlerInContext := theContext argAt:3.
-        exceptionHandlerInContext isExceptionHandler ifFalse:[
-            exceptionHandlerInContext isNil ifTrue:[
-                'Block [warning]: nil ExceptionHandler in on:do:on:do:-context' errorPrintCR.
-            ] ifFalse:[(exceptionHandlerInContext isBehavior 
-                        and:[exceptionHandlerInContext isLoaded not]) ifTrue:[
-                "If the exception class is still autoloaded,
-                 it does not accept our exception. Raising the exception would load the class"
-                ^ nil
-            ] ifFalse:[
-                'Block [warning]: non-ExceptionHandler in on:do:on:do:-context' errorPrintCR.
-            ]].
-            theContext fullPrint.
-            ^ nil.
-        ].
-        (exceptionHandlerInContext == exceptionHandler 
-         or:[exceptionHandlerInContext accepts:exceptionHandler]) ifTrue:[
-            ^ (theContext argAt:4) ? [nil].
-        ].
-        ^ nil
+	exceptionHandlerInContext := theContext argAt:1.
+	exceptionHandlerInContext isExceptionHandler ifFalse:[
+	    exceptionHandlerInContext isNil ifTrue:[
+		'Block [warning]: nil ExceptionHandler in on:do:on:do:-context' errorPrintCR.
+	    ] ifFalse:[(exceptionHandlerInContext isBehavior
+			and:[exceptionHandlerInContext isLoaded not]) ifTrue:[
+		"If the exception class is still autoloaded,
+		 it does not accept our exception. Raising the exception would load the class"
+		^ nil
+	    ] ifFalse:[
+		'Block [warning]: non-ExceptionHandler in on:do:on:do:-context' errorPrintCR.
+	    ]].
+	    theContext fullPrint.
+	    ^ nil.
+	].
+	(exceptionHandlerInContext == exceptionHandler
+	 or:[exceptionHandlerInContext accepts:exceptionHandler]) ifTrue:[
+	    ^ (theContext argAt:2) ? [nil].
+	].
+
+	exceptionHandlerInContext := theContext argAt:3.
+	exceptionHandlerInContext isExceptionHandler ifFalse:[
+	    exceptionHandlerInContext isNil ifTrue:[
+		'Block [warning]: nil ExceptionHandler in on:do:on:do:-context' errorPrintCR.
+	    ] ifFalse:[(exceptionHandlerInContext isBehavior
+			and:[exceptionHandlerInContext isLoaded not]) ifTrue:[
+		"If the exception class is still autoloaded,
+		 it does not accept our exception. Raising the exception would load the class"
+		^ nil
+	    ] ifFalse:[
+		'Block [warning]: non-ExceptionHandler in on:do:on:do:-context' errorPrintCR.
+	    ]].
+	    theContext fullPrint.
+	    ^ nil.
+	].
+	(exceptionHandlerInContext == exceptionHandler
+	 or:[exceptionHandlerInContext accepts:exceptionHandler]) ifTrue:[
+	    ^ (theContext argAt:4) ? [nil].
+	].
+	^ nil
     ].
 
     selector == #valueWithExceptionHandler: ifTrue:[
-        ^ (theContext argAt:1) handlerForSignal:exceptionHandler.
+	^ (theContext argAt:1) handlerForSignal:exceptionHandler.
     ].
 
     "/ mhmh - should not arrive here
@@ -2456,7 +2495,7 @@
 !
 
 loop
-    "repeat the receiver forever 
+    "repeat the receiver forever
      (the receiver block should contain a return somewhere).
      The implementation below was inspired by a corresponding Self method."
 
@@ -2468,9 +2507,9 @@
 
      n := 1.
      [
-        n printCR.
-        n >= 10 ifTrue:[^ nil].
-        n := n + 1
+	n printCR.
+	n >= 10 ifTrue:[^ nil].
+	n := n + 1
      ] loop
     "
 
@@ -2478,8 +2517,8 @@
 !
 
 loopWithExit
-    "the receiver must be a block of one argument.  It is evaluated in a loop forever, 
-     and is passed a block, which, if sent a value:-message, will exit the receiver block, 
+    "the receiver must be a block of one argument.  It is evaluated in a loop forever,
+     and is passed a block, which, if sent a value:-message, will exit the receiver block,
      returning the parameter of the value:-message. Used for loops with exit in the middle.
      Inspired by a corresponding Self method."
 
@@ -2492,9 +2531,9 @@
      |i|
      i := 1.
      [:exit |
-        Transcript showCR:i.
-        i == 5 ifTrue:[exit value:'thats it'].
-        i := i + 1
+	Transcript showCR:i.
+	i == 5 ifTrue:[exit value:'thats it'].
+	i := i + 1
      ] loopWithExit
     "
 !
@@ -2510,13 +2549,13 @@
 !
 
 repeat:n
-    "repeat the receiver n times - similar to timesRepeat, but optionally passes the 
+    "repeat the receiver n times - similar to timesRepeat, but optionally passes the
      loop counter as argument"
 
     self numArgs == 0 ifTrue:[
-        n timesRepeat:self
+	n timesRepeat:self
     ] ifFalse:[
-        1 to:n do:self
+	1 to:n do:self
     ].
 
     "
@@ -2527,7 +2566,7 @@
 
 valueWithExit
     "the receiver must be a block of one argument.  It is evaluated, and is passed a block,
-     which, if sent a value:-message, will exit the receiver block, returning the parameter of the 
+     which, if sent a value:-message, will exit the receiver block, returning the parameter of the
      value:-message. Used for premature returns to the caller.
      Taken from a manchester goody (a similar construct also appears in Self)."
 
@@ -2558,9 +2597,9 @@
 
     "
      [:restart |
-        (self confirm:'try again ?') ifTrue:[
-            restart value.
-        ]
+	(self confirm:'try again ?') ifTrue:[
+	    restart value.
+	]
      ] valueWithRestart
     "
 
@@ -2579,18 +2618,18 @@
 
     "
      [:restart :exit |
-        |i|
-
-        i := 0.
-        [
-            i := i + 1.
-            (self confirm:('i is ',i printString,'; start over ?')) ifTrue:[
-                restart value.
-            ].
-            (self confirm:'enough ?') ifTrue:[
-                exit value:nil.
-            ].
-        ] loop
+	|i|
+
+	i := 0.
+	[
+	    i := i + 1.
+	    (self confirm:('i is ',i printString,'; start over ?')) ifTrue:[
+		restart value.
+	    ].
+	    (self confirm:'enough ?') ifTrue:[
+		exit value:nil.
+	    ].
+	] loop
      ] valueWithRestartAndExit
     "
 !
@@ -2613,7 +2652,7 @@
 
 whileFalse:aBlock
     "evaluate the argument, aBlock while the receiver evaluates to false.
-     - usually open coded by compilers, but needed here for #perform 
+     - usually open coded by compilers, but needed here for #perform
        and expression evaluation."
 
     "this implementation is for purists ... :-)"
@@ -2627,8 +2666,8 @@
 
      n := 1.
      [n > 10] whileFalse:[
-        n printCR.
-        n := n + 1
+	n printCR.
+	n := n + 1
      ]
     "
 !
@@ -2651,7 +2690,7 @@
 
 whileTrue:aBlock
     "evaluate the argument, aBlock while the receiver evaluates to true.
-     - usually open coded by compilers, but needed here for #perform 
+     - usually open coded by compilers, but needed here for #perform
        and expression evaluation."
 
     "this implementation is for purists ... :-)"
@@ -2665,8 +2704,8 @@
 
      n := 1.
      [n <= 10] whileTrue:[
-        n printCR.
-        n := n + 1
+	n printCR.
+	n := n + 1
      ]
     "
 ! !
@@ -2674,52 +2713,52 @@
 !Block methodsFor:'parallel evaluation'!
 
 futureValue
-    "Fork a synchronised evaluation of myself. 
+    "Fork a synchronised evaluation of myself.
      Starts the evaluation in parallel now, but synchronizes
      any access to wait until the result is computed."
 
     ^ Future new block:self
 !
 
-futureValue:aValue 
-    "Fork a synchronised evaluation of myself. 
+futureValue:aValue
+    "Fork a synchronised evaluation of myself.
      Starts the evaluation in parallel now, but synchronizes
      any access to wait until the result is computed."
-    
+
     ^ Future new block:self value:aValue
 !
 
-futureValue:aValue value:anotherValue 
-    "Fork a synchronised evaluation of myself. 
+futureValue:aValue value:anotherValue
+    "Fork a synchronised evaluation of myself.
      Starts the evaluation in parallel now, but synchronizes
      any access to wait until the result is computed."
-    
-    ^ Future new 
-        block:self
-        value:aValue
-        value:anotherValue
+
+    ^ Future new
+	block:self
+	value:aValue
+	value:anotherValue
 !
 
-futureValue:aValue value:anotherValue value:bValue 
-    "Fork a synchronised evaluation of myself. 
+futureValue:aValue value:anotherValue value:bValue
+    "Fork a synchronised evaluation of myself.
      Starts the evaluation in parallel now, but synchronizes
      any access to wait until the result is computed."
-    
-    ^ Future new 
-        block:self
-        value:aValue
-        value:anotherValue
-        value:bValue
+
+    ^ Future new
+	block:self
+	value:aValue
+	value:anotherValue
+	value:bValue
 !
 
-futureValueWithArguments:anArray 
-    "Fork a synchronised evaluation of myself. 
+futureValueWithArguments:anArray
+    "Fork a synchronised evaluation of myself.
      Starts the evaluation in parallel now, but synchronizes
      any access to wait until the result is computed."
-    
-    ^ Future new 
-        block:self 
-        valueWithArguments:anArray
+
+    ^ Future new
+	block:self
+	valueWithArguments:anArray
 
     "Modified (format): / 04-10-2011 / 14:55:40 / cg"
 !
@@ -2727,49 +2766,49 @@
 lazyValue
     "Fork a synchronised evaluation of myself. Only starts
      the evaluation when the result is requested."
-    
+
     ^ Lazy new block:self
 !
 
-lazyValue:aValue 
+lazyValue:aValue
     "Fork a synchronised evaluation of myself. Only starts
      the evaluation when the result is requested."
-    
+
     ^ Lazy new block:self value:aValue
 !
 
-lazyValue:aValue value:anotherValue 
+lazyValue:aValue value:anotherValue
     "Fork a synchronised evaluation of myself. Only starts
      the evaluation when the result is requested."
-    
-    ^ Lazy new 
-        block:self
-        value:aValue
-        value:anotherValue
+
+    ^ Lazy new
+	block:self
+	value:aValue
+	value:anotherValue
 !
 
-lazyValue:aValue value:anotherValue value:bValue 
+lazyValue:aValue value:anotherValue value:bValue
     "Fork a synchronised evaluation of myself. Only starts
      the evaluation when the result is requested."
-    
-    ^ Lazy new 
-        block:self
-        value:aValue
-        value:anotherValue
-        value:bValue
+
+    ^ Lazy new
+	block:self
+	value:aValue
+	value:anotherValue
+	value:bValue
 !
 
-lazyValueWithArguments:anArray 
+lazyValueWithArguments:anArray
     "Fork a synchronised evaluation of myself. Only starts
      the evaluation when the result is requested."
-    
+
     ^ Lazy new block:self valueWithArguments:anArray
 ! !
 
 !Block methodsFor:'printing & storing'!
 
 printBlockBracketsOn:aStream
-    aStream nextPutAll:'[]'. 
+    aStream nextPutAll:'[]'.
 !
 
 printOn:aStream
@@ -2780,18 +2819,18 @@
     "cheap blocks have no home context, but a method instead"
 
     (home isNil or:[home isContext not]) ifTrue:[
-        aStream nextPutAll:'[] in '.
-
-        "
-         currently, some cheap blocks don't know where they have been created
-        "
-        aStream nextPutAll:' ??? (optimized)'.
-        ^ self
+	aStream nextPutAll:'[] in '.
+
+	"
+	 currently, some cheap blocks don't know where they have been created
+	"
+	aStream nextPutAll:' ??? (optimized)'.
+	^ self
     ].
 
     "a full blown block (with home, but without method)"
     self printBlockBracketsOn:aStream.
-    aStream nextPutAll:' in '. 
+    aStream nextPutAll:' in '.
     h := self methodHome.
     sel := h selector.
 "/ old:
@@ -2800,9 +2839,9 @@
 "/    (h searchClass whichClassImplements:sel) name printOn:aStream.
     methodClass := h methodClass.
     methodClass isNil ifTrue:[
-        'UnboundMethod' printOn:aStream.
+	'UnboundMethod' printOn:aStream.
     ] ifFalse:[
-        methodClass name printOn:aStream.
+	methodClass name printOn:aStream.
     ].
     aStream nextPutAll:'>>'.
     sel printOn:aStream.
@@ -2815,7 +2854,7 @@
 "/      aStream space.
 "/      (homeClass selectorForMethod:home) printOn:aStream
 "/    ] ifFalse:[
-"/      aStream nextPutAll:' ???' 
+"/      aStream nextPutAll:' ???'
 "/    ]
 "/
 !
@@ -2846,13 +2885,13 @@
     "Created: 13.4.1997 / 00:00:57 / cg"
 !
 
-initialPC 
+initialPC
     "return the initial pc for evaluation."
 
     ^ initialPC
 !
 
-initialPC:initial 
+initialPC:initial
     "set the initial pc for evaluation.
      DANGER ALERT: this interface is for the compiler only."
 
@@ -2874,27 +2913,27 @@
     home := aContext
 !
 
-source 
+source
     |m|
 
     sourcePos isString ifTrue:[    "/ misuses the sourcePosition slot
-        ^ sourcePos
+	^ sourcePos
     ].
     m := self method.
     m notNil ifTrue:[
-        ^ m source
+	^ m source
     ].
     ^ nil
 !
 
-source:aString 
+source:aString
     "set the source - only to be used, if the block is not contained in a method.
      This interface is for knowledgable users only."
 
     sourcePos := aString  "/ misuse the sourcePosition slot
 !
 
-sourcePosition:position 
+sourcePosition:position
     "set the position of the source within my method.
      This interface is for the compiler only."
 
@@ -2948,12 +2987,12 @@
 !
 
 forkNamed:aString
-    "create a new process, give it a name and let it start 
+    "create a new process, give it a name and let it start
      executing the receiver at the current priority."
 
     |newProcess|
 
-    newProcess := self newProcess. 
+    newProcess := self newProcess.
     newProcess name:aString.
     newProcess resume.
     ^ newProcess.
@@ -3042,10 +3081,10 @@
 
     selector := aContext selector.
     selector == #'value:onUnwindDo:' ifTrue:[
-        ^ aContext argAt:2
+	^ aContext argAt:2
     ].
     selector == #'on:do:ensure:' ifTrue:[
-        ^ aContext argAt:3
+	^ aContext argAt:3
     ].
 
     "/ for now, only #valueNowOrOnUnwindDo:
@@ -3191,11 +3230,11 @@
 !Block class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.210 2015-03-27 11:23:34 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.211 2015-04-21 19:40:04 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.210 2015-03-27 11:23:34 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.211 2015-04-21 19:40:04 cg Exp $'
 ! !