Loading ...
Sorry, an error occurred while loading the content.

Update for MzScheme interface

Expand Messages
  • Sergey Khorev
    Hi, Attached is an update for MzScheme interface. It features: * Improved interaction with garbage collector in newer versions of Racket: leaving SIGSEGV to
    Message 1 of 20 , Nov 19, 2012
    • 0 Attachment
      Hi,

      Attached is an update for MzScheme interface. It features:

      * Improved interaction with garbage collector in newer versions of
      Racket: leaving SIGSEGV to GC, references to buffer/windows are now
      truly uncollectable.
      * Simplified and cleaned up macros: now Vim uses the latest API and
      compatibility macros allow to use older versions of MzScheme.
      Previously we used macros that made new API look like an older one.
      * eval function of the interface is now able to convert Vim funcrefs
      into Scheme functions

      --
      Sergey Khorev
      http://sites.google.com/site/khorser
      Can anybody think of a good tagline I can steal?

      --
      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
    • Bram Moolenaar
      ... That s a big patch. I ll await if someone has comments. This looks weird: -#ifdef SIGSEGV +#if defined(SIGSEGV) && !defined(FEAT_MZSCHEME) + /*
      Message 2 of 20 , Nov 20, 2012
      • 0 Attachment
        Sergey Khorev wrote:

        > Attached is an update for MzScheme interface. It features:
        >
        > * Improved interaction with garbage collector in newer versions of
        > Racket: leaving SIGSEGV to GC, references to buffer/windows are now
        > truly uncollectable.
        > * Simplified and cleaned up macros: now Vim uses the latest API and
        > compatibility macros allow to use older versions of MzScheme.
        > Previously we used macros that made new API look like an older one.
        > * eval function of the interface is now able to convert Vim funcrefs
        > into Scheme functions

        That's a big patch. I'll await if someone has comments.

        This looks weird:

        -#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?

        --
        Don't read everything you believe.

        /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
        /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
        \\\ an exciting new programming language -- http://www.Zimbu.org ///
        \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

        --
        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
      • Bram Moolenaar
        Sergey Khorev wrote: I have a problem building with the MzScheme interface on a newly updated Ubuntu 12.10 system. The errors are:
        Message 3 of 20 , Nov 20, 2012
        • 0 Attachment
          Sergey Khorev wrote:

          I have a problem building with the MzScheme interface on a newly updated
          Ubuntu 12.10 system. The errors are:

          /home/mool/vim/vim73/src/if_mzsch.c|632 col 3| error: #error MzScheme 4.x must include mzscheme_base.c, for MinGW32 you need to define MZSCHEME_GENERATE_BASE=yes
          || if_mzsch.c: In function ‘startup_mzscheme’:
          /home/mool/vim/vim73/src/if_mzsch.c|902 col 27| warning: assignment from incompatible pointer type [enabled by default]
          || if_mzsch.c: In function ‘do_flush’:
          /home/mool/vim/vim73/src/if_mzsch.c|1375 col 5| warning: passing argument 2 of ‘scheme_get_sized_byte_string_output’ from incompatible pointer type [enabled by default]
          /usr/include/racket/schemef.h|886 col 17| note: expected ‘intptr_t *’ but argument is of type ‘long int *’
          /home/mool/vim/vim73/src/if_mzsch.c|1383 col 5| warning: passing argument 2 of ‘scheme_get_sized_byte_string_output’ from incompatible pointer type [enabled by default]
          /usr/include/racket/schemef.h|886 col 17| note: expected ‘intptr_t *’ but argument is of type ‘long int *’
          || if_mzsch.c: In function ‘string_to_line’:
          /home/mool/vim/vim73/src/if_mzsch.c|2594 col 5| warning: passing argument 2 of ‘scheme_display_to_string’ from incompatible pointer type [enabled by default]
          /usr/include/racket/schemef.h|752 col 17| note: expected ‘intptr_t *’ but argument is of type ‘long int *’

          I don't see where INCLUDE_MZSCHEME_BASE is defined. Is something missing
          in configure.in? Your patch does not appear to fix this (haven't
          actually tried though).

          --
          Well, you come from nothing, you go back to nothing... What have you
          lost? Nothing!
          -- Monty Python: The life of Brian

          /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
          /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
          \\\ an exciting new programming language -- http://www.Zimbu.org ///
          \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

          --
          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
        • Sergey Khorev
          Hi, ... Have you run make autoconf? I didn t include rebuilt auto/configure because my version of autoconf is older than yours. ... When GC traverses heap or
          Message 4 of 20 , Nov 20, 2012
          • 0 Attachment
            Hi,

            > I have a problem building with the MzScheme interface on a newly updated
            > Ubuntu 12.10 system. The errors are:
            >
            > /home/mool/vim/vim73/src/if_mzsch.c|632 col 3| error: #error MzScheme 4.x must include mzscheme_base.c, for MinGW32 you need to define MZSCHEME_GENERATE_BASE=yes
            > || if_mzsch.c: In function ‘startup_mzscheme’:

            Have you run make autoconf? I didn't include rebuilt auto/configure
            because my version of autoconf is older than yours.

            > This looks weird:

            > -#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..

            --
            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
          • Bram Moolenaar
            ... Yes, autoconf has run. As I said, I don t see MZSCHEME_GENERATE_BASE defined in the configure script anywhere. ... I do not think it s guaranteed one can
            Message 5 of 20 , Nov 20, 2012
            • 0 Attachment
              Sergey Khorev wrote:

              > > I have a problem building with the MzScheme interface on a newly updated
              > > Ubuntu 12.10 system. The errors are:
              > >
              > > /home/mool/vim/vim73/src/if_mzsch.c|632 col 3| error: #error
              > > MzScheme 4.x must include mzscheme_base.c, for MinGW32 you need to
              > > define MZSCHEME_GENERATE_BASE=yes
              > > || if_mzsch.c: In function ‘startup_mzscheme’:
              >
              > Have you run make autoconf? I didn't include rebuilt auto/configure
              > because my version of autoconf is older than yours.

              Yes, autoconf has run. As I said, I don't see MZSCHEME_GENERATE_BASE
              defined in the configure script anywhere.

              > > This looks weird:
              >
              > > -#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.

              --
              hundred-and-one symptoms of being an internet addict:
              44. Your friends no longer send you e-mail...they just log on to your IRC
              channel.

              /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
              /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
              \\\ an exciting new programming language -- http://www.Zimbu.org ///
              \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

              --
              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
            • Sergey Khorev
              ... 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
              Message 6 of 20 , Nov 20, 2012
              • 0 Attachment
                > 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
              • Tim Brown
                On 21 Nov 2012 04:17, Sergey Khorev ... I can vouch for that. The Solaris memory debugging tools have to be told to
                Message 7 of 20 , Nov 21, 2012
                • 0 Attachment

                  On 21 Nov 2012 04:17, "Sergey Khorev" <sergey.khorev@gmail.com> wrote:

                  > Bram wrote:
                  > > 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.

                  I can vouch for that. The Solaris memory debugging tools have to be told to ignore SEGV when using the Boehm GC, which apparently use this mechanism, and recovers from it every time... (otherwise it signals on pretty well the first mallocation - busting the tools).

                  Tim

                  --
                  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
                • Tim Brown
                  Sergey, are you testing this on Racket-5 (5.3 series, 5.3.1 November 2012)? Tim -- ... -- You received this message from the vim_dev maillist. Do not
                  Message 8 of 20 , Nov 21, 2012
                  • 0 Attachment
                    Sergey, are you testing this on Racket-5 (5.3 series, 5.3.1 November 2012)?

                    Tim

                    --
                    | Tim Brown <tim.brown@...> | M:+44(0)7771714159 | H:+44(0)1372747875 |

                    --
                    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
                  • Sergey Khorev
                    ... Hi Tim, most of the time I tested it with 5.2.1 but did some checks on 5.3.1 too. -- You received this message from the vim_dev maillist. Do not
                    Message 9 of 20 , Nov 21, 2012
                    • 0 Attachment
                      > Sergey, are you testing this on Racket-5 (5.3 series, 5.3.1 November 2012)?
                      >

                      Hi Tim, most of the time I tested it with 5.2.1 but did some checks on
                      5.3.1 too.

                      --
                      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
                    • Bram Moolenaar
                      ... Configure never defines INCLUDE_MZSCHEME_BASE, right? Thus in this code: /* need to put it here for dynamic stuff to work */ #if
                      Message 10 of 20 , Nov 22, 2012
                      • 0 Attachment
                        Sergey Khorev wrote:

                        > > 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
                        > ---

                        Configure never defines INCLUDE_MZSCHEME_BASE, right? Thus in this
                        code:

                        /* need to put it here for dynamic stuff to work */
                        #if defined(INCLUDE_MZSCHEME_BASE)
                        # include "mzscheme_base.c"
                        #elif MZSCHEME_VERSION_MAJOR >= 400
                        # error MzScheme 4.x must include mzscheme_base.c, for MinGW32 you need to define MZSCHEME_GENERATE_BASE=yes
                        #endif


                        When MZSCHEME_VERSION_MAJOR is 400 or larger, it will fail.

                        What MzScheme pacakge do you have installed? I could not find anything
                        for "mzscheme" so I installed plt-scheme with racket, version 5.2.1

                        --
                        hundred-and-one symptoms of being an internet addict:
                        54. You start tilting your head sideways to smile. :-)

                        /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                        /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                        \\\ an exciting new programming language -- http://www.Zimbu.org ///
                        \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

                        --
                        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
                      • Sergey Khorev
                        ... I installed just racket package. If your installation was upgraded from an earlier version, can you check if you still have /usr/lib/racket/collects
                        Message 11 of 20 , Nov 22, 2012
                        • 0 Attachment
                          >> > 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
                          >> ---
                          >
                          > Configure never defines INCLUDE_MZSCHEME_BASE, right? Thus in this
                          > code:
                          >
                          > /* need to put it here for dynamic stuff to work */
                          > #if defined(INCLUDE_MZSCHEME_BASE)
                          > # include "mzscheme_base.c"
                          > #elif MZSCHEME_VERSION_MAJOR >= 400
                          > # error MzScheme 4.x must include mzscheme_base.c, for MinGW32 you need to define MZSCHEME_GENERATE_BASE=yes
                          > #endif
                          >
                          >
                          > When MZSCHEME_VERSION_MAJOR is 400 or larger, it will fail.
                          >
                          > What MzScheme pacakge do you have installed? I could not find anything
                          > for "mzscheme" so I installed plt-scheme with racket, version 5.2.1

                          I installed just racket package. If your installation was upgraded
                          from an earlier version, can you check if you still have
                          /usr/lib/racket/collects directory? At some point in time, Debian
                          changed collects directory from /usr/lib/racket/collects to
                          /usr/share/racket/collects

                          The logic of configure is as follows: supposing mzscheme executable
                          was found in {pfx} it tries to check if {pfx}/lib/collects exists. If
                          so, it assumes it is the main directory for collections. Otherwise it
                          tries {pfx}/share/collects.
                          Then it checks if scheme/base.ss or scheme/base.rkt exist. If found,
                          it assumes we need to generate mzscheme_base.c and defines
                          MZSCHEME_EXTRA and adds -DINCLUDE_MZSCHEME_BASE to MZSCHEME_CFLAGS

                          Apparently it found /usr/lib/racket/collects on your system but the
                          directory is empty.

                          --
                          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
                        • Bram Moolenaar
                          ... No, the directory is /share/collects. Configure doesn t find it. I have changed configure.in and now it seems to work. I ll do some more checks and send
                          Message 12 of 20 , Nov 23, 2012
                          • 0 Attachment
                            Sergey Khorev wrote:

                            > >> > 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
                            > >> ---
                            > >
                            > > Configure never defines INCLUDE_MZSCHEME_BASE, right? Thus in this
                            > > code:
                            > >
                            > > /* need to put it here for dynamic stuff to work */
                            > > #if defined(INCLUDE_MZSCHEME_BASE)
                            > > # include "mzscheme_base.c"
                            > > #elif MZSCHEME_VERSION_MAJOR >= 400
                            > > # error MzScheme 4.x must include mzscheme_base.c, for MinGW32 you need to define MZSCHEME_GENERATE_BASE=yes
                            > > #endif
                            > >
                            > >
                            > > When MZSCHEME_VERSION_MAJOR is 400 or larger, it will fail.
                            > >
                            > > What MzScheme pacakge do you have installed? I could not find anything
                            > > for "mzscheme" so I installed plt-scheme with racket, version 5.2.1
                            >
                            > I installed just racket package. If your installation was upgraded
                            > from an earlier version, can you check if you still have
                            > /usr/lib/racket/collects directory? At some point in time, Debian
                            > changed collects directory from /usr/lib/racket/collects to
                            > /usr/share/racket/collects
                            >
                            > The logic of configure is as follows: supposing mzscheme executable
                            > was found in {pfx} it tries to check if {pfx}/lib/collects exists. If
                            > so, it assumes it is the main directory for collections. Otherwise it
                            > tries {pfx}/share/collects.
                            > Then it checks if scheme/base.ss or scheme/base.rkt exist. If found,
                            > it assumes we need to generate mzscheme_base.c and defines
                            > MZSCHEME_EXTRA and adds -DINCLUDE_MZSCHEME_BASE to MZSCHEME_CFLAGS
                            >
                            > Apparently it found /usr/lib/racket/collects on your system but the
                            > directory is empty.

                            No, the directory is /share/collects. Configure doesn't find it. I
                            have changed configure.in and now it seems to work. I'll do some more
                            checks and send out the patch.

                            --
                            Keyboard not found. Think ENTER to continue.

                            /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                            /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                            \\\ an exciting new programming language -- http://www.Zimbu.org ///
                            \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

                            --
                            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
                          • Sergey Khorev
                            ... Thanks. Your variant worked for me as well. -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you
                            Message 13 of 20 , Nov 23, 2012
                            • 0 Attachment
                              > No, the directory is /share/collects. Configure doesn't find it. I
                              > have changed configure.in and now it seems to work. I'll do some more
                              > checks and send out the patch.

                              Thanks. Your variant worked for me as well.

                              --
                              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
                            • Bram Moolenaar
                              Sergey - You sent me a patch two months ago. Did you make an update since then? Please send me the patch again to make sure it works with the current source
                              Message 14 of 20 , Jan 23, 2013
                              • 0 Attachment
                                Sergey -

                                You sent me a patch two months ago. Did you make an update since then?
                                Please send me the patch again to make sure it works with the current
                                source code.

                                - Bram

                                --
                                FATHER: Did you kill all those guards?
                                LAUNCELOT: Yes ... I'm very sorry ...
                                FATHER: They cost fifty pounds each!
                                "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

                                /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                                /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                                \\\ an exciting new programming language -- http://www.Zimbu.org ///
                                \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

                                --
                                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
                              • Sergey Khorev
                                Hi Bram ... Here is an updated patch. As of another issue with messages on stderr when Vim creates a process, this will be fixed in later Racket versions. --
                                Message 15 of 20 , Jan 28, 2013
                                • 0 Attachment
                                  Hi Bram

                                  On Wed, Jan 23, 2013 at 5:12 PM, Bram Moolenaar <Bram@...> wrote:

                                  You sent me a patch two months ago.  Did you make an update since then?
                                  Please send me the patch again to make sure it works with the current
                                  source code.

                                  Here is an updated patch. As of another issue with messages on stderr when Vim creates a process, this will be fixed in later Racket versions.

                                  --
                                  --
                                  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
                                   
                                  ---
                                  You received this message because you are subscribed to the Google Groups "vim_dev" group.
                                  To unsubscribe from this group, send email to vim_dev+unsubscribe@....
                                  For more options, visit https://groups.google.com/groups/opt_out.
                                   
                                   
                                • Bram Moolenaar
                                  ... Thanks. I ll try out this patch soon. -- ARTHUR: Be quiet! DENNIS: Well you can t expect to wield supreme executive power just cause some watery tart
                                  Message 16 of 20 , Jan 28, 2013
                                  • 0 Attachment
                                    Sergey Khorev wrote:

                                    > On Wed, Jan 23, 2013 at 5:12 PM, Bram Moolenaar <Bram@...> wrote:
                                    >
                                    > >
                                    > > You sent me a patch two months ago. Did you make an update since then?
                                    > > Please send me the patch again to make sure it works with the current
                                    > > source code.
                                    >
                                    >
                                    > Here is an updated patch. As of another issue with messages on stderr when
                                    > Vim creates a process, this will be fixed in later Racket versions.

                                    Thanks. I'll try out this patch soon.

                                    --
                                    ARTHUR: Be quiet!
                                    DENNIS: Well you can't expect to wield supreme executive power just 'cause
                                    some watery tart threw a sword at you!
                                    ARTHUR: Shut up!
                                    DENNIS: I mean, if I went around sayin' I was an empereror just because some
                                    moistened bint had lobbed a scimitar at me they'd put me away!
                                    The Quest for the Holy Grail (Monty Python)

                                    /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                                    /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                                    \\\ an exciting new programming language -- http://www.Zimbu.org ///
                                    \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

                                    --
                                    --
                                    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

                                    ---
                                    You received this message because you are subscribed to the Google Groups "vim_dev" group.
                                    To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@....
                                    For more options, visit https://groups.google.com/groups/opt_out.
                                  • Bram Moolenaar
                                    ... I have now included the patch and will send it out. I can t possibly verify this works, other than building and testing on my computer. ... to ... Please
                                    Message 17 of 20 , Jan 30, 2013
                                    • 0 Attachment
                                      Sergey Khorev wrote:

                                      > On Wed, Jan 23, 2013 at 5:12 PM, Bram Moolenaar <Bram@...> wrote:
                                      >
                                      > >
                                      > > You sent me a patch two months ago. Did you make an update since then?
                                      > > Please send me the patch again to make sure it works with the current
                                      > > source code.
                                      >
                                      >
                                      > Here is an updated patch. As of another issue with messages on stderr when
                                      > Vim creates a process, this will be fixed in later Racket versions.

                                      I have now included the patch and will send it out. I can't possibly
                                      verify this works, other than building and testing on my computer.

                                      Test 70 fails. I worked around it for now by changing:

                                      :if l2[2] == l2

                                      to

                                      :if l2[2] == "item2"

                                      Please find out what the proper solution is.

                                      --
                                      -rwxr-xr-x 1 root 24 Oct 29 1929 /bin/ed
                                      -rwxr-xr-t 4 root 131720 Jan 1 1970 /usr/ucb/vi
                                      -rwxr-xr-x 1 root 5.89824e37 Oct 22 1990 /usr/bin/emacs

                                      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                                      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                                      \\\ an exciting new programming language -- http://www.Zimbu.org ///
                                      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

                                      --
                                      --
                                      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

                                      ---
                                      You received this message because you are subscribed to the Google Groups "vim_dev" group.
                                      To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@....
                                      For more options, visit https://groups.google.com/groups/opt_out.
                                    • Sergey Khorev
                                      ... Thanks Bram. Will check it out. -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are
                                      Message 18 of 20 , Jan 30, 2013
                                      • 0 Attachment
                                        Test 70 fails.  I worked around it for now by changing:

                                                :if l2[2] == l2

                                        to

                                                :if l2[2] == "item2"

                                        Please find out what the proper solution is.

                                        Thanks Bram. Will check it out.
                                         

                                        --
                                        --
                                        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
                                         
                                        ---
                                        You received this message because you are subscribed to the Google Groups "vim_dev" group.
                                        To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@....
                                        For more options, visit https://groups.google.com/groups/opt_out.
                                         
                                         
                                      • Sergey Khorev
                                        Bram, ... This was caused by a part of patch from Eric Dobson. I restricted the scope of this change to Mac only and test 70 has passed on Linux and Windows.
                                        Message 19 of 20 , Jan 31, 2013
                                        • 0 Attachment
                                          Bram,

                                          Test 70 fails.  I worked around it for now by changing:

                                                  :if l2[2] == l2

                                          to

                                                  :if l2[2] == "item2"

                                          This was caused by a part of patch from Eric Dobson. I restricted the scope of this change to Mac only and test 70 has passed on Linux and Windows.
                                          Please find the patch attached.

                                          --
                                          --
                                          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
                                           
                                          ---
                                          You received this message because you are subscribed to the Google Groups "vim_dev" group.
                                          To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@....
                                          For more options, visit https://groups.google.com/groups/opt_out.
                                           
                                           
                                        • Bram Moolenaar
                                          ... Thanks for the fix. I m glad a test caught the problem. -- Mental Floss prevents moral decay! /// Bram Moolenaar -- Bram@Moolenaar.net --
                                          Message 20 of 20 , Jan 31, 2013
                                          • 0 Attachment
                                            Sergey Khorev wrote:

                                            > >> Test 70 fails. I worked around it for now by changing:
                                            > >>
                                            > >> :if l2[2] == l2
                                            > >>
                                            > >> to
                                            > >>
                                            > >> :if l2[2] == "item2"
                                            > >>
                                            > >
                                            > This was caused by a part of patch from Eric Dobson. I restricted the scope
                                            > of this change to Mac only and test 70 has passed on Linux and Windows.
                                            > Please find the patch attached.

                                            Thanks for the fix. I'm glad a test caught the problem.

                                            --
                                            Mental Floss prevents moral decay!

                                            /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                                            /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                                            \\\ an exciting new programming language -- http://www.Zimbu.org ///
                                            \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

                                            --
                                            --
                                            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

                                            ---
                                            You received this message because you are subscribed to the Google Groups "vim_dev" group.
                                            To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@....
                                            For more options, visit https://groups.google.com/groups/opt_out.
                                          Your message has been successfully submitted and would be delivered to recipients shortly.