> Yes, autoconf has run. As I said, I don't see MZSCHEME_GENERATE_BASE
> defined in the configure script anywhere.
I tested this on a fresh install of Ubuntu 12.10.
Speaking of the error message, it specifically refers to MinGW because
I wasn't able to write anything more or less automatic for MinGW. On
Unix systems this is handled like below.
auto/configure:
---
if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
SCHEME_COLLECTS=lib/plt/
else
if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
SCHEME_COLLECTS=lib/racket/
else
if test -d $vi_cv_path_mzscheme_pfx/share/racket/collects; then
SCHEME_COLLECTS=share/racket/
fi
fi
fi
if test -f
"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss"
; then
MZSCHEME_EXTRA="mzscheme_base.c"
else
if test -f
"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt"
; then
MZSCHEME_EXTRA="mzscheme_base.c"
fi
fi
if test "X$MZSCHEME_EXTRA" != "X" ; then
dnl need to generate bytecode for MzScheme base
MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
fi
---
and then this code in Makefile is triggered with
-DINCLUDE_MZSCHEME_BASE making it include mzscheme_base.c
---
objects/if_mzsch.o: if_mzsch.c $(MZSCHEME_EXTRA)
$(CCC) -o $@ $(MZSCHEME_CFLAGS_EXTRA) if_mzsch.c
mzscheme_base.c:
$(MZSCHEME_MZC) --c-mods mzscheme_base.c ++lib scheme/base
---
>> > -#ifdef SIGSEGV
>> > +#if defined(SIGSEGV) && !defined(FEAT_MZSCHEME)
>> > + /* MzScheme uses SEGV in its garbage collector */
>> > {SIGSEGV, "SEGV", TRUE},
>> > #endif
>> > How can a garbage collector use SEGV and still handle real errors
>> > properly? With this change a SEGV would trigger the garbage collector
>> > and then what? Crash-loop?
>>
>> When GC traverses heap or stack, it uses SIGSEGV as a sign that it
>> reached the end of allocated memory. Unfortunately it assumes that the
>> host application will not want to handle SIGSEGV itself. If the
>> application receives genuine SIGSEGV it will follow the normal
>> procedure with "core dumped" etc..
>
> I do not think it's guaranteed one can recover from a SIGSEGV. Or that
> you always get a SIGSEGV when accessing memory that doesn't exist,
> e.g. when running valgrind. Thus that's a problem in MzScheme.
Beside reference counting, there are lots of different GC algorithms.
Actually even Boehm GC may use SIGSEGV when traversing memory.
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php