New Features in ST/X
This page lists new major features which may be of interest in chronological order.
Minor enhancements, features and fixes are not listed here.
Major bug fixes are listed in the "Release Notes".
Documentation updates are found in "What's New in the Documentation".
Major version incremented due to an incompatible class layout change.
Older binaries (shared class libs) cannot be loaded into this version.
- more command line options for easier scripting
- GraphicContext-specifics separated into a separate GC object (View hierarchy cleanup).
- new (scheme-like) syntax for literal-integer and literal float arrays:
#xx(...) an array literal of special type;
xx must be one of:
in addition, the following shortcuts (alternative names) are supported:
#f (FloatArray = f32);
#d (DoubleArray = f64);
#b (BitArray = u1)
currently, this syntax is disabled by default (see ParserFlags >> allowSTXExtendedArrayLiterals)
and not yet fully supported by the stc compiler.
- infoPrint, debugPrint and errorPrint now delegate to a Logger, if there is any
- new tool: ExternalStreamMonitor
- new feature in process monitor: "terminate all like this"
- more lint checks and fixes in existing rules
- more detail in many lint rules (in the lint result viewer)
- PNGReader supports TRNS chunk (transparency)
- ICO/CUR formats fixed in WindowsICOReader
- MacOSXIconReader fixed and improved (supports more formats)
- new WBMPReader added (for mobile devices icons)
- ImageEditor got many new functions and some bug fixes
- many fixes and improvements in the base classes (Semaphore, RecursionLock, Processor, OSProcess etc.)
- VersionDiffBrowser got nice filters to make comparisons of whole packages easier (among other improvements)
- selector and text filter in the system browser's methodlist.
- more menu functions in the file browser's "Tools" menu
- improved REPL (non-GUI mode)
- high resolution timetamps and timeDurations
- much better code completion and explainer info
- improved language translation tool
- autoloading of packages (see "Settings" - "System" - "Autoloaded Packages")
- PNGReader supports many more formats
- BMPReader supports many more formats
- 64bit Windows version (preRelease)
- JPEGReader can now also save images
- Timestamp can now represent timestamps before the epoch 1970 and after
the unix endtime at 2039 (i.e. we are prepared for the y2039 problem)
- Timestamp iso8601 reader also supports weekday formats and utc offsets.
- Added TZTimestamp which preserves its original timezone information
- Time now supports millisecond precision
- Date can now represent dates before 1900 and after 2039
- Date printing supports some roman options (for hungaria, romania and poland)
- 64bit MAC-OSX version (10.6 and later, gcc or clang, using XQuartz)
- Runs on RaspberryPI / Ubuntu
- 64bit Linux version
- Full support for negative zero (might be needed by some math algorithms)
- New easy to use package loading UI ("Launcher-Menu" - "File" - "Load Package")
- support for "almost the same" comparison in Float
- support for huge collections in SegmentedOrderedCollection and VirtualArray
- more breakpoint filters in the debugger
- new token delimited comments
- improved scripting support
- improved mercurial SCM integration
- improved smallsense integration
- initial port of the SWF (flash) file reader and writer (basil)
- ported Vassili Bykov's Announcements package (in "goodies/announcements")
- package loading speedup and fixed prerequisite package loading
- all class libraries can now be compiled with mingw (mingwmake)
- "Thrift IDL support" (in "goodies/thrift")
- Cassandra Database interface (in "libdb/nosql/cassandra")
- GOODS Database interface (in "libdb/nosql/goods")
- improved monticello packager (includes extra ST/X files)
- additional lint checks for collection protocol usage and dialect compatibility
- fixes and improvements in the line-breakpoint handling
- per process debug/halt enabling & disabling (see browser's debug menu)
- count method invocations per receiver class in browser's debug menu
- timestamping of transcript messages (see launcher's debug menu)
- fixed and improved the VT100 terminal emulator (and TerminalApplication)
- improved break- and tracepoint handling in the system browser, debugger abd breakpoint browser
- improved code completion (better guessing, especially in the debugger)
- improved code correction when accepting invalid code (better suggestions)
- many additional useful menu operations here and there (workspace, debugger, launcher, file browser)
- coverage analysis fixed and enhanced
- enhancements in the browser
- improved windows-menu in the launcher
- all class libraries can now be compiled with msvc (vcmake)
- regex package (in goodies) fixed for unicode
- stc option to generate error & warning messages in gcc format (for hudsun log parsing)
- sunit can generate junit compatible xml reports (for hudsun)
- improved codeview in the browser
- improved workspace
- improved filebrowser (tags, directory-diff viewer)
- debug/trace for Transcript messages (Launcher's Class-Debug menu)
- improved debugger menu / can selectively ignore halts for some time/count
- improved method finder
- improved window menu in the launcher
- begin monticello support in browser
- begin multi source code manager supported (mercurial, p4,...)
- libcrypt: xtea fixed; tea, rc6, carmellia, mcd2Des, serpent, sha224, sha384 and sha512 added;
libcrypt compiles with msvc
- syntaxhighlighter highlights side effect assignments (turn off via settings)
- more lint rules, better embedded lint viewer
- some compiler warnings can be disabled on a per-method basis
- loggia logging package
- Integrated Jan Vrany's enhancements
- Support Method Annotations
- XML-RPC Supports V3 protocol (nil, i8)
- MOP support (which adds a slot to Behavior and Context; therefore the major version change)
- Magritte ported and added to goodies
- SVN repository support (a package can live in both an SVN and a CVS repository) (thanks to Jan Vrany)
- SourceCodeManager and multilanguage-support (Ruby, ST, JS) cleanup
- Standalone Application Builder and Packager (ProjectBuilder Assistant)
- A number of browser enhancements (pseudo categories, class wizard, better dialogs)
- Regex string-constants in code search
- PNG file writing support
- Rdoit for windows
- Nicer vista-viewStyle
- Breakpoints can be temporarily-disabled (time- or count)
- New VM command line flag: --immutableLiterals
- Win32: more widestring apis supported (file operations with unicode names)
- Win32: Smalltalk/X now runs with Data Execution Prevention enabled
- Win32: stx.com starts Smalltalk in a console window, stx.exe without console. winstx.exe is gone.
- Win32: Oldspace limit increased to 512Mb
- FixedPoint literals (i.e. 10.23s2) now also supported by stc
- Remote scripting support with "--scripting" command line argument (i.e. rdoit-telnet with JS syntax)
- Win32: splash screen can be hidden by pressing ESCAPE or CTRL-C
- CodeView menu functions to insert as string literal
- Unicode support: input methods, window title, file-names and attributes
(Please read the "Compatibility Notes")
- FilenameWidgetWithHistory fixes and improvements
- Splash banner now shown by VM (earlier)
- "--console" command line argument
- Abbreviation/Snippet support improved
- New Debugger feature: flyBy info on variable-values
- New Transcript feature: autoraise
- New tool: BreakPoint Browser
- Win32: Support Windows Mutex
- Windows INIFile reader/writer
- Tip of the Day
- Thanks to Felix, spanish is now almost completely supported
- More Workspace improvments (myWorkspace)
- Support for symbolic fonts in UIPainter
- New Debugger feature: skip-ignore halt/breakPoint
- New ImageEditor features: circles & spray
- CodeCompletion improved
- DebugMenu of browser reorganized
- New class for standAlone apps: GetOpt
- Support for symbolic colors in UIPainter/Views
- More UIPainter and ColorMenu improvements
- UIPainter, DataSetBuilder and ColorMenu improvements
- NewChangesBrowser fixes & improvements
- Improved Workspaces (snippets, sharedPool visible in doIt, sharedPool inspector)
- Improved Workspaces (menu, new functions, myWorkspace)
- Application- and LibraryDefinition for automatic deployable-package generation
- Indicate Focus-State in SelectionInListView.
- Better drawing of items with icon in Menus/MenuPanels.
- New class library naming scheme
- many more project support functions in the browser
- support for the generation of deployment packages
- Win32: native printing support
- Win32: some fixes for dual screen operation
- new external library function binding mechanism supported by stc
- Glorp update (0.4)
- new external library function binding mechanism
- generate makefiles from the browser
- Browser: some refactorings on SHIFT-code-menu; better project support; build features
- MenuEditor: added menuSlices.
- SharedPool support added.
- Notebook/TabView: destroy buttons
- ImageEditor: can edit trueColor bitmaps
- WebServer: FCGI support
- ODBC support bugfixed and improved (threaded, nonBlocking API for Win32)
- Sort functions in all editors (more->tools->sort menu item)
- Win32: Mozilla & IE browser plugin support
- Linux: Mozilla browser plugin support
Rel5.2.6 - official release
The first "non-beta" win32 release.
- Bug fixes in the Windows version: sockets, externalStream and hostName code fixed;
cleanup when interrupting/aborting threaded API-calls.
- Bug fixes in the VM dynamic library loading code
- SharedPools are now supported (added to allow easier porting of non-ST/X Smalltalk code).
- STT can be configured for either Squeak- or ST/X-dialect code syntax
- First partial support for native win32 widgets (for now, only ScrollBars)
- Support undecorated and toolBar window styles (win32)
See examples in
TopView class » examples.
- Button and focus event handling fixes in the win32 version
- Better win-XP look
- MenuSlices added.
- SHIFT-middleButtonMenu in browser's codeView added (variable-rename etc.)
- Unicode support.
- Damage event handling improved.
- xpSwiki added to webServer.
- FileBrowser improved (is now almost a usable unicode editor !)
- HTTPServer/HTTPService: reply generation via a presenter for flexible layout of (corporate identity).
- Bug fixes in the Windows version: blocking api-call interrupt handling,
exception handling (SEGV).
- FontPanel fixed and enhanced; Font handling and unicode support enhanced.
- Bug fixes in 32bit File-I/O API (seek, stat, etc.); added support for 64 bit API.
- More HTTPServer tuning, refactoring & improvements.
SWIKI can now be linked anywhere below the servers root
(books had to be under "/" before). Swikis can now even be linked deep
inside a fileServices tree.
Swiki Service has now only one link name and all of its books are below that.
CGI callout support.
HTTP Utilities: a page counter
- Bug fixes in the Windows version: command-execution, redraw bug, drag&drop, handle leak.
- HTTPServer url Parameter and post data field values are in a collection
- HTTPServer performance tuning.
- STC compiler generates new (more compact) code for literal arrays
- More refactorings in the HTTPService hierarchy.
- Multipane Terminal Application.
Rel5.1.3 - internal (tag only) release
Rel5.1.2 - official release
- Mostly bug fixes, enhancements and code cleanup.
- SIXX (XML-Object exchange) package ported (2 testCases still fail).
Incremented the major version number, because we (finally) changed stream positioning to be 0-based.
This could lead to incompatibilities with some programs.
- Stream positioning is now 0-based.
For backward compatibility, position1Based/position0Based methods are still provided.
- Class layout changed (removed unused slots)
- Number class LongFloat (80/128 bit floats) now fully implemented on systems which offer extended floats.
- SmaCC Compiler-Compiler fully working, including UI.
- Much improved HTTPServer:
- better framework for http-services; common handling of action-services and PWS-services.
- allow to start the same service twice under different link names.
- read header and process requests in separate threads.
- new services: WebSlides, SourceCode Access, DemoShop
- Comanche STT support (Smalltalk Templates)
- RDoit supports Unix domain sockets.
- RBFormatter fixed to better handle comments (still not perfect, but much better)
- NewSystemBrowser: many improvements: code search, multi-var search, multi-sender search,
selective rewrite when renaming a method.
- Restructuring of the HTTPServer and friends; now HTTPServices are much easier to add/remove.
Also, the ST/X homePage, maintenance etc. are plugged services and easier to configure.
- Much better HTTPServer administration in the Launcher's settings dialog
- XML-Xpath and XSL support
- Tuning in the NewSystemBrowser
- ported the ComancheSwiki from Squeak. This is now the default Swiki offered in the ST/X-HTTPServer.
Rel4.1.7 - official release
Incremented the version number, since there were two major bug fixes in
the VM and the Semaphore handling, which could lead to crash/blocking in certain situations.
- More examples on how to generate stand alone (also: headless) applications are provided
under the projects directory. To start, look at
Sorry windows users: we do not (yet) provide the makefiles for non-unix systems - win32 users who want to
generate binares have to wait or manually create a makefile.
- SOAP package included
- Another XML parser: YAXO
- HTTP-Server can now be started multiple times (for example, to allow for HTTP
SWIKI and SOAP to be served on different ports.
- improved (pluggable) settings dialog
This is mostly a cleanup version - no fundamentally new feature was added;
However, many fixes have been applied to make the widgets and tools (even) more useful.
- regex package upgraded (see RxParser whatsNewInThisRelease)
- cleanup, bug fixes and added features in the NewSystemBrowser
- many bug fixes in various widgets
- view style beautifications for winXP
- textDrag from/to textViews (with or without CTRL-key)
- delayed menu (stay pressed on the Launcher's SystemBrowser Icon...)
- improved FileBrowser, MenuEditor, BitmapEditor
- improved Workspace (automatic WorkspaceVariables)
- flyByHelp support
- codeView menus reorganized
- fixed win32 stc flags for accepting primitives in the browser (for borland-c)
- MethodFinder ported from Squeak (see Launchers Classes-Special Menu)
- win32 version now correctly handles stack overflow (recursion interrupts)
- more browser and changeSet enhancements
- accept: remove unused vars; declare inst & class vars.
- win32 wrap-call fixes (more non blocking API calls)
- win32 display improvements & resize bug fixes (minimize/maximize)
Rel4.1.3 - official release
Rel4.1.2 - published
- MenuPanel got scroll-buttons (and therefore also: ComboBox and ComboList)
- ChangeBrowser & ChangeSetBrowser enhanced; multiple select, main menu etc.
- Workspace enhanced; main menu, mult-pages, embedded inspect etc.
- old SystemBrowser: added a main menu (to make switch to newBrowser easier)
- stc VW compatibility fix: correctly scans float constants with embedded d (i.e. 1.0d100)
Major release bumped due to changes in the internal object layout (flag bits changed).
Previous binary code class libraries are not guaranteed to be compatible.
- 16bit unicode string support for win32 version
- can be compiled/used with the free borland compiler tools (bcc55)
- can now be executed multiple times under win32
- winstx.exe (non-console version of stx.exe) works again (win32 only)
- save a crash-image on SIGPWR signal (unix only)
- scripting support. You can now use Smalltalk/X scripts much
like tcl, awk, perl or any other scripting language (see README_ALSO and demos in goodies/rdoit).
- SourceCodeManager supports multiple CVS repositories
- new, much improved New System Browser (enable via the settings-tools menu)
- SUnit testframework GUI (thanks to Samuel, Travis, Kent and the Camp Smalltalk people)
- Original RefactoringBrowser is almost working (but have a look at the ''New System Browser'' ...)
- new tool: SnapShotImageBrowser - allows old images to be browsed (see FileBrowsers Tools Menu)
- fixes and changes for hpux XServer settings
- hpux version tuned & fixed
- new oracle8i interface library
- exceptionHandling (class based exceptions, VW compatibility)
- additional widget functionality & GUI builder attributes (snap in VariablePanel, menu for Labels, many additional channels and callBacks)
- great new goody: Chicks-Eyes; you must have it ! ;-) [see Launcher-Demos-SimpleAnimations menu]
Rel3.6.4 - published
- new menuBuilder attributes: 'hideAfterActivation' & 'busyCursorDuringActivation'
- arbitraryComponent - supports pluggable aspects (see GUI builders subAspects sections
and "Component plugin scheme")
- subCanvas - supports pluggable aspects (see GUI builders subAspects sections
and "Component plugin scheme")
- noteBook - better tabbing and acceleratorKey support; more control over look in GUI builder
- compatibility - more VW compatibility (for RefactoryBrowser)
- code formatter (ported from RefactoryBrowser) almost usable ;-)
- some additional goodies added to the browser and guiPainter
- ST/X finally got a splash image (under unix) !; can be changed or disabled
via the "showBanner.rc"/"hideBanner.rc" scripts.
Rel3.6.2 - eXept customer release
Rel3.6.1 - published
- ROSE-MDL Parser and class-code generator added
- new file organization scheme - resources, bitmaps and sources
are now located under the corresponding packages directory
This avoids conflicts, when the same name appears in multiple packages.
- integrated Java virtual machine support and support classes.
See Java support for more details.
- AddOn packages for Cryptography,
and Smartcard interfacing
are now available as extra (non-free) addOn packages.
- started to port the RefactoryBrowser - not yet finished, but provided "as is" for hacking.
- started to add some Squeak compatibility support - not yet finished
- started to port the squeak morphic package - not yet finished, but provided "as is" for hacking.
- much improved Make.proto, Makefile etc. generation (for stc compilation of class libraries).
- first preRelease of the ProjectBrowser available.
- XML parser ported to ST/X.
- mouseWheel support under windows; slow scroll with SHIFT+wheel, fast scroll with CTRL+wheel.
- Added support for class-based exceptions. Started to convert existing signal code.
Tuned the exception code to avoid generating throw-away full blocks.
- Ported the PluggableWebServer code to run with HTTPServer (see PWS namespace).
The HTTPServer is a merged version of the
Squeak WebServer and our own old HTTPServer class, which supports both built-in and plugged actions,
keepAlive connections, file access with file caching, temporary links and
improved error handling (see WWW Server documentation).
- The ChangeBrowser is now able to show a Squeak sourceFile.
- New improved VersionDiffBrowser, which shows changes on a per-method
basis (the old diff displayed the whole-class diffs)
- New improved replacement classes for ListView, SelectionInListView and TreeView:
ListModelView, SelectionInListModelView and HierarchicalListView.
- TDV (Technical Data Viewer) 3D data visualization framework
- OpenGL interface library
- Workspace variables
- Immediate selector checks - checks for valid message selector,
while you type (must be enabled in the settings-source&debugger dialog)
- AddOn packages for ASN1-Parsing,
protocols are now available
as extra (non-free) addOn packages.
- Tuned LargeInteger arithmetic (had to do some cryptographic stuff).
- Changed (& fixed) the keyboardFocus handling.
It is now possible, to configure either focus-follows-mouse or click-to-focus
mode from the launcher's misc-settings menu.
- ExternalTopWindow Support - allows ST/X to play in a window
provided by another (non Smalltalk) application.
- New widget: Extended ComboBox.
- Bug fixes & enhancements in the Image Editor
- New widgets: PieChartWidget, BarChartWidget, MeterClackCounter.
- More FileBrowser functions;
- Additional tools & goodies: Telnet goody; Shell Terminal;
- better search functions in the systemBrowser;
- enhanced dataSet widget.
- Beta JIT-compiler support released for rs6k (aix) CPU.
- Pseudo TTY support (for terminal emulators).
- CType class hierarchy and CParser to read C-language include files
(available as addOn for the full commercial version)
- UserAbort key (CTRL-Y) to interrupt a window-process without entering
- Beta JIT-compiler support released for alpha and mc68k CPU's.
The alpha JIT-compiler is a preRelease and does not generate optimized
This is the first and final version, which supports JIT-compilation
for the mc68k - it will no longer be maintained in the future.
- the JIT-compiler is now released for sparc, mips and i386 CPU's.
JIT support for other architectures (hppa, alpha, rs6k & 68k) is implemented,
but not yet released.
- the VM now understands Java bytecodes and dynamically switches to Java
execution, when a java-encoded method is encountered. However,
the Java support system is not delivered with the standard system - it will be
available soon as an add-on package.
- very useful "ref chains" menu item in the memoryUsage monitor,
to find object references
(i.e. to answer the question: "why is this instance not garbage collected").
- new widgets to display a collection of graphs in either 2D or 3D style.
- the launcher has been rewritten using the GUI painter tool and can
be opened via the "New Launcher" menu item in the (old launchers)
- improved GUI painter & associated tools (MenuEditor, ImageEditor ...).
- editTextViews can be configured to simulate other cursor editors behavior
which cannot be positioned past the end of a line or past the last line of the text.
- panels can be configured to ignore invisible components
- more file formats supported in image save functions. (PBM, GIF and BMP)
- the GUI menu builder is now included as a preliminary beta version.
Similar to the GUI builder in operation, this allows menus to be defined
and installed interactively.
- the HTML Viewer now supports jis and big5 fonts (japanese & chinese encodings).
The documentation includes a japanese top page for demonstration.
Copyright © 1996-2017 Claus Gittinger Development & Consulting, all rights reserved
Copyright © 2003-2017 eXept Software AG, all rights reserved