Marc Feeley scripsit:
> I think the standard feature identifiers given in appendix B are too
> low-level and ill-conceived. They are removing from the high-level
> nature of Scheme. Specifically I object to: [list snipped]
>
> In the specific case of Gambit-C and probably other Scheme to C
> compilers, these features are only known when the C code is compiled by
> a specific C compiler for a particular platform.
In that case, it would be inappropriate for Gambit to expose these
identifiers. The only required identifier is r7rs. The other identifiers
are only specified in order to obviate pointless debates about how to
spell them.
Note, however, that some compilers-to-C generate mildly machine-dependent
(or at least machine-parameterized) C, though I don't know of any Scheme
ones that do.
> Let me stress that one of the important qualities of a high-level
> language is that they abstract from lower-level issues (such as
> processor type, operating system, endianness, etc).
That's true. However, programs often require low-level portions as well,
in the name of efficiency rather than correctness.
> There is another issue which concerns code mobility. It is currently
> possible in Gambit-C, and probably other Scheme systems now or in the
> future, to migrate code from one execution environment to another at
> run time (think Termite's process migration, or an RPC mechanism).
Presumably not, however, compiled C code. Feature testing is not aimed
at mobility, but at portability: it allows programs (and especially
libraries) to compensate for differences between applications.
For mobility, you need to test features at run time; hence the need for
a get-features procedure.
--
John Cowan cowan@x http://ccil.org/~cowan
There was an old man Said with a laugh, "I
From Peru, whose lim'ricks all Cut them in half, the pay is
Look'd like haiku. He Much better for two."
--Emmet O'Brien
_______________________________________________
Scheme-reports mailing list
Scheme-reports@x
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports