> On 11 Nov 2023, at 07:47, Simon Wright <si...@pushface.org> wrote:
> 
> On 6 Nov 2023, at 08:36, Arnaud Charlet <char...@adacore.com> wrote:
>> 
>>>> So without changing fundamentally the model, you can't decide dynamically 
>>>> for the whole
>>>> system. Making the choice based on the current directory is pretty random, 
>>>> since the current
>>>> directory isn't well defined at program's start up and could be pretty 
>>>> much any filesystem.
>>> 
>>> I’d imagine that projects spread over more than one 
>>> differently-case-sensitive filesystem would
>>> be rare. As to the current directory at compiler startup, with GPRbuild 
>>> it’s the object directory, so
>>> likely to be somewhere near the project’s source tree.
>> 
>> I am not talking about the current directory when the compiler runs, I am 
>> talking about the
>> current directory where the target program runs, which can be pretty much 
>> anywhere.
>> 
>> In other words, you are modifying a runtime file (adaint.c) which is used 
>> both by the host compiler
>> and by the target applications. My comment worries about the target 
>> applications while yours
>> applies to the host compiler only.
> 
> I don’t understand?
> 
> The change works out whether the filesystem of the current working directory 
> is CS, whether
> it’s the compiler or some user program that’s running it (it looks like that 
> would have to be via 
> some higher-level compiler package, I found only GNAT.Command_Line and 
> GNAT.Directory_Operations).
> 
> I can see that might not be what the user program wants, but if they actually 
> care the current
> situation isn’t great anyway; the compiler definitely makes the wrong choice 
> for new Macs.
> 
>>>> Note that the current setting on arm is actually for iOS, which we did 
>>>> support at AdaCore
>>>> at some point (and could revive in the future, who knows).
>>> 
>>> Wouldn’t it be more natural to go via LLVM? I understand from Iain that iOS 
>>> isn’t currently
>>> supported by GCC.
>> 
>> That's another option. We'd like to keep both options on the table, since 
>> both options have
>> pros and cons.
>> 
>>>> So it would be fine to refine the test to differentiate between macOS and 
>>>> embedded iOS and co,
>>>> that would be a better change here.
>>> 
>>> There didn’t seem to be a way to do that.
>> 
>> OK, I thought there would be some defines that we could use for that, too 
>> bad if there isn't
>> and indeed we might need to perform another runtime check then as suggested 
>> by Iain.
> 
> I can see a possible interface, operatingSystemVersion in NSProcessInfo.h - 
> Objective C
> needed, I think

Some of the NS interfaces are available to regular C (e.g. stuff in 
CoreFoundation), and I am
fairly/very sure that we will be able to find a machanism that does not involve 
introducing an
ObjC dep.  [I am obvioulsy not in any way against ObjC - since i’m the 
maintainer ;) .. but it
seems heavyweight for solving this issue].

Iain

Reply via email to