freenode/#lisp - IRC Chatlog
Search
17:16:12
pjb
Posterdati: add (error (err) (format t "~A~%~:*~S~%" err) (error err)) ad the end of the handler-case and see what is printed.
17:18:52
pjb
Posterdati: or even: (error (err) (format t "~S~%" (class-name (class-of err))) (error err))
17:20:45
pjb
Posterdati: add (error (err) (format t "~A~%~:*~S~%" err) (error err)) ad the end of the handler-case and see what is printed.
17:28:08
pjb
Notice that your paste is not a full (self-sufficient) test-case. It lacks calls to quickload etc.
17:30:08
pjb
Now, indeed, if it was handled inside the with-open-socket, you could get it with an ouside handler-case. But since you got it, it's not.
17:39:06
knusbaum
You have one call on line 8 inside with-open-socket, and another on line 33 inside the error handler.
17:42:06
Posterdati
knusbaum: sure it is the first lookup-hostname function to throw, since there's no "INTELNUC" yet
17:50:12
pjb
(defparameter *my-so* (com.informatimago.common-lisp.cesarum.file:binary-file-contents "/usr/lib/libm.dylib"))
17:51:07
phoe
he pulled a ton of dependencies into a Lisp image and created a static binary that played music
17:53:53
Bike
there is a slide in his actual talk titled "application delivery with static c libraries"
17:55:00
rumbler31
phoe. you're using the term static linking for what you're talking about and I think it's confusing people
17:58:25
phoe
minion: memo for Fare: Hey, do you have more information on this slide of yours from ELS, static lin... oh. minion is dead. well, fine.
17:58:50
phoe
I don't want a shared object as a separate file - I want a single monolithic Lisp image.
17:59:09
phoe
and I don't think that he converted all the Linux .so files into static objects in order to link them with the Lisp binary.
17:59:15
pjb
At run-time you just do (setf (com.informatimago.common-lisp.cesarum.file:binary-file-contents "/tmp/libm.dylib") *my-so*) and then you can open that library.
17:59:54
rumbler31
the dumb simple way is to barf the so back out to tmp and use a cffi load library call
18:00:22
rumbler31
of course its on you to make sure that any shared objects that *they* require are either available at the destination or supplied by you and loaded in the correct order
18:01:48
knusbaum
What kind of packaging is this? When I save my lisp image, the resulting executable doesn't link to any shared objects.
18:04:20
rumbler31
simply, imagine what it would take to feed cffi load library. it needs a library name or else an explicit path to a library
18:04:58
rumbler31
how can you consume a binary file and store it in your image using native lisp calls. pjb has an answer.
18:05:14
rumbler31
then barf that back out and supply the newly barfed lib to a call to cffi load-library
18:06:01
rumbler31
pitfalls would be that the system dlopen calls might try to find other shared libraries that you forgot to ship, or that need to be loaded in the correct order
18:08:11
pjb
This is the implementation independent way. Then you can use implementation specific features to statically link static libraries with your executable save image. But on modern unix systems, a lot of libraries just cannot be delivered statically, and have to be dynamically linked.
18:08:27
rumbler31
you can instantly know on your deployment machine what libraries are required and go have them be autoingested in the correct order
20:27:54
dTal
Sure, metaphorically speaking - whatever form the "more structured" version of metaprogramming takes, it'll probably be layered on some kind of macro system
20:29:26
slark
actually as a beginner macro looks like magic and i want to use them as much as i can cause it seems "cool"
20:39:52
slark
antoszka: well it is really for people who want to learn programming with lisp as a vector
20:40:12
sukaeto
A Gentle Introduction to Symbolic Computation is perfectly good as a programming 101 book
20:46:01
antoszka
slark: The Norvig book is actually the best programming *and* CL book ever in my opinion :)
20:50:55
slark
was trying to find lib for GUI app, and found that lispworks made them easy to use on all OS
20:56:32
antoszka
slark: Hard to quantify, but I think most people here will use open-source implementations (sbcl and clozurecl being probably the two most popular) with open source UI libraries.
20:56:44
fiveop
I have a problem that I can best describe by an example (http://paste.lisp.org/display/351183) and the question "How can I conditionally splice a comma form into a backquoted list?"
20:57:35
antoszka
slark: Open source GUI libraries aren't the strongest side of CL these days, unfortunately, but most progress seems to be going on the McCLIM refresh and QT5 fronts (the latter in the form of Shinmera's work).
20:58:56
Bike
`(a ,@(when t `((+ b c))) d) => (a (+ b c) d), `(a ,@(when nil `((+ b c))) d) => `(a d)
21:00:06
Bike
double backquote kind of shuts my brain down, but the same principle shouldn't stop working
22:08:31
ptdel
hello I am very new to lisp, I have a question that is probably really silly. If I want to load multiple libraries at runtime, should I be making an .asd file that loads all of my libs or just use quicklisp?
22:09:04
ptdel
when I want to load lots of libs I am doing (mapcar #'ql:quickload :lib1 :lib2 :lib3) I'm guessing this is a jank way
22:10:56
ptdel
ah ok, correct me if I am off base, I would use the defsystem form for this correct? with each of my libs being in the :depends-on or :component keywords?
22:13:07
phoe
I have pushed the first seemingly working version of CL-LZMA on github, https://github.com/phoe/cl-lzma/blob/master/cl-lzma.lisp
22:19:18
phoe
Can any of you guys on linux64 pull this and check if it builds and if the tests pass?