Stefan Vogel <sv@exept.de> [Fri, 15 Jun 2018 17:00:55 +0200] rev 23111
#BUGFIX by stefan
class: ExternalStream
primitive definitions
... again
Stefan Vogel <sv@exept.de> [Fri, 15 Jun 2018 16:58:34 +0200] rev 23110
#BUGFIX by stefan
class: ExternalStream
primitive definitions
fix prototype for __win32_fwrite()
Claus Gittinger <cg@exept.de> [Fri, 15 Jun 2018 15:27:54 +0200] rev 23109
#BUGFIX by cg
class: MiniLogger class
changed: #log:severity:facility:originator:attachment:on:
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 13 Jun 2018 14:39:23 +0000] rev 23108
Merge
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 11 Jun 2018 11:43:06 +0100] rev 23107
Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 04 Jun 2018 10:11:11 +0100] rev 23106
Issue #214: do not install `h_win32.rc`
...which no longer exists (removed in #92159a804e50). Due to that
(missing) file, Borland make silently failed and none of the resources
- including widgets styles - were copied. That in turn causes widgets
to fall back to defaults. This fixes the issue.
https://swing.fit.cvut.cz/projects/stx-jv/ticket/214
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 11 May 2018 12:12:57 +0100] rev 23105
Fix in `ProjectDefinition`: load `stx:goodies/fileformats/plist` to get `MacPlistXMLCoder`
...which has been moved (from package `stx:goodies/xml/stx`). Fixes regression
in `RegressionTests::MakefileTests`.
Claus Gittinger <cg@exept.de> [Sun, 16 Jul 2017 11:49:58 +0200] rev 23104
#REFACTORING by cg
class: Method
added: #isSubclassResponsibility
(grafted from 86723ef64f2dd573fc7c56e00387c8cd47c9736a)
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 24 Apr 2018 12:23:14 +0100] rev 23103
Cleanup: drop support for old block ABI
in favour of new ABI passing an instance of `Block` as an
argument. Old block calling scheme is no longer supported.
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 13 Apr 2018 09:37:08 +0100] rev 23102
Issue #200: fixed `#basicAt:` / `#basicAt:put:` to work with objects bigger than 2GB
Some methods or their part used only 32bit `int` as an index to an object. If object
was larger than 2GB, 32bit index suddenly become negative, causing `#basicAt:put:`
writing outside the object itself.
To fix that we have to use `INT` (`intptr_t`). However, there can be other cases
like this both n the smalltalk code and in the VM. We may use GCC's
`-Wconversion` to catch this, see issue #204.
https://swing.fit.cvut.cz/projects/stx-jv/ticket/200
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 28 Mar 2018 09:51:58 +0100] rev 23101
Issue #197: fixed buffer overflow in `_makeWchar()`
...when passed string is `Unicode16String`. It (wrongly) used
passed buffer size as size of the buffer in character while
caller passed it as a size in bytes (a result of `sizeof()`).
This naturally caused a buffer overflow when size of (unicode)
string was greater (MAXPATHLEN / 2), causing the segmentation
violation.
This commit fixes this mismatch and makes sure that once
`_makeWchar()` returns, it's properly NULL terminated.
https://swing.fit.cvut.cz/projects/stx-jv/ticket/197
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 05 Mar 2018 10:46:56 +0000] rev 23100
Reduce "supported translations" to English only for Smalltalk/X jv branch
This DOES NOT mean that tools cannot be translated to other languages,
it only means that we say we support only english for jv-branch. This
makes lint to stop complaining.
I'd be nice to support German as well byt sadly, I (JV) cannot speak
German and noone actively involved in jv-branch does. Pity, indeed.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 28 Feb 2018 19:33:15 +0000] rev 23099
Reintroduced `Smalltalk class>>size`
...originaly introduced in `3f08e9d58571` but then
reverted due to a crash.
The crash was caused by using plain C `return` from a
primitive code that had a full Smalltalk context. Naturally,
the `return` did not cleaned up the context, therefore the crash.
This should fix issue #171.
https://swing.fit.cvut.cz/projects/stx-jv/ticket/171
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 17 Jan 2018 22:03:19 +0000] rev 23098
Cleanup: catchup after ranema of `__getConfigurationString()` to `__getBuildDateString()`
...in `stx:librun`
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 11 Jan 2018 23:40:14 +0000] rev 23097
Win32: Unified interface of `Win32OperatingSystem` and `UnixOperatingSystem` w.r.t. executing external programs
Historically the second parameter to `#exec:commandPath withArguments:env...`
must have been an array of arrguments on Unix and (properly quoted)
command string on Windows.
This required every direct or indirect user of this method
to check for operating system and, on Windows, care for quoting
herself. Quoting is notoriously difficult to do that lead
to various problems.
This commit unifies the interface by allowing second argument
to be an array of arguments (just like on Unix) and the
`Win32OperatingSystem` itself performs the quoting (hopefully
right). For backward compatibility, String argument is also
supported. In that case it's assumet the user did the quoting.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 12 Dec 2017 08:57:23 +0000] rev 23096
Issue 94: make #inflate safe w.r.t inflating an unlocked lock
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 11 Dec 2017 14:14:42 +0000] rev 23095
Issue 94: fixed a bad bug in #acquireWithTimeoutMs:
Obviously, we MUST check whether we the wait for lock timed
out or not. How comes I did not notice before? Maybe my Linux
machine is so fast it never timed out. Sigh.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 11 Dec 2017 11:36:00 +0000] rev 23094
Issue 94: fixed a bad bug in #critical: unwind mechanism.
When unwiding a #critical: frame, there are two (only two?) cases:
1. the critical section is executing aand being unwound
2. the process calling #critical: is waiting inside #acquire...
for some other process to release it.
In the first case we have to call `#release`, in the second we
MUST NOT since other process owns the lock. To distinguish, we
check whether we own the lock or not by
self owner == Processor activeProcess
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 21 Nov 2017 21:31:18 +0000] rev 23093
Issue #80: remove initialization of `Language` and `LanguageTerritory` globals.
Application should alway use `UserPreferences current language` resp.
`UserPreferences current languageTerritory` instead.
See https://swing.fit.cvut.cz/projects/stx-jv/ticket/80
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 20 Nov 2017 14:23:33 +0100] rev 23092
Issue #80: keep language settings in `UserPreferences`
...not in `Smalltalk`. For backward compatibility, delegate
`Smalltalk class >> #language` (and `#languageTerritory`) to
`UserPreferences current`.
See https://swing.fit.cvut.cz/projects/stx-jv/ticket/80
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 19 Nov 2017 14:58:45 -0300] rev 23091
Issue #80: added `AbstractOperatingSystem class >> #getLanguage` and `#getLanguageTerritory`
...that return operating system defined locale.
See https://swing.fit.cvut.cz/projects/stx-jv/ticket/80
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 28 Oct 2017 21:47:57 +0100] rev 23090
Issue #94: simplified `RecursionLock >> #critical:`
Nore, that `#acquireWithTimeoutMs:` may never fail when
timeout is nil (meaning wait indefinitely).
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 09 Oct 2017 00:08:34 +0100] rev 23089
Improved comment in `ObjectMemory >> newSpaceSize:`
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 04 Oct 2017 21:32:06 +0100] rev 23088
Merge of feature-94-revamp-thinlocks
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 08 Aug 2017 16:46:35 +0100] rev 23087
Issue 171: temporarily backed out changeset a68e1e09f73a
...as it causes VM to crash in `Smalltalk >> #keys`.
See https://swing.fit.cvut.cz/projects/stx-jv/ticket/171
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 01 Sep 2017 05:10:15 +0100] rev 23086
Issue #94 [8/x]: improved documentation on locking
Jan Vrany <jan.vrany@fit.cvut.cz> [Thu, 31 Aug 2017 10:17:00 +0100] rev 23085
Issue #94 [7/x]: Optimize `RecursionLock >> #critical:`
...to avoid block creation and send to #ensure:. This should yield
make it considerably faster at the cost of tricky code.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 30 Aug 2017 12:38:37 +0100] rev 23084
Issue #94 [6/x]: refactor `RecursionLock` to use thinlocks.
Use thinlocking in `RecursionLock` to speed up the common case
(no contention). The code is clearly not optimal, further
optimization will come later.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 29 Aug 2017 10:05:32 +0100] rev 23083
Issue #94 [5/x]: introduce an `AbstractLock`
...a base superclass for owned reentrant locks (currently: `RecursionLock`
and `JavaMonitor`). Provides a generic but somewhat slow implementation
of `#acquire`, `#release`and `#critical:` (and their variants).
Jan Vrany <jan.vrany@fit.cvut.cz> [Fri, 25 Aug 2017 10:06:39 +0100] rev 23082
Issue #94 [4/x]: revamp of `RecursionLock`
...to make it more like a Java monitor:
* Implement #acquire, #acquireWithTimeoutMs: and #release
* Reimplement #critical: by means of #acquire and #release
* Reimplement #critical:timeoutMs:.. by means of
#acquireWithTimeoutMs: and #release