> This seems to be allowed, so is there any reason why would the attached
> patch be a bad idea and being strict like ccl would be prefferable?
SBCL is (as a rule-of-thumb) conservative about what it accepts: a
rationale for that is that it is handy to have some kind of assurance
that code which "looks" portable and works under SBCL stands a
reasonable chance of working under other CL implementations. One
problem with extending (string x) to have implementation-defined
meanings (quite apart from the burden of documenting the
implementation-defined meaning, as we'd be required to) is that it is
not immediately obvious to someone writing code that (string x) isn't
portable CL, when X is an arbitrary sequence.
If there were no other convenient and defined way to express conversion
of a sequence of characters to a string, then probably we might consider
the extension anyway, despite those concerns. But since (coerce x
'string) exists, I think it's probably better to have STRING retain only
its mandated behaviour.
Tomas Hlavaty <email address hidden> writes:
> This seems to be allowed, so is there any reason why would the attached
> patch be a bad idea and being strict like ccl would be prefferable?
SBCL is (as a rule-of-thumb) conservative about what it accepts: a defined defined meaning, as we'd be required to) is that it is
rationale for that is that it is handy to have some kind of assurance
that code which "looks" portable and works under SBCL stands a
reasonable chance of working under other CL implementations. One
problem with extending (string x) to have implementation-
meanings (quite apart from the burden of documenting the
implementation-
not immediately obvious to someone writing code that (string x) isn't
portable CL, when X is an arbitrary sequence.
If there were no other convenient and defined way to express conversion
of a sequence of characters to a string, then probably we might consider
the extension anyway, despite those concerns. But since (coerce x
'string) exists, I think it's probably better to have STRING retain only
its mandated behaviour.