Bigloo Patches
I have used the
Bigloo Scheme compiler on a number of projects.
Under Windows, I use a modified version of the
native Windows distribution of Bigloo with the
Microsoft Visual C++ compiler as the back end. In the process, I have accumulated a few patches.
You can
browse the patches here. They are described below.
Table of Contents
elong Fix
Bigloo 2.8c has a bug in its implementation of the
elong and
llong types on non-
gcc compilers. You can read about it in this thread:
http://thread.gmane.org/gmane.lisp.scheme.bigloo/3081
The patch named
bigloo2.8c-msvc-elong-fix.patch fixes the
elong type. The fix for
llong would proceed in a similar fashion to the
elong fix, though I don't provide one here.
string-index Modification
The
string-index function as implemented in Bigloo 2.8c does not conform to
SRFI 13. You can read about it in this thread:
http://thread.gmane.org/gmane.lisp.scheme.bigloo/3043/focus=3077
The patch named
bigloo2.8c-string-index-mod.patch changes
string-index to return
#f when no match is found.
current-thread Modification
In Bigloo 2.8c, calling the
current-thread function from the main thread leads to a crash.
The patch named
bigloo2.8c-current-thread-mod.patch adds a dynamic environment for the main thread so
current-thread can be called from it.
mutex-lock!, mutex-unlock!, and condition-variable-wait! Modifications
In Bigloo 2.8c, the
mutex-lock! and the
condition-variable-wait! functions do not wait indefinitely when no timeout is given, and the
mutex-unlock! function does not take the optional condition variable and timeout arguments as specified in
SRFI 18.
The patch named
bigloo2.8c-mutex-and-condition-variable-mod.patch changes
mutex-lock! and the
condition-variable-wait! to wait indefinitely when no timeout is given and adds to
mutex-unlock! support for the optional condition variable and timeout arguments.