boissier@irisa.irisa.fr (franck boissiere,externes ) (08/01/89)
I am currently using the 2.3 version of Smalltalk 80 on Sun-3's and on a MacII and I plan to upgrade to the 2.4 (2.5 if available then). Can anyone tell me about significant changes made in this release, is it worth the price? Thanks in advance Franck ****** Franck BOISSIERE boissier@irisa.irisa.fr Prototyping Lab Manager boissier@ccettix.UUCP C.C.E.T.T. B.P. 59 boissier%irisa.irisa.fr@uunet.uu.net 35512 CESSON SEVIGNE CEDEX FRANCE
hmm@laura.UUCP (Hans-Martin Mosner) (08/02/89)
In article <1375@irisa.irisa.fr> boissier@irisa.irisa.fr (franck boissiere,externes ) writes: >I am currently using the 2.3 version of Smalltalk 80 on Sun-3's and on a MacII >and I plan to upgrade to the 2.4 (2.5 if available then). Can anyone tell me >about significant changes made in this release, is it worth the price? Basic differences between 2.3 and 2.4: 2.3 was rather 680x0-specific, so only image compatible between 680x0 based systems such as sun, mac etc. 2.4 is designed to be highly portable to a lot of platforms (already avaliable for sun-4, mips r2000, 80386). This alone is, in my opinion, a very big plus. 2.3 used reference counting, while 2.4 uses a generation scavenging mechanism. This has advantages and disadvantages: Overall, scavenging has a better performance, but needs a bit more free memory to run nicely, and the scavenging pauses can be annoying, though they are normally below 1/10th second. Another result of the new memory management system is that the old 16-meg limit for object storage is gone forever :-). The number of objects is not limited by OT entries anymore. 2.4 has a completely new design for operating system interaction. File, process and communication interfaces are all based on the same mechanisms. This is one of the things that I like most since it makes writing interfaces to O/S services much easier. 2.4 has a new bytecode set, together with a new compiler and new CompiledMethod structure. The compiler looks like it can be extended for language additions much easier than the old one. Actually, as Andreas Toenne says, you could use this as an example for a compiler writing course, as it is very cleanly written and easy to understand. 2.4 has new block semantics. Block parameters are local to the block, and thus blocks are reentrant and can be used as full (recursive) functions. They can also have local variables now. There is an exception mechanism which enables one to raise exceptions and handle them in some outer context, with unwind possibilities etc. So you could write a method that opens a file, calls a parsing method in a signal context and specifies that upon encountering an error, the file will be closed etc. The new debugger has a fast step operation. Stepping is done by directly executing the step instead of simulation. For debugging, this is a real blessing. I don't know how I could live without it :-) There is also a 'step to caret' operation with which you can quickly step to some position in the debugged method. As usual, some bugs and inconsistencies in the image have been fixed... I don't know how much I may say about 2.5, so I think it's better if I say nothing at all. Anyway, it looks very good... Hans-Martin -- Hans-Martin Mosner | Don't tell Borland about Smalltalk - | hmm@unido.{uucp,bitnet} | they might invent Turbo Smalltalk ! | ------------------------------------------------------------------------ Disclaimer: Turbo Smalltalk may already be a trademark of Borland...