Opened 8 years ago

Closed 8 years ago

#235 closed defect (fixed)

Compiled cl+ssl sources not reloadable

Reported by: ehuelsmann Owned by: Mark Evenson
Priority: major Milestone: 1.1.0
Component: compiler Version: 1.1.0-dev
Keywords: cffi, quicklisp Cc:
Parent Tickets:

Description

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.

Change History (5)

comment:1 Changed 8 years ago by Mark Evenson

Keywords: cffi quicklisp added
Owner: changed from ehuelsmann to Mark Evenson
Status: newassigned
Version: 1.1.0-dev

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.

comment:2 Changed 8 years ago by Mark Evenson

"into the name of the class"

comment:3 Changed 8 years ago by Christoph Egger

Hm could one just ignore these compiled files? having to rm them all the time isn't really that nice

comment:4 in reply to:  3 Changed 8 years ago by Mark Evenson

Replying to 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.

comment:5 Changed 8 years ago by Mark Evenson

Resolution: fixed
Status: assignedclosed

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

Note: See TracTickets for help on using tickets.