This page lists major bug fixes in chronological order.
Only severe errors are listed here.
Non severe bugs and inconveniences
(which are in the queue, but not yet fixed/released) are found in the
Compatibility-Issues for programmers are listed in the "Compatibility Notes".
New features and improvements are not listed here; please refer to
"What's new in ST/X" for a list.
For each fix, the affected file and (new) revision number is listed.
Your system should have fixed the corresponding bug, iff the corresponding
files/classes revision number is higher or the same as the numbers listed below.
You can extract the revision numbers from your ST/X
executable with the UNIX command:
Class revision numbers are also displayed by the "modules"
view, which can be opened via the launcher's "file" menu.
If you want to send a bug report, always extract the revision(s)
of the corresponding part - this helps us in tracking/fixing bugs.
- [nov-2016] [librun] outdated images are now always ignored (not tried to be loaded); to force, use a "-i img" argument
- [nov-2014] [librun] fixed a jitter bug which (in very rare situations) was sending a message to the wrong receiver
- [nov-2014] [libbasic] Number reading (fromString:) did not care for garbage at the end
- [nov-2014] [document viewer] fixed initial local anchor positioning
- [nov-2014] [libodbc] fixed a buffer overwrite in GetData (which did not hurt most of the time but...)
- [nov-2014] [stc] fixed bad code generation for some constant folded integer expressions
- [nov-2014] [stc, librun] some GC bug fixes (compressing GC)
- [jan-2013] [stc, librun] the package loader now correctly loads prerequisites before a package's code is installed
- [dec-2011] [stc, librun] memory bug in package loader (sometimes crashed when dynamically loading classlib-dlls)
- [aug-2011] [stc] code generator change to deal with new gcc versions (accessing outer context locals)
- [jun-2011] Fixed SOAP via HTTPS
- [aug-2010] [libwidg] autoscroll-up fixed for ListViews
- [jul-2010] [librun] (win32) fixed a thread scheduler bug, which could lead to memory inconsistency (WeakArray bug)
- [jul-2010] [librun] (win32) fixed lost timerinterrupt bug
- [oct-2009] [stc] "register" as instance variable generated code which cc does not like
- [oct-2009] [stc] wrong code for certain block-code (Timestamp)
- [sep-2009] [goodies/rdoit] disable the connection timeout in the rdoit client, after the connection has been established
- [apr-2009] [rules] windows executables and libraries support Data Execution Prevention (DEP/NX)
- [mar-2009] [stc] trigraph escaping (for VisualC)
- [mar-2009] [librun] LargeInteger constant error
- [dec-2008] [libview] bmp file reading fixed in ImageReader
- [nov-2008] [stc] some symbols where missing in the literalArray (some symbol searches failed)
- [oct-2008] [libbasic] workaround a com-interface bug/deadlock in ms-windows, which lead to occasional deadlocks when reading a symbolic link path
- [oct-2008] [libbasic] in rare cases, a locked semaphore was not released if the holding thread was killed, leading to a deadlock
- [sep-2008] [stc] generated wrong code for simple shared ret-arg2 methods
- [aug-2008] [libbasic] Date conversion fixes (1.1.4009)
- [jul-2008] [libbasic] replaceFromTo: did not ignore the 0-byte at the end of a string
- [jul-2008] [libbasic] Date: daysLeftInYear was returning a wrong number of days
- [mai-2008] [stc] temporary variable generation for complicated computed squeak array fixed
- [mar-2008] [librun] another bug when sharing simple nil-, true- or false-returning blocks with numArgs>0
- [jan-2008] [librun] inappropriate block sharing for simple nil-, true- or false-returning blocks when numArgs>0
- [oct-2006] [stc] generated code for squeak computed arrays fixed
- [oct-2006] [stc] generated code for supersends in extensions fixed
- [oct-2006] [librun] initialization order of extension modules fixed
- [oct-2006] [librun] primitiveTimeout argument was not saved from garbage collector
- [sep-2006] [libbasic/win32] GetDiskInfo fix for win2k incompatibility
- [sep-2006] [librun/win32] Dual monitor geometry fixes
- [jun-2006] [librun/win32] API call interruption crash bug fix
- [feb-2006] [libodbc] more bugs fixed; bulk transfer support
- [jan-2006] [VM] jitter-literal GC bug fixed
- [nov-2005] [XWorkstation] device- and gc-handle finalization fixed
- [sep-2005] [libodbc] some bugs fixed
- [aug-2005] [stc] namespace handling bug fixed
- [dec-2004] [stc] blockRef bug fixed
- [nov-2004] [Win32OperatingSystem] processGroup termination fixed
- [oct-2004] [Parser] Const-1 bug fixed
- [oct-2004] [librun] rememberedSet overflow bug fixed
- [oct-2004] [librun] snapshot restart pointer relocation speedup
- [sep-2004] [XWorkstation] clibpoard mechanism fixed for large data blocks
- [sep-2004] [stc] support sharePools
- [aug-2004] [stc] code generator bug in optimized equality compare expression fixed
- [sep-2004] [VM] much faster startup in case of pointer relocation
- [mar-2004] [WinWorkstation] activation event when closing a popup on top of a modal view
- [mar-2004] [WinWorkstation] closing a view on-top of an ST/X view via dbl-click on close created wrong button event in underlyig view
- [mar-2004] [VM] one of the new UTF8 support functions defected the dynamic library loading in some situations
- [jan-2004] [libbasic] some missing STORE-check macros added to fix memory (garbage collector) bugs which occurred in certion situations.
- [jan-2004] [process.c] (WIN32) interruption of blocking API calls fixed
- [nov-2003] [UnixOperatingSystem] segv bug fixed in getAddressInfo
- [nov-2003] [process.c] (WIN32) thread handle leak fixed
- [nov-2003] [WinWorkstation] (WIN32) redraw bug (redraw events were missing when moving/resizing views)
- [nov-2003] [WinWorkstation] (WIN32) pointer enter button-state bug (sometimes assumed that button is pressed when mouse enters a view)
- [oct-2003] [librun] allow grow of oldSpace during startup
- [oct-2003] [librun] allow executable without root-classes (micro-executables)
- [oct-2003] [stc] fixed write barrier bug (store into outer block context)
- [oct-2003] [AbstractLauncherApplication.st,v 1.292;AbstractSettingsApplication.st,v 1.111] fixed bug setting compiler options -removed #always option for stc
- [oct-2003] [stc] cache slot code generator bug (shared cache slots for class & instance methods)
- [sep-2003] [librun] method cache bug fixed in interpreted code
(wrong method was called occasionally when many processes where scheduled)
- [mai-2003] [librun] context of a method called with #valueWithReceiver was wrong after GC if selector was nil
- [mai-2003] [librun] bug in the GC, which sometimes clobbered the freeList when hitting the memory limit.
- [feb-2003] [XWorkstation] clipboard mechanism now X-clipboard compliant (used to be xterm compliant)
- [jan-2003] [ProcessorScheduler] fixed race when freeing VM's process structure (leak)
- [jan-2003] [librun] fixed malloc-bug when shrinking lifoRemSet (crash)
- [jan-2003] [librun] bug in nil-block optimization fixed
- [nov-2002] [Parser] WorkspaceVariables are only autoDeclared if they appear on
the left side of an assignment.
- [nov-2002] [VM] wrong code with more than 256 literals (on some machines).
- [sep-2002] [libbasic] oops - "String new:-1" crashed ST/X (on some systems)
- [sep-2002] [stc] code generator bug with private classes named Method or Block
- [sep-2002] [Class] fileOut did not include initialize expression for private classes
- [jul-2002] [stc, Scanner] handle 3-character binops; allow for ! and # as binop.
- [jul-2002] [libview] fixed automatic graphic queue flush (draw from non-GUI process)
- [jul-2002] [libview] fixed automatic finish of event dispatcher process (when last view closes)
- [jul-2002] [libbasic] fixed i/o stream shuffling in OS command execution
- [apr-2002] [stx] symbol strings are now in the shared librun; the stx executable
itself is now very small.
- [apr-2002] [liboracle] many bug fixes in the oracle interface
- [apr-2002] [stc] code generator bug with trivial or:
- [oct-2001] [VM] 2-pass compressing garbage collect fixed.
- [sep-2001] [Class] changeFile entry for private subclasses within a nameSpace was wrong (did not prefix namespace)
- [sep-2001] [stc] did not scan empty symbol constants
- [sep-2001] [stc] scanned string constants with embedded #'' wrong
- [jun-2001] [VM] code generator bug with RISC machines and method-arg access from within a cheap block
- [jun-2001] [stc] code generator bug with array»at:put: (only if array was previously assigned from a constant)
- [feb-2001] [stc] did not correctly compile private subclasses of nil (no instVars were allowed)
- [dec-2000] [VM] subclasses of Block where sometimes handled as non-blocks (w.r.t. their home context)
- [sep-2000] [libbasic/ExternalStream] malloc/free non-reentrancy bug workaround (in fopen/fclose)
- [sep-2000] [stc] code generator bug with +optSpace3 option; ignored UNLIMITEDSTACK pragma (sparc only)
- [sep-2000] [stc] code generator now generates a context with UNLIMITEDSTACK pragma
- [sep-2000] [VM] JIT bug with inlined min:/max: and literal-SmallInt receiver (some CPU-architectures only)
- [aug-2000] [VM] bug in 2-pass compressor
- [aug-2000] [VM] JIT bailOut bug with inlined not
- [aug-2000] [MenuPanel] flush cached font geometry when starting an image on a different display
- [aug-2000] [Display] image startup on different depth display clobbered colors
- [jul-2000] [VM] JIT bug with inlined ifTrue:ifFalse: and non-block (value) args fixed
- [jul-2000] [MenuPanel & friends] better (fixed) shortCutKey and MnemonicKey handling
- [jun-2000] [VariablePanel] snap handle option
- [20-feb-2000] [View hierarchy] fixed tabbing and focus handling
- [feb-2000] [GenericException] missing method #raiseRequestWith:in: added
- [feb-2000] [SubCanvas] release vs. releaseAsSubCanvase
- [18-feb-2000] [Smalltalk] fixed renaming of a nameSpace class into another namespace
- [10-feb-2000] [VM] cache flush bug with SmallInt/UndefObject polymorph messages
- [1-sep-1999] [stc] fixed various bugs related to include-file finding with
private classes within a namespace.
- [1-sep-1999] [stc] stc can now compile class-less (methods only-) files.
This allows for addOns to be compiled into a shared class library.
- [1-sep-1999] [stc] fixed the lexer, which crashed with very long lines.
(workaround a lex bug).
- [1-sep-1999] [stmkmp] fixed the script to generate a usable Make.proto.
- [1-jul-1999] [Class, Autoload] Superclass autoload failed for private classes
When filing in a private class, which was derived from an autoloaded class,
the superclass was not loaded automatically.
- [20-jun-1999] [WeakArray] occasional bad access to weakArray
Reads could return an already collected object; writes could sometimes
lead to a missing registration within the VM.
Both errors could lead to bad object references in certain situations.
- [16-apr-1999] [TerminalView] restart shell when restarted
The original shell command is now restarted when an image is restarted
from a snapshot image with an open terminalView.
- [12-apr-1999] [mcompiler.c/send.c] JIT bug with Sun Ultra
Fixed the icache flush code - this was responsible for the JITC to fail on
- [12-apr-1999] [new.c] IGC failure when interrupted by reclaimSymbols
The IGC left over some unmarked objects, when interrupted by reclaimSymbols.
- [30-jul-1998] [send.c 1.937, interpret.c 1.148, lookup.c 1.67] private methods not understood
Due to a change done in Jan97 (!), the privacy mechanism failed to work
in some situations (no one seems to use this mechanism, since we did not get
an error report !).
- [6-jul-1998] [mcompiler.c 1.937] bad code generated
JIT compiler: fixed & and | for non-boolean receivers.
JIT compiler: code for increment-var generated a subtract for non-integers
- [6-jun-1998] [GLXView] image restart
Fixed image restart bug with open animated GL-views.
- [6-jun-1998] [smalltalk.rc] source access if GNU-st is installed
Remove system library from sourcePath, if a GNU-Smalltalk
distribution is found there (to avoid autoloading the wrong classes)
- [25-feb-1998] [libwidg2/MenuPanel.st 1.77]
Short-clicked menu did not stay open.
- [25-feb-1998] [stc/codeexpr.st 1.144]
inlined code now checks for singleStepInterrupt pending.
This allows for things like #at:/#at:put: to be single stepped - even if
the code is inlined.
- [25-feb-1998] [libbasic/Object.st 1.223]
#perform: family of methods did not care for pending singleStepInterrupts.
This prevented the debugger from single stepping into #perform: methods.
- [25-feb-1998] [librun/mcompiler.c 1.790] bad code generated
fix: bug in delaySlot optimizer - globbered register sometimes (sparc only)
- [20-feb-1998] [librun/mcompiler.c 1.785] bad code generated
fix: bad register reuse in JIT compiler (in special/rare situations)
fix: bad temp-slot use for value of conditional (in special situations)
- [2-feb-1998] [libbasic/Metaclass.st 1.122]
fix: lost class methods if classInstVars changed
fix: class instvar changes clobbered class methods of subclasses.
- [1-feb-1998] [Slider.st 1.22]
fix: care for range & step
- [25-oct-1997] [libbasic/Integer.st]
fix: \\, // and gcd: returned a wrong result for certain largeInteger receivers,
due to a bug in gcd:. This also affected certain fractions with largeInteger numerator.
- [14-aug-1997] [libbasic/String.st 1.95]
fix: some search methods (index*) failed with national characters (high bit set).
Must use unsigned character compares.
- [9-aug-1997] [stc/scan.l 1.75]
fix: fixed the HTML-View from image restart problem (image fetcher thread not
- [7-aug-1997] [stc/scan.l 1.75]
fix: float constants with exponent and decimal point scanned wrong
- [5-aug-1997] [libview/WSensor.st 1.106, libview/WGroup.st 1.118]
fix: expose event sometimes lost after remap of a view
- [24-jul-1997] [libbasic/Fraction.st 1.37, librun/float.c 1.37]
fix: fractions with negative denominator could be generated
- [24-jul-1997] [libcomp/ObjFLoader.st 1.144]
path of executable with dynamic loading under linux-a.out
dynamic object loading under linux-a.out did not work,
stx executable was not found in the current directory.
- [24-jul-1997] [libview2/GIFReader.st 1.55]
maskPixel handling fixed
images with mask did not always work
- [2-jul-1997] [libview/WSensor.st 1.104, libview/WGroup.st 1.116, libview/DSurface.st 1.30]
no-deviceID error (debugger) with destroy arriving while waiting for
a scroll-expose event to arrive.
- [1-jul-1997] [libbasic/CharacterArray.st 1.123] [HP only]
some hp fonts use non-iso8859-1 encoding. National characters were not
displayed correctly sometimes.
Translation tables were added for hp-to-iso8859 character translation.
Notice, that not all iso8859-1 characters are available in those fonts.
- [25-jun-1997] [libview/WSensor.st 1.103]
deadlock situation with interruptActions during eventQueue handling
If interrupted while being in the eventQueues critical region,
a deadlock occurred when another event was pushed in the interruptAction.
- [25-mar-1997] [libbasic/Unix.st 1.198, libbasic/ProcSched.st 1.125]
waiting forever for UNIX Processes
ST/X sometimes didn't recognize the termination of UNIX-subprocesses on SUNOS
and AIX before another process has been started.
- [7-mar-1997] [librun/errhandler.c 1.48] restarting a doesNotUnderstand-context
a doesNotUnderstand context could not be restarted, after the missing method
was accepted in a browser.
- [1-mar-1997] [libbasic/codecls.c 1.108] sub-subclass recompilation
occasionally, sub-subclasses were not recompiled after a superclass-
or instvar change in a baseclass.
- [1-mar-1997] [stc/codecls.c 1.109] superclass with inderscore in name
occasionally, stc generated wrong C-code for superclasses with underscores
in their name (missing external declaration, leading to a C compilation error).
- [27-feb-1997] [librun/new.c 1.249] idenitytHash clobbered in #become:
in certain situations, #become: did not exchange the hashKeys,
which lead to trouble with objects being held in a set or dictionary.
- [27-feb-1997] [librun/new.c 1.249] growing oldSpace memory
ST/X allocated more memory than required, if the fastMoreOld flag
was on and the compression limit already reached.
- [26-feb-1997] [stc/codeexpr.c 1.116] inline float multiplication
stc generated syntactically incorrect C-code for inlined float multiplications,
(i.e. multiplication with float-value-hinted values)
- [15-feb-1997] [libbasic/MthdDict.st 1.18] ever growing methodDictionary
methodDictionary resized itself wrong when entries where removed
- [14-feb-1997] [stc/codeexpr.c 1.115] here-send in class methods
'here' send did not work in class methods - this only happened in stc-compiled
code (i.e. bytecode worked ok)
Doc $Revision: 1.133 $ $Date: 2016/11/05 17:38:36 $