> Mark H Weaver <mhw@netr...> skribis:
>> * bytevectors in core R7RS
> What does it mean? That bindings are available by default?
>> * R7RS feature identifiers: r7rs, exact-closed, ratios, exact-complex,
>> ieee-float, full-unicode, windows, posix, unix, darwin, linux, bsd,
>> freebsd, solaris, i386, x86-64, ppc, sparc, jvm, clr, llvm, ilp32,
>> lp64, ilp64, big-endian, little-endian, guile, guile-2, guile-2.0
> I wonder how these are specified. Does a *-kfreebsd-gnu build have
> ‘freebsd’? And ‘bsd’? Do *-gnu* have ‘linux’ defined, even when Linux
> isn’t used? Does Cygwin have ‘unix’?
> And above all: are people going to write #ifdef __linux__ish code when
> what they mean is #ifdef __GLIBC__ or even something different?
Yes, this is a very good point, and one that should be raised with the
R7RS working group. The C library is usually far more relevant to user
code than the kernel. This strikes me as another instance of the
widespread confusion that "linux" is an operating system, when in fact
it is only a kernel. It would be a shame for this confusion to be
codified into the R7RS.