Fixed inaccuracy in the type system intro in tour: private instance methods are visible from class methods and vice-versa, when using <Instance> and <Self class> types.
Corrected longstanding documentation error on the history page that failed to credit Dan Ingalls for his work on the first attempt at a static type system for Smalltalk.
(Dave Griswold) This release consists of just a couple of things that came up shortly after the first public release to address some issues people were having:
A Benchmarking Guide has been added to the documentation to help people avoid some very common benchmarking traps.
A bug is fixed in Dictionary>>at:put: that caused it to allocate an Association even when an entry already exists for the key. This was fixed a long time ago, but apparently the fix got lost. This speeds up replacing dictionary values by about 32%. It ought to be even faster- the code generator must not be producing good code for this for some reason.
Support for file-ins in basic Squeak format is now supported. This is just for simple classes and methods, and has one big caveat: the class must not have a class comment. Primarily useful for moving benchmarks around. Classes in this format can be filed into VisualWorks, too, if you remove the 'stamp:' keywords on the method chunk headers.
This release consists of contributions from
David Griswold - lots of different kind of cleanup work and enhancements:
Made it work on Windows XP. Command line arg handling was wrong, and lots of files were read-only that shouldn't have been. DON'T run in a compatibility mode, unless you are filing in my 1.1 deltas to 1.0, in which case you MUST:
First start the 1.0 system in Windows 95 compatibility mode.
File in my 1.1 code, and save the system
Exit, and turn off compatibility mode
make strongtalk.bst.bak writable (for some reason, compatibility mode cause it to be read-only)
Tons of library changes to get the core libraries back to (or closer to) being fully typesafe. More to do, especially the Stream and Visual hierarchies, which I had done a lot of work to clean up a long time ago but lost the changes, so I am too depressed about it to tackle it again right now. But at least the Collection, Number and many other critical "Blue Book" areas are quite close to being typesafe now (most of the remaining problems are bugs in the typechecker or in other people's code). I will do more on this.
Fixed an bug in the typechecker error display code caused by a postincrement that should have been a preincrement. This needs more looking at.
HTML Browser enhancements to make the System Tour work, including making it possible to view html documents edited (in some ways) using Outlook Express.
Wrote the System Tour and reorganized and extended the rest of the documentation.
Added filtering to the hierarchy browser. The API can do hierarchy filtering with an arbitrary predicate, and the UI has convenience interfaces for filtering on common library subsets, class comment substrings, or on subclasses of a class (which lets you nicely view a class' subhierarchy and its superclass chain at the same time), or combinations built up using AND operators. Filtering is used by the system tour to make it easy to view all the classes in a subsystem at once, regardless of where they are. Look on the context menu for subclasses as well as on the pulldown menus (they are different). Classes that don't match but that need to be shown because they have matching subclasses can be distinguished by a different font.
Added support for a source code save log, which makes rapid development a whole lot easier. To use it, create an empty text file in the source subdirectory called strongtalkSave.log, and it will accumulate saved source code changes, without any changes that haven't been saved. Not as good as projects, but a whole lot better than what we had before.
The system now keeps track of whether you have made source changes or not, and prompts you intelligently to save or not when you try to exit. %Bug: Doesn't work for the rare things that aren't reflected in the change log. Why isn't everything reflected there? You can also view all unsaved source changes made during a session (See "Browse/Unsaved Changes" in Launcher menu).
Changed the Transcript so it can show DoIt buttons for system restore after a session crash
Added mouse scrollwheel support
"implementers", "senders" and "messages" now open a browser directly if there is only one match.
Added Apply button to Definitions selection box, so you can quickly browse many matching classes.
Added prompt dialog for category name changes for safety.
added back the missing prims.src file (with many changes) so that primitives can be typechecked.
Ctrl-O (open definition) now only needs the cursor to be on the name of the definition in text- it will try to select the range itself.
Switched browser fonts to ones that work with ClearType technology in Windows XP. (makes fonts much higher resolution on LCD displays- try it!).
added a gross hack because the full garbage collection doesn't run automatically right now so that we don't run out of virtual memory while browsing, by running GC explicitly in the browser every time we load a page. I do it in a background process that waits 1/4 second after page loading so that it hopefully happens during think time.
When creating a new subclass in the prog. env. a browser for the new class is now automatically launched.
HTML Browser now supports <strong>. Also, headings can now contain <br>, images, links, and other phrase markup.
Quitting the system without saving changes now automatically reverts the source database, so that quitting after unsaved changes doesn't leave the source database in an inconsistent state (you are prompted to save if you want, and you can view the unsaved changes from the Browse menu if you want to save them some other way). The changes are still recorded in the change log no matter what.
Added a toolbar button to Class browers to spawn the superclass.
Ctrl-Shift-Enter is now a shortcut for accept & typecheck in TypedCodeViews.
Turned off smooth scrolling by default. This seems to reduce the frequency of the occasional hangs people have been having. You can turn it on again from the Launcher Dev menu.
TextViews now automatically resize by default. This makes the browsers work a lot cooler.
Fixed that nagging baseline alignment bug when imbedding category outliners in browser pages.
*Maybe fixed the hellish intermittent temporary hang in the system. Guessed it was some kind of deadlock on the semaphore protecting the event 'grab' stack, used by the region enter/leave managment logic, so disabled it by returning a new semaphore anytime anyone asks, and haven't had a hang since! Theoretically this opens a hole, but the monitor was only there for an obscure case that probably has never happened anyway (two processes asking for the event grab at the same time). Can try turning smooth scrolling on again now.
Gilad Bracha and the rest of the team- A copy of the new paper on mixins has been included.
Fixed: one of the typechecker error display bugs -D.G.
Fixed: Now works on Windows XP - D.G.
The new dialog boxes I added to keep track of whether source changes have been made, only keep track of things that modify the change log. Other changes (specifically creation of a new category) aren't noticed, and don't by themselves cause the quit dialog to prompt you. I need to fix this at some point, although it is rare to just modify a category without modifying any method. -D.G.
otherwise, same as 1.0
This is the original release from Sun Microsystems, Inc. Most of the work done internally at Sun to get this ready for release was done by Gilad Bracha and Robert Griesemer.
Doesn't work on Windows XP.
There are a variety of shortcomings and bugs in the typechecker, but here are some of the main ones you may encounter: