freenode/#lisp - IRC Chatlog

Search
16:44:06 grumble2 ** NICK grumble
18:35:17 roscoe_t` ** NICK roscoe_tw
19:32:02 gendl Hi, is it possible to package cffi for a runtime deployment without depending on ASDF?
19:32:28 gendl If i use (asdf:operate 'asdf:monolithic-compile-bundle :cl+ssl) to generate a standalone loadable .fasl file,
19:32:49 gendl that .fasl file ends up with a bunch of symbols in ASDF packages, coming from CFFI.
19:32:59 jackdaniel asdf injects itself even if runtime doesn't depend on it
19:33:31 gendl I don't need all CFFI's generate capabilities, just the runtime -- no easy way to disentangle ASDF from it?
19:33:57 gendl as of now, that is the one thing which is polluting my image with ASDF dependency.
19:34:13 gendl things really aren't supposed to depend on ASDF, as far as I understand...
19:34:56 jackdaniel some parts of cffi do use asdf (just checked)
19:35:29 jackdaniel you may want to try to create a "mini" system which doesn't include extra goodies
19:37:38 jackdaniel gendl: it seems that base cffi system uses asdf only in functions.lisp file
19:38:11 jackdaniel in one place
19:38:32 gendl You mean the (asdf:operate 'asdf:load-op 'cffi-libffi)
19:38:39 jackdaniel yes
19:39:30 dlowe these days you can (asdf:load-system 'cffi-libffi)
19:39:34 jackdaniel but I think ASDF injects itself into bundle dependencies (see `:no-uiop' option to program-system
19:39:43 jackdaniel )
19:39:48 jackdaniel in asdf.lisp source code
19:40:56 pjb` ** NICK pjb
19:41:23 jackdaniel or maybe it's only for programs (not for bundles)
19:42:59 gendl jackdaniel: thanks. Looks kinda complicated to disentangle it. I'll have to circle back to it later.
20:02:20 emaczen I have a custom setf method, how would I make a custom incf method?
20:03:35 pjb Providing the corresponding reader.
20:03:52 phoe emaczen: custom incf method? What do you mean?
20:03:55 pjb (defun foo (x) …) (defun (setf foo) (nv x) …) (incf (foo x))
20:05:04 emaczen what is (nv x) ?
20:05:17 pjb new-value, some random parameter your accessor may need.
20:05:31 pjb You said you wrote a setf function!
20:05:37 phoe gasp
20:06:50 Bike emaczen: incf isn't customizable, it's just (incf thing n) => (setf thing (+ thing n))
20:09:26 emaczen does (setf method) allow keywords?
20:09:44 pjb Yes.
20:09:54 pjb But methods don't dispatch on keywords.
20:10:37 pjb And you will have to handle the same keywords in both the reader and the writer!
20:12:09 emaczen pjb: thanks, I got it now
20:22:29 pookleblinky Picolisp looks interesting
20:23:20 pjb Not.
20:24:02 pjb and foremost, it's out of topic. Try ##lisp.
20:57:40 ebrasca ** NICK ebrasca-afk
22:05:42 akkad yeah, everyone here knows we only talk about PicoDeGallo
22:09:25 vsync hum, trying to find some pages I know I've seen ages ago about the definition of "protocols", as such, in Common Lisp
22:13:55 vsync IIRC like many Lisp things, it's kind of amorphous: the collection of variables and methods named by exported symbols, or something like that. but I need to explain the concept to someone at work to summarize the overall package style, and I can't find the very slightly more stringent description I remember seeing
22:16:53 pjb vsync: a set of generic functions.
22:45:10 vsync hmm... what's the thing called where you have STANDARD-foo for most foo
23:01:08 [X-Scale] ** NICK X-Scale
23:03:49 pookleblinky ccl feels snappy, works perfectly with slime right out of the box.
23:04:20 Bike it's pretty fast yeah.
23:17:17 _death vsync: for protocols, there's clim spec, amop, mikel evins's posts, dylan manuals, various papers (by amop authors, strandh, gabriel, etc.), many c.l.l posts
23:22:05 pookleblinky Hm, tried running benchmarks between sbcl,ccl, and clisp, but each has an interestingly different focus on internal (time) function
23:33:03 Lord_Nightmare what about cmucl? did that diverge enougb from sbcl by now to have a significantly different benchmark?
0:04:05 akkad ccl has microseconds
0:06:03 akkad pookleblinky: (let ((btime (get-internal-real-time)) (etime (get-internal-real-time))) (format t "Delta is ~a~%" (/ (float (- etime btime)) (float internal-time-units-per-second))))
0:06:04 akkad
0:06:20 akkad pookleblinky: that's portable
0:08:25 akkad pookleblinky: http://zeniv.linux.org.uk/~ober/report.html has numbers from cl-bench. pretty recent
0:09:02 Ven ** NICK Guest30373
0:16:25 ebrasca-` ** NICK ebrasca
0:19:07 pookleblinky akkad: ah, thanks
0:20:40 akkad np
0:30:28 hugo_dc_ ** NICK hugo_dc
1:27:38 vsync _death: cool, thanks... so frustrating because I have a vague mental image of a specific PDF or two and some Web pages, that laid it out in a specific way, just can't find any of them
1:27:40 vsync oh well
2:04:01 vsync what's a good name for a function to find a thing that exists, or make it if it doesn't, or return the thing?
2:04:33 pjb (or (find thing where) default)
2:04:58 vsync ok, let me rephrase
2:05:01 pjb Do you want to keep your default?
2:05:47 vsync it's not a function but an operation... i'm defining several operations that will have different implementations and substeps each, and will take paths depending on state at runtime and the arguments
2:05:58 pjb If you make and keep it for next time, and you use some parameters to make it, then it's an "intern" operation.
2:06:23 vsync so one of them involves making it or not, depending, but it's one high-level step from user's point of view (though not transparent to them)
2:06:45 vsync hmm, was thinking intern but didn't know if that could apply generically
2:07:17 pjb your:intern-thing, not cl:intern
2:07:22 vsync yeah of course
2:07:36 vsync there's also "acquire" which has the nice ring of being a term of art apparently
2:07:42 vsync "patient acquisition" (medical)
2:07:50 vsync but don't know if that implies interning or new pts only
2:08:10 pjb acquire is good for resources that can then be released.
2:08:16 pjb like locks ;-)
2:08:31 vsync if i can find a nice syntax to make (with-patient (pt-designator) ...) work you know I will
2:09:00 vsync acquire is also nice because it can be acquiring a handle on the patient for the session, or acquiring new info about the patient
2:09:11 vsync I think the overloading works in my favor on that one
2:09:37 pjb when you have acquire/release, it'll be more often hidden in a with- macro.
2:10:05 vsync yeah... though in this case there may not be a corresponding release
2:10:59 vsync ok, now how about making an empty thing that will be later filled in and possibly actually used
2:11:02 pjb What if another thread wants to work with the same patient?
2:11:15 pjb hash-tables are convenient.
2:11:15 vsync i know MAKE-INSTANCE calls INITIALIZE-INSTANCE.....
2:11:44 pjb or shared-initialize if you expect change-class…
2:12:47 vsync well MAKE-INSTANCE calls INITIALIZE-INSTANCE which calls SHARED-INITIALIZE
2:12:57 vsync but i was looking to it more for naming convention
2:13:23 vsync trying to remember what the thing that makes the completely empty instance given to initialize-instance is called
2:13:59 vsync hmm ALLOCATE-INSTANCE according to CLtL2
2:14:19 pjb still exists
2:14:24 pjb clhs allocate-instance
2:14:26 pjb Good night.
2:14:44 vsync i assumed so... just happened to have that page open
2:14:49 vsync thanks for being a sounding board
2:14:51 vsync cheers
2:31:09 tgips hi, does ANSI INCITS 226-1994 (R2004) is "no technical implications"
2:31:10 tgips with ANSI INCITS 226-1994(08/12/1994)
2:57:39 beach Good morning everyone!
2:57:55 beach vsync: Do you mean this one: http://metamodular.com/protocol.pdf
2:59:15 beach tgips: What are those?
3:00:00 vsync beach: may not have seen this before but yes "protocol classes" and the explanation is exactly what I was thinking of