Hello,
Mark H Weaver <[email protected]> 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’.