ubikation _ ubikation-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org writes:
What projects are people working on using ABCL? If they are open-source, would you mind sharing a link to the repository?
Since the lack of answers is slightly disappointing I guess I can post something regarding an experiment I did an afternoon a couple months ago which tried to link Jython to ABCL.
Since it was an experiment I didn't put the source code online. Also currently the source is basically just a "*slime-scratch*" buffer saved to a file which means that the code is a hairy mess.
But here's an example to show how to use it:
(add-to-classpath "/home/rolando/src/jython/jython-standalone-2.5.3.jar") (defvar *interpreter* (jss:new 'org.python.util.PythonInterpreter))
(#"exec" *interpreter* "import feedparser")
(defvar *rss-parse* (gethash "parse" (py-unwrap (#"getDict" (gethash "feedparser" (py-unwrap (#"getLocals" *interpreter*)))))))
;; Get the ABCL mailing list RSS (defvar *rss* (pycall *rss-parse* "http://rss.gmane.org/gmane.lisp.armedbear.devel"))
Having defined the "*rss*" variable you can then do this:
CL-USER> (gethash "title" (nth 1 (gethash "entries" (py-unwrap *rss*)))) "Web frameworks with ABCL (was Re: SBCL->ABCL migration questions)" T
Something I wanted to make was importing the Python modules as Lisp functions so instead of defining the "*rss-parse*" as
(defvar *rss-parse* (gethash "parse" (py-unwrap (#"getDict" (gethash "feedparser" (py-unwrap (#"getLocals" *interpreter*)))))))
you could do:
(feedparser:parse "http://rss.gmane.org/gmane.lisp.armedbear.devel")
and that would also allow you slime's autocomplete to complete the python code.
I've thought about doing the above using a macro around the "inspect" Python module, but never got around to it.
Best Regards, Rolando Pereira