#235: Compiled cl+ssl sources not reloadable ------------------------+--------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: new Priority: major | Milestone: 1.1.0 Component: compiler | Version: Keywords: | ------------------------+--------------------------------------------------- When loading compiled cl+ssl sources, abcl throws the following error:
{{{ Error loading /home/ehuelsmann/.cache/common-lisp/abcl-1.1.0-dev- svn-14068-fasl39-linux- java/home/ehuelsmann/quicklisp/dists/quicklisp/software/cl+ssl-20120703-git/ffi.abcl at line 168 (offset 9318) #<THREAD "interpreter" {1513F3}>: Debugger invoked on condition of type ERROR Class not found: org.armedbear.jna.dynamic.callbacks.G15349 }}}
It seems a reference to a dynamic class is saved, but the class is not regenerated upon loading in a fresh image.
#235: Compiled cl+ssl sources not reloadable -----------------------------+---------------------------------------------- Reporter: ehuelsmann | Owner: mevenson Type: defect | Status: assigned Priority: major | Milestone: 1.1.0 Component: compiler | Version: 1.1.0-dev Keywords: cffi, quicklisp | -----------------------------+---------------------------------------------- Changes (by mevenson):
* keywords: => cffi, quicklisp * owner: ehuelsmann => mevenson * version: => 1.1.0-dev * status: new => assigned
Comment:
See http://article.gmane.org/gmane.lisp.armedbear.devel/2394 for more background.
Currently, the ABCL CFFI code uses a gensym to name the classes created to support callbacks. A better strategy would be to hash the "prescriptive" part of a callback into the class generated by the ABCL CFFI code.
#235: Compiled cl+ssl sources not reloadable -----------------------------+---------------------------------------------- Reporter: ehuelsmann | Owner: mevenson Type: defect | Status: assigned Priority: major | Milestone: 1.1.0 Component: compiler | Version: 1.1.0-dev Keywords: cffi, quicklisp | -----------------------------+----------------------------------------------
Comment(by mevenson):
"into the name of the class"
#235: Compiled cl+ssl sources not reloadable -----------------------------+---------------------------------------------- Reporter: ehuelsmann | Owner: mevenson Type: defect | Status: assigned Priority: major | Milestone: 1.1.0 Component: compiler | Version: 1.1.0-dev Keywords: cffi, quicklisp | -----------------------------+----------------------------------------------
Comment(by https://openid.fau.de/eg74yneg):
Hm could one just ignore these compiled files? having to rm them all the time isn't really that nice
#235: Compiled cl+ssl sources not reloadable -----------------------------+---------------------------------------------- Reporter: ehuelsmann | Owner: mevenson Type: defect | Status: assigned Priority: major | Milestone: 1.1.0 Component: compiler | Version: 1.1.0-dev Keywords: cffi, quicklisp | -----------------------------+----------------------------------------------
Comment(by mevenson):
Replying to [comment:3 https://openid.fau.de/eg74yneg]:
Hm could one just ignore these compiled files? having to rm them all the
time isn't really that nice
One has never needed to remove the files outside of ABCL: an interactive restart is provided to recompile the dynamic classes.
#235: Compiled cl+ssl sources not reloadable -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: mevenson Type: defect | Status: closed Priority: major | Milestone: 1.1.0 Component: compiler | Version: 1.1.0-dev Resolution: fixed | Keywords: cffi, quicklisp -------------------------+-------------------------------------------------- Changes (by mevenson):
* status: assigned => closed * resolution: => fixed
Comment:
The latest version of the [CFFI patches for ABCL][1] names the dynamically created interfaces for CFFI callbacks in a manner that no longer needs compliation.
[1]: http://slack.net/~evenson/abcl/cffi/cffi-abcl-20121021a.patch
A [version of this patch has been committed to the master CFFI repository][2], so this change will make it into the Quicklisp distributed version when there is a new release of CFFI.
[2]: https://github.com/cffi/cffi/commit/bd316af736a0bd13e81e4f2f53a24709eaf72f6d
armedbear-ticket@common-lisp.net