UNSUPPORTED-FUNCTIONALITY Error [was Re: Version 3.1.7.7 has been pushed]
Robert Goldman
rpgoldman at sift.net
Fri Sep 2 02:50:55 UTC 2016
On 9/1/16 Sep 1 -7:40 PM, Faré wrote:
>> For the user, the important information is "why is this not supported?"
>> > and that has to do with static information the programmer should supply,
>> > rather than with information about what the current information is.
>> >
> My contention is that the programmer cannot supply this information.
> Certainly not in a maintainable way.
I'm sorry, I simply do not understand this claim.
Here is my counter-example, in your "handwriting," as it were:
#-(or abcl allegro clasp clisp clozure cmucl cormanlisp digitool ecl gcl
genera lispworks mkcl sbcl scl xcl)
(error "~S not implemented on ~S" 'delete-empty-directory
(implementation-type))) ; genera
This seems to be exactly an example of what I'm claiming, and the error
call you wrote could be replaced with
(error 'unsupported-functionality
:functionality 'delete-empty-directory
:reason "not supported on ~a" :reason-args (list (implementation-type)))
[Actually, I see that the comment here must be wrong, since it conflicts
with the #- form....]
But I hope you get my drift.
Similarly, I have often written a first draft of a system using
Allegro's EXCL.OSI filesystem utilities, and then replaced it with a
portable version later.
(error 'unsupported-functionality
:functionality <foo>
:reason " relies on ACL-specific mktemp function.")
There are lots of systems out there, at least some of whose
functionality relies on other implementation-specific information.
In that case yes, I as a programmer definitely DO know that it is not
supported because I didn't bother to use other than Allegro-specific
functions.
Best,
r
More information about the asdf-devel
mailing list