Manually Registering asdf library

Discussion of Common Lisp
Post Reply
Suroy
Posts: 46
Joined: Sat Dec 19, 2009 11:20 am

Manually Registering asdf library

Post by Suroy » Thu Mar 25, 2010 2:56 pm

Im using ecl lisp and one possibility there is to build a library into a monolithic library which you can link against in your c programs (so you dont have to explicitely (require 'library), which might take awhile).

The problem is that the library is not registered with asdf. So, if i attempt to (require 'library), or to load another library which depends upon it from the c code, it'll rebuild the library from the file system because it doesn't know it has already 'loaded' it. So, is there a 'best' way to manually register it so it doesn't attempt to rebuild???

nuntius
Posts: 538
Joined: Sat Aug 09, 2008 10:44 am
Location: Newton, MA

Re: Manually Registering asdf library

Post by nuntius » Thu Mar 25, 2010 8:07 pm

Juanjo has been tackling that issue on the ASDF mailing list lately. I think he got a working result; but I wasn't able to give the thread much attention.

He added a few extensions to make this work; I would recommend asking on the ecl devel list.

jjgarcia
Posts: 38
Joined: Mon Oct 13, 2008 2:48 pm

Re: Manually Registering asdf library

Post by jjgarcia » Fri Mar 26, 2010 4:41 pm

Suroy wrote:Im using ecl lisp and one possibility there is to build a library into a monolithic library which you can link against in your c programs (so you dont have to explicitely (require 'library), which might take awhile).

The problem is that the library is not registered with asdf. So, if i attempt to (require 'library), or to load another library which depends upon it from the c code, it'll rebuild the library from the file system because it doesn't know it has already 'loaded' it. So, is there a 'best' way to manually register it so it doesn't attempt to rebuild???
This feature, that is taking a system defined with ASDF and building a binary replacement for it, is a brand new ECL extension. Until last week it was impossible to do that for users; last week I implemented it for the ECL core extensions; this week I added it for ASDF and promoted the patch upstream, and today I just found it has a small bug.

So you can consider that what you are asking for is not supported by ASDF-release right now (it wasn't even considered as a possibility by the ASDF creators and maintainers), but it is something being worked on. Hopefully it will be mature enough for the upcoming release of ECL.

BTW, the goal is not that only ECL is capable of doing that, but rather making this a standard feature of ASDF, but that requires porting what we did with ECL to other platforms. It will take some days.

Post Reply