[armedbear-devel] Deploying compiled ABCL apps/elements

Eric Marsden eric.marsden at free.fr
Sun Jul 26 13:45:57 UTC 2009


>>>>> "as" == Alessio Stalla <alessiostalla at gmail.com> writes:

  as> The other solution, maybe less optimal but much easier imho, is to
  as> expose the api for loading files from jars and integrate it with LOAD
  as> (that is, with Lisp pathnames), and maybe provide a nice function to
  as> package a bunch of compiled Lisp files (say, from a given directory)
  as> into a jar to be deployed together with abcl.jar. I haven't thought
  as> about this in depth so there might be conceptual problems, I don't
  as> know. But if it can be done, it's not hard to do.

  I've had a first stab at doing this; it works OK in light testing.

  To compile files to a zip file (existing functionality in ABCL), do

    (let ((sys::*compile-file-zip* t))
      (compile-file "foo.lisp" :output-file "/tmp/foo.jar"))

   To load from that jar, apply the attached patch and use

     (load "jar:file:/tmp/foo.jar!/foo")

   You can bundle your compiled files with ABCL in a single jar and load
   directly from that (you'd need to fiddle with "getResource" to know
   your home jar filename; possibly we should set EXT:*LISP-HOME* to
   that when running from a jar). 

  
-------------- next part --------------
A non-text attachment was scrubbed...
Name: load-jar.diff
Type: text/x-diff
Size: 4062 bytes
Desc: Allow loading from a FASL stored in a jar file
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20090726/0d3a8a12/attachment.diff>
-------------- next part --------------

-- 
Eric Marsden


More information about the armedbear-devel mailing list