-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 10-May-07, at 11:59 PM, Bradley Lucier wrote:
I presume that there's some macro somewhere that expands to a definition of ##vector-copy.
Yes it is the macro define-prim-vector-procedures, which defines [string|vector|u8vector|s8vector|...]-[ref|set!|copy|append|...].
Perhaps the compiler should remark if (standard-bindings) or (extended-bindings) are declared and a standard or gambit-specific function is (re-)defined in a user file.
The compiler would have to keep a database of all the Gambit-specific functions in the runtime. But this would tie the compiler to a specific runtime **implementation** which is not desirable. Gambit is designed to support multiple runtime systems.
There is a simple rule you can follow to avoid this kind of problem. Never redefine or mutate a variable whose name starts with "##" because this is the Gambit internals namespace. I guess the compiler could give a warning for this case.
Marc