Latest vw5i.4c engines
As of March 2004, these 5i.4c engines are the most up-to-date engines for VisualWorks 5i.x images. These engines are compatible with all prior releases of VisualWorks 5i with the following exceptions
- The 5i.4 engine adds an instance variable to ObjectMemory used to inform the image of how fast the engine can scan memory. Images prior to 5i.4 that add instance variables to ObjectMemory or subclasses there-of will have to add the enumerationCallsPerMillisecond instance variable immediately after bytesPerFTE. In images that don't add instance variables to or subclass ObjectMemory nothing needs to be done.
- On Windows the middle and right mouse buttons were changed in 5i.2 so using the 5i.4c engine with a 5i.0 or 5i.1 image will result in swapped mouse buttons unless the image is patched.
N.B. The vw5i.4a engines were released in error. They are broken and should *not* to be used as they contain a serious memory management bug. Please move to either 5i.4c, 5i.4b or 5i.4 engines.
Bugs Fixed over 5i.4b
These engines fix a few bugs over 5i.4b engines: - on all platforms several primitives have had incorrect argument counts fixed that could have caused crashes when primitives failed (but only when they failed)
- on all platforms the oldSpace allocator now uses a sane approach to calculating the free-list probe count which should improve image-level MemoryPolicy behaviour.
- on all platforms a bug was fixed that caused a crash when using the TimeProfiler due to incorrect stack management in primitive Context>>#terminateTo:.
- on all platforms a bug was fixed that causes a crash in the debug and assert engines when using the check-mark mechanism to verify the incremental collector when running with -o11s (agressive assert checking).
- on IA-32 platforms (Windows and Linux86) these engines fix a performance problem with floating-point primitives on dual Xeon processors. Floating-point performance is about 4.8x faster.
- on Unix platforms signal handlers now use significantly less stack space.
- on the SGI platform "dirty sends" have been enabled, improving Smalltalk execution performance by about 5%.
- on the Windows platform a bug was fixed that caused attempts to open files larger than 4 Gigabytes in read-append mode to not seek to the end.
- on the AIX platform the translated floating-point primitives have been implemented providing almost a factor of 2 improvement in floating-point performance.
Bugs fixed in 5i.4b and 5i.4c over 5i.4
- on all platforms a bug was fixed in the \\ primitive.
- on all platforms a bug was fixed in context management during non-local returns that would occasionally cause crashes.
- on all platforms a bug was fixed in the code generator that caused | i | i := 2. ^3 between: i and: (i := 4) to return false.
- on all platforms a bug was fixed whereby doesNotUnderstand: method lookups were not being flushed when requested.
- on all platforms a bug was fixed in the translated floating-point primitives whereby aFloat op anInteger would return different results to aFloat op (anInteger asFloat)
- on all platforms a bug was fixed that acused the snapshot primitive to incorrectly save the free list, casuing a crash on image load.
- on all platforms a bug was fixed that would cause a remembered-table overflow on loading a perm-saved image, causing the image load to abort.
- on all platforms a bug was fixed whereby code referencing new literals might not be correctly scavenged, causing a crash.
- on all platforms a bug was fixed whereby shrinking oldSpace could corrupt the list of oldSpace segments, causing a crash.
- on all platforms long-long access primitives were added, improving the performance of [unsigned]LongLongAt:[put:]
- on Unix platforms a bug was fixed whereby attempts to list the contents of directories mounted over nfs would return an invalid list of files.
- on X11 platforms a bug was fixed with fetching and storing the text selection.
- on Windows platforms the priority of the IO poll thread was corrected
- on Windows platforms bugs with zlib decompression of images was fixed.
- on Windows platforms bugs with 64-bit file access were fixed.
- on Windows platforms bugs with file locking were fixed.
Download Instructions
Click on the following links to download the engine archives. Extract the archives under $(VISUALWORKS)/bin - IBM AIX 4.x (ftp, http)
- HP HPUX 11 (ftp, http)
- Linux x86 (ftp, http)
- Apple PowerPC MacOS 9.x (ftp .sit, http .sit, ftp .sit.hqx, http .sit.hqx) - not ready yet
- SGI IRIX (ftp, http)
- Sun Solaris 2.x, 3.x (ftp, http)
- Windows NT/2k/XP/95/98/Millenium (but not Windows 3.1 or CE) (ftp, http)
Notes
While 5i.4 engines are backward-compatible with all previous 5i images, 5i.4 images are not backward compatible with pre-5i.4 engines. This also affects pre-5i.4 images saved on 5i.4 engines. This is because of performance improvements in the garbage collector which have changed the snapshot file format. When a 5i.4 engine is used to save a pre-5i.4 image the snapshot's format is that of a 5i.4 snapshot. So if you wish to continue using an image on both 5i.4 and an earlier engine be sure to use a copy of that image on 5i.4.