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