[Openmcl-devel] Quartz not working in v1.10

Ron Garret ron at flownet.com
Wed Nov 5 11:27:10 PST 2014


I think I’ve figured out what is going on.

Welcome to Clozure Common Lisp Version 1.10-r16304M  (DarwinX8664)!
? (objc:load-framework "Quartz" :quartz)
NIL
? (fboundp '#/pageAtIndex:)
NIL
? (unintern '#/pageAtIndex: 'nsfun)
T
? (fboundp '#/pageAtIndex:)
#<OBJC-DISPATCH-FUNCTION NEXTSTEP-FUNCTIONS:|pageAtIndex:| #x302001413D1F>
? 

Apparently, the binding of objc functions to their symbols happens at when the symbol is initially interned.  Somehow my image got built with pageAtIndex: already interned in the nsfun package (how that happened I still don’t know) which causes the function binding to not happen when it is supposed to.

Interestingly, the function binding seems to be a one-shot deal.  If you try to repeat the process, it fails:

? (unintern '#/pageAtIndex: 'nsfun)
T
? (fboundp '#/pageAtIndex:)
NIL
? (objc:load-framework "Quartz" :quartz)
NIL
? (fboundp '#/pageAtIndex:)
NIL
? (unintern '#/pageAtIndex: 'nsfun)
T
? (fboundp '#/pageAtIndex:)
NIL
? 

AFAICT if you ever get into this state you are irrecoverably hosed.

rg

On Nov 5, 2014, at 10:21 AM, Ron Garret <ron at flownet.com> wrote:

> I tried rebuilding r16304 and now that’s not working for me any more either:
> 
> Welcome to Clozure Common Lisp Version 1.10-r16304M  (DarwinX8664)!
> ? (objc:load-framework "Quartz" :quartz)
> NIL
> ? (function #/pageAtIndex:)
>> Error: Undefined function: NEXTSTEP-FUNCTIONS:|pageAtIndex:|
> 
> Unfortunately, I did the rebuild in the same directory as the one in which I built the one that was working for me yesterday, so I no longer have a working version to compare this to :-(
> 
> On Nov 4, 2014, at 4:35 PM, Ron Garret <ron at flownet.com> wrote:
> 
>> Yes, 16304 is working for me too.
>> 
>> Weird how this keeps bouncing back and forth between working and not.  Particularly since the only thing that changed between 16303 and 16304 was a Hemlock command.
>> 
>> On Nov 4, 2014, at 3:35 PM, Karsten Poeck <karsten.poeck at gmail.com> wrote:
>> 
>>> On 04.11.14 17:47, Ron Garret wrote:
>>>> Doh!  It seems to be broken again in r16303:
>>>> 
>>>> Welcome to Clozure Common Lisp Version 1.10-r16303M  (DarwinX8664)!
>>>> ? (objc:load-framework "Quartz" :quartz)
>>>> NIL
>>>> ? #'#/pageAtIndex:
>>>>> Error: Undefined function: NEXTSTEP-FUNCTIONS:|pageAtIndex:|
>>>>> While executing: CCL::%FUNCTION, in process Listener(4).
>>>>> Type cmd-. to abort, cmd-\ for a list of available restarts.
>>>>> Type :? for other options.
>>>> 1 >
>>> 
>>> Can't reproduce.
>>> 
>>> Fresh from svn, version r16304, rebuilt locally
>>> 
>>> Welcome to Clozure Common Lisp Version 1.10-r16304M  (DarwinX8664)!
>>> ? (objc:load-framework "Quartz" :quartz)
>>> NIL
>>> ? #'#/pageAtIndex:
>>> #<OBJC-DISPATCH-FUNCTION NEXTSTEP-FUNCTIONS:|pageAtIndex:| #x3020029CC96F>
>>> ?
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> Openmcl-devel mailing list
>>> Openmcl-devel at clozure.com
>>> https://lists.clozure.com/mailman/listinfo/openmcl-devel
>> 
>> _______________________________________________
>> Openmcl-devel mailing list
>> Openmcl-devel at clozure.com
>> https://lists.clozure.com/mailman/listinfo/openmcl-devel
> 
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> https://lists.clozure.com/mailman/listinfo/openmcl-devel




More information about the Openmcl-devel mailing list