00:00:02 is it deleting that code? 00:00:16 do you get any notes about code deletion when you compile without debug? 00:00:41 no, here, here's one without warnings. 00:01:06 http://pastebin.com/m28d9ae3f 00:01:12 if you comment out every, it works 00:01:16 no other warnings 00:02:17 -!- jsfb [~jon@unaffiliated/jsfb] has quit [Quit: Leaving] 00:07:14 sbahra [~sbahra@2002:62da:45b3:1234:21d:e0ff:fe00:f7ab] has joined #lisp 00:07:50 -!- dralston [~dralston@S010600212986cca8.va.shawcable.net] has quit [Remote host closed the connection] 00:09:08 Demosthenes: now, remove the #'digit-char-p and change it to just 'digit-char-p 00:09:24 bingo, it works. Also, change space to 1. 00:09:55 then it works too 00:10:12 RaceCondition [~RaceCondi@85.253.73.94.cable.starman.ee] has joined #lisp 00:10:45 Demosthenes: so, knowing that, you need to come up with a minimal form that exhibits the bug... add and remove stuff until you've got it down to the bare essentials. 00:11:10 Then, report it to the mailing list or jump into the sbcl code :) 00:11:36 using evolutionary algorithms? would be interesting 00:12:26 stassats`: would indeed :) 00:12:55 Demosthenes: i'd bet dollars to donuts that the problem is in the compiler macro for EVERY 00:13:05 -!- Guest28821 is now known as PatrickM 00:14:31 or not 00:14:38 -!- Joreji [~thomas@81-014.eduroam.RWTH-Aachen.DE] has quit [Ping timeout: 246 seconds] 00:14:45 *drewc* cannot see an obvious problem anyway 00:15:14 mbohun [~mbohun@202.124.73.171] has joined #lisp 00:15:39 -!- hefner [~hefner@ppp-58-9-119-116.revip2.asianet.co.th] has quit [Quit: Leaving] 00:16:46 snearch [~olaf@g225050140.adsl.alicedsl.de] has joined #lisp 00:17:07 drewc: thanks for looking 00:17:10 i'm prettifying 00:17:31 the nasty cond was a relic from a recursive version that kept overflowing the stack. 00:17:41 then i tried a loop while pop to move through the list 00:21:13 Demosthenes: i just read that link adeht posted above... it's good advice. 00:21:25 i read it too, and saved it away 00:22:29 Demosthenes: the first obvious advice is that you need a MAP-SPLIT-LIST (what is a SPLIT-LIST anyway? odd name) 00:23:43 Demosthenes: also, you mention a recursive version.. it seems like the problem lends itself to recursion too 00:23:52 I installed lisbuilder-sdl and lispbuilder-sdl-gfx through clbuild. However, (sdl:image-type-of "/path/to/jpg-file.jpg") gives me nil 00:24:01 Hey, is the AVER in MAYBE-REANALYZE-FUNCTIONAL or in IR2-CONVERT-CLOSURE? 00:24:04 It should accept jpg files though, why wouldn't it? 00:24:10 -!- magcius [~jstpierre@c-24-61-243-212.hsd1.ma.comcast.net] has left #lisp 00:24:23 -!- milanj [~milan@91.150.120.187] has quit [Quit: Leaving] 00:24:29 rpg [~rpg@72.11.106.198] has joined #lisp 00:24:48 i think it's in IR2-CONVERT-CLOSURE .. hold 00:24:56 any other way to display jpg files on linux would be good too 00:25:16 open them in emacs? 00:25:34 nyef: confirmed, IR2-C-C 00:25:48 stassats`: so, I need to do it from common lisp, preferable with a certain interval (but if I can display them from Lisp, it would be trivial to add that last one) 00:25:57 s/so,/no, 00:26:30 madnificent: is image-type-of a method? does it work on strings? 00:26:30 So, it's a reference to a deleted funtional... (only call site is ir2-convert-ref) 00:26:45 -!- snearch [~olaf@g225050140.adsl.alicedsl.de] has quit [Quit: Ex-Chat] 00:27:10 drewc: sdl:image-type-of is a function, it does the same thing with #p"/path/to/jpg" 00:27:32 also: it will not display them either, and that should work on strings 00:28:04 s/display/load/ (though in effect, it will not display them either) 00:28:23 davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has joined #lisp 00:28:28 madnificent: it works with other types of images, just not jpgs? 00:29:13 I'm trying to contribute a bit to SBCL, so I'm beginning by building my own SBCL 00:29:28 when I require ASDF, I load the one present in SBCL's source, right? 00:29:31 doesn't do png either, it gives me the error: ERROR: LOAD-IMAGE; cannot load file 'File is not a Windows BMP file' 00:30:05 -!- marioxcc [~user@200.92.23.60] has quit [Remote host closed the connection] 00:30:21 i thought image-type-of was the problem... does it call LOAD-IMAGE? 00:30:36 even when I load with (sdl:load-image "/path/to/jpg" :image-type :jpg :force T) 00:30:48 drewc: in essence, load-image is the problem. But both functions don't work 00:30:51 There's a hit for setting the functional-kind to :deleted in dfo, and a couple in ir1util... 00:31:14 well, they probably do work, something must be wrong. I want to know what :) 00:31:42 is it possible your jpg is not a proper jpg? does it work with a reference jpg? 00:31:55 The one in dfo applies to toplevel lambdas only. 00:33:09 drewc: not that I really have a 'reference' jpg here, but multiple files that never gave me trouble (and work in other applications) don't work... 00:33:38 And of the two in ir1util, one is for "optional-dispatch"es and the other is just a straight-up "delete-lambda". 00:33:56 -!- holycanoly [~new@69.67.174.130] has quit [Remote host closed the connection] 00:34:24 madnificent: what does `file /path/to/file.jpg` return in the shell? 00:35:10 dralston [~dralston@S010600212986cca8.va.shawcable.net] has joined #lisp 00:35:46 JPEG image data, JFIF standard 1.01 00:36:00 png's don't work either btw 00:36:32 well, somethings borken then. What does M-. say about the matter? how are the non-working functions implemented 00:38:50 tbh, I don't think digging into the sdl library is a good idea right now. Someone with some experience with it will get me miles further on the matter in minutes than me digging in their code for hours 00:39:07 M-. is not hours. 00:39:25 I know, but understanding where the error is will 00:39:36 sigh. i doubt it. 00:39:39 I think balooga was working on the image part recently 00:39:45 (clearly I've skipped through the bits there to see if I could find something there before asking it here) 00:39:46 best to try the mailing list 00:40:12 I'll ask balooga when I see him here :) 00:40:13 thanks 00:40:43 Honestly try the mailing list, they monitor it very well 00:41:14 -!- NNshag [~shag@lns-bzn-57-82-249-10-215.adsl.proxad.net] has quit [Ping timeout: 265 seconds] 00:41:14 *drewc* installs and compiles lispbuilder-sdl 00:42:21 -!- slash_ [~Unknown@whgeh0250.cip.uni-regensburg.de] has quit [Quit: leaving] 00:44:17 drewc: you may need lispbuilder-sdl-image too 00:44:26 madnificent: yeah, figured that out :) 00:46:30 -!- Aisling [ash@blk-222-192-36.eastlink.ca] has quit [Remote host closed the connection] 00:46:59 am i the only guy who would think the authors somewhat daft when he sees the error "The constant LISPBUILDER-SDL-CFFI::SDL-PATCH-LEVEL is being redefined" ... upgrading libraries should be supported! 00:47:00 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Quit: mrSpec] 00:47:33 drewc: drop it for a second, it's now not giving me errors (not displaying yet, but that'll be done soon) 00:47:51 madnificent: consider it dropped 00:48:38 ok, so could this be it: 00:48:48 -!- timor [~timor@port-87-234-97-27.dynamic.qsc.de] has quit [Remote host closed the connection] 00:49:13 I installed the library using clbuild first, then I loaded it right after I installed the sdl libraries 00:49:19 -!- danderson [~dave@atlas.natulte.net] has left #lisp 00:49:42 could it be that it didn't detect the sdl libraries correctly (file system updates and such)? 00:50:02 entirely possible 00:50:21 *madnificent* is slightly less scared now 00:50:22 especially if it grovels headers for definitions 00:50:23 thanks drewc 00:50:34 no worries 00:53:45 -!- ace4016 [ace4016@cpe-76-170-134-79.socal.res.rr.com] has quit [Ping timeout: 260 seconds] 00:54:42 ace4016 [ace4016@cpe-76-170-134-79.socal.res.rr.com] has joined #lisp 00:55:09 NNshag [~shag@lns-bzn-53-82-65-55-34.adsl.proxad.net] has joined #lisp 00:59:46 -!- leo2007 [~leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has quit [Ping timeout: 256 seconds] 00:59:53 yates [~yates@cpe-174-097-145-232.nc.res.rr.com] has joined #lisp 01:00:47 Erann Gat states in one of his papers, "Actually, LET establishes new bindings every time it is run..." 01:02:03 if that's true, then does one have to be careful about the use of LETs so as to not frivously allocate memory? 01:03:10 yates: no 01:03:17 why not? 01:03:58 does lisp using scoping rules to intelligently deallocate stuff at run-time? 01:04:04 s/using/use/ 01:04:26 yates: there is this thing called a garbage collector.... 01:04:33 -!- Blkt` [~user@host-78-13-255-100.cust-adsl.tiscali.it] has left #lisp 01:04:47 -!- amnesiac [~amnesiac@p3m/member/Amnesiac] has quit [Quit: Leaving] 01:04:53 it is probably premature, but this is one thing i don't like about lisp 01:05:03 i like to collect my own garbage ... 01:05:05 yates: lisp is not for you. 01:05:13 -!- grouzen [~grouzen@91.214.124.2] has quit [Read error: Operation timed out] 01:05:15 yates: might i suggest assembler? 01:05:16 Blkt [~user@host-78-13-255-100.cust-adsl.tiscali.it] has joined #lisp 01:05:28 -!- sepult [~user@xdsl-87-78-25-71.netcologne.de] has quit [Read error: Connection reset by peer] 01:05:52 hmm, having apps build themselves is not quite as easy as I was thinking. it would involve crawling through some asdf-internals to produce an appropriate command line. 01:06:04 yates: if you're so much smarter and more efficient then your compiler and runtime, why not just program in octal on the front panel? 01:06:34 drewc: there are times when assembler is the right language to use 01:06:35 Xach: system-definition-pathname is not enough? 01:06:42 sepult [~user@xdsl-87-78-169-139.netcologne.de] has joined #lisp 01:06:42 Hezy_ [~Hezy@62.56.254.250] has joined #lisp 01:06:49 yates: indeed... like when writing a lisp compiler ;) 01:07:22 ...and like when implementing an algorithm on memory-constrained, power-constrained embedded digital signal processors. 01:07:24 yates: you're going to get nothing out of lisp if you like doing things manually and enjoy repetition and boilerplate, so i suggest that you give up right now. 01:07:34 wedgeV [~wedge@adsl-69-232-231-189.dsl.pltn13.pacbell.net] has joined #lisp 01:07:54 thank you for your suggestion 01:08:16 drewc: you'd have to do that for all loaded systems 01:08:37 drewc: on the other hand, maybe that wouldn't require internals. it'd just be easier with them. 01:08:44 Xach: yeah, to get *centrel-registry* right? 01:08:54 sp? 01:09:12 drewc: right. you can't just go off the central registry directly, since e.g. there might be a wacky search function involved 01:09:12 but i've done that for a asdf:tarball-op and it worked fine 01:09:39 but at least there'd be no harm in overkill 01:09:41 that being (mapcar #'system-defintion-pathname loaded-systems) 01:09:59 drewc: how'd you produce loaded-systems? 01:10:22 good question.... this was a long time ago. 01:10:35 drewc: the most direct way i know is dumping asdf::*defined-systems* 01:10:37 -!- bigjust [~jcaratzas@adsl-074-232-230-165.sip.asm.bellsouth.net] has quit [Ping timeout: 264 seconds] 01:10:45 and its dratted double colon 01:10:57 -!- PatrickMcLaren [~Patrick@ppp118-209-197-239.lns20.mel6.internode.on.net] has quit [Quit: PatrickMcLaren] 01:11:06 *Xach* should probably start reading asdf material 01:11:16 that deserves a function wrapper and an :export! 01:11:24 -!- Hezy_ [~Hezy@62.56.254.250] has quit [Quit: Ex-Chat] 01:13:46 leo2007 [~leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has joined #lisp 01:15:41 -!- rpg [~rpg@72.11.106.198] has quit [Quit: Leaving...] 01:15:47 i think i may have walked the :depends-on trees myself 01:17:45 -!- Blkt [~user@host-78-13-255-100.cust-adsl.tiscali.it] has quit [Remote host closed the connection] 01:18:03 that seems sensible 01:18:51 rpg [~rpg@72.11.106.198] has joined #lisp 01:19:31 strange, I thought there was a way to get the time the program was running in milliseconds under sbcl, it seems to be the time the application has been computing 01:19:56 Xach: This would probably be a good time to ask for (asdf:defined-systems) 01:20:33 back to my original question: so essentially we can "trust" the lisp run-time to collect garbage in a reasonable manner? 01:20:53 yates: yes. 01:21:04 rpg: may i please have asdf:defined-systems? 01:21:25 like, what if we're LETting something that's pretty big inside a function that is invoked frequently - we don't have to worry about exhausting memory? 01:21:29 Xach: It would take all of 15 seconds to push it in..... 01:21:39 rpg: and years and years to push it out 01:22:10 dialtone [~dialtone@adsl-99-136-101-166.dsl.pltn13.sbcglobal.net] has joined #lisp 01:22:10 -!- dialtone [~dialtone@adsl-99-136-101-166.dsl.pltn13.sbcglobal.net] has quit [Changing host] 01:22:10 dialtone [~dialtone@unaffiliated/dialtone] has joined #lisp 01:22:24 Xach: I can push it to the ASDF git repository in much less than that... But into SBCL?? 01:22:30 yates: garbage collection frees you from mundane memory bookkeeping, but if you want to work with data sets that are larger than the memory you have, you have to be more actively involved. 01:22:39 OTOH, Fare has fixed the new ASDF so that you can bootstrap it from your old one. 01:22:47 -!- billstclair [~billstcla@unaffiliated/billstclair] has quit [Remote host closed the connection] 01:22:52 -!- mbohun [~mbohun@202.124.73.171] has quit [Remote host closed the connection] 01:23:16 Xach: What should come OUT of defined-systems? 01:23:27 rpg: the hash table values of asdf::*defined-systems* 01:23:46 yates: creating large objects is going to use memory, regardless of what you bind them to. 01:24:08 -!- pok [~pok@80.91.231.253] has quit [Ping timeout: 260 seconds] 01:24:23 Xach: STRING ==> (define-time . system-object) 01:24:26 Xach: what about something "in between"? say on a current pc system with 4 GB of RAM we had a 64 MB variable we were LETting. then if it wasn't "gc"ed fast enough, you'd quickly allocate the 4G if the function was invoked frequently 01:24:43 pok [~pok@tarrant.klingenberg.no] has joined #lisp 01:24:51 Xach: Would you want just the values, or the keys x values? 01:25:00 yates: it doesn't copy the variable every time. 01:25:09 rpg: the keys can be derived from the values. 01:25:11 Xach: For that matter, would it be better to offer some kind of generator? 01:25:19 E.g., (map-defined-systems ...) 01:25:28 yates: variables don't have sizes... objects do 01:25:37 oconnore_ [~oconnore_@c-66-31-125-56.hsd1.ma.comcast.net] has joined #lisp 01:25:43 right 01:25:55 rpg: Not as far as i'm concerned 01:26:14 rpg: i only want the system object 01:26:25 OK. Sounds good.... 01:27:34 drewc: then you're in disagreement with Mr. Gat. "A variable is a place that is denoted by an identifier where a value can be stored." 01:29:23 yates: i am in disagreement with Mr. Garret about almost everything, but we do not disagree on that. that 'place', in CL is called a binding, and the size of it is not something you can access in portable common lisp. 01:29:49 yates: the 'value' in that sentence is something that has size 01:29:50 -!- mattrepl [~mattrepl@pool-72-83-118-99.washdc.fios.verizon.net] has quit [Ping timeout: 272 seconds] 01:29:59 yates, any decent lisp system will expose some customization functions for tweaking the GC. if you're worried that you will exceed your memory if the GC doesn't run in the right manner, read the friendly manual. 01:30:22 Xach: Actually my patch is unnecessary. I think (let (x) (asdf:map-systems #'(lambda (s) (push s x))) x) does the job w/o messing with the api. 01:30:42 rpg: thanks, i wasn't aware of map-systems. 01:30:53 yates: truly you don't think that (let ((a *big-array*) (b *big-array*)) requires 3 copies of the data stored in the binding of *big-array* 01:31:01 rpg: In what version does map-systems appear? 01:31:04 Xach: verify that it works in your copy. If not, I can tell you how to bootstrap asdf:2 01:31:30 Xach: I'm afraid I have no idea how to map asdf upstream to asdf sbcl. 01:31:41 well, it ain't in mine. 01:31:51 bigjust [~jcaratzas@adsl-074-232-230-165.sip.asm.bellsouth.net] has joined #lisp 01:32:00 -!- RaceCondition [~RaceCondi@85.253.73.94.cable.starman.ee] has quit [Read error: Operation timed out] 01:32:03 yates, which lisp implementation(s) are you using ? 01:32:08 Adlai: cl 01:32:11 sbcl 01:33:21 drewc: no. i think it requires 2 copies 01:33:44 well, not "copies" - two chunks of memory is more appropriate 01:34:31 yates, it requires two _pointers_ to the array 01:34:54 "the" array? why is there only one? 01:35:03 yates: because of the semantics of the language. 01:35:15 minion: tell yates about gentle 01:35:15 yates: direct your attention towards gentle: "Common Lisp: A Gentle Introduction to Symbolic Computation" is a smoother introduction to lisp programming. http://www.cs.cmu.edu/~dst/LispBook/ 01:35:44 Xach: ok, right 01:36:11 Xach: that's not my thought really. consider this: 01:36:25 minion, tell yates about lisppaste 01:36:26 To use the lisppaste bot, visit http://paste.lisp.org/new/lisp and enter your paste. 01:37:24 Xach: if you're willing to pull the git asdf, you can push it's location onto asdf:*central-registry* and then do (asdf:oos 'asdf:load-op :asdf) to bootstrap the new one. 01:37:34 [thanks to Fare] 01:37:42 s/it's/its/ 01:38:08 ARC137 [~chatzilla@121.0.29.194] has joined #lisp 01:39:36 mattrepl [~mattrepl@pool-72-83-118-99.washdc.fios.verizon.net] has joined #lisp 01:41:31 (defun myfun () (let ((bigvartype bigvalue)) dostuffwith-bigvartype)) 01:42:11 and say i'm invoking myfun very fast and frequently in a top-level program 01:42:35 isn't lsip going to allocate memory for bigvartype every time myfun gets invoked? 01:43:08 yates: might do it on the stack, not the heap... 01:44:15 rpg: yes, but Erann Gat states in one of his papers, "Actually, LET establishes new bindings every time it is run..." 01:44:24 clhs binding 01:44:24 Sorry, I couldn't find anything for binding. 01:44:27 i know a binding is not equivalent to an allocation 01:44:29 hrm 01:44:34 http://l1sp.org/cl/glossary/binding 01:44:56 Xach: gigabot will learn to speak l1sp.org! 01:45:02 but doesn't lisp have to do an allocation (initially?) when it first binds something? 01:45:19 yates: yes, but proportional to the size of a pointer, not of the object. 01:45:23 yates: no, you can allocate without binding 01:45:34 oh... no i misread 01:46:03 yates: and as rpg mentioned, it might be stack allocated, if it's not captured by a returned closure. 01:46:19 -!- lithper2_ [~chatzilla@72.8.31.30] has quit [Read error: Connection reset by peer] 01:46:29 or if you advise the compiler to do so 01:46:32 clhs dynamic-extent 01:46:32 http://www.lispworks.com/reference/HyperSpec/Body/d_dynami.htm 01:46:52 I just wish dynamic-extent didn't eat small children. 01:47:02 a small price to pay 01:47:08 Xach: what would the pointer point to if there wasn't also an allocation at some point? 01:47:22 -!- leo2007 [~leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has quit [Ping timeout: 256 seconds] 01:47:26 foom, not just that, it eats their children and children's children too! 01:47:26 NIL <----- that guy! 01:47:47 Adlai: yea, but not only that, it eats the children that they met once too. 01:47:59 but only as long as nobody watches over them 01:48:08 this is why you should _never_ leave your children or luggage unattended 01:48:11 that last bit is the really bad part. :) 01:48:44 yates: you can try it : (let (foo) foo) <---- what was stored in the location pointed to by FOO? 01:49:15 -!- derekv [iglt0xol43@c-76-112-240-178.hsd1.mi.comcast.net] has quit [Remote host closed the connection] 01:49:23 Xach: Good luck with that. I'm off now. LMK if it works for you sometime later.... 01:49:46 yates: of course, in that case, the compiler will probably never allocate the binding in the first place. 01:50:21 -!- potatishandlarn [~potatisha@c-4f66c242-74736162.cust.telenor.se] has quit [Ping timeout: 265 seconds] 01:50:50 foom: DYNAMIC-EXTENT : http://www.ibiblio.org/wm/paint/auth/goya/goya.saturn-son.jpg good night all! 01:51:02 'night rpg 01:51:11 goodnight rpg 01:51:33 -!- rpg [~rpg@72.11.106.198] has quit [Remote host closed the connection] 01:52:42 -!- SandGorgon [~OmNomNomO@office.sea.jambool.com] has quit [Ping timeout: 252 seconds] 01:55:01 -!- ace4016 [ace4016@cpe-76-170-134-79.socal.res.rr.com] has quit [Ping timeout: 264 seconds] 01:55:24 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 01:55:52 -!- slyrus [~slyrus@dsl092-019-253.sfo1.dsl.speakeasy.net] has quit [Ping timeout: 256 seconds] 01:57:44 -!- jleija [~jleija@adsl-243-224-153.chs.bellsouth.net] has quit [Quit: good night/day everyone] 02:02:25 -!- wedgeV [~wedge@adsl-69-232-231-189.dsl.pltn13.pacbell.net] has quit [Quit: wedgeV] 02:02:44 -!- Ralith [~ralith@69.90.48.97] has quit [Quit: Lost terminal] 02:04:18 -!- Tordek [tordek@gateway/shell/blinkenshell.org/x-houaitwlqleuqxuk] has quit [Ping timeout: 248 seconds] 02:04:23 Tordek [tordek@gateway/shell/blinkenshell.org/x-deckpukhgwskwckg] has joined #lisp 02:05:32 -!- wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Read error: Connection reset by peer] 02:05:50 wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 02:05:56 -!- tsuru` [~user@c-68-53-57-241.hsd1.tn.comcast.net] has quit [Ping timeout: 272 seconds] 02:07:06 -!- l0stman [~l0stman@freedsl-2.blueline.mg] has quit [Quit: leaving] 02:09:39 -!- dialtone [~dialtone@unaffiliated/dialtone] has quit [Quit: leaving] 02:10:42 -!- phf [~user@c-76-124-103-85.hsd1.pa.comcast.net] has left #lisp 02:11:07 hugod [~hugod@bas1-montreal50-1279440411.dsl.bell.ca] has joined #lisp 02:11:40 billstclair [~billstcla@p-74-209-23-233.dsl1.rtr.chat.fpma.frpt.net] has joined #lisp 02:11:40 -!- billstclair [~billstcla@p-74-209-23-233.dsl1.rtr.chat.fpma.frpt.net] has quit [Changing host] 02:11:40 billstclair [~billstcla@unaffiliated/billstclair] has joined #lisp 02:12:07 Ralith [~ralith@69.90.48.97] has joined #lisp 02:13:03 how do you guys work with mysql in CL? I took a look at CLSQL but I don't like it at all. It reaks of ORM. I just want simple SQL. 02:15:13 -!- Fufie [~innocent@86.80-203-225.nextgentel.com] has quit [Read error: Connection reset by peer] 02:15:27 http://www.cl-user.net/asp/search?search=sql 02:16:47 brennanc: clsql has a non-ORM bit too. I don't like it though, but if you're using mysql you don't care about implementation quality and correctness anyway :P 02:17:03 brennanc: yeah, you can do raw stuff with clsql if you like 02:17:33 it always amazes me that people get as far as choosing lisp, but would still think mysql is a good idea. 02:17:46 *drewc* is not a fan :D 02:17:49 mysql is a good idea in many cases. 02:18:02 Particularly given how most programmers use sql databases ... 02:18:14 we have a bunch of legacy stuff in mysql database 02:18:20 what are some good alternatives though? 02:18:35 postgresql seems highly recommended. 02:18:35 I'm open to learning about better ways of doing things. 02:18:38 Zhivago: because it's easily misused does not make it a good tool :) 02:18:46 postgresql is great 02:19:04 Well, I think it's more that mysql isn't really about relational databases so much as in reusing the SQL language. 02:19:06 -!- cmatei [~cmatei@95.76.26.166] has quit [Ping timeout: 256 seconds] 02:19:07 it has classes and generic functions... this is good! 02:19:23 simplechat [~simplecha@unaffiliated/simplechat] has joined #lisp 02:19:40 do you guys use clsql or something else? 02:19:54 Zhivago: that's fair, sure. That being an end to itself, otoh, is not a great design choice either. 02:20:14 brennanc: i use relational-objects-for-lisp, which is a layer on top of postmodern 02:20:21 minion: postmodern? 02:20:22 postmodern: Postmodern is a library for interacting with PostgreSQL databases through SQL. http://www.cliki.net/postmodern 02:20:37 -!- rapacity [~prwg@unaffiliated/rapacity] has quit [Quit: rebooting] 02:22:30 -!- davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has quit [Ping timeout: 256 seconds] 02:24:58 brennanc: sqlite, bdb 02:25:22 you probably don't need joins, just transactional storage in most cases, and bdb provides that very well 02:25:24 rickmode [~rickmode@64.134.235.192] has joined #lisp 02:25:47 there is also rucksack if you want a proper object db 02:28:04 -!- schme [~marcus@sxemacs/devel/schme] has quit [Ping timeout: 260 seconds] 02:28:37 TR2N` [email@89-180-194-94.net.novis.pt] has joined #lisp 02:28:44 *drewc* loves rucksack 02:29:20 i thought we needed an SQL RDBMS :) if we don't, rucksack FTW! 02:29:50 or rucksack RTW! 02:30:26 -!- eldragon [~eldragon@84.79.67.254] has quit [Ping timeout: 248 seconds] 02:30:28 -!- TR2N [email@89-180-194-94.net.novis.pt] has quit [Ping timeout: 265 seconds] 02:30:37 people just assume they can only use sql if they need persistent storage 02:30:45 sometimes even flat files are better than sql 02:30:49 Might be amusing to build an SQL DB in CL. 02:30:49 bernie1 [~bernie@c-174-59-232-177.hsd1.pa.comcast.net] has joined #lisp 02:31:12 -Without- later rewriting it in C. 02:31:13 TDT [~user@173-17-83-225.client.mchsi.com] has joined #lisp 02:32:12 SandGorgon [~OmNomNomO@75-92-29-226.war.clearwire-wmx.net] has joined #lisp 02:32:39 rahul: you talking about using an object database as opposed a RDBMS? what other alternatives are there? 02:33:48 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: Leaving] 02:34:35 The main problem I have with some ORMs is the inability to express more complicated data manipulations, such as joins across multiple logical objects. This may be a limitation of the ORMs in question, though. 02:35:12 that's exactly what has kept me away from a lot of ORM and Object databases 02:35:22 -!- Odin- [~sbkhh@s121-302.gardur.hi.is] has quit [Quit: Odin-] 02:35:39 I didn't see an efficient way to do queries when you have anything more than a simple join 02:36:06 -!- bernie1 [~bernie@c-174-59-232-177.hsd1.pa.comcast.net] has quit [Ping timeout: 256 seconds] 02:36:22 well, gotta head home, office is closing up. Will be online in a bit. 02:36:29 how scalable is rucksack? with gigs of data, say? 02:36:43 At the same time, implementing CRUD (or any other) views over complex logical objects using bare SQL also sucks, so you lose either way. 02:37:16 -!- brennanc [~brennanc@65.203.131.114] has quit [Quit: brennanc] 02:37:40 nyef: ROFL allows you to express a little more than most, and is mainly for CRUD. works well for my purposes 02:37:40 Well, that's because ORMs want something like mysql only with transactions. :) 02:38:00 Since ORMs don't actually follow a relational model. 02:39:06 Zhivago: not entirely true... ROFL was designed to use interact with postgresql as a thin layer, really only to give type to query results 02:39:12 drewc: I'm actually of the opinion that an ORM produces a model that is not isomorphic to the underlying relational model, and thus needs to be circumventable. If you can't do that, you get screwed in some way or another. 02:39:15 s/use// 02:39:25 nyef: exactly 02:39:35 drewc: I'm talking about what nyef now refers to. 02:40:03 so am i : 02:40:05 :) 02:40:22 the circumventable part is the key. 02:40:26 Violent agreement? 02:40:40 powerje [~Heathen79@adsl-75-60-217-193.dsl.wotnoh.sbcglobal.net] has joined #lisp 02:41:25 indeed 02:42:18 -!- gigamonkey [~user@adsl-76-254-20-11.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 240 seconds] 02:42:27 -!- rickmode [~rickmode@64.134.235.192] has quit [Quit: rickmode] 02:44:16 strangely enough, i've been having a similar conversation in a private channel.. an ocaml hack came up whereby the type of the result set is determined by the query compiler. So, i think we've moved on to implementing something like that on lisp. 02:45:27 -!- mattrepl [~mattrepl@pool-72-83-118-99.washdc.fios.verizon.net] has quit [Quit: mattrepl] 02:45:40 davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has joined #lisp 02:46:51 -!- dralston [~dralston@S010600212986cca8.va.shawcable.net] has quit [Quit: Leaving] 02:54:12 mm. two patches for d_ino in two days. 02:54:20 meltingw1x [~meltingwa@z.glue.umd.edu] has joined #lisp 02:54:45 ... Dare I ask? 02:55:28 Maybe you can hazard a guess as to the reason. 02:55:51 Hmm, I'm reading through PAIP a bit..not sure how many others know this book well - but I ran into two questions in a way. The code on 614, that says: (when (or (null best-val) (> val best-val)) to set the best-val and the move. I am a tiny bit confused about the (null best-val) in this case, I mean..I understand the logic, but why check for null when calling minimax again? The only time I can see that being true is when the 02:55:51 evaluation function returns null for whatever reason. 02:56:22 TDT: to what is best-val initialised? 02:56:49 I'm going to go with either unix filesystem semantics being stupid, some stupid unixoid doing brain-damaged things with various structure fields, or more windows idiocy. 02:57:12 pkhuong: good catch, I didn't notice that, it's letting it = nil right away. Wouldn't (> val best-val) always be true if best-val is nil? 02:57:37 TDT: Do you really expect (> 5 nil) to be true? 02:58:10 nyef: Can't say I've ever actually tested that until just now, in many other languages it defaults nil/null to 0 02:58:19 nyef: The first submitter mentioned a 2-4x speedup traversing a directory by ino order. 02:58:45 pkhuong: Presumably, that would depend on the filesystem. 02:58:50 TDT: nil isn't 0, and even if it were, you'd have a bug since there's no guarantee that the value is non-egative. 02:59:02 nyef: various versions of etx and some other FSes. 02:59:15 pkhuong: Yeah, I just didn't realize how CL handled it is all. 02:59:27 *of ext. 02:59:43 As I said, presumably, it would depend on the filesystem. 03:00:07 -!- Guthur [~Michael@host81-132-10-255.range81-132.btcentralplus.com] has quit [Quit: Computer says no] 03:00:09 I suppose. Just relaying the motivation for one of the patchers. 03:00:09 I can easily imagine a filesystem that stores directories in alphabetical order, and don't even really have inodes. 03:02:35 TDT: I hope that code handles the lack of any possible move specially. 03:03:35 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 03:05:04 pkhuong: I'm sure it does, I'm a bit foggy on really understanding the code so I'm going off faith at the moment perhaps. 03:05:26 recursion still is something it takes me a bit to really get at times 03:07:53 isn't recursion high school math? 03:08:25 just follow the same logic you learned back then 03:08:57 the result of your function is based on the value of some simplification of the input 03:09:16 Well by saying it takes me a bit I don't mean I don't eventually "get it", or that it takes a huge amount of time - just by day I tend not to use recursion as much as I should to get used to it. 03:09:21 in fact, you don't even need to think of recursion at all. it's just like any other function call 03:10:02 if a function call doesn't confuse you, then recursion should not either 03:10:14 you're trying too hard :) 03:13:31 syamajala [~syamajala@140.232.178.166] has joined #lisp 03:13:34 -!- fda314925 [~fda314925@121.124.124.117] has quit [Remote host closed the connection] 03:13:59 -!- dreish [~dreish@minus.dreish.org] has quit [Quit: dreish] 03:14:50 fda314925 [~fda314925@121.124.124.117] has joined #lisp 03:20:04 -!- lichtblau [~user@port-92-195-28-248.dynamic.qsc.de] has quit [Write error: Broken pipe] 03:20:04 -!- legumbre [~leo@r190-135-18-67.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection] 03:20:15 legumbre_ [~leo@r190-135-18-67.dialup.adsl.anteldata.net.uy] has joined #lisp 03:20:19 lichtblau [~user@port-92-195-28-248.dynamic.qsc.de] has joined #lisp 03:20:29 -!- dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has quit [Quit: dnolen] 03:21:16 marioxcc [~user@200.92.23.60] has joined #lisp 03:25:39 doesn't "(LET (X value))" 1) allocate enough memory to hold value, and 2) create a binding between X and this memory (the base address of the memory)? 03:26:28 yates: no. 03:26:44 A binding is purely conceptual. Memory is allocated for heap-allocated values. 03:27:06 -!- ikki [~ikki@201.155.75.146] has quit [Ping timeout: 240 seconds] 03:27:08 Incredibly enough, memory is allocated when you allocate objects. 03:28:07 pkhuong: what do you mean by "object"? 03:28:21 yates: a datum. 03:28:52 ace4016 [ace4016@cpe-76-170-134-79.socal.res.rr.com] has joined #lisp 03:29:04 "memory is allocated when you allocate memory" <--- about as simple as it gets 03:29:24 Except that some objects don't require heap allocation to be represented. Typically, that would include fixnums and characters. 03:30:11 perhaps I'm just too ignorant. i don't know what you mean by a "datum" either 03:30:26 i know the dictionary meaning, but in this context i can't make sense of it 03:30:33 Alternately, even if they -do- require heap allocation, they end up as being flyweights anyway, and thus involve no -extra- allocation after the first one of a particular value is created. 03:30:57 kglovern [~kglovern@CPE001d725da193-CM0014f8ca15f0.cpe.net.cable.rogers.com] has joined #lisp 03:31:04 yates: a thing, then. 03:31:31 so this "thing", this "object", is what you're going to store the variable in? 03:31:40 o. 03:31:49 no. It's what you'll bind the variable to. 03:32:16 A variable is only a name; it doesn't exist at runtime. 03:32:16 "A variable is a place that is denoted by an identifier where a value can be stored." 03:32:23 Gerard [~Moe111@bas1-montreal02-1096726543.dsl.bell.ca] has joined #lisp 03:32:33 -!- Gerard [~Moe111@bas1-montreal02-1096726543.dsl.bell.ca] has quit [Client Quit] 03:32:41 yates: place has a very specific meaning in common lisp. 03:33:06 -!- SandGorgon [~OmNomNomO@75-92-29-226.war.clearwire-wmx.net] has quit [Ping timeout: 240 seconds] 03:33:24 i take "place" to mean "section of memory" - is that not correct? 03:33:27 no. 03:33:35 It's the exact same thing as any other programming language. 03:33:48 foo * x; doesn't allocate anything. 03:33:53 yates: "variable n. a binding in the ``variable'' namespace. See Section 3.1.2.1.1 (Symbols as Forms). " 03:33:57 x = malloc(...);, it's the malloc that allocates. 03:34:01 clhs 3.1.2.1.1 03:34:01 http://www.lispworks.com/reference/HyperSpec/Body/03_abaa.htm 03:35:04 http://l1sp.org/cl/glossary/place 03:35:41 pkhuong: foo * x; allocates a pointer to a foo - either on the stack or globally depending on context. do you disagree? 03:35:55 yates: I disagree. 03:36:11 Inside a function, it declares a local variable. 03:36:24 myu2 [~myu2@w179122.dynamic.ppp.asahi-net.or.jp] has joined #lisp 03:36:36 Until the variable is assigned to, it does not need to have space allocated to it. 03:36:41 and a local variable is typically allocated on the stack 03:37:03 Even once the variable is assigned to, it may not be on the stack, it could be in a register, or in a structure on the heap. 03:37:06 yates, it could be in a register 03:37:11 yates: no, it's not allocated, unless its address is taken (in which case the binding is reified into an object, which must have a consistent address). 03:37:43 at least that's the "frame" i've seen constructed many times in the debugger. 03:37:48 Adlai: true 03:37:57 yates: it could be elided away. 03:38:22 It could just about anything since all that declaration does is give a name to a binding. 03:39:43 In fact, the same is true of "foo_t x;": it only declares the existence of a variable of that type. Unless the address of x is taken (thus reifying that binding into a first-class value), that doesn't entail any allocation. 03:40:31 Adlai pasted "Look yates, no allocation" at http://paste.lisp.org/display/94759 03:40:38 well, if i write "x = poo;", where does the program put "poo"? 03:40:54 if there is no space allocated for it 03:40:56 ? 03:41:02 -!- TDT [~user@173-17-83-225.client.mchsi.com] has quit [Remote host closed the connection] 03:41:07 yates: who knows? Doesn't matter, as long as it does the job. 03:41:35 it matters if i'm concerned about memory consumption 03:41:39 ikki [~ikki@201.144.87.40] has joined #lisp 03:41:52 yates: try understand how a programming language works first. 03:42:00 -!- _deepfire [~deepfire@80.92.100.69] has quit [Ping timeout: 265 seconds] 03:42:01 in the Real World (TM), we eventually get from the abstract to physical reality. 03:42:38 It's common, in high performance fortran, C or C++ compilers, to split such variables into their constituents for structs or fixed-size arrays. 03:42:38 -!- ChanServ has set mode +o drewc 03:43:15 amnesiac [~amnesiac@p3m/member/Amnesiac] has joined #lisp 03:43:17 Adlai: examining... thanks. 03:43:19 -!- sbahra [~sbahra@2002:62da:45b3:1234:21d:e0ff:fe00:f7ab] has quit [Read error: Operation timed out] 03:43:49 -!- legumbre_ is now known as legumbre 03:43:56 You mental model of C is broken. You should fix it before trying to do systems programming. 03:44:42 Lispworks/Swank - anyone done it from a standalone exe? It seems to want to compile-file - any way to tell swank to precompile the FASLs for the contribs in advance? You can't compile-file from a delivered app. . . . 03:44:54 -!- myu2 [~myu2@w179122.dynamic.ppp.asahi-net.or.jp] has quit [Remote host closed the connection] 03:46:11 pkhuong: i have accomplished quite a lot with my "broken" model... nonetheless, i'm just trying to read you, understand. 03:46:20 myu2 [~myu2@w179122.dynamic.ppp.asahi-net.or.jp] has joined #lisp 03:46:40 yates: most people get by thinking that lead falls faster than feathers too. 03:46:58 f = m*a 03:46:59 -!- ARC137 [~chatzilla@121.0.29.194] has quit [Ping timeout: 258 seconds] 03:47:19 most people get by thinking that f = ma 03:47:28 yates: nice symbols you got there. 03:48:03 -!- syamajala [~syamajala@140.232.178.166] has quit [Quit: Leaving...] 03:48:10 are we talking about us or lisp / programming? 03:48:32 You're the one who introduced your accomplishments. 03:48:59 yates: your cup is already full, you must empty it. 03:49:14 goes to the broken comment; but i'm game - just tell me where exactly it's broken at? 03:49:28 yates: where you equate variable declaration with storage allocation. 03:49:51 Moe111 [~Moe111@bas1-montreal02-1096726543.dsl.bell.ca] has joined #lisp 03:50:08 -!- Beetny [~Beetny@ppp118-210-106-53.lns20.adl2.internode.on.net] has quit [Quit: HydraIRC -> http://www.hydrairc.com <- IRC with a difference] 03:50:12 yates: Try to take a step back to think about it. The "cup already full" here refers to the equation of lexical scope with "stack". While true in C, the two are, by necessity, not the same thing with other languages. 03:50:32 Modius: it's not true in C either. That's my point. 03:50:37 Alright, trying this out again. Anybody can point me in the right direction for programmatically using the accessor of a class instead of the actual slot value? 03:50:43 yates: if i write a program that declares a few trillion variables, but never uses them, do you expect any allocation at run time? 03:51:04 meaning, I have the name of the accessor (as a string) and I would like to setf it. 03:51:06 I don't know any spec that mandates allocation for lexical variables. 03:51:12 pkhuong: there are exceptions due to optimizations, but do you not agree taht this is typically the case? 03:51:16 Moe111, why do you have the name as a string? 03:51:30 sbahra [~sbahra@2002:62da:45b3:1234:21d:e0ff:fe00:f7ab] has joined #lisp 03:51:47 dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has joined #lisp 03:52:09 yates: what typically happens is an accident. What matter is the semantics, and declaring variables doesn't mean allocation. Allocation must only happen when an address is taken or when heap allocating. 03:52:20 Modius: (funcall (intern (format nil "(~A ~A)" 'setf accessor-name)) value) 03:52:28 Adlai: short answer is because the names come from a database. Long answer is: I have an class with slots x1, x2, ... xn. And I have queries which happen to have say, x2, x5, x59. I would like to mapcar through that list 03:52:29 drewc: erh, what? 03:52:33 no... that's not right 03:52:36 lol 03:52:52 tsuru [~user@c-174-50-217-160.hsd1.tn.comcast.net] has joined #lisp 03:52:57 drewc: what's this for? 03:53:02 it's for Moe111 03:53:08 Modius: for Moe111 03:53:15 Modius: you share a prefix 03:53:16 yes, I see. 03:53:19 Moe111: rather 03:53:28 thanks, let me try that out. 03:53:34 Moe111: it's wrong 03:53:41 yates: because of that accident, you've conflated declaration and allocation, and are carrying that false intuition to other languages in which the difference is even more pointed because the vast majority of values are word-sized or pointers. 03:53:51 (funcall `(setf ,(intern ... 03:53:55 Moe111: (funcall `(setf ,(intern ...))) 03:53:57 Adlai: doesn't work either. 03:54:03 You need fdefinition. 03:54:27 oh bloody hell.. he's right 03:54:44 pkhuong: ok. thanks for the clarifications. back in a few minutes... 03:54:46 -!- benny [~benny@i577A7428.versanet.de] has quit [Ping timeout: 245 seconds] 03:55:10 benny [~benny@i577A80F4.versanet.de] has joined #lisp 03:55:16 yates: the very fact that optimisers are free to break the link between declaration and allocation should have been a good hint that they're different, and only accidentally related. 03:55:17 ahh. instead of intern/find-symbol ? 03:55:19 Moe111: (funcall (fdefinition `(setf ,(intern ...))) value) 03:55:19 nice. 03:55:49 better: use a hash table to map strings to the writers and readers. 03:56:03 Is it possible to use linux system calls via cffi without writing any C? 03:56:20 oconnore_: you'd have to write assembly to use syscalls. 03:56:21 Modius: there is also (mapcar #'slot-definition-writers (class-slots class)) 03:56:31 err 03:56:33 Moe111: 03:56:42 Modius: i promise that's the last time 03:57:45 thanks pkhuong 03:57:45 drewc: ... processing... 03:58:17 oconnore_: that's a yes, I suppose, but I think that's not the question you wanted to ask. 03:59:28 pkhuong: Yeah, I just looked. Termios.h isn't a system call. 03:59:45 I need to set the terminal to raw mode. 03:59:50 oops 04:00:23 spradnyesh [~pradyus@nat/yahoo/x-myiggojorwrzipin] has joined #lisp 04:01:03 Moe111: but i have to insist that calling setf functions based on the names of accessors is the wrong solution.. you should be using slot-value and moving any customisations to :around methods on slot-value-using-class, or your own protocol extending that. 04:01:46 pkhuong: I should have asked more directly. But is there any way to do that? 04:01:56 drewc: well, I can discuss more the reason why I chose this. Mainly, now that I've had a chance to swap out of my mental page file the large parts of the project that resulted in me using this model 04:02:18 Moe111: i'd be happy to give you advice if you're interested 04:03:12 oconnore_: sure, use CFFI to call out to C functions. 04:03:46 drewc: I was wrong earlier when I said that it was because of the mop that I'd decided to do this. That was just something that I vaguely recalled had been a pain. But the primary reason is because I'm creating a webapp that will be running off of a network based DB server (MSSQL) that is currently live. And it will remain live for a long time still. The result is that I've created a bunch of macros and functions that get the table defi 04:03:59 You only need to write a wrapper when the header is too convoluted to translate by hand, or when some functionality is provided via inline functions. 04:04:28 Moe111: cut off at "the table defi..." 04:04:33 drewc: but that being said, a) the naming convention is really not lispy, and more importantly b) there are things that make sense in a db that make no sense in a lisp world. 04:04:49 drewc: The result is that I've created a bunch of macros and functions that get the table definitions of this DB at runtime/binary initialization, and then interface with the db 04:05:10 CFFI takes care of loading dynamic libraries in, allocating/reading/writing C values, and accessing symbols (functions or variables) defined in dynamic libraries (or statically linked with the runtime, but that's less common, except for, e.g. libc) 04:05:24 drewc: basic example of something that makes sense in a db but makes no sense in a lisp world: relationships. 04:05:27 metasyntax: ok, i've done that... i still don't see the issue. 04:05:39 pkhuong: Right, but it looks like I can only import a .so dynamic library. And there is no termios.so, only termios.h... 04:05:55 Moe111: is this your first ORM? 04:06:12 drewc: well, the reason why all of this was done is that on my lisp level, everything is done through accessors and this provides me a level of indirection that allows me to not have to get vexed by changes that are occuring at the SQL level. 04:06:32 Moe111: SLOT-VALUE is an accessor 04:06:35 ORM with these specs, yes. 04:07:05 you do know that classes can be defined/redefined at run-time? 04:07:40 drewc: yeah, but there are places in the application where I want to actually use these slots and not have to worry that they might disappear from under my feet. 04:07:55 Moe111: how does your accessor model fix that? 04:09:35 drewc: it fixes it in two halfves, first these class definitions that are created at run time become what I inherit from to use as final classes. generally, these final classes are empty static definitions. 04:09:58 that doesn't answer my question 04:10:04 drewc: but more importantly, it allows me to override the accessor of a class after it has been originally defined by the creation script 04:10:22 what is the accessor of a class? 04:10:45 drewc: accessor of a slot of a class 04:11:06 Moe111: like, say, SLOT-VALUE-USING-CLASS? 04:11:45 -!- Stattrav [~Stattrav@202.3.77.161] has quit [Remote host closed the connection] 04:11:58 Moe111: what do you gain my having your methods scattered around rather than defined on the place where all slot dispatch happens? 04:12:03 by having* 04:13:17 drewc: I will admit that part of this direction was as a result of reading "practicalcommon lisp". But this is anciliary - to answer your question, I don't see how adding an :accessor bar to a slot definition clutters or scatters my code 04:14:44 lithper2_ [~chatzilla@ool-182ff1c9.dyn.optonline.net] has joined #lisp 04:14:49 -!- LiamH [~nobody@pool-72-75-123-60.washdc.east.verizon.net] has quit [Quit: Leaving.] 04:14:54 Moe111: that's not the point... the point is that creating this entire mechanism based around recording the name of that :accessor in a database to access what is fundementally a named slot is broken. 04:15:03 first off, i though this was generated code 04:15:13 drewc: it is 04:16:00 Moe111: you know what, fuck it.. you'll either learn or give up lisp because it's 'too complicated' ;) 04:16:01 drewc: btw, I don't understand why you say "recording the name in a database". no such thing is ever done. 04:16:13 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 04:16:36 cmatei [~cmatei@95.76.26.166] has joined #lisp 04:17:18 Moe111: then WTF are you interning to get the setf function? why is it a string if you never store it in the db? 04:17:48 drewc: maybe I should give you an example. 04:18:22 lisppaste: url? 04:18:22 To use the lisppaste bot, visit http://paste.lisp.org/new/lisp and enter your paste. 04:18:36 the process goes like this: 04:19:58 at initialization, I have a list (defvared in my source) of tables I want to us. CLSQL calls clsql:list-attribute-types on 04:20:00 them 04:20:15 column names go like this PageID, SiteID, bHidden etc. 04:20:38 these are used verbatim as slot names, but I convert their names to more lispy names and use those as accessors 04:20:47 e.g. page-id, site-id, hidden-p 04:20:53 stop 04:20:54 why? 04:21:06 pkhuong: i guess the bigger picture / question is this: how would you handle things like a) ensuring your application doesn't consume too much memory, b) troubleshoot memory leaks, c) troubleshoot bugs if you abstract away things that ultimately matter when it comes time to actually execute the code you have (or your compiler has) written? i think i said that right - hopefully close enough 04:21:07 why do I store the original and also the new name? 04:21:16 fusss [~kumi@li63-187.members.linode.com] has joined #lisp 04:21:20 why not use the nice names as slot names, and store the original name somewhere else 04:21:26 this is what i do 04:21:39 slotds have a :column-name option 04:21:53 classes have a :table-name option 04:22:01 -!- dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has quit [Read error: Connection reset by peer] 04:22:02 drewc: alright. let's say I did that. Then, how do I handle wanting to override the behaviour of setting or getting a certain slot? 04:22:44 Moe111: SLOT-VALUE-USING-CLASS? 04:22:46 sure, the things you speak of are nice idealisms/abstractions. but ultimately it's got to run! 04:22:50 yates: you're not abstracting allocation away in CL. Allocation is very well defined. 04:22:53 dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has joined #lisp 04:23:09 Allocation happens when you create an object; the binding is irrelevant 04:23:11 Moe111: the last argument to slot-value-using-class can be specialized too ;) 04:23:30 phadthai [mmondor@ginseng.pulsar-zone.net] has joined #lisp 04:23:46 yates, in lisp: a) same as in any other language -- don't write bad code, b) only the GC hackers need to do this, c) ???, d) profit 04:23:48 It's C that has some extra abstraction since it supports values that may or may not be stack allocated, on the basis that stack allocation can be abstracted away. 04:23:57 well, here's what it boils down to. I read a book, that people here seem to commend, and I also have experience from "lesser" languages using object orientation. Both of the previous things recommend simply using an accessor for this task. it's straight forward and I *really* haven't reinvented a wheel. 04:24:00 you avoid memory leaks by avoiding gratuitous references. 04:24:41 I didn't recommend abstracting anything away, only to recognize that declaration of a variable and allocation of a value are orthogonal processes. 04:25:22 Moe111: i don't think he recommends storing the accessor name in a database and calling that.. because that would be terrible. I think you are confused. 04:25:31 pkhuong: how would you create an object in CL? 04:25:31 ClaudiaS` [~user@mail2.siscog.pt] has joined #lisp 04:25:42 please give me an example. 04:25:47 Hmm. Once again, I'm not storing anything in a database 04:25:49 is there a way to make a hash-table with :initial-contents? a list of key/val pairs? 04:25:57 yates: (cons 1 2) creates an object. 04:25:59 Moe111: then what are you interning? 04:26:12 fusss: I think there's something in alexandria. 04:26:12 gigamonkey [~gigamonke@adsl-76-254-20-11.dsl.pltn13.sbcglobal.net] has joined #lisp 04:26:18 create a non-list object, please. 04:26:23 (make-array 2) 04:26:29 interning? well, first off, I'm using find-symbol in my code. 04:26:45 Moe111: where does that string come from? 04:27:11 cd /tmp 04:27:18 bah, wrong buffer. 04:27:20 pkhuong: (make-array nil) ? 04:27:21 that string comes from the second half of the example I was giving above, which is when I call a stored procedure on the server, I check the column names and that's where I get my information 04:27:24 *yates* is firing up slime/sbcl to check these out 04:27:28 -!- simplechat [~simplecha@unaffiliated/simplechat] has quit [Remote host closed the connection] 04:27:28 yates, at your REPL, evaluate (apropos "make" :cl) 04:27:45 that will print out several various constructors 04:27:46 oh! a database! 04:27:58 uhm. hmm. 04:28:03 cool 04:28:06 -!- ClaudiaS [~user@mail2.siscog.pt] has quit [Ping timeout: 245 seconds] 04:28:11 (alexandria:alist-hash-table '(("foo" . "Foo") ("bar" . "Bar"))) :-) 04:28:12 yates: you know, when you ask for an object to be created. Again, allocation is one thing and happens when you... allocate objects, while binding/variable declaration is orthogonal. 04:28:14 I'm kind of at a loss for words here 04:28:23 "constructor" in the sense of something which makes objects, not in the sense of C++ constructor methods. 04:28:31 how do you know what the return value of a store procedure is? do you guess? 04:28:41 Moe111: anyways, i'm not interested in why you choose to write bad code, so if you don't mind, i'll go hack. 04:28:42 what if the order of hte columns is swapped around? 04:28:47 Adlai: what do you do about vertical scrolling in irssi? 04:29:05 Moe111, if it's a (setf foo) function, the return value is the newly-stored value 04:29:09 fusss, pageup/pagedown 04:29:19 noice 04:29:23 I think also M-n/M-p might work? 04:29:28 or maybe those switch windows 04:29:49 windows are for multi-channers 04:29:58 what's the slime / emacs key sequence to search the manpage for a function? 04:29:58 simplechat [~simplecha@unaffiliated/simplechat] has joined #lisp 04:30:22 yates, M-x where-is slime-hyperspec-lookup 04:30:38 I have (global-set-key [(f1)] (lambda () (interactive) (manual-entry (current-word))) 04:30:42 Adlai: context? 04:30:52 That does manpage lookups, but I don't see why SLIME would provide that functionality. 04:31:16 *Adlai* is guessing yates was asking about the spec... 04:31:27 yes 04:31:36 the hyperspec, yes 04:32:16 C-c-d h 04:32:17 drewc: btw, the code you gave me doesn't work. In the same way that the first sample I had pasted here didn't. So, as an aside, I want to thank you for having wasted my time as well. To give you your own tone back: you're doing it all wrong, this helping others business. 04:32:30 it's a specification, not a manual. your manual is at http://sbcl.org/manual 04:33:05 i sit corrected 04:33:22 *fusss* is using cl to generate drupal sites 04:33:50 \me tes 04:33:53 so far just the configuration files, though 04:33:55 *yates* test 04:34:50 (defclass foo () ((bar :accessor bar))) (fdefinition '(setf bar)) => # 04:34:55 Moe111: ^ 04:35:05 now i'm going to /ignore you 04:35:50 oh well. 04:36:54 pkhuong, Adlai, et al.: here's my conclusion: i need to read some more. thanks for your helps. 04:37:27 yates, what a coincidence, I have that conclusion for myself too! (and you're welcome) 04:37:47 yates: I don't see how "allocation happens you you create an object" is hard to understand. 04:38:06 -!- ClaudiaS` [~user@mail2.siscog.pt] has quit [Read error: Connection reset by peer] 04:38:13 everything is easy when you understand it and hard when you don't... 04:38:25 that wasn't the conclusion... that was the premise! :P 04:38:27 semantics, for one, pkhuong 04:38:40 what semantics? 04:38:41 i'm still new enough that "object" throws me. 04:38:44 e.g. 04:38:50 a value, then. 04:39:06 get real. there are a TON of semantics with this language. 04:39:17 Not on that topic. 04:39:33 -!- nyef [~nyef@pool-64-222-146-224.man.east.myfairpoint.net] has quit [Quit: G'night all.] 04:39:41 Moe111: just looked at the logs but maybe not far enough back. Is the book you talking about, PCL? 04:39:44 What a binding does is create a reference to objects, preventing their being GCed, and there, optimisations do matter. However, a safe approximation here is given by the dynamic extent of the binding. 04:39:55 gigamonkey: it is. 04:41:03 Or actually, ensure that there exists a reference to the relevent object, since I've renamed "allocation" "creation" to avoid making a tautology too tautological. 04:42:10 gigamonkey: you feel I'm misrepresenting you? =) 04:42:21 slyrus [~slyrus@adsl-75-36-211-117.dsl.pltn13.sbcglobal.net] has joined #lisp 04:42:59 Moe111: I can't quite sort out what the points of contention were. But I'm fresh and drewc has apparently given up so if you want to ask your question, I'll give it a go. 04:43:33 -!- myu2 [~myu2@w179122.dynamic.ppp.asahi-net.or.jp] has quit [Remote host closed the connection] 04:44:01 gigamonkey: well, do you want the reason for the contention, or do you want my original question? my original question goes like so: how do I programmatically call an accessor method (writer) given a string name of the accessor 04:44:12 Moe111: readers/writers aren't tightly coupled to class definitions or slots. sure, the class metaobject references them, but that's not something you should want to rely upon in your case.. it's better to go a level lower and tap into the slot access protocol 04:44:37 Another good question is what function calls or forms will result in the creation of new objects. That's not always well-specified, but the common cases can be guessed with very little experience, and you can use the conservative approximation that the value that was returned (and everything it points to transitively) has been allocated. In any case, a binding doesn't result in allocation. 04:45:05 gigamonkey: and, fyi, the kerfufle going around here, is because for some reason I should have never touched accessors and used slots instead. Forever. 04:45:18 Moe111: well if you have a string that represents the name of a function--accessor or otherwise--you just need to INTERN it to get a symbol and then FUNCALL it. 04:45:27 Which it seems like someone pointed out. 04:45:46 gigamonkey: alright. Great. So this gets me to the error I've been getting all along that nobody has asked about yet, and that is this: 04:45:48 pkhuong: i have no doubt you know what you're talking about. 04:46:07 *gigamonkey* bets on a case problem ... 04:47:05 (just a sec, formatting etc) 04:47:57 *drewc* attempts to track down an irc client that ignores people replies to people he's /ignored :) 04:49:03 drewc: I guess erc with an advice looking for : in the reply and supressing the output :) 04:49:08 Moe111 pasted "setf and funcall" at http://paste.lisp.org/display/94763 04:49:27 adeht: yeah, hacking something based on a snippet in the emacs wiki 04:49:35 drewc: I consider /ignore is a misfeature anyway 04:49:40 s/is // 04:50:50 Moe111: you appear not to have paid attention to the answer given to you some hours ago about setf functions 04:51:04 you mean fdefinition ? 04:51:06 adeht: it's better than nothing, but barely. 04:51:26 Moe111: (funcall (fdefinition `(setf ,symbol)) new-value ...) 04:51:37 rapacity [~prwg@unaffiliated/rapacity] has joined #lisp 04:52:31 adeht: btw, I will gladly admit that I might have missed that point. I make mistakes too and this is why I come here for help 04:53:35 Moe111: yeah, as drewc said, it's: (funcall (fdefinition `(setf ,(intern "FOO"))) ...) 04:53:48 And adeht, just now I see. 04:54:21 well, it was as simple as that. What I was doing wrong was that I was putting the object before the value 04:54:58 i.e. (funcall (fdefinition `(setf ,symbol)) obj 2 ) 04:55:11 (in the part that up until now has been denoted with an ellipsis) 04:57:00 as an aside, I know you guys must be chumy and all, but if you go in the logs and actually read the exchange between drewc and myself, you will see that it resides entirely on his exclaiming that I was doing it all wrong, when talking about using accessors. Now, adeht, I see what you're saying here, and I acknowledge that I make mistakes, but have some respect, it's not as if I've been ignoring information given to me. 04:57:21 SandGorgon [~OmNomNomO@75-92-29-226.war.clearwire-wmx.net] has joined #lisp 04:57:23 Moe111: Do you really think that drewc wasn't trying to help you? 04:57:24 alland [~thomas@ti0014a380-1092.bb.online.no] has joined #lisp 04:57:43 Drewc made 3 mistakes before getting to the fdefinition answer, and in the meantime we were having a heated discussion about why my entire project was wrong. 04:58:44 austinh: I think drewc was trying to help me, but he was overreaching. Trying to correct design decisions that a) were taken months ago, b) were almost entirely tangential to the issue at hand, and c) still in my opinion, of minor importance to the world at large. 04:59:12 Moe111: personally I think that the problem was a fair amount of misunderstanding rather than not paying attention 04:59:15 how many other people here have devoted the last 2 hours to arguing with some guy on the internet about why his use of accessors is "all wrong" (actual words) 04:59:38 adeht: I entirely agree with that. 05:00:43 adeht: and that's my point. The question I came with here, the problem that cropped up a full 7 hours ago, was resolved by gigamonkey with practically no typing. He just waited to see what I was saying and it just unknotted itself. The problem was not some fundamental error, it was that I mangled the "...". 05:00:50 *stassats`* woke up to say "you all are doing it wrong" and goes back to sleep 05:01:23 well, it would be pointless to /ignore a whole channel, so... 05:01:25 -!- drewc [~drewc@89.16.166.162] has left #lisp 05:01:45 Moe111: usually people in this channel try to be extra helpful and treat your problem as a symptom of a bigger problem (and I agree with that approach).. but sometimes it leads to a lot of frustration on both sides 05:03:10 adeht: I understand that and that's why I try to remain civil in all of this. too bad I've upset him so much that he has to leave. 05:04:32 anyways, I'm sure you guys know this drewc personally. You can all let him know that I've left and that he can return to his turf. Sorry if I upset the mood. 05:04:35 goodnight. 05:04:43 -!- Moe111 [~Moe111@bas1-montreal02-1096726543.dsl.bell.ca] has quit [Quit: Moe111] 05:05:14 OT: anyone know of CSS static-analysis/lint tool that takes a directory and returns the names of all the unreferenced files? 05:06:11 fusss: better yet, one that finds all the unreferenced rules. 05:06:16 seems like something one could write in a few hours, mod crap like $file = "url($foo.jpg)", etc. 05:06:25 +1 gigamonkey 05:07:04 -!- CrEddy [~CrazyEddy@wrongplanet/CrazyEddy] has quit [Ping timeout: 272 seconds] 05:07:06 eldragon [~eldragon@84.79.67.254] has joined #lisp 05:08:11 -!- alland [~thomas@ti0014a380-1092.bb.online.no] has left #lisp 05:09:29 brennanc [~brennanc@cpe-76-166-156-65.socal.res.rr.com] has joined #lisp 05:10:15 -!- marioxcc [~user@200.92.23.60] has quit [Remote host closed the connection] 05:13:59 rickmode [~rickmode@cpe-76-167-41-163.socal.res.rr.com] has joined #lisp 05:18:57 -!- ignas [~ignas@ctv-79-132-160-221.vinita.lt] has quit [Ping timeout: 252 seconds] 05:19:14 sysop_fb [~bleh@80.255.39.35] has joined #lisp 05:27:25 -!- gigamonkey [~gigamonke@adsl-76-254-20-11.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 264 seconds] 05:30:56 -!- davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 05:31:01 -!- hugod [~hugod@bas1-montreal50-1279440411.dsl.bell.ca] has quit [Quit: hugod] 05:31:12 -!- ace4016 [ace4016@cpe-76-170-134-79.socal.res.rr.com] has quit [Ping timeout: 256 seconds] 05:34:23 mishoo [~mishoo@79.112.118.235] has joined #lisp 05:35:08 ace4016 [ace4016@cpe-76-170-134-79.socal.res.rr.com] has joined #lisp 05:36:22 -!- ace4016 [ace4016@cpe-76-170-134-79.socal.res.rr.com] has quit [Client Quit] 05:38:05 Anyone hear use hunchentoot - I've got a multifaceted problem; but have managed to isolate one down to a leak on a minimalist handler. 05:40:24 I'm just starting to use hunchentoot 05:40:51 Modius: shoot 05:41:10 Basically, the leak seems to manifest itself when using the stream output form 05:41:19 -!- redline6561 [~redline@c-66-56-16-250.hsd1.ga.comcast.net] has quit [Quit: Leaving.] 05:41:19 And attacking it with a "web load tester" 05:41:34 stream output form? 05:41:54 Instead of your dispatcher returning a string, you call (send-headers) and use the stream it returns and push bytes to that. 05:42:11 yes 05:42:25 ace4016 [ace4016@cpe-76-170-134-79.socal.res.rr.com] has joined #lisp 05:42:33 Okay - well if I push a bunch of "65s" to that it makes a web page. But when hit with the load tester, it just starts eating ram. 05:43:09 are you finishing-output? 05:43:12 No 05:43:17 But the stream code does so 05:43:50 force-output at least 05:43:57 and see if that helps 05:44:08 Finish-output and force-output make it grenade as I mentioned in an email to the list. 05:44:18 (I wrote a very poor post there due to not knowing exactly what I'm chasing) 05:46:09 i am at work but i will try to reproduce it 05:46:15 lisppaste the offending snippets 05:46:36 You're familiar with the hunchentoot dispatch table right? 05:46:47 yes 05:47:36 http://paste.lisp.org/+214D. 05:48:39 Then assault it with this, 100 connections: http://openwebload.sourceforge.net/ 05:48:45 I'm lispworks/win32 here. 05:50:11 -!- Dawgmatix [~Dawgmatix@c-76-124-9-27.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 05:50:37 Dawgmatix [~Dawgmatix@c-76-124-9-27.hsd1.nj.comcast.net] has joined #lisp 05:51:49 Louis11 [~chatzilla@r74-192-16-145.bcstcmta01.clsttx.tl.dh.suddenlink.net] has joined #lisp 05:52:05 I am starting out with lisp. Is there anyway to access an element directly in a given list? 05:52:12 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 05:52:20 (nth 5 your-list-here)? 05:52:55 Modius: just setting up ht now, but first 05:53:20 is there a reason why your dispatcher function isn't a proper named function? 05:53:44 fusss: It works that way as well - should that be a factor? 05:53:54 ah thanks modius :) 05:54:37 no, but looks strange 05:54:48 fusss: Out of interest - what's your Lisp and OS? 05:55:07 sbc/clozure on linux, lispworks and clozure on win32 05:55:21 Hire me. Haha 05:55:45 we're hiring .. drupal people :-( 05:55:52 brb 05:56:45 ARC137 [~algo@121.0.29.194] has joined #lisp 05:57:13 hm, so say I have two lists, something like (T T Nil T) and (0 1 2), what's the best way to get element n (say 0 in this case), and check that location in the first list (in this case, would result in a T)? 05:58:26 fixed 05:59:20 Louis: Maybe nth would be useful? 05:59:31 your version didn't even run Modius 05:59:49 http://paste.lisp.org/display/94765#1 05:59:57 fusss: sorry I had just cut out a bunch of comments and junk 06:00:04 fusss: You fixed it right? 06:00:06 Sorry about that 06:00:07 yes 06:00:16 can you use apache bench? 06:00:27 fusss: I'm on win32, I'd have to ramp up on how 06:00:33 no time to install your load-testing utility, i have ab alread 06:00:35 fusss: Thing is, I don't want to sweep this under the rug 06:00:42 fusss: Fair enough, be interested. 06:00:57 I have hunchentoot serving some fairly heavy load 06:01:05 hunchentoot(s) 06:01:17 fusss: I understand, just scared to get a "what the ***@#%#@?" get swept under the rug. 06:02:06 This *may* be a win32/lw thing - I'm getting some very weird behavior and ultimately a crash (before running out of ram) in GC code pointing this load tester at a different server. 06:02:14 what is the load you tested it with? 06:02:23 fusss: 100 connections with this app 06:02:30 The app I used is just an EXE on windows 06:03:38 ok, I am testing with 1M hits at 100 simultaneous connections 06:04:47 Hun [~hun@p50993726.dip0.t-ipconnect.de] has joined #lisp 06:06:15 -!- ltriant [~ltriant@lithium.mailguard.com.au] has quit [Quit: leaving] 06:06:31 Requests per second: 746.24 [#/sec] (mean) 06:06:32 Time per request: 134.004 [ms] (mean) 06:06:46 Modius: it's a win32 thing, mate 06:06:49 Good morning! 06:07:02 fusss: Your memory use stayed constant? 06:07:14 Louis11: What is the meaning of the second list and how do you use it? 06:07:17 fusss: Problem is it's not replicating what this load tester is doing, which is running local and maxing out the CPUs 06:07:21 It's a variable 06:08:20 Modius: not sure. geotta get back to work though 06:08:27 -!- JonSmith [~jon@ip24-250-13-137.ri.ri.cox.net] has quit [Ping timeout: 252 seconds] 06:08:28 Understood - thanks 06:08:33 juggling too many virtual screens to know where I am atm. 06:08:36 cheers! 06:08:40 -!- fusss [~kumi@li63-187.members.linode.com] has quit [Quit: leaving] 06:09:22 Modius: wfm too. maybe your load tester stops reading data at some point ? 06:09:32 wfm? 06:09:40 Works For Me 06:09:41 works for me 06:09:47 cmatei: Lisp and platform? 06:09:55 sbcl/linux 06:10:13 Problem is you're not using the same loadtester - can you try the one at http://openwebload.sourceforge.net/ ? It looks lightweight 06:10:33 What worries me is that, even if the loadtester is doing something wrong, have to assume anything from the net. 06:12:54 mega1 [~quassel@53d82d4d.adsl.enternet.hu] has joined #lisp 06:15:33 Modius: that seems to work too 06:17:28 mathk [~mathk@lns-bzn-40-82-251-181-238.adsl.proxad.net] has joined #lisp 06:19:50 cmatei: So to get it straight - you used the loadtester I specified, and ran it a while, and ram use stays constant? 06:22:03 yup 06:24:59 Every time I post to [hunchentoot] I look like a boob; but I think there's a real problem here - and if Edi W. runs this I know he'll get to the bottom of it. 06:25:18 mbohun [~mbohun@202.124.75.157] has joined #lisp 06:26:42 -!- mbohun [~mbohun@202.124.75.157] has quit [Client Quit] 06:26:53 mbohun [~mbohun@202.124.75.157] has joined #lisp 06:28:51 -!- wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Ping timeout: 276 seconds] 06:30:21 Modius: hm, maybe see this thread: http://common-lisp.net/pipermail/tbnl-devel/2008-November/004439.html 06:31:42 Yeah, that was one of (my) stupid questions back when I understood even LESS about hunchentoot. 06:32:28 cmatei: I was doing some JS experimentation, and IE was limiting the connection count, not Hunchentoot. 06:32:40 oh, ok, didn't know that was you 06:33:15 cmatei: I just posted my test case. I hope Edi runs it as I know he has LW Win32. 06:33:37 cmatei: It's a thing I do - if something has limits I end up finding them. 06:33:50 I've already got a stack of Lispworks 6 private patches, including the IDE. 06:35:13 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 264 seconds] 06:35:42 nunb [~nundan@59.178.169.1] has joined #lisp 06:36:02 Athas [~athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has joined #lisp 06:37:28 ThomasI [~thomas@unaffiliated/thomasi] has joined #lisp 06:40:42 -!- Hun [~hun@p50993726.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 06:42:08 -!- mbohun [~mbohun@202.124.75.157] has quit [Quit: Leaving] 06:44:45 Could anyone tell me what's wrong with this? I'm basically trying to see if an element is T or Nil: http://pastebin.com/m2edd3273 06:44:56 -!- rickmode [~rickmode@cpe-76-167-41-163.socal.res.rr.com] has quit [Quit: rickmode] 06:45:19 2 points 06:45:45 1: (if A t nil) is kind of redundant (providing the recipient is onlny doing an equivalent nil-check) vs just using A 06:45:50 legumbre_ [~leo@r190-135-28-58.dialup.adsl.anteldata.net.uy] has joined #lisp 06:46:05 2: secondly, move has to be a cons cell in this. 06:46:22 What's going wrong? 06:46:28 I read up on cons cells, but they didn't really make sense. Could you clarify? 06:46:30 Send us the contents of the "move" you're passing in. 06:46:43 what's the "move" variable getting? 06:46:50 -!- legumbre [~leo@r190-135-18-67.dialup.adsl.anteldata.net.uy] has quit [Disconnected by services] 06:46:53 basically im trying (legal-move '(T Nil T) '(0 1 2)) 06:46:55 A cons cell is a pair; but when you get one it's often structured with others to form a list. 06:46:57 -!- legumbre_ is now known as legumbre 06:47:06 i'm attempting to solve a peg game using lisp. Never done lisp before though :/ 06:47:08 move is then getting '(0 1 2) 06:47:17 (first move) is 0 06:47:20 0 is True 06:47:26 Anything that isn't NIL is true 06:47:38 If you wanted to look at the '(T NIL T) you should look at config. 06:49:01 -!- parolang [~user@8e4a01246100775874c4f448e9887093.oregonrd-wifi-1261.amplex.net] has quit [Remote host closed the connection] 06:49:05 hm, so if I wanted to check something like "If the first value in config is T, the second value is T, and the last value is Nil, then return true" what would be the proper way to do this? 06:49:29 Lotsa ways 06:49:47 (equal config '(T T NIL)) 06:50:02 Note - equal - the other equal-looking terms (eq, eql) mean something else. 06:50:19 Actually, you said nothing about the remainder of the list. . . . 06:51:06 (equal (subseq config 0 3) '(T T NIL)) <-- you said you just wanted to compare the start 06:51:13 well the "config" is representative of a board. So i want to extract the value of the first element of move, check that position in config. Then do the same for the second and third elements 06:53:31 (loop for a in '(t t nil) 06:53:31 for b in '(t t nil) 06:53:31 finally (return t) 06:53:31 do 06:53:31 (unless (eq a b) 06:53:31 (return nil))) 06:53:37 Use this as an example 06:53:49 Gotta go 06:54:07 (Past my bedtime) 06:54:16 alright thanks :) 06:56:44 wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 06:57:31 -!- wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Read error: Connection reset by peer] 06:59:21 -!- brennanc [~brennanc@cpe-76-166-156-65.socal.res.rr.com] has quit [Quit: brennanc] 06:59:24 ignas [~ignas@ctv-79-132-160-221.vinita.lt] has joined #lisp 06:59:55 hey guys 07:00:23 x AND y = NOT ((NOT x) OR (NOT y)) right? 07:00:34 rares [~rares@174-26-68-122.phnx.qwest.net] has joined #lisp 07:01:21 nope 07:01:34 no not x is x so you have x or not y 07:01:39 schme [~marcus@c83-254-198-4.bredband.comhem.se] has joined #lisp 07:01:39 -!- schme [~marcus@c83-254-198-4.bredband.comhem.se] has quit [Changing host] 07:01:39 schme [~marcus@sxemacs/devel/schme] has joined #lisp 07:01:54 nad that is not x and y 07:02:20 -!- ThomasI [~thomas@unaffiliated/thomasi] has quit [Quit: Bye Bye!] 07:02:21 what 07:02:25 -!- ichernetsky [~ichernets@195.222.66.208] has quit [Ping timeout: 260 seconds] 07:02:30 CrazyEddy [~CrazyEddy@wrongplanet/CrazyEddy] has joined #lisp 07:02:47 oh sorry yes you are right 07:03:02 havent seen the () 07:03:29 not not x not or not not y 07:03:40 makes upt to x and y 07:04:03 Tonijz [~tonijs@85.254.194.65] has joined #lisp 07:05:58 freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has joined #lisp 07:06:38 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 07:07:55 -!- lithper2_ [~chatzilla@ool-182ff1c9.dyn.optonline.net] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20100106054534]] 07:09:19 -!- Dawgmatix [~Dawgmatix@c-76-124-9-27.hsd1.nj.comcast.net] has quit [Quit: Leaving] 07:09:53 -!- SandGorgon [~OmNomNomO@75-92-29-226.war.clearwire-wmx.net] has quit [Ping timeout: 260 seconds] 07:10:48 -!- bdowning [~bdowning@mnementh.lavos.net] has quit [Quit: Disconnecting from stoned server.] 07:11:15 bdowning [~bdowning@mnementh.lavos.net] has joined #lisp 07:13:03 -!- rrice [~rrice@99.51.95.162] has quit [Quit: Leaving.] 07:14:47 wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 07:15:31 -!- wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Read error: Connection reset by peer] 07:19:58 ichernetsky [~ichernets@195.222.64.217] has joined #lisp 07:20:36 Is there anyway to set the value of an element in a list directly? 07:21:26 -!- bulibuta [~bulibuta@unaffiliated/bulibuta] has quit [Ping timeout: 265 seconds] 07:22:54 brennanc [~brennanc@cpe-76-166-156-65.socal.res.rr.com] has joined #lisp 07:25:30 newbie alert: is there a way to svn co what's listed at http://trac.clozure.com/ccl/browser/trunk/source/contrib/krueger/InterfaceProjects ? 07:25:43 gemelen [~shelta@shpd-92-101-129-113.vologda.ru] has joined #lisp 07:25:51 -!- Adlai [~Adlai@unaffiliated/adlai] has quit [Quit: work] 07:26:25 Louis11: (setf (elt list index) value) 07:26:51 Louis11: (setf (nth index value) value) 07:27:03 Louis11: (setf (nth index) value) 07:27:56 -!- oconnore_ [~oconnore_@c-66-31-125-56.hsd1.ma.comcast.net] has quit [Ping timeout: 256 seconds] 07:29:25 thanks gzip 07:31:40 -!- amnesiac [~amnesiac@p3m/member/Amnesiac] has quit [Quit: Leaving] 07:32:28 -!- mishoo [~mishoo@79.112.118.235] has quit [Ping timeout: 256 seconds] 07:32:50 Louis11: nth-variant is mistyped in both replies, sorry )) 07:32:51 wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 07:33:04 flip214 [~flip@office01.emerion.com] has joined #lisp 07:33:07 (setf (nth index list) value) 07:33:12 it's cool I got it :) 07:33:25 though, do you know if I can update multiple values in a list during a conditional? 07:33:28 -!- tensorpudding [~user@99.148.206.229] has left #lisp 07:33:44 Hello everyone 07:34:44 Does someone know what's the easiest way to convert a bunch of C header files (that include structures with function addresses) to a format understood by SBCL? 07:35:12 UFFI doesn't support the callbacks AFAIK, and TBH I'm too lazy to re-type everything that's needed in sb-grovel 07:35:18 Louis11: what is conditional? some example? 07:35:38 Bare with me, this is really bad code, been coding lisp for all of a few hours: http://pastebin.com/m13946a78 07:35:43 what about CFFI? 07:35:54 Basically, i'm checking if a move is "valid" if it is then I want to update those positions in the list accordingly 07:36:28 I'm actually learning that right now but am struggling to how to iterate through something like char **strings 07:36:43 Does CFFI allow C calling LISP functions? 07:37:09 Louis11: in a cond structure, you can have as many terms as you want after the test. The value of the last one will be returned 07:37:15 somecodehere [~ingvar@77-233-95-4.televork.ee] has joined #lisp 07:37:19 flip214: yes, http://common-lisp.net/project/cffi/manual/cffi-manual.html#Tutorial_002dCallbacks 07:37:25 it's just like progn, let, or lambda/defun bodies 07:37:49 aerique [euqirea@xs2.xs4all.nl] has joined #lisp 07:37:57 so I can string them together like: (setf . . .) (setf . . .) (setf . . .)? 07:38:00 (cond ((..test) (setf ..) (setf ..) (+ 3 4)) ...) 07:38:08 ok great, thanks :) 07:38:18 brennanc: and CFFI can be exported by SWIG, AFAIR ... I'll try that 07:38:41 Louis: If I'm not mistaken, setf takes a list of values to set, too: (setf a 1 b 2 c (list 1 2 3)) 07:38:59 mbohun [~mbohun@ppp115-156.static.internode.on.net] has joined #lisp 07:39:29 and how does that syntax work? a = 1, b = 2 c = list? 07:39:34 yes 07:41:20 anyone know how to iterate through an array of strings in CFFI (char **)? 07:41:43 So in my code: http://pastebin.com/m4744e71a I want the final setf to return the new config. I know Phoodus mentioned the last one will be returned, how would I go about returning config instead of simply T? 07:41:55 Also any comments on how to improve my obviously crappy code? 07:42:51 -!- Modius [~Modius@cpe-70-123-130-159.austin.res.rr.com] has quit [Quit: I'm big in Japan] 07:43:00 Louis11: without seeing more of the context, it's hard to tell 07:43:13 but generally lots of setf's means you're doing it wrong ;) 07:43:28 return values are good, let's are good, etc 07:43:39 it's something you'll have to get used to 07:43:44 How about "first", "second", "third" instead of nth, or using deconstruct ? 07:43:46 it's easy to rely on setf coming from imperative languages 07:44:02 but if you force yourself to try the more lisp-ish ways of doing things, they'll feel much better 07:44:10 http://pastebin.com/m3abaaded that's my full code i'm trying to write a program to solve this game: http://www.crackerbarrel.com/images/20-PegGame_LG.jpg 07:44:31 Yea i've done haskell before, didn't particularly like it though 07:44:34 -!- varjagg is now known as varjag 07:44:52 mishoo [~mishoo@79.112.118.235] has joined #lisp 07:44:54 very used to imperative languages . . . thinking in this mindset is difficult. Doesn't help that I am not familiar with lisp either 07:45:05 are your e-* and el-* variables supposed to be local? 07:45:21 yes, are they in global scope? 07:45:21 -!- flip214 [~flip@office01.emerion.com] has quit [Quit: "going back to work"] 07:45:31 instead of doing three setf's in a row, you should be doing a single let to establish local bindings to those symbols 07:45:37 err, lexical 07:45:40 yes, you should be getting warnings about them not being declared as "special" (basically global) 07:46:00 (let ((e-first ..) (e-second ..)..) ) 07:46:04 yea, i have a ton of warnings at the moment 07:47:00 in your legal-move function, the return values from your equal calls are being discarded (except the last one, which is returned) 07:47:19 you'll probably want them wrapped in an (and (equal...) (equal..)) so that their conjunction is returned 07:48:00 alright, i'll update that as well. I was curious about that earlier :) 07:48:27 adu [~ajr@pool-173-66-253-196.washdc.fios.verizon.net] has joined #lisp 07:49:04 what's new-config supposed to be inside update-config? 07:49:32 lpolzer [~lpolzer@dslb-088-073-248-149.pools.arcor-ip.net] has joined #lisp 07:49:53 well basically my config is the current state of the game board. So when I make a move, i was trying to update config and return the newly updated config. Though I don't think I should update the config passed in, as i am planning on recursively trying every valid move to find a solution to the game 07:50:23 i think my naming conventions here are terrible, sorry if they don't make sense 07:50:38 right, you should either return a new list (without having setf'd over the old one), or return (cons new-config list-of-previous-configs) 07:51:12 -!- dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has quit [Quit: dnolen] 07:51:17 real quick, what exactly is cons? I've been googling about it but haven't found a doc that makes sense to me 07:51:23 you know linked lists? 07:51:28 yup 07:51:38 a cons cell is a 2-element tuple, generally used as a linked list element 07:51:47 so (item . rest-of-list) 07:52:02 http://en.wikipedia.org/wiki/Cons 07:52:19 the "car" is the element, while the "cdr" is a _list_ of the rest of the elements 07:52:35 such that each cons list is a valid start of a list 07:52:48 ..each cons cell... 07:53:12 so you typically don't cons together 2 elements 17:05:04 ccl-logbot [~ccl-logbo@setf.clozure.com] has joined #lisp 17:05:04 17:05:04 -!- names: ccl-logbot sepult TR2N SandGorgon astoon LiamH dnolen gigamonkey alley_cat NNshag jdz rstandy ikki Blkt kpreid jleija alec redline6561 dlowe Zephyrus tcr Athas Guest49122 potatishandlarn felideon mgr parolang rrice wlr z0d hugod morphling_ carlocci TDT sellout chitech dia100daly bobbysmith007 Sumpen joast wgl tsuru` konr freiksenet Odin- Jasko Algid silenius hoeq_ demmeln bigjust1 ichernetsky araujo kenjin2202 dmiles_afk p_l koning_r1bot adeht fatalnix 17:05:04 -!- names: xan leo2007 Nightcrawler sysop_fb Kaonashi Demosthenes plutonas cmatei tltstc slash_ ecraven mornfall fiveop levente_meszaros Edico Kolyan xinming_ drwho anekos AntiSpamMeta mrSpec Fufie mvilleneuve fe[nl]ix mishoo eldragon vsync thijso tvaalen koollman guaq beach ramus tmh rbancroft antifuchs spiaggia lpolzer bdowning CrazyEddy schme legumbre mathk rapacity phadthai benny tsuru sbahra lichtblau fda314925 powerje Ralith Tordek pok yates cmm Guest81998 17:05:04 -!- names: UnwashedMeme lnostdal daniel_ PissedNumlock gruseom bytecolor mathrick metasyntax saikatc rotty ASau kuwabara eno clop nowhere_man ineiros slather WOG gzip4 borism amaron c|mell madnificent dcrawford pkhuong raison Adamant xenosoz2 myrkraverk` malsyned_ carbocalm fihi09 fractalis guaqua ryepup Taggnostr scode REPLeffect porcelina blitz_ lisppaste billitch Dodek dto Buganini Xof Draggor rsynnott Soulman__ jroes fnordus meltingwax Khisanth fgtech rread 17:05:04 -!- names: lukjad86 [df]_ [df] cataska varjagg Ginei_Morioka joga rlonstein whoppix prip knobo frodef Xantoz Sergio` spoofy easyE trittweiler nullman madsy nitor rikjasnon abeaumont boyscared djm spacebat dym franki^ mikezor djinni` Xach dostoyevsky timchen1` yacin stettberger moesenle alexsuraci bfein Tristam specbot minion cpt_nemo cupe_ tomaw borisc DrForr nuba ennen BrianRice johs hdurer_ l_a_m housel gz PuffTheMagic_ ironChicken KatrinaTheLamia dfox hc_e kefka 17:05:04 -!- names: hicx174 tychoish arbscht Fade Holcxjo stepnem bakkdoor Ri- cods mtd foom krappie pragma_ sytse alexbobp egn ``Erik setheus zbigniew rootzlevel dejones ianmcorvidae ski kencausey erk bjorkintosh froydnj luis Adrinael yahooooo jsnell Zhivago tic Tabmow zmyrgel clog pr rahul guenthr codemonkeyx lemoinem _3b__ nicktastic Borbus Axioplase_ Darxus jrockway Pepe_ fmu Yamazaki-kun hohum blast_hardcheese weirdo jyujin qed Helheim Orest^bnc kom_ qebab retupmoca 17:05:04 -!- names: Raptelan rullie herbieB reb` peddie p8m dalkvist felipe srcerer Patzy austinh 17:07:13 -!- SandGorgon [~OmNomNomO@75-92-29-226.war.clearwire-wmx.net] has quit [Ping timeout: 260 seconds] 17:08:22 levente_meszaros pasted "Sieve of Eratosthenes using lazy eval" at http://paste.lisp.org/display/94781 17:10:21 Lycurgus [~Ren@cpe-72-228-177-92.buffalo.res.rr.com] has joined #lisp 17:11:01 if you look at the (def lazy-function ...) forms they look pretty simple 17:11:21 the rules are implemented in the macro 17:11:29 -!- mvilleneuve [~mvilleneu@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has quit [Quit: Lost terminal] 17:12:19 redline6561: Patch should be applied now. Thanks. 17:12:41 sellout: Thank you. And thanks for external-program. 17:13:14 YamNad [~YamNad1@91.84.41.221] has joined #lisp 17:14:00 mega1 [~quassel@53d825c3.adsl.enternet.hu] has joined #lisp 17:14:02 osxx [~osxx@81.198.173.81] has joined #lisp 17:14:03 Please rate video http://www.youtube.com/watch?v=LOUGWeN2amY ,it is very necessary for my "Shadow day 2010" 17:14:24 -!- osxx [~osxx@81.198.173.81] has left #lisp 17:14:25 osxx: Go away! 17:14:26 osxx: Go away. 17:14:35 derrida [~derrida@unaffiliated/deleuze] has joined #lisp 17:15:00 -!- kpreid [~kpreid@rrcs-208-125-58-214.nys.biz.rr.com] has quit [Quit: kpreid] 17:15:02 It might be about lisp. 17:15:18 we will never know 17:16:48 l0stman [~l0stman@freedsl-2.blueline.mg] has joined #lisp 17:16:49 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 17:16:54 apparently not, nor english 17:17:10 *tmh* basks in his laziness. 17:19:20 -!- Kaonashi [~root@ppp118-210-236-133.lns20.adl6.internode.on.net] has quit [Ping timeout: 252 seconds] 17:19:24 HG` [~HG@xdslgd241.osnanet.de] has joined #lisp 17:20:17 -!- dia100daly [~sdiawara@212.99.78.121] has quit [Ping timeout: 260 seconds] 17:21:04 Kaonashi [~root@ppp118-210-228-215.lns20.adl6.internode.on.net] has joined #lisp 17:22:30 Xof: Are you here= 17:26:27 -!- Jasko [~tjasko@c-174-59-195-12.hsd1.pa.comcast.net] has quit [Read error: Connection reset by peer] 17:26:34 ignas [~ignas@ctv-79-132-160-221.vinita.lt] has joined #lisp 17:26:52 Jasko [~tjasko@c-174-59-195-12.hsd1.pa.comcast.net] has joined #lisp 17:28:24 -!- hdurer_ [~hdurer@nat/yahoo/x-tciaaphkthlorsse] has quit [Quit: Ex-Chat] 17:30:25 brennanc [~brennanc@65.203.131.114] has joined #lisp 17:30:27 Louis11 [~chatzilla@sol10cluster.cs.tamu.edu] has joined #lisp 17:31:18 I am trying to create a copy of a list, so as to modify it non-destructively, in my update-config function: http://pastebin.com/m4ff1754d 17:31:44 I would ideally like the function to "return" a list. Sorry if that's vague, i've been coding lisp for < 10 hrs 17:32:52 clhs copy-list 17:32:52 http://www.lispworks.com/reference/HyperSpec/Body/f_cp_lis.htm 17:32:56 Louis11: http://www.gigamonkeys.com/book/functions.html under "Function Return Values" might help. 17:33:11 Louis11: or, in fact, that whole chapter. 17:33:12 Louis11: You have to be careful when you copy lists. 17:33:13 Louis11: your parens are dangling 17:34:09 Louis11: and also, your update-config makes a new copy of a list (tree), modifies it, and then returns nil anyway 17:34:28 although the comment has something about returning stuff 17:34:29 -!- bfein [~bfein@ita4fw1.itasoftware.com] has quit [Quit: Adios] 17:34:50 yea i'm trying to return, just wasnt' sure how 17:35:07 you just leave the variable as the last form of the function 17:35:31 nha [~prefect@250-194.105-92.cust.bluewin.ch] has joined #lisp 17:35:55 hm, what do you mean my parens are dangling? I forgot to close one off? 17:36:13 no, they take lines by themselves 17:36:35 -!- dnolen [~dnolen@ool-18bc2fa9.dyn.optonline.net] has quit [Quit: dnolen] 17:36:37 oh, didn't know that was an issue. I'm used to placing brackets on new lines in C 17:37:06 that's quite obviouns 17:37:09 obvious even 17:37:13 but this is not C 17:37:21 yea, just a habit :) 17:37:46 break the habit and all will be well 17:38:00 trying :) It's only been a few hours though 17:39:44 abugosh1 [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 17:39:59 i'm also getting a ton of "undefined" variables. Do I need to use "let" instead of "setf"? 17:40:47 Louis11: Yes. 17:41:18 -!- Odin- [~sbkhh@s121-302.gardur.hi.is] has quit [Quit: Odin-] 17:41:46 http://pastebin.com/m3c2eae8b i get several "undfined variable" warnings for that code 17:41:52 why is that? 17:41:52 Louis11: SETF doesn't declare a variable. It just sets it. 17:42:16 Louis11: That's not how LET works. 17:42:49 Louis11: let is like saying "int i = 5" - it declares a new variable with a particular value. "setf" is like saying "i = 5;". It just sets the value of the variable. 17:42:54 slyrus [~slyrus@dsl092-019-253.sfo1.dsl.speakeasy.net] has joined #lisp 17:43:02 and also, LET doesn't just declare avariable, it introduces a binding. and that binding is gone out of the scope of that same LET 17:43:14 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Ping timeout: 246 seconds] 17:43:20 In addition, since you haven't used "let" to declare those three variables, the setfs will not only create them, but create them globally, not as local variables. 17:43:36 Louis11: (let ((var value) (var2 value2) ...) code) 17:43:38 so it's closer to c/c++ { int i = 5; .... } 17:43:48 dcrawford: yes 17:45:02 but it would be great to try to minimise the number of parallels drawn to other programming languages 17:45:32 yea, i did haskell last year. Reminds me a lot of lisp, being functional and all 17:45:35 davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has joined #lisp 17:46:05 Louis11, also, 17:46:12 clhs destructuring-bind 17:46:12 http://www.lispworks.com/reference/HyperSpec/Body/m_destru.htm 17:47:09 Louis11, more info at: http://www.gigamonkeys.com/book/beyond-lists-other-uses-for-cons-cells.html 17:48:13 kpreid [~kpreid@216-171-189-244.northland.net] has joined #lisp 17:48:37 so I could construct a tree using cons, representative of my game board and possible moves from a given location? 17:49:48 ah, nvm, saw the first/second/third and it looked like using destructuring-bind would help. nvm 17:49:59 -!- HG` [~HG@xdslgd241.osnanet.de] has quit [Quit: HG`] 17:50:18 Louis11, (it wouldn't) 17:50:57 Summermute [~Summermut@c-68-55-150-29.hsd1.dc.comcast.net] has joined #lisp 17:50:59 HG` [~HG@xdslgd241.osnanet.de] has joined #lisp 17:51:06 hm thanks :) 17:52:04 but really, read that book, it's our standard "what should I read first' answer 17:52:16 yea spent most of yesterday reading it 17:52:21 just quite a bit of matieral 17:53:02 rdd` [~user@c83-250-52-182.bredband.comhem.se] has joined #lisp 17:53:34 -!- nitor [~nitor@cpe-66-25-205-147.sw.res.rr.com] has quit [Quit: Peace...] 17:53:58 Louis11: Don't just read it, that's a recipe for confusion and failure. You have to get all of the examples running in lisp. 17:54:03 Adlai [~Adlai@unaffiliated/adlai] has joined #lisp 17:54:06 -!- abugosh1 [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 17:54:19 Louis11: Doing is learning. 17:54:44 yea - I've been doing a ton of examples, just a tad confusing. 17:56:24 tmh: ironically, I never do examples when I read tech books. 17:56:54 But I do get *some* code up and running. 17:57:12 Unless I'm reading about something stupid like Ruby. ;-) 17:57:27 gigamonkey, is that your website? 17:58:34 dunno about the website, but the book is most certainly his :) 17:59:01 cool :) It's helped me out a lot already 17:59:23 bah I can't find drewc on buzz 17:59:34 -!- sysop_fb [~bleh@80.255.39.35] has quit [] 17:59:34 -!- malsyned_ [~malsyned@24.151.76.65] has quit [Quit: Leaving] 18:00:42 -!- myrkraverk` [~johann@85-220-125-214.dsl.dynamic.simnet.is] has quit [Ping timeout: 252 seconds] 18:00:55 -!- rdd` is now known as rdd 18:05:14 alright gotta head out. Thanks for all the help 18:05:16 -!- Louis11 [~chatzilla@sol10cluster.cs.tamu.edu] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20091221151141]] 18:05:22 -!- Yamazaki-kun [~bsa3@2001:ba8:1f1:f0ed:216:5eff:fe00:16b] has quit [Ping timeout: 248 seconds] 18:06:16 -!- potatishandlarn [~potatisha@c-4f66aeb7-74736162.cust.telenor.se] has quit [Ping timeout: 252 seconds] 18:06:25 -!- demmeln [~Adium@lapradig96.informatik.tu-muenchen.de] has quit [Ping timeout: 264 seconds] 18:07:28 Yamazaki-kun [~bsa3@2001:ba8:1f1:f0ed:216:5eff:fe00:16b] has joined #lisp 18:07:30 I know it may be silly to ask here, but is there any chance I can find someone so kind to help me configuring SBCL+Slime on Windows in this channel? 18:07:45 HET2 [~diman@91.114.108.230] has joined #lisp 18:09:12 right 18:09:15 i think yes 18:09:37 Sieve of Eratosthenes final: http://dwim.hu/file/hu.dwim.lazy-eval/test/prime.lisp 18:09:57 lazy eval implementation for that: http://dwim.hu/file/hu.dwim.lazy-eval/source/lazy-eval.lisp 18:10:06 potatishandlarn [~potatisha@c-4f66abbe-74736162.cust.telenor.se] has joined #lisp 18:10:07 you get sbcl binary, you get slime package and unzip it to where you installed emacs, actually you first read the 18:10:07 README's in the packages itself 18:10:09 less than 100 LOC 18:11:00 I actually have an old version of SBCL installed here (1.0.29, no other bins for Windows) 18:11:22 I got Slime from CVS 18:11:39 Odin- [~sbkhh@194-144-23-6.du.xdsl.is] has joined #lisp 18:11:40 last but not least, emacs23.1 18:12:11 the problem is, I added Slime path and sbcl executable paths to my init.el file 18:12:56 but when I M-x run-lisp emacs says "Spawning child process: invalid argument" 18:13:12 also M-x slime says the same 18:13:14 -!- astoon [~astoon@80.78.109.217] has quit [Ping timeout: 252 seconds] 18:13:14 do you some other simpe example of lazy eval such as this? 18:13:33 Blkt: normally you just (require 'slime) and (require 'cl) and (setq lisp-program "c:\bla\bla\sbcl") or so 18:13:41 -!- ichernetsky [~ichernets@port-163-adslby-pool46.infonet.by] has quit [Quit: Leaving.] 18:13:45 RaceCondition [~RaceCondi@85.253.73.94.cable.starman.ee] has joined #lisp 18:14:01 I did it 18:14:04 -!- potatishandlarn [~potatisha@c-4f66abbe-74736162.cust.telenor.se] has quit [Client Quit] 18:14:19 lithper2_ [~chatzilla@72.8.31.30] has joined #lisp 18:14:45 Blkt: the packages for those requiere things (those with .el endings) have to be in the emacs dir, in the site-lisp 18:14:45 dir actually 18:15:25 it's probably you just didn't move them to the right place 18:15:29 mmm 18:15:45 Blkt: i've had that problem once too 18:15:50 u mean I need something like slime.el and cl.el under site-lisp dir? 18:15:59 Blkt: yep 18:16:07 I see, let me try 18:16:45 Blkt: or at least the corresp. windows premade dir's when you unpack them, move them to where site-lisp is 18:16:52 I did (add-to-list 'load-path "C:/bla/bla/slime-2010-02-02") 18:17:18 Blkt: you maybe have to add the path's in the windows environment too! 18:17:22 -!- Athas [~athas@shop3.diku.dk] has quit [Remote host closed the connection] 18:17:35 potatishandlarn [~potatisha@c-4f66cb81-74736162.cust.telenor.se] has joined #lisp 18:17:53 Blkt: in system settings/system or so 18:18:44 *levente_meszaros* thinks no one is lazy here ;-) 18:19:44 SBCL_HOME variable is set 18:19:48 I did it before 18:20:24 are u telling me that (require 'foo) looks for var foo in PATH? 18:20:26 SandGorgon [~OmNomNomO@office.sea.jambool.com] has joined #lisp 18:20:28 sorry 18:20:40 for var foo in env variables? 18:21:45 -!- jdz [~jdz@84.237.142.223] has quit [Quit: Boot me gently] 18:22:06 Blkt: no but some external package may refer to it, and then it calls via system 18:22:23 Blkt: not via emacs 18:23:36 -!- TR2N [email@89-180-175-58.net.novis.pt] has quit [Ping timeout: 265 seconds] 18:23:43 Blkt: besides it's always better when the both env's contain the some paths or the corrsp. programs i mean 18:24:32 Blkt: you have 3 envs 18:24:41 -!- Buganini [~buganini@security-hole.info] has quit [Ping timeout: 260 seconds] 18:24:42 Blkt: think about it, emacs, sbcl and windows 18:24:52 true 18:25:15 Blkt: only emacs knows about sbcl and that only when you request it, and it can find sbcl 18:25:28 Blkt: only windows knows about all 18:25:41 Blkt: if you tell windows where they are i mean 18:26:01 Blkt: and sbcl knows neither about emacs nor about windows unless told otherwise 18:27:12 well, I think SBCL should know nothing about who asks for what 18:27:21 Blkt: right 18:27:36 Blkt: but someone's mileages may vary you know... 18:27:37 but I don't get how Emacs uses env vars 18:27:38 Buganini [~buganini@security-hole.info] has joined #lisp 18:28:03 Blkt: it has it's own set of env vars 18:28:10 tcr: minor nit: I think it's "lossage" 18:28:53 Stattrav [~Stattrav@202.3.77.161] has joined #lisp 18:29:14 sepult: do you know some kind of keyword I can look for in emacs docs? 18:29:24 TR2N` [email@89-180-220-15.net.novis.pt] has joined #lisp 18:29:40 lexa_ [~lexa_@seonet.ru] has joined #lisp 18:29:45 -!- lexa_ [~lexa_@seonet.ru] has left #lisp 18:30:14 sepult: I found it on the web 18:30:17 Blkt: major-modes, minor-modes, require, shell 18:30:36 Blkt: ok 18:30:51 -!- TR2N` is now known as TR2N 18:32:33 Blkt: i think there is a windows binary for emacs, with all those things prepackaged, why don't u use it ? 18:32:51 froydnj: it's pretty stupid that LP will now send a mail again .. 18:32:55 sepult: u mean something like clisp lispbox? 18:33:06 tcr: oh, you didn't have to fix it :) 18:33:13 sepult: I did, but preloaded Practical Common Lisp code didn't work... 18:33:29 tcr: yes, not a fan of how LP batches email for changes 18:33:44 sepult: the other option was lispworks lispbox, but 60MB memory limit is too low even for a noob like me :D 18:34:11 Blkt: nah, i tried lispworks too 18:34:41 Blkt: no i mean there is a emacs for windows thing, wich is pretty neat i think 18:34:49 astoon [~astoon@80.78.109.217] has joined #lisp 18:34:58 Blkt: just google for emacs for widows 18:35:14 sepult: I use the windows bin from gnu website 18:35:20 oh ok 18:35:23 sepult: I don't like XEmacs 18:36:04 Blkt: i didn't mean XEmacs, there is an alternative version, i don't know the name of..sorry 18:36:35 Blkt: it's still GNU Emacs though 18:37:27 -!- astoon [~astoon@80.78.109.217] has left #lisp 18:37:59 stassats [~stassats@wikipedia/stassats] has joined #lisp 18:42:56 fsl [~fsl@auf186.internetdsl.tpnet.pl] has joined #lisp 18:46:25 legumbre_ [~leo@r190-135-28-60.dialup.adsl.anteldata.net.uy] has joined #lisp 18:48:01 -!- legumbre [~leo@r190-135-28-58.dialup.adsl.anteldata.net.uy] has quit [Ping timeout: 260 seconds] 18:48:25 grouzen [~grouzen@91.214.124.2] has joined #lisp 18:48:34 Spaghettini [~Spaghetti@vaxjo7.181.cust.blixtvik.net] has joined #lisp 18:48:50 OmniMancer [~OmniMance@122-57-4-252.jetstream.xtra.co.nz] has joined #lisp 18:49:11 hi I see in clwiki that there is 2 librairy for cairo 18:49:12 http://www.cliki.net/graphics%20library 18:49:44 cl-cairo and cl-cairo2 which on is maintain? 18:52:43 j0be [~j0be@ke-works-1.starters.tudelft.nl] has joined #lisp 18:53:19 mathk: I've seen cl-cairo2 used recently, so presumably it's maintained 18:53:25 but that's just a conjecture 18:54:18 ok, also it seem that cairo2 have more documentation 18:55:36 it also seems that cl-cairo can't be had because all tarballs and repositories have disappeared 18:56:22 there's also cffi-cairo, which I haven't used 18:56:39 cl-cairo2 is generated with SWIG and its API is clumsy, IMHO 18:57:52 -!- Blkt [~user@host-78-13-255-100.cust-adsl.tiscali.it] has quit [Remote host closed the connection] 18:58:08 nyef [~nyef@pool-64-222-146-224.man.east.myfairpoint.net] has joined #lisp 18:58:15 Hello all. 18:59:02 -!- silenius [~jl@2a01:238:e100:320:21f:c6ff:fed7:73bb] has quit [Quit: silenius] 18:59:06 -!- Kolyan [~nartamono@95-26-40-32.broadband.corbina.ru] has quit [] 18:59:09 hi nyef 19:00:05 dv_ [~dv@83-64-248-68.inzersdorf.xdsl-line.inode.at] has joined #lisp 19:00:21 Uhm, that PROTECT-CL in %TARGET-DEFSTRUCT looks like code from before package-locks were introduced? 19:02:28 dnolen [~dnolen@2002:4613:2723:1234:223:12ff:fe52:c2f9] has joined #lisp 19:02:42 -!- Draggor [~Draggor@216-80-120-145.alc-bsr1.chi-alc.il.static.cable.rcn.com] has quit [Ping timeout: 240 seconds] 19:03:07 -!- j0be [~j0be@ke-works-1.starters.tudelft.nl] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6/20100115144158]] 19:03:48 Blkt [~user@host-78-13-255-100.cust-adsl.tiscali.it] has joined #lisp 19:03:58 sepult: I did it! 19:05:14 -!- kenjin2202 [~kenjin@220.120.43.80] has quit [Read error: Connection reset by peer] 19:05:20 sepult: I was missing to set the slime-lisp-implementations setting... 19:05:23 Edward [~Ed@AAubervilliers-154-1-41-185.w90-3.abo.wanadoo.fr] has joined #lisp 19:06:09 rickmode [~rickmode@cpe-76-167-41-163.socal.res.rr.com] has joined #lisp 19:13:38 Draggor [~Draggor@216-80-120-145.alc-bsr1.chi-alc.il.static.cable.rcn.com] has joined #lisp 19:15:53 varjag [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 19:16:22 Modius [~Modius@cpe-70-123-130-159.austin.res.rr.com] has joined #lisp 19:22:57 _3b` [foobar@cpe-70-112-214-100.austin.res.rr.com] has joined #lisp 19:28:13 bfein [~morik@ita4fw1.itasoftware.com] has joined #lisp 19:28:26 dstatyvka [ejabberd@pepelaz.jabber.od.ua] has joined #lisp 19:32:47 -!- slyrus [~slyrus@dsl092-019-253.sfo1.dsl.speakeasy.net] has quit [Ping timeout: 246 seconds] 19:34:11 -!- levente_meszaros [~levente_m@apn-89-223-179-187.vodafone.hu] has quit [Ping timeout: 246 seconds] 19:38:54 Spaghett1ni [~Spaghetti@vaxjo7.181.cust.blixtvik.net] has joined #lisp 19:39:06 How can I avoid decoding errors on streams, given that I need to give the stream to cl-mime to parse a mail message? 19:39:36 rstandy: use an appropriate encoding for processing the content. 19:39:45 rstandy: what kind of decoding error do you get? 19:40:12 Xach: stream-decoding-error 19:40:49 How should I choose the right encoding for a file? 19:40:58 nyef: still here? 19:41:25 (sorry, maybe theese are silly questions, but I'm confused about this) 19:41:36 -!- Spaghettini [~Spaghetti@vaxjo7.181.cust.blixtvik.net] has quit [Ping timeout: 252 seconds] 19:41:37 rstandy: what is the specific error? 19:42:22 slyrus [~slyrus@dsl092-019-253.sfo1.dsl.speakeasy.net] has joined #lisp 19:42:28 Xach: oh yes, sorry: (:EXTERNAL-FORMAT :UTF-8): the octet sequence (232 32 115) cannot be decoded. [Condition of type SB-INT:STREAM-DECODING-ERROR] 19:42:52 rstandy: ok, do you know what encoding the source is using? that looks like it might be iso-8859-1 19:43:00 Xach: as you can see, I tried to open the file with utf-8 external format 19:43:18 -!- Blkt [~user@host-78-13-255-100.cust-adsl.tiscali.it] has quit [Remote host closed the connection] 19:43:22 Xach: I can try that 19:43:42 Xach: right, it works with iso-8859-1 19:43:52 rstandy: iso-8859-1 will never give you a decoding error, but you might get the wrong characters as a result. 19:44:02 Xach: but how to guess the correct encoding? 19:44:11 Xach: ah ok 19:44:33 rstandy: sometimes it's indicated in some metadata, like a header 19:45:09 Blkt [~user@host-78-13-255-100.cust-adsl.tiscali.it] has joined #lisp 19:45:24 gigamonkey: may I disturb you a sec? 19:45:37 Xach: uhm, so I should open the file, read the header, close the file and reopen it with the correct external format? 19:45:50 Xach: or is there a cleaner way? 19:46:21 Dawgmatix_ [~dman@c-76-124-9-27.hsd1.nj.comcast.net] has joined #lisp 19:46:24 rstandy: i don't know of a super-clean way. one way is to read it as iso-8859-1 and then re-decode the characters based on their char-code. 19:46:38 ugggggggly. 19:47:02 Xach: ugh 19:47:18 kwinz3 [~kwinz@213162066167.public.t-mobile.at] has joined #lisp 19:47:57 rstandy: I use that technique, though, and it works fine. And I sleep like a baby. 19:48:10 A really content, sleep baby, not the kind that cries all night. 19:49:04 Xach: lucky your parents! :-) 19:49:27 isn't this the kind of stuff Chunga is supposed to handle? 19:49:28 Xach: and your neighbors 19:50:03 -!- stassats [~stassats@wikipedia/stassats] has quit [Remote host closed the connection] 19:50:07 googling for chunga 19:50:37 Flamenco for the rescue? 19:51:14 alexsuraci_ [~alexsurac@166.188.208.83] has joined #lisp 19:51:22 jsfb [~jon@unaffiliated/jsfb] has joined #lisp 19:52:17 Xach: is the code that implements your technique available on the web? 19:52:17 http://weitz.de/chunga 19:52:29 Adlai: yes thanks, I found it 19:52:38 sykopomp [~sykopomp@unaffiliated/sykopomp] has joined #lisp 19:52:47 is anyone going to stream / record the Berlin lispers meeting? 19:52:54 I'm particularly interested in Edi's talk 19:52:58 Adlai: now searching for examples of usage 19:53:06 -!- kwinz3 [~kwinz@213162066167.public.t-mobile.at] has quit [Ping timeout: 256 seconds] 19:53:25 rstandy: nope. 19:53:43 mathrick: There was a reddit reply or a direct blog reply from one of the organizers saying they didn't have the resources ;( 19:53:51 :( 19:53:57 Xach: ok. Thanks anyway for your help 19:53:58 that 19:53:59 that was several hours ago that I saw that though... 19:54:00 's a shame 19:54:49 running XP64 on an old, slow 32-bit box is not fun 19:54:53 Xach: at least I have a path to a solution 19:54:59 drewc [~drewc@89.16.166.162] has joined #lisp 19:55:04 I wish CCL fixed that bug preventing 32-bit images from running on Win64 19:55:07 At some declare setting, does the sbcl compiler do any kind of common subexpression optimization or constant folding or must I do it manually (with variables & macros)? 19:55:42 mathrick, I think rme is working on that 19:55:52 oh 19:55:58 woops, misread your wish. nvm. 19:57:16 christoph_debian [~christoph@cl-1281.dus-01.de.sixxs.net] has joined #lisp 19:57:19 jsfb: I don't think it does, and if it does that it's particularly good at it 19:58:41 Also CSE is pretty tough with threads 20:01:30 -!- bytecolor [~user@adsl-71-137-193-55.dsl.scrm01.pacbell.net] has quit [Ping timeout: 240 seconds] 20:03:16 sierinjs [~root@unaffiliated/sierinjs] has joined #lisp 20:03:36 cse is no more or no less tough with threads involved 20:05:07 -!- hugod [~hugod@207.96.182.162] has quit [Quit: hugod] 20:05:23 Why? you cannot eliminate across barriers 20:06:52 -!- Blkt [~user@host-78-13-255-100.cust-adsl.tiscali.it] has quit [Remote host closed the connection] 20:08:21 tcr, thanks for confirming. (it was my assumption anyway) 20:08:33 *shrug* you'd have to have the same sort of infrastructure to ensure you don't move across memory references 20:09:04 barrier may be hidden in functions calls so you'd whole-program analysis 20:09:13 +need 20:09:25 *shrug* don't move across function calls, then 20:09:43 or you'd need to know which ones were OK to move across (cf. DEFKNOWN) 20:10:29 tomaw_ [tom@freenode/staff/tomaw] has joined #lisp 20:10:29 -!- tomaw_ [tom@freenode/staff/tomaw] has quit [Excess Flood] 20:11:05 milanj [~milan@93.87.152.79] has joined #lisp 20:13:37 -!- Edward [~Ed@AAubervilliers-154-1-41-185.w90-3.abo.wanadoo.fr] has quit [Ping timeout: 264 seconds] 20:13:51 -!- Demosthenes [~demo@206.180.155.43.adsl.hal-pc.org] has quit [Quit: leaving] 20:13:57 any idea about the %fun-name thing? 20:14:05 Phoodus [foo@97-124-117-72.phnx.qwest.net] has joined #lisp 20:14:18 i.e. to be precise: all the interesting cases you have to handle in the multi-threaded case come up in the single-threaded case as well 20:16:13 tomaw_ [tom@freenode/staff/tomaw] has joined #lisp 20:16:13 -!- rstandy [~rastandy@net-93-144-177-81.t2.dsl.vodafone.it] has quit [Ping timeout: 265 seconds] 20:16:28 bgs100 [~ian@unaffiliated/bgs100] has joined #lisp 20:16:46 -!- HG` [~HG@xdslgd241.osnanet.de] has quit [Quit: Leaving.] 20:16:47 tcr: I'm somewhat here. What's up? 20:17:59 -!- dv_ [~dv@83-64-248-68.inzersdorf.xdsl-line.inode.at] has quit [Quit: Verlassend] 20:19:07 posted to the mailing list instead; I first thought that (setf %fun-name) changing a closure's underlying function would be a bug 20:19:33 kwinz3 [~kwinz@213162066160.public.t-mobile.at] has joined #lisp 20:19:38 rickmode_ [~rickmode@cpe-76-167-41-163.socal.res.rr.com] has joined #lisp 20:21:25 -!- kwinz3 [~kwinz@213162066160.public.t-mobile.at] has quit [Read error: Connection reset by peer] 20:21:30 -!- alexsuraci_ [~alexsurac@166.188.208.83] has quit [Ping timeout: 252 seconds] 20:22:34 -!- rickmode [~rickmode@cpe-76-167-41-163.socal.res.rr.com] has quit [Ping timeout: 258 seconds] 20:22:35 -!- rickmode_ is now known as rickmode 20:23:11 TR2N` [~email@89.180.227.253] has joined #lisp 20:24:12 -!- alexbobp [~alex@66.112.249.238] has quit [Ping timeout: 260 seconds] 20:25:17 -!- TR2N [email@89-180-220-15.net.novis.pt] has quit [Ping timeout: 246 seconds] 20:25:23 timor [~timor@port-87-234-97-27.dynamic.qsc.de] has joined #lisp 20:27:00 -!- jleija [~jleija@adsl-243-224-153.chs.bellsouth.net] has quit [Ping timeout: 252 seconds] 20:27:17 rswarbrick [rupert@194.66.250.208] has joined #lisp 20:28:53 jleija [~jleija@user-24-214-122-46.knology.net] has joined #lisp 20:30:45 -!- rdd [~user@c83-250-52-182.bredband.comhem.se] has quit [Read error: Operation timed out] 20:31:34 dreish [~dreish@minus.dreish.org] has joined #lisp 20:31:50 alexsuraci_ [~alexsurac@32.132.91.147] has joined #lisp 20:34:05 mprvt77 [~51f42e8e@kansas.shawnetworks.com] has joined #lisp 20:35:12 erjag [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 20:35:22 -!- djinni` [~djinni`@adsl-71-142-225-118.dsl.scrm01.pacbell.net] has quit [Quit: Coyote finally caught me] 20:36:20 Athas [~athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has joined #lisp 20:36:20 djinni` [~djinni`@li14-39.members.linode.com] has joined #lisp 20:38:26 -!- varjag [~eugene@226.119.202.84.customer.cdi.no] has quit [Ping timeout: 252 seconds] 20:38:42 kglovern [~kglovern@129-97-159-207.uwaterloo.ca] has joined #lisp 20:39:01 francogrex [~user@142.46-244-81.adsl-dyn.isp.belgacom.be] has joined #lisp 20:39:06 drewc: what was the other persistence technology you suggested looking at besides rucksack (which looks cool, btw) 20:40:02 -!- djinni` [~djinni`@li14-39.members.linode.com] has quit [Client Quit] 20:40:10 djinni` [~djinni`@li14-39.members.linode.com] has joined #lisp 20:40:57 alexbobp [~alex@66.112.249.238] has joined #lisp 20:41:56 simplechat [~simplecha@unaffiliated/simplechat] has joined #lisp 20:42:48 -!- TDT [~dthole@dhcp80ff865b.dynamic.uiowa.edu] has quit [Quit: Leaving.] 20:42:54 rickmode: i don't know that i'd suggest something other than rucksack! 20:43:18 rickmode: if you need a RDBMS, i like postmodern + relational-objects-for-lisp 20:43:59 -!- mprvt77 [~51f42e8e@kansas.shawnetworks.com] has left #lisp 20:44:52 drewc: i have released buildapp 1.0 in all the ways i know how 20:44:59 well, almost. haven't blogged it. 20:45:14 -!- fsl [~fsl@auf186.internetdsl.tpnet.pl] has quit [Ping timeout: 256 seconds] 20:45:31 drew: cool... because I've been looking at Elephant, and though it looks cool, it's doesn't install with asdf-install (it's cffi dependency does not compile) and further I'm doing not doing open sores, so Berkeley DB is out 20:45:53 attila_lendvai [~ati@apn-89-223-167-18.vodafone.hu] has joined #lisp 20:45:54 marioxcc [~user@200.92.23.60] has joined #lisp 20:46:09 mprvt77 [~51f42e8e@kansas.shawnetworks.com] has joined #lisp 20:46:09 -!- morphling_ [~stefan@gssn-5f756e33.pool.mediaWays.net] has quit [Read error: Connection reset by peer] 20:46:22 rickmode: elephant is crap IMO 20:47:42 drewc: rucksack looks ideal - up to the point where it won't scale. Which would be a nice problem to have (and if I get there, one hopes I'd have the cache to use AllegroCache or hire real Lisp programmers) 20:47:46 "open sores"... heh. 20:48:17 rickmode: you mean the "cash"? :) 20:48:23 er.. "I'd have the cash", not cache 20:48:38 as usual my brain works faster than my fingers 20:48:47 rickmode: a few of us are working on scaling it. In my tests i was able to saturate a 10mps line using serial transactions, so i don't think the database is my bottlenexk. 20:49:30 rickmode: but parallel transactions would go a long way to solving the main issue 20:49:47 rickmode: the design allows for it, just nobody has written the code :) 20:49:52 alexsuraci__ [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #lisp 20:50:12 drewc: do you mean only one transaction can happen at a time? Or do you mean parallelizing a single transaction? 20:50:34 drewc: as in multiple request handlers on a web server would bottleneck? 20:50:40 rickmode: currently, all transactions are serialzed 20:50:59 no, mutiple concurrent long-running transactions might be a bottleneck 20:51:15 -!- lithper2_ [~chatzilla@72.8.31.30] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20091221164558]] 20:51:24 drewc: i see. well there's a caching mechanism too right? so it seems like it ought to handle bustiness, right? 20:51:35 er.. burstiness... heh 20:51:45 -!- alexsuraci_ [~alexsurac@32.132.91.147] has quit [Ping timeout: 252 seconds] 20:51:45 -!- alexsuraci__ is now known as alexsuraci_ 20:51:58 drewc: ah - so a simple web app should be fine 20:52:00 yeah, there is an internal cache, and it's of course in lisp, so you can trivially cache things in memory outside of rucksack 20:53:07 yeah, even a complex one. 20:53:10 -!- alexsuraci_ [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Read error: Connection reset by peer] 20:53:21 alexsuraci_ [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #lisp 20:53:54 cliki doesn't even use threads, let alone a proper database, and can handle 200,000+ hits an hour without any noticable slowdown. 20:54:20 just keep your transactions small, don't use with-rucksack, and it works like a charm 20:54:26 drewc: nice... the best ORM is no ORM. heh. 20:54:39 rickmode: exactly :) 20:54:54 -!- alexsuraci_ [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Client Quit] 20:58:11 daniel [~daniel@p5082F8C3.dip.t-dialin.net] has joined #lisp 20:58:15 kwinz3 [~kwinz@213162066158.public.t-mobile.at] has joined #lisp 21:01:26 -!- daniel_ [~daniel@p5082BB6F.dip.t-dialin.net] has quit [Ping timeout: 245 seconds] 21:02:02 -!- rswarbrick [rupert@194.66.250.208] has quit [Ping timeout: 246 seconds] 21:02:16 -!- mprvt77 [~51f42e8e@kansas.shawnetworks.com] has quit [Quit: CGI:IRC (Ping timeout)] 21:04:20 -!- kwinz3 [~kwinz@213162066158.public.t-mobile.at] has quit [Ping timeout: 260 seconds] 21:05:48 -!- kglovern [~kglovern@129-97-159-207.uwaterloo.ca] has left #lisp 21:06:19 -!- YamNad [~YamNad1@91.84.41.221] has quit [] 21:07:33 -!- lnostdal [~lnostdal@90.149.113.175] has quit [Remote host closed the connection] 21:08:20 rswarbrick [rupert@194.66.250.208] has joined #lisp 21:09:30 ichernetsky [~ichernets@195.222.72.67] has joined #lisp 21:09:42 -!- ichernetsky [~ichernets@195.222.72.67] has quit [Client Quit] 21:11:33 drewc: What makes rucksack better than elephant? 21:11:40 -!- Guest81998 is now known as reb 21:12:07 Easier to use? Better backend support? 21:12:25 Common Lisp 21:12:29 drewc: Is 200,000 hits per hour normal load? 21:12:37 Xach: for cliki? hells no 21:12:47 drewc: how did it get that kind of traffic? 21:12:56 Edward [Ed@AAubervilliers-154-1-56-114.w90-3.abo.wanadoo.fr] has joined #lisp 21:13:02 -!- freiksenet [~freiksene@hoasnet-fe29dd00-202.dhcp.inet.fi] has quit [Remote host closed the connection] 21:13:07 Xach: that was actually the day PCL was released IIRC 21:13:14 or the day PCL hit slashdot 21:13:52 on a 128mb User-Mode Linux VPS at that. 21:14:10 serve-event ftw! 21:14:14 that's hilarious detail 21:14:18 -!- mishoo [~mishoo@79.112.118.235] has quit [Ping timeout: 252 seconds] 21:14:20 128 UML 21:14:26 err, MB 21:14:42 guaqua: it still runs on a 128mb Xen VPS :) 21:16:04 Xach: and that was the peak load, but it was consistently over 50k/hr for 16 hours or so. 21:17:08 i was impressed 21:17:15 fsl [~fsl@auf186.internetdsl.tpnet.pl] has joined #lisp 21:17:40 -!- meltingwax [~meltingwa@c-76-106-58-123.hsd1.md.comcast.net] has quit [Ping timeout: 256 seconds] 21:17:58 that was the ALU wiki IIRC, or lisp.tech.coop, not cliki.net proper. Same engine though. 21:18:03 -!- gruseom [~daniel@S0106001217057777.cg.shawcable.net] has quit [Ping timeout: 276 seconds] 21:18:54 djinni`` [~djinni`@adsl-71-142-225-118.dsl.scrm01.pacbell.net] has joined #lisp 21:19:02 Xach: i image the actual average for cliki.net is probably a few orders of magnitude lower ;) 21:19:14 -!- nha [~prefect@250-194.105-92.cust.bluewin.ch] has quit [Ping timeout: 272 seconds] 21:19:23 i don't keep track... i probably should, it would be interesting data. 21:21:24 anton_v [~Miranda@93.125.49.66] has joined #lisp 21:24:33 syamajala [~syamajala@140.232.178.166] has joined #lisp 21:25:01 asdf25 [~jeff@pool-173-79-231-213.washdc.fios.verizon.net] has joined #lisp 21:27:28 -!- Jasko [~tjasko@c-174-59-195-12.hsd1.pa.comcast.net] has quit [Ping timeout: 272 seconds] 21:27:42 Aisling [ash@blk-222-192-36.eastlink.ca] has joined #lisp 21:30:09 -!- dostoyevsky [sck@oemcomputer.oerks.de] has quit [Quit: leaving] 21:32:09 hugod [~hugod@207.96.182.162] has joined #lisp 21:33:28 -!- marioxcc is now known as marioxcc-AFK 21:36:30 Louis11 [~chatzilla@r74-192-16-145.bcstcmta01.clsttx.tl.dh.suddenlink.net] has joined #lisp 21:36:38 -!- marioxcc-AFK is now known as marioxcc 21:36:59 Can I do something like: (find '(3 1) '((5 2) (3 1))) ? In short, can I use find to see if a list is present in al ist of lists? 21:37:43 Try: (find '(1 2) '((1 2) (3 4)) :test #'equal) 21:37:51 (note the :test argument) 21:38:04 abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has joined #lisp 21:38:10 (in particular, the two different '(1 2) 's are not "eq"ual. 21:39:44 So if I am doing a test (and . . .) and a list is returned for find (instead of Nil) will this suffice for "True"? 21:40:00 Look up "generalised booleans". 21:40:03 (but, yes) 21:40:05 Louis11: indeed. anything that is not NIL is true 21:40:16 alright didn't know if that was the same in Lisp, thanks :) 21:40:37 mejja [~user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #lisp 21:41:16 -!- Odin- [~sbkhh@194-144-23-6.du.xdsl.is] has quit [Quit: Odin-] 21:42:06 kwinz3 [~kwinz@213162066162.public.t-mobile.at] has joined #lisp 21:43:20 -!- RaceCondition [~RaceCondi@85.253.73.94.cable.starman.ee] has quit [Ping timeout: 246 seconds] 21:43:57 -!- francogrex [~user@142.46-244-81.adsl-dyn.isp.belgacom.be] has quit [Remote host closed the connection] 21:45:05 oconnore_ [~oconnore_@c-66-31-125-56.hsd1.ma.comcast.net] has joined #lisp 21:45:21 It seems that MatLisp is a good choice for matrix computation but seems also not be available in SBCL do anyone know an equivalent? 21:46:33 gsll 21:47:04 minion: gsll 21:47:05 gsll: the Gnu Scientific Library for Lisp http://common-lisp.net/project/gsll 21:47:16 Need to poke minion more often 21:49:52 Blkt [~user@host-78-13-245-184.cust-adsl.tiscali.it] has joined #lisp 21:51:06 dostoyevsky [sck@oemcomputer.oerks.de] has joined #lisp 21:51:31 -!- wlr [~walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Remote host closed the connection] 21:52:00 ltriant [~ltriant@lithium.mailguard.com.au] has joined #lisp 21:52:06 -!- kwinz3 [~kwinz@213162066162.public.t-mobile.at] has quit [Ping timeout: 256 seconds] 21:55:28 do you guys use asdf-install? or do things by hand configuring asdf? or? 21:55:55 minion: tell rickmode about clbuild 21:55:56 rickmode: look at clbuild: clbuild [common-lisp.net] is a shell script helping with the download, compilation, and invocation of Common Lisp applications. http://www.cliki.net/clbuild 21:56:01 Jasko [~tjasko@c-174-59-195-12.hsd1.pa.comcast.net] has joined #lisp 21:57:50 does that put the packages into the ~/.sbcl or /usrlocal areas like asdf-install? or can you put the packages under your own app? 22:00:01 Closure is when function returns #'(lambda ...) ? 22:00:30 closure is ambda with free binding 22:00:47 s/ambda/lambda 22:00:58 varjag [~eugene@226.119.202.84.customer.cdi.no] has joined #lisp 22:01:17 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has quit [Quit: *poof*] 22:01:18 Odin- [~sbkhh@s121-302.gardur.hi.is] has joined #lisp 22:01:52 -!- Athas [~athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has quit [Remote host closed the connection] 22:02:44 rickmode: in install the _systems_ in its own directory structure, but you are of course free to move it where ever you want. 22:03:14 it installs the * 22:03:24 -!- erjag [~eugene@226.119.202.84.customer.cdi.no] has quit [Ping timeout: 258 seconds] 22:04:32 sierinjs: closures are functions in which free references refer to bindings in the lexical environment in which the function was created. 22:04:39 drewc: are you meant to run it from within the clbuild directory (meaning I should not create a soft link to the clbuild executable)? 22:05:09 drewc: I just committed sb-introspect:function-type. 22:05:30 rickmode: i run it from within slime, but yeah, linking to the script is one way to do it 22:05:44 that's the bit I use for my doc tool 22:05:52 tcr: brilliant! 22:06:22 -!- Ralith [~ralith@69.90.48.97] has quit [Quit: Lost terminal] 22:07:15 -!- tmh [~user@pdpc/supporter/sustaining/tmh] has left #lisp 22:07:48 -!- Edico [~Edico@unaffiliated/edico] has quit [Quit: Ex-Chat] 22:09:35 stassats [~stassats@wikipedia/stassats] has joined #lisp 22:13:55 -!- varjag [~eugene@226.119.202.84.customer.cdi.no] has quit [Remote host closed the connection] 22:14:56 ska` [~user@124.157.214.197] has joined #lisp 22:16:51 -!- mathk [~mathk@lns-bzn-40-82-251-181-238.adsl.proxad.net] has quit [Ping timeout: 245 seconds] 22:16:56 kwinz3 [~kwinz@213162066175.public.t-mobile.at] has joined #lisp 22:17:32 -!- Edward [Ed@AAubervilliers-154-1-56-114.w90-3.abo.wanadoo.fr] has quit [] 22:19:41 -!- syamajala [~syamajala@140.232.178.166] has quit [Quit: Leaving...] 22:20:32 -!- marioxcc is now known as marioxcc-AFK 22:22:22 -!- davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 22:22:53 jmbr [~jmbr@210.245.218.87.dynamic.jazztel.es] has joined #lisp 22:23:12 -!- alley_cat [~AlleyCat@sourcemage/elder/alleycat] has quit [Quit: Ex-Chat] 22:25:03 -!- gz [Clozure@clozure-CDE684CB.bstnma.east.verizon.net] has quit [Quit: gz] 22:27:40 -!- Zephyrus [~emanuele@unaffiliated/zephyrus] has quit [Quit: ""] 22:28:29 -!- dalkvist [~cairdazar@hd5e24dca.gavlegardarna.gavle.to] has quit [Quit: Ex-Chat] 22:30:25 -!- legumbre_ is now known as legumbre 22:30:55 -!- marioxcc-AFK is now known as marioxcc 22:31:22 Strav [~user@184-78.162.dsl.aei.ca] has joined #lisp 22:32:15 he. Small question. Is there any kind of wrappers around maxima that could allow me to use it directly within sbcl or any other lisp? 22:32:39 you can use it directly already 22:32:59 hmmm: clbuild's slime doesn't like Aquamacs. I did the clbuild slime-configuration >~/.emacs but that doesn't work (I had no .emacs to start with BTW) 22:33:17 rickmode: doesn't work in what way? 22:34:04 hmm I suspected it was possible. I'll google on how can I do that. Thanks. 22:34:20 read the manual 22:34:41 thanks for omiting the "fu*ing" 22:34:58 http://maxima.sourceforge.net/docs/manual/en/maxima_3.html#SEC5 22:35:04 -!- asdf25 [~jeff@pool-173-79-231-213.washdc.fios.verizon.net] has quit [Quit: Ex-Chat] 22:35:50 stassats: I fire up Aquamacs and there is no slime or inferior-lisp. So that seems like it might be OK. I use M-x slime, and then it barfs. saying it can't load clbuild/source/slime/swank-loader.lisp 22:35:52 and how to load: read INSTALL.lisp file, do all steps but omit dumping an image 22:36:00 (I'm used to maxima wrapped in a python package called "sage-maths", but I'd rather write my math stuff in lisp (for one thing, function passing is more elegant). 22:36:18 -!- kwinz3 [~kwinz@213162066175.public.t-mobile.at] has quit [Ping timeout: 240 seconds] 22:36:53 -!- xenosoz2 [~xenosoz@pe.snu.ac.kr] has quit [Ping timeout: 246 seconds] 22:37:04 stassats: I think I've mixed up the slime I installed for Aquamacs with the clbuild slime. 22:37:14 *Xach* feels the buildapp excitement build! app! 22:37:16 xenosoz2 [~xenosoz@pe.snu.ac.kr] has joined #lisp 22:37:20 kwinz3 [~kwinz@213162066175.public.t-mobile.at] has joined #lisp 22:38:11 rickmode: so, did you solve your problem or you still need help? 22:38:14 Blkt` [~user@host-78-13-255-101.cust-adsl.tiscali.it] has joined #lisp 22:38:31 -!- marioxcc is now known as marioxcc-AFK 22:40:00 stassats: It's a no go. clbuild is seeming more hassle than it is worth. as well as asdf-install / lispy. It really looks like the only stable way to use CL these days is downloading libs and setting up ASDF by hand. 22:40:40 well, you give up too soon 22:40:48 maybe you did something wrong 22:40:49 ichernetsky [~ichernets@195.222.66.250] has joined #lisp 22:41:05 gratefulfrog [~bob@ip-62-235-194-171.dsl.scarlet.be] has joined #lisp 22:41:36 -!- abugosh [~Adium@216-164-114-53.c3-0.tlg-ubr3.atw-tlg.pa.cable.rcn.com] has quit [Quit: Leaving.] 22:41:43 -!- kwinz3 [~kwinz@213162066175.public.t-mobile.at] has quit [Excess Flood] 22:41:58 -!- Blkt [~user@host-78-13-245-184.cust-adsl.tiscali.it] has quit [Ping timeout: 256 seconds] 22:42:03 Just did this: http://common-lisp.net/project/clbuild/. Plus searched for using aquamacs and clbuild. In any case clbuild puts the files it's in own location. That's not really ideal. For a "nice" development environment, the list of packages available should not be system wide, but rather should be project-specific. 22:42:15 kwinz3 [~kwinz@213162066175.public.t-mobile.at] has joined #lisp 22:42:28 rickmode: did you do "./clbuild install slime"? 22:43:20 stassats: no... the web pages does not show that as a step. 22:43:38 -!- attila_lendvai [~ati@apn-89-223-167-18.vodafone.hu] has quit [Ping timeout: 265 seconds] 22:44:00 stassats: i'm not really giving up too soon. I've spent 3 days wrestling with package issues just string to get to the point where I can hack a web application 22:44:32 Welcome to Lisp 22:44:41 now, do ./clbuild install slime and try again 22:44:45 rickmode: then just install on clbuild instance per project 22:44:46 dralston [~dralston@S010600212986cca8.va.shawcable.net] has joined #lisp 22:45:47 -!- mega1 [~quassel@53d825c3.adsl.enternet.hu] has quit [Read error: Connection reset by peer] 22:46:09 mega1 [~quassel@53d825c3.adsl.enternet.hu] has joined #lisp 22:46:25 dia100daly [~sdiawara@212.99.78.121] has joined #lisp 22:46:46 Rugby [~blake@va-71-48-129-203.dhcp.embarqhsd.net] has joined #lisp 22:47:14 rickmode: i use clbuild, and it takes me approx. 20 minutes to go from a fresh system to a working lisp-on-lines install. 22:47:42 hi lispers! 22:48:07 drewc: I still content this is user-hostile for beginners 22:48:12 er... contend 22:48:18 drewc: do you include compilation time in it? 22:48:30 ;,n>R&ČA 22:48:40 demmeln [~Adium@dslb-094-216-209-050.pools.arcor-ip.net] has joined #lisp 22:48:44 rickmode: beginners are not the target for CL in general... #basic is thataway ---> 22:49:09 holycow [~new@69.67.174.130] has joined #lisp 22:49:24 p_l: sure, it doesn't take _that_ long to compile sbcl 22:49:32 How to know whether a item is in a sequence/list? 22:49:32 jcowan [~jcowan@2620:0:1003:1005:21a:a0ff:fe13:f0c0] has joined #lisp 22:49:49 clhs find 22:49:49 http://www.lispworks.com/reference/HyperSpec/Body/f_find_.htm 22:49:51 -!- dia100daly [~sdiawara@212.99.78.121] has left #lisp 22:50:00 -!- ska` [~user@124.157.214.197] has quit [Ping timeout: 252 seconds] 22:50:03 clhs position 22:50:03 http://www.lispworks.com/reference/HyperSpec/Body/f_pos_p.htm 22:50:04 clhs 17.3 22:50:05 Sorry, I couldn't find anything for 17.3. 22:50:13 http://l1sp.org/cl/17.3 :) 22:50:17 really specbot? 22:50:32 drewc: 17.3's filename is too weird for specbot's auto indexer 22:50:34 specbot doesn't know about dictionaries 22:50:35 Adlai pointed out the issue 22:50:40 ahh 22:50:50 that makes some sense 22:50:58 -!- marioxcc-AFK is now known as marioxcc 22:51:11 clhs sequences 22:51:11 Sorry, I couldn't find anything for sequences. 22:51:27 bah, specbot is teh suxors :P 22:51:50 is there a way to find all instances of a given symbol in a list? Then return that list? 22:51:50 l1sp.org is the new hotness :) 22:52:13 Louis11: (remove symbol list :test-not #'eql) 22:52:39 Louis11: (make-list (count symbol list) :initial-element symbol)? 22:52:47 stassats: Just out of curiousity, if I pass in a list and do a remove and return it will it destroy the passed in list? 22:53:07 (loop for item on list when (eq symbol item) collect item) 22:53:14 Louis11, nope, remove doesn't side-effect the list 22:53:15 Louis11: no, remove doesn't destructure a list 22:53:24 DELETE does 22:53:28 stassats: might 22:53:32 ok great, thanks :) 22:54:19 I have function: (cffi:defcfun ("tcmapnew3" tcmapnew3) :pointer (str :string) &rest) and then I need to do (apply 'tcmapnew3 (list-of-args)), but is does not work because tcmapnew3 is a macro. What do I do? 22:54:55 knobo: wrap it in a lambda? 22:55:14 p_l: how. 22:55:46 antoszka [~antoszka@unaffiliated/antoszka] has joined #lisp 22:56:42 knobo: (apply #'(lambda (parameters...) (tcmapnew parameters....)) ? 22:57:19 p_l: but parameters is a list of unknown lenght 22:57:38 knobo: notice what tcmapnew3 expands to 22:57:41 apply that 22:57:54 *stassats* wonders why it needs to be a macro 22:57:56 If there is no other way. 22:58:12 stassats: it's autogeneratd from swig 22:58:29 i'm talking about cffi 22:58:30 ofcourse It's meant to be changed 22:58:33 stassats: 22:58:35 yes 22:59:06 -!- Guest49122 [~user@159.92.64.121] has quit [Remote host closed the connection] 22:59:10 knobo: you cannot apply macros, that makes no sense at all 22:59:21 stassats: because of the variable arguments i think 22:59:23 my question doesn't have anything to do with swig, in cffi ordinary functions are defined as functions, but vararg functions as macros 22:59:44 -!- fsl [~fsl@auf186.internetdsl.tpnet.pl] has quit [Quit: WeeChat 0.3.1.1] 23:00:00 -!- mejja [~user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Quit: ok] 23:00:23 mbohun [~mbohun@202.124.74.137] has joined #lisp 23:02:10 Would be nice if varargs would have a name, something like (cffi:defcfun ("varargfunc" varargfunc) :pointer &rest rest). Just like normal functions in lisp 23:02:19 Then it would not have to be a macro 23:02:29 levente_meszaros [~levente_m@apn-89-223-219-191.vodafone.hu] has joined #lisp 23:02:34 -!- sierinjs is now known as markatto 23:02:42 whew. drewc stassats, et al.... clbuild it working now. Thanks guys. 23:02:48 -!- markatto [~root@unaffiliated/sierinjs] has quit [Disconnected by services] 23:03:01 rickmode: glad to hear it 23:03:05 sierinjs [~root@unaffiliated/sierinjs] has joined #lisp 23:06:24 -!- gratefulfrog [~bob@ip-62-235-194-171.dsl.scarlet.be] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.0.17/2010010604]] 23:07:28 is setf destructive to a list being passed into a function? 23:07:43 gemelen [~shelta@shpd-92-101-156-197.vologda.ru] has joined #lisp 23:07:47 Or does the function produce a new list to return? 23:07:56 setf what? 23:08:05 Setf in general changes data structures (except in the degenerate case where it is the same as setq) 23:08:48 -!- hugod [~hugod@207.96.182.162] has quit [Read error: Operation timed out] 23:09:28 Louis11: (setf list value) won't change a list, but (setf (car list) value) will 23:09:54 cffi and variable arguments are painful 23:09:56 Louis11: would it copy a string? a struct? a number? an array the just fits in memory? binding something to a function parameter does not copy it. 23:10:27 Louis11: so unless you ask lisp to copy something for you, it's not going to. 23:10:34 -!- bobbysmith007 [~russ@216.155.97.1] has quit [Quit: Leaving.] 23:10:38 ok didn't know if there was any weird scoping going on 23:10:40 thanks :) 23:10:55 i don't see what scoping has to do with anything. 23:10:55 -!- sierinjs [~root@unaffiliated/sierinjs] has quit [Quit: Ninja, please.] 23:12:19 -!- Rugby [~blake@va-71-48-129-203.dhcp.embarqhsd.net] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20100106054534]] 23:12:46 Xach: btw re your post, did you know you can just do (map-into (make-string length) (lambda () (random-elt *alphabet*))) ? (given random-elt, of course) 23:13:13 Krystof [~csr21@84-51-132-95.christ977.adsl.metronet.co.uk] has joined #lisp 23:13:54 -!- milanj [~milan@93.87.152.79] has quit [Quit: Leaving] 23:14:07 -!- sellout [~greg@static-72-85-235-154.bstnma.east.verizon.net] has quit [Quit: sellout] 23:14:57 that's a thunk 23:15:14 -!- ichernetsky [~ichernets@195.222.66.250] has quit [Ping timeout: 248 seconds] 23:15:30 ah wait I'm always tricked that map-into automatically uses the "into" as input seq 23:16:01 -!- tsuru` [~user@c-68-53-57-241.hsd1.tn.comcast.net] has quit [Ping timeout: 265 seconds] 23:16:04 adeht: i didn't know that. 23:16:33 adeht: the examples make it obvious, though. thanks! 23:16:45 (map-into (make-string length) #'random-elt *alphabet*) should work, too, right? 23:16:50 no 23:17:19 tcr: map-into calls the function with elements from each sequence except the output sequence 23:17:47 tcr: when there are no input sequences, the function is called without any argument 23:18:31 *p_l* ponders Parenscript-style FFI 23:18:40 tcr: but it calls it to set each element in the output sequence 23:19:11 *drewc* decides the DEFMETHOD syntax is a mistake 23:19:58 should be (defmethod (foo :around) ((bar baz)) ...) 23:20:14 -!- Summermute [~Summermut@c-68-55-150-29.hsd1.dc.comcast.net] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6/20100115144158]] 23:20:17 what would that buy? 23:21:02 stassats: ease of parsing, for one. 23:21:30 daniel_ [~daniel@p5082F8C3.dip.t-dialin.net] has joined #lisp 23:21:50 it's not that hard already 23:22:42 stassats: (defmethod foo :around :some-other-combination :yet-mode :baz (...) ...) 23:22:45 -!- gemelen [~shelta@shpd-92-101-156-197.vologda.ru] has quit [*.net *.split] 23:22:45 -!- mbohun [~mbohun@202.124.74.137] has quit [*.net *.split] 23:22:45 -!- kwinz3 [~kwinz@213162066175.public.t-mobile.at] has quit [*.net *.split] 23:22:45 -!- rswarbrick [rupert@194.66.250.208] has quit [*.net *.split] 23:22:45 -!- daniel [~daniel@p5082F8C3.dip.t-dialin.net] has quit [*.net *.split] 23:22:45 -!- Stattrav [~Stattrav@202.3.77.161] has quit [*.net *.split] 23:22:46 -!- redline6561 [~redline@c-66-56-16-250.hsd1.ga.comcast.net] has quit [*.net *.split] 23:22:46 -!- carlocci [~nes@93.37.223.51] has quit [*.net *.split] 23:22:46 -!- fatalnix [~Fatalnix@spirit.ggxmain.com] has quit [*.net *.split] 23:22:46 -!- xan [~xan@cs78225040.pp.htv.fi] has quit [*.net *.split] 23:22:46 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [*.net *.split] 23:22:52 the syntax is needlessly complex 23:23:12 just collect everything before a list 23:23:14 Well I find it more problematic that you can't use conses 23:23:28 to name method combinations? 23:23:35 yeah 23:24:05 that would be neat... what's the use case? 23:24:17 oh, actually i have one 23:24:27 -!- jcowan [~jcowan@2620:0:1003:1005:21a:a0ff:fe13:f0c0] has left #lisp 23:24:29 something with contextl 23:24:35 define-layered-method :in-layer foo :around is crap 23:24:50 this is actually what brought me to the conclusion about defmethod in the first place 23:25:09 mbohun [~mbohun@202.124.74.137] has joined #lisp 23:25:21 same use case as yours i recon 23:25:45 Had to do something with clpython and customizing its parser from contrib code 23:26:01 jan247 [~jan247@120.28.69.61] has joined #lisp 23:26:01 gemelen [~shelta@shpd-92-101-156-197.vologda.ru] has joined #lisp 23:26:01 kwinz3 [~kwinz@213162066175.public.t-mobile.at] has joined #lisp 23:26:01 rswarbrick [rupert@194.66.250.208] has joined #lisp 23:26:01 Stattrav [~Stattrav@202.3.77.161] has joined #lisp 23:26:01 redline6561 [~redline@c-66-56-16-250.hsd1.ga.comcast.net] has joined #lisp 23:26:01 carlocci [~nes@93.37.223.51] has joined #lisp 23:26:01 fatalnix [~Fatalnix@spirit.ggxmain.com] has joined #lisp 23:26:01 xan [~xan@cs78225040.pp.htv.fi] has joined #lisp 23:26:01 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 23:26:40 -!- AntiSpamMeta [~MetaBot@unaffiliated/afterdeath/bot/antispambot] has quit [Excess Flood] 23:26:40 (defmethod (:from __module__ :import bar) :around parse-python ...) something like that 23:27:44 -!- TR2N` is now known as TR2N 23:28:38 AntiSpamMeta [~MetaBot@unaffiliated/afterdeath/bot/antispambot] has joined #lisp 23:29:50 -!- mbohun [~mbohun@202.124.74.137] has quit [Client Quit] 23:30:02 mbohun [~mbohun@202.124.74.137] has joined #lisp 23:31:47 -!- fe[nl]ix [~lacedaemo@pdpc/supporter/professional/fenlix] has quit [Quit: Valete!] 23:32:03 ichernetsky [~ichernets@195.222.64.243] has joined #lisp 23:35:39 -!- levente_meszaros [~levente_m@apn-89-223-219-191.vodafone.hu] has quit [Ping timeout: 252 seconds] 23:37:30 -!- kwinz3 [~kwinz@213162066175.public.t-mobile.at] has quit [Ping timeout: 256 seconds] 23:42:10 rares [~rares@174-26-104-135.phnx.qwest.net] has joined #lisp 23:45:42 fe[nl]ix [~lacedaemo@pdpc/supporter/professional/fenlix] has joined #lisp 23:46:21 -!- SandGorgon [~OmNomNomO@office.sea.jambool.com] has quit [Read error: Connection reset by peer] 23:47:04 ace4016 [ace4016@cpe-76-170-134-79.socal.res.rr.com] has joined #lisp 23:47:31 -!- rswarbrick [rupert@194.66.250.208] has quit [Quit: rswarbrick] 23:47:32 Axius [~hi@92.84.22.195] has joined #lisp 23:48:42 -!- Dawgmatix_ [~dman@c-76-124-9-27.hsd1.nj.comcast.net] has quit [Ping timeout: 272 seconds] 23:48:57 -!- Axius [~hi@92.84.22.195] has quit [Read error: Connection reset by peer] 23:50:14 rswarbrick [rupert@194.66.250.208] has joined #lisp 23:53:43 -!- HET2 [~diman@91.114.108.230] has quit [Quit: This computer has gone to sleep] 23:54:26 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Quit: bye] 23:55:21 jaoswald [~user@74.73.49.134] has joined #lisp 23:55:39 m4thrick [~mathrick@users177.kollegienet.dk] has joined #lisp 23:56:05 kwinz3 [kwinz@d86-32-109-108.cust.tele2.at] has joined #lisp 23:57:35 davazp [~user@165.Red-83-46-5.dynamicIP.rima-tde.net] has joined #lisp 23:59:56 -!- jaoswald [~user@74.73.49.134] has quit [Ping timeout: 258 seconds]