For version diversity, this returns false for me on R-4.4.3 (it’s not a 
4.5 thing).

(If this were linux, I’d strace it to see what’s going on. Since this is 
macos, I cannot get dtrace or execsnoop to get anywhere since SIP is 
enabled.)

Bill

On 4/23/25 11:52, bill+rsig...@8pawexpress.com wrote:

> Thanks Taras, I understand that, perhaps that portion (semver and big 
> changes on minor-looking version bumps) was more of a vent, I should 
> not have wasted the email-time on that :-)
>
> As I learn more about the dev required for macos, I’m impressed things 
> are a stable as they are, due to strong efforts by Simon and whomever 
> else helps on this side of things. It’s also because of this effort 
> and fragility that I recommend things like updating docs (for future 
> new-to-macos devs) and asking to grease the skids for doing things for 
> one’s self (by adding a package of same-version-headers). I think 
> having an |R-macos-dev-*.tar.gz| package of headers is consistent with 
> many/most OS and application packaging; the biggest question is if 
> there are other gotchas I’m not aware of that would make that a moving 
> target. (Perhaps it would have to be dependent on more than just the R 
> version … but I thought not since there is one compiled version of R 
> that covers most/all macos versions.)
>
> Cheers,
> Bill
>
> On 4/23/25 11:42, Taras Zakharko wrote:
>
>> Bill,
>>
>> Apple does not support OpenMP in their toolchain, and OpenMP is disabled in 
>> XCode. Simon and others rely on the fact that the toolchain is built on top 
>> of Clang and thus the OpenMP support can be patched in. However, as far as 
>> Apple goes all this is undocumented behavior and subject to change at any 
>> time. So I wouldn�t expect things improving any time soon.
>>
>> Best,
>>
>> Taras
>>
>> ________________________________
>> From: R-SIG-Mac<r-sig-mac-boun...@r-project.org> on behalf 
>> ofbill+rsig...@8pawexpress.com <bill+rsig...@8pawexpress.com>
>> Sent: 23 April 2025 15:33
>> To: Simon Urbanek<simon.urba...@r-project.org>
>> Cc: r-mac<r-sig-mac@r-project.org>
>> Subject: Re: [R-SIG-Mac] openmp and xcode
>>
>> Simon,
>>
>> Long time fan :-)
>>
>> Downgrading to 16.2 worked. I�m baffled why a /minor/ release change was
>> sufficient to make it work, I had assumed that the major different (14
>> to 16) would have been more responsible. I guess they aren�t using
>> semver? Thank you for that advice, I�m on 16.2 now.
>>
>> I found 16.2 athttps://xcodereleases.com. While the release notes for
>> 16.3 are detailed (much of it beyond my familiarity), I don�t see
>> anything clear that would indicate to me that 16.2 would work and 16.3
>> would not. (For instance, no mention of OMP or OpenMP.) Besides you
>> having a running familiarity with the topic of R compilation on macos in
>> general, is there something that should have clued me in to suggest
>> 16.2? (Quick background: I�ve been on Linux and FOSS since 1993, when
>> floppies were the rage. I�ve used R on Windows and Linux since 2011. I
>> started on MacOS and therefore R on MacOS in Dec 2024. I�m definitely a
>> freshman on campus here, constantly befuddled by some of the nuanced
>> differences in macos.)
>>
>>      /will have to do a bit of legwork to make sure it works as it is not
>>      entirely trivial to do that correctly/
>>
>> My legwork has been educating. Can we ease the burden slightly? The docs
>> are clear about XCode 14.2/14.3, but since that version isn�t supported
>> on Sequoia there is no hint at a path forward other than to find this
>> mailing list and ask (you). The |/openmp/| portion of the website
>> discusses downloading one of 26 versions of |openmp-*.tar.gz|; it seems
>> risky to me that it would be wise to use a version of OpenMP that is
>> different than what R is linked against, ergo /�chaos when more OMP
>> run-times get loaded into one process�/.
>>
>> Perhaps I�m making a hasty assumption here � the R packaging includes
>> libraries for OMP, BLAS, and LAPACK, to name a few, and none of their
>> headers are included. I had assumed that including headers for all of
>> them would be useful, but I think you�re saying that you�d rather make
>> devs learn some of the nuances of building R against those libraries
>> before writing packages that link against them, is that right?
>>
>> How about two alternatives:
>>
>>   1.
>>
>>      Update documentation onhttps://mac.r-project.com to include a note
>>      about 16.3, perhaps as simple as �16.3 is known to break some
>>      packages�. This may be hampered if the �16.2� downgrade works for
>>      |data.table| but other packages would require perhaps �15.*� or
>>      �14.*� to compile.
>>
>>   2.
>>
>>      Provide a tarball that contains the header files for libraries
>>      against which a particular version of R is compiled. For instance,
>>      �R-headers-4.4.tar.gz� would include the OMP headers and possibly
>>      (I�m stretching) headers for BLAS and LAPACK. It would be an
>>      optional download that is updated when the linked libraries are
>>      updated, probably not at every R release.
>>
>>      Having a tarball of /just/ headers helps keep the headers the same
>>      version as the linked |libomp|, and still requires some legwork for
>>      the devs. I think this encourages safer version compatibility, and
>>      requires the dev to work harder if they need something further.
>>
>> Thoughts?
>>
>> Last oh-btw: you said you are using CLT 16.2, is that available from
>> Apple, are you using homebrew to install it, or something else? I�m not
>> yet tight on disk space, but I don�t use the rest of XCode so it seems
>> I�m wasting some space.
>>
>> Thanks,
>> Bill
>>
>> On 4/22/25 22:31, Simon Urbanek wrote:
>>
>>> Bill,
>>>
>>> the libomp.dylib inside R is there solely for the CRAN binaries to make 
>>> sure that package binaries on CRAN can use the correct OpenMP runtime. Is 
>>> it not intended to be used outside of that setup.
>>>
>>> That is also why we don�t ship the headers as anyone compiling from sources 
>>> will have to do a bit of legwork to make sure it works as it is not 
>>> entirely trivial to do that correctly. The CRAN build machines are setup 
>>> such that it "just works" to make it easy on package maintainers. However, 
>>> there are lot of issues/moving parts when building OpenMP-enabled code 
>>> yourself (as you found out), so it is not encouraged unless you are very 
>>> familiar with the issues (correct run-time and complier match-up etc.).
>>>
>>> That said, Xcode 16.3 is a big jump in the clang versions (from 17 to 19) 
>>> so I would not recommend it just yet - have you tried Xcode 16.2? I tried 
>>> to reproduce your problem and it worked just fine with Xcode 16.2 (CLT 16.2 
>>> to be precise and my corresponding OpenMP run-time from LLVM 17.0.6). Xcode 
>>> 16.2 is supported on all macOS versions (and what the arm64 R builds are 
>>> moving to) so I would suggest trying that first. (I didn't have CLT 16.3 
>>> installed yet, so I�ll have to wait for a quiet minute to see if that�s 
>>> really what breaks.)
>>>
>>> Cheers,
>>> Simon
>>>
>>>
>>>> On 23 Apr 2025, at 02:21,bill+rsig...@8pawexpress.com wrote:
>>>>
>>>> If the CRAN R installation for macos includes |libomp.dylib|, is there a 
>>>> reason it does not include the paired |./include/omp*.h| files as well? 
>>>> It�s just three, they�re small, and it seems a reasonable step to making
>>>> building packages that use OpenMP more direct.
>>>>
>>>> Background: I�ve been having some difficulty compiling |data.table| (dev) 
>>>> on my MBP (M4, 15.4.1, R-4.4.3), due to an error (I do not assume it�s 
>>>> this package, I�ve had trouble with other packages too).
>>>>
>>>> |symbol not found in flat namespace &#x27;___kmpc_dispatch_deinit&#x27; |
>>>>
>>>> When troubleshooting this, I�ve verified that I have Xcode, but it is 
>>>> version 16.3, well past the 14.3 used for R-4.4.3. Sleuthing some more, I 
>>>> realized that it�s an easy mistake to update the 
>>>> |/usr/local/lib/libomp.dylib| file to be a different version than what is 
>>>> distributed in CRAN�s R. I don�t see an easy way to change version within 
>>>> XCode, and when I tried installing XCode-14.3 it says my OS does not 
>>>> support that (old) version. (Even with gfortran 12.2, I can�t fix that 
>>>> error, but that�s a different subject.)
>>>>
>>>> I recognize the challenge in distributing binaries for multiple versions 
>>>> of macos and xcode. I believe R-4.5 is still being built on XCode-14.3, 
>>>> which begs another question of if/when XCode updates are planned for R 
>>>> binaries and CRAN. (Big topic, I understand, I did not find a recent 
>>>> discussion. My apologies if I missed something.)
>>>>
>>>> Thanks,
>>>> Bill
>>>>
>>>> &#8203;
>>>> [[alternative HTML version deleted]]
>>>>
>>>> _______________________________________________
>>>> R-SIG-Mac mailing list
>>>> R-SIG-Mac@r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>
>> &#8203;
>>          [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-SIG-Mac mailing list
>> R-SIG-Mac@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>
>>      [[alternative HTML version deleted]]
>>
>>
>> _______________________________________________
>> R-SIG-Mac mailing list
>> R-SIG-Mac@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>
> &#8203;

&#8203;
        [[alternative HTML version deleted]]

_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to