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.