On 01/03/12 14:24, Ludovic Courtès wrote:
2. it is completely, utterly wrong to mutilate the
Guile library into such a contortion that it
interprets this:
(define y "hello")
to be a request to create an immutable string anyway.
It very, very plainly says, "make 'y' and fill it with
the string "hello". Making it read only is crazy.
It stems from the fact that string literals are read-only, per R5RS
(info "(r5rs) Storage model"):
[[blah, blah, blah]]
In Guile this has been the case since commit
190d4b0d93599e5b58e773dc6375054c3a6e3dbf.
The reason for this is that Guile’s compiler tries hard to avoid
duplicating constants in the output bytecode. Thus, modifying a
You have changed the interface without deprecation or any other multi-year
process.
Please change it back. Please fix the problem by adding (define-strict y
"hello")
to have this new semantic. Thank you.