guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: TODO list for Guile R7RS support


From: Alex Shinn
Subject: Re: TODO list for Guile R7RS support
Date: Sun, 12 Feb 2012 12:54:50 +0900

On Sat, Feb 11, 2012 at 12:53 AM, Ludovic Courtès <address@hidden> wrote:
>
>> * 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’?

First note the list of feature identifiers is one of the
things most likely to be trimmed in the next draft.

There is no "gnu" feature proposed in R7RS, though
Guile can of course define whatever non-portable
features it needs.  I don't see why "gnu" would imply
"linux".

The point about the "unix" feature being vague is well
taken.  I think it's meant to be widely encompassing
and refer to Unix-like systems, including cygwin, with
a guarantee of a Bourne-like shell in /bin/sh and common
Unix programs like cp, rm, ls etc. available, but we'll
be sure to revisit this.

> And above all: are people going to write #ifdef __linux__ish code when
> what they mean is #ifdef __GLIBC__ or even something different?

This particular analogy doesn't apply.  As I see with
the current list of proposed features the only confusion
is in the granularity of the feature to use, where, e.g.

  freebsd < bsd < posix, unix

as opposed to two completely unrelated concepts like
OS and libc.

Regardless, we're likely to add a disclaimer that you
should only resort to cond-expanded code as a last
resort.

-- 
Alex



reply via email to

[Prev in Thread] Current Thread [Next in Thread]