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

Re: macvim OS X 10.9 Mavericks build

Expand Messages
  • Felix Bünemann
    I have VMs with 10.5, 10.6, 10.7, 10.8 with the latest updates and Xcode versions and have verified the patch on those. Testing older versions is hard, because
    Message 1 of 43 , Oct 8, 2013
    • 0 Attachment
      I have VMs with 10.5, 10.6, 10.7, 10.8 with the latest updates and Xcode versions and have verified the patch on those. Testing older versions is hard, because they can't run in a VM or require PPC which is a dying breed.

      I'm pretty sure that AvailabilityMacros.h is available on all versions of OS X, because it's copyright header states 2001-20xx which matches the OS X 10.0 release timeline. Is the os_mac.h code also targeting OS 9? In that case we should add a configure check.

      Felix Bünemann

      Am 07.10.2013 um 23:00 schrieb Douglas Drumond <drumond.douglas@...>:

      Thanks, I don't have access to GM, but when Mavericks is publicly released, I'll upgrade my laptop and I'll have access to the 10.7, 8 and 9.



      2013/10/7 björn <bjorn.winckler@...>
      On Mon, Oct 7, 2013 at 4:34 AM, Felix Bünemann
      <felix.buenemann@...> wrote:
      > Can we get this patch included, now that 10.9 is GM?

      Since it is a bit unclear as to when AvailabilityMacros.h became
      available and since we don't know what the correct #ifdef should be in
      order to only include when it is needed it is a bit difficult making a
      general patch to be included in mainline Vim (it needs to build on
      older version of Mac OS).

      For now I have just merged the patch in the MacVim repository since
      MacVim requires OS X 10.4 or later (and hence we can be sure it is OK
      to include AvailabilityMacros.h ... uh, unless Apple forces the use of
      Availability.h in the future ... I guess we'll have to deal with it
      then).  This way everybody on OS X 10.9 can at least pull from the
      MacVim repo and build Vim / MacVim from there.

      Thanks for the patch,
      Björn

      --
      --
      You received this message from the "vim_mac" 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_mac" group.
      To unsubscribe from this group and stop receiving emails from it, send an email to vim_mac+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • Bram Moolenaar
      ... Then configure wouldn t find it. So one #ifdef would be sufficient. So, these version checks only make sense when not using the configure defined symbol
      Message 43 of 43 , Nov 2, 2013
      • 0 Attachment
        Felix Buenemann wrote:

        > Am 02.11.2013 um 23:40 schrieb Bram Moolenaar <Bram@...>:
        > > Kazunobu Kuriyama wrote:
        > >> On Nov 3, 2013, at 6:09 AM, Bram Moolenaar <Bram@...> wrote:
        > >>>
        > >>> Felix Buenemann wrote:
        > >>>> Am 01.11.2013 um 08:27 schrieb Kazunobu Kuriyama <kazunobu.kuriyama@...>:
        > >>>>> On Nov 1, 2013, at 12:47 PM, Bram Moolenaar <Bram@...> wrote:
        > >>>>>>
        > >>>>>> Felix Buenemann wrote:
        > >>>>>>> Am 27.10.2013 um 16:02 schrieb Bram Moolenaar <Bram@...>:
        > >>>>>>>> Björn wrote:
        > >>>>>>>>> On Mon, Oct 21, 2013 at 12:14 AM, Felix Buenemann wrote:
        > >>>>>>>>>> Am 19.10.2013 um 18:54 schrieb björn:
        > >>>>>>>>>>> On Sun, Oct 13, 2013 at 11:16 PM, Felix Bünemann wrote:
        > >>>>>>>>>>>> Am Mittwoch, 9. Oktober 2013 20:25:49 UTC+2 schrieb björn:
        > >>>>>>>>>>>>> On Wed, Oct 9, 2013 at 12:18 AM, Felix Bünemann wrote:
        > >>>>>>>>>>>>>> I'm pretty sure that AvailabilityMacros.h is available on all versions of OS
        > >>>>>>>>>>>>>> X, because it's copyright header states 2001-20xx which matches the OS X
        > >>>>>>>>>>>>>> 10.0 release timeline. Is the os_mac.h code also targeting OS 9? In that
        > >>>>>>>>>>>>>> case we should add a configure check.
        > >>>>>>>>>>>>>
        > >>>>>>>>>>>>> Yes, pre-OS X should be supported. If there is a suitable #ifdef
        > >>>>>>>>>>>>> check for that, then it should be possible to submit as a patch to
        > >>>>>>>>>>>>> mainline Vim.
        > >>>>>>>>>>>>
        > >>>>>>>>>>>> OK, I've updated the patch with a configure check:
        > >>>>>>>>>>>> https://gist.github.com/felixbuenemann/6150257
        > >>>>>>>>>>>
        > >>>>>>>>>>> This looks good to me ... but should we perhaps be checking for
        > >>>>>>>>>>> "Availability.h" instead as that is what is used on Mavericks (and
        > >>>>>>>>>>> earlier OS X versions did not need explicit inclusion of
        > >>>>>>>>>>> AvailabilityMacros.h)?
        > >>>>>>>>>>
        > >>>>>>>>>> The macros used in the vim codebase are defined in AvailabilityMacros.h not Availability.h.
        > >>>>>>>>>> Availability.h has similar but not the same macros, so using it would require cluttering the code with even more ifdefs.
        > >>>>>>>>>
        > >>>>>>>>> OK. Well, then I think this solves the problem of compiling on OS X
        > >>>>>>>>> 10.9 neatly and that it could be included in mainline Vim.
        > >>>>>>>>>
        > >>>>>>>>> Bram, can you please consider this patch for inclusion. It should
        > >>>>>>>>> apply cleanly (I just tried myself) and it automatically solves the
        > >>>>>>>>> problem of us having to know exactly when this header was made
        > >>>>>>>>> available. I've pasted it below for your convenience. Note that
        > >>>>>>>>> Felix Bünemann wrote the patch, not me.
        > >>>>>>>>
        > >>>>>>>> Thanks, I'll put it in the todo list.
        > >>>>>>>>
        > >>>>>>>> How about the patch that Kazunobu Kuriyama sent on Friday?
        > >>>>>>>
        > >>>>>>> Both patches should be fine. Mine uses a configure check to see if
        > >>>>>>> AvailabilityMacros.h is available while Kazonubu Kuriyama used some
        > >>>>>>> compiler defines to check if the header is needed, so his solution is
        > >>>>>>> a bit more lightweight.
        > >>>>>>
        > >>>>>> Just to be clear: So including one or the other works, but I should not
        > >>>>>> include both?
        > >>>>>>
        > >>>>>
        > >>>>> Though Björn Winckler has not replied to Bram’s email above yet, let me try to clarify.
        > >>>>>
        > >>>>> Felix Bünemann’s patch is for building VIM as a Carbon application, while mine is for that as a plain UNIX application, I mean, the latter lets VIM depend only on universal libc and ncurses (and additionally X11) stuff, not on any API such as Carbon or Quartz peculiar to Mac.
        > >>>>>
        > >>>>> That makes a big difference in keyboard response, but this is another story...
        > >>>>>
        > >>>>> From practical and technical points of view, I think both of the patches won’t conflict each other because his patch is mainly for os_mac.h while mine is only for os_unix.c. No intersection, no conflict, though his solution uses the configure script which affects the whole build procedure, thus making it harder to evaluate possible unfavorable impact on the build.
        > >>>>>
        > >>>>> Each of the patches will do for its own purpose.
        > >>>>>
        > >>>>> Hopefully, this clarifies the issue.
        > >>>>>
        > >>>>> Regards,
        > >>>>> KK
        > >>>>
        > >>>> Are we talking about the same patches? I was referring to the patch you send to the vim_dev list with the subject "[patch] src/os_unix.c (for build on Mac OS X 10.9 Mavericks)“.
        > >>>>
        > >>>> To compare https://gist.github.com/6150257 (my patch) and https://gist.github.com/felixbuenemann/7283250 (KK’s patch).
        > >>>>
        > >>>> I think they achieve exactly the same think and the only difference is
        > >>>> that my patch uses configure to check if AvailabilityMacros.h is
        > >>>> available, while KK’s patch uses some existing preprocessor macros.
        > >>>> This means that only one of the patches should be used.
        > >>>
        > >>> I sent out two patches that combine them, using the configure check for
        > >>> Kazonubu's patch as well. Please check it works this way.
        > >>
        > >> Bram,
        > >>
        > >> Please include my patch as it was; otherwise, it won’t work as expected. In fact, Patch 7.4.056 fails to compile os_unix.c.
        > >>
        > >> Let me clarify my point in another way: Felix Bünemann’s patch doesn’t cover the case where the configuration option -—disable-darwin is chosen in the build on the Mac.
        > >>
        > >> I’d like to remind you of Section 1.2 of src/INSTALLmac.txt, that is, there is another way to build vim differently from that of MacVim or alike.
        > >>
        > >> That’s why I sent my patch to vim_dev, not to mac_vim; the patch fixes a problem which is almost irrelevant to MacVim.
        > >
        > > Hmm, why is that configure check inside
        > > "if test "$enable_darwin" = "yes"; then“?
        >
        > It’s inside that block because it seemed the most appropriate place to put it when I wrote that code and I wasn’t aware of the fact that you can compile vim with disable-darwin on OS X.
        >
        > > Checking for header files should be done by configure. using #ifdefs is
        > > bound to break somewhere somewhen.
        > >
        > > What if we move the configure check outside of that "if"? Or pehaps it
        > > should go at the toplevel?
        >
        > That should work.
        >
        > > Looking at it again, I wonder why this doesn't use the normal way of
        > > AC_CHECK_HEADER:
        > >
        > > AC_CHECK_HEADER(AvailabilityMacros.h, HAVE_AVAILABILITYMACROS_H = 1)
        > >
        > > Also, why protect the #include with the version check,
        > > __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__. What happens if we leave
        > > that out?
        >
        > Well there is the remote case of Mac OS X 10.0 and 10.1 where
        > AvailabilityMacros.h is missing

        Then configure wouldn't find it. So one #ifdef would be sufficient.
        So, these version checks only make sense when not using the configure
        defined symbol but checking for the APPLE macro.

        --
        Sometimes I think the surest sign that intelligent life exists elsewhere
        in the universe is that none of it has tried to contact us. (Calvin)

        /// 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_mac" 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_mac" group.
        To unsubscribe from this group and stop receiving emails from it, send an email to vim_mac+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.