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

Re: vim +perl etc. on OS X

Expand Messages
  • Bram Moolenaar
    ... I asked the MacPython expert about this. His reaction was that it s not a good idea to include Python for 10.3. For 10.2 installing a recent MacPython
    Message 1 of 17 , Jan 15, 2004
    • 0 Attachment
      Benji Fisher wrote:

      > > Among other things. It's pretty hard to build something +python that
      > > works on 10.2 and 10.3 without actually including Python itself (which
      > > is possible and actually pretty easy since Python is a framework).
      >
      > Should we move in this direction? That is, should we make the
      > binary distribution for OS X as portable as possible? It would be
      > simpler to have two versions (one huge, including the python, perl, ...
      > libraries that it uses, one with no support for python, perl, etc.) than
      > to have one version for 10.1, one for 10.2, one for 10.3, ...

      I asked the MacPython expert about this. His reaction was that it's not
      a good idea to include Python for 10.3. For 10.2 installing a recent
      MacPython version is best.

      It's very likely not possible to make a Vim that runs on both 10.2 and
      10.3, unless we leave out things that are new on 10.3 (e.g., iconv).

      For now, I would think it's best to make a Vim version for 10.2 and one
      for 10.3 in such a way that it doesn't require other installing things.
      I dislike the idea of requiring MacPython version n.m first and
      including it makes the distribution big and may cause new problems.

      It seems that the idea to make one Vim binary for all 10.x versions is
      bound to fail... :-(.

      --
      If I tell you "you have a beautiful body", would you hold it against me?

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
      \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
    • Benji Fisher
      ... Tweaking the configure script is not easy. I prefer to leave that for people who understand autoconf. As for perl, I assume there is a reason not to link
      Message 2 of 17 , Jan 16, 2004
      • 0 Attachment
        On Wed, Jan 14, 2004 at 10:07:32AM -0700, Ken Scott wrote:
        >
        > On Jan 14, 2004, at 8:39 AM, Bob Ippolito wrote:
        >
        > >[snip]
        >
        > >That's bizarre, because Python is threaded on OS X 10.3 ... I wonder
        > >what the deal is with that? Is a threaded Python ok because it has
        > >the GIL, or should a non-threaded version be in Vim as well? Or
        > >maybe.. Vim's configure script should take a threaded Perl?
        > >
        >
        > If someone can talk me through modifying the configure script, I'll try
        > building it to accept the threaded perl, and see if it can do basic
        > things or not.

        Tweaking the configure script is not easy. I prefer to leave that
        for people who understand autoconf. As for perl, I assume there is a
        reason not to link against a threaded version. Bram?

        --Benji Fisher
      • Bram Moolenaar
        ... I do not know why Perl without threads is refused. There is an explicit configure check for it, thus there must be a good reason. But perhaps it was only
        Message 3 of 17 , Jan 16, 2004
        • 0 Attachment
          Benji Fisher wrote:

          > On Wed, Jan 14, 2004 at 10:07:32AM -0700, Ken Scott wrote:
          > >
          > > On Jan 14, 2004, at 8:39 AM, Bob Ippolito wrote:
          > >
          > > >[snip]
          > >
          > > >That's bizarre, because Python is threaded on OS X 10.3 ... I wonder
          > > >what the deal is with that? Is a threaded Python ok because it has
          > > >the GIL, or should a non-threaded version be in Vim as well? Or
          > > >maybe.. Vim's configure script should take a threaded Perl?
          > > >
          > >
          > > If someone can talk me through modifying the configure script, I'll try
          > > building it to accept the threaded perl, and see if it can do basic
          > > things or not.
          >
          > Tweaking the configure script is not easy. I prefer to leave that
          > for people who understand autoconf. As for perl, I assume there is a
          > reason not to link against a threaded version. Bram?

          I do not know why Perl without threads is refused. There is an explicit
          configure check for it, thus there must be a good reason. But perhaps
          it was only for an old version of Perl? It's also possible that
          if_perl.xs is not prepared for threading.

          You could edit src/auto/configure, search for "usethreads" and insert
          this below the "eval" command:

          usethreads=undef

          Look out or compile errors and warnings in if_perl.c.

          --
          "Never be afraid to tell the world who you are."
          -- Anonymous

          /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
          /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
          \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
          \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
        • Ken Scott
          ... I did this; the only warning I saw was a warning for an unused variable. At the end, near the ld steps, I was getting a message that /usr/local/lib does
          Message 4 of 17 , Jan 16, 2004
          • 0 Attachment
            On Jan 16, 2004, at 6:03 AM, Bram Moolenaar wrote:

            >
            > Benji Fisher wrote:
            >
            >> On Wed, Jan 14, 2004 at 10:07:32AM -0700, Ken Scott wrote:
            >>>
            >>> On Jan 14, 2004, at 8:39 AM, Bob Ippolito wrote:
            >>>
            >>>> [snip]
            >>>
            >>>> That's bizarre, because Python is threaded on OS X 10.3 ... I wonder
            >>>> what the deal is with that? Is a threaded Python ok because it has
            >>>> the GIL, or should a non-threaded version be in Vim as well? Or
            >>>> maybe.. Vim's configure script should take a threaded Perl?
            >>>>
            >>>
            >>> If someone can talk me through modifying the configure script, I'll
            >>> try
            >>> building it to accept the threaded perl, and see if it can do basic
            >>> things or not.
            >>
            >> Tweaking the configure script is not easy. I prefer to leave
            >> that
            >> for people who understand autoconf. As for perl, I assume there is a
            >> reason not to link against a threaded version. Bram?
            >
            > I do not know why Perl without threads is refused. There is an
            > explicit
            > configure check for it, thus there must be a good reason. But perhaps
            > it was only for an old version of Perl? It's also possible that
            > if_perl.xs is not prepared for threading.
            >
            > You could edit src/auto/configure, search for "usethreads" and insert
            > this below the "eval" command:
            >
            > usethreads=undef
            >
            > Look out or compile errors and warnings in if_perl.c.

            I did this; the only warning I saw was a warning for an unused
            variable. At the end, near the ld steps, I was getting a message that
            /usr/local/lib does not exist, but I do not think that harmed anything.

            I ran the Vim.app that was created. It shows +perl, and I am able to
            run :perl VIM::Msg("This is from Perl in Vim") and get the message
            displayed. I think this means that the perl interface is working on
            some very basic level. I do not have the expertise to test this more
            fully.

            I am now playing in the auto/configure script to see if the Tcl support
            can be turned on. It was not finding the includes; I am trying to get
            the include from /System/Library/Frameworks/Tcl.framework/Headers to be
            recognized.

            Onward and upwards...

            Ken

            --
            <>< Ken Scott ken@... http://hobbes.optikos.net/~ken

            This is the day that the Lord has made;
            Let us rejoice and be glad in it -- Psalm 118:24
          • Bram Moolenaar
            ... The patch that added the configure check for threads is 6.1.438, made by Aron Griffis. I ll include him in the copy list. Aron, can you tell us how to
            Message 5 of 17 , Jan 16, 2004
            • 0 Attachment
              Ken Scott wrote:

              > > Benji Fisher wrote:
              > >
              > >> On Wed, Jan 14, 2004 at 10:07:32AM -0700, Ken Scott wrote:
              > >>>
              > >>> On Jan 14, 2004, at 8:39 AM, Bob Ippolito wrote:
              > >>>
              > >>>> [snip]
              > >>>
              > >>>> That's bizarre, because Python is threaded on OS X 10.3 ... I wonder
              > >>>> what the deal is with that? Is a threaded Python ok because it has
              > >>>> the GIL, or should a non-threaded version be in Vim as well? Or
              > >>>> maybe.. Vim's configure script should take a threaded Perl?
              > >>>
              > >>> If someone can talk me through modifying the configure script, I'll
              > >>> try building it to accept the threaded perl, and see if it can do
              > >>> basic things or not.
              > >>
              > >> Tweaking the configure script is not easy. I prefer to leave
              > >> that for people who understand autoconf. As for perl, I assume
              > >> there is a reason not to link against a threaded version. Bram?
              > >
              > > I do not know why Perl without threads is refused. There is an
              > > explicit configure check for it, thus there must be a good reason.
              > > But perhaps it was only for an old version of Perl? It's also
              > > possible that if_perl.xs is not prepared for threading.
              > >
              > > You could edit src/auto/configure, search for "usethreads" and insert
              > > this below the "eval" command:
              > >
              > > usethreads=undef
              > >
              > > Look out or compile errors and warnings in if_perl.c.
              >
              > I did this; the only warning I saw was a warning for an unused
              > variable. At the end, near the ld steps, I was getting a message that
              > /usr/local/lib does not exist, but I do not think that harmed anything.
              >
              > I ran the Vim.app that was created. It shows +perl, and I am able to
              > run :perl VIM::Msg("This is from Perl in Vim") and get the message
              > displayed. I think this means that the perl interface is working on
              > some very basic level. I do not have the expertise to test this more
              > fully.
              >
              > I am now playing in the auto/configure script to see if the Tcl support
              > can be turned on. It was not finding the includes; I am trying to get
              > the include from /System/Library/Frameworks/Tcl.framework/Headers to be
              > recognized.
              >
              > Onward and upwards...

              The patch that added the configure check for threads is 6.1.438, made by
              Aron Griffis. I'll include him in the copy list.

              Aron, can you tell us how to test that a threaded Perl will break?
              Could this depend on the Perl version somehow? Perhaps the Perl on Mac
              OSX 10.3 does work.

              --
              Not too long ago, cut and paste was done with scissors and glue...

              /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
              /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
              \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
              \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
            • Aron Griffis
              Bram Moolenaar wrote: [Fri Jan 16 2004, 01:56:47PM EST] ... Last time I tested this was 6.1.411 with Perl 5.8.0. It blew up with link errors like this: gcc
              Message 6 of 17 , Jan 16, 2004
              • 0 Attachment
                Bram Moolenaar wrote: [Fri Jan 16 2004, 01:56:47PM EST]
                > The patch that added the configure check for threads is 6.1.438, made by
                > Aron Griffis. I'll include him in the copy list.

                Last time I tested this was 6.1.411 with Perl 5.8.0. It blew up with
                link errors like this:

                gcc -L/usr/X11R6/lib -rdynamic -L/usr/local/lib -o vim objects/buffer.o objects/charset.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_getln.o objects/fileio.o objects/fold.o objects/getchar.o objects/if_cscope.o objects/if_xcmdsrv.o objects/main.o objects/mark.o objects/memfile.o objects/memline.o objects/menu.o objects/message.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/window.o objects/if_perl.o objects/if_perlsfio.o objects/if_python.o objects/py_config.o objects/version.o -lSM -lICE -lXpm -lXt -lX11 -lSM -lICE -lncurses -lgpm -ldl -rdynamic -L/usr/local/lib /usr/lib/perl5/5.8.0/i686-linux-thread-multi/auto/DynaLoader/DynaLoader.a -L/usr/lib/perl5/5.8.0/i686-linux-thread-multi/CORE -lperl -lpthread -lnsl -ldl -lm -lcrypt -lutil -L/usr/lib/python2.2/config -lpython2.2 -ldl -lpthread -lutil -lm -Xlinker -export-dynamic

                objects/if_perl.o(.text+0x21): In function `ex_perl':
                : undefined reference to `Perl_Gthr_key_ptr'
                objects/if_perl.o(.text+0x33): In function `ex_perl':
                : undefined reference to `Perl_Tstack_sp_ptr'

                The full build log is at

                http://bugs.gentoo.org/attachment.cgi?id=10073&action=view
                http://bugs.gentoo.org/show_bug.cgi?id=18555

                It's possible that this works now with threaded Perl. I suppose that if
                it links it will probably work. I will give it a try and follow up.

                Aron
              • Aron Griffis
                [snipped to be accepted by the vim-mac ML] I just tested. I have perl-5.8.2 installed and I m testing 6.2.140 (with a workaround to allow threaded perl). I
                Message 7 of 17 , Jan 16, 2004
                • 0 Attachment
                  [snipped to be accepted by the vim-mac ML]

                  I just tested. I have perl-5.8.2 installed and I'm testing 6.2.140
                  (with a workaround to allow threaded perl). I get the following output:

                  gcc -L/usr/X11R6/lib -rdynamic -L/usr/local/lib -o vim objects/buffer.o objects/charset.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/fileio.o objects/fold.o objects/getchar.o objects/if_cscope.o objects/if_xcmdsrv.o objects/main.o objects/mark.o objects/memfile.o objects/memline.o objects/menu.o objects/message.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/window.o objects/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o objects/pty.o objects/gui_gtk_f.o objects/gui_beval.o objects/if_perl.o objects/if_perlsfio.o objects/netbeans.o objects/version.o -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lSM -lICE -lncurses -lgpm -ldl -rdynamic -L/usr/local/lib /usr/lib/perl5/5.8.2/i686-linux-thread-multi/auto/DynaLoader/DynaLoader.a -L/usr/lib/perl5/5.8.2/i686-linux-thread-multi/CORE -lperl -ldl -lutil -lc
                  objects/if_perl.o(.text+0x5c): In function `perl_init':
                  /var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:370: undefined reference to `Perl_Gthr_key_ptr'
                  objects/if_perl.o(.text+0x66):/var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:370: undefined reference to `pthread_getspecific'
                  objects/if_perl.o(.text+0x156): In function `newWINrv':
                  /var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:467: undefined reference to `Perl_Gthr_key_ptr'
                  objects/if_perl.o(.text+0x160):/var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:467: undefined reference to `pthread_getspecific'
                  objects/if_perl.o(.text+0x199):/var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:467: undefined reference to `Perl_Gthr_key_ptr'
                  objects/if_perl.o(.text+0x1a3):/var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:467: undefined reference to `pthread_getspecific'
                  objects/if_perl.o(.text+0x1cb):/var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:467: undefined reference to `Perl_Gthr_key_ptr'
                  objects/if_perl.o(.text+0x1d5):/var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:467: undefined reference to `pthread_getspecific'
                  objects/if_perl.o(.text+0x1f8):/var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:467: undefined reference to `Perl_Gthr_key_ptr'
                  objects/if_perl.o(.text+0x202):/var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:467: undefined reference to `pthread_getspecific'
                  objects/if_perl.o(.text+0x222):/var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:467: undefined reference to `Perl_Gthr_key_ptr'
                  objects/if_perl.o(.text+0x22c):/var/tmp/portage/vim-6.2-r5/work/vim62/src/if_perl.xs:467: undefined reference to `pthread_getspecific'
                  ...
                • Bram Moolenaar
                  ... Juan Fuentes suggested that it should work fine without threads and with the newer thread system, but not with Perl 5.5 threads. Later Perl versions can
                  Message 8 of 17 , Jan 17, 2004
                  • 0 Attachment
                    Aron Griffis wrote:

                    > I just tested. I have perl-5.8.2 installed and I'm testing 6.2.140
                    > (with a workaround to allow threaded perl). I get the following output:

                    Juan Fuentes suggested that it should work fine without threads and with
                    the newer thread system, but not with Perl 5.5 threads. Later Perl
                    versions can still be build with the 5.5 threads.

                    I now have the following configure check for Perl threads. Please try
                    this with various versions of Perl.


                    *** ../vim-6.2.181/src/auto/configure Mon Dec 29 21:00:25 2003
                    --- src/auto/configure Sat Jan 17 12:49:31 2004
                    ***************
                    *** 1570,1579 ****

                    if test "X$vi_cv_path_perl" != "X"; then
                    echo $ac_n "checking Perl version""... $ac_c" 1>&6
                    ! echo "configure:1480: checking Perl version" >&5
                    if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
                    eval `$vi_cv_path_perl -V:usethreads`
                    if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
                    echo "$ac_t""OK" 1>&6
                    eval `$vi_cv_path_perl -V:shrpenv`
                    if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
                    --- 1570,1595 ----

                    if test "X$vi_cv_path_perl" != "X"; then
                    echo $ac_n "checking Perl version""... $ac_c" 1>&6
                    ! echo "configure:1574: checking Perl version" >&5
                    if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
                    eval `$vi_cv_path_perl -V:usethreads`
                    if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
                    + badthreads=no
                    + else
                    + if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
                    + eval `$vi_cv_path_perl -V:use5005threads`
                    + if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
                    + badthreads=no
                    + else
                    + badthreads=yes
                    + echo "$ac_t"">>> Perl > 5.6 with 5.5 threads cannot be used <<<" 1>&6
                    + fi
                    + else
                    + badthreads=yes
                    + echo "$ac_t"">>> Perl 5.5 with threads cannot be used <<<" 1>&6
                    + fi
                    + fi
                    + if test $badthreads = no; then
                    echo "$ac_t""OK" 1>&6
                    eval `$vi_cv_path_perl -V:shrpenv`
                    if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
                    ***************
                    *** 1602,1609 ****
                    #define FEAT_PERL 1
                    EOF

                    - else
                    - echo "$ac_t"">>> Perl with threads cannot be used <<<" 1>&6
                    fi
                    else
                    echo "$ac_t"">>> too old; need Perl version 5.003_01 or later <<<" 1>&6
                    --- 1618,1623 ----

                    --
                    FATHER: Who are you?
                    PRINCE: I'm ... your son ...
                    FATHER: Not you.
                    LAUNCELOT: I'm ... er ... Sir Launcelot, sir.
                    "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/ \\\
                    \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
                    \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
                  Your message has been successfully submitted and would be delivered to recipients shortly.