> 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

Raspunde prin e-mail lui