[Openmcl-devel] Missing header(s) for OpenGL FFI?

Phil pbpublist at comcast.net
Sun Aug 13 01:02:04 PDT 2006


I made the change and, after confirming that it still works with old  
interfaces, the results were as you expected using the new  
interfaces.  Here's the backtrace:

Class #<A Mac Pointer #xA5CE091C> isn't recognized.
    [Condition of type SIMPLE-ERROR]

Restarts:
   0: [RETRY-LOAD] Retry loading "/tmp/util-cocoa-graph.lisp"
   1: [SKIP-LOAD] Skip loading "/tmp/util-cocoa-graph.lisp"
   2: [LOAD-OTHER] Load other file instead of "/tmp/util-cocoa- 
graph.lisp"
   3: [ABORT-REQUEST] Abort handling SLIME request.
   4: [ABORT-BREAK] Reset this process
   5: [ABORT] Kill this process

Backtrace:
   0: (CCL::CANONICALIZE-REGISTERED-CLASS #<A Mac Pointer #xA5CE091C>)
   1: (CCL::GET-OBJC-METHOD-INFO-CLASS #<CCL::DESTRUCTURE-STATE  
#x16947BE>)
   2: (CCL::METHOD-CLASS-NAME #<OBJC-METHOD-INFO - 
[DOMCSSStyleDeclaration display] #x91806B6>)
   3: (CCL::BUILD-SEND-CASE '((#<OBJC-METHOD-INFO - 
[DOMCSSStyleDeclaration #1=display] #x91806B6>) (#<OBJC-METHOD-INFO - 
[NSWindow #1#] #x918075E> #<OBJC-METHOD-INFO -[NSView #1#]  
#x918071E>)) 'NIL 'NIL '#:G8765 "display" 'NIL 'NIL)
   4: (CCL::BUILD-AMBIGUOUS-SEND-FORM #S(CCL::OBJC-MESSAGE- 
INFO :MESSAGE-NAME #1="display" :METHODS (#2=#<OBJC-METHOD-INFO - 
[DOMCSSStyleDeclaration #1#] #x91806B6> #4=#<OBJC-METHOD-INFO - 
[NSView #1#] #x918071E> #3=#<OBJC-METHOD-INFO -[NSWindow #1#]  
#x918075E>) :AMBIGUOUS-METHODS ((#2#) (#3# #4#)) :REQ-ARGS  
0 :FLAGS ...) 'NIL 'NIL 'THIS "display" 'NIL 'NIL 'NIL 'NIL)
   5: (CCL::SEND '(CCL::SEND THIS "display") #<CCL::LEXICAL- 
ENVIRONMENT #x92E6EB6>)
   6: (FUNCALL #<Compiled-function CCL::SEND Macroexpander #x83D72DE>)
   7: (MACROEXPAND-1 '(CCL::SEND THIS "display") 'CCL::SEND)
   8: (CCL::NX-TRANSFORM '(CCL::SEND THIS "display") #<CCL::LEXICAL- 
ENVIRONMENT #x92E6EB6>)
   9: (CCL::NX1-TYPED-FORM '(CCL::SEND THIS "display") #<CCL::LEXICAL- 
ENVIRONMENT #x92E6EB6>)
10: (CCL::NX1-FORM '(CCL::SEND THIS "display"))
11: (CCL::NX1-FORMLIST '((SETF (SLOT-VALUE THIS #) (MAKE-TICKER-CHART  
# :BEGIN-DATE #)) (CCL::SEND THIS "display")))
12: (CCL::NX1-PROGN-BODY 'NIL)
13: (CCL::NX1-ENV-BODY '((SETF (SLOT-VALUE THIS #) (MAKE-TICKER-CHART  
# :BEGIN-DATE #)) (CCL::SEND THIS "display")) 'NIL)
14: (CCL::NX1-FLET '(FLET ((CALL-NEXT-METHOD # # #) (NEXT-METHOD-P  
NIL #)) (DECLARE (INLINE CALL-NEXT-METHOD NEXT-METHOD-P)) (SETF (SLOT- 
VALUE THIS #) (MAKE-TICKER-CHART # :BEGIN-DATE #)) (CCL::SEND THIS  
"display")) #<CCL::LEXICAL-ENVIRONMENT #x92E6F96>)
15: (CCL::NX1-COMBINATION #<CCL::LEXICAL-ENVIRONMENT #x92E6F96>  
'(FLET ((CALL-NEXT-METHOD # # #) (NEXT-METHOD-P NIL #)) (DECLARE  
(INLINE CALL-NEXT-METHOD NEXT-METHOD-P)) (SETF (SLOT-VALUE THIS #)  
(MAKE-TICKER-CHART # :BEGIN-DATE #)) (CCL::SEND THIS "display")))
16: (CCL::NX1-FORM '(FLET ((CALL-NEXT-METHOD # # #) (NEXT-METHOD-P  
NIL #)) (DECLARE (INLINE CALL-NEXT-METHOD NEXT-METHOD-P)) (SETF (SLOT- 
VALUE THIS #) (MAKE-TICKER-CHART # :BEGIN-DATE #)) (CCL::SEND THIS  
"display")))
17: (CCL::NX1-BLOCK '(BLOCK UPDATE-CHART (FLET (# #) (DECLARE #)  
(SETF # #) (CCL::SEND THIS "display"))) #<CCL::LEXICAL-ENVIRONMENT  
#x92E7076>)
18: (CCL::NX1-COMBINATION #<CCL::LEXICAL-ENVIRONMENT #x92E7076>  
'(BLOCK UPDATE-CHART (FLET (# #) (DECLARE #) (SETF # #) (CCL::SEND  
THIS "display"))))
19: (CCL::NX1-FORM '(BLOCK UPDATE-CHART (FLET (# #) (DECLARE #) (SETF  
# #) (CCL::SEND THIS "display"))))
20: (CCL::NX1-ENV-BODY '((BLOCK UPDATE-CHART (FLET # # # #))) '(NIL  
NIL))
21: (CCL::NX1-LAMBDA '((DECLARE (IGNORABLE THIS))) 'NIL '(NFUNCTION  
UPDATE-CHART (LAMBDA (CCL::&METHOD #:NEXT-METHOD-CONTEXT THIS)  
(DECLARE #) (BLOCK UPDATE-CHART #))))
22: (CCL::NX1-COMPILE-LAMBDA 'UPDATE-CHART '(LAMBDA (CCL::&METHOD  
#:NEXT-METHOD-CONTEXT THIS) (DECLARE (IGNORABLE THIS)) (BLOCK UPDATE- 
CHART (FLET # # # #))) #<CCL::AFUNC #x92E70EE>)
23: (CCL::NX1-REF-INNER-FUNCTION 'UPDATE-CHART '(LAMBDA (CCL::&METHOD  
#:NEXT-METHOD-CONTEXT THIS) (DECLARE (IGNORABLE THIS)) (BLOCK UPDATE- 
CHART (FLET # # # #))) #<CCL::DESTRUCTURE-STATE #x1694876>)
24: (CCL::NX1-NFUNCTION '(NFUNCTION UPDATE-CHART (LAMBDA  
(CCL::&METHOD #:NEXT-METHOD-CONTEXT THIS) (DECLARE #) (BLOCK UPDATE- 
CHART #))) #<CCL::LEXICAL-ENVIRONMENT #x92E71D6>)
25: (CCL::NX1-COMBINATION #<CCL::LEXICAL-ENVIRONMENT #x92E71D6>  
'(NFUNCTION UPDATE-CHART (LAMBDA (CCL::&METHOD #:NEXT-METHOD-CONTEXT  
THIS) (DECLARE #) (BLOCK UPDATE-CHART #))))
26: (CCL::NX1-FORM '(NFUNCTION UPDATE-CHART (LAMBDA (CCL::&METHOD  
#:NEXT-METHOD-CONTEXT THIS) (DECLARE #) (BLOCK UPDATE-CHART #))))
27: (CCL::NX1-ARGLIST '('UPDATE-CHART (LIST 'CHART-OPENGL- 
VIEW) :FUNCTION (NFUNCTION UPDATE-CHART (LAMBDA # # #)) :QUALIFIERS  
'NIL :LAMBDA-LIST '(THIS)) 3)
28: (CCL::NX1-CALL-FORM 'CCL::ENSURE-METHOD 'NIL 'CCL::ENSURE-METHOD  
'NIL)
29: (CCL::NX1-CALL 'CCL::ENSURE-METHOD 'CCL::ENSURE-METHOD  
'(CCL::ENSURE-METHOD 'UPDATE-CHART (LIST 'CHART-OPENGL- 
VIEW) :FUNCTION (NFUNCTION UPDATE-CHART (LAMBDA # # #)) :QUALIFIERS  
'NIL :LAMBDA-LIST '(THIS)) '(CCL::*NX-METHOD-WARNING-NAME*))
30: (CCL::NX1-TYPED-CALL 'CCL::ENSURE-METHOD '('UPDATE-CHART (LIST  
'CHART-OPENGL-VIEW) :FUNCTION (NFUNCTION UPDATE-CHART (LAMBDA # #  
#)) :QUALIFIERS 'NIL :LAMBDA-LIST '(THIS)))
31: (CCL::NX1-COMBINATION #<CCL::LEXICAL-ENVIRONMENT #x92E71D6>  
'(CCL::ENSURE-METHOD 'UPDATE-CHART (LIST 'CHART-OPENGL- 
VIEW) :FUNCTION (NFUNCTION UPDATE-CHART (LAMBDA # # #)) :QUALIFIERS  
'NIL :LAMBDA-LIST '(THIS)))
32: (CCL::NX1-FORM '(CCL::ENSURE-METHOD 'UPDATE-CHART (LIST 'CHART- 
OPENGL-VIEW) :FUNCTION (NFUNCTION UPDATE-CHART (LAMBDA # #  
#)) :QUALIFIERS 'NIL :LAMBDA-LIST '(THIS)))
33: (CCL::NX1-CATCH-BODY '((CCL::ENSURE-METHOD 'UPDATE-CHART (LIST  
#) :FUNCTION (NFUNCTION UPDATE-CHART #) :QUALIFIERS 'NIL :LAMBDA-LIST  
'#)))
34: (CCL::NX1-COMPILER-LET '(COMPILER-LET ((CCL::*NX-METHOD-WARNING- 
NAME* #)) (CCL::ENSURE-METHOD 'UPDATE-CHART (LIST #) :FUNCTION  
(NFUNCTION UPDATE-CHART #) :QUALIFIERS 'NIL :LAMBDA-LIST '#))  
#<CCL::LEXICAL-ENVIRONMENT #x92E726E>)
35: (CCL::NX1-COMBINATION #<CCL::LEXICAL-ENVIRONMENT #x92E726E>  
'(COMPILER-LET ((CCL::*NX-METHOD-WARNING-NAME* #)) (CCL::ENSURE- 
METHOD 'UPDATE-CHART (LIST #) :FUNCTION (NFUNCTION UPDATE-CHART  
#) :QUALIFIERS 'NIL :LAMBDA-LIST '#)))
36: (CCL::NX1-FORM '(COMPILER-LET ((CCL::*NX-METHOD-WARNING-NAME* #))  
(CCL::ENSURE-METHOD 'UPDATE-CHART (LIST #) :FUNCTION (NFUNCTION  
UPDATE-CHART #) :QUALIFIERS 'NIL :LAMBDA-LIST '#)))
37: (CCL::NX1-PROGN '(PROGN (COMPILER-LET (#) (CCL::ENSURE-METHOD #  
# :FUNCTION # :QUALIFIERS # :LAMBDA-LIST #))) #<CCL::LEXICAL- 
ENVIRONMENT #x92E726E>)
38: (CCL::NX1-COMBINATION #<CCL::LEXICAL-ENVIRONMENT #x92E726E>  
'(PROGN (COMPILER-LET (#) (CCL::ENSURE-METHOD # # :FUNCTION  
# :QUALIFIERS # :LAMBDA-LIST #))))
39: (CCL::NX1-FORM '(PROGN (COMPILER-LET (#) (CCL::ENSURE-METHOD #  
# :FUNCTION # :QUALIFIERS # :LAMBDA-LIST #))))
40: (CCL::NX1-ENV-BODY '((PROGN (COMPILER-LET # #))) '(NIL NIL))
41: (CCL::NX1-LAMBDA 'NIL '(LAMBDA NIL (PROGN (COMPILER-LET # #))) 'NIL)
42: (CCL::NX1-COMPILE-LAMBDA 'NIL '(LAMBDA NIL (PROGN (COMPILER-LET #  
#))) #<CCL::AFUNC #x92E72D6>)
43: (CCL::COMPILE-NAMED-FUNCTION '(LAMBDA NIL (PROGN (COMPILER-LET #  
#))) 'NIL #<CCL::LEXICAL-ENVIRONMENT #x92E738E> 'NIL 'T)
44: (CCL::COMPILE-USER-FUNCTION '(LAMBDA NIL (PROGN (COMPILER-LET #  
#))) 'NIL #<CCL::LEXICAL-ENVIRONMENT #x92E738E>)
45: (CCL::CHEAP-EVAL-IN-ENVIRONMENT '(DEFMETHOD UPDATE-CHART ((THIS  
CHART-OPENGL-VIEW)) (SETF (SLOT-VALUE THIS #) (MAKE-TICKER-CHART  
# :BEGIN-DATE #)) (CCL::SEND THIS "display")) 'NIL)
46: (CCL::LOAD-FROM-STREAM #P"/private/tmp/util-cocoa-graph.lisp"  
#<SVAR *LOAD-TRUENAME* 228 #x80C49D6>)
47: (CCL::%LOAD "/tmp/util-cocoa-graph.lisp" 'NIL ':ERROR ':DEFAULT  
'(#<RESTART CCL::RETRY-LOAD #x1694A76> #<RESTART CCL::SKIP-LOAD  
#x1694A9E> #<RESTART CCL::LOAD-OTHER #x1694AC6>))
48: (LOAD "/tmp/util-cocoa-graph.lisp")
49: (CCL::CALL-CHECK-REGS 'LOAD)
50: (SWANK::EVAL-REGION "(load \"/tmp/util-cocoa-graph.lisp\")
" 'T)
51: (#<Anonymous Function #x9141906> "(load \"/tmp/util-cocoa- 
graph.lisp\")
")
52: (SWANK::CALL-WITH-BUFFER-SYNTAX #<COMPILED-LEXICAL-CLOSURE  
#x924CC3E>)
53: (CCL::CALL-CHECK-REGS 'SWANK:LISTENER-EVAL)
54: (#<Anonymous Function #x91446C6> '(SWANK:LISTENER-EVAL "(load \"/ 
tmp/util-cocoa-graph.lisp\")
") 44 "COMMON-LISP-USER")
55: (#<STANDARD-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)>  
#<Compiled-function SWANK:SWANK-DEBUGGER-HOOK #x914063E> #<COMPILED- 
LEXICAL-CLOSURE #x924CC5E>)
56: (FUNCALL 'SWANK::EVAL-FOR-EMACS)
57: (#<Anonymous Function #x911335E>)
58: (#<STANDARD-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)>  
#<Compiled-function SWANK:SWANK-DEBUGGER-HOOK #x914063E> #<Anonymous  
Function #x911335E>)
59: (SWANK::CALL-WITH-REDIRECTED-IO #<COMPILED-LEXICAL-CLOSURE  
#x924CC7E> #<CONNECTION  #x916BF06>)
60: (SWANK::CALL-WITH-CONNECTION #<CONNECTION  #x916BF06> #<Anonymous  
Function #x911335E>)
61: (SWANK::HANDLE-REQUEST #<CONNECTION  #x916BF06>)
62: (#<Anonymous Function #x910F54E> #<CONNECTION  #x916BF06>)
63: (#<STANDARD-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)>  
#<Compiled-function SWANK:SWANK-DEBUGGER-HOOK #x914063E> #<COMPILED- 
LEXICAL-CLOSURE #x924D02E>)
64: (SWANK::CALL-WITH-REDIRECTED-IO #<COMPILED-LEXICAL-CLOSURE  
#x924D016> 'NIL)
65: (SWANK::CALL-WITH-CONNECTION #<CONNECTION  #x916BF06> #<COMPILED- 
LEXICAL-CLOSURE #x924D02E>)
66: (SWANK::CALL-WITH-BINDINGS 'NIL #<COMPILED-LEXICAL-CLOSURE  
#x924D046>)
67: (CCL::RUN-PROCESS-INITIAL-FORM '(#<COMPILED-LEXICAL-CLOSURE  
#x924AEDE>) #<PROCESS new-repl-thread(22) [Active] #x924AF16>)
68: (#<Anonymous Function #x80DB2DE> '(#<COMPILED-LEXICAL-CLOSURE  
#x924AEDE>) 0)
69: (#<Anonymous Function #x80CE5EE> 1021504 #<LISP-THREAD new-repl- 
thread [tcr @ #x3E5900] #x924B00E>)

On Aug 13, 2006, at 1:48 AM, Gary Byers wrote:

>
> It seems that you can actually provoke the bug just by doing:
>
> ? (require "COCOA")
> [...]
> ? (%int-to-ptr #xc000000) ; other values whose addresses are greater
>                           ; than the highest library address in use
> 			  ; will also fail.
>
> The set of interfaces you're using doesn't have too much to do with
> this bug, but it might (in some way) somehow affect where #_malloc
> and things like that decide to put things.  That probably isn't easy
> to predict, and of course this shouldn't crash.
>
> In the file "ccl:examples;objc-runtime.lisp", there's a function
> called POINTER-IN-CFSTRING-SECTION-P; it's defined within a LET*
> along with a few other functions.  It starts out by doing:
>
>     (let* ((addr (%ptr-to-int ptr))
>            (min 0)
>            (max (length cfstring-sections-vector)))
>
> MAX really wants to be the index of the last element instead of the
> length of the vector, so the last binding should be something like:
>
>            (max (1- (length cfstring-sections-vector))))
>




More information about the Openmcl-devel mailing list