00:00:18 -!- vaporatorius [~vaporator@68.Red-83-42-196.dynamicIP.rima-tde.net] has quit [Remote host closed the connection] 00:02:06 haxx [~Rob@135.23.80.105] has joined #lisp 00:02:43 -!- drmeister [~drmeister@pool-71-175-2-214.phlapa.fios.verizon.net] has quit [Ping timeout: 246 seconds] 00:03:57 -!- tensorpudding [~tensorpud@99.102.70.82] has quit [Ping timeout: 252 seconds] 00:05:14 -!- LispNewbie [~eskil@user-1087abb.cable.mindspring.com] has quit [Quit: Leaving] 00:05:39 lisp desktop environment 00:05:42 what about lisp OS hahaha? 00:05:50 think it'll ever happen again? 00:08:24 resttime: hopefully. 00:08:27 JuanDaugherty [~Ren@cpe-198-255-198-157.buffalo.res.rr.com] has joined #lisp 00:09:01 -!- qw3rtman [~qw3rtman@pool-71-252-177-42.dllstx.fios.verizon.net] has quit [Ping timeout: 246 seconds] 00:09:04 as a noob programmer I can't even imagine how it would be done 00:09:57 resttime: http://smbx.org/index.php/index.php?option=com_frontpage&Itemid=1 get to reading, then. 00:10:23 resttime: (that would be a single-user operating system, though.) 00:11:18 Hy. I'm new to lisp (and to optimization...). However I have a general knowledge how optimization can be done. Run a profiler, identify the slow or more used routines and invest time on those. Which profile should I use? (Or am I looking at this the wrong way)? 00:12:07 Kromitvs: your implementation's is best bet 00:12:16 unfortunately, support differs 00:12:58 I'am using CLISP at the time. Do you mena CLISP has it's own profiler? 00:13:12 ... no idea. Haven't used CLISP enough 00:13:47 I know SBCL got sb-sprof which is a statistical profiler, ACL got some nice profiler/tracer, LW probably as well... 00:14:02 Kromitvs: an interesting tool in optimization is CL:DISASSEMBLE 00:14:35 especially if your implementation puts extra information on what it is doing. But that's low level optimizations 00:16:03 I'm unsure whether DISASSEMBLE is very useful or even meaningful on CLISP 00:16:10 though I don't think CLISP gives much there 00:16:15 it compiles to bytecode, and AFAIK has no JIT 00:16:17 yeah, it's more of a tool on SBCL etc. 00:16:27 mathrick: there's supposedly JIT, I never got it to work 00:16:32 heh 00:16:50 kristof: bookmarked, quick glance of one of the papers looked interesting 00:17:50 I should search for CLISP "profiler" or "tracer", this are good search terms? 00:19:11 tracing instead of tracer, I think. Though you'll get a lot of reference to tracing function (CL:TRACE) 00:19:20 I don't know how much information that one outputs on CLISP 00:19:24 CL:DISASSEMBLE: for what I gather in HyperSpec this will show me how a function will be converted to lower-level, but won't point me towards problematic funcions 00:20:11 Kromitvs: no, but depending on the implementation and task might be very good at informing you that, for example, you got a bunch of unneeded (un)boxing, or function calls, etc. 00:20:27 -!- Bike [~Glossina@174-25-51-217.ptld.qwest.net] has quit [Ping timeout: 252 seconds] 00:20:34 good for tighter arithmetic parts, though requires basic familiarity with assembly 00:20:44 and of course there are cases where looking to close can be wrong 00:20:50 -!- bananagram [~bot@c-76-30-158-226.hsd1.tx.comcast.net] has quit [Ping timeout: 245 seconds] 00:21:28 Sorry about the newby question... what do you mean by (un)boxing? 00:22:06 Kromitvs: changing from boxed form into cpu-primitive and back (unboxing/boxing) 00:22:08 Bike [~Glossina@75-175-64-1.ptld.qwest.net] has joined #lisp 00:23:04 -!- matko [~matko@ip82-139-127-72.lijbrandt.net] has quit [Ping timeout: 260 seconds] 00:23:32 essentially, some types have "boxed" representation which contains extra information and leads to indirect storage or extra generalized function calls, where for example addition would investigate the types of variables at runtime and decide on best type to use for result etc. 00:23:53 oh! ok 00:23:58 Got it 00:24:01 qw3rtman [~qw3rtman@pool-71-252-177-42.dllstx.fios.verizon.net] has joined #lisp 00:24:08 unboxed forms mean without the wrapping and so, but usually also without certain information that might be needed by GC, so in the end the data has to be stored boxed 00:24:15 (in one way or another) 00:24:34 but there's a big difference between amount of work needed with, let's say, fixnums, and general numbers 00:24:45 I read that declaring types can optimize code. I'm guessing by "unboxing" 00:25:05 yes, fixnums for instance 00:25:12 Kromitvs: well, by cutting through a lot of decision trees needed to know how to actually get at the data inside the box 00:25:46 yes. ok. I think I have some where to start from. 00:25:50 Thanks! 00:26:29 easye` [~user@2a01:4f8:200:4310::30] has joined #lisp 00:26:30 -!- easye [~user@2a01:4f8:200:4310::30] has quit [Ping timeout: 252 seconds] 00:27:14 -!- Bike [~Glossina@75-175-64-1.ptld.qwest.net] has quit [Ping timeout: 264 seconds] 00:28:25 Bike [~Glossina@75-175-71-80.ptld.qwest.net] has joined #lisp 00:31:07 -!- Code_Man` [~Code_Man@254-85.2-85.cust.bluewin.ch] has quit [Remote host closed the connection] 00:32:51 bananagram [~bot@c-76-30-158-226.hsd1.tx.comcast.net] has joined #lisp 00:32:54 tensorpudding [~tensorpud@99.102.66.161] has joined #lisp 00:33:45 zRecursive [~czsq888@183.13.193.207] has joined #lisp 00:34:02 -!- dcxi [~dcxi@83.Red-83-61-34.dynamicIP.rima-tde.net] has quit [Quit: dcxi] 00:34:27 Kromitvs: you are correct, however, that DISASSEMBLY won't tell you *where* your code spends time 00:34:40 I wonder if pjb has some portable profiler implementation 00:35:39 -!- qw3rtman [~qw3rtman@pool-71-252-177-42.dllstx.fios.verizon.net] has quit [Ping timeout: 260 seconds] 00:37:58 qw3rtman [~qw3rtman@pool-71-252-177-42.dllstx.fios.verizon.net] has joined #lisp 00:38:48 -!- JuanDaugherty [~Ren@cpe-198-255-198-157.buffalo.res.rr.com] has quit [Remote host closed the connection] 00:39:39 Bike_ [~Glossina@174-25-43-113.ptld.qwest.net] has joined #lisp 00:39:59 pjb? 00:40:28 Kromitvs: braniac who's around here on occasion 00:40:48 Kromitvs: http://www-users.cs.umn.edu/~gini/lisp/profile.html 00:45:50 the code is awfully formatted, so please don't emulate that 00:45:57 but it's a minimal profiler 00:46:38 -!- qw3rtman [~qw3rtman@pool-71-252-177-42.dllstx.fios.verizon.net] has quit [Ping timeout: 240 seconds] 00:46:39 and links to http://www-users.cs.umn.edu/~gini/lisp/metering.cl 00:49:55 syrinx_ [~quassel@ip68-1-175-223.ri.ri.cox.net] has joined #lisp 00:50:15 -!- harish [~harish@175.156.242.180] has quit [Ping timeout: 252 seconds] 00:50:23 -!- syrinx_ [~quassel@ip68-1-175-223.ri.ri.cox.net] has quit [Changing host] 00:50:23 syrinx_ [~quassel@unaffiliated/syrinx-/x-4255893] has joined #lisp 00:51:20 -!- syrinx [~quassel@unaffiliated/syrinx-/x-4255893] has quit [Read error: Connection reset by peer] 00:53:46 -!- haxx [~Rob@135.23.80.105] has quit [Read error: Connection reset by peer] 01:03:13 -!- _paul0 [~paul0@189.26.128.216.dynamic.adsl.gvt.net.br] has quit [Quit: Saindo] 01:03:41 drmeister [~drmeister@pool-71-175-2-214.phlapa.fios.verizon.net] has joined #lisp 01:16:10 luismiguel [~luismigue@179.246.193.189] has joined #lisp 01:16:33 -!- echo-area [~user@123.120.234.99] has quit [Remote host closed the connection] 01:17:27 -!- kristof [~kristof@unaffiliated/kristof] has quit [Ping timeout: 246 seconds] 01:18:08 -!- hlavaty [~user@friedrichstrasse.knowledgetools.de] has quit [Ping timeout: 246 seconds] 01:19:34 harish [~harish@119.234.0.36] has joined #lisp 01:24:51 -!- luismiguel [~luismigue@179.246.193.189] has quit [Quit: used jmIrc] 01:32:10 k0001 [~k0001@host164.186-125-100.telecom.net.ar] has joined #lisp 01:32:23 kcj [~casey@unaffiliated/kcj] has joined #lisp 01:32:29 fridim__ [~fridim@bas2-montreal07-2925317577.dsl.bell.ca] has joined #lisp 01:37:09 lyanchih [~lyanchih@202.39.219.19] has joined #lisp 01:39:47 kliph [~user@unaffiliated/kliph] has joined #lisp 01:42:55 -!- harish [~harish@119.234.0.36] has quit [Ping timeout: 265 seconds] 01:44:17 sohail [~sohail@unaffiliated/sohail] has joined #lisp 01:45:09 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 248 seconds] 01:46:45 -!- 36DABTV8K [~hiro@p210079202073.cnh.ne.jp] has quit [Ping timeout: 248 seconds] 01:49:39 nydel [nydel@gateway/shell/blinkenshell.org/x-esvvtdbsuuycszfa] has joined #lisp 01:50:33 araujo [~araujo@gentoo/developer/araujo] has joined #lisp 01:53:31 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Read error: Connection reset by peer] 01:54:04 araujo [~araujo@gentoo/developer/araujo] has joined #lisp 01:54:26 michael_lee [~michael_l@117.22.207.23] has joined #lisp 02:00:14 miercoledi [~miercoled@ip72-197-245-1.sd.sd.cox.net] has joined #lisp 02:00:30 -!- michael_lee [~michael_l@117.22.207.23] has quit [Remote host closed the connection] 02:05:52 motionman [~motionman@unaffiliated/motionman] has joined #lisp 02:08:57 -!- jk121960 [~jk121960@108-89-22-112.lightspeed.cicril.sbcglobal.net] has quit [Quit: WeeChat 0.4.1] 02:11:19 normanrichards [~textual@70.114.215.220] has joined #lisp 02:12:59 -!- normanrichards [~textual@70.114.215.220] has quit [Client Quit] 02:15:17 strobegen [~Adium@188.168.72.236] has joined #lisp 02:16:35 harish [harish@nat/redhat/x-oldxxxxtpytlsasg] has joined #lisp 02:18:27 fortitude [~fortitude@cpe-74-78-191-26.twcny.res.rr.com] has joined #lisp 02:20:02 michael_lee [~michael_l@117.22.207.23] has joined #lisp 02:22:26 echo-area [~user@182.92.247.2] has joined #lisp 02:30:12 -!- klltkr [~klltkr@unaffiliated/klltkr] has quit [Quit: My MacBook has gone to sleep. ZZZzzz] 02:31:29 -!- michael_lee [~michael_l@117.22.207.23] has quit [Quit: Ex-Chat] 02:32:06 michael_lee [~michael_l@117.22.207.23] has joined #lisp 02:34:12 -!- hiyosi [~skip_it@247.94.30.125.dy.iij4u.or.jp] has quit [Ping timeout: 272 seconds] 02:37:19 k0001_ [~k0001@host156.190-138-110.telecom.net.ar] has joined #lisp 02:39:32 -!- nipra [~nipra@122.177.183.62] has quit [Quit: Leaving.] 02:41:09 -!- k0001 [~k0001@host164.186-125-100.telecom.net.ar] has quit [Ping timeout: 272 seconds] 02:51:30 nisstyre [~yours@oftn/member/Nisstyre] has joined #lisp 02:51:51 hiyosi [~skip_it@247.94.30.125.dy.iij4u.or.jp] has joined #lisp 02:55:44 abunchofdollarsi [~abunchofd@l33t.csail.mit.edu] has joined #lisp 02:56:12 Do ``sbcl --init'', but still load my userinit/sysinit? 02:56:22 sbcl --script, rather 02:56:26 normanrichards [~textual@70.114.215.220] has joined #lisp 02:57:01 -!- prxq_ [~mommer@x2f6ad11.dyn.telefonica.de] has quit [Ping timeout: 246 seconds] 02:57:11 it's all in the man page. 02:57:34 yeah, it says --script implies --no-userinit and --no-sysinit 02:57:39 Yes. 02:57:51 so, no, it doesn't load those. 02:57:58 Right yes I want it to not do that. 02:58:05 --userinit maybe overrides it though. 03:00:20 I suppose --end-toplevel-options is in the way. 03:00:28 -!- sohail [~sohail@unaffiliated/sohail] has quit [Quit: This computer has gone to sleep] 03:03:02 -!- francis_wolke [~user@2601:9:4180:468:45bf:8877:21d8:2286] has quit [Ping timeout: 240 seconds] 03:03:40 -!- zacharias [~aw@unaffiliated/zacharias] has quit [Ping timeout: 246 seconds] 03:08:52 haxx [~Rob@135.23.80.105] has joined #lisp 03:09:22 Which is fast between "sbcl --script" and "clisp -norc -q -q -x ..." ? 03:10:08 prxq_ [~mommer@x2f6aa4b.dyn.telefonica.de] has joined #lisp 03:11:13 Depends what you're doing. CLisp tends to load more quickly and run just as fast for code that's mostly library calls, but SBCL has a better optimizing compiler. 03:13:02 heddwch: then i can compile my script first using SBCL ? 03:16:15 You can, and if you dump an image with it preloaded, the load time becomes about the same. 03:16:32 More disk space, but *shrug* 03:16:55 -!- oleo [~oleo@xdsl-87-79-193-121.netcologne.de] has quit [Ping timeout: 252 seconds] 03:17:01 zacharias [~aw@unaffiliated/zacharias] has joined #lisp 03:17:15 oleo [~oleo@xdsl-87-79-198-156.netcologne.de] has joined #lisp 03:18:07 Er, wait, unless you meant compile with SBCL run with CLisp, then no. 03:18:36 -!- Kobain [~sambio@unaffiliated/kobain] has quit [] 03:19:02 I just want to speed up the speed of those CL scripts 03:20:37 zRecursive: the question then becomes if the slow part is loading them, or executing them, and in what proportion 03:20:50 ^this 03:21:18 zRecursive: SBCL's fasl's actually work as executables dependant on the copy of SBCL that compiled them (they store the path to it, too) 03:21:33 p_l: should be "executing time" 03:21:41 so all you need to use them as executables is chmod +x 03:21:53 (and not changing or moving the SBCL that compiled them) 03:23:00 so that gives you fast code, no recompilation penalty from SBCL's complex compiler, but certain load speed penalty (SBCL's core, then SBCL's relatively slow FASL loader) 03:23:22 however, the loaded code is already compiled. And then all the normal optimization stuff comes in 03:23:42 i see now, thx 03:23:52 the executable fasl's seem to be one of lesser known parts of SBCL :) 03:24:36 it seems "clisp -norc -q -q -x ..." is faster ? 03:24:59 http://sprunge.us/PFED <--- header of SBCL's FASL on my system 03:25:06 but i have not tested thoroughly 03:25:35 zRecursive: then there's big probability that your speed is mainly limited by external factors that SBCL can't optimize much, or load time 03:26:06 Huh, I didn't know that about SBCL's fasls. Thanks, p_l 03:26:40 heddwch: I believe I only found about it when I once opened them with something other than SBCL :) 03:26:52 also, you can concatenate fasls 03:27:17 afaik some elements of ASDF or related code are supposed to bring support for such packaging in the future? 03:27:18 :o 03:27:48 -!- ism [~ism@p4FCD4B11.dip0.t-ipconnect.de] has quit [Ping timeout: 265 seconds] 03:27:56 heddwch: in theory it should be possible to make an android-style fork server that quickly starts applications this way :) 03:28:45 I was thinking about something like that with zRecursive's issue, loading all his scripts, dumping an image, then just executing with --core and --eval 03:29:08 heddwch: then i will eat much RAM 03:29:49 Which is why I didn't mention it lol But it wouldn't if you had some sort of fork server thing going on, then there'd be a lot of shared pages. 03:31:09 ism [~ism@p4FCD42FA.dip0.t-ipconnect.de] has joined #lisp 03:32:03 -!- hex-code [~hex-code@123.237.137.209] has quit [Ping timeout: 260 seconds] 03:32:12 I honestly first heard of "fork server" though 03:32:40 They're pretty common in the western world. Chopsticks aren't too popular 03:32:51 *SNRK* 03:32:55 Sorry lol 03:33:02 :-) 03:33:19 i like Chopsticks :) 03:34:20 heddwch: you just reminded me of one of most memorable (to me) lines from Once Upon a Time in China: "Why would a dining table need so many tools of murder?" :D 03:35:05 murder ? 03:35:13 Knives 03:35:14 zRecursive: forks and knives 03:35:16 Forks 03:35:18 haha 03:35:21 Chairs 03:35:22 (compared to chopsticks) 03:35:27 Tablecloths 03:35:35 loke: chairs fall under "blunt object trauma" 03:35:40 ok 03:35:46 Napkins 03:35:52 loke: while tablecloth would be strangling 03:36:06 I kind of like that point, and chopsticks, btw zRecursive. I really like the Asian style of eating over the western style. If you go through all the effort of cooking it, why would you not cut it up and make your guests do it? 03:36:13 and Food 03:37:03 zRecursive: in seriousness, a fork server is essentially a copy of an application loaded in memory, listening to some kind of events and forking a new instances to deal with them 03:37:22 heddwch: "asian" style is not chopsticks though 03:37:24 good idea 03:37:30 can significantly lower load times, too 03:37:34 chopsticks are mainly used in china, japan and korea 03:37:35 that's actually done in Android 03:38:04 loke: No, I know, but it's not usually a bunch of stuff you need tools to make edible. Like, nepali food was still in reasonable portions you could handle without cutting up 03:38:08 East asian style would be either using the hands, or fork+spoon 03:38:09 hex-code [~hex-code@123.237.137.209] has joined #lisp 03:38:19 IIRC, chopstick is VERY helpful for brain 03:38:25 -!- abunchofdollarsi [~abunchofd@l33t.csail.mit.edu] has quit [Quit: Leaving] 03:38:40 zRecursive: Tradeoff. Linked with arthritis, but also linked with staving off dementia 03:39:09 I find them very useful for not getting my keyboard/books greasy when eating chips 03:40:18 *zRecursive* i will google "fork server" now 03:40:54 'android' 'zygote' might be useful terms as well, same with android replaced with Chrome 03:41:55 I actually considered a slightly patched SBCL for a case of hosting multiple instances of a pretty big application in memory efficient way 03:42:12 (for a SaaS offering) 03:42:14 -!- haxx [~Rob@135.23.80.105] has quit [Ping timeout: 264 seconds] 03:42:59 Zygote, such a creepy term 03:43:21 -!- ozialien_ [~ernest@ip98-167-234-126.ph.ph.cox.net] has quit [Remote host closed the connection] 03:43:40 heddwch: if you had listened to this year's crazy, you'd know that fork() is much more offensive ;) 03:43:44 ozialien [~ernest@ip98-167-234-126.ph.ph.cox.net] has joined #lisp 03:43:55 Oh? haha 03:44:07 and you don't want me to go on about how creepy I can make "fork server" sound 03:45:00 haha 03:45:05 ... in some ways, that was a very bad year 03:45:33 Fork server could very well be a technical name for a server in a non-multithreaded environment, like old versions of Apache 03:46:20 That's exactly what it is... Still useful in a multithreaded environment, though 03:46:36 loke: apache used forking, then pre-fork strategy where it had pre-spawned (ha! that's dirty too!), and still has prefork MPM available 03:46:53 -!- normanrichards [~textual@70.114.215.220] has quit [] 03:47:05 Idk, spawn makes me think of fish, zygote makes me think of pregnant humans. Probably just me, though 03:48:21 -!- Vutral [~ss@mirbsd/special/Vutral] has quit [Ping timeout: 252 seconds] 03:49:04 I used pre-forking in my HTTP server I wrote in Perl back in, let's see... 1995 or 1996. 03:49:16 zygote is actually very technical term that afaik isn't at all specific to humans. But I believe this is about sensible architecture for applications, not the many ways that misguided or flat out infantile people can turn simple words into open internet mud slinging ;) 03:49:27 I needed to, since Sybase connection initialisation was so slow. 03:50:06 loke: yeah, similar idea I had with SBCL for my crazy application server idea 03:50:22 Thank FSM for threads. :-) 03:51:11 p_l: I know about the meaning, but I'm infantile, so =p 03:51:18 have all of the common library etc. loaded into image, have a modified runtime load it with few tricks and preinit, then have it fork on demand, drop privileges and load user-specific code 03:51:31 (which would then start threads, too) 03:53:35 -!- kliph [~user@unaffiliated/kliph] has quit [Ping timeout: 252 seconds] 03:55:50 -!- ozialien [~ernest@ip98-167-234-126.ph.ph.cox.net] has quit [Quit: Leaving] 03:59:10 I just install sbcl 1.1.12 on windows, and for some reason it really, really wants to load contrib modules from the old (and delete) 1.1.8 directory 03:59:13 any ideas? 04:01:53 -!- lyanchih [~lyanchih@202.39.219.19] has quit [Quit: lyanchih] 04:05:54 -!- miercoledi [~miercoled@ip72-197-245-1.sd.sd.cox.net] has quit [Remote host closed the connection] 04:06:17 fortitude: some remining environment variable? .sbclrc? 04:07:06 I emptied that out, removed the quicklisp dir, and cleared out all the fasls from the cache 04:07:11 didn't seem to help much 04:07:19 might be a system environment variable, though 04:09:38 ggole [~ggole@106-68-112-72.dyn.iinet.net.au] has joined #lisp 04:11:06 francis_wolke [~user@c-98-207-155-161.hsd1.ca.comcast.net] has joined #lisp 04:15:14 -!- foreignFunction [~niksaak@ip-4761.sunline.net.ua] has quit [Quit: Leaving.] 04:16:01 Vutral [~ss@mirbsd/special/Vutral] has joined #lisp 04:28:39 normanrichards [~textual@70.114.215.220] has joined #lisp 04:35:05 -!- fridim__ [~fridim@bas2-montreal07-2925317577.dsl.bell.ca] has quit [Ping timeout: 260 seconds] 04:35:58 kushal [kdas@fedora/kushal] has joined #lisp 04:39:01 -!- normanrichards [~textual@70.114.215.220] has quit [] 04:40:34 -!- hba [~hba@189.130.37.38] has quit [Quit: leaving] 04:51:39 -!- oxum [~oxum@122.164.105.247] has quit [Quit: Bye..] 04:51:54 oxum [~oxum@122.164.105.247] has joined #lisp 04:59:59 gravicappa [~gravicapp@ppp91-77-166-185.pppoe.mtu-net.ru] has joined #lisp 05:02:38 lyanchih [~lyanchih@202.39.219.19] has joined #lisp 05:03:18 -!- rainbyte [~rainbyte@190.191.168.24] has quit [Quit: Leaving] 05:03:40 rainbyte [~rainbyte@190.191.168.24] has joined #lisp 05:03:59 -!- eigenlicht [~eigenlich@unaffiliated/eigenlicht] has quit [Ping timeout: 252 seconds] 05:06:55 k0001 [~k0001@host109.190-226-193.telecom.net.ar] has joined #lisp 05:07:20 eigenlicht [~eigenlich@unaffiliated/eigenlicht] has joined #lisp 05:09:13 qw3rtman [~qw3rtman@pool-71-252-177-42.dllstx.fios.verizon.net] has joined #lisp 05:10:18 -!- k0001_ [~k0001@host156.190-138-110.telecom.net.ar] has quit [Ping timeout: 252 seconds] 05:10:41 -!- yacks [~py@103.6.159.103] has quit [Quit: Leaving] 05:13:22 -!- motionman [~motionman@unaffiliated/motionman] has quit [Remote host closed the connection] 05:17:38 -!- mathrick [~mathrick@85.218.134.11] has quit [Ping timeout: 245 seconds] 05:17:55 -!- qw3rtman [~qw3rtman@pool-71-252-177-42.dllstx.fios.verizon.net] has quit [Ping timeout: 252 seconds] 05:19:43 -!- fortitude [~fortitude@cpe-74-78-191-26.twcny.res.rr.com] has quit [Quit: fortitude] 05:23:43 zeebrah [~zeebrah@unaffiliated/zeebrah] has joined #lisp 05:26:16 -!- zeebrah [~zeebrah@unaffiliated/zeebrah] has quit [Remote host closed the connection] 05:29:23 alezost [~user@128-70-197-79.broadband.corbina.ru] has joined #lisp 05:39:21 -!- oleo [~oleo@xdsl-87-79-198-156.netcologne.de] has quit [Quit: Leaving] 05:52:47 zeebrah [~zeebrah@unaffiliated/zeebrah] has joined #lisp 06:01:40 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 06:03:35 -!- echo-area [~user@182.92.247.2] has quit [Ping timeout: 246 seconds] 06:04:36 -!- nisstyre [~yours@oftn/member/Nisstyre] has quit [Quit: Leaving] 06:04:57 -!- bananagram [~bot@c-76-30-158-226.hsd1.tx.comcast.net] has quit [Read error: Operation timed out] 06:09:18 -!- MrWoohoo [~MrWoohoo@pool-74-100-140-127.lsanca.fios.verizon.net] has quit [Quit: ["Textual IRC Client: www.textualapp.com"]] 06:16:10 -!- bege [~bege@S0106001d7e5132b0.ed.shawcable.net] has quit [Quit: leaving] 06:23:48 s00pcan_ [~chris@108-208-64-149.lightspeed.livnmi.sbcglobal.net] has joined #lisp 06:27:40 -!- kushal [kdas@fedora/kushal] has quit [Quit: Leaving] 06:28:00 angavrilov [~angavrilo@217.71.227.190] has joined #lisp 06:29:36 -!- wormphlegm [~wormphleg@24.130.9.50] has quit [Ping timeout: 246 seconds] 06:30:59 wormphlegm [~wormphleg@24.130.9.50] has joined #lisp 06:32:29 hiroakip [~hiroaki@77-20-51-63-dynip.superkabel.de] has joined #lisp 06:36:14 -!- wormphlegm [~wormphleg@24.130.9.50] has quit [Ping timeout: 264 seconds] 06:37:16 wormphlegm [~wormphleg@24.130.9.50] has joined #lisp 06:37:47 Harag [~Thunderbi@ti-228-60-89.telkomadsl.co.za] has joined #lisp 06:39:02 -!- hiroakip [~hiroaki@77-20-51-63-dynip.superkabel.de] has quit [Read error: Operation timed out] 06:42:27 -!- wormphlegm [~wormphleg@24.130.9.50] has quit [Ping timeout: 272 seconds] 06:44:05 -!- Vivitron [~Vivitron@c-50-172-44-193.hsd1.il.comcast.net] has quit [Ping timeout: 252 seconds] 06:44:10 -!- Harag [~Thunderbi@ti-228-60-89.telkomadsl.co.za] has quit [Ping timeout: 245 seconds] 06:44:32 nisstyre [~yours@oftn/member/Nisstyre] has joined #lisp 06:45:20 -!- Kabaka [~Kabaka@botters/kabaka] has quit [Remote host closed the connection] 06:45:22 Harag [~Thunderbi@ti-228-60-89.telkomadsl.co.za] has joined #lisp 06:47:46 -!- Harag [~Thunderbi@ti-228-60-89.telkomadsl.co.za] has quit [Remote host closed the connection] 06:48:24 Kabaka [~Kabaka@botters/kabaka] has joined #lisp 06:50:19 -!- BlankVerse [~pankajm@202.3.77.238] has quit [Quit: leaving] 06:51:00 -!- bgs100 [~nitrogen@unaffiliated/bgs100] has quit [Quit: bgs100] 06:53:28 nug700_ [~nug700@71-35-57-61.phnx.qwest.net] has joined #lisp 06:53:29 -!- nug700 [~nug700@71-35-75-23.phnx.qwest.net] has quit [Ping timeout: 240 seconds] 06:53:59 Harag [~Thunderbi@ti-228-60-89.telkomadsl.co.za] has joined #lisp 06:57:10 Harag1 [~Thunderbi@ti-228-60-89.telkomadsl.co.za] has joined #lisp 06:58:01 trof1 [~trof@93.85.136.125] has joined #lisp 06:58:26 -!- Harag [~Thunderbi@ti-228-60-89.telkomadsl.co.za] has quit [Ping timeout: 264 seconds] 06:59:02 -!- trof [~trof@86.57.191.74] has quit [Ping timeout: 264 seconds] 06:59:36 -!- Harag1 [~Thunderbi@ti-228-60-89.telkomadsl.co.za] has quit [Read error: Connection reset by peer] 07:02:13 ramkrsna [ramkrsna@nat/redhat/x-xhgmjwudpogtcdtz] has joined #lisp 07:02:14 -!- ramkrsna [ramkrsna@nat/redhat/x-xhgmjwudpogtcdtz] has quit [Changing host] 07:02:14 ramkrsna [ramkrsna@unaffiliated/ramkrsna] has joined #lisp 07:08:07 wormphlegm [~wormphleg@24.130.9.50] has joined #lisp 07:10:42 -!- _5kg [~zifeitong@60.191.2.238] has quit [Read error: Connection reset by peer] 07:13:03 -!- wormphlegm [~wormphleg@24.130.9.50] has quit [Ping timeout: 252 seconds] 07:14:01 mishoo [~mishoo@93.113.190.121] has joined #lisp 07:16:52 -!- DataLinkDroid [~DataLinkD@110.150.67.216] has quit [Ping timeout: 256 seconds] 07:17:29 -!- seangrove [~user@c-69-181-197-122.hsd1.ca.comcast.net] has quit [Read error: Connection reset by peer] 07:19:34 jtza8 [~jtza8@105-237-71-197.access.mtnbusiness.co.za] has joined #lisp 07:21:59 -!- k0001 [~k0001@host109.190-226-193.telecom.net.ar] has quit [Read error: Operation timed out] 07:22:12 Harag [~Thunderbi@41.13.8.107] has joined #lisp 07:23:09 stassats [~stassats@wikipedia/stassats] has joined #lisp 07:23:20 -!- drmeister [~drmeister@pool-71-175-2-214.phlapa.fios.verizon.net] has quit [Remote host closed the connection] 07:25:38 desophos [~desophos@cpe-23-240-149-52.socal.res.rr.com] has joined #lisp 07:27:54 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 07:28:41 -!- nydel [nydel@gateway/shell/blinkenshell.org/x-esvvtdbsuuycszfa] has quit [Quit: Lost terminal] 07:29:00 nydel [nydel@gateway/shell/blinkenshell.org/x-jtczlkkjcnzvzvkm] has joined #lisp 07:31:43 -!- nisstyre [~yours@oftn/member/Nisstyre] has quit [Quit: Leaving] 07:32:46 -!- zRecursive [~czsq888@183.13.193.207] has quit [Remote host closed the connection] 07:32:46 xificurC [xificurC@nat/ibm/x-pccpediimlfsvkgt] has joined #lisp 07:32:56 echo-area [~user@182.92.247.2] has joined #lisp 07:34:04 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 07:34:54 -!- zacharias [~aw@unaffiliated/zacharias] has quit [Quit: Bye!] 07:36:30 DataLinkDroid [~DataLinkD@101.161.133.11] has joined #lisp 07:36:36 Beetny [~Beetny@ppp118-208-153-175.lns20.bne1.internode.on.net] has joined #lisp 07:39:19 trof [~trof@93.85.136.125] has joined #lisp 07:39:22 easye`` [~user@2a01:4f8:200:4310::30] has joined #lisp 07:39:22 -!- easye` [~user@2a01:4f8:200:4310::30] has quit [Read error: Connection reset by peer] 07:41:02 -!- trof1 [~trof@93.85.136.125] has quit [Ping timeout: 264 seconds] 07:41:03 -!- Mon_Ouie [~Mon_Ouie@subtle/user/MonOuie] has quit [Ping timeout: 264 seconds] 07:41:30 nenorbot [~ronen@bzq-79-183-117-215.red.bezeqint.net] has joined #lisp 07:44:28 -!- hiyosi [~skip_it@247.94.30.125.dy.iij4u.or.jp] has quit [Read error: Operation timed out] 07:49:37 -!- Harag [~Thunderbi@41.13.8.107] has quit [Ping timeout: 246 seconds] 07:51:06 Harag [~Thunderbi@41.13.4.48] has joined #lisp 07:51:20 _5kg [~zifeitong@60.191.2.238] has joined #lisp 07:51:48 -!- _5kg [~zifeitong@60.191.2.238] has quit [Client Quit] 07:52:04 _5kg [~zifeitong@60.191.2.238] has joined #lisp 07:56:14 easye [~user@2a01:4f8:200:4310::30] has joined #lisp 08:00:46 wormphlegm [~wormphleg@24.130.9.50] has joined #lisp 08:04:32 attila_lendvai [~attila_le@87.247.13.203] has joined #lisp 08:04:32 -!- attila_lendvai [~attila_le@87.247.13.203] has quit [Changing host] 08:04:32 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 08:05:41 -!- wormphlegm [~wormphleg@24.130.9.50] has quit [Ping timeout: 272 seconds] 08:06:28 zacharias [~aw@unaffiliated/zacharias] has joined #lisp 08:06:48 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Quit: mrSpec] 08:07:03 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 08:13:09 varjagg [~eugene@122.62-97-226.bkkb.no] has joined #lisp 08:13:55 -!- zacharias [~aw@unaffiliated/zacharias] has quit [Ping timeout: 265 seconds] 08:15:36 arenz [~arenz@37.17.234.253] has joined #lisp 08:18:33 Davidbrcz [~david@88.115.137.88.rev.sfr.net] has joined #lisp 08:20:37 QwertyDragon_ [~chatzilla@pool-71-174-212-30.bstnma.fios.verizon.net] has joined #lisp 08:21:24 -!- resttime [~rest@c-50-158-65-143.hsd1.il.comcast.net] has quit [Quit: resttime] 08:24:08 hiyosi [~skip_it@247.94.30.125.dy.iij4u.or.jp] has joined #lisp 08:24:16 hitecnologys [~hitecnolo@94.137.16.93] has joined #lisp 08:25:37 mvilleneuve [~mvilleneu@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has joined #lisp 08:26:48 -!- nug700_ [~nug700@71-35-57-61.phnx.qwest.net] has quit [Quit: bye] 08:32:07 -!- Davidbrcz [~david@88.115.137.88.rev.sfr.net] has quit [Ping timeout: 260 seconds] 08:32:23 przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has joined #lisp 08:36:11 joneshf-laptop [~joneshf@086.112-30-64.ftth.swbr.surewest.net] has joined #lisp 08:43:21 mathrick [~mathrick@94.144.63.84] has joined #lisp 08:50:34 -!- QwertyDragon_ [~chatzilla@pool-71-174-212-30.bstnma.fios.verizon.net] has quit [Quit: ChatZilla 0.9.87 [Iceape 2.7.12/20130119143918]] 08:54:23 klltkr [~klltkr@unaffiliated/klltkr] has joined #lisp 08:55:30 Joreji [~thomas@157-103.eduroam.rwth-aachen.de] has joined #lisp 08:59:10 -!- nenorbot [~ronen@bzq-79-183-117-215.red.bezeqint.net] has quit [Ping timeout: 245 seconds] 09:01:25 -!- klltkr [~klltkr@unaffiliated/klltkr] has quit [Quit: My MacBook has gone to sleep. ZZZzzz] 09:01:33 matko [~matko@ip82-139-127-72.lijbrandt.net] has joined #lisp 09:01:46 wormphlegm [~wormphleg@24.130.9.50] has joined #lisp 09:02:50 shridhar [Shridhar@nat/redhat/x-jmwrumrgbhsburat] has joined #lisp 09:02:54 QwertyDragon [~chatzilla@pool-71-174-212-30.bstnma.fios.verizon.net] has joined #lisp 09:04:40 -!- jtza8 [~jtza8@105-237-71-197.access.mtnbusiness.co.za] has quit [Ping timeout: 265 seconds] 09:06:50 -!- wormphlegm [~wormphleg@24.130.9.50] has quit [Ping timeout: 264 seconds] 09:07:08 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Ping timeout: 246 seconds] 09:08:21 anyone here happened to have some experience with both cl-zmq and lisp-zmq? opinions? 09:08:59 mc40 [~mcheema@146.255.107.122] has joined #lisp 09:09:53 -!- dfox [~dfox@94.142.237.120] has quit [Ping timeout: 240 seconds] 09:10:29 Code_Man` [~Code_Man@254-85.2-85.cust.bluewin.ch] has joined #lisp 09:11:52 drmeister [~drmeister@pool-71-175-2-214.phlapa.fios.verizon.net] has joined #lisp 09:12:16 dfox [~dfox@94.142.237.120] has joined #lisp 09:15:52 aerique: Which one is it that is called "zmq" in QL? 09:16:37 -!- drmeister [~drmeister@pool-71-175-2-214.phlapa.fios.verizon.net] has quit [Ping timeout: 252 seconds] 09:17:23 loke: cl-zmq according to this page: http://zeromq.org/bindings:cl 09:18:18 hm 09:18:27 # 09:18:27 # 09:18:41 I think I used the one called zeromq 09:18:42 Sgeo_ [~quassel@ool-ad034ea6.dyn.optonline.net] has joined #lisp 09:18:49 ck`` [~ck@dslb-094-219-255-002.pools.arcor-ip.net] has joined #lisp 09:18:54 attila_lendvai [~attila_le@87.247.13.214] has joined #lisp 09:18:54 -!- attila_lendvai [~attila_le@87.247.13.214] has quit [Changing host] 09:18:54 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 09:19:18 shifty` [~user@114-198-34-143.dyn.iinet.net.au] has joined #lisp 09:19:41 karswell` [~user@87.113.101.71] has joined #lisp 09:20:01 no complaints? 09:20:43 oxum_ [~oxum@122.164.105.247] has joined #lisp 09:21:25 acieroid` [~acieroid@wtf.awesom.eu] has joined #lisp 09:21:34 mc40_ [~mcheema@146.255.107.122] has joined #lisp 09:21:37 blacklab` [~user@c-76-21-124-173.hsd1.ca.comcast.net] has joined #lisp 09:21:55 sjl- [~sjl@li136-50.members.linode.com] has joined #lisp 09:22:26 jking [~jking@mortar.walled.net] has joined #lisp 09:22:27 Joreji_ [~thomas@157-103.eduroam.rwth-aachen.de] has joined #lisp 09:22:35 Sourcele1s_ [~Sourceles@milan.cs.york.ac.uk] has joined #lisp 09:22:43 jasom_ [~aidenn@ip70-191-80-19.sb.sd.cox.net] has joined #lisp 09:22:53 GuilOooo_ [~GuilOooo@mlir.info] has joined #lisp 09:22:53 -!- kcj [~casey@unaffiliated/kcj] has quit [Disconnected by services] 09:23:15 kcj [~casey@unaffiliated/kcj] has joined #lisp 09:25:46 nbouscal_ [nbouscal@gateway/shell/ircrelay.com/x-ijxkqlnmgbgwefrf] has joined #lisp 09:25:51 iwilcox_ [~iwilcox@unaffiliated/iwilcox] has joined #lisp 09:26:55 -!- Code_Man` [~Code_Man@254-85.2-85.cust.bluewin.ch] has quit [*.net *.split] 09:26:56 -!- mc40 [~mcheema@146.255.107.122] has quit [*.net *.split] 09:26:56 -!- Joreji [~thomas@157-103.eduroam.rwth-aachen.de] has quit [*.net *.split] 09:26:56 -!- hitecnologys [~hitecnolo@94.137.16.93] has quit [*.net *.split] 09:26:56 -!- _5kg [~zifeitong@60.191.2.238] has quit [*.net *.split] 09:26:56 -!- oxum [~oxum@122.164.105.247] has quit [*.net *.split] 09:26:56 -!- michael_lee [~michael_l@117.22.207.23] has quit [*.net *.split] 09:26:56 -!- blacklabel [~user@c-76-21-124-173.hsd1.ca.comcast.net] has quit [*.net *.split] 09:26:56 -!- ASau [~user@p54AFEEE1.dip0.t-ipconnect.de] has quit [*.net *.split] 09:26:56 -!- antgreen [~green@dsl-173-206-82-201.tor.primus.ca] has quit [*.net *.split] 09:26:56 -!- Sgeo [~quassel@ool-ad034ea6.dyn.optonline.net] has quit [*.net *.split] 09:26:56 -!- peccu [~peccu@KD106179020073.ppp-bb.dion.ne.jp] has quit [*.net *.split] 09:26:56 -!- shifty [~user@114-198-34-143.dyn.iinet.net.au] has quit [*.net *.split] 09:26:56 -!- GuilOooo [~GuilOooo@mlir.info] has quit [*.net *.split] 09:26:56 -!- entitativity [~entity@c-24-6-95-92.hsd1.ca.comcast.net] has quit [*.net *.split] 09:26:56 -!- jewel [~jewel@105-236-138-104.access.mtnbusiness.co.za] has quit [*.net *.split] 09:26:56 -!- screak [~retrace@wrongplanet/CrazyEddy] has quit [*.net *.split] 09:26:56 -!- Sourceless [~Sourceles@milan.cs.york.ac.uk] has quit [*.net *.split] 09:26:56 -!- iwilcox [~iwilcox@unaffiliated/iwilcox] has quit [*.net *.split] 09:26:56 -!- nbouscal [nbouscal@gateway/shell/ircrelay.com/x-blzhuqjfdrxhajsj] has quit [*.net *.split] 09:26:56 -!- karswell [~user@87.113.101.71] has quit [*.net *.split] 09:26:56 -!- jasom [~aidenn@ip70-191-80-19.sb.sd.cox.net] has quit [*.net *.split] 09:26:56 -!- sjl [~sjl@li136-50.members.linode.com] has quit [*.net *.split] 09:26:56 -!- eli [~eli@racket/eli] has quit [*.net *.split] 09:26:56 -!- j_king [~jking@mortar.walled.net] has quit [*.net *.split] 09:26:56 -!- aajmakin [aajmakin@kosh.org.aalto.fi] has quit [*.net *.split] 09:26:56 -!- Krystof [~user@81.174.155.115] has quit [*.net *.split] 09:26:56 -!- newcup [newcup@peruna.fi] has quit [*.net *.split] 09:26:56 -!- acieroid [~acieroid@wtf.awesom.eu] has quit [*.net *.split] 09:27:13 -!- oxum_ is now known as oxum 09:27:13 -!- iwilcox_ is now known as iwilcox 09:27:13 -!- nbouscal_ is now known as nbouscal 09:27:47 aajmakin [aajmakin@kosh.org.aalto.fi] has joined #lisp 09:27:59 -!- mc40_ is now known as mc40 09:29:04 ASau` [~user@p54AFEEE1.dip0.t-ipconnect.de] has joined #lisp 09:29:41 i'd like to register a complaint concerning the naming, why is it zeromq, but cl-zmq? 09:30:17 It was hard to use, so it should be hard to pronounce. 09:31:55 -!- zophy [~sy@host-94-20-107-208.midco.net] has quit [Ping timeout: 272 seconds] 09:33:11 jewel [~jewel@105-236-138-104.access.mtnbusiness.co.za] has joined #lisp 09:33:11 entitativity [~entity@c-24-6-95-92.hsd1.ca.comcast.net] has joined #lisp 09:33:27 screak [~ibota@wrongplanet/CrazyEddy] has joined #lisp 09:33:45 Code_Man` [~Code_Man@254-85.2-85.cust.bluewin.ch] has joined #lisp 09:34:33 hitecnologys [~hitecnolo@94.137.16.93] has joined #lisp 09:34:35 michael_lee [~michael_l@117.22.207.23] has joined #lisp 09:34:35 antgreen [~green@dsl-173-206-82-201.tor.primus.ca] has joined #lisp 09:35:16 peccu [~peccu@KD106179020073.ppp-bb.dion.ne.jp] has joined #lisp 09:35:41 _5kg [~zifeitong@60.191.2.238] has joined #lisp 09:35:41 Krystof [~user@81.174.155.115] has joined #lisp 09:36:05 simbrown [~sbrown@87-194-181-195.bethere.co.uk] has joined #lisp 09:38:54 -!- gravicappa [~gravicapp@ppp91-77-166-185.pppoe.mtu-net.ru] has quit [Read error: Connection reset by peer] 09:40:00 that wouldn't put PostgreSQL in very good lights 09:40:42 aerique: I have complaints all right 09:40:46 aerique: I never got it to work 09:41:39 stassats: It's not just zeriomq. Other projects have the same problem. You can see projects in the QL system list which, when you quickload them, has a completely different name 09:42:11 commonqt does that 09:42:15 but at least i'm not the one to blame 09:43:34 stassats: hi! did you use or play with the qmynd pure-lisp MySQL driver yet? it's at https://github.com/qitab/qmynd 09:43:53 do i look like i would use mysql? 09:44:04 no 09:44:14 but there's quite a good performance work to do here 09:44:28 it's twice as slow as the CFFI based driver in my simple testing 09:44:52 so I would have enjoyed to read "oh yes the code does that crappy thing that needs fixing" 09:45:55 which part is slow? 09:46:10 I don't know yet 09:46:43 read-fixed-length-integer, i would make specific versions, read-fixed-length-integer-2/3/4/8 09:46:48 ok thanks, i'll go give lisp-zmq a try first then 09:46:53 with unrolled loops 09:47:21 that, and I do wonder about the flexi-streams:with-input-from-sequence business 09:47:25 -!- harish [harish@nat/redhat/x-oldxxxxtpytlsasg] has quit [Ping timeout: 252 seconds] 09:47:40 stassats: i've run into the quicklisp naming differences as well with other packages as well, it is confusing 09:47:44 if I follow correctly, its input at this point is a sequence 09:47:59 it turns it into a stream to be able to easily do read-byte et al 09:48:04 then gets back a sequence again 09:48:18 I'm thinking it should just work on array positions 09:48:20 that's not going to be especially fast 09:48:29 flexi-streams, that is 09:48:38 that's my suspicion 09:49:11 i guess i can add rename qt.asd to commonqt.asd, and make qt.asd depend on commonqt, and rename the package from qt to commonqt with a qt nickname 09:49:20 I'm glad your thinking the same way and I know it before I rewrite that whole part to only walk the array rather than use a stream over it 09:50:04 you told be once that displayed arrays are somewhat slow, do I remember that correctly? 09:50:19 extremely slow, not somewhat 09:50:44 ok, so I would mark the positions I'm interested into from the source array, then copy the subsequence? 09:50:56 copying is slow! 09:51:10 yeah I know, but displayed arrays are not the solution... what is? 09:51:12 and which operation are you describing? 09:51:48 parse-column 09:52:07 -!- przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has quit [Quit: leaving] 09:52:15 przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has joined #lisp 09:52:22 and about read-fixed-length-integer again, keyword arguments are a sure way to make things slow 09:52:40 dim: what does it do? 09:52:47 sorry, read-length-encoded-string is what I'm worried about 09:53:17 it takes a stream for no good reason that I can see 09:53:32 I want to change its API to work directly on the sequence of bytes we got from the protocol 09:54:10 you are connecting via a socket, aren't you? 09:54:22 yes 09:54:42 that's going to be hard to get rid of streams 09:54:49 well, I didn't write qmynd in the first place, I just want to happily use it and added a "streaming" (map-fn) API to it 09:55:19 blacklabel [~user@c-76-21-124-173.hsd1.ca.comcast.net] has joined #lisp 09:55:27 you could read directly from buffers, but that's usually implementation dependent, and provides problems like a string straddling several buffers, etc. 09:56:48 newcup [newcup@peruna.fi] has joined #lisp 09:57:14 hlavaty [~user@friedrichstrasse.knowledgetools.de] has joined #lisp 09:57:41 but read-sequence is usually enough 09:57:44 so the driver uses a stream to handle the protocol communications 09:58:06 and read-wire-packet is doing the read-sequence dance on that 09:58:29 so that (mysql-read-packet) returns a sequence of bytes 09:58:58 oh, also (make-array 0 :element-type '(unsigned-byte 8) :adjustable t) 09:59:16 my understanding is that it's faster to build the array when you know its length, righ? 09:59:31 they do make-array, then (adjust-array payload (+ pos length)) 09:59:42 right 09:59:52 or you know its upper bound, you can then trim it 10:00:09 -!- jewel [~jewel@105-236-138-104.access.mtnbusiness.co.za] has quit [Ping timeout: 252 seconds] 10:00:13 (loop do (setf pos (read-sequence payload stream :start pos)) 10:00:13 until (= pos (length payload))) 10:00:21 wow, it looks like it's been built to be slow 10:00:36 or I really need to better understand something else again 10:00:57 -!- blacklabel [~user@c-76-21-124-173.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 10:02:51 looks a single payload may take several packets, but collecting all the vectors into a list and concatenating them together at the end will be faster than extensible arrays 10:02:57 wormphlegm [~wormphleg@24.130.9.50] has joined #lisp 10:03:01 ok they actually read chunks at a time, each chunk has a length, a sequence id, and a payload, and the driver pack together all the chunks into a single "packet" 10:03:50 so a list of chunks read, then (apply concatenate 'vector chunks) 10:04:20 most packets will be small, i assume, and you can know ahead of time that it's going to be a single packet, so, it can be fast 10:07:10 -!- wormphlegm [~wormphleg@24.130.9.50] has quit [Ping timeout: 246 seconds] 10:07:43 -!- QwertyDragon [~chatzilla@pool-71-174-212-30.bstnma.fios.verizon.net] has quit [Quit: ChatZilla 0.9.87 [Iceape 2.7.12/20130119143918]] 10:07:45 I still don't get the why of the inner loop in read-wire-packet 10:09:34 -!- hex-code [~hex-code@123.237.137.209] has quit [Ping timeout: 272 seconds] 10:10:10 Is there a way to execute custom code when hunchentoot closes connection? 10:14:11 dim: try http://paste.lisp.org/display/140286 10:14:19 hitecnologys: yes 10:14:39 stassats: thanks so much, I was just getting started ;-) 10:14:40 apply #'concatenate is wrong, but i wasn't excited to write a good concatenator 10:14:59 and (error (make-instance 'unexpected-sequence-id)) is doubly wrong 10:15:17 first, you can't use make-instance on conditions, second, it's just (error 'unexpected-sequence-id) 10:15:45 loke: I want to forbid two clients to log in with the same account at the same time, how can I do this? 10:15:53 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Ping timeout: 272 seconds] 10:15:54 hitecnologys: You can' 10:15:55 t 10:16:19 The best you can do is to use the sessions 10:16:36 assert is now going to signal the condition, right? 10:16:38 But then you need to have the users to explicitly log out (or set the session timeout to some short value) 10:16:45 dim: yes 10:16:48 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 10:17:16 loke: why can't I remove session after connection is closed? 10:17:29 loke: I mean manually remove it. 10:17:41 and in read-single-packet I can see what I expected to find, a single read-sequence on a sequence of the proper length, I still don't understand the extra inner loop in the previous coding 10:17:41 it would have been better if mysql encoded the whole length upfront 10:17:58 hitecnologys: Because this is HTTP we're talking about. The connection may very well be closed immediately after every reqsource load 10:17:59 so many things would have been better if mysql were properly implemented, yes 10:18:31 loke: nah, it's OK to make all clients use keep-alive in my case. 10:18:35 dim: Same goes for PHP ,but this is the world we live in 10:18:40 read-sequence may read less than specified 10:18:47 hitecnologys: You can't guarnatee that 10:18:58 hitecnologys: and a single client can open multiple connections 10:19:20 but that can happen only if end-of-file is encountered 10:19:27 loke: of course I can, I'm the one who writes these clients so I can do whatever I want. 10:22:50 hitecnologys: then, can't you just write a logout message then? 10:23:10 loke: but at least we also have PostgreSQL and Common Lisp 10:23:49 dim: Anyway, here's what I do to pick up disconnects from the client side in hunchentoot: 10:23:49 http://paste.lisp.org/display/140287 10:24:01 loke: yeah, that sounds like a good way to do this but what if client's connection suddenly drops for unknown reason? 10:24:12 hitecnologys: see above 10:24:28 dim: http://paste.lisp.org/display/140286#1 10:24:43 I do that to silence the Hunchentoot log (since I have long-lived clients (push-messages), I ted to get a lot of them) 10:25:26 zickzackv [~faot@p5DDB1E01.dip0.t-ipconnect.de] has joined #lisp 10:25:44 loke: OK, thanks. I'll try that. 10:27:03 alexherbo2 [~alexherbo@APlessis-Bouchard-154-1-61-104.w90-3.abo.wanadoo.fr] has joined #lisp 10:27:11 (make-array unknown :element-type '(unsigned-byte 8)) shouldn't really be a full-call to make-array, (%make-array length saetp-code) would be better 10:27:22 Ayey_ [~rune1@195.254.169.69] has joined #lisp 10:28:45 well I'm debugging it now and it's complaining that NIL is not an (unsigned-byte 8), after that I think that the column parsing needs redoing, and then maybe micro optimisations need to happen 10:29:13 the original retuned two values 10:30:02 protist [~protist@150.224.69.111.dynamic.snap.net.nz] has joined #lisp 10:30:25 oh my problem is actually in write-byte 10:30:25 aftershave [~textual@h-238-41.a336.priv.bahnhof.se] has joined #lisp 10:30:35 maybe related to my no-passwd patch from yesterday 10:33:46 mmm, sequence-id problem 10:35:00 -!- lyanchih [~lyanchih@202.39.219.19] has quit [Ping timeout: 245 seconds] 10:35:15 stassats: where is your +max-packet-length+ comming from? 10:35:42 from http://paste.lisp.org/display/140286 10:35:54 pavelpenev [~quassel@melontech.com] has joined #lisp 10:36:21 yeah but I mean, it looks like the loop over packets is always needed, and you basically did force disable it 10:36:47 it's not always needed 10:37:42 Karl_dscc [~localhost@p5DD9F822.dip0.t-ipconnect.de] has joined #lisp 10:38:13 ah yeah, misread the original code 10:38:15 but, there's a mistake for the termination test 10:39:22 there should be "until (< length +max-packet-length+)" before finally 10:39:52 also I'm unclear that you can't actually have an empty packet in the middle of the batch 10:40:01 I think the previous coding did cater for that 10:40:14 -!- Joreji_ [~thomas@157-103.eduroam.rwth-aachen.de] has quit [Ping timeout: 272 seconds] 10:40:24 empty packet indicates the end of a series of packets 10:40:53 mmm, right 10:41:12 which is only needed if the packet size is exactly +max-packet-length+ 10:41:52 yeah, the before-to-last one in the series 10:42:10 and i wouldn't probably read all the packets at once 10:42:57 i would have just thrown away everything that qmynd has, and rewritten it from scratch 10:43:12 if i wanted to make it fast, that is 10:43:17 well I can spend some hours on it, not a week 10:43:33 but if you have the time to do so, I would use your driver 10:43:51 i'm not going to, since i can't care less about mysql 10:44:16 i'm going to optimize make-array, now, that's fun 10:44:21 what's your rate? (mesg then mayne) ;-) 10:46:33 -!- Ayey_ [~rune1@195.254.169.69] has quit [Ping timeout: 246 seconds] 10:47:42 and (make-array x) can go straight to sb-kernel:allocate-vector, since the word size is equal to the vector length 10:47:44 -!- heddwch is now known as hedd_passes_out 10:47:54 and, that makes it twice as fast 10:48:21 in the general case or just the "unknown" bits I didn't grasp? 10:48:41 unknown length 10:48:57 Vivitron [~Vivitron@c-50-172-44-193.hsd1.il.comcast.net] has joined #lisp 10:49:49 zacharias [~aw@unaffiliated/zacharias] has joined #lisp 10:50:34 Ayey_ [~rune1@195.254.169.69] has joined #lisp 10:50:42 I didn't know you could actually make-array without a proper dimensions argument 10:51:14 it is a proper argument 10:51:19 just not known at c-t 10:51:33 ah yeah makes sense 10:51:36 finally 10:51:54 ARGS-AND-VALUES = ((QMYND-IMPL::EXPECTED-SEQUENCE-ID 20) (QMYND-IMPL::FIRST-ID 153)) 10:51:56 nice. 10:52:52 just that sbcl can compute things like, which type code should the array use, and by how much should it multiply/truncate the length to know the how much memory to use 10:53:18 that's why it's twice as fast, it doesn't have to do that 10:53:55 I'm going to move the special one-loop case from read-wire-packet down to concatenator to try and fix that sequence-id bug 10:53:57 now to find a nice way for fractional lengths 10:59:40 -!- protist [~protist@150.224.69.111.dynamic.snap.net.nz] has quit [Quit: Konversation terminated!] 11:00:55 drmeister [~drmeister@pool-71-175-2-214.phlapa.fios.verizon.net] has joined #lisp 11:02:17 jk121960 [~jk121960@108-89-22-112.lightspeed.cicril.sbcglobal.net] has joined #lisp 11:03:27 zophy [~sy@host-94-20-107-208.midco.net] has joined #lisp 11:04:03 wormphlegm [~wormphleg@24.130.9.50] has joined #lisp 11:05:27 -!- drmeister [~drmeister@pool-71-175-2-214.phlapa.fios.verizon.net] has quit [Ping timeout: 246 seconds] 11:08:43 -!- wormphlegm [~wormphleg@24.130.9.50] has quit [Ping timeout: 272 seconds] 11:08:45 and (sb-kernel:allocate-vector 141 (the sb-int:index x) (ceiling x 8)) is 75 times faster than (make-array x :element-type '(unsigned-byte 8)) 11:10:00 wow 11:10:19 so apparently I can't debug the sequence mismatch I have 11:11:06 yacks [~py@103.6.159.103] has joined #lisp 11:11:21 unless that internal loop is actually needed 11:11:41 protist [~protist@150.224.69.111.dynamic.snap.net.nz] has joined #lisp 11:11:46 you can add an assertion to check 11:11:53 I'm doing os 11:11:56 (assert (= (read-sequence ...) length)) 11:11:59 (assert (= length (read-sequence vector stream))) 11:12:05 I had that already written;-) 11:12:36 with LENGTH = 36494, #1# = 15504. 11:12:54 #1# is what read-sequence returned 11:13:01 jewel [~jewel@105-236-86-68.access.mtnbusiness.co.za] has joined #lisp 11:13:18 stepnem [~stepnem@internet2.cznet.cz] has joined #lisp 11:15:07 fixed it 11:15:19 (loop for pos = 0 then (read-sequence vector stream :start pos) until (= pos length)) 11:15:24 i would have expected it to block, not signal an EOF 11:16:55 -!- Ayey_ [~rune1@195.254.169.69] has quit [Quit: WeeChat 0.4.2] 11:19:56 http://paste.lisp.org/display/140286#2 11:20:25 moving the special case (single packet read) down to concatenate-vectors is marginally faster here 11:20:46 btw the test case is easy enough to reprodude it you would be interested 11:21:14 well "easy enough" actually, only true if you have both MySQL and PostgreSQL around 11:21:24 -!- protist [~protist@150.224.69.111.dynamic.snap.net.nz] has quit [Quit: Konversation terminated!] 11:21:52 no, i don't need a test case 11:22:11 Shinmera [~linus@xdsl-188-155-176-171.adslplus.ch] has joined #lisp 11:22:59 yeah I'm not surprised ;-) 11:23:17 -!- kcj [~casey@unaffiliated/kcj] has quit [Ping timeout: 272 seconds] 11:23:32 so it only helps a litte what we did here, going on the the column parsing bits with intermediate streams built from sequences 11:23:42 i just don't consider it to be a problem, just not something i expected 11:24:11 getting rid of all the &keys would be a good step 11:24:21 and rewriting read-fixed-length-integer 11:26:58 nenorbot [~ronen@IGLD-84-229-58-87.inter.net.il] has joined #lisp 11:30:24 it's even doing setf on the &key parameters... 11:30:39 I don't want to rewrite it all, trying to just get it back to reasonable perfs 11:30:40 that's not a problem 11:30:46 the problem is parsing them 11:30:53 twice as slow is not acceptable 11:31:19 if you say it's a major slowdown I will see about removing them yes 11:33:39 -!- desophos [~desophos@cpe-23-240-149-52.socal.res.rr.com] has quit [Ping timeout: 252 seconds] 11:34:52 it can be, especially if there's a lot of keywords 11:35:06 noted 11:35:12 lyanchih [~lyanchih@218-161-3-130.HINET-IP.hinet.net] has joined #lisp 11:35:22 gravicappa [~gravicapp@80.90.116.82] has joined #lisp 11:38:25 so I have that vector where I'm reading bytes from, it's a row and I'm building a list of column values 11:39:04 the caller wants a list of strings (in my case) or a list of proper CL objects parsed from the bytes 11:39:14 copying is slow, displaced arrays too 11:39:31 how would you expose the list of column values then? 11:40:15 sometimes you can't avoid copying 11:41:18 but if you have a large string and want to split it into substrings, another way is to have the string and a list of lengthts, or of bounding indices 11:41:56 that is, if what you pass it to can work with a large string just using bounding indices 11:42:01 yeah that's the idea that always works, was wondering about CL tricks that you might have 11:42:14 -!- antgreen [~green@dsl-173-206-82-201.tor.primus.ca] has quit [Ping timeout: 265 seconds] 11:42:25 the main user is (loop for i from 0 below column-count for str = (read-length-encoded-string s :null-ok t) collect (parse-column str (aref column-definitions i))) 11:42:54 have you profiled that thing? 11:42:56 so we could easily enough replace read-length-encoded-string by a function retuning the bounding indices there 11:43:01 nope 11:43:42 too bad 11:43:56 well I could be doing so... 11:44:15 if I did remember the sbcl incantations (looking at the docs) 11:46:56 -!- GuilOooo_ is now known as GuilOooo 11:48:04 it's running, I asked for 100 samples, I didn't check *sample-interval* before hand 11:48:19 M-x slime-sprof-start is usually enough 11:48:21 0.01 11:48:41 followed by M-x slime-sprof-report 11:48:46 well I didn't remember about that one, so I did a sb-sprof:with-profiling 11:51:16 hex-code [~hex-code@123.237.137.209] has joined #lisp 11:57:48 antgreen [~green@dsl-173-206-82-201.tor.primus.ca] has joined #lisp 11:59:04 does anyone have a recommendation for a web framework that's suitable for use by a student? Primary desiderata: documented, not too volatile 11:59:50 what do you mean by framework? 12:00:08 I'm using hunchentoot, and heard good things about clack 12:00:23 http://clacklisp.org/ 12:00:37 jtza8 [~jtza8@105-237-71-197.access.mtnbusiness.co.za] has joined #lisp 12:02:55 I wonder if my profiling run will actually terminates 12:03:16 -!- Karl_dscc [~localhost@p5DD9F822.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 12:04:11 wormphlegm [~wormphleg@24.130.9.50] has joined #lisp 12:07:55 -!- Harag [~Thunderbi@41.13.4.48] has quit [Ping timeout: 246 seconds] 12:09:18 -!- pavelpenev [~quassel@melontech.com] has quit [Ping timeout: 265 seconds] 12:09:19 -!- wormphlegm [~wormphleg@24.130.9.50] has quit [Ping timeout: 246 seconds] 12:09:35 pavelpenev [~quassel@melontech.com] has joined #lisp 12:10:21 Harag [~Thunderbi@41.13.4.48] has joined #lisp 12:14:37 1 952 99.7 952 99.7 952 99.7 - "foreign function __select" 12:15:31 ehu [~ehu@46.44.153.152] has joined #lisp 12:15:56 hs366 [~hs366@c-219-186.netlogon.liu.se] has joined #lisp 12:16:19 Is that 99.7% of runtime? :o 12:16:32 appears to be 12:16:48 trying to make sense of the report 12:17:02 18 0 0.0 952 99.7 955 100.0 - SB-IMPL::TOPLEVEL-REPL 12:17:22 I guess it's waiting on I/O all the time? Does it talk to a remote socket by any chance? 12:17:32 with things like that where I only sent two commands on the repl while profiling (the same, twice) 12:17:38 ggole: yes it does 12:17:52 but even then, it's twice as slow as the CFFI counterpart 12:18:11 so there's something eating up time that's not just the socket, I would guess 12:18:23 Seems a bit suspicious 12:18:38 -!- ehu [~ehu@46.44.153.152] has quit [Remote host closed the connection] 12:18:51 http://paste.lisp.org/display/140289 12:19:18 I'm not sure how to read that really 12:19:30 ehu [~ehu@46.44.153.152] has joined #lisp 12:20:03 Looks like it spends the majority of time waiting at the repl for user input 12:20:11 I just added the meta-data (like Total sampling time: 9.55 seconds) 12:20:23 well the main thread does 12:20:41 or maybe it doesn't know how to profile the right thread? 12:21:00 Yeah, it could just be looking at the waiting thread 12:21:04 I could inject start/stop profiling within my code? 12:22:49 that didn't do it. 12:22:50 "In multi-threaded operation, only the thread in which with-profiling was evaluated will be profiled by default. If you want to profile multiple threads, invoke the profiler with start-profiling." 12:23:19 I just did that, from within the working thread 12:23:35 of course new threads get started several times in my test here 12:23:52 but as I didn't reset the profiling information I supposed I could get back a report from the repl thread then 12:23:56 apparently not 12:24:19 -!- ehu [~ehu@46.44.153.152] has quit [Remote host closed the connection] 12:24:32 Hmm 12:24:50 ehu [~ehu@46.44.153.152] has joined #lisp 12:26:52 dim: you need to pass :threads :all 12:27:24 -!- ehu [~ehu@46.44.153.152] has quit [Client Quit] 12:28:51 or you could just use slime-sprof and be merry 12:30:51 it's not working here, protocol problem when talking with swank 12:31:01 -!- przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has quit [Ping timeout: 246 seconds] 12:31:50 what protocol problem? 12:32:51 Invalid protocol message: Symbol "SWANK-SPROF-START" not found in the SWANK package. 12:33:46 you have to enable the slime-sprof contrib 12:34:03 I did (require 'slime-sprof) on the emacs side 12:34:13 which is wrong 12:34:17 echo-are` [~user@182.92.247.2] has joined #lisp 12:34:22 you need (slime-setup '(slime-sprof)) 12:34:31 http://www.lispworks.com/documentation/HyperSpec/Issues/iss342.htm <-- huh, does anyone know why it was retracted? The issue itself has the status of PASSED in '89 12:35:43 -!- echo-area [~user@182.92.247.2] has quit [Ping timeout: 252 seconds] 12:36:14 so, with slime, same report that looks like only knowing about the main thread 12:37:11 it profiles all threads by default 12:37:31 then maybe lparallel is doing something funky to its abilities 12:39:10 i doubt that 12:39:50 a loop of 8 read-byte is best done with a single read-sequence on a simple-array of 8 elements, right? 12:40:21 not necessarily 12:40:42 your threads might not be doing enough work to get noticed by the profiler 12:42:37 I create plenty of threads each running for 0.02s up to 1.3s in that test 12:42:42 that must be it then 12:45:24 would SBCL already have code to trasnform a vector of 8 bytes (little endian ordering) into a single fixnum? 12:46:55 sb-kernel:%vector-raw-bits 12:47:14 paul0 [~paul0@200.146.124.156.dynamic.adsl.gvt.net.br] has joined #lisp 12:47:15 that won't be necessarily a fixnum 12:47:45 and that's only on x86-64 12:48:50 mmm, ok, I would still need something portable anyways 12:49:49 -!- prxq_ is now known as prxq 12:49:49 drmeister [~drmeister@pool-71-175-2-214.phlapa.fios.verizon.net] has joined #lisp 12:50:26 -!- Beetny [~Beetny@ppp118-208-153-175.lns20.bne1.internode.on.net] has quit [Ping timeout: 272 seconds] 12:50:36 dim: what do you want to do ? 12:51:03 fe[nl]ix: optimize the qmynd mysql driver 12:51:14 -!- antgreen [~green@dsl-173-206-82-201.tor.primus.ca] has quit [Ping timeout: 264 seconds] 12:51:37 what's slow about it ? 12:52:17 "all" 12:52:32 it's twice as slow as the CFFI driver (cl-mysql) 12:52:33 -!- echo-are` [~user@182.92.247.2] has quit [Remote host closed the connection] 12:53:03 have you compared postmodern and libpq ? 12:54:20 dim: where is the qmynd source code ? 12:54:21 nope 12:54:24 -!- drmeister [~drmeister@pool-71-175-2-214.phlapa.fios.verizon.net] has quit [Ping timeout: 260 seconds] 12:54:29 https://github.com/qitab/qmynd 12:58:52 -!- acieroid` is now known as acieroid 12:59:39 I'm looking at basic-types.lisp 12:59:45 that code is really bad 13:00:00 yeah I'm working on it now 13:00:28 given how bad it looks even to me, I'm not sure how much of a profiler I need really 13:01:53 if the length and signed args to read-fixed-length-integer are known at compile-time you could turn that function into a compiler-macro 13:02:52 they are not IIUC 13:03:22 the first thing is that there's actually no need to work from a stream, because the input is a sequence of bytes 13:03:32 (that we got from the network stream) 13:03:49 that's how i read integers: https://github.com/stassats/storage/blob/master/io-generic.lisp#L8 13:04:15 so I'm going to rewrite that parts so that it works on the bytes received, not doing extra copies for integers, and doing copies for strings or other datums at the last time 13:05:16 thanks stassats 13:05:23 wormphlegm [~wormphleg@24.130.9.50] has joined #lisp 13:10:45 dim: if you want to change qmynd to use static-vectors, you can safely use FFI operators on the resulting (unsigned-byte 8) array 13:10:57 -!- wormphlegm [~wormphleg@24.130.9.50] has quit [Ping timeout: 272 seconds] 13:11:33 kobain [~sambio@unaffiliated/kobain] has joined #lisp 13:11:45 do I need to do FFI here? 13:12:32 if you have an octet array and you need to read integers of different length it's easier to take the array's address and use FFI operations 13:12:42 then bump an offset 13:12:53 more or less like you'd do in C 13:13:03 Can (print -) be counted as shortest possible quine in Lisp or it's just a dirty trick? 13:13:07 I'm not I understand what you mean by FFI operation here 13:13:23 hitecnologys: it works only at the repl 13:13:47 dim: that's why I wrote https://github.com/sionescu/static-vectors 13:14:05 stassats: indeed. 13:15:22 dim: instead of accessing the array using aref, you take foreign pointer to the array and use cffi:mem-aref 13:15:54 round-robin [~bubo@91.224.149.58] has joined #lisp 13:15:55 there are still endianness issues left 13:16:12 dim: cffi:mem-ref actually, for this use case 13:16:29 that's why we have swap-bytes 13:17:10 swap-bytes is going to be fast only on x86oids on ccl and sbcl 13:17:25 ffi + swap-bytes compiles to faster code than composing integers octet by octet 13:18:13 that's correct, but in the worst case it's like what you have in io-generic.lisp 13:18:26 in the common case(sbcl) it's way faster 13:18:32 thanks to your VOPs 13:18:34 :) 13:19:18 i of course have https://github.com/stassats/storage/blob/master/io-sbcl.lisp which includes a reimplementation of streams 13:19:39 Boils down to a bswap, does it? 13:19:49 ggole: it does 13:20:19 *ggole* approves 13:20:43 ggole: https://github.com/sionescu/swap-bytes/blob/master/sbcl-vops.lisp 13:20:44 przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has joined #lisp 13:23:09 Oh, it even handles 16-bit quantities nicely. Thoughtful. 13:24:19 x86-64 is not that nice, xchg would have worked there, but sbcl doesn't allow you to encode AH/CH/BH there 13:24:42 and i didn't fill like hard-coding them 13:26:35 It probably doesn't matter much, but are the register constraints "hard", or can they turn into memory refs if the allocator has to spill? 13:27:01 I ask because xchg with memory argument has an implicit lock prefix, which can be expensive. 13:28:11 the vops above only work on registers 13:28:41 drmeister [~drmeister@pool-71-175-2-214.phlapa.fios.verizon.net] has joined #lisp 13:29:22 Of course, it's got explicit moves to eax 13:29:26 Silly question. 13:30:47 probably because i was to lazy to do a register->xh mapping, and then some registers don't have them at all 13:31:45 -!- jewel [~jewel@105-236-86-68.access.mtnbusiness.co.za] has quit [Ping timeout: 246 seconds] 13:32:45 Joreji [~thomas@157-103.eduroam.rwth-aachen.de] has joined #lisp 13:34:30 vaporatorius [~vaporator@248.Red-83-54-167.dynamicIP.rima-tde.net] has joined #lisp 13:36:32 loke` [~user@2400:d803:7342:f91a:35d2:f08a:ef54:335d] has joined #lisp 13:39:04 I begin to wonder about writing a new driver, when I see the amount of work I'm engaging myself into 13:40:10 some of you have experience with cl-mysql or CFFI in general? my current understanding is that the mysql.so client lib will store whole resultset in memory, I want to avoid that 13:40:19 that's why I'm considering qmynd 13:40:27 (not only that but that's the main rason) 13:40:30 reason 13:40:43 that read-packet does store the whole packet in memory 13:40:47 now, if I could change cl-mysql memory behaviour... might be simpler 13:40:49 even if it's several packets 13:41:13 i'm not entirely sure what those packets represent, but i would think that you don't need them all at once 13:41:27 I was about to say it's not the whole resultset 13:41:31 but I'd have to check 13:42:45 well, a single packet can be 16MB, imagine if there's more than one 13:43:15 well yeah it's the whole resultset 13:43:33 so even with that driver I cannot currently work on data sets larger than memory ;( 13:43:52 or even larger than about a third of the memory I would guesstimate 13:44:12 you need to build a buffered stream on top of that 13:44:23 -!- vaporatorius is now known as Vaporatorius 13:44:35 well isn't the socket/network stream buffered already? 13:46:35 -!- rainbyte [~rainbyte@190.191.168.24] has quit [Quit: Leaving] 13:46:42 it is, but then mysql has this packet thing, which you have to keep track of 13:46:42 I wonder about that business of reading bytes in the stream, shoving them into an array, only to then build a stream out of it separately again for each value parsed, using flexi-streams:with-input-from-sequence for that 13:47:41 yeah, but that should be handled on a low level part, the higher level should juste see data as it arrives, without knowing about the the protocol chunks, I guess 13:47:48 but you're right, you don't need to have your own buffer, you just need to can keep track of those packets 13:47:53 that's what you call a buffered stream right? 13:48:20 I think you just abstract away the "packets" 13:48:58 -!- nydel [nydel@gateway/shell/blinkenshell.org/x-jtczlkkjcnzvzvkm] has quit [Quit: leaving] 13:48:59 I see no special meaning in that bytes organisation, no semantics, only network buffering, so it shouldn't drive any unit of parsing 13:49:20 so, you just need a counter to be able to skip over length and id bytes 13:49:25 and to check for errors 13:49:40 -!- hs366 [~hs366@c-219-186.netlogon.liu.se] has quit [Remote host closed the connection] 13:49:44 nydel [nydel@gateway/shell/blinkenshell.org/x-vslsxkgbhhtmcvsa] has joined #lisp 13:49:57 yeah, the function we worked on is good enough in spirit if not letter already, I think 13:50:13 then I see 2 angles, either use a vector of unsigned-bytes 8 13:50:18 except that it gobbles all the date 13:50:19 or a binary stream 13:50:21 data 13:50:27 I never implemented a stream myself yet 13:50:51 yeah that's the problematic part, the parser is build upside down 13:51:11 stream is defined by a protocol, just have read-byte and write-byte 13:51:18 the parser ask for data rather than being fed by the network 13:51:28 you don't need to use gray streams or what not 13:51:45 even basic lex/yacc courses insist that the lexer feeds the grammar, not the other way round, IIRC 13:52:11 just a structure which references the underlying stream and your own reader and writer which keep track of packets meta-data 13:52:17 read-byte is a function, not a generic, so how do one implement a stream? 13:52:41 using read-a-byte function 13:53:10 well I mean in practical CL terms 13:53:20 it is 13:53:45 how do I "overload" the read-byte function? changing its name? 13:53:57 like just do a read-byte in your own package and be done? 13:54:19 (defun read-a-byte (dim-stream) (incf (bytes-read dim-stream)) (assert (< (bytes-read dim-stream) (packet-length dim-stream))) (read-byte (underlying-stream dim-stream))) 13:54:31 I would expect CLOS dispatch, there might be another dispatch in play there 13:54:56 ok so it's not "transparent" to the caller then 13:55:12 there are gray streams, but do you really have to use cl:read-byte? 13:55:44 and CLOS is slow, i thought you wanted fast-fast 13:56:11 yeah I just try to understand where is the dispatch 13:56:26 do I need to update the whole code that uses flexi-streams etc 13:57:03 when I read code doing (cl:read-byte stream) and stream is built by flexi-stream, it's actually working on the underlying stream? 13:57:34 I'm trying to understand if I have to rewrite the driver in total or if I can change a limited amount of code in it 13:59:08 rainbyte [~rainbyte@190.191.129.32] has joined #lisp 13:59:57 stassats` [~stassats@pppoe.178-66-67-175.dynamic.avangarddsl.ru] has joined #lisp 14:00:05 -!- stassats` [~stassats@pppoe.178-66-67-175.dynamic.avangarddsl.ru] has quit [Changing host] 14:00:05 stassats` [~stassats@wikipedia/stassats] has joined #lisp 14:00:21 oh wait actually a "packet" here is not the whole result set 14:00:29 it's not broken that way, rejoicing 14:00:48 wormphlegm [~wormphleg@24.130.9.50] has joined #lisp 14:00:54 each row typically wil be in its own packet 14:01:12 still, there could be large rows 14:01:15 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 245 seconds] 14:01:30 Karl_dscc [~localhost@p5DD9F822.dip0.t-ipconnect.de] has joined #lisp 14:01:32 yeah but maybe not as large as the memory 14:01:50 could be actually 14:02:09 but I can accept that the driver doesn't support that for the next version 14:02:57 -!- mathrick [~mathrick@94.144.63.84] has quit [Quit: wifi change] 14:03:36 mathrick [~mathrick@85.218.134.11] has joined #lisp 14:05:54 oleo [~oleo@xdsl-78-35-140-156.netcologne.de] has joined #lisp 14:06:28 -!- oleo [~oleo@xdsl-78-35-140-156.netcologne.de] has quit [Remote host closed the connection] 14:07:19 oleo [~oleo@xdsl-78-35-140-156.netcologne.de] has joined #lisp 14:11:16 -!- zickzackv [~faot@p5DDB1E01.dip0.t-ipconnect.de] has quit [Ping timeout: 264 seconds] 14:17:33 harish [~harish@175.156.242.180] has joined #lisp 14:19:18 -!- lyanchih [~lyanchih@218-161-3-130.HINET-IP.hinet.net] has quit [Quit: lyanchih] 14:19:53 lyanchih [~lyanchih@218-161-3-130.HINET-IP.hinet.net] has joined #lisp 14:21:17 antgreen [~green@dsl-173-206-82-201.tor.primus.ca] has joined #lisp 14:21:51 -!- lyanchih [~lyanchih@218-161-3-130.HINET-IP.hinet.net] has quit [Client Quit] 14:22:37 sohail [~sohail@unaffiliated/sohail] has joined #lisp 14:24:19 normanrichards [~textual@70.114.215.220] has joined #lisp 14:25:53 hs366 [~hs366@w193-11-200-124.eduroam.sunet.se] has joined #lisp 14:29:52 -!- gravicappa [~gravicapp@80.90.116.82] has quit [Remote host closed the connection] 14:34:31 -!- setmeaway [stemearay@118.45.149.241] has quit [Ping timeout: 252 seconds] 14:35:25 is it meaningful to declare inline a function defined with labels? 14:36:14 yes 14:37:03 thepreacher [~thepreach@55.34.208.46.dyn.plus.net] has joined #lisp 14:37:08 can it then happen that recompile is not recompiling? 14:37:23 -!- Karl_dscc [~localhost@p5DD9F822.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 14:37:26 no 14:38:04 even when done with slime-eval-defun? 14:39:43 even 14:40:14 then I have a bug on my slime/sbcl/something 14:45:41 are you sure? 14:46:14 I edit the label function, C-M-x, and the debugger shows me the old code 14:46:22 I can reproduce it as much as I want 14:46:29 quickload, and I see the new code 14:47:20 what is the model of your keyboard? 14:48:05 kidding, right? 14:48:19 no... 14:48:37 C-u C-h c shows me the binding takes effect 14:48:46 and it's an apple keyboard 14:48:51 if you don't see "=> function-name", then nothing happened 14:49:01 I see that 14:49:09 + style warnings 14:49:37 and then I execute the code and the new formats (say) are not displayed 14:49:47 then I quickload, execute, and see the new formats 14:49:54 then you're not telling me that you're using it as a #'function 14:50:06 not even 14:50:12 or that the parent is inlined too 14:50:16 (ecase result-type (vector (result-as-vector payload)) (list (result-as-list payload))) is the call site 14:50:22 ah yes it is! 14:50:36 thanks ;-) 14:52:28 kliph [~user@unaffiliated/kliph] has joined #lisp 14:53:03 -!- naryl [~weechat@46.182.24.168] has quit [Quit: WeeChat 0.4.0] 14:53:07 -!- normanrichards [~textual@70.114.215.220] has quit [] 14:53:32 zxq9 [~ceverett@209.119.94.254] has joined #lisp 14:59:12 _schulte_ [~eschulte@c-174-56-50-60.hsd1.nm.comcast.net] has joined #lisp 15:01:16 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Read error: No route to host] 15:04:11 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 15:04:21 Mon_Ouie [~Mon_Ouie@subtle/user/MonOuie] has joined #lisp 15:06:07 -!- pavelpenev [~quassel@melontech.com] has quit [Remote host closed the connection] 15:06:52 -!- hs366 [~hs366@w193-11-200-124.eduroam.sunet.se] has quit [Read error: Operation timed out] 15:08:53 -!- ism [~ism@p4FCD42FA.dip0.t-ipconnect.de] has quit [Ping timeout: 248 seconds] 15:11:33 -!- patrickwonders [~patrickwo@user-38q42ns.cable.mindspring.com] has left #lisp 15:12:39 -!- nenorbot [~ronen@IGLD-84-229-58-87.inter.net.il] has quit [Read error: No route to host] 15:12:56 naryl [~weechat@46.182.24.168] has joined #lisp 15:13:53 clhs define-compiler-macro 15:13:53 http://www.lispworks.com/reference/HyperSpec/Body/m_define.htm 15:14:15 ism [~ism@p4FCD58B1.dip0.t-ipconnect.de] has joined #lisp 15:15:04 dim: tiny nitpick, but plural of "datum" is "data", not "datums" :) 15:15:22 LiamH [~healy@pdp8.nrl.navy.mil] has joined #lisp 15:15:35 ok I shaved 20% of execution time it seems 15:15:41 the other way around 15:15:48 maybe more 15:15:58 or, i read the other way around 15:16:16 2.5s with cl-mysql, 5 to 6s with qmynd, down to 3.5 to 4s with the patches 15:18:35 -!- mvilleneuve [~mvilleneu@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has quit [Quit: Leaving] 15:18:46 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 15:19:07 dim: that's a respectable improvement already 15:19:23 dim: don't stop until it's faster than cl-mysql 15:19:35 stassats`: I knew you would say that ;-) 15:20:02 well I need to clean up what I just did because it's only used in one of 4 cases 15:20:16 (result as lists and all-as-text) 15:20:24 and then it could be applied to the whole thing 15:20:39 killing completely the flexi-streams:with-input-from-sequence 15:20:45 it's not that far away 15:20:56 I might as well spend nightly hours on it this WE 15:22:17 cory786 [~cory@cpe-98-28-86-137.columbus.res.rr.com] has joined #lisp 15:22:35 attila_lendvai [~attila_le@5.251.140.27] has joined #lisp 15:22:35 -!- attila_lendvai [~attila_le@5.251.140.27] has quit [Changing host] 15:22:35 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 15:23:09 dcxi [~dcxi@32.Red-81-37-187.dynamicIP.rima-tde.net] has joined #lisp 15:25:10 ustunozgur [~ustunozgu@85.110.49.243] has joined #lisp 15:28:52 beach [~user@ABordeaux-651-1-238-248.w109-215.abo.wanadoo.fr] has joined #lisp 15:29:05 Good evening everyone! 15:29:28 hello beach :) 15:29:45 hellow 15:29:53 -!- mcsontos [mcsontos@nat/redhat/x-fmnadvddpipckuqw] has quit [Quit: Leaving] 15:30:16 mathrick: I will write a longer answer to the GitHub list, but I do think that the splay tree can handle a very large number of cursors, if that is what you want. 15:30:42 loke`: Are you the one who works in Singapore? 15:30:47 -!- antgreen [~green@dsl-173-206-82-201.tor.primus.ca] has quit [Ping timeout: 260 seconds] 15:30:55 beach: "the one"? 15:31:02 beach: There are plenty of others. :-) 15:31:14 loke`: Here on #lisp? OK. 15:31:21 fe[nl]ix: Hi, how is Strasbourg? 15:31:38 beach: OK, well. Possibly the only one on this channel, yeah. :-) Why you asking? 15:31:42 singapore is so small, there's only place for one lisper 15:31:57 Densely populated though 15:32:24 loke`: Just wanted to make sure I remembered correctly. I saw a lecture of yours on the web. Youtube was it? 15:32:42 beach: It was 15:32:52 That was at the Microsoft office, of all places :-) 15:33:00 Oh, wow. 15:33:05 I thought it was a university. 15:33:38 beach: It was one of those developer events, not by MS. They just borrowed their lecture rooms. 15:33:54 Oh, I see. 15:34:37 haxx [~Rob@69.77.176.98] has joined #lisp 15:34:48 loke`: As I recall, you need to work on your verbs in plural form :) 15:35:01 beach: What do you mean? 15:35:08 bananagram [~bot@c-76-30-158-226.hsd1.tx.comcast.net] has joined #lisp 15:35:09 beach: a bit cold, but otherwise very nice 15:35:11 -!- Joreji [~thomas@157-103.eduroam.rwth-aachen.de] has quit [Ping timeout: 245 seconds] 15:35:39 I may remember wrong, but I seem to recall your using "goes" "has", etc, even if the subject is in plural form. 15:35:53 Joreji [~thomas@157-103.eduroam.rwth-aachen.de] has joined #lisp 15:36:01 fe[nl]ix: Yeah, the climate is not the strong point there :( 15:36:28 fe[nl]ix: And then it gets too hot in the summer, like >40°C. 15:36:57 beach: as in "they goes"? 15:37:06 Yes, but not that directly. 15:37:20 beach: I don't think I say that. There are some other grammatical peculiarities that I have adopted since coming to Singapore though. 15:37:41 Like: The lines ...bla bla goes bla bla. 15:37:45 http://en.wikipedia.org/wiki/Singlish 15:37:57 Oh, OK, that might be it, then. 15:38:33 loke`: Not a biggie, but if you are really interested, I'll watch it again and write down my observations. 15:38:49 beach: :-) 15:39:20 mathrick: Around? 15:39:24 By biggest problems with English are related to the meaning of some words 15:39:40 loke`: Oh? Like what? 15:39:40 For example, in Swedish there are really no "bad" words. Swearing is prefectly accepted 15:40:03 Well, not quite. 15:40:10 Or the fact that Swedish tends to be more polite than English 15:40:21 When you give a lecture, you should not use "fan", "jävla" etc. 15:40:46 beach: Well you could, withpout being led off the stage 15:41:06 But I agree, Swedish is more polite. 15:41:21 I recall, when I wanted to argue with my sister, I switched to English :) 15:41:32 Because I just couldn't do it in Swedish. :) 15:41:54 English speaking people raise their eyebrows when I say "Would you mind if I ask for the salt?" 15:42:18 Yeah, sure. "Pass the salt, please!" 15:42:23 My wife thinks I never get to the point when I ask for something :-) 15:42:34 beach: "Yo! Salt!" 15:42:54 loke`: To what linguistic group does your wife belong? 15:43:28 beach: Nuclear MP 15:43:45 ? 15:43:46 beach: hey, what's up? 15:43:48 Or Malayo-Sumbawan if you like 15:44:01 loke`: Oh, OK. :) 15:44:08 (well, Malay and English are her languages) 15:44:18 But you did ask for the group. 15:44:37 -!- thepreacher [~thepreach@55.34.208.46.dyn.plus.net] has quit [Quit: Leaving] 15:44:38 mathrick: Oh, just wanted to tell yo that I am making great progress on Second Climacs, and on CLIM3/CLIMatis as well as a result. 15:44:43 *stassats`* waits for a discussion where the lisp language is the topic 15:44:43 beach: ah, that's good. So basically they don't deteriorate rapidly if you introduce multiple access loci, is that what you're saying? 15:44:47 I wonder if I will not just trash all the code I just wrote for qmynd actually... 15:44:50 beach: awesome! 15:45:11 dim: why? 15:45:12 dim: bad result is still a result 15:45:16 stassats`: Sorry! I think we are through! 15:45:49 mathrick: Correct. 15:45:52 nice 15:46:06 stassats`: so, network stream  simple-array of bytes  position based API or network stream  read-byte API that knows how to deal with packets  current stream-based API ? 15:46:15 mathrick: Splay trees remain statistically balanced and that's the best you can hope for. 15:46:16 I haven't ever worked with splay trees, so I don't know their behaviour too well 15:46:20 right 15:46:28 that's what I wonder about, which approach would offer the best result 15:46:36 -!- dcxi [~dcxi@32.Red-81-37-187.dynamicIP.rima-tde.net] has quit [Quit: dcxi] 15:46:41 try them all 15:46:47 enotime 15:46:59 mathrick: In addition, it doesn't matter how many cursor you have because that does not influence the splay tree at all. 15:47:13 minion: advice on indirection? 15:47:13 You can't expect automated advice for everything. 15:47:28 minion: bad bot 15:47:28 i'm not a bot. i prefer the term ``electronically composed''. 15:47:34 beach: doesn't it? You access them for each cursor, which is usually one (or few at most) per line 15:47:35 oh! 15:47:49 dim: what do you mean by position based API ? 15:47:50 I just did the position based API for a limited case but generalizing it in the whole driver is lots of work, where it's using stream based API everywhere 15:47:52 I see, cursors are anchored to line objects, not the splay trees of lines 15:48:01 mathrick: Only when you actually use the cursor for something. 15:48:02 so they don't need to consult the tree 15:48:09 Exactly. 15:48:14 dim: what is a position based API? 15:48:33 fe[nl]ix: you keep the vector of bytes around and avoid any data copy by passing around bounding indices where to find the data you need 15:48:37 beach: yes, so editing other than changing lines has no effect on the line tree? 15:48:43 that's very good 15:48:59 mathrick: The only potential problem would be if you modify many lines in a short period of time, but then any data structure would have a problem. Splay trees are the best you can hope for. 15:49:07 e.g. (parse-column bytes start end column-definition) 15:49:35 mathrick: Yes, correct. 15:49:40 k0001 [~k0001@host18.190-137-67.telecom.net.ar] has joined #lisp 15:49:49 beach: yeah, there are ugly cases like planting 10k cursors (one per line), then pressing RET. You just produced 10k new lines in 10k distinct loci 15:50:24 mathrick: That is not going to be a problem. 15:50:28 OTOH, isn't the insertion in splay trees amortised log n? 15:50:43 Statistically, yes. 15:51:01 then it's still pretty good and unlikely to be catastrophic 15:51:02 But you would have to do random insertions to get that case. 15:51:09 Exactly! 15:51:30 I am pretty sure you can't do better than splay trees. 15:52:34 I think one of the problems in GNU Emacs and multiple-cursors.el is that it stores buffers as a doubly linked list of lines, each line being a doubly linked list of characters. So it deteriorates rapidly if you have longer lines even with 500 cursors 15:52:41 plus, of course, elisp 15:52:42 dim: i don't see how that array will be any faster than passing streams, you're not dealing with the network buffer directly 15:53:08 mathrick: Oh, that has changed then. Yes, that's bad. 15:53:15 dim: is the mysql network protocol length-prefixed ? 15:53:23 fe[nl]ix: yes 15:53:32 apparently, from what I grab in the driver at least 15:53:43 fe[nl]ix: it's variable length 15:54:10 beach: I'm not exactly sure on how lines are stored, but I'm almost certain characters live in doubly linked list. GNU Emacs hates long lines in general, and m-c only makes lines "long" much faster 15:54:41 if the packet exceeds 16MBs, it'll split into several packets, each prefixed with length, you will know how long it is until you see a packet of length less than 16MB 15:55:13 stassats`: well yes I'm thinking I should just trash what I just did in the last hour and build the stream we were talking about, providing my own read-byte and read-sequence functions, then just remove the flexi-streams:with-input-from-sequence calls that plater the code now... only reason why I'm not so sure is that read-byte and read-sequence are doing data copy 15:55:15 i'm not really sure what is the purpose of those packets 15:55:17 if length-prefixed you can use the general strategy of buffering the incoming data until a full row is received 15:55:19 mathrick: OK, it used to be the case that the entire buffer was a gap buffer. 15:55:28 ah yes, you're right 15:55:28 but well the current read-sequence is also doing a data copying 15:55:33 it's a gap buffer 15:55:38 mathrick: Now, in Climacs, each *line* is a gap buffer. 15:55:51 mhm 15:56:03 beach: flexichains were also a generalised form of gap buffers, no? 15:56:03 stassats`: I think it's for a datum of more than 16MB 15:56:20 mathrick: Yes, but over-engineered as usual! :) 15:56:23 like a single cell, not even a whole tuple, not a result set 15:56:24 hehe 15:56:29 that's my reading of the driver at least 15:56:29 I'm terrible with overengineering 15:56:38 Yeah, me too. 15:56:41 :( 15:56:43 those packets are internally encoded, aren't they? 15:56:45 beach: what was the underlying structure? 15:56:47 i mean, why not encode them directly in the stream, not through some packets 15:56:53 maybe they can be compressed? 15:57:15 that would make sense then 15:57:38 mathrick: For a line? When the line is `open' it is a simple vector of objects, with a gap where current insert/delete operations take place. 15:57:42 well I don't know about compressed 15:58:16 mathrick: So if you have a sequence of (non-random) editing operations, you get O(1) essentially. 15:59:18 nenorbot [~ronen@IGLD-84-229-58-87.inter.net.il] has joined #lisp 15:59:46 mathrick: In the documentation, I indicate how you can improve on what is currently done when the number of cursors *per line* is huge, but I haven't implemented it yet. 16:00:24 beach: oh, sorry, I meant for flexichains, what kind of data structure is a flexichain? 16:01:17 mathrick: A gap buffer. Except that the gap does not have to be contiguous; it can have one part at the end of the vector and another part at the beginning. 16:01:42 mathrick: That trick cuts the worst case by a factor 2. 16:01:54 ah 16:01:56 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Read error: Connection reset by peer] 16:02:27 araujo [~araujo@gentoo/developer/araujo] has joined #lisp 16:03:05 mathrick: And it cuts the common case by a lot: "go to the beginning", "edit", "go to the end", "edit", ... 16:03:17 mhm 16:04:10 mathrick: But it's a sobering experience to actually do the math, i.e., how big does the file have to be in order for it to make a difference. 16:04:33 ... hence "over-engineering". 16:04:34 -!- kpreid [~kpreid@50-196-148-101-static.hfc.comcastbusiness.net] has quit [Quit: Quitting] 16:04:35 gravicappa [~gravicapp@ppp91-77-190-67.pppoe.mtu-net.ru] has joined #lisp 16:04:55 kpreid [~kpreid@50-196-148-101-static.hfc.comcastbusiness.net] has joined #lisp 16:05:12 I see 16:05:38 -!- cory786 [~cory@cpe-98-28-86-137.columbus.res.rr.com] has quit [Ping timeout: 264 seconds] 16:06:39 and you mentioned the difficulty of attaching data to them, is that because you have constantly changing vectors, so there's nothing like a NODE for a tree where you can attach things and have them travel together as you move the node around? 16:07:20 -!- varjagg [~eugene@122.62-97-226.bkkb.no] has quit [Quit: Leaving] 16:07:54 thepreacher [~thepreach@55.34.208.46.dyn.plus.net] has joined #lisp 16:08:03 thepreacher_ [~thepreach@55.34.208.46.dyn.plus.net] has joined #lisp 16:08:20 -!- thepreacher [~thepreach@55.34.208.46.dyn.plus.net] has quit [Read error: Connection reset by peer] 16:08:20 -!- thepreacher_ [~thepreach@55.34.208.46.dyn.plus.net] has quit [Read error: Connection reset by peer] 16:08:36 Correct. 16:08:37 thepreacher [~thepreach@55.34.208.46.dyn.plus.net] has joined #lisp 16:09:12 Well, the only fixed (sort-of) thing to attach information to would be a cursor. 16:09:22 Not anymore. 16:09:32 or a level of indirection 16:09:43 What do you mean? 16:09:51 -!- przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has quit [Ping timeout: 252 seconds] 16:10:37 well, you could package objects at each position in a POSITION, which contains ITEM and DATA, where ITEM is whatever is there at that position (mostly characters of course) 16:10:57 In a flexichain? 16:11:00 Not really. 16:11:01 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Remote host closed the connection] 16:11:01 yeah 16:11:05 why not? 16:11:07 Because when you edit, the position changes. 16:11:16 Unless you speak about physical position. 16:11:21 Which is what a cursors does. 16:11:41 guyal [~anonymous@75-27-242-104.lightspeed.gldlca.sbcglobal.net] has joined #lisp 16:11:46 fortitude [~fortitude@cpe-74-78-191-26.twcny.res.rr.com] has joined #lisp 16:12:10 beach: I mean each item in a flexichain represents a "point" in the chain, with some order. Perhaps it'd be easier if I did s/POSITION/NODE/ above 16:12:42 mathrick: The only way to do that in a flexichain is by using a cursor. 16:12:54 foreignFunction [~niksaak@ip-4761.sunline.net.ua] has joined #lisp 16:13:04 but why can't you store objects in a flexichain indirectly? 16:13:13 Oh, I see what you mean. 16:13:23 -!- zeebrah [~zeebrah@unaffiliated/zeebrah] has quit [Quit: Leaving] 16:13:41 There is an extension of flexichain where each element "knows" its position. 16:14:05 you mean position in the index sense? 16:14:23 qw3rtman [~qw3rtman@pool-71-252-177-42.dllstx.fios.verizon.net] has joined #lisp 16:14:25 Yes, the logical position of the item in the sequence. 16:15:03 clhs fill 16:15:03 http://www.lispworks.com/reference/HyperSpec/Body/f_fill.htm 16:15:05 It's quite easy to do actually, just keep the physical position in the vector, and subtract the gap size when you are asked. 16:15:27 because I don't think that's even needed, as long as the attachment points don't move (which is what the indirect NODE object gives you), you don't need to know your index to stay in place 16:15:34 it's obviously bigger though 16:15:55 NODE? In a flexichain? 16:16:02 My memory must be failing me. 16:17:02 *beach* would not be surprised, though :( 16:17:13 normanrichards [~textual@mobile-166-147-065-177.mycingular.net] has joined #lisp 16:17:30 -!- loke` [~user@2400:d803:7342:f91a:35d2:f08a:ef54:335d] has quit [Remote host closed the connection] 16:19:19 -!- thepreacher [~thepreach@55.34.208.46.dyn.plus.net] has quit [Quit: Leaving] 16:19:31 beach: I haven't read the source, but if I understand correctly, a flexichain's storage looks mostly like this [ c c c c c] _ [ c c c c c c], where "c" is a character in the given position. So instead of storing c directly, you do (defclass node () ((c) (extra))), then store (make-instance 'node :c c) 16:19:39 thepreacher_ [~thepreach@55.34.208.46.dyn.plus.net] has joined #lisp 16:20:02 -!- Joreji [~thomas@157-103.eduroam.rwth-aachen.de] has quit [Ping timeout: 264 seconds] 16:20:24 mathrick: Doesn't ring a bell :( 16:20:25 hs366 [~hs366@94.254.45.76] has joined #lisp 16:20:28 unless I'm misunderstanding the problem 16:20:35 oh well 16:20:37 -!- normanrichards [~textual@mobile-166-147-065-177.mycingular.net] has quit [Read error: Connection reset by peer] 16:20:59 it's not the most important thing ever 16:21:08 mathrick: I was just going to say that :) 16:21:08 I'll take a look at your changes 16:21:44 mathrick: And, more importantly, Second Climacs deteriorates to First Climacs only if you have your entire buffer in one line. 16:21:57 ... which is not TOO bad. 16:22:05 indeed 16:22:08 -!- hitecnologys [~hitecnolo@94.137.16.93] has quit [Quit: hitecnologys] 16:22:11 what did First Climacs use for storage? 16:22:27 A single flexichain for the entire buffer. 16:22:42 Oh, one more improvement in Second Climacs... 16:22:57 beach: oh! I didn't understand you properly before, you changed the buffer to a gap buffer from splay tree of lines, I see 16:23:39 I changed the *line* from a splay tree to a gap buffer. 16:23:53 The sequence of lines is a splay tree still. 16:24:07 oh, right 16:24:31 Now, since each line is stored separately, it is possible to store each line differently. Like if you have a line with only Latin-1 character, you could store it as a byte vector when it is closed. 16:24:41 Or you could even gzip it. 16:24:42 :) 16:25:36 mathrick: Anyway, I don't think we need to worry about the efficiency of the buffer representation right now. 16:25:47 yeah, probably not 16:26:16 mathrick: I would appreciate if you would read the documentation on that though, and tell me whether it makes sense or not, given what we just discussed. 16:26:27 beach: mhm, gzipping could be really handy for things like hex views, where you potentially look at GBs worth of data 16:26:40 Yes, you got it! :) 16:26:40 -!- sepeth [uid16350@gateway/web/irccloud.com/x-bexpvvzfufxjupxi] has quit [Quit: Connection closed for inactivity] 16:26:40 will do 16:26:57 przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has joined #lisp 16:27:16 This time, I really think I thought of everything! :) :) :) 16:27:32 heheh, lemme see 16:27:41 OH NO! 16:27:55 hmm? 16:28:10 Joking! 16:28:24 ah, carry on then 16:28:49 -!- round-robin [~bubo@91.224.149.58] has quit [Quit: leaving] 16:29:44 There are many more pressing issues. We can figure out potential performance bottlenecks in the buffer representation later, should that ever be an issue. 16:30:47 aye 16:31:05 I'm looking at the commit log now, will get to the new representation in a moment 16:31:13 OK. 16:31:48 ... and I should mention that CLIMatis is not finished. For instance, I don't have a scroll bar yet. :( 16:31:54 -!- thepreacher_ [~thepreach@55.34.208.46.dyn.plus.net] has quit [Quit: Leaving] 16:32:25 But things are moving fast, though. I have presentation types now. 16:32:28 Davidbrcz [~david@88.115.137.88.rev.sfr.net] has joined #lisp 16:32:58 beach: I'm really pleased you use the (%slot :accessor slot) naming conventions, since it's the one I use myself 16:33:06 I wonder if I picked it up from you... 16:33:09 Great! 16:33:13 been too long 16:33:13 I don't know. 16:33:22 Doesn't matter anymore. 16:33:24 -!- mc40 [~mcheema@146.255.107.122] has quit [Quit: mc40] 16:33:46 -!- hs366 [~hs366@94.254.45.76] has quit [Quit: Leaving] 16:34:23 Speaking of which, I did a cute thing. I defined C-M-i in Second Climacs to call the Clueless inspector (similar to the SLIME inspector) on the Climacs application, so that it can be more easily debugged. 16:34:33 Isn't Common Lisp great after all? 16:35:24 it is 16:36:05 beach: heh, it's like when you inspected the inspector and found bugs in CLIMatis :) 16:36:16 Yes, exactly! 16:36:26 I love it. 16:36:43 -!- stassats` [~stassats@wikipedia/stassats] has left #lisp 16:37:57 minion: memo for kristof: Mungi looks very interesting; I will definitely have a look. For a LispOS, I am definitely willing to make it a process of an existing OS, at least initially, to avoid writing device drivers and sugh. 16:37:57 Remembered. I'll tell kristof when he/she/it next speaks. 16:38:11 lufu [~user@5.254.129.167] has joined #lisp 16:39:40 "sugh"? I guess my typing skill are going in addition to my memory. 16:40:33 nug700 [~nug700@71-35-57-61.phnx.qwest.net] has joined #lisp 16:41:22 beach: my own take at "don't write drivers" was resurrecting L4Linux. Someone has already done that, ie. L4Linux running as an inferior kernel in which only the drivers are used, and the "actual" OS is built on top of L4 16:41:27 mathrick: At some point I considered using gensyms or uninterned names for slots, but it complicates debugging. "%name" is a compromise. 16:41:40 yeah 16:41:47 also sometimes you do want to access slots 16:41:56 True. 16:42:44 Thanks for info on L4Linux. It might be useful at some point. 16:45:00 mathrick: I also want you to know that it is your fault that I have had a few weeks of way too intense work on CLIMatis and Second Climacs. I hope to wind down a bit so that I can get some decent sleep at some point. :) 16:46:05 mathrick: Lucky for you, my wife is currently traveling abroad, so at least she won't notice. 16:46:52 beach you are working on climacs ? 16:46:59 awesome 16:47:01 lol 16:47:07 oleo: Second Climacs :) 16:47:08 yes. 16:47:16 wait, was the first of you too ? 16:47:20 yes. 16:47:23 cool :) 16:47:34 ... and many great contributors. 16:47:41 ah ok 16:48:47 i still use it from time to time, the olc mcclim, fixed even some bugs for myself.... 16:48:52 old* 16:49:04 oleo: First Climacs relied on McCLIM for its GUI. But McCLIM turned out to be not so good for it. Second Climacs is being developed in parallel with CLIM3/CLIMatis, so it will be a better fit. 16:49:26 mathrick: Lucky for you, my wife is currently traveling abroad, so at least she won't notice. <-- heh, sorry :) 16:49:30 but still it seems feature incomplete....for example there's () highlighting for lisp syntaxes...but none for lalr or so... 16:49:30 oleo: I still think McCLIM is great. I use it for many things. 16:49:46 -!- qw3rtman [~qw3rtman@pool-71-252-177-42.dllstx.fios.verizon.net] has quit [Ping timeout: 245 seconds] 16:50:25 ya and the dafaults were not good too...i don't know but the interfacing to it for the users is practically impossible... 16:50:30 oleo: I am hoping Second Climacs will be a much better substrate for incremental syntax analyzers. And I already have some good ideas for Common Lisp syntax. 16:50:38 unless you edit the source directly... 16:50:42 other_nick-37 [~quassel@mcqueen.rnl.ist.utl.pt] has joined #lisp 16:50:46 -!- Kromitvs [~quassel@mcqueen.rnl.ist.utl.pt] has quit [Quit: No Ping reply in 180 seconds.] 16:50:46 that's great 16:51:31 can give you my changed stuff....to compare if you want.... 16:51:32 Thanks. I hope so. You have mathrick to thank for getting me excited about this again. 16:51:51 oleo: Oh, sure that would be great. To Climacs or to McCLIM? 16:51:56 both about mcclim and climacs 16:52:02 and even the other... 16:52:04 Sure, send it to me. 16:52:20 hmmm, i'll try 16:54:10 oleo: Some days I have secret plans to replace the McCLIM low-level layer by that of CLIM3. 16:54:22 -!- yacks [~py@103.6.159.103] has quit [Quit: Leaving] 16:55:05 i didn't see clim3 yet.... 16:55:22 how many coworkers do you have ? 16:55:34 or is that a 1 man army ? 16:55:47 -!- alexherbo2 [~alexherbo@APlessis-Bouchard-154-1-61-104.w90-3.abo.wanadoo.fr] has quit [Ping timeout: 272 seconds] 16:56:33 oleo: Just me. And that's the way I prefer it for now. Unless I can be convinced otherwise. 16:57:09 oleo: McCLIM became somewhat of a mess because there was no central scrutinizer :) 16:57:26 how many worked on that before ? 16:57:27 oleo: But I shall definitely need some help with CLIM3/CLIMatis at some point. 16:57:37 well too many can become an obstacle yes.... 16:58:14 oleo: On McCLIM? Oh, lesseee; me gilberth, tbmoore, chandler, xophe, I forget. 16:58:15 hmmm, ok, even for small things, if i can contribute i will do if you ask me. 16:58:16 :) 16:58:25 oleo: Sounds great. 16:58:29 kristof [~kristof@unaffiliated/kristof] has joined #lisp 16:59:40 -!- xificurC [xificurC@nat/ibm/x-pccpediimlfsvkgt] has quit [Read error: Connection reset by peer] 16:59:41 oleo: One of the complaints about McCLIM was that it was "but ugly". So CLIM3/CLIMatis will need "pretty" icons and gadgets and such. I don't think I will ever gather up the courage to do those things myself. 16:59:50 hiroakip [~hiroaki@77-20-51-63-dynip.superkabel.de] has joined #lisp 17:00:10 oh, i don't find it ugly... 17:00:13 not even the icons... 17:00:31 got them to work here... 17:01:03 oleo: I didn't find it ugly either. I am just talking about reasons why people thought they wouldn't want to use it. 17:02:35 oleo: Sometimes it is not worth arguing with people. They state an opinion based on what they think, or what they think they ought to think. It is better to just try to show them that they are wrong. 17:03:49 yes 17:03:55 I'm confused: Lock on package COMMON-LISP violated when setting fdefinition of READ-BYTE while in package QMYND-IMPL. 17:04:08 that means I should not write my own read-byte and read-sequence and all? 17:04:13 even in my own pacakge? 17:04:14 i'd def. use it... 17:04:29 else i wouln't have put any effort into changing some stuff myself... 17:05:00 emacs is fine....but i don't won't to deal with elisp always.... 17:05:02 k0001_ [~k0001@181.110.65.6] has joined #lisp 17:05:08 jewel [~jewel@105-236-138-104.access.mtnbusiness.co.za] has joined #lisp 17:05:36 you can cross like 80% of stuff over libs there...but it does not cover 100% of cl 17:06:00 but otherwise i still prefer emacs tho.... 17:06:15 but it's nice to have something cl based.... 17:08:01 -!- shridhar [Shridhar@nat/redhat/x-jmwrumrgbhsburat] has quit [Quit: shridhar] 17:08:06 -!- k0001 [~k0001@host18.190-137-67.telecom.net.ar] has quit [Ping timeout: 245 seconds] 17:09:32 oleo: Sometimes I think that people spent more time and energy badmouthing McCLIM than it would have taken them to fix the perceived problem, thus improving it for everyone. But that kind of behavior seems to be pretty common here. Nothing to do about it. Just deal with it. 17:10:25 well, yes but if those are newcomers to lisp and even to mcclim, you can't expect them to start hacking around.... 17:10:31 i was pretty helpless too... 17:10:48 beach: I'm sorry if you already talked about this (just joined), but what are some fundamental problems with CLIM2 that you wanted to address with CLIM3? 17:10:48 kristof, memo from beach: Mungi looks very interesting; I will definitely have a look. For a LispOS, I am definitely willing to make it a process of an existing OS, at least initially, to avoid writing device drivers and sugh. 17:10:51 and it requires effort and time too... 17:11:00 oleo: I wasn't talking about newcomers to Lisp actually. 17:11:09 you have to look thru source, get an idea about the infrastructure there....etc etc.... 17:11:16 fucking minion, pouncing about 17:11:32 oleo: Do we let highschoolers pilot airplanes? 17:11:58 kristof: The specification is somewhat vague, so that what we did with McCLIM might sometimes have been unnecessarily slow. 17:12:10 why do you think pilotes got pilots ? 17:12:15 lol 17:12:31 oleo: Do we expect 8 year olds (and not protegees) to perform magnificent concerts? 17:12:55 not really, but there are still some expecting that.... 17:12:55 dim: CL:READ-BYTE's fdefinition is global to the lisp image, there is no package locality to it. You could define QMYND-IMPL:READ-BYTE, but that is essentially the same as using a different name altogether 17:12:56 oleo: So why should an advanced tool be easy to use? And isn't that an oxymoron; an easy, advanced tool? 17:13:18 -!- hiroakip [~hiroaki@77-20-51-63-dynip.superkabel.de] has quit [Ping timeout: 246 seconds] 17:13:25 beach: You say "we", so I take it you were part of the McCLIM team? 17:13:37 kristof: I guess you could say that :) 17:13:52 Fascinating! It's nice to see a real veteran slogging away, making things better. 17:13:56 if it's documented good, everyone can dive into...after learning the language.... 17:14:00 -!- przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has quit [Ping timeout: 246 seconds] 17:14:04 and getting the concepts... 17:15:31 beach: I read most of the (sparse) documentation you have on your LispOS. I liked the idea, but I'm concerned about the performance of an object store as opposed to a heirarchal filesystem, which is why I recommended looking at Mungi since they use an object store as well. 17:15:53 *heirarchical 17:17:56 beach: But any sort of fleshed out operating system design is a long ways away, so in the interim I'm actually mostly interested in CLIMatis and the potential Climacs. 17:18:54 Karl_dscc [~localhost@p5DD9F822.dip0.t-ipconnect.de] has joined #lisp 17:19:27 kristof: OK, I'll take into account your remarks. 17:20:38 normanrichards [~textual@cpe-24-27-51-104.austin.res.rr.com] has joined #lisp 17:20:47 kristof: I know my memory is failing (and has been for the past 45 years), but I *think* I wrote a "development history" appendix in the McCLIM documentation. That should give you an idea of what happened. 17:20:55 sellout [~Adium@75-25-126-88.lightspeed.sjcpca.sbcglobal.net] has joined #lisp 17:21:11 eudoxia [~eudoxia@r190-135-15-74.dialup.adsl.anteldata.net.uy] has joined #lisp 17:22:41 beach: I'll take a look at it, thanks. I don't expect to be of much help but you can certainly count on me being interested and contributing, if only a small amount :) 17:23:08 kristof: Good to know. It won't happen very soon. 17:23:20 beach: What's done, and what needs to be accomplished? 17:23:34 hs366 [~hs366@94.254.45.76] has joined #lisp 17:23:45 For CLIM3/CLIMatis? 17:23:51 Yes 17:23:52 take your time :) 17:24:02 kristof: All the low-level stuff is there. 17:24:20 -!- zacharias [~aw@unaffiliated/zacharias] has quit [Quit: Bye!] 17:24:27 Some high-level stuff, including presentation types, seems to work. 17:24:35 beach: Is the entire specification written, at least? 17:24:41 There is no "cosmetic" stuff. 17:24:46 (I've yet to compile your tex documents) 17:25:05 kristof: No, I am wining it as I go. 17:25:11 But there is a lot already. 17:25:17 That's good to know! 17:25:33 beach: Do you have a list somewhere of all the things you disliked about McCLIM? 17:25:40 and CLIM2 in general. 17:25:51 kristof: I seriously doubt it. 17:26:04 nialo- [~yaaic@66-87-80-137.pools.spcsdns.net] has joined #lisp 17:27:45 kristof: Scott McKay did a pretty good job, but he was probably under a lot of pressure to crank it out. So the specification is not as precise as (say) the CLHS. 17:28:00 -!- eudoxia [~eudoxia@r190-135-15-74.dialup.adsl.anteldata.net.uy] has quit [Quit: Leaving] 17:28:18 beach: Alright, I understand. 17:28:19 eudoxia [~eudoxia@r190-135-15-74.dialup.adsl.anteldata.net.uy] has joined #lisp 17:28:55 kristof: The CLIM3 specification tells (or will tell) exactly *when* things happen (when executed, after an iteration of the event loop, after an iteration of the command loop). 17:29:41 beach: I should become familiar with CLIM2 as well, then. 17:29:58 kristof: So for instance when output records move around in McCLIM, we have quadratic behavior because the effect happens immediately, but there is no need for that, because nobody can see it until the event loop has completed an iteration. 17:30:36 -!- nialo- [~yaaic@66-87-80-137.pools.spcsdns.net] has quit [Ping timeout: 252 seconds] 17:30:57 kristof: If you want to do that, I highly recommend the "annotatable" CLIM specification at bauhh.dyndns.org, created by gilberth. 17:31:00 -!- joneshf-laptop [~joneshf@086.112-30-64.ftth.swbr.surewest.net] has quit [Read error: Operation timed out] 17:31:34 beach: I should expect some helpful annotations? :) 17:31:46 kristof: Very many, yes. 17:32:07 kristof: And you can add yours, whenever there is a phrase you do not understand. 17:32:29 beach: I can't seem to connect to the server. 17:32:39 kristof: hold on... 17:32:54 -!- Davidbrcz [~david@88.115.137.88.rev.sfr.net] has quit [Ping timeout: 246 seconds] 17:33:05 http://bauhh.dyndns.org:8000/clim-spec/index.html 17:34:20 kristof: gilberth is one of the greatest programmers I have ever met. He was a great asset to the development of McCLIM. He recently turned up here after many years of absence. 17:34:29 beach: Ah, thank you :) This has been a helpful conversation! 17:34:35 beach: What's his history? 17:34:53 kristof: You'll have to ask him about that :) 17:34:58 -!- Mon_Ouie [~Mon_Ouie@subtle/user/MonOuie] has quit [Read error: Operation timed out] 17:34:59 Haha, alright 17:35:02 Well, I'm off for now 17:35:12 kristof: OK, take care. 17:35:15 I hope to talk to you again soon, once I've gotten pretty deep into this spec 17:35:40 -!- simbrown [~sbrown@87-194-181-195.bethere.co.uk] has quit [Quit: Konversation terminated!] 17:35:41 I'll be around. Weekends, mostly. 17:35:47 -!- hlavaty [~user@friedrichstrasse.knowledgetools.de] has quit [Remote host closed the connection] 17:36:59 -!- ASau` is now known as ASau 17:42:13 oleo: Still around? 17:44:23 oleo: Like I said, now that I understand the issues, I would like to add more information to the CLIM II spec so that it's clear at what point in time things are supposed to happen. This information could then be used to improve the performance of the McCLIM primitives that manipulate output records. 17:46:27 -!- ck`` [~ck@dslb-094-219-255-002.pools.arcor-ip.net] has quit [Ping timeout: 272 seconds] 17:47:39 great :) 17:51:30 *beach* thinks this is boring stuff to people who do sexy things with hunchentoot or cl-tk. 17:52:54 nialo- [~yaaic@66-87-30-98.pools.spcsdns.net] has joined #lisp 17:53:03 macrobat [~beep@h-199-47.a328.priv.bahnhof.se] has joined #lisp 17:53:12 -!- ustunozgur [~ustunozgu@85.110.49.243] has quit [Ping timeout: 246 seconds] 17:55:57 -!- hiyosi [~skip_it@247.94.30.125.dy.iij4u.or.jp] has quit [Ping timeout: 272 seconds] 17:56:31 -!- kristof [~kristof@unaffiliated/kristof] has quit [Ping timeout: 246 seconds] 17:58:31 ozialien [~ernest@ip98-167-234-126.ph.ph.cox.net] has joined #lisp 17:59:10 -!- macrobat [~beep@h-199-47.a328.priv.bahnhof.se] has left #lisp 18:00:04 abunchofdollarsi [~abunchofd@l33t.csail.mit.edu] has joined #lisp 18:00:11 If I want to do this, https://gist.github.com/burrows-labs/7709590 18:00:38 Is there a way I can avoid using the implementation function fn-expand-me2 in the second set of code? 18:00:54 I want to expand the macro inside of a list without evaluating it's results. 18:01:20 use macroexpand 18:01:24 -!- Patzy [~something@lns-bzn-51f-81-56-151-137.adsl.proxad.net] has quit [Ping timeout: 252 seconds] 18:01:39 joneshf-laptop [~joneshf@086.112-30-64.ftth.swbr.surewest.net] has joined #lisp 18:01:47 I see; yes. 18:02:17 Patzy [~something@lns-bzn-51f-81-56-151-137.adsl.proxad.net] has joined #lisp 18:04:25 -!- ramkrsna [ramkrsna@unaffiliated/ramkrsna] has quit [Remote host closed the connection] 18:05:27 cools [~user@CPE0026f32ba2b0-CM0026f32ba2ad.cpe.net.cable.rogers.com] has joined #lisp 18:06:04 attila_lendvai [~attila_le@5.251.242.95] has joined #lisp 18:06:04 -!- attila_lendvai [~attila_le@5.251.242.95] has quit [Changing host] 18:06:04 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #lisp 18:07:31 -!- mathrick [~mathrick@85.218.134.11] has quit [Ping timeout: 254 seconds] 18:10:10 -!- abunchofdollarsi [~abunchofd@l33t.csail.mit.edu] has quit [Quit: Leaving] 18:13:29 bgs100 [~nitrogen@unaffiliated/bgs100] has joined #lisp 18:13:49 -!- joneshf-laptop [~joneshf@086.112-30-64.ftth.swbr.surewest.net] has quit [Remote host closed the connection] 18:18:59 -!- michael_lee [~michael_l@117.22.207.23] has quit [Remote host closed the connection] 18:19:08 -!- hyperboreean [~none@unaffiliated/hyperboreean] has quit [Ping timeout: 272 seconds] 18:19:51 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:19:53 -!- guyal [~anonymous@75-27-242-104.lightspeed.gldlca.sbcglobal.net] has quit [Quit: The Sleeper has Asleepen] 18:20:20 mathrick [~mathrick@85.218.134.11] has joined #lisp 18:20:21 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:20:32 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:20:41 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:20:53 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:21:09 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:21:22 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:21:58 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:22:10 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:22:23 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:22:35 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:23:02 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:23:14 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:23:27 joneshf-laptop [~joneshf@086.112-30-64.ftth.swbr.surewest.net] has joined #lisp 18:23:28 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:23:40 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:23:54 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:24:06 seangrove [~user@c-69-181-197-122.hsd1.ca.comcast.net] has joined #lisp 18:24:08 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:24:29 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:24:40 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:24:54 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:25:04 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:25:34 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:25:45 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:26:21 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:26:31 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:26:52 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:27:02 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:27:18 kristof [~kristof@unaffiliated/kristof] has joined #lisp 18:27:21 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:27:29 hiroakip [~hiroaki@77-20-51-63-dynip.superkabel.de] has joined #lisp 18:27:31 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:27:50 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:28:02 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:28:51 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:29:02 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:29:52 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has quit [Excess Flood] 18:30:03 zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has joined #lisp 18:30:03 -!- zhbfvuvabar87r [~esucg0aq4@197.195.99.113] has left #lisp 18:30:06 hs366_ [~hs366@94.254.45.76] has joined #lisp 18:30:25 alexherbo2 [~alexherbo@APlessis-Bouchard-154-1-61-104.w90-3.abo.wanadoo.fr] has joined #lisp 18:30:49 -!- hs366_ [~hs366@94.254.45.76] has quit [Remote host closed the connection] 18:30:59 -!- hs366 [~hs366@94.254.45.76] has quit [Quit: Leaving] 18:32:40 hs366 [~hs366@94.254.45.76] has joined #lisp 18:33:35 -!- hs366 [~hs366@94.254.45.76] has quit [Read error: Connection reset by peer] 18:33:47 hs366 [~hs366@94.254.45.76] has joined #lisp 18:36:48 -!- theos [~theos@unaffiliated/theos] has quit [Disconnected by services] 18:37:18 theos [~theos@unaffiliated/theos] has joined #lisp 18:42:48 -!- jk121960 [~jk121960@108-89-22-112.lightspeed.cicril.sbcglobal.net] has quit [Quit: WeeChat 0.4.1] 18:43:31 guyal [~anonymous@75-27-242-104.lightspeed.gldlca.sbcglobal.net] has joined #lisp 18:43:34 hiyosi [~skip_it@247.94.30.125.dy.iij4u.or.jp] has joined #lisp 18:44:03 -!- beach [~user@ABordeaux-651-1-238-248.w109-215.abo.wanadoo.fr] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 18:44:17 -!- guyal [~anonymous@75-27-242-104.lightspeed.gldlca.sbcglobal.net] has quit [Client Quit] 18:47:52 duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has joined #lisp 18:49:20 abunchofdollarsi: When using macroexpand in a macro, be sure to pass the environment parameter! 18:49:37 (defmacro m (&environment env ) (macroexpand  env)) 18:53:16 -!- eudoxia [~eudoxia@r190-135-15-74.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection] 18:53:18 nisstyre [~yours@oftn/member/Nisstyre] has joined #lisp 18:55:13 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 18:59:13 -!- joneshf-laptop [~joneshf@086.112-30-64.ftth.swbr.surewest.net] has quit [Remote host closed the connection] 18:59:38 -!- hiroakip [~hiroaki@77-20-51-63-dynip.superkabel.de] has quit [Ping timeout: 264 seconds] 19:00:52 przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has joined #lisp 19:01:07 -!- rainbyte [~rainbyte@190.191.129.32] has quit [Quit: Leaving] 19:03:44 -!- oxum [~oxum@122.164.105.247] has quit [Quit: ...] 19:14:35 -!- ggole [~ggole@106-68-112-72.dyn.iinet.net.au] has quit [] 19:21:21 optikalmouse [~omouse@69-165-245-60.cable.teksavvy.com] has joined #lisp 19:21:27 -!- [SLB] [~slabua@unaffiliated/slabua] has quit [Quit: Close the world, Open the nExt] 19:21:50 -!- jtza8 [~jtza8@105-237-71-197.access.mtnbusiness.co.za] has quit [Ping timeout: 272 seconds] 19:23:38 Mon_Ouie [~Mon_Ouie@subtle/user/MonOuie] has joined #lisp 19:24:37 -!- hex-code [~hex-code@123.237.137.209] has quit [Ping timeout: 272 seconds] 19:25:26 hex-code [~hex-code@123.237.137.209] has joined #lisp 19:27:44 fiveop [~fiveop@p5DDC42B5.dip0.t-ipconnect.de] has joined #lisp 19:28:10 -!- cmm [~cmm@bzq-79-176-9-162.red.bezeqint.net] has quit [Ping timeout: 272 seconds] 19:28:57 -!- duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has quit [Remote host closed the connection] 19:30:20 -!- hex-code [~hex-code@123.237.137.209] has quit [Ping timeout: 246 seconds] 19:31:06 hex-code [~hex-code@123.237.137.209] has joined #lisp 19:33:00 -!- Shinmera [~linus@xdsl-188-155-176-171.adslplus.ch] has quit [Ping timeout: 265 seconds] 19:34:33 Shinmera [~linus@xdsl-188-155-176-171.adslplus.ch] has joined #lisp 19:34:47 wccoder [~ewiltshi@unaffiliated/wccoder] has joined #lisp 19:35:33 cmm [~cmm@bzq-79-176-9-162.red.bezeqint.net] has joined #lisp 19:36:28 -!- nialo- [~yaaic@66-87-30-98.pools.spcsdns.net] has quit [Read error: Connection reset by peer] 19:37:01 -!- angavrilov [~angavrilo@217.71.227.190] has quit [Remote host closed the connection] 19:37:16 duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has joined #lisp 19:39:53 -!- normanrichards [~textual@cpe-24-27-51-104.austin.res.rr.com] has quit [] 19:40:12 -!- Mon_Ouie [~Mon_Ouie@subtle/user/MonOuie] has quit [Ping timeout: 272 seconds] 19:40:54 jtza8 [~jtza8@105-237-71-197.access.mtnbusiness.co.za] has joined #lisp 19:43:08 -!- duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has quit [Remote host closed the connection] 19:44:26 -!- alexherbo2 [~alexherbo@APlessis-Bouchard-154-1-61-104.w90-3.abo.wanadoo.fr] has quit [Quit: WeeChat 0.4.3-dev] 19:56:42 [SLB] [~slabua@unaffiliated/slabua] has joined #lisp 20:00:50 -!- oleo [~oleo@xdsl-78-35-140-156.netcologne.de] has quit [Ping timeout: 264 seconds] 20:01:18 oleo [~oleo@xdsl-78-35-135-188.netcologne.de] has joined #lisp 20:01:26 -!- Kabaka [~Kabaka@botters/kabaka] has quit [Quit: s/Kabaka//] 20:01:48 -!- przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has quit [Read error: Operation timed out] 20:06:46 duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has joined #lisp 20:07:56 Kabaka [~Kabaka@botters/kabaka] has joined #lisp 20:07:57 l_ [~l@84.233.246.170] has joined #lisp 20:09:26 desophos [~desophos@cpe-23-240-149-52.socal.res.rr.com] has joined #lisp 20:09:36 Davidbrcz [~david@88.115.137.88.rev.sfr.net] has joined #lisp 20:14:35 -!- sohail [~sohail@unaffiliated/sohail] has quit [Quit: This computer has gone to sleep] 20:15:35 sohail [~sohail@unaffiliated/sohail] has joined #lisp 20:17:18 chameco [~samuel@cpe-74-69-188-107.stny.res.rr.com] has joined #lisp 20:19:59 thepreacher_ [~thepreach@55.34.208.46.dyn.plus.net] has joined #lisp 20:20:45 -!- bgs100 [~nitrogen@unaffiliated/bgs100] has quit [Quit: brb] 20:23:41 bgs100 [~nitrogen@unaffiliated/bgs100] has joined #lisp 20:28:01 -!- fiveop [~fiveop@p5DDC42B5.dip0.t-ipconnect.de] has quit [Quit: humhum] 20:29:08 -!- DataLinkDroid [~DataLinkD@101.161.133.11] has quit [Quit: Disconnecting -- bye] 20:30:34 -!- thepreacher_ [~thepreach@55.34.208.46.dyn.plus.net] has quit [Quit: Leaving] 20:32:54 yacks [~py@103.6.159.103] has joined #lisp 20:35:02 -!- Karl_dscc [~localhost@p5DD9F822.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 20:37:58 nha [~prefect@koln-5d8161bb.pool.mediaWays.net] has joined #lisp 20:38:12 normanrichards [~textual@cpe-24-27-51-104.austin.res.rr.com] has joined #lisp 20:43:26 alexherbo2 [~alexherbo@APlessis-Bouchard-154-1-61-104.w90-3.abo.wanadoo.fr] has joined #lisp 20:43:44 -!- sohail [~sohail@unaffiliated/sohail] has quit [Quit: This computer has gone to sleep] 20:44:30 dcxi [~dcxi@32.Red-81-37-187.dynamicIP.rima-tde.net] has joined #lisp 20:45:31 sohail [~sohail@unaffiliated/sohail] has joined #lisp 20:47:29 -!- Kabaka [~Kabaka@botters/kabaka] has quit [Ping timeout: 240 seconds] 20:49:03 -!- arenz [~arenz@37.17.234.253] has quit [Ping timeout: 260 seconds] 20:51:51 randphu_ [~androirc@111.14.84.190] has joined #lisp 20:56:44 -!- l_ [~l@84.233.246.170] has left #lisp 20:57:36 -!- sohail [~sohail@unaffiliated/sohail] has quit [Quit: This computer has gone to sleep] 20:59:05 blah_ [b813808f@gateway/web/freenode/ip.184.19.128.143] has joined #lisp 20:59:18 hi 21:00:05 -!- duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has quit [Remote host closed the connection] 21:00:24 -!- randphu_ [~androirc@111.14.84.190] has quit [Quit: quit] 21:01:27 I am banned from free node because I accidentally spammed. repeated the same message accidentally in emacs and instance ban! 21:02:00 You don't seem banned to me. 21:02:06 I am not on my home network now 21:02:39 Viva Tor! 21:03:06 I was playing with emacs erc mode and it sent the same message several times. guess I'm banned for life now 21:04:34 minion: memo for Kromitvs: you could implement easily a profiler with cl-stepper. https://gitorious.org/com-informatimago/com-informatimago/source/2b53ae44e8fa4d040fafcf4d93976500a8e464dc:common-lisp/lisp/stepper-packages.lisp#L146 21:04:34 Remembered. I'll tell Kromitvs when he/she/it next speaks. 21:05:03 I can get around the ban with for? 21:05:04 blah_: once I implemented a flood protect to erc, but then it changed and I didn't have the time to upgrade it. 21:05:15 tor 21:05:39 blah_: This is #lisp, not #freenode-operators or whatever it's called. Check http://freenode.org 21:06:58 ok 21:07:25 -!- blah_ [b813808f@gateway/web/freenode/ip.184.19.128.143] has left #lisp 21:08:26 zpr [~zpr@c-50-186-190-3.hsd1.fl.comcast.net] has joined #lisp 21:08:43 is there a standard way to introspect on the value of the optimization settings? (speed, safety, ..) 21:08:59 nope 21:09:17 cltl2 had it but the interface was kind of terrible and it was removed. 21:09:17 Sorry, I couldn't find anything for had it but the interface was kind of terrible and it was removed.. 21:09:56 przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has joined #lisp 21:10:08 cltl2 declaration-information 21:10:09 http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html 21:10:21 huh, it actually works. 21:10:24 hello. i am trying to increase my understanding of lambdas and i have written this trivial function: (defun deriv(f) (lambda (x) (/ (- (f (+ x dx)) (f x)) dx))) 21:10:51 dx is unbound and f is in the wrong namespace. 21:11:05 it seems to work since if i call (deriv '(* x x)) for example, but i am having trouble to get it the new lambda to compute anything 21:11:18 i omitted (setq dx .0001) 21:11:29 Bike: what do you mean f is in the wrong namespace 21:12:01 Before namespaces, with (* x x) you'd get (lambda (x) (/ (- ((* x x) (+ x dx)) ((* x x) x)) dx)) which doesn't make any sense. 21:12:07 elliottslaughter [~elliott@108-85-90-17.lightspeed.frokca.sbcglobal.net] has joined #lisp 21:12:16 i actually just realized that after i sent my message 21:12:30 -!- Harag [~Thunderbi@41.13.4.48] has quit [Ping timeout: 245 seconds] 21:12:45 -!- elliottslaughter [~elliott@108-85-90-17.lightspeed.frokca.sbcglobal.net] has quit [Client Quit] 21:12:46 With namespaces, the problem is that in (lambda (f) (f ...)) f will look up a function, not the variable. Try (funcall f ...) to use a variable as a function 21:12:52 -!- przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has quit [Read error: Operation timed out] 21:14:20 bege [~bege@S0106001d7e5132b0.ed.shawcable.net] has joined #lisp 21:15:20 Bike, thank you. using funcall sort of makes sense. 21:15:28 i am returned a closure now 21:16:17 i am still not able to use this closure 21:16:25 Try funcalling it. 21:16:33 -!- Vivitron [~Vivitron@c-50-172-44-193.hsd1.il.comcast.net] has quit [Ping timeout: 246 seconds] 21:16:40 -!- wccoder [~ewiltshi@unaffiliated/wccoder] has quit [Quit: leaving] 21:16:47 sdemarre [~serge@91.176.207.143] has joined #lisp 21:16:56 i did 21:17:05 got a type error 21:17:20 You need to be more specific about what happened. 21:17:43 i am trying to understand myself 21:17:53 to be honest, i understand funcall, but its usage here is confusing em 21:17:54 You could paste the error (to paste.lisp.org). 21:20:02 -!- kristof [~kristof@unaffiliated/kristof] has quit [Read error: Operation timed out] 21:21:32 william-cushing: sbcl has an implementation specific way of getting the optimization levels (and other declarations IIRC). 21:22:46 you can use sb-cltl2. similar works in ccl. 21:25:19 antgreen [~green@dsl-173-206-82-201.tor.primus.ca] has joined #lisp 21:25:36 resttime [~rest@c-50-158-65-143.hsd1.il.comcast.net] has joined #lisp 21:26:33 -!- gravicappa [~gravicapp@ppp91-77-190-67.pppoe.mtu-net.ru] has quit [Ping timeout: 252 seconds] 21:27:36 przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has joined #lisp 21:28:21 setmeaway [setmeaway3@118.45.149.241] has joined #lisp 21:28:57 joneshf-laptop [~joneshf@086.112-30-64.ftth.swbr.surewest.net] has joined #lisp 21:29:21 minion: memo for william-cushing: in clisp, you just type (describe 'signum), and if it's well configured, it opens your browser on clhs signum. 21:29:21 Remembered. I'll tell william-cushing when he/she/it next speaks. 21:29:54 minion: memo for william-cushing: cf. #+clisp custom:*browser* and #+clisp custom:*browsers* 21:29:55 Remembered. I'll tell william-cushing when he/she/it next speaks. 21:33:01 Bike: http://paste.lisp.org/display/140296 21:33:32 opps 21:34:20 zpr: i don't understand what you expect this to do. (* x x) is not a function. 21:35:42 -!- ircbrowse [~chrisdone@unaffiliated/chrisdone] has quit [Quit: ZNC - http://znc.in] 21:37:29 zpr: '(* x x) is just a list, you'd have to turn it into a funcallable object by (possibly) wrapping it in a lambda form 21:37:54 -!- joneshf-laptop [~joneshf@086.112-30-64.ftth.swbr.surewest.net] has quit [Remote host closed the connection] 21:38:03 antoszka: right, i'm just trying to wrap my head around this 21:38:18 zpr: but then you're still stuck with the issue of parameters (x is not captured in the scope of the deriv function) 21:38:48 -!- milosn [~milosn@user-5af50b40.broadband.tesco.net] has quit [Read error: Operation timed out] 21:38:49 zpr: you're mixing variable-capture-macro style with other stuff and making this overly complicated 21:39:11 antoszka: that's what it seems to me. this should be easy in lisp 21:39:35 milosn [~milosn@user-5af50afe.broadband.tesco.net] has joined #lisp 21:40:07 zpr: if your function takes a single argument, pass it in the form (lambda (x) (* x x)) 21:40:14 zpr: rather than '(* x x) 21:40:31 i am trying t odefine that as a macro right now 21:40:38 then it might work (but i'm too drunk to verify) 21:41:04 it would work, yes. so would (lambda (z) (* z z)) for that matter. 21:41:10 is it "customary" to use handler-bind and signal to pass information in between different parts of the code? 21:41:41 like I miss something in the context I am, I would just handler-bind where I have the context I need and signal where I don't 21:42:30 -!- alexherbo2 [~alexherbo@APlessis-Bouchard-154-1-61-104.w90-3.abo.wanadoo.fr] has quit [Quit: WeeChat 0.4.3-dev] 21:42:49 zpr: yeah, as Bike says, the variable name won't matter  there's no variable capture going on when it's done the macro-less way 21:43:02 antoszka, Bike: yes, i realize this 21:43:04 Bike, pjb: thanks for the info. I just noticed that the webchat highlights in red when people are talking to you. Is there some magic keypress, or are people just typing out handles manually? 21:43:04 william-cushing, memo from pjb: in clisp, you just type (describe 'signum), and if it's well configured, it opens your browser on clhs signum. 21:43:04 william-cushing, memo from pjb: cf. #+clisp custom:*browser* and #+clisp custom:*browsers* 21:43:13 oh, turns out I have the information ;-) 21:43:19 william-cushing: typing handles with tab completion, yes 21:43:40 Bike: ofc the obvious thing works. Sorry for the dumb question :) 21:43:45 william-cushing: you could try pjTAB, etc. 21:44:07 -!- normanrichards [~textual@cpe-24-27-51-104.austin.res.rr.com] has quit [] 21:44:22 alright, to rectify, how about a better question. Who invented tab-completion? 21:44:46 geez, i don't know. must be decades old. 21:45:17 "Tab completion showed up early in computing history; one of the first examples appeared in the Berkeley Timesharing System for the SDS 940" says wikipedia. 21:45:48 shoot, of course wikipedia would know. So much for a better question ;). 21:47:11 l_ [~l@84.233.246.170] has joined #lisp 21:48:27 -!- l_ [~l@84.233.246.170] has left #lisp 21:49:11 -!- chameco [~samuel@cpe-74-69-188-107.stny.res.rr.com] has quit [Ping timeout: 260 seconds] 21:50:04 -!- mishoo [~mishoo@93.113.190.121] has quit [Quit: (save-lisp-and-die)] 21:50:26 mishoo [~mishoo@93.113.190.121] has joined #lisp 21:52:57 Beetny [~Beetny@ppp118-208-116-44.lns20.bne4.internode.on.net] has joined #lisp 21:53:30 nialo- [~yaaic@66-87-82-204.pools.spcsdns.net] has joined #lisp 21:54:55 -!- alezost [~user@128-70-197-79.broadband.corbina.ru] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 21:59:09 -!- sdemarre [~serge@91.176.207.143] has quit [Ping timeout: 272 seconds] 22:01:22 christophergonza [~user@c-71-198-140-178.hsd1.ca.comcast.net] has joined #lisp 22:04:11 slarti [~anonymous@c-76-25-104-118.hsd1.co.comcast.net] has joined #lisp 22:05:43 ASau` [~user@p5083D4AE.dip0.t-ipconnect.de] has joined #lisp 22:06:43 nialo-2 [~yaaic@66-87-83-9.pools.spcsdns.net] has joined #lisp 22:07:59 -!- nialo- [~yaaic@66-87-82-204.pools.spcsdns.net] has quit [Read error: Connection reset by peer] 22:08:47 -!- ASau [~user@p54AFEEE1.dip0.t-ipconnect.de] has quit [Ping timeout: 260 seconds] 22:11:29 Jordan_ [~jordan@c-174-59-197-213.hsd1.pa.comcast.net] has joined #lisp 22:11:35 -!- ASau` is now known as ASau 22:11:38 -!- christophergonza [~user@c-71-198-140-178.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 22:11:41 -!- Jordan_ is now known as Kaye 22:11:58 -!- Kaye is now known as JKaye 22:12:50 -!- JKaye is now known as Kaye 22:13:42 -!- Kaye is now known as JKaye 22:14:53 minion: memo for beach: sorry for disappearing, I got a migraine. Anyway, I forgot to ask why exactly you decided to move to gap buffers, and wouldn't gap buffers have the same problems with attaching data as flexichains? 22:14:53 Remembered. I'll tell beach when he/she/it next speaks. 22:15:00 -!- jtza8 [~jtza8@105-237-71-197.access.mtnbusiness.co.za] has quit [Remote host closed the connection] 22:15:37 -!- zpr [~zpr@c-50-186-190-3.hsd1.fl.comcast.net] has quit [Quit: Leaving.] 22:16:30 -!- foreignFunction [~niksaak@ip-4761.sunline.net.ua] has quit [Quit: Leaving.] 22:17:13 Hey guys, so I'm working on my first lisp project big enough to require packaging and I'm having some issues with quickload/quickpackage.. It seems like some of my functions aren't getting evaluated/exported when I quickload the package even though they do when I load files individually 22:17:16 -!- nialo-2 [~yaaic@66-87-83-9.pools.spcsdns.net] has quit [Ping timeout: 246 seconds] 22:17:36 Does anyone know what could cause that to happen? I'm guessing that I'm not understanding packaging properly.. 22:17:50 i would guess it's a compile-time/load-time issue 22:17:52 JKaye: wait - you have a working .asd? 22:18:14 Yes, .asd works fine and quickloading the package properly loads all dependencies 22:19:07 But when I quickload, even though my dependencies become available, nothing gets exported into the package 22:19:47 what's the package definition? do you export? 22:20:06 I can put it up on pastebin or something if you'd like.. I export 5 functions 22:20:19 yes, it might help if you do so.. 22:20:22 Additionally, I have some macro calls that expand into function definitions/interns/exports 22:20:24 joneshf-laptop [~joneshf@086.112-30-64.ftth.swbr.surewest.net] has joined #lisp 22:20:25 we have paste.lisp.org. 22:20:25 Sure 22:20:34 duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has joined #lisp 22:20:40 Oh, are you calling export and import...? 22:22:17 kcj [~casey@unaffiliated/kcj] has joined #lisp 22:22:21 alexherbo2 [~alexherbo@APlessis-Bouchard-154-1-61-104.w90-3.abo.wanadoo.fr] has joined #lisp 22:23:15 I am, the exporting and interning works if I (load filename) 22:23:24 Here are the .asd and package files http://paste.lisp.org/display/140297 22:24:07 import and export calls are kind of weird. are those files in the right package? 22:24:52 I can paste one of those files as well if it would be easier, they're pretty small still at this point 22:25:51 sure. 22:27:01 Here you go: http://paste.lisp.org/display/140297#1 22:27:12 I'm sure it's not the best lisp ever.. like I said I'm learning :) 22:29:34 the intern call isn't needed, since the symbol already exists, or else it couldn't be the name. and probably you should just do (export ',name 'btc) instead of all that silly indirection. but i'm not sure how well that will work, in... wait, no, i see the problem 22:29:38 echo-area [~user@123.120.238.216] has joined #lisp 22:29:42 -!- przl [~przlrkt@p5DCA3E33.dip0.t-ipconnect.de] has quit [Ping timeout: 246 seconds] 22:29:55 macros only return one form. return `(progn (defun ...) (export ...)). as you have it now only the export is made of the macroexpansionn. 22:31:02 -!- hs366 is now known as __0Ace 22:31:06 Even though it works if I just (load) the file directly? 22:31:19 Makes sense what you say about the intern, I can change that 22:31:40 -!- __0Ace is now known as _0Ace 22:32:13 i can only assume there's some weirdness you haven't told me about or noticed in your environment to make loading work, because that macro is wrong. 22:33:12 (macroexpand-1 '(defbtcfun getbalance account minconf)) => (EXPORT (FIND-SYMBOL (SYMBOL-NAME 'GETBALANCE) 'BTC) 'BTC) 22:33:19 no defun. 22:33:39 hmm 22:33:50 I must've had the function already defined or something 22:33:51 so change it to expanding into a progn and see if that works. 22:33:59 yeah, probably. you could try it with a clean image if you want. 22:34:15 I'll try that out now and see if I can work it out 22:34:17 Thanks! 22:35:12 -!- haxx [~Rob@69.77.176.98] has quit [Ping timeout: 265 seconds] 22:36:25 Okay, so everything works with the new macro definition, but the same problem I was having before persists.. 22:36:39 If I do (ql:quickload :btc) dependencies are loaded but no functions are available 22:36:52 If I (load "~/src/lisp/bl-bitcoin/functions.lisp") 22:36:55 -!- Tarential [~Tarential@li421-205.members.linode.com] has quit [Excess Flood] 22:37:05 what exactly happens when you try to call a function and it "isn't available". 22:37:09 The two functions defined by defbtcfun are available 22:37:17 Tarential [~Tarential@li421-205.members.linode.com] has joined #lisp 22:37:27 Reader error: No external symbol named "HELP" in package # . 22:37:27 [Condition of type SIMPLE-ERROR] 22:37:52 I can take two fresh REPLs and show the corresponding outputs 22:37:57 if you want to see exactly what happens 22:38:02 no, that's enough. 22:38:14 does calling btc::help work? 22:38:14 qw3rtman [~qw3rtman@pool-71-252-177-42.dllstx.fios.verizon.net] has joined #lisp 22:38:30 That's actually the call I'm making (btc:help "getinfo") 22:38:34 jk121960 [~jk121960@108-89-22-112.lightspeed.cicril.sbcglobal.net] has joined #lisp 22:38:37 two colons. 22:38:43 oh 22:38:47 let me try 22:39:08 Undefined function BTC::HELP called with arguments ("getinfo") . 22:39:08 [Condition of type CCL::UNDEFINED-FUNCTION-CALL] 22:39:32 I think the macro call is never being evaluated? 22:40:00 -!- strobegen [~Adium@188.168.72.236] has quit [Quit: Leaving.] 22:40:14 urgh. what does macroexpanding defbtcfun get you now? 22:40:15 roadfish [~user@209-239-15-170.ded.execulink.com] has joined #lisp 22:42:53 I'll annotate the paste 22:43:50 http://paste.lisp.org/display/140297#2 22:45:20 Bike_ [~Glossina@75-175-70-102.ptld.qwest.net] has joined #lisp 22:45:54 does create-btc-object exist? 22:45:59 yup 22:46:00 -!- Bike [~Glossina@174-25-43-113.ptld.qwest.net] has quit [Disconnected by services] 22:46:01 -!- hiyosi [~skip_it@247.94.30.125.dy.iij4u.or.jp] has quit [Ping timeout: 272 seconds] 22:46:02 -!- Bike_ is now known as Bike 22:46:17 well 22:46:40 Actually how would I check that? 22:47:16 yeltzooo3 [~yeltzooo@162.243.110.169] has joined #lisp 22:47:19 try calling it? 22:47:35 So if I do a quickload and then switch my repl into the btc package 22:47:36 or just (fboundp 'btc:create-btc-object) 22:47:40 nothing exists 22:48:54 It seems to me like quickload just isn't evaluating anything for some reason 22:49:01 but that seems weird.. 22:49:41 maybe you just need to clear fasls. 22:50:06 How do I do that? 22:50:27 foreignFunction [~niksaak@ip-4761.sunline.net.ua] has joined #lisp 22:51:39 hm 22:51:48 maybe just try (asdf:compile-system :btc :force t) 22:52:07 kristof [~kristof@unaffiliated/kristof] has joined #lisp 22:55:24 is there something like `substring' in elisp for lists? so 22:55:27 eg (slice (2 3 4 5 6 7 8 9) 2 4) -> (3 4 5 6) 22:55:59 Try #emacs 22:55:59 roadfish: probably called 'subseq' or the like, but ask #emacs, not here 22:56:35 ok, thanks 22:57:08 roadfish: if you want to do anything with emacs lisp, you have to (require 'cl) and then you'd have eg. (subseq '(1 2 3 4 5) 2 4) --> (3 4) 22:57:51 ok, cool ... the common-lisp extensions 22:57:51 Still no luck unfortunately :/ 22:58:19 -!- hedd_passes_out [~yoshi@76.8.3.189] has left #lisp 23:00:01 -!- yeltzooo [~yeltzooo@ec2-54-241-122-161.us-west-1.compute.amazonaws.com] has quit [Remote host closed the connection] 23:00:16 -!- hex-code [~hex-code@123.237.137.209] has quit [Ping timeout: 260 seconds] 23:01:01 hex-code [~hex-code@123.237.137.209] has joined #lisp 23:02:13 normanrichards [~textual@cpe-24-27-51-104.austin.res.rr.com] has joined #lisp 23:02:50 -!- yeltzooo3 [~yeltzooo@162.243.110.169] has quit [Remote host closed the connection] 23:02:54 JKaye: ql:quickload writes the packages that get defined when it loads. 23:03:03 on the output. 23:03:17 yeltzooo [~yeltzooo@162.243.110.169] has joined #lisp 23:04:06 So you're saying that it won't evaluate the files? 23:04:52 I'm saying that you should see BTC or some other package name printed when you (ql:quickload :btc) or else there's a problem. 23:06:03 -!- roadfish [~user@209-239-15-170.ded.execulink.com] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:06:22 I do see that. I'll annotate the paste with my REPl 23:06:26 pjb: the (require 'cl) bit made me chuckle 23:06:37 elisp decent programming language 23:06:37 Sorry, I couldn't find anything for decent programming language. 23:06:44 :) 23:08:07 pjb means the cl system for elisp, it's real 23:08:15 No, I know that 23:08:35 "If you want to do anything with emacs lisp, you have to (require 'cl)" 23:08:45 Implies you can't do anything with the standard emacs-lisp functions. 23:09:13 Here's the annotation with the REPL: http://paste.lisp.org/display/140297#3 23:09:42 kristof: well, without emacs-lisp, you can write cl.el. 23:09:49 and then you can do something useful. 23:09:51 -!- duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has quit [Remote host closed the connection] 23:10:14 -!- kristof [~kristof@unaffiliated/kristof] has left #lisp 23:10:45 JKaye: so the system was loaded, and the package was defined. What's the problem? 23:11:02 None of the functions that I defined are available 23:11:15 QwertyDragon [~chatzilla@pool-71-174-212-30.bstnma.fios.verizon.net] has joined #lisp 23:11:20 paste the btc.asd 23:11:23 -!- _0Ace [~hs366@94.254.45.76] has quit [Quit: Leaving] 23:12:44 and you did use `(progn (export '(,name)) (defun ,name )) in the macro? 23:12:45 hiyosi [~skip_it@247.94.30.125.dy.iij4u.or.jp] has joined #lisp 23:12:57 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Quit: mrSpec] 23:13:06 (it's better to move the defun at the end, so that your macro returns the same as defun, which is the name of the function. 23:13:10 ). 23:14:15 the btc.asd is in one of the earlier annotations on the same paste 23:14:29 -!- LiamH [~healy@pdp8.nrl.navy.mil] has quit [Quit: Leaving.] 23:14:47 and that's helpful, thanks. Is that just a style thing? Functionally it should have the same side effects right? 23:16:10 Ah right, I didn't scroll up enough. 23:16:31 -!- Davidbrcz [~david@88.115.137.88.rev.sfr.net] has quit [Ping timeout: 260 seconds] 23:16:34 JKaye: none of your file depend on "package". 23:16:38 This is a problem. 23:16:52 files. 23:17:10 Well, you used :serial t. Lazy! 23:17:33 duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has joined #lisp 23:17:46 Haha, what do you mean? I don't fully understand, I just set the package up with quickpackage 23:18:00 Any advice in that respect would be appreciated as well.. this is my first shot at packaging in lisp 23:18:04 -!- hiyosi [~skip_it@247.94.30.125.dy.iij4u.or.jp] has quit [Ping timeout: 272 seconds] 23:18:16 JKaye: no, it's ok. With :serial t the files are compiled and loaded in order, is it works. 23:18:16 :serial t means the system dependency order is just the order of the files listed in the asd 23:18:22 s/is/so/ 23:18:33 but without :serial you specify dependencies on each file, so you'd have to put in that function depends on package, and so on 23:18:44 JKaye: I was surprised, because I don't use :serial t in general, I just spell out all the dependencies. 23:19:23 I see 23:19:36 do you think that having the erroneous packages dependency would cause these issues? 23:19:52 Ok, one problem is that with your macro, exporting will occur only when the files are loaded, not when they are compiled. Therefore all compilation-time side effects of defun have no consequence outside of the package, at compilation time. This doesn't explain your problem, but may cause other problems down the line. 23:20:14 So use something like: `(progn (eval-when (:compile-toplevel :load-toplevel :execute) (export '(,name))) (defun ,name )) 23:20:28 impulse [~impulse@bas3-toronto48-2925078734.dsl.bell.ca] has joined #lisp 23:21:04 I was looking into eval-when earlier too, hoping that would have something to do with this. So if I have another similar macro that defines classes I should use the eval-when there too I would assume 23:21:31 -!- duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has quit [Remote host closed the connection] 23:21:39 And do I need the progn if it's in an eval-when? 23:22:08 -!- nenorbot [~ronen@IGLD-84-229-58-87.inter.net.il] has quit [Ping timeout: 272 seconds] 23:22:50 JKaye: you want to keep the defun outside of the eval-when. 1- it has its own, 2- it would be bad to redefine the function at load or execute time (it would nullify the compilation). 23:23:16 duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has joined #lisp 23:23:42 Ah, I see 23:24:23 k0001 [~k0001@host93.190-138-115.telecom.net.ar] has joined #lisp 23:25:03 JKaye: when I load your system and do (btc:help "getinfo") I get: FUNCALL: undefined function BTC::GET-BITCOIND-RESULT which is normal since you didn't paste two files in your system, and which proves that help is well defined and exported. 23:25:09 So there's no problem. 23:26:11 load it with (load) or with (quickload) or some other way? 23:26:40 If I load my files with (load) everything works as I would expect 23:26:47 -!- alexherbo2 [~alexherbo@APlessis-Bouchard-154-1-61-104.w90-3.abo.wanadoo.fr] has quit [Read error: Connection reset by peer] 23:26:52 alexherb1 [~alexherbo@APlessis-Bouchard-154-1-61-104.w90-3.abo.wanadoo.fr] has joined #lisp 23:27:07 fridim__ [~fridim@bas2-montreal07-2925317577.dsl.bell.ca] has joined #lisp 23:27:50 -!- k0001_ [~k0001@181.110.65.6] has quit [Ping timeout: 264 seconds] 23:27:51 Vivitron [~Vivitron@c-50-172-44-193.hsd1.il.comcast.net] has joined #lisp 23:28:58 (ql:quickload :btc) 23:29:09 Hmmmm 23:29:16 Something must be weird with my setup or something then 23:29:31 Because what happens for me is what's shown on the REPL that I pasted.. 23:30:42 Now, if you don't modify package.lisp it has no reason to load packages.lisp and the other files. If you don't modify bitcoin.lisp, it has no reason to load bitcoin.lisp and classes.lisp and functions.lisp. If you don't modify classes.lisp, it has no reason to load classes.lisp and functions.lisp And if you don't modify functions.lisp, it has no reason to load functions.lisp. 23:31:17 Did you modify any of those files? And save them? This is not eclipse, if you don't save the file, quicklisp won't notice something changed in emacs memory. 23:32:03 Yeah, I mean even if I start up a fresh REPL and try I get them same thing. Plus I've been saving the files a few times as we've been talking to incorporate the changes that you've suggested 23:32:23 Also it's really strange to me that not even the explicit exports are defined in the package 23:34:02 You should paste the whole directory. You could do: tar jcf - btc/ | uuencode btc.tar.bz2 and paste the output. 23:34:29 tar jcf - btc/ | uuencode btc.tar.bz2 | mail -s btc pjb@informatimago.com # would do too. 23:35:03 I can do that, but something you just said actually reminded me of something that could come into play 23:35:48 When I first set this package up I did (quickpackage:create-package "~/src/lisp/cl-bitcoin/" :name "btc" :depends-on '(drakma flexi-streams cl-json)) 23:35:59 so the package name is different from the source code folder 23:36:13 I forgot that asd uses that folder for some stuff.. could that be causing these issues? 23:36:22 This doesn't matter. As long as the directory in on asdf:*central-registry*. 23:36:48 In what system is quickpackage? 23:37:15 (ql:quickload :quickpackage) 23:37:50 Nope, it doesn't find it. Since quickpackage is not distributed by quicklisp, this is surprizing. 23:38:25 hmm 23:38:53 ltbarcly [~textual@pool-71-116-67-9.snfcca.dsl-w.verizon.net] has joined #lisp 23:39:40 I don't find quickpackage with google. What is it? 23:39:44 Where is it? 23:40:10 This is what I followed to make the original package 23:40:11 http://xach.livejournal.com/278047.html?thread=674335 23:40:14 JKaye: did you mean quickproject, by chance? 23:40:26 I do 23:40:27 I'm sorry 23:40:34 That was dumb.. 23:40:37 Of course, I searched for quickpackage on this page and didn't find anything. 23:40:40 -!- duggiefresh [~duggiefre@c-66-30-11-90.hsd1.ma.comcast.net] has quit [Remote host closed the connection] 23:41:09 There's no function named create anything on this page either. 23:41:16 What kind of drug are you on? 23:41:16 zpr [~zpr@c-50-186-190-3.hsd1.fl.comcast.net] has joined #lisp 23:42:19 The kind where my memory serves me incorrectly apparently 23:42:20 (quickproject:make-project 23:42:48 victor_lowther [uid17606@gateway/web/irccloud.com/x-vmyroyehxnyyyctf] has joined #lisp 23:43:03 zacharias [~aw@unaffiliated/zacharias] has joined #lisp 23:43:19 quickproject:make-project does push the directory onto asdf:*central-registry*, so it should be ok. 23:44:23 I actually don't see that directory there if I print the contents of that 23:44:23 If you restart your lisp, you have to either place your btc directory in ~/quicklisp/local-projects/ or push its path onto asdf:*central-registry*. Then (ql:quickload :btc) again, and everything should be fine. 23:45:23 Using "~/src/lisp/cl-bitcoin/" may be a problem. Most implementations need #P"~/src/lisp/cl-bitcoin/" to interpret "~". Try: (directory #P"~/src/lisp/cl-bitcoin/*.lisp") 23:45:56 Perhaps you've created a directory named "~" in some current working directory. 23:46:17 find ~ -name \~ -type d -print # ;-) 23:46:53 -!- bananagram [~bot@c-76-30-158-226.hsd1.tx.comcast.net] has quit [Ping timeout: 246 seconds] 23:47:02 bananagram [~bot@c-76-30-158-226.hsd1.tx.comcast.net] has joined #lisp 23:47:55 Yeah something definitely got messed up when I made this package, or with the was I configured asdf 23:48:34 JKaye: your symptoms are consistent with what happens when QL or ASDF find a /different/ .asd file than you expect it to. Did you have take an alternate approach before quickproject that you may have left in the file system, which could shadow the quickproject generated asd? 23:48:36 If I push that directory onto asdf:*central-registry* and attempt to quickload I get an error "There is no package named "BTC"" 23:49:09 Vivitron: That is definitely possible.. Is there somewhere I can go to see which asd file asdf is using? 23:49:35 edgar-rft [~GOD@HSI-KBW-109-193-013-113.hsi7.kabel-badenwuerttemberg.de] has joined #lisp 23:49:57 I would name my system: com.informatimago.common-lisp.bitcoin not btc. btc stands for Bahamas Telecommunications Company. 23:50:21 -!- slarti [~anonymous@c-76-25-104-118.hsd1.co.comcast.net] has quit [Quit: slarti] 23:51:00 pjb: Don't worry, I haven't named anything yet.. I'm sure this thing will change 100 times before it's ready for anyone to actually use it. I'm using this mostly as a learning exercise in CL :) 23:51:14 Do you have a domain name? 23:51:20 JKaye: I think (asdf:system-source-file "btc") might do the trick. 23:51:48 pjb: Nope. 23:52:03 That could be useful. 23:52:10 well my CL learning exercise is making me want to beat my head in 23:52:14 but that's the same for everything 23:52:39 I guess you could create a project on common-lisp.net, and use net.common-lisp.jkaye-bitcoin 23:52:44 -!- zpr [~zpr@c-50-186-190-3.hsd1.fl.comcast.net] has left #lisp 23:53:17 Vivitron: Perfect. You're right. There's a different .asd file that's being referenced.. So it's been a configuration problem all along 23:53:47 JKaye: why don't you check asdf:*central-registry* I mentionned it several times already! 23:53:52 pjb: I'll probably make a domain for myself sometime soon.. Haven't thought too much about it 23:54:03 -!- hex-code [~hex-code@123.237.137.209] has quit [Ping timeout: 246 seconds] 23:54:07 I did check it! Nothing was there.. 23:54:08 There are those new tld, like .guru 23:55:00 hex-code [~hex-code@123.237.137.209] has joined #lisp 23:55:03 chameco [~samuel@cpe-74-69-188-107.stny.res.rr.com] has joined #lisp 23:55:26 pjb: maybe informatimago will be a tld in the future, and some common lisp programming will buy com.informatimago and cause package name collisions! 23:57:27 pjb: The reason I didn't see anything in the central registry is because I have a user source registry entry for ~/src/lisp/ 23:57:32 (I think) 23:57:56 -!- hex-code [~hex-code@123.237.137.209] has quit [Max SendQ exceeded] 23:58:30 central-registry is obsolete anyway 23:58:53 hex-code [~hex-code@123.237.137.209] has joined #lisp