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 isauto
. 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
andhmm.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. BlockContext
s now keep thisBlock
instance itmethod
slot (so the slot should be renamed tomethodOrBlock
). 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
andabort()
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
andJavaMonitor
. Both now use generic thinlock implementation (seethinlocks.h
. Resulting code is much, moch smaller and yields more performance.RecursionLock
is now twice as fast aSemaphore
and four times faster than the old implementation ofRecursionLock
in uncontended case (by far the most common case). UseRecursionLock
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.