'From Squeak3.4gamma of ''7 January 2003'' [latest update: #5168] on 27 January 2003 at 8:41:47 pm'! "Change Set: PreContextEnh-ajh Date: 4 February 2003 Author: Anthony Hannan Disable a few exceptions signalled during file-in. They will be enabled again in PostContextEnh-ajh. Also redefine the Compiler now and order some key methods so the compiler will work when file-in ContextEnh-ajh. GeneralEnh-ajh must be filed-in before this. This must be filed-in before ContextEnh-ajh."! Object subclass: #Compiler instanceVariableNames: 'sourceStream requestor class context parserClass cacheDoItNode ' classVariableNames: '' poolDictionaries: '' category: 'System-Compiler'! !Compiler methodsFor: 'private' stamp: 'ajh 9/19/2002 02:20'! parserClass: aParserClass parserClass _ aParserClass. cacheDoItNode _ true. ! ! !Compiler class methodsFor: 'accessing' stamp: 'ajh 1/21/2003 12:39'! new ^ super new parserClass: self parserClass! ! !Compiler class methodsFor: 'accessing' stamp: 'ajh 1/21/2003 12:42'! old ^ self new parserClass: Parser! ! !Compiler methodsFor: 'private' stamp: 'ajh 1/21/2003 12:44'! parserClass ^ parserClass! ! !InMidstOfFileinNotification class methodsFor: 'temp' stamp: 'ajh 1/22/2003 20:56'! signal ^ false! ! !RequestAlternateSyntaxSetting class methodsFor: 'temp' stamp: 'ajh 1/22/2003 20:56'! signal ^ false! ! !String methodsFor: 'displaying' stamp: 'ajh 1/22/2003 22:11'! displayProgressAt: aPoint from: minVal to: maxVal during: workBlock "Display this string as a caption over a progress bar while workBlock is evaluated. EXAMPLE (Select next 6 lines and Do It) 'Now here''s some Real Progress' displayProgressAt: Sensor cursorPoint from: 0 to: 10 during: [:bar | 1 to: 10 do: [:x | bar value: x. (Delay forMilliseconds: 500) wait]]. HOW IT WORKS (Try this in any other language :-) Since your code (the last 2 lines in the above example) is in a block, this method gets control to display its heading before, and clean up the screen after, its execution. The key, though, is that the block is supplied with an argument, named 'bar' in the example, which will update the bar image every it is sent the message value: x, where x is in the from:to: range. " ^ Cursor wait showWhile: [ | val | val _ workBlock value: [:barValue | barValue printString displayAt: 0@0]. ScreenController new restoreDisplay. val ] " ^ProgressInitiationException display: self at: aPoint from: minVal to: maxVal during: workBlock "! ! !CompiledMethod class methodsFor: 'class initialization' stamp: 'ajh 2/3/2003 21:16'! initialize "CompiledMethod initialize" "Initialize class variables specifying the size of the temporary frame needed to run instances of me." SmallFrame _ 16. "Context range for temps+stack" LargeFrame _ 56. self classPool at: #BlockNodeCache ifAbsentPut: [nil->nil].! ! CompiledMethod initialize!