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

Re: Vim 5.7 / perl 5.6 update

Expand Messages
  • Neil Bird
    ... I think I m beginning to se the light! What seems to work for me is: - change src/Makefile (can t find a Makefile.in?) to do the first line creating
    Message 1 of 5 , Jul 4, 2000
    • 0 Attachment
      Neil Bird wrote:
      > After a distinct lack of response to my Perl compilation problems, I
      > just went to have another stab. I unpacked the rt/src tgz afresh,
      > reconfigured, and remade. ...

      I think I'm beginning to se the light!


      What seems to work for me is:

      - change src/Makefile (can't find a Makefile.in?) to do the first line
      creating if_perl.c on one line, not with a '\' split. Can't explain this
      one.

      - use the attached src/proto/if_perl.pro

      - in src/proto.h, replace the CV #define with:

      # define XS(p) void p __ARGS((void *cv))

      - in if_perl.xs, insert 'pTHXo_' before CV in bootDynLoader & boot_VIM.
      I'd rather have found a way to use XS() here to, but that didn't work.


      Two issues:

      (a) I don't know whether XS() is used to define routines (from perl
      XSUB.h) on other platforms. It's used for my perl 5.5 & 5.6. If it's not,
      I don't know what you can use.

      (b) I don't know how to correlate the perl 5.6ism 'pTHXo_ CV*' with the
      perl 5.5 'CV*' (from the definition of XS()). So, simply including pTHXo_
      in if_perl.xs won't fix anything properly, unless the funny bit in the
      makefile that *creates* if_perl.c differently for different perls also
      creates a dummy '#define pTHXo_' for perl < 5.6

      My vim 5.7.2 now compiles & tests out perfectly, though.


      For ref: Sparc/Solaris 2.5.1, perl 5.6.0 sun4-solaris-thread-multi

      --
      =====================- http://www.racaldefence.com/ -===================
      Neil Bird |
      | If this .signature looks pants,
      mailto:neil.bird@... | then just stop using Outlook!
    • Bram Moolenaar
      ... Strange that you have these problems. It works fine for me, and others have reported that they can compile Vim with Perl without modifications. ... The
      Message 2 of 5 , Jul 4, 2000
      • 0 Attachment
        Neil Bird wrote:

        > After a distinct lack of response to my Perl compilation problems, I
        > just went to have another stab. I unpacked the rt/src tgz afresh,
        > reconfigured, and remade. However, I'm no longer even getting as far as I
        > did before!

        Strange that you have these problems. It works fine for me, and others have
        reported that they can compile Vim with Perl without modifications.

        > /usr97/gnu/bin/perl -e 'unless ( $] >= 5.005 ) \
        > { for (qw(na defgv errgv)) { print "#define PL_$_ $_\n" }}' > if_perl.c
        > Backslash found where operator expected at -e line 1, near ") \"
        > (Missing operator before \?)
        > syntax error at -e line 1, near ") \"
        > Execution of -e aborted due to compilation errors.
        > *** Error code 255
        > make: Warning: Target `if_perl.c' not remade because of errors
        > Current working directory /home/nabird/tmp/install/vim-5.7/src
        >
        >
        > This command (must include the '\' split) works fine under tcsh/csh but
        > gives that error under sh (that make uses) and even bash 2.04.

        The removal of the backslashes is done by the make program. It shouldn't
        matter which shell you are using (although the shell might remove backslashes
        that make left in). Perhaps you are using a different "make" this time?

        The other problems you report seem to be specific for the Sun version of Perl.
        Perhaps this requires re-installing Perl. Otherwise, if many people use this
        Perl version, we might be able to include some configure checks in Vim?

        --
        hundred-and-one symptoms of being an internet addict:
        168. You have your own domain name.

        /// Bram Moolenaar Bram@... http://www.moolenaar.net \\\
        \\\ Vim: http://www.vim.org ICCF Holland: http://iccf-holland.org ///
      • Neil Bird
        ... It is a little bizarre. Maybe some people who re actually following this thread can examine their 5.7 if_perl.c to see what the proc. specs. of things
        Message 3 of 5 , Jul 5, 2000
        • 0 Attachment
          Bram Moolenaar wrote:
          > Strange that you have these problems. It works fine for me, and others
          > have reported that they can compile Vim with Perl without modifications.

          It is a little bizarre. Maybe some people who're actually following this
          thread can examine their 5.7 'if_perl.c' to see what the proc. specs. of
          things like XS_MIV_Msg have come out as (mine are "XS(XS_VIM_Msg)", e.g.),
          and what possible defs. of XS() they have in perl.../CORE/XSUB.h.

          Mine says:

          #if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
          # define XS(name) __declspec(dllexport) void name(pTHXo_ CV* cv)
          #else
          # define XS(name) void name(pTHXo_ CV* cv)
          #endif

          I'll be picking up the second one; that's where that pTHXo_ jobby comes
          from. pTHXo_ is defined in perl.h, but I'm not 100% certain as to what it
          comes out to be. Hang on ...

          void XS_VIM_Msg (register PerlInterpreter *my_perl , CV* cv) ;
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

          My initial guyess would be that it's not 'cos I've built it on a Sun,
          but 'cos I've built the multi-threaded version - but then, I built the
          threaded perl 5.5.

          It's got a definition:

          #ifdef CAN_PROTOTYPE
          #ifdef PERL_OBJECT
          #define XS(name) void name(CV* cv, CPerlObj* pPerl)
          #else
          #define XS(name) void name(CV* cv)
          #endif
          #else
          #define XS(name) void name(cv) CV* cv;
          #endif

          ... but I can't say which of these I used to pick up.


          It still looks to me as if the 'XS()' macro should be used by vim to
          spec. the procedures instead of guessing what that macro outputs.


          > > Backslash found where operator expected at -e line 1, near ") \"
          > > (Missing operator before \?)
          >
          > ... Perhaps you are using a different "make" this time?

          D'Oh! Yes; I have Sun 'make' and GNU's make installed as 'gmake'.
          Previously, vim was one of the few remaining apps. that would build using
          either make, so I've become used to not noticing whcih one I type. I'll
          make a mental note to use gmake for vim now.

          If it wasn't for tha fact that our work stuff relies on things that Sun
          make does that gmake can't, I'd swap permanently!

          [actually, now I come to think about it, for a couple of days recently,
          I've been inadvertantly picking up another version of GNU make *called*
          make, so that probably caused my confusion]

          --
          =====================- http://www.racaldefence.com/ -===================
          Neil Bird |
          | If this .signature looks pants,
          mailto:neil.bird@... | then just stop using Outlook!
        • Dr. Charles E. Campbell
          ... I have perl v5.6.0 built, but I was unable to build a vim with perl support for 5.6*. Guess I could try again. Regards, Dr C -- Charles E Campbell, Jr,
          Message 4 of 5 , Nov 25, 2005
          • 0 Attachment
            Bram Moolenaar wrote:
            > Strange that you have these problems. It works fine for me, and others
            > have reported that they can compile Vim with Perl without modifications.

            I have perl v5.6.0 built, but I was unable to build a vim with perl
            support for 5.6*. Guess I could try again.

            Regards,
            Dr C

            --
            Charles E Campbell, Jr, PhD _ __ __
            Goddard Space Flight Center / /_/\_\_/ /
            cec@... /_/ \/_//_/
            PGP public key: http://www.erols.com/astronaut/pgp.html/
          Your message has been successfully submitted and would be delivered to recipients shortly.