Closed Ambrevar closed 1 year ago
@aartaka @aadcg OK to merge? Then I'll release 2.0.0.
All good from my side!
Now that I look at it in the light of https://github.com/atlas-engineer/nfiles/issues/14#issuecomment-1431310848, I'm in doubt of whether we should limit ourselves with keywords. Here's what we can do instead, preserving backwards-compatibility and allowing for more extensibility:
symbol
.So the use of the library could then be:
nfiles:file
.on-external-modification
or on-deserialization-error
to 'foo
.restart-case
with foo
restart, doing something that we didn't anticipate initially.I mean, no one forbids doing this with keywords too, but that looks quite weird to name restarts with keywords...
Yes, this is better, + no need for a 2.0.0.
- Change the type of those restart slots to
symbol
.
No need I believe. If the user extends the class and the slot, then they can redefine the type to (member NEW-RESTART OLD-RESTART)
.
See #20.
- Change the type of those restart slots to
symbol
.No need I believe. If the user extends the class and the slot, then they can redefine the type to
(member NEW-RESTART OLD-RESTART)
.
This should work per standard, yes. But then, SBCL is extremely cautious about slot types at (safety 3)
, so it won't allow to redefine the type to be looser than the previous one. So we'd better account for these cases in advance and use symbol
by default. Yes, it's quite vague, but at least it's vague enough to not create type mismatches in the compiler.
Good point!
This saves us from exporting unbound symbols, which is poor and confusing practice.
Fixes #14.