On Mon, Jul 17, 2017 at 9:47 AM, Robert Goldman rpgoldman@sift.net wrote:
On 7/16/17 Jul 16 -10:31 PM, Faré wrote:
- what's in FIND-SYSTEM is accessors to %ADDITIONAL-INPUT-FILES, not
ADDITIONAL-INPUT-FILES and the former has setters as well as getters, so I wasn't sure I could use ADDITIONAL-INPUT-FILES. I'll check.
Checked and confirmed this -- %ADDITIONAL-INPUT-FILES takes only a COMPONENT as argument, so it can't use the convenience methods macro.
Why do you need convenience methods for the internal accessor %ADDITIONAL-INPUT-FILES ? Can't users who need convenience methods (including internal functions) just use ADDITIONAL-INPUT-FILES, and let *its* convenience methods do the trick?
I was just being lazy, but I definitely found that the raw accessor was being called with strings. Our code structure doesn't make it easy to be tidy about this.
The function didn't exist before, you are introducing it. Why do you call it with strings? Shouldn't this function always be hidden behind a call to ADDITIONAL-INPUT-FILES, that does have convenience methods???
The very presence of the action convenience files encourages being haphazard about typing, and the fact that CL gives us next to no compile time support makes it worse. Even if I track down all the callers and do the type correction myself, the next time someone calls it (since we have effectively told the programmer "it's ok to use component and action designators everywhere" by having arguments called ACTION and COMPONENT that actually mean ACTION-DESIGNATOR and COMPONENT-DESIGNATOR), we could be back in the soup.
I can fix this, but I think its symptomatic of a real maintenance issue.
Convenience functions are fine for API functions; just not for internals that ought to be hidden behind API functions anyway.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org I don't count the word "god" as sacred, so I don't think religions that use it are worse than religions that don't. — Faré