Updated: Apr 2, 1998.
Squeak (also SmalltalkAgents) is very sensitive to keyborad script on your machine. If you feel so funny at showing popup menu or selecting by no mouse-dragging, check your keybord script and caps lock key.
Squeak's invocation of User Interrupt is command-.(period) (same as Hypertalk, Supertalk), not control-C. On Windows95, this key combination is alt-.(period).
Squeak is a work in progress based on Smalltalk-80, with which it is still reasonably compatible. -- from "Welcome To..." window of Squeak
Squeak's look & feel is traditional Smalltalk-80 interface. And some people say "I hate the interface of Squeak". If you the one, try this ONE! This image contains "Windoze 3D borders and title bar" and "SSAScrollBar and VIVA LA JUNTA!!". They'll be found at goodies directory on Squeak site.
You need no more file except this latest version of Windoze looks at ftp://st.cs.uiuc.edu/Smalltalk/Squeak/Goodies/Windoze-1-3-4.cs by Mr. Sam S. Adams (with help from Mr. Andreas Raab and Mr. Stephen Pope).
traditional | alternative |
---|---|
NotifyStringHolderController>>proceed problem is fixed!
I've heard someone said:
aftrer installing,But I don't know it's better or not.Text initialize. Smalltalk recompileAllFrom: 'A'.you should do it better.
Using 1.23 or 1.3 (on MacOS or Windows95), I did:
Walkback says that
UndefinedObject(Object)>>doesNotUnderstand: StandardFileStream(PositionableStream)>>skipSeparators StandardFileStream(PositionableStream)>>nextChunk RemoteString>>string CompiledMethod>>getSourceFromFile
After adding category and class, please evaluate "Smalltalk classNames". If there is no class of your own, it will be disappeared or got lost after condenseChanges.
Adding category and class does not update "ClassNameCache." In this occasion, you must update "ClassNameCache" manually.
Smalltalk flushClassNameCache.
If you want to condense your changes file, do them below:
Smalltalk flushClassNameCache. Smalltalk condenseChanges. Smalltalk snapshot: true andQuit: false. "Smalltalk snapshot: true andQuit: true."
Mr. John Maloney's Squeak 1.24SK (based on Squeak 1.23) is OK with no trouble on condensing.
and see below.
I've asked above question to The Smalltalk GURU. and Mr. Dan Ingalls said:
It is a bug. And it is sure to be fixed in the forthcoming release 1.31.
The Fix is:
!Metaclass methodsFor: 'class hierarchy' stamp: 'di 2/1/98 09:55'! name: newName inEnvironment: environ subclassOf: sup instanceVariableNames: instVarString variable: v words: w pointers: p classVariableNames: classVarString poolDictionaries: poolString category: categoryName comment: commentString changed: changed(snipped)
(wasPresent _ environ includesKey: newName) ifTrue: [oldClass _ environ at: newName. (oldClass isKindOf: Behavior) ifFalse: [self error: newName , ' already exists!! Proceed will store over it'. wasPresent _ false. oldClass _ self newNamed: newName]] ifFalse: [oldClass _ self newNamed: newName. Smalltalk flushClassNameCache "addition here"].or classNameCacheFix.1Febr1002.
Fixed classNameCache bug is fixed at Version 1.31. 10000 timesRepeat: [We thank you Dan!].
Try to press F2 Key! (or System Menu >> VM Preferences) If you select "Run full screen", and Squeak runs on that sounds like SqueakOS.
Remember F2 Key. When you lost the key, edit squeak.ini at same directory of VM.
The current Win32 VM (v1.31) contains a serious bug. It can happen that Squeak mysteriously crashes if you try to resize the main window.
Trying to run STones80 benchmark but I can't fileIn the source.
The Walkback says: <<Cannot compile - stack including temps is too deep>> CompileMethod(Object)>>error: CompileMethod>>needsFrameSize: MethodNode>>generate: SlopstoneBenchmark class(ClassDescription)>>compile:notifying:trailer:ifFail:elseSetSalectorAnd Node: SlopstoneBenchmark class(ClassDescription)>>compile:classified:withStamp:notifying:
Mr. Tim Olson taught me,
The problem here is that Squeak contexts only come in two sizes:
smallFrames cover 94% of all methods, and including largeFrames gets you to 99.975%, but it turns out that the number of temporaries plus the max stack depth in the "execute" method in the STones80 benchmark is just a bit larger than a largeFrame allows.
- smallFrame: 12 slots
- largeFrame: 32 slots
Since Squeak allocates a unique temp for each temp name, you might try modifying the code for that method to "reuse" temp names, where possible, instead of using a unique temp name.
Thank you Mr. Tim Olson!
But unfortunately I'm in another trouble.
Thanx again to Mr. Tim Olson! The "another trouble" is clear by advice from him. He taught to me that
This is due to some inexactness in the Float>>absPrintOn:base:digitCount: method. -- see Float>>testPrintOn:base: in the 1.31 image
And another trouble on SmopstoneBenchmark.
Attempt to evaluate a block that is already being evaluated. BlockContext(Object)>>error: BlockContext>>valueWithArguments: BlockContext>>value: [] in SmopstoneBenchmark>>primesUpTo: SmopstoneBenchmark>>primesUpTo:
Mr. Tim Olson taught me again,
The implementation of Blocks in Squeak currently does not allow recursive invocation of blocks, because of the way they are implemented (they are not full closures, yet). Ian's Jitter uses a Dynamic Context Cache which assigns each block invocation its own context local to the VM, so basic recursive blocks will run, but do not yet fully interact correctly with things that examine contexts, like the Debugger.
If you want to run the code under the non-jitter VM, you will have to replace the recursive block with a recursive method.
Mr. Tim Rowledge taught me,
That's because you are doing a recursion on a blcok - which the conventional VM cannot do (cf. blue book) whereas the jitter can as it has the framework in place for working from Closures instead of blocks. I'm sure Ian could add much more detail if you need it.
If you need to run with the conventional vm, rewrite the code to avoid the block recursion. Of course, since it is intended to test the efficiency of recursively calling a block, that would be fairly pointless !
So I re-wrote and modified the original source, but 2 test of SmopstoneBenchmark benchmark is intended to test the efficiency of recursively calling a block, that is not supported by non Jitter VM. If you run this test on non Jitter VM, so the result would be fairly pointless. PublicDomain-Benchmarks.zip (12KB). Tested on version 1.31 only.