lisp at davidb.org
Sun Feb 10 17:49:31 UTC 2008
I'm running ccl on x86_64 linux, built from SVN source (the 'source')
directory. The code snippet below causes a segfault, but doesn't if run in
the July snapshot.
(let ((shared1 (make-array 8 :element-type '(unsigned-byte 8)))
(shared2 (make-array 8 :element-type '(unsigned-byte 8))))
(ccl:with-pointer-to-ivector (%shared1 shared1)
(ccl:with-pointer-to-ivector (%shared2 shared2)
(%stack-block ((stacky 8))
(format t "~A~%~A~%~A~%" %shared1 %shared2 stacky)))))
I can easily work around it by moving the %stack-block before the
with-pointer-to-ivector calls, so this isn't critical or anything. It does
require the two calls to with-pointer-to-ivector.
When working, the messages printing, are something like:
#<A Foreign Pointer [stack-allocated] #x300040F1C148>
#<A Foreign Pointer [stack-allocated] #x300040F1C138>
#<A Foreign Pointer [stack-allocated] #x40262DB0>
Should the pointer from with-pointer-to-ivector be marked as
'stack-allocated' even though it is not?
More information about the Openmcl-devel