Felix Buenemann wrote: > Am 02.11.2013 um 23:40 schrieb Bram Moolenaar <b...@moolenaar.net>: > > Kazunobu Kuriyama wrote: > >> On Nov 3, 2013, at 6:09 AM, Bram Moolenaar <b...@moolenaar.net> wrote: > >>> > >>> Felix Buenemann wrote: > >>>> Am 01.11.2013 um 08:27 schrieb Kazunobu Kuriyama > >>>> <kazunobu.kuriy...@nifty.com>: > >>>>> On Nov 1, 2013, at 12:47 PM, Bram Moolenaar <b...@moolenaar.net> wrote: > >>>>>> > >>>>>> Felix Buenemann wrote: > >>>>>>> Am 27.10.2013 um 16:02 schrieb Bram Moolenaar <b...@moolenaar.net>: > >>>>>>>> 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 -- b...@moolenaar.net -- 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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.