[Openmcl-devel] What is the new context argument in all the compiler functions?
ron at flownet.com
Mon Apr 23 19:59:48 UTC 2012
On Apr 23, 2012, at 11:55 AM, Gary Byers wrote:
> I'm spmewhat dismayed that changes like this don't happen more often
> than they do. There are lots of reasons for that, but worrying about
> whether someone will be "somwhat dismayed" when private internal interfaces
> change isn't and can't be one of them.
I completely agree, but there is an extenuating circumstance in this case.
One of my interests is pedagogy. When writing code to illustrate how Lisp is derived from the lambda calculus I often find it useful to use ((...) ...) as a shorthand for (funcall (...) ...). So a while back I requested that the last line of nx1-combination be changed from:
(nx-error "In the form ~S, ~S is not a symbol or lambda expression." form sym)))))
to something like:
(nx-combination-hook form sym)))))
(defun nx-combination-hook (form sym)
(nx-error "In the form ~S, ~S is not a symbol or lambda expression." form sym))
so that a user could change this behavior.
You denied this request (as of course is your prerogative) and instead suggested that I use ADVISE to change the behavior of NX1-COMBINATION, which I did, and everyone went home happy. But changing the interface to NX1-COMBINATION breaks my ADVISE code (because it has to call back in to nx1-combination).
I'm not saying that you should feel obligated to do anything about this. I was just surprised that this part of the compiler was changed and wondered why it happened. I also wanted you to be aware of the situation in case you were feeling charitable, or had another suggestion.
More information about the Openmcl-devel