On Sat, Jun 7, 2014 at 4:02 PM, Robert P. Goldman rpgoldman@sift.info wrote:
I was wondering about the :AROUND methods for OUTPUT-FILES and INPUT-FILES, which are exported and which we invite programmers to provide methods for.
I don't think this is necessarily a big deal: we explain pretty carefully the contract for these functions (I need to check on the discussion in the manual). But we *could* add a wrapper function around OUTPUT-FILES (resp. INPUT-FILES) and put the :AROUND logic in that, and have ASDF internally call the wrapper function instead of OUTPUT-FILES (resp. INPUT-FILES).
Would this be a worthwhile clean-up?
But we don't invite programmers to redefine methods for existing classes, or at their own risk.
Why would these particular functions be special and require that there be a blank slate for :around methods?
If any actual programmer comes up with a need for more extension points, *then* extension points can be provided.
In addition to the perform-with-restarts issue, the development of ASDF2 and ASDF3 already led to defining plenty of new extension points so that the various extensions used at ITA (most notably POIU and ASDF-DEPENDENCY-GROVEL) could be written without overriding ASDF internals. The advantage of letting actual clients drive the definition of extension points is that you then know that your extension points make sense and have at least one client that'll test the functionality.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Faré's Second Law of Dissent: I am Right, whence it follows that all who disagree with me are either (1) evil, (2) stupid or (3) crazy. (The alternatives are not mutually exclusive.) This universal law is valid for all values of "me", including "you".