wiki:WhatsNew-8.0.0

What's new in Smalltlk/X jv-branch 8.0.0

This is mostly runtime (VM) stabilization and cleanup release, but also contains important improvements.

STC - the Smalltalk/X AOT compiler

  • SHA1 hash is now always computed and stored in compiled class. The option -sha1 is still recognized for compatibility reasons but has no effect, stc behaves the same with and without -sha1.
  • Source code management is always detected automatically. The option -scmType: is still recognized and only valid SCM type is auto. Though recognized, this option has no effect.
  • For Mercurial-managed packages, the binary revision string is guaranteed to be the same for all classes in the package. See #106.

Memory Manager

  • Revamped host memory allocation (see hmm.h and hmm.c)
  • Fixed in-place oldspace collector, removed baker-style oldspace compaction.
  • Upon startup, reserve (but not commit) enough memory to allow for oldspace to grow. Enough is 32GB on 64bit systems and 1GB on 32bit Linux and 384MB on 32bit Windows (this is due to highly fragmented address space on Windows caused by Windows, not Smalltalk/X). This fixes #107.
  • The new default maximum heap size for 32bit system has been increased to 1GB. For 64bit systems the default maximum has been increased to 8GB.

Block ABI

  • The block ABI has been changed to take the instance of a Block as parameter. Block Contexts now keep this Block instance it method slot (so the slot should be renamed to methodOrBlock). This improves the ability of the system to reflect on itself. More specifically, this is a necessary step to finally fix debugger w.r.t local variables inside blocks. This change makes it binary incompatible with both 6.x.x series and eXept's 7.x.x series.

Debugging

  • Fixed --stopOnSIGSEGV and --stopOnSIGABRT to work also on Windows, allowing debugger to be attached to investigate the problem. See #100.
  • Improved handling of SIGABRT and abort() to print a kind of crash report. In all cases, smalltalk backtrace is printed. On Linux, a C backtrace is also printed. See #100.
  • stx:librun (the VM) now comes with a set of custom GDB pretty printers and other utilities to print and inspect contents of objects without need to call VM routines from the GDB itself (which may alter the state).

Runtime

  • Revamped RecursionLock and JavaMonitor. Both now use generic thinlock implementation (see thinlocks.h. Resulting code is much, moch smaller and yields more performance. RecursionLock is now twice as fast a Semaphore and four times faster than the old implementation of RecursionLock in uncontended case (by far the most common case). Use RecursionLock whenver possible.
  • Many fixes to make it more stable.

Tools

Many small improvements and fixes here and there. Some most notable ones includes:

  • Debugger: added configurable shortcuts for most often used debugging actions.
  • Mercurial integration: added initial support for evolve extension.
  • Fixes in text editor here and there to make it behaving like most of other editor nowadays. A courtesy for us who have been brainwashed by Windows.

Build System

  • Makefiles have been partially cleaned up and simplified. From now on, Smalltalk/X jv-branch requires GNU make to build (except on Windows where Borland make is still used).
  • On Windows, the only supported build environment is now MSYS2 and GCC (MingGW). For details, see build instructions
  • Smalltalk/X compiles with -O2 using GCC 4.x, GCC 5.x and GCC 6.x on both Linux and Windows, both 32bit and 64bits.

Bug Fixes

Following list contains only bug fixes made specifically for 8.0.0. See list of all fixes.

#228
Error while compiling from swing - error while downloading stc from swing (OpenSuSE)
#205
To kill StX environment with Smalltalk code - ByteCompilerError
#200
Kill StX with some kind of overflow
#197
How to crash hard StX using a code paste
#192
** error 1 ** deleting objmingw/libstx_goodies_refactoryBrowser.dll
#189
Distribute Smalltalk/X demos in "toy" archive
#188
Missing output and garbage in the log when using Windows launcher
#186
StX 8.0.0 crash when using workspace
#185
MEM [error] (17-12-04 10:46:07): tried to mark strange object: 24efe30 in 24ef900(1)
#184
Update welcome mesage for ST/X 8.0.0
#182
VM crashes while / shortly after running stx:goodies/smallsense tests
#176
[Windows-only] SmallSense unusable when autoraise feature turn-on
#172
Smalltalk/X fails to start on Windows when launcher script is run from different directory
#171
Fix crash in Smalltalk >> #keys
#169
When changing a shortcut key for button send it should show the current shortcut
#149
Check that all users of ___STX___new check for nil return value
#145
DNU when opening help topic from dev tools
#130
A tab keypress should indent the whole block
#128
When in setting select tools/system browser/ code generator a CheckBoxSpec issue appears
#122
Downloading Stable build from Jenkins does not "see" styles - loaded with default Motif sytyle
#120
Inspector2 does not show custom presentations
#112
Creating a simple application produces a MessageNotUnderstood]: Symbol does not understand: #theMetaclass in process UIPainter [564] error
#111
In GUI painter - activating/deactivting grid produces an error
#110
Fix `rake update` task to automatically download latest pre-built STC and librun
#109
unable to run on windows xp
#108
Debug Trace not removed
#107
Posssible memory overwrite when extending oldspace
#106
Revise support for binary revisions for snapshot-based SCMs
#103
Add shortcuts for common debugging operations
#100
Revise and improve handling of SIGABRT and abort()
#92
stc may not detect Subversion 1.7+ repositories
#75
Merge Behavior>>basicNew: from upstream
#66
No application icon under gnome-shell 3.16.3
#63
Windowns specific classes are lost when build files are generated under Unix
#25
Tab labels not rendered properly when using Xft rendereing
#3
Review Smalltalk>>initSystemPath

Acknowledgment

At this point, I'd like to thank to Patrik Svestka who was always happy to test 8.0.0 on Windows and reported many problems together with test cases. Without him many issues would remain uncovered. Thanks!

Last modified 6 years ago Last modified on Jul 3, 2018, 9:24:16 PM
Note: See TracWiki for help on using the wiki.