Hello,

Mark H Weaver <m...@netris.org> skribis:

> * bytevectors in core R7RS

What does it mean?  That bindings are available by default?

[...]

> * bytevector-copy! with 3 args
> * bytevector-copy-partial{,!}

[...]

> * R7RS binary ports and bytevector ports
>    * {textual-binary}-port?
>    * binary-port?
>    * open-binary-{input,output}-file
>    * open-{input,output}-bytevector
>    * get-output-bytevector
>    * {read,peek,write}-u8, u8-ready?
>    * read-bytevector{,!}
>    * write-bytevector
>    * write-partial-bytevector

Seems to be that, following R6RS’ lead, R7RS decided to come up with
new APIs that are close to, but slightly from, existing APIs.  :-/

[...]

> * 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?

Thanks,
Ludo’.


Reply via email to