[Openmcl-devel] What is the new context argument in all the compiler functions?

Ron Garret ron at flownet.com
Mon Apr 23 12:59:48 PDT 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 mailing list