00:00:17 lisp is what makes forth universal! 00:00:19 lukego: What was mind blowing about Squeak is they released a runtime for a couple of platforms, and because it builds it's own c, people just ported it with a couple of commands. 00:00:22 one does not simply push into mordor. 00:00:37 JohnnyL [i=excellen@ool-182f0b98.dyn.optonline.net] has joined #lisp 00:00:39 -!- tsuru``` [n=user@c-174-50-217-160.hsd1.tn.comcast.net] has quit [Read error: 110 (Connection timed out)] 00:00:41 night 00:01:04 Vonunov [n=jack@99-58-1-192.lightspeed.rcsntx.sbcglobal.net] has joined #lisp 00:01:30 yeah Squeak is pretty amazingly portable. I actually did a port of it to Forth recently in some small sense :) at least enough to show the GUI and click the mouse, but not enough to be actually useful 00:01:52 see also: http://home.pipeline.com/~hbaker1/ForthStack.html 00:02:19 -!- saikatc [n=saikatc@adsl-76-233-236-102.dsl.pltn13.sbcglobal.net] has quit [Client Quit] 00:02:27 -!- timor [n=timor@port-87-234-97-138.dynamic.qsc.de] has quit [Remote closed the connection] 00:02:37 and by "port to forth" I mean just implementing the basic C primitives (move mouse pointer, get event, etc) in Forth code talking to hardware/firmware. 00:02:51 I would like to finish that some day (tm) 00:03:33 Forth is one of those languages that is really fun though. I have some microprocessors that are written entirely in Forth, 4K of code. 00:03:58 agreed 00:04:21 Debugging can be painful at times, but oh well. 00:04:32 that's what the hexdump command is for. :) 00:05:02 jsoft_ [n=user@unaffiliated/jsoft] has joined #lisp 00:05:12 Now Factor on the other hand...they have some nice debugging systems in it (Factor is forth like, but has objects and blocks) 00:05:41 bah Factor is in the Lisp family : 00:05:57 lukego: Is it? 00:06:10 -!- jsoft [n=user@unaffiliated/jsoft] has quit [Connection reset by peer] 00:06:26 it has more in common with Common Lisp than Forth imho (ianaexpert, etc) 00:07:49 but then even Forth is not Forth imho. I'm told that some Forth systems are basically Lisp-esque optimizing compilers. I like the romantic Forth that's all threaded code etc. 00:08:31 but I guess plenty of people who know Forth much better than me would disagree. :) 00:08:46 lukego: with simpler CPUs that might be practical 00:08:53 but CPUs don't work like forth 00:09:00 [ibid] 00:11:50 I saw a Forth book that could fit a Forth VM for about five different architectures all on one page. admittedly those were pretty simple CPUs :) but I think a Forth VM is pretty implementable on most machines 00:12:12 -!- Draggor [n=Draggor@216-80-120-145.alc-bsr1.chi-alc.il.static.cable.rcn.com] has quit [Read error: 110 (Connection timed out)] 00:13:49 Grmbl. Stop having all interesting conversations at bedtime! :-) 00:14:26 my bedtime too. we can return everybody to #lisp :) 00:14:31 lukego: (/= works fast) 00:14:49 fast shmast :) 00:15:08 heh 00:15:11 the "hotspots" are offloaded to hardware or written in forth-based asm :) 00:15:25 right :P 00:15:53 "converting to hardware" means "optimizing compiler" 00:15:58 *rahul* wins 00:16:50 cmsimon [n=cms@unaffiliated/cmsimon] has joined #lisp 00:17:47 it's a conversation, not a contest :) 00:18:04 or does that make me sound like a sore loser :) 00:18:30 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [] 00:19:59 *rahul* (expt wins 2) 00:20:50 lukego: forgive rahul, for he doesn't know what he's talking about 00:20:51 I was firmware hacking this summer and we needed to play a sound jingle during boot. the sound was compressed to 8kHz but the hardware only supported 48kHz so it had to be upsampled -- really fast, because this is happening everytime the machine boots. 00:21:28 -!- LiamH [n=nobody@pool-141-156-235-91.res.east.verizon.net] has quit [Connection reset by peer] 00:21:29 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #lisp 00:21:34 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [Remote closed the connection] 00:21:53 I wrote a lame-ass one in Forth that ran slow and sounded like crap. then a real Forth programmer showed me how it's really done: http://tracker.coreboot.org/trac/openfirmware/browser/cpu/x86/iirfilter.fth 00:22:02 try telling that guy he needs an optimizing compiler. :) 00:22:44 lukego: php programmers don't need optimizing compilers either 00:22:51 they just need more blades 00:23:24 what do they use the blades for? 00:23:49 konr [n=user@189.96.122.11] has joined #lisp 00:23:52 tic: to run their disgusting CGI 00:23:56 hopefully, chopping off the hands of php programmers 00:25:03 Does anyone here use SBCL on Ubuntu? I installed the cl-sdl package from aptitude, but SBCL doesn't seem able to find the SDL packages (i'm trying to run the demos) 00:25:19 -!- majhool [n=mrw@user-118bgr6.cable.mindspring.com] has quit ["leaving"] 00:27:56 necroforest: don't use Debian packages for that, install only SBCL and Emacs from Ubuntu, the rest get clbuild for 00:28:00 -!- konr [n=user@189.96.122.11] has quit [Remote closed the connection] 00:28:02 -!- konr` [n=user@189.96.122.11] has quit [Read error: 54 (Connection reset by peer)] 00:28:21 minion: tell necroforest about clbuild 00:28:22 necroforest: look at clbuild: clbuild [common-lisp.net] is a shell script helping with the download, compilation, and invocation of Common Lisp applications. http://www.cliki.net/clbuild 00:28:25 hmm 00:28:54 are the ubuntu packages for use with other compilers? or do they just suck? 00:28:58 necroforest: use clc:clc-require, maybe 00:29:09 necroforest: if they upgraded ubuntu 00:29:21 because foom was complaining too much 00:29:21 mmm chopping off hands. I'd almost prefer that to writing PHP code. 00:29:33 tic: that's why we don't need to chop off your hands 00:29:47 rahul, and I'm very happy for that! 00:29:56 What's ironic about the PHP comment is my main position for the past...god, like 5 years I guess now has been PHP development :) 00:29:56 konr [n=user@189.96.122.11] has joined #lisp 00:30:22 timjr confided to me that in trying to reimplement PHP he developed a grudging respect for it 00:30:23 Maybe avoiding PHP in my free time and doing CL development is my saving grace perhaps 00:30:27 necroforest: let's say that debian packages aren't necessarily user friendly nor good, so to avoid long explanations some people prefer to send newbies towards clbuild :D 00:30:28 TDT, well, do you /enjoy/ writing PHP code? 00:30:38 ok 00:31:04 tic: No....I actually have mostly a hate for it, but somehow fell into jobs that use it. Well..now doing more Ruby work, but still. 00:31:14 TDT, *nod* 00:31:29 necroforest: they broke the packages in debian because people wanted clbuild to work 00:31:41 Bed time. Good night and so forth. ;) 00:31:44 necroforest: but if your entry point is clc:clc-require, it will work fine 00:35:31 hmm ok 00:36:20 kingdon [n=yebyen@irie-arch.rit.edu] has joined #lisp 00:36:54 -!- plage [n=user@118.68.196.23] has quit [Read error: 60 (Operation timed out)] 00:37:39 -!- legumbre_ is now known as legumbre 00:38:33 lnostdal: around? 00:40:22 -!- carlocci [n=nes@93.37.203.36] has quit ["eventually IE will rot and die"] 00:42:33 gemelen [n=shelta@shpd-78-36-166-12.static.vologda.ru] has joined #lisp 00:44:11 Will cmucl's hemlock work in sbcl without modifications? 00:44:47 antoszka: there's new portable hemlock implementation 00:45:00 p_l: Got an URL handy? 00:45:10 nvm, found it 00:45:12 check on sbcl10 iirc 00:45:24 hemlock-2003-08-16.tar.gz 00:45:27 :) 00:45:37 Time flies... 00:45:48 antoszka: improbable 00:46:15 Naglfar [n=Severanc@127.Red-83-63-236.staticIP.rima-tde.net] has joined #lisp 00:46:42 hello 00:46:43 necroforest: although they still work if you invoke them correctly 00:46:45 antoszka: its last fork is http://gitorious.org/hemlock/ 00:46:54 fe[nl]ix: thx 00:47:10 -!- gruseom [n=daniel@S0106001217057777.cg.shawcable.net] has quit [Read error: 110 (Connection timed out)] 00:47:33 I found this error appear at dmesg: 00:47:36 lisp.run[30516] general protection ip:48b322 sp:7fff467df4c0 error:0 in lisp.run[400000+1f4000] 00:48:19 Naglfar: clisp? 00:48:25 yes 00:48:30 Naglfar: which OS? 00:48:37 drewc, somewhat :) 00:48:52 lnostdal: hey, just sent you a couple emails regarding your VPS 00:48:52 slackware based x86_64 00:49:06 drewc, ok 00:49:15 Naglfar: do you have any of those "security" patches? 00:49:28 lnostdal: /msg me or email me if you have any questions/comments. 00:49:34 although I don't think clisp would be vulnerable to security 00:49:37 I have no patched clisp 00:49:43 Naglfar: no, the kernel 00:50:09 Naglfar: what are you running when that happens? 00:50:24 running xmaxima 00:50:36 rahul: general protection error suggest a rather catastrophic failure of some code in clisp :) 00:50:47 emma [n=em@unaffiliated/emma] has joined #lisp 00:51:03 p_l: yeah, trying to think what the GC does in clisp 00:51:16 because a general protection error in sbcl would mean that things are going normally :P 00:51:56 although I didn't know linux spewed that stuff out via kprint() 00:52:09 so it makes me suspect that he has a "patched" kernel 00:52:44 rahul: that smells like a libsigsegv malfunction 00:52:45 queue my old #linux job of nailing "speshul" patches on the foreheads of clueless redhat and mandrake users 00:52:56 I think same message at least at two kernel versions 00:52:58 fe[nl]ix: ah, right 00:53:05 rahul: nope, it's included by standard in arch/x86/traps.c 00:53:08 -!- davazp [n=user@95.Red-83-55-182.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 00:53:18 *arch/x86/kernel/traps.c 00:53:29 p_l: I don't see it here... and sbcl should spew them out like crazy, right? 00:53:51 function do_general_protection 00:54:13 kernel 2.6.32/tomoyo/bfs 00:54:16 That new hemlock requires commonqt which requires smoke, which requires kde4, which requires the universe. Pretty much for (ed). 00:54:25 I think I'll have to skip that one :) 00:54:32 b4|hraban [n=b4@a83-163-41-120.adsl.xs4all.nl] has joined #lisp 00:54:33 antoszka: I have CommonQt without KDE4 00:54:42 Hm.. 00:54:42 otoh, I compiled smoke from sources 00:54:58 -!- cmsimon [n=cms@unaffiliated/cmsimon] has quit ["brb."] 00:55:10 p_l: Maybe I'll try that one day. Hoped it would be simpler. 00:55:30 p_l: is that fairly easy to do? i'd like to give it a try with qt 4.6 and play with webkit 00:55:59 drewc: it's get kinda easier after you did it once. Still, rather unpleasant thing to fumble through 00:56:04 I forgot how I did it 00:56:36 antoszka: drink a pint of beer and the courage to compile smoke will come 00:57:14 the phrase "up in smoke" comes to mind 00:57:37 although they probably meant it as "smoke and mirrors" 00:57:42 fe[nl]ix: Actually, I can just leave emerge smoke running while I sleep :) But I'd rather not have the kdelibs stuff in my system. 00:57:43 joubert [n=joubert@user-0cev80t.cable.mindspring.com] has joined #lisp 00:57:59 Or maybe I should. 00:58:17 Anyway  off to bed. Good night. 00:58:46 saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has joined #lisp 01:01:51 gigamonkey [n=user@adsl-99-64-118-11.dsl.pltn13.sbcglobal.net] has joined #lisp 01:02:28 Is there some way to make SBCL treat the recompilation of a DEFPACKAGE as the complete definition of that package? 01:02:29 gigamonkey, memo from p_l: Are you interested in PCL translations? (Been thinking about possibility of polish translation) 01:02:29 gigamonkey, memo from p_l: I just read http://www.gigamonkeys.com/blog/2009/09/17/kindle-coders-at-work.html and I call bullshit - the only difference from classic Mobireader is the DRM used, and preparing a MobiReader file for publication is at most a few hours for complex structuree. I guess that either it's Amazon's marketing play or something like that. Also, Kindle sucks ;-) 01:04:38 -!- rdd [n=user@c83-250-152-128.bredband.comhem.se] has quit [Remote closed the connection] 01:04:56 gigamonkey: delete-package first? 01:05:06 drewc: yeah, I was hoping for something more automatic. 01:05:24 gigamonkey: (defmacro defpacakge* ...) :P 01:05:32 Blech. 01:06:40 -!- bdowning [n=bdowning@mnementh.lavos.net] has quit [Remote closed the connection] 01:06:55 (handler-bind ((whatever-error-is-thrown ...)) (recompile :system)) ? ... 01:07:06 bdowning [n=bdowning@mnementh.lavos.net] has joined #lisp 01:07:11 assuming that's what's happening :) 01:08:42 -!- bdowning [n=bdowning@mnementh.lavos.net] has quit [Remote closed the connection] 01:09:26 Well, it's a warning, not an error. 01:09:49 But I'm just in SLIME doing C-c C-c. 01:09:57 Perhaps there's some SLIME setting. 01:10:36 -!- cmm [n=cmm@bzq-79-176-142-250.red.bezeqint.net] has quit [Remote closed the connection] 01:10:50 -!- b4|hraban [n=b4@a83-163-41-120.adsl.xs4all.nl] has quit ["Leaving"] 01:10:50 cmm [n=cmm@bzq-79-176-142-250.red.bezeqint.net] has joined #lisp 01:12:44 you could have a defpackage that UNEXPORT's exported symbols that are not in the :export list 01:13:15 I think that's ansi compliant behavior 01:13:17 bdowning_ [n=bdowning@mnementh.lavos.net] has joined #lisp 01:13:47 but i think the SBCL warning is probably the right thing. 01:14:15 -!- bdowning_ is now known as bdowning 01:14:52 anybody here in need of an uninterning reader ? 01:15:56 fe[nl]ix: one day i will work on my meta-reader protocol 01:16:21 Hi, I'm having a some trouble with Slime; when I try to load it (via M-x slime), it eventually says +++ SWANK-PROTOCOL-ERROR: NIL #;; swank:close-connection: end of file on #", although I've gotten it to work once or twice. I'm using sbcl-1.0.34-linux-x86, Emacs 23, and the latest Slime from the tar.gz on the Slime homepage. 01:17:07 drewc: meta-reader protocol ? 01:17:39 bgs100: a CVS snapshot ? 01:17:39 fe[nl]ix: indeed... the reader needs a MOP... probably a part of a larger meta-protocol for packages 01:17:58 fe[nl]ix, Of Slime, yes. 01:18:22 Odd; I loaded it again, and although it hadn't worked 2 or 3 previous times, worked this time. 01:18:38 Ralith [n=ralith@69.90.48.97] has joined #lisp 01:18:39 :/ 01:19:36 nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has joined #lisp 01:20:30 When is it legit for a SETF function to return multiple values? 01:21:45 drewc: I'm pretty sure ANSI leaves the behavior of DEFPACKAGE in this case implementation defined. 01:22:19 -!- djanderson [n=dja@hltncable.pioneerbroadband.net] has quit [Read error: 110 (Connection timed out)] 01:22:20 I'm used to Allegro which just treats the latest DEFPACKAGE for a package as the full definition. 01:22:54 I.e. I have one DEFPACKAGE per package and if I change it to not export some symbol it's because I no longer want to export it. Thus I don't want a warning about it. 01:23:33 gigamonkey: i believe a SETF function can legitmately return multiple values when it is written to do so...i don't think there are restrictions. 01:23:36 not sure though.. 01:23:42 clhs 5.1 01:23:42 http://www.lispworks.com/reference/HyperSpec/Body/05_a.htm 01:24:19 "the ultimate result of evaluating setf is the value or values being stored." 01:24:37 Which sort of suggests that only thinsgs like (setf (values x y) 1 2) should return multiple values. 01:25:08 -!- syamajala [n=syamajal@c-76-119-52-223.hsd1.ma.comcast.net] has quit [Read error: 60 (Operation timed out)] 01:26:25 -!- retupmoca [n=retupmoc@99.54.133.197] has quit [Read error: 60 (Operation timed out)] 01:26:50 davazp [n=user@95.Red-83-55-182.dynamicIP.rima-tde.net] has joined #lisp 01:26:59 well... the wording of "value being stored" is ambiguous... is that the object passed to the setf expander in the value position? 01:27:05 seangrove [n=user@c-67-188-112-83.hsd1.ca.comcast.net] has joined #lisp 01:27:36 syamajala [n=syamajal@c-76-119-52-223.hsd1.ma.comcast.net] has joined #lisp 01:29:29 when would it not be? 01:31:33 -!- gemelen [n=shelta@shpd-78-36-166-12.static.vologda.ru] has quit [Connection timed out] 01:31:57 Well, I'm writing a function to store a given value into a particular position in a vector of (unsigned-byte 8)'s and was thinking of abusing multiple values to return the value stored and the number of octets used. 01:32:09 (Or the next unused index, actually.) 01:32:36 rahul: when i've defined it to be otherwise. (setf (current-user) 1) ..... what if that is defined to lookup a user in the database with the id 1, say via a generic function that call-next-methods from one specialized on the number, and store that in a special variable. 01:32:43 I wonder if using grey-streams is the better interface for that 01:32:56 since it allows arbitrary objects and you have a file-position 01:33:05 gigamonkey: of course you can 01:34:06 drewc: right, and then afterward, (current-user) returns # 01:34:18 drewc: I think you should return the USER object in that case 01:34:43 right, so i return an object that was not the one passed to setf 01:34:56 drewc: right, but the one that was being stored 01:35:26 exactly, which can have no relation to the one that appears in the setf, therefore, SETF can return _anything_ it wants. 01:37:00 drewc: no, it can only return what now has stored in it 01:40:07 ok, so i define (current-user) to be a place which stores whatever i want it to store, regardless of what actually happens inside 01:40:38 what do you mean regardless? 01:40:44 the code has to do SOMETHING 01:41:09 (defun (setf current-user) (value) (declare (ignore value))) 01:41:15 no it doesn't! 01:41:50 what if it does multiple things? stores a number somewhere, a user object somewhere else, an entry in a log? 01:43:19 there is no way (eq (setf (current-user) 1) (current-user)) is required to be T, so.... 01:43:57 (or eql rather) 01:44:41 modulo threading issues, it should be 01:45:10 rahul: no.... what if place is (current-processor-cycle-count) ? 01:45:22 or (current-time) ... whatever 01:47:08 then aynchronous modification by other code is happening 01:47:23 which fits under the umbrella of "threading" conceptually 01:48:12 the difference between the value stored into the place and the one retrieved later is due to timing 01:49:27 -!- marioxcc-AFK is now known as marioxcc 01:49:45 ok, fair enough... what if i define (setf my-random) as setting the seed, and (my-random) doing the obvious thing. 01:50:47 PatrickMcLaren [n=Patrick@CPE-138-217-214-253.lns1.fli.bigpond.net.au] has joined #lisp 01:51:15 sure 01:51:32 so setf should return the seed 01:52:07 yeah, and (eql (setf (my-random) 1) (my-random)) is false 01:52:19 they clearly realized that places could be anything and didn't want to constrain them unnecessarily 01:52:36 i do believe this is what i'm trying to say. 01:52:38 so they left the wording such that you are supposed to follow some sort of "niceness" to the user 01:54:17 your (incf (my-random)) does nothing much that's useful, but what could it do that's useful? 01:54:32 but requires no such thing as a formal specification, rather than an etiquette guide ;) 01:54:42 a random seed is not useful? 01:54:49 no, incf on the seed 01:55:09 it that's not what happens... 01:55:24 (setf (my-random) (+ 1 (my-random))) 01:55:30 right 01:55:34 its a random seed. 01:55:44 well, a silly way of seeding an rng 01:55:57 indeed... but it is kind of cute. 01:56:00 heh 01:56:15 but that's part of the point, not all operations make sense on all places 01:56:55 but if you make the setf expansion behave as sensibly as possible, then it's useful in as many situations as possible 01:57:00 Draggor [n=Draggor@216-80-120-145.alc-bsr1.chi-alc.il.static.cable.rcn.com] has joined #lisp 01:57:31 what would you expect (incf (my-random)) to do? 01:57:33 -!- alley_cat [n=AlleyCat@sourcemage/elder/alleycat] has quit [Remote closed the connection] 01:57:45 increment a random number by 1? it does that 01:57:52 it also happens to set the seed 01:58:07 makes sense to me. 01:58:13 ben_m [n=ben@chello084113058207.12.vie.surfer.at] has joined #lisp 01:59:04 sure 01:59:28 and if someone does that, they get what they deserve: nothing :P 02:00:34 exactly! 02:01:30 johnzorn [n=jz@206-248-152-106.dsl.teksavvy.com] has joined #lisp 02:01:38 i'm not advocating using places this way, of course.. just saying that what gigamonkey wants to do is allowed and far from abuse of the setf mechanism. 02:03:20 I guess if his getter always returns the current "stream position" that would be fine 02:03:26 and it would be useful 02:03:31 er no, it wouldn't be able to tell 02:03:33 oh well 02:03:41 Tordek [i=tordek@gateway/shell/blinkenshell.org/x-scmvxmpvntnubdkt] has joined #lisp 02:03:51 other than (1+ index) 02:04:20 how can I reseed the random state based on something not in the memory image? 02:04:42 I'm trying to get an executable clisp image to do something different each run based on cl:random 02:04:47 by asking the OS for something outside the memory image 02:04:57 and even with (setf *random-state* (make-random-state)) at the start it repeats itself each time. 02:04:57 (get-universal-time) 02:04:59 like the time 02:05:15 rahul: okay, how do I get a random state from the time? 02:05:57 Not in CL. 02:06:53 pjb: so there's no way in CL, short of implementing your own RNG, to get different results from a random function called predictably on startup? 02:06:57 clhs make-random-state 02:06:57 In CL you use (make-random-state t) and it gets initialized by some mean. Perhaps from the time, perhaps from nuclear decay. 02:06:58 http://www.lispworks.com/reference/HyperSpec/Body/f_mk_rnd.htm 02:07:18 t? 02:07:19 *Ralith* readspec 02:07:32 If state is nil, the new-state is a copy[5] of the current random state 02:07:33 oooh. 02:07:34 heh. 02:08:31 Now of course, it would be possible to hack an implementation to extend make-random-state and allow it to take a universal time... 02:08:40 -!- grouzen [n=grouzen@91.214.124.2] has quit [Read error: 60 (Operation timed out)] 02:08:50 A CDR could even be written. 02:09:20 But it is expected that (make-random-state t) gives better results. For one thing, you should be able to call it more than once a second! 02:09:36 :D 02:09:43 mriroot [n=Intel@194.44.128.74] has joined #lisp 02:10:01 i have never used the random number facilites actually... strange but true. 02:11:40 pjb: it's what I needed, anyway. 02:11:40 -!- CrazyEddy [n=CrazyEdd@wrongplanet/CrazyEddy] has quit [Read error: 110 (Connection timed out)] 02:11:46 If I don't use asd:defsystem, how do I make one file see the definitions of another file? 02:12:07 ben_m: files don't see definitions 02:12:19 you need to arrange it so that the other file is loaded when you compile this one 02:12:23 ben_m: there's no notion of these 'files' in CL. 02:12:32 so have fun rewriting asdf 02:12:43 i see 02:12:58 So the easy answer is: I'll just use asd:defsystem? 02:13:01 Just loading them, and their definitions will be available in the image to the other objects in the image. 02:13:10 Oh yeah 02:13:19 I'm stupid at times :D 02:13:22 Thanks :) 02:13:32 When your project becomes bigger than a couple of files, yes, use asdf. 02:13:33 -!- mriroot [n=Intel@194.44.128.74] has left #lisp 02:14:57 So, when I compile, lisp looks for any *.asd file in the current dir, or does it have to be a special name? 02:15:30 I'm not yet sure how packages/systems etc. fit together 02:16:14 they're unrelated 02:16:26 you should have a file in your system that defines a package 02:16:38 and your system hierarchy should roughly follow package hierarchy 02:17:02 packages are collections of symbols 02:17:06 systems are collections of files 02:17:11 When I compile a file, how does it know where to look for the system definition? 02:18:24 Lag: 8.2 by the way, some of my questions might have been answered before I ask them 02:18:59 ben_m: google for asdf manual and read it. 02:19:20 alright. 02:19:21 asdf systems are loaded by (asdf:oos 'asdf:load-op system). 02:19:44 This will eventually call load on the files needed in the right order. 02:20:02 I never use that though and it still works for some reason 02:21:10 ben_m: When you compile a file with COMPILE, it knows nothing about asdf. The compiler only knows what's in the image, that is, what has been previously loaded. 02:21:59 ben_m: asdf 02:22:09 ben_m: asdf's compile calls compile-file, not the other way around 02:22:38 ben_m: it's like make vs gcc, conceptually 02:22:48 That's why it's a good idea to put your defpackage forms in a separate file, and your macros in another, so that you can load hem independently when compiling separately your various files. 02:22:59 except that the "header" files are _inside_ your lisp image 02:23:11 (err, I meant COMPILE-FILE above). 02:27:18 -!- Hun [n=hun@pd956be5d.dip0.t-ipconnect.de] has quit [Remote closed the connection] 02:35:22 -!- blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has quit [] 02:36:16 bytbox [n=chatzill@AC817DE5.ipt.aol.com] has joined #lisp 02:37:33 ben_m` [n=ben@chello084113058207.12.vie.surfer.at] has joined #lisp 02:37:49 -!- ben_m [n=ben@chello084113058207.12.vie.surfer.at] has quit [Read error: 110 (Connection timed out)] 02:46:35 Slime not working again. 02:52:59 djanderson [n=dja@hltncable.pioneerbroadband.net] has joined #lisp 02:56:34 BeerGrylls [n=BeerGryl@169.164.8.67.cfl.res.rr.com] has joined #lisp 02:58:14 -!- dlowe [n=dlowe@c-24-91-154-83.hsd1.ma.comcast.net] has quit ["Leaving."] 02:58:56 -!- bytbox [n=chatzill@AC817DE5.ipt.aol.com] has quit ["ChatZilla 0.9.85 [Firefox 3.5.4/20091016092926]"] 03:01:59 ruediger [n=the-rued@p508B3AC8.dip.t-dialin.net] has joined #lisp 03:05:07 -!- c|mell [n=cmell@112.142.54.201] has quit [Read error: 113 (No route to host)] 03:07:14 -!- BeerGrylls [n=BeerGryl@169.164.8.67.cfl.res.rr.com] has quit ["Leaving"] 03:10:09 -!- Joreji [n=thomas@40-233.eduroam.RWTH-Aachen.DE] has quit [Read error: 113 (No route to host)] 03:11:16 -!- pr_ [n=pr@p579CA821.dip.t-dialin.net] has quit ["leaving"] 03:11:23 -!- ben_m` is now known as ben_m 03:11:30 anyone know of an ensure-cadr function? 03:12:04 eh? 03:12:27 you mean something that makes sure that the cdr of the arg is a cons? 03:12:33 I dunno 03:12:37 I just remembered I have M-. though 03:12:47 well, if you don't know what you want, how can you find it? 03:13:23 rahul: I have some code that calls it and amy trying to locate the definition for theiving. 03:13:52 Sluggo [n=chrish@c-75-64-59-44.hsd1.tn.comcast.net] has joined #lisp 03:14:08 ahah. 03:14:14 no wonder I couldn't find it. 03:14:55 -!- joubert [n=joubert@user-0cev80t.cable.mindspring.com] has quit [] 03:15:39 "Knight said, 'power-cycling the machine without understanding what is going on will not fix it.' Knight turned the machine off, and then on, and it worked." 03:17:26 -!- lemonade` [n=lemonade@pool-74-96-75-116.washdc.fios.verizon.net] has left #lisp 03:18:49 c|mell [n=cmell@112.142.54.201] has joined #lisp 03:20:43 -!- mgr [n=mgr@psychonaut.psychlotron.de] has quit [Read error: 110 (Connection timed out)] 03:22:22 Ralith: what you're doing seems to indicate suspect data representation 03:22:36 maybe you really want an extendable vector and vector-push-extend 03:24:24 Is there a portable way (i.e. a library that hides the impl-specific details) to convert an array of octets containing utf-8 encoded text into a lisp string? 03:24:31 -!- opt9 [n=user@59.7.206.87] has quit [Remote closed the connection] 03:25:08 Ah, trival-utf8 looks promising. 03:26:33 -!- Sluggo [n=chrish@c-75-64-59-44.hsd1.tn.comcast.net] has quit ["Oh No!"] 03:26:54 Actually, never mind portability What's the most efficient way in SBCL? 03:27:37 rahul: this isn't my code 03:27:45 rahul: I was just making a stolen macro work :P 03:27:46 Sluggo [n=chrish@c-75-64-59-44.hsd1.tn.comcast.net] has joined #lisp 03:27:53 appreciate the effort, though 03:28:05 -!- pjb [n=t@248.Red-79-149-157.staticIP.rima-tde.net] has quit [Remote closed the connection] 03:28:32 wakeup^ [n=wakeup@koln-5d815113.pool.mediaWays.net] has joined #lisp 03:29:05 -!- wakeup [n=wakeup@koln-5d814ffa.pool.mediaWays.net] has quit [Read error: 60 (Operation timed out)] 03:29:56 amnesiac [n=amnesiac@p3m/member/Amnesiac] has joined #lisp 03:30:47 the-ruediger [n=the-rued@p508B3216.dip.t-dialin.net] has joined #lisp 03:30:58 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit ["Leaving"] 03:33:14 -!- fe[nl]ix [n=algidus@ABordeaux-158-1-108-221.w90-60.abo.wanadoo.fr] has quit [Read error: 60 (Operation timed out)] 03:33:17 OmniMancer1 [n=OmniManc@122-57-29-175.jetstream.xtra.co.nz] has joined #lisp 03:34:46 pjb [n=t@248.Red-79-149-157.staticIP.rima-tde.net] has joined #lisp 03:38:04 plage [n=user@113.161.70.110] has joined #lisp 03:38:10 Good morning! 03:40:21 -!- ruediger [n=the-rued@p508B3AC8.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 03:40:37 plage: yo! 03:41:20 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #lisp 03:41:22 hay rahul 03:41:31 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #lisp 03:41:31 I am told that you have interesting things to say about formulate and why it is better than cells 03:42:40 -!- s0ber [n=s0ber@220-136-229-246.dynamic.hinet.net] has quit [Remote closed the connection] 03:48:10 gigamonkey: i think babel is the portable way. 03:48:24 -!- kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 03:48:43 -!- OmniMancer [n=OmniManc@122-57-9-130.jetstream.xtra.co.nz] has quit [Success] 03:48:49 -!- TDT [n=dthole@173-30-223-49.client.mchsi.com] has quit [] 03:49:26 gigamonkey: as for sbcl with utf-8 locale... (map 'string #'code-char vector) looks nice to me 03:50:09 oh.. that's not going to work is it 03:50:16 *drewc* smacks his forehead 03:50:44 charOS_ [n=chatzill@124.43.101.51] has joined #lisp 03:51:17 gigamonkey: its sb-impl::octets-to-string 03:54:46 drewc: thanks. 03:57:48 hm 03:59:44 -!- the-ruediger [n=the-rued@p508B3216.dip.t-dialin.net] has quit ["This computer has gone to sleep"] 04:03:00 -!- c|mell [n=cmell@112.142.54.201] has quit ["Leaving"] 04:11:52 -!- charOS [n=chatzill@124.43.54.55] has quit [Read error: 113 (No route to host)] 04:15:56 wlr [n=walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 04:18:19 lpolzer__ [n=lpolzer@dslb-088-073-216-189.pools.arcor-ip.net] has joined #lisp 04:19:23 -!- syamajala [n=syamajal@c-76-119-52-223.hsd1.ma.comcast.net] has quit ["Leaving..."] 04:22:22 -!- Guthur [n=Michael@host81-159-211-99.range81-159.btcentralplus.com] has quit ["Computer says no"] 04:30:05 -!- jsoft_ [n=user@unaffiliated/jsoft] has quit [Read error: 54 (Connection reset by peer)] 04:30:18 jsoft [n=user@unaffiliated/jsoft] has joined #lisp 04:34:27 -!- lpolzer_ [n=lpolzer@dslb-088-073-251-106.pools.arcor-ip.net] has quit [Read error: 110 (Connection timed out)] 04:35:01 oh, portable hemlock 04:35:21 .... aand no news since 2004 04:35:23 heh 04:35:55 Ralith: formulate doesn't make you call functions that are named c8 04:36:15 that sounds desirable. 04:39:00 I like how the first relevant hit when googling "formulate lisp" is a message from Kenny Tilton being snide. 04:39:06 hehe 04:39:33 I don't think I'll fight that 04:39:47 it will give me more credibility if that's first :P 04:45:01 -!- Adlai [n=Adlai@unaffiliated/adlai] has quit [Read error: 60 (Operation timed out)] 04:46:46 holycow: check on sbcl10 page, there should be some info about hemlock/qt and hemlock/tty 04:46:59 interesting, thx 04:47:26 holycow: pretty active here, http://gitorious.org/hemlock 04:47:45 oh, it looked not active at all ... checking, thx! 04:49:24 -!- skeptomai|away is now known as skeptomai 04:49:24 *p_l* was thinking of hemloc/garnet... might be easier for people to understand than CLIM 04:49:50 rahul: don't blame me for CLC being broken currently, I want it to not be broken. :( 04:49:51 spilman [n=spilman@ARennes-252-1-61-42.w83-195.abo.wanadoo.fr] has joined #lisp 04:50:52 rahul: also, afaict, (as someone who's never used CLBuild...) it wasn't actually broken by the previous version of CLC. Or at least if it was broken, it was in some way that wasn't obvious for a first-time-user 04:52:22 foom2: you're the messenger. I blame you. 04:52:47 :) 04:53:02 I blame myself for not hacking XCVB during my vacation time. 04:53:05 oh well. 04:53:05 I shot the messenger. But I didn't shoot the maintainer. 04:53:41 sadiquea [n=sadiquea@119.82.102.202] has joined #lisp 04:54:14 soupdragon [n=somebody@unaffiliated/fax] has joined #lisp 04:55:21 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560781 if anyone has anything else useful to add. 04:58:25 -!- spilman [n=spilman@ARennes-252-1-61-42.w83-195.abo.wanadoo.fr] has quit ["Quitte"] 04:58:28 nostoi [n=nostoi@18.Red-79-145-126.dynamicIP.rima-tde.net] has joined #lisp 04:59:19 I've got an unapplied patch to a C-L-C bugs for months. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=382430 04:59:38 so I'll say that C-L-C is not being overly closely maintained. 05:01:27 -!- saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has quit [] 05:01:35 if it was working properly, all it would really be these days is asdf-binary-locations. 05:02:06 (IMO) 05:02:31 p_l: got your memos. 05:02:41 s/was/were/ 05:02:56 I have some interest in PCL translations though very few of the folks who've expressed an interest have gotten very far. 05:02:57 and a-d-l is now part of the latest ASDF (but not its configuration) 05:03:25 gigamonkey, more interesting would be translations of C@W 05:03:29 And re the Kindle, I really don't understand what their deal is. 05:03:39 Fare: and much harder. 05:03:41 gigamonkey, will there be a sequel to C@W? Are there nominations? 05:03:51 -!- nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has left #lisp 05:03:53 Fare: unlikely. 05:04:07 My current theory is to write a book about the history (and future) of programming for kids. 05:04:26 -!- Yuuhi [i=benni@p5483CB67.dip.t-dialin.net] has quit [Read error: 104 (Connection reset by peer)] 05:04:27 heh 05:04:28 I would have nominated Jacques Pitrat & Xavier Leroy 05:04:29 Yuuhi [i=benni@p5483CB67.dip.t-dialin.net] has joined #lisp 05:04:32 thats pretty cool actually 05:04:35 The Q&A format is not really my favorite. I knew that going into C@W and my experience didn't change my mind. 05:04:37 gigamonkey: you have a knack for this stuff 05:05:12 gigamonkey, then Alan Kay, Matthias Felleisen (& Co) should be included. 05:05:23 gigamonkey: a book for kids would be really neat! 05:05:25 Fare, indeed. 05:05:41 sykopomp: actually I'm thinking of a book about kids more so than for kids. 05:05:58 Felleisen is behind PLT Scheme right? 05:06:07 yes. 05:06:12 also, I've seen copies of C@W in pretty much every major bookstore I've been in. Lookin' good! 05:06:16 Kay is certainly on my list of people to talk to. 05:06:24 and TeachScheme! -- see also the recent bootstrapworld.org project 05:06:38 sykopomp: Cool. Except it's better if they're no longer in the bookstores. ;-) 05:06:52 they are down to 10 years old being productive with computers 05:07:24 (if you're by Boston, talk with Emmanuel Schanzer) 05:07:36 (or by Providence, with Shriram K) 05:08:05 Yeah, I figure a trip to Boston is in my future if I do this book. 05:08:15 if I'm still there, pop by! 05:08:18 Gotta talk to the MIT folks behind Scratch and also the oldtimer's who did Logo. 05:08:46 *gigamonkey* thwaps self. 05:09:38 shriram's stuff is pretty durned cool 05:09:56 (he's the person who told me to learn CL, too) 05:10:42 about kids, I have a few friends from Harvard who are into teaching kids based on (I think) dubious theories by Piaget & others. 05:10:48 saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has joined #lisp 05:11:47 heh 05:11:54 Yeah. Well the original Logo stuff was all based on Piaget. 05:11:56 self help edumaction? 05:11:59 as for me, I think that "letting the kids discover without guidance" is as dumb as the "randomly wired neural network" of Sussman koan fame. 05:12:44 But there's a long continuum between "discover without guidance" and "drill them until their eyes bleed" 05:13:23 leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has joined #lisp 05:13:32 and I redirect people who believe in immoral mind-killing "pedagogy" like that to the short article "Kant versus Sullivan" by Ayn Rand. 05:14:04 i do believe that there is too much emphasys on memorization in class and load them up with homework 05:14:13 i think school needs to be like a job 05:14:20 work is done at the end of a shift 05:14:23 I think there should be no school, only jobs 05:14:34 and kids need to be practicing in class more than taking done lecture notes 05:14:44 you know your 3 R's, you go get a job. 05:14:45 *nod* sounds like we are of similar thinking on this 05:14:45 memorizing algorithms that you run on paper like long multiplication and factoring polynomials.. why not give them a computer that can do these things? 05:15:13 well, we cant exactly extract theory out of it, i just think there are faster ways to learn 05:15:33 Fare: well, you're not going to become a physicist that way 05:15:50 soupdragon: You think you know when you can learn, are more sure when you can write, even more when you can teach, but certain when you can program.  Alan Perlis 05:16:13 gigamonkey: you probably have to talk to the Squeak folks as well, I would think 05:16:24 rahul: why not? go work for a physics lab + Read stuff on your own - that's not something you do in class, anyway. 05:16:26 I think that's the logic behind their awful UI 05:16:53 Adamant: yeah, that sort of starts with Alan Kay (and Dan Ingalls who I now know) though there are obviously others doing the real work these days. 05:17:04 "You don't know anything until you've practiced it." - Richard Feynmann 05:17:16 And Scratch is based on Squeak. 05:17:20 ah 05:17:29 I used to have (setq slime-echo-arglist-function 'slime-autodoc) in my .emacs but this is broken with CVS slime. 05:17:40 soupdragon: of course, before you program (and/or after), it's good to do it by hand. 05:17:50 (after, you just trace the program you wrote) 05:17:56 s/trace/step/ 05:18:25 gigamonkey: btw, if you want to write a book about history of programming for kids, I could supply two chapters - one about an *AWESOME* book on computers for kids and another about failure of certain attempts with both LOGO and Pascal in teaching basic programming 05:18:27 leo2007: don't have it 05:18:55 you mean delete it, stassats`? 05:18:58 I think I could be more receptive to that if I hadn't spend the last month memorizing a ridiclous number of counting algorithms. Right now I am speculating how education might be if they dropped all the routine stuff and just focused on the bits between 05:18:59 gigamonkey, hopefully, these two foolish things are not the only interesting points in space. 05:19:01 leo2007: yes 05:19:07 p_l: what's the awesome book? 05:19:20 stassats`: is it because it is available in core slime? 05:19:22 Fare: hmm. I guess that kind of makes sense... I mean, it's how I learned physics, and I have a better grasp of it than many who have a bachelors degree 05:19:40 gigamonkey: there was also that whole hackety hack thing, until _why disappeared from existence. 05:19:41 gigamonkey: an old (80s) german book that explains computers in a way understandable for kids... from transistor-level logic 05:19:58 leo2007: not in core 05:20:04 gigamonkey: it holds place in my heart as my first cpu design book :> 05:20:14 p_l: ah. Sadly my German is non-existant. 05:20:35 gigamonkey: I could write material based on polish translation 05:20:40 stassats`: that line was suggested by tcw 05:20:52 Yeah, I have fond memories of 1980's books that introduced to various computer architecture by Rodnay Zaks. 05:21:06 but maybe it's because I was ignorant then and didn't have anything better 05:21:13 btw, from my experience, translating a programming language into local spoken language is *bad idea* 05:21:24 because I want to use autodoc only when space is typed 05:21:27 -!- plage [n=user@113.161.70.110] has quit [Read error: 110 (Connection timed out)] 05:21:56 programming languages are precise things 05:22:06 natural languages are imprecise things, by design 05:22:13 rahul: Programming languages are precise things. 05:22:15 -!- amnesiac [n=amnesiac@p3m/member/Amnesiac] has quit ["Leaving"] 05:22:26 I think natural language can be very precise 05:22:37 of course it is much more expressive than that 05:22:42 soupdragon: only when written by a programmer :) 05:22:54 well programming is effectively math 05:22:55 soupdragon: uqbar orbis tertius? 05:22:59 soupdragon: and when read by a non-programmer the precision it was written with is lost 05:23:12 you cant express logic in the vague way we describe the world using natural language imho 05:23:13 I write things very precisely, and people ignore my precision 05:23:29 and then I'm like, you read that wrong, that's why I used this word and not that word 05:24:09 -!- xinming_ is now known as xinming 05:24:17 hand't heard of that Fare , looks interesting 05:24:19 -!- djanderson [n=dja@hltncable.pioneerbroadband.net] has quit [Client Quit] 05:24:29 thats still not programming imho. programming is basically just writing various mathematical expressions. it shares very little with natural language imho 05:24:36 natural language is about ideas, not about logic 05:24:51 also, see lojban and other crap like that. 05:24:57 *nod* 05:25:07 well I thought sanskrit was a nice one 05:25:20 with logic, your spaces have fine lines surrounding them 05:25:27 natural language is about whatever memes survive 05:25:30 with ideas, your spaces are big fuzzy balls 05:25:44 and each person's ball is a different shape 05:25:55 notably by allowing us to manipulate other people into doing things for us. 05:25:59 (ahem. get your mind out of the gutter) 05:26:01 *nod* thats how i see it too 05:26:33 but its still a margin more different. its basically like comparing math equations to sheakspare 05:26:34 I had an interesting conversation with ken shan about language 05:26:38 its quite a bit more limited 05:26:45 holycow: i do not program in various mathematical expressions! 05:26:53 though he was mostly interested about the higher-order game-theoretic meaning of sentences. 05:27:05 drewc: are you sure? 05:27:12 you certainly convert the ideas to them 05:27:31 quite... that's the whole point. 05:27:42 Fare, what was he saying? 05:27:43 i.e. if you don't use the "simplest" way of saying something, then you're conveying information in the discrepancy between what you say and the simplest way you could have put it. 05:28:14 Fare: yes, very true 05:28:20 -!- leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has quit ["restart emacs"] 05:28:20 so you start from a simple declarative logic of the universe as base model for language utterances 05:28:27 I don't see that as game theoretic 05:29:00 and add levels of game semantics as what you say depends on your model of what you expect the other person to know and expect you'll say. 05:29:03 I see that similarly to using the correct number of digits when showing the result of a measurment 05:29:19 that's an interesting idea 05:29:22 oh 05:29:22 rahul: yes, that's a special case. 05:29:31 a very useful one. 05:29:38 is there some text that elaborates on this btw? 05:29:43 probably. 05:29:44 konr` [n=user@187.88.22.35] has joined #lisp 05:29:48 Ask Ken Shan :) 05:29:57 I see. the game theory comes into play when you're customizing a communication for another party. 05:30:04 language as manipulation and epistemic logic are both old news. 05:30:21 rahul: which in a conversation, you are. 05:30:25 Fare: right 05:30:28 -!- Sluggo [n=chrish@c-75-64-59-44.hsd1.tn.comcast.net] has quit ["Oh No!"] 05:30:40 Fare: like when I talk to you, I don't need to explain what I mean by "consing" 05:30:44 but maybe to someone else, I do 05:31:04 -!- xinming [n=hyy@125.109.247.139] has quit ["leaving"] 05:31:05 *rahul* caught himself talking about consing in java 05:31:37 hehe 05:31:58 rahul: yes. And if you'd start explaining, that'd probably be because you have a subtle point to make (or are being annoying on purpose). 05:33:28 -!- Nshag [n=shag@lns-bzn-37-82-253-12-196.adsl.proxad.net] has quit [Remote closed the connection] 05:34:41 and with me, you never know which one of those it is! 05:36:16 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 05:36:23 i think we have a good idea ;) 05:36:41 leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has joined #lisp 05:36:49 *leo2007* is back 05:40:17 -!- ace4016 [i=ace4016@cpe-76-170-134-79.socal.res.rr.com] has quit ["restart"] 05:43:49 -!- skeptomai is now known as skeptomai|away 05:44:16 ace4016 [i=ace4016@cpe-76-170-134-79.socal.res.rr.com] has joined #lisp 05:46:21 -!- ljames [n=ln@unaffiliated/ljames] has quit [] 05:46:36 -!- mattrepl [n=mattrepl@pool-72-83-118-99.washdc.fios.verizon.net] has quit [] 05:48:47 mishoo [n=mishoo@79.112.110.205] has joined #lisp 05:49:16 paddymullen [n=patrickm@cpe-72-229-243-126.nyc.res.rr.com] has joined #lisp 05:49:43 -!- konr [n=user@189.96.122.11] has quit [Success] 05:49:54 -!- paddymullen [n=patrickm@cpe-72-229-243-126.nyc.res.rr.com] has quit [Client Quit] 05:56:24 gruseom [n=daniel@S0106001217057777.cg.shawcable.net] has joined #lisp 05:57:51 -!- nostoi [n=nostoi@18.Red-79-145-126.dynamicIP.rima-tde.net] has quit ["Verlassend"] 05:59:47 I need to get all sequential sublists of length N from some bigger list (e.g. (foo '(1 2 3 4 5)) would return ((1 2 3) (2 3 4) (3 4 5)) ... I think I read about a very easy way to do it, but I can't remember :( 06:01:05 (loop for (a b c) in my-list collect (list a b c))? 06:01:06 *sykopomp* tries it 06:01:30 sorry, use ON 06:01:56 Just have to filter the ones that have nil, but other than that it's exactly what I want! Thanks syko :) 06:02:12 (loop for (a b c) on my-list when (and b c) collect (list a b c)) 06:02:37 I knew it's something with on, or mapping over cdr's or something like that 06:02:44 Thanks again. 06:08:03 (collect-list (chunk 3 1 (scan '(1 2 3 4 5))) :D 06:08:17 ugh. Series. 06:08:28 yay. Series. 06:08:54 why can't we just have proper lazy sequences and forget about that awful thing already? 06:09:02 um 06:09:11 sykopomp: maybe you should learn something about series. 06:09:13 s/awful/crusty old/ 06:09:24 loop is older than series. 06:09:25 what? 06:09:29 rahul: I tried. My eyes started bleeding and I nearly vomited. 06:09:45 sykopomp: oh well, it fits your behavioral patterns :) 06:09:50 mrSpec [n=Spec@unaffiliated/mrspec] has joined #lisp 06:10:06 how can someone not like series 06:10:11 rahul: I think it's something that happens very often when you're around. You seem to have that effect on people. 06:10:12 NIH isn't just a government agency. 06:10:16 haha 06:10:25 sykopomp: you confuse yourself with the universe 06:10:43 rahul: Isn't that something I should say about you? 06:10:55 -!- davazp [n=user@95.Red-83-55-182.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 06:11:11 sykopomp: I'm sorry if my weekend projects put your life's work to shame :) 06:11:22 they do? 06:11:33 you haven't really done anything worth of note except masturbate your ego on lisppaste :P 06:11:39 denial isn't just a river in egypt 06:11:42 -!- holycow [n=new@mail.fredcanhelp.com] has quit [] 06:11:50 ahh newbies 06:12:34 btw people implement 'proper lazy whatevers' based on haskell, in lisp 06:12:36 sykopomp: I'm sorry if lisppaste was all the version control I needed in order to create a library more powerful than yours :) 06:12:49 rahul: I missed the part where it was useful. Sorry. 06:12:55 wasn't better than series imo 06:13:09 sykopomp: oh, I realize the whole concept is flawed 06:13:14 rahul: I can cook you up something with hash tables pretty quick, too. Doesn't mean it puts anything to shame :P 06:13:21 sykopomp: but I don't see how it makes your library more useful 06:13:43 hah. 06:13:55 actually 06:14:01 I guess I can cook something up with packages now, too. 06:14:37 even so, it's not really about ego. I've had fun working on it, and it's not like I ignored the existence of the MOP. 06:14:41 you keep messing around with your slow implementations 06:14:55 you're missing the point :\ 06:14:57 which library? 06:14:58 sykopomp: oh, because I di, mostly 06:15:01 did 06:15:15 sykopomp: MOP was the main thing I avoided 06:15:33 rahul: nah. I've had a copy of AMOP sitting by me since before I even started working on Sheeple. 06:15:49 ty 06:16:13 and honestly, there's several reasons why I didn't implement it on top of CLOS. 06:16:25 sykopomp: MOP would make my library as slow as yours 06:16:45 which don't exclude the possibility that there can be a full-fledged version implemented simply as an extension of CLOS, nor does it exclude the possibility that that version would be all-around better in every respect. 06:16:56 well, MOP, CLOS, whatever. 06:16:56 -!- leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has quit ["bed"] 06:17:18 Sheeple, Series, whatever. 06:17:21 *rahul* facepalm 06:17:53 I didn't need to extend CLOS 06:17:54 I don't really get why anyone would implement and object system since CLOS (and MOP) exist 06:17:57 *sykopomp* thought he remembered you actually using the MOP is some cases. 06:18:07 what's the point? i 06:18:16 sykopomp: I only use MOP to dynamically create methods 06:18:28 rahul: so... you use the MOP? :) 06:18:44 soupdragon: experiment, and fun. 06:18:53 oh well that I understand 06:19:19 http://common-lisp.net/cgi-bin/viewcvs.cgi/prototypes/prototypes.lisp?rev=1.6&root=rjain-utils&view=auto 06:19:35 ben_m: if you're still here, here's another silly way to do it: (remove-if-not #'cddr (maplist #'(lambda (x) (ldiff x (nthcdr 3 x))) '(1 2 3 4 5 6 7))) 06:19:37 sykopomp: I don't use MOP _in_ the implementation of any of the access 06:19:49 rahul: ohh. 06:20:30 I use add-method 06:20:55 so you use the MOP? :) 06:21:01 although I probably could use defmethod + compile, but that's probably too dependent on compiler settings at runtime 06:21:06 gigamonkey: Thanks for that. I like sykopomp's solution more, but I learned something new with yours :) 06:22:16 actually, I wonder if I could use defmethod without compile or eval 06:22:28 and still get the method compiled 06:22:30 -!- hugod [n=hugod@bas1-montreal50-1279439888.dsl.bell.ca] has quit [] 06:23:48 sykopomp: shrug, it's for an optimization you don't even begin to compete with 06:24:05 so get rid of that and you've still been put to shame in terms of amount of code 06:24:42 rahul: is this about putting me to shame, or about writing useful things? 06:24:45 because I like the latter 06:24:55 but I won't be your new kenny tilton :) 06:25:02 sykopomp: I dunno, it's only as useful as sheeple is 06:25:10 so? 06:25:21 i.e., as useful to its author as cl-ppcre is to its author 06:25:43 sykopomp: so don't whine to me that your library is useless 06:25:53 you're saying it's just written for fun AND it's useful? 06:25:54 rahul: it's not? 06:25:56 it was a weekend's work for me, so no big waste 06:26:12 soupdragon: well, yeah. 06:26:12 soupdragon: it's useless to the author 06:26:38 rahul: I've been working on sheeple for a while, but the vast majority of that time has been spent tweaking around and experimenting. 06:26:44 Is there a function to convert a character into the digit it represents? e.g. #\4 => 4 06:26:56 clhs digit-char-p 06:26:56 http://www.lispworks.com/reference/HyperSpec/Body/f_digi_1.htm 06:27:08 stassats`: Thanks! 06:27:09 I wish they'd left the -p off that one. 06:27:13 sykopomp: great, now you can learn how to make it as fast as my library :) 06:27:28 rahul: actually, that's interesting in its own right. 06:27:30 legumbre_ [n=leo@r190-135-30-237.dialup.adsl.anteldata.net.uy] has joined #lisp 06:27:36 Zhivago: it return a generalized boolean 06:27:47 sykopomp: it's not easy. I don't quite understand all the details of how it all gets optimized 06:27:56 So dpes +. 06:28:17 does it ever return nil? 06:28:18 rahul: I've started working more on optimizing method dispatch. That's a bit of an involved process, but it all seems very similar to how CLOS can optimize stuff. 06:28:23 stassats`: more to the point, so does getf 06:28:41 sykopomp: of course. that's why I used CLOS. 06:28:46 property access is already pretty fast. Faster than the native CLOS on clisp, I -think-, and about as fast as CCL's. 06:29:00 so it's as fast as the slowest. 06:29:13 congrats, man :) 06:29:22 CCL is the slowest? 06:29:29 when did that happen? 06:29:32 saikatc_ [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has joined #lisp 06:29:44 what's slower than it? 06:29:51 ben_m: that was the idea. (Learning, that is.) 06:29:56 clisp? ABCL? ECL? 06:30:03 hahahaha 06:30:28 possibly LW, I think? 06:30:35 dunno about allegro or lw. 06:30:57 have fun re-implementing sbcl 06:31:04 but that can be improved, so I'm not too worried. 06:31:09 rahul: but that's part of the point. 06:31:13 heh 06:31:16 I kind of enjoy doing this. 06:31:30 and I still use CLOS for some things. 06:31:31 I thought you made useful libraries. 06:31:49 I try to. They tend to be useful to me, at least, and a couple other people. 06:31:52 or is that why it's only "kind of" 06:31:57 ymmv. People have different needs. 06:32:19 yeah, I've satisfied the needs of sheeple users :) 06:32:23 -!- saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has quit [Nick collision from services.] 06:32:23 -!- saikatc_ is now known as saikatc 06:32:32 I wonder if you have. 06:32:48 well, I could use a delegation linearization protocol 06:33:04 okay. 06:33:14 and then there's the whole issue of method dispatch, which I don't think you've figured out either 06:33:41 oh, I'm working on it, but that's fine. 06:34:02 sure, I don't feel like working on it because I can't make it any better than what I expect you'll do 06:34:32 why does it matter how well I do something? Don't you want to make your thing better for the sake of it? 06:34:43 isn't it interesting to you? 06:34:54 no, because I doubt it will be at all easy to make it better than that 06:34:56 no 06:35:05 then why bother doing it? 06:35:15 what was interesting was making the object system using a trivial amount of code 06:35:36 yeah, that's interesting :) 06:35:53 but you seem to be insisting that it nullifies any effort I've made, or any effort I'll be making in the future. 06:36:01 and I just don't see that. 06:36:09 no, it just nullifies the effort you made 06:36:15 I don't see how. 06:36:23 Why does it nullify the effort I made? 06:36:29 well, since it makes the code you wrote unnecessary 06:36:35 "because i say so" 06:36:41 how does that make it so? 06:36:45 of course, what you learned from it is orthogonal to that 06:37:24 I don't think it is. 06:37:27 sykopomp: because I've implemented something faster and simpler and more featureful than yours 06:37:46 I mean the learning is of orthogonal benefit 06:37:49 okay, and? 06:37:57 I don't think the learning is orthogonal, honestly. 06:38:16 I think your work is a direct result of the learning I did, to boot :) 06:38:41 which doesn't really mean that my own learning was necessary, since the data was out there already. 06:38:48 it's more of a direct result of the description of V8 on google's site 06:39:10 well, that and all the work Self people put into their compiler :) 06:39:16 what I meant by that is that the usefulness of the code and the usefulness of the knowledge you now have are orthogonal 06:39:17 which I think is the more impressive task. 06:39:32 and I still disagree with what you're saying. 06:39:37 and I still don't think my code is obsolete :P 06:39:56 you believe that your learning is somehow tied up in whether someone else has made better code than yours? 06:40:13 hey guys 06:40:17 you're making very subjective statements :P 06:40:26 anyone know how to loop over pairs of elements in a list? 06:40:33 Ralith heh someone just asked this 06:40:36 loop on by #'cddr 06:40:37 like 10 mins ago 06:40:42 soupdragon: not quite. 06:40:46 but close. 06:40:46 (loop for (a . b) in list ...) 06:40:49 sykopomp: the aswan high dam has no real benefit. don't block a river just because it's in Egypt! 06:40:49 oh ? 06:40:59 okay sorry I misunderstood 06:41:01 rahul: you speak nonsense. 06:41:24 Ralith: a plist or sequential pairs? 06:41:38 rahul: much like a plist, anyway. 06:41:44 stassats' example isn't working 06:41:47 stassats`: that doesn't work. 06:41:47 sykopomp: denial isn't just a river in egypt 06:41:51 is not a list 06:41:53 what stassats said works 06:42:14 Ralith: (loop for (a b) on list by #'cddr ...) 06:42:21 mine is for alists, pairs of element in a list 06:42:28 e.g (loop for (a . b) in '((a . b) (c . d)) collect (list a b)) 06:42:29 right 06:42:30 or (scan-plist ...) :) 06:42:59 rahul: 'on' is different than 'in'? 06:43:04 yes 06:43:12 kk, works great 06:43:12 thanks 06:43:17 np 06:43:29 rahul: not in cl, it seems. 06:43:38 Ralith: very different 06:43:39 Ralith: CLtL2 06:43:59 in is mapcar, on is mapcan 06:44:12 er 06:44:23 one of those 06:44:27 Ralith, scan-plist is from SERIES 06:44:28 maplist 06:44:49 that's on sourceforge 06:45:08 rahul: you should try using sheeple for a while. It's pretty fun. 06:45:14 :) 06:45:22 rahul DENIAL=Don't Even Know I'm Lying! :) 06:46:40 sykopomp: why would I need to when I have my own prototypes library? :D 06:46:53 I don't have any reason to need prototypes right now 06:47:09 -!- gigamonkey [n=user@adsl-99-64-118-11.dsl.pltn13.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 06:47:17 rahul: why not! Both of them exist. I think it would be a good exercise :) 06:47:24 . . . 06:47:29 rahul: you need Sheeple, you just don't realize it yet. 06:47:35 riiight 06:47:40 um just one question 06:47:44 that's what the Christians say 06:47:47 what are prototype oo good for?? 06:48:17 soupdragon: when you can't nail down the slots in a class when writing the code 06:48:28 hm okay 06:48:38 soupdragon: especially when there are multiple systems annotating an object with their own slot values 06:48:45 s/slot values/properties 06:49:06 -!- legumbre [n=leo@r190-135-54-76.dialup.adsl.anteldata.net.uy] has quit [Connection timed out] 06:49:06 this stuff predates OOP 06:49:24 they called it frames back then 06:49:34 big stuff in AI 06:49:35 soupdragon: It's nicer for interactive development, let's you do data sharing in interesting ways, it lets you define your objects in a way that fits better with certain tasks, and it's more flexible when you have a running system that you want to change on the fly (apart from simply frobbing it at the repl during development) 06:49:55 if you find yourself needing to have plist slots in your objects a lot, you probably want prototypes 06:50:12 sykopomp: everything you said there is wrong 06:50:16 why is it better than plist slots? 06:50:27 -!- Stattrav [n=Stattrav@202.3.77.161] has quit [Read error: 104 (Connection reset by peer)] 06:50:31 sykopomp: or at least, the wrong stuff has flooded the right stuff out of sight 06:50:35 soupdragon: speed 06:50:38 okay 06:50:50 soupdragon: and organization 06:51:04 kiuma [n=kiuma@85-18-55-37.ip.fastwebnet.it] has joined #lisp 06:51:09 Stattrav [n=Stattrav@202.3.77.161] has joined #lisp 06:51:10 plists are not an abstract way of storing data 06:52:13 it's like if you use cons cells to store complex numbers and use car and cdr everywhere to get the imaginary and real parts 06:53:04 soupdragon: There's some patterns that are more natural when you're dealing with prototypes, and I kinda like not having the divide between classes and objects. 06:55:44 soupdragon: there's also a lot of buzz about prototypes being really nice for GUIs, but I can't speak for that. There's a few people that can. 06:55:59 alright 06:56:22 Garnet was apparently pretty nice, sez some people, and it used a prototype system with constraints. Probably the constraints were the bigger deal for that, though. 06:56:47 yes, constraints were probably more important there 06:56:59 gui layout is all about constraint satisfaction 06:57:20 being able to build out objects was probably nice, too, though. Specially if you're working interactively. 06:57:54 My personal guess is that it's nicer to just say "Give me an object" and start messing around with that object while the program runs, as opposed to writing classes as you go along and updating your objects to use them. 06:58:32 sykopomp: yeah, before CLOS that would have been nice 06:58:50 rahul: CLOS is pretty good at that, but I think it's just trying too hard to cover what prototypes do easily. 06:58:59 haha 06:59:16 sykopomp: fetishes do not good programming practices make. 06:59:39 sykopomp: but you'll probably be a good designer of a java-like language 06:59:49 probably not. I like dynamic languages too much. 06:59:49 rahul: please go away, sulk in that dark closet of yours 07:00:31 guaqua: well, hurry up and give me something to sulk about 07:00:47 -!- Stattrav [n=Stattrav@202.3.77.161] has quit [Read error: 60 (Operation timed out)] 07:01:01 sykopomp: nah, I worked on a java system that was as dynamic as what you get a hard-on over 07:01:19 sykopomp: it was a wonderful mass of bugs :) 07:01:19 rahul: I find stuff like change-class, updating instances, going back and forth between classes and object to be a bit more overhead than they're worth. 07:01:40 guaqua wha tthe hell was that? 07:01:44 sykopomp: too bad that they have nothing to do with prototypes 07:02:10 soupdragon: turn on your social self when you are following this 'technical' bashing 07:02:13 sykopomp: prototypes + constraints can start to replicate it. 07:02:18 it's not that technical 07:02:24 rahul: sure they do. They involve manipulating behavior, characteristics, etc at runtime. 07:02:52 sykopomp: not really 07:03:12 sykopomp: change-class does, but only in a specific way. and that works. and has nothing to do with prototypes. 07:03:15 guaqua dunno I think they make a good couple 07:03:18 and going "oh, I have this idea, let me create a new class so I can then create a new object, or write a method so I can update this existing object into this new class..." is a bit more overhead than just screwing around with the object in question. 07:03:31 that's been my experience (and a few others') 07:03:44 sykopomp: there's a fine line between screwing around and screwing up 07:04:01 sykopomp: and the opposite has been the experience of a few 100 others 07:04:20 I dunno about that :) 07:04:22 sykopomp: and I'm only talking about one project 07:04:24 proq [n=user@unaffiliated/proqesi] has joined #lisp 07:04:41 it seems like people who actually use prototypes for certain tasks are pretty happy about how the workflow goes. 07:04:50 sykopomp: I know you don't know. if you did know about it, we'd know each other, most likely 07:06:14 rahul: I don't know about that, either! 07:06:59 -!- p_l [i=plasek@gateway/shell/rootnode.net/x-pdatnukdhopicfmm] has quit [Read error: 104 (Connection reset by peer)] 07:07:21 what do you mean "certain"? 07:07:44 I mean specific tasks -- stuff like writing GUIs is one, for example. 07:07:44 my system already supports usage of prototypes for "certain" tasks 07:08:04 For me, describing game objects seems to be a pretty fitting task for prototypes. 07:08:16 sykopomp: I can't imagine what in a GUI would require objects to have properties that you can't determine while coding the GUI 07:08:20 ramus`_ [n=ramus@99.23.135.62] has joined #lisp 07:08:39 maybe you don't know anything about writing GUIs? 07:08:44 sykopomp: in fact, I can't imagine what in any specific problem would require prototypes 07:08:54 sykopomp have you written that out as an example (game objects)? 07:09:05 haha yeah 07:09:13 I know NOTHING about writing GUIs 07:09:16 soupdragon: MUDs capitalize on that a lot. 07:09:28 they don't need to 07:09:29 rahul: well, that seemed pretty obvious to me. 07:09:49 rahul: can you imagine any specific problem that would require classes as opposed to prototypes? 07:09:54 sykopomp: yes, it also seems pretty obvious to you that CLOS can't build prototypes :) 07:09:56 I think that's an interesting question. 07:10:02 sykopomp: no 07:10:09 which is exactly my point 07:10:14 it's not the specific problem 07:10:25 can you imagine any specific problem that would require classes that you can't just do with lambda? 07:10:34 it's the approach to how you structure your entire body of code 07:10:43 because it's pretty easy to write a 'class-based' system with lambda :P 07:10:44 in fact, "body of code" is exactly where the difference is 07:11:13 it's pretty easy to write a 'prototype-based' system with lambda. 07:11:17 of course 07:11:39 sigh 07:11:43 sykopomp: you'll never learn 07:11:47 I won't? 07:11:50 no, you won't 07:11:56 oh well 07:11:58 that's unfortunate. 07:12:04 I like learning, after all. 07:12:22 sykopomp: so do born-again Chritians 07:12:27 erm Christians 07:12:30 and it never seemed obvious to me that CLOS couldn't build prototypes. I don't understand where that came from :P 07:12:32 rahul weird anti-christian theme 07:12:54 soupdragon: it's more about dogma than anything specific 07:13:08 soupdragon: sykopomp is a born-again frame-based programmer 07:13:13 hehe 07:13:22 soupdragon: he's probably the stereotypical 'angry atheist' that falls into dogma the same way he accuses others of doing so, while painting himself as a free thinker. 07:13:39 you know, the kind that sits on youtube answering the equally ridiculous creationist nuts. :P 07:13:39 everyone needs to try living somewhere for a while to get a deep understand of that particular area 07:13:40 It is because he is possessed by satan. 07:13:51 sykopomp: when have I told you that any specific programming style is right or wrong the way you have? 07:13:55 Zhivago: clearly! 07:14:05 rahul: I have? 07:14:10 yes, you have 07:14:20 damn. I must've missed the memo. 07:14:33 yeah, maybe you should try reading your own writing from time to time 07:14:40 it's educational, honestly 07:14:42 I was about to suggest that, actually. That's good advice. 07:15:27 "omg, classes suxxor because I can't change them while writing code" "omg, series suxxors because I can't read the docs" 07:15:42 should I grep my logs for that? 07:16:03 have fun replicating whole-system updates with prototypes 07:16:12 you never actually said why you didn't like series 07:16:14 you'll end up with a system that's as quirky as java 07:16:29 soupdragon: he said it hurts to read the docs 07:16:43 well I must agree it's difficult to get started with SERIES 07:16:44 soupdragon: It's more that I'd rather have something that worked with the sequence API. SERIES is a bit alien. 07:16:53 *rahul* facepalm 07:17:15 the thing it's very strong at optimising so you need to take some time to get an intuition for that 07:17:16 sykopomp: sequences work with the series API 07:17:22 series is a superset of sequences 07:17:35 and it is very alien but that's because it's missing from CL :P 07:17:35 rahul: Can I use MAP on series? :) 07:17:36 soupdragon: or you can just not use it optimized 07:18:04 sykopomp: can you understand the difference between subject and object? 07:18:08 rahul, well I mean it's like - you want to understand it well enough to use it efficiently, because otherwise you might as well write the direct style code in lisp 07:18:10 When I nest multiple loops, how can I use a value in the last nested loop as result of all the loops? i hope this makes sense. 07:18:12 rahul: can you read what I said? 07:18:14 oh right, all you have are prototypes 07:18:21 ben_m: return-from 07:18:59 soupdragon: no, you can just use it with generators and gatherers 07:19:10 soupdragon: and use series to transform in between 07:19:12 rahul: what's the point of optional type arguments when I have Python? 07:19:29 sykopomp: you are a fool 07:19:31 (defun test () (loop do (loop do (loop do when (something) do (return-from test :foo))))) 07:19:34 like that? 07:19:51 ben_m: yup. 07:19:56 rahul what you said is true but I don't see why you started it with 'no' ? 07:20:08 ben_m: yes, and you can use BLOCK to create another point you can return from 07:20:21 rahul: are you going to answer that question seriously? 07:20:26 soupdragon: if you don't care about optimization 07:20:27 (loop named foo ... (return-from foo 'bar)) 07:20:36 sykopomp: can you ask a sensible question? 07:20:40 stassats`: good point 07:20:47 -!- ramus` [n=ramus@adsl-99-23-147-238.dsl.chcgil.sbcglobal.net] has quit [Read error: 60 (Operation timed out)] 07:21:01 sykopomp: what is the point of declare ftype when I have python? 07:21:20 -!- BeZerk [n=MrEd@about/apple/iPod/BeZerk] has quit [Read error: 60 (Operation timed out)] 07:21:33 -!- sadiquea is now known as sdqali 07:21:40 BeZerk [n=MrEd@about/apple/iPod/BeZerk] has joined #lisp 07:21:40 rahul: I don't know. I'm not sure how far python's type inference goes. I assumed it at least went as far as to guess variable types :P 07:21:45 sykopomp: why doesn't the environment have inferred type declarations in it? 07:21:49 python doesn't use inferred types of functions by default 07:22:15 python has some kind of syntactic types now-a-days? 07:22:23 -!- lam_vacances [n=nlamirau@194.51.71.190] has quit [Read error: 104 (Connection reset by peer)] 07:22:24 soupdragon: the compiler. 07:22:49 (because of redefinition) 07:22:53 I read a bit of research people were doing in that area a while ago, cool that they're putting it into practice 07:23:08 soupdragon: Python, the Common Lisp compiler 07:23:17 oh :/ 07:23:20 soupdragon: it's SBCL/CMUCL's compiler :) 07:23:22 l_a_m [n=nlamirau@194.51.71.190] has joined #lisp 07:23:48 *soupdragon* wishes there was something like a case distinction between Python and PYTHON to disambiguate 07:23:57 -!- soupdragon [n=somebody@unaffiliated/fax] has left #lisp 07:24:00 soupdragon [n=somebody@unaffiliated/fax] has joined #lisp 07:24:08 soupdragon: well, we're in #lisp 07:24:16 soupdragon: CMUCL's Python was also there first. 07:24:37 sykopomp: you know what, I think I was like you when I first started learning lisp 07:24:37 so blame Guido for name conflicts. Blame him for bad taste, too. 07:24:47 well, I guess before I started learning lisp 07:25:07 once I started learning lisp, I stopped being like that, I guess 07:25:13 rahul: I hope I don't end up like you. I think you're kind of a jerk for no good reason. You're smart and you know your shit, and you seem to use that to attack others and prop yourself up :\ 07:25:35 sykopomp: yes, I'm the jerk here 07:25:38 yay! ++Kharma for sykopomp. :) 07:25:46 rahul: you don't have to be :) 07:26:19 sykopomp: shrug, have fun with your ego 07:26:45 rahul: it's not about my ego, but it does hurt to get attacked for no apparent reason. :( 07:26:48 clearly you have a lot of innovation to add to lisp 07:27:19 you know, like object systems that lispers introduced 30 years ago 07:27:55 so? 07:27:58 sykopomp: hey, you told me my approach couldn't work and I made it work 07:27:59 like CLOS? 07:28:05 stassats`: way before that 07:28:13 There's been like a dozen prototype object systems for various lisps, to boot. 07:28:35 rahul: than it's more than 30 years, hey, it's 2010 already 07:28:46 oh right 07:29:12 so 40, give or take 07:29:18 stassats`: I thought CLOS was only about as old as the beginning of the standardization process. 07:29:29 (clos itself, not its immediate predecessors) 07:29:44 sykopomp: immediate predecessors were pretty much the same 07:29:45 sykopomp: its roots are in flavors, etc. 07:29:56 stassats`: right, flavors, loops, and co. 07:30:01 stassats`: flavors really can't be considered a predecessor 07:30:10 it's inspiration more than anything 07:30:17 LOOPS is definitely a predecessor 07:30:19 i don't remember names 07:30:41 flavors had no generic functions 07:30:45 just "messages" 07:30:55 and I think multiple inheritance was stunted in a way 07:31:17 well, both loops and flavors had bizarre MI mechanisms afaict. 07:31:30 I wonder why CLOS didn't just use C3, though. 07:31:48 I know CLOS predates C3, but the algorithm is almost the same, isn't it? 07:31:56 *rahul* facepalm 07:32:08 sykopomp: why didn't fortran use cons cells? 07:32:16 I think that C3 is conformant with CLOS's requirements. The issue is that CLOS isn't required to use C3. 07:32:32 sykopomp: why didn't C use CLOS? 07:32:58 Zhivago: if I understand C3 correctly, then CLOS' description of the superclass linearization is off by a single word. 07:33:08 Probably because it would require introspective capabilities that are difficult to fit into C's model. ;) 07:33:27 (I think the only difference is that C3 uses leftmost precedence, and CLOS uses rightmost, so the linearization starts getting weird with deeper graphs) 07:33:32 Zhivago: shrug, just add a function to do what you want :P 07:33:54 sykopomp: nope 07:33:59 rahul: no? 07:34:08 sykopomp: C3 is more of a breadth-first search, from my understanding 07:34:13 (which may be flawed, actually) 07:34:18 -!- marioxcc [n=user@200.92.166.135] has quit [Remote closed the connection] 07:34:20 (since I haven't implemented it yet...) 07:34:24 rahul: it generates really nice linarizations. 07:34:44 sykopomp: I like pie. 07:34:46 Isn't it just a topological sort with a specified order of insertion? 07:34:51 rahul: Me too. 07:34:52 Zhivago: right 07:35:06 Zhivago: specified being mostly breadth-first 07:35:12 specified as 07:35:14 Zhivago: it gives leftmost precedence, CLOS gives rightmost. 07:35:17 or something like that. 07:35:19 whereas CLOS is depth-first 07:35:44 um 07:35:46 is it really? 07:35:57 I thought CLOS just said it was arbitrary with respect to the indirect superclasses. 07:36:00 in CLOS, a common superclass of two of your superclasses can appear between those two superclasses in the CPL 07:36:10 So you'd better not depend on a particular ordering of those. 07:36:15 Zhivago: no, CLOS specifies it to be rightmost. 07:36:23 in C3, the common superclass is always after both of the superclasses that inherit from it 07:36:42 rightmost is less important than depth first 07:37:06 ponies are more important than pie, though. 07:37:18 I don't think you can disagree. 07:37:31 at least, no serious person would. 07:37:36 not if the pies are pony-eating pies 07:37:41 he'll agree. he'll just phrase it starting with the word 'no' 07:37:46 ... 07:37:52 guaqua: close enough. 07:38:06 oh look, the peanut gallery puked something out 07:38:24 and it's making me sleepy. Goodnight #lisp 07:38:58 nighty night, sykopomp 07:39:02 Kolyan [n=nartamon@93-80-223-112.broadband.corbina.ru] has joined #lisp 07:39:10 -!- dandersen [n=dkcl@metabug/dandersen] has left #lisp 07:40:00 Stattrav [n=Stattrav@202.3.77.132] has joined #lisp 07:40:26 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 07:43:23 hmm, I wonder when he's going to start making sensible and correct statements 07:43:34 oh well. 07:44:56 I guess it's late enough that I can go to bed now and not get to work too early :P 07:45:09 -!- daniel_ is now known as daniel 07:46:42 -!- mishoo [n=mishoo@79.112.110.205] has quit [Read error: 110 (Connection timed out)] 07:46:59 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 07:46:59 mishoo [n=mishoo@79.112.110.205] has joined #lisp 07:47:21 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 07:48:25 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 07:48:47 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 07:49:25 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 07:49:47 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 07:50:56 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 07:51:19 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 07:59:44 -!- Douglish [i=dal@93.99.29.53] has quit ["Open shouldn't be closed"] 08:01:10 silenius [n=jl@yian-ho03.nir.cronon.net] has joined #lisp 08:04:43 mvilleneuve [n=mvillene@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has joined #lisp 08:04:44 Beetny [n=Beetny@ppp118-210-127-153.lns20.adl2.internode.on.net] has joined #lisp 08:05:09 good morning 08:07:53 freiksenet [n=freiksen@hoasnet-fe29dd00-202.dhcp.inet.fi] has joined #lisp 08:08:55 -!- Stattrav [n=Stattrav@202.3.77.132] has quit ["Leaving"] 08:09:07 Stattrav [n=Stattrav@202.3.77.132] has joined #lisp 08:22:36 plage [n=user@113.161.70.106] has joined #lisp 08:22:37 -!- spicey [n=spicausi@87.99.83.235] has quit ["Leaving"] 08:23:36 Good afternoon! 08:27:55 hello plage 08:28:42 plage: back in Vietnam? 08:28:45 hey mvilleneuve; Did you have some holidays? 08:28:56 mvilleneuve: Yes, I've been here two weeks already. 08:29:06 Now in HCM, before, in Hue. 08:31:14 plage: cool! I did take 3 days off, but that's it for now. 08:33:07 SandGorgon [n=OmNomNom@122.160.41.129] has joined #lisp 08:33:43 So you are pretty busy I take it? 08:34:13 jtza8 [n=jtza8@wbs-41-208-221-217.wbs.co.za] has joined #lisp 08:39:24 fiveop [n=fiveop@g229138016.adsl.alicedsl.de] has joined #lisp 08:39:54 tcr [n=tcr@host146.natpool.mwn.de] has joined #lisp 08:42:17 plage: a bit busy yes (we just signed a second contract), but nothing unbearable yet :) 08:42:27 spradnyesh [n=pradyus@122.167.114.79] has joined #lisp 08:43:11 Hey, that's good news! 08:44:20 -!- konr` [n=user@187.88.22.35] has quit [Read error: 60 (Operation timed out)] 08:44:47 jtza8_ [n=jtza8@iburst-41-213-12-127.iburst.co.za] has joined #lisp 08:46:38 yes it is, we're very happy about it (even if we're not going to make much money from that contract) 08:46:40 -!- kwinz3 [n=kwinz@d86-33-115-105.cust.tele2.at] has quit [Remote closed the connection] 08:48:25 Still... Anyway, got to go to catch the 16:00 staff shuttle back to town. 08:49:08 -!- proq [n=user@unaffiliated/proqesi] has quit [Connection timed out] 08:55:55 kwinz3 [n=kwinz@d86-33-115-105.cust.tele2.at] has joined #lisp 08:56:29 mjsor [n=mjsor@c-71-193-150-13.hsd1.or.comcast.net] has joined #lisp 08:58:16 -!- freiksenet [n=freiksen@hoasnet-fe29dd00-202.dhcp.inet.fi] has quit [Remote closed the connection] 08:58:21 -!- jtza8 [n=jtza8@wbs-41-208-221-217.wbs.co.za] has quit [Read error: 110 (Connection timed out)] 08:59:10 -!- saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has quit [] 09:01:35 splittist [i=5502cbfd@gateway/web/freenode/x-psfbqjlnegazzbos] has joined #lisp 09:01:40 morning 09:03:35 -!- mjsor [n=mjsor@c-71-193-150-13.hsd1.or.comcast.net] has quit [] 09:05:35 I'm a bit confused on when to use :foo and when to use 'foo 09:05:39 Is there a difference? 09:06:01 :foo is a symbol in the KEYWORD package. 09:06:07 -!- kwinz3 [n=kwinz@d86-33-115-105.cust.tele2.at] has quit [Read error: 60 (Operation timed out)] 09:06:16 'foo is a symbol in whatever package was current when that was read. 09:06:44 I see. 09:07:39 -!- plage [n=user@113.161.70.106] has quit [Read error: 110 (Connection timed out)] 09:11:23 FufieToo [n=poff@Gatekeeper.vizrt.com] has joined #lisp 09:12:01 b4|hraban [n=b4@a83-163-41-120.adsl.xs4all.nl] has joined #lisp 09:12:53 varjag [n=eugene@122.62-97-226.bkkb.no] has joined #lisp 09:13:17 -!- JohnnyL [i=excellen@ool-182f0b98.dyn.optonline.net] has quit [] 09:15:52 Jabberwockey [n=jens@port-11432.pppoe.wtnet.de] has joined #lisp 09:16:35 ben_m: so for example (eq :foo 'keyword::foo) ==> T 09:17:15 understood :) Thanks a lot. 09:18:11 I've been tricked by this at first: (in-package :foo) (slot-value obj 'slot-name) won't work if the class is defined in a package :bar 09:18:28 should be (slot-value obj 'bar::slot-name) 09:18:36 I'm used to :bar because I thought it was cleaner 09:19:00 yeah, it seems a lot cleaner to use keywords only, where possible 09:19:04 mishoo: In general, slots are considered an implementation-detail; you should not access them directly from other packages 09:19:07 jan247 [n=jan247@unaffiliated/jan247] has joined #lisp 09:19:38 ben_m: keyword have the problem that they're a globally shared; i.e. they can give rise to name conflicts 09:19:47 pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has joined #lisp 09:19:49 kwinz3 [n=kwinz@213162066160.public.t-mobile.at] has joined #lisp 09:20:04 Moin moin! 09:20:42 tcr: I know it's bad practice to access slots directly, but I was trying that in REPL to debug something and I was baffled that it didn't work (until I understood what's with the symbols and packages..) 09:21:00 tcr: how do you get conflicts? 09:22:27 splittist: everywhere where you use symbols to denote some entity? 09:25:28 tcr: you mean if you try to defX a keyword, or in circumstances where there's a single semantic namespace like *FEATURES*? (Or both (: ) 09:25:47 -!- fiveop [n=fiveop@g229138016.adsl.alicedsl.de] has quit ["humhum"] 09:27:43 sure 09:28:00 one example are initargs in classes, using keywords there, there is the possibility that initargs introduced by subclasses (which may come from the user) clash with your own. 09:28:19 -!- lemoinem [n=swoog@66.51.249.205] has quit [Read error: 110 (Connection timed out)] 09:28:37 but it's a general problem; for example, named-readtables are named by true symbols, so you're supposed to use my-pkg:my-syntax rather than :my-syntax 09:30:34 nowhere_man [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has joined #lisp 09:31:31 tcr: so the safe use of keywords is as 'symbolic enums' ? Anything else? 09:32:01 -!- jan247 [n=jan247@unaffiliated/jan247] has quit [] 09:33:27 Don't use keywords for globally shared entities. :-) 09:33:59 -!- PatrickMcLaren [n=Patrick@CPE-138-217-214-253.lns1.fli.bigpond.net.au] has quit [] 09:34:48 I wonder who does not use keywords for initargs; using symbols there would just look quirky. It's more a problem when programming-in-the-large, I guess 09:35:19 -!- mvilleneuve [n=mvillene@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has quit [Read error: 110 (Connection timed out)] 09:36:37 ejs [n=eugen@109-167-1-59.dynamic.peoplenet.ua] has joined #lisp 09:43:40 Edico [n=Edico@unaffiliated/edico] has joined #lisp 09:48:05 -!- mathrick [n=mathrick@83.1.168.198] has quit [Read error: 54 (Connection reset by peer)] 09:48:12 mathrick [n=mathrick@83.1.168.198] has joined #lisp 09:49:10 Athas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has joined #lisp 09:53:31 moesenle [n=moesenle@atradig124.informatik.tu-muenchen.de] has joined #lisp 09:55:24 mvilleneuve [n=mvillene@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has joined #lisp 09:59:41 p_l [i=plasek@89.248.166.201] has joined #lisp 10:03:12 -!- gruseom [n=daniel@S0106001217057777.cg.shawcable.net] has left #lisp 10:04:23 freiksenet [n=freiksen@hoasnet-fe29dd00-202.dhcp.inet.fi] has joined #lisp 10:04:32 kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 10:07:50 postamar [n=postamar@c-nag-rtr.univ-avignon.fr] has joined #lisp 10:09:12 ramus` [n=ramus@99.23.132.165] has joined #lisp 10:09:58 how do I find out which line of code caused some error? 10:10:31 I frequently end-up in the debugger but have to guess what's wrong :-/ should I (proclaim (debug 3)) or something like this? 10:10:49 -!- fusss [n=chatzill@60-241-1-206.static.tpgi.com.au] has quit [Read error: 113 (No route to host)] 10:11:18 fusss [n=chatzill@60-241-1-206.static.tpgi.com.au] has joined #lisp 10:13:06 mishoo: 'v' (in the slime debugger) is the usual suggestion (I believe) 10:13:29 stoop [n=stoop@unaffiliated/stoop] has joined #lisp 10:13:43 splittist: yes but it usually goes to the function definition, not to the line where the condition occurred 10:14:57 What implementation? 10:15:14 if you have a global (declaim (optimize speed)), repent immediately 10:15:32 bytbox [n=chatzill@AC810E8C.ipt.aol.com] has joined #lisp 10:17:14 tcr: sbcl 10:17:30 cmm: I don't :) 10:18:39 fixed, a global (proclaim '(optimize (debug 3)) did it 10:19:26 *mishoo* thinks ..oO( and the debugger suddenly got a new dimension! it shows everything... ) 10:19:41 mishoo: (debug 3) contains lot of crap 10:19:43 use (debug 2) 10:20:20 How big/self-contained is the code in question? 10:21:10 tcr: why? 10:21:29 a few files.. but the error was easy to see, once I got a good debugger 10:22:14 I wonder why (debug 2) is needed sometime, and sometime not 10:30:23 -!- b4|hraban [n=b4@a83-163-41-120.adsl.xs4all.nl] has quit [Read error: 113 (No route to host)] 10:30:37 ramus`__ [n=ramus@99.23.130.43] has joined #lisp 10:30:55 b4|hraban [n=b4@a83-163-41-120.adsl.xs4all.nl] has joined #lisp 10:31:10 -!- pjb [n=t@248.Red-79-149-157.staticIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 10:34:09 -!- exu0 [n=u@188.105.119.16] has quit ["Leaving"] 10:34:27 -!- ejs [n=eugen@109-167-1-59.dynamic.peoplenet.ua] has quit [Read error: 113 (No route to host)] 10:35:15 postmodern users, how do you do table redefinition or dummy/test databases? 10:35:32 -!- sdqali [n=sadiquea@119.82.102.202] has quit ["Leaving."] 10:35:40 sadiquea [n=sadiquea@119.82.102.202] has joined #lisp 10:35:44 right now I am having to drop the whole table via psql instead of just evaluating the change in class in the editor and having it take effect 10:38:14 Zephyrus [n=emanuele@unaffiliated/zephyrus] has joined #lisp 10:38:29 -!- ramus`_ [n=ramus@99.23.135.62] has quit [Read error: 110 (Connection timed out)] 10:38:39 in fact, there is no "destructivel" side-effect functionality in postmodern/cl-postgres; very conservative design, imo 10:39:26 it also have functionality de-documented in the manual. 10:39:38 (let ((table (make-hash-table)) (defun foo(n) (if (table has foo(n)) (return it) (setf (key table) (foo n))))) 10:39:42 (execute (:create-sequence 'foo)) works perfectly fine 10:39:43 Is this pseudo code correct? 10:39:46 For memoization. 10:41:17 (setf (key table) (foo n)) <-- how do you compute FOO of n? 10:41:43 recursively 10:42:04 I can copy/paste my source if you want? :) 10:42:40 http://sprunge.us/BeJh 10:42:58 -!- ace4016 [i=ace4016@cpe-76-170-134-79.socal.res.rr.com] has quit ["night"] 10:44:00 ben_m: lookup the definition of GETHASH, it takes extra arguments 10:44:22 your COND is broken; the first condition computes the same value twice 10:44:37 if that value is 1, the second condition is never executed 10:44:58 hmm 10:45:15 play with the TRACE and UNTRACE macros 10:45:18 -!- bytbox [n=chatzill@AC810E8C.ipt.aol.com] has quit ["ChatZilla 0.9.85 [Firefox 3.5.4/20091016092926]"] 10:45:36 brb, my own crap to debug 10:45:49 thanks :) 10:46:48 grouzen [n=grouzen@91.214.124.2] has joined #lisp 10:48:33 demmeln [n=Adium@dslb-094-216-035-252.pools.arcor-ip.net] has joined #lisp 10:48:51 PatrickMcLaren [n=Patrick@CPE-138-217-214-253.lns1.fli.bigpond.net.au] has joined #lisp 10:49:07 -!- PatrickMcLaren [n=Patrick@CPE-138-217-214-253.lns1.fli.bigpond.net.au] has left #lisp 10:49:14 PatrickMcLaren [n=Patrick@CPE-138-217-214-253.lns1.fli.bigpond.net.au] has joined #lisp 10:50:13 ben_m: recursion patterns are explored in chapter 1/2 or SICP, forgot which one 10:50:46 Thanks, but I think the algorithm is ok 10:50:48 something weird is going on 10:50:59 When I test it using (chain 999999) I get a result instantly 10:51:19 But if I use it in a loop from 1 below 1000000 it appears to take forever 10:52:09 (loop with max = 0 for i from 1 below 1000000 when (< max (length (chain i))) do (setf max i) finally (return max)) 10:53:56 blandest [n=blandest@softhouse.is.ew.ro] has joined #lisp 10:55:04 -!- stoop [n=stoop@unaffiliated/stoop] has quit [Read error: 110 (Connection timed out)] 10:55:20 Adlai [n=adlai@unaffiliated/adlai] has joined #lisp 10:55:38 stoop [n=stoop@unaffiliated/stoop] has joined #lisp 10:58:15 any ideas on how to get Postmodern to do Postgres ENUMs and other richer datatypes? if we're gonna go backend specific might as well go all the way, eh? 10:58:21 -!- ramus` [n=ramus@99.23.132.165] has quit [Read error: 110 (Connection timed out)] 11:01:15 DrunkTomato [n=DEDULO@ext-gw.wellcom.tomsk.ru] has joined #lisp 11:02:55 (query "CREATE TYPE status AS ENUM ('pending', 'sent', 'bounced', 'archived', 'deleted')") 11:03:23 tvaalen [n=r@unaffiliated/tvaal] has joined #lisp 11:03:24 a bit scary seing SQL as a string 11:03:32 then defined the message class with slot status of :col-type status, and metclass dao-class 11:03:46 soupdragon: it's an execute-once statement 11:03:54 oh in that case it's okay! 11:04:21 this is "business metadata"; just designing the data types the DBAs will use later 11:04:39 -!- demmeln [n=Adium@dslb-094-216-035-252.pools.arcor-ip.net] has left #lisp 11:05:35 I have a nice demo box setup; win32 clozure with 10+ threads pumping out email alerts and text messages 11:05:56 a "fancy" configuration that includes and ActiveX DLL for messaging! 11:06:10 -!- b4|hraban [n=b4@a83-163-41-120.adsl.xs4all.nl] has quit [Remote closed the connection] 11:13:09 wow! how come the sbcl compiler runs so fast nowadays? rebuilds cl-ppcre in less than 8 seconds 11:13:33 myrkraverk` [n=johann@157-157-247-36.dsl.dynamic.simnet.is] has joined #lisp 11:13:58 -!- myrkraverk [n=johann@unaffiliated/myrkraverk] has quit [Read error: 60 (Operation timed out)] 11:15:13 lukego: did you buy newer hardware? ;) 11:15:21 lukego: while you've been off in squeakyforthland clever folks have been at work (: 11:16:41 in 'clbuild preloaded' (asdf:oos 'asdf:load-op :clx :force t) gives me a confusing error about compiling defpackage 11:17:14 -!- spradnyesh [n=pradyus@122.167.114.79] has left #lisp 11:23:41 how do people usually compile systems? if I run the asdf load-op at the prompt with sbcl then the progress printouts / warnings are a total firehose 11:24:23 -!- nicklevine_ [n=chatzill@gannet.ravenbrook.com] has quit [Read error: 54 (Connection reset by peer)] 11:25:03 *Xach* does that, ignores the firehose 11:26:20 I suppose on multicore desktops we can afford to let Emacs spend one core inserting all the compiler output into the repl :) 11:27:00 *fusss* remembers there was a way to create a method temporarily; sorta like LABELS/FLET but for generic functions 11:27:03 Nshag [n=shag@lns-bzn-37-82-253-12-196.adsl.proxad.net] has joined #lisp 11:27:11 what a simple way to muffle all compiler warnings / messages? 11:27:17 (during an asdf op) 11:27:17 fusss: something of costanza's, iirc. 11:27:32 -!- dstatyvka [i=ejabberd@pepelaz.jabber.od.ua] has left #lisp 11:27:35 lukego: inhibit-warnings, iirc 11:27:55 I still see notes 11:28:14 -!- vext01 [n=edd@edd-i386.kent.ac.uk] has quit ["upgrade"] 11:29:05 sbcl manual 4.1.1 has the answer 11:30:05 Geralt [n=Geralt@p5B32F39E.dip.t-dialin.net] has joined #lisp 11:31:11 -!- postamar [n=postamar@c-nag-rtr.univ-avignon.fr] has quit [Read error: 113 (No route to host)] 11:31:19 no wonder my sbcl skills a primitive; I am still using the 0.8.5 manual 11:31:32 -!- Geralt [n=Geralt@unaffiliated/thegeralt] has quit [Client Quit] 11:31:41 with no section numbers 11:31:46 Geralt [n=Geralt@p5B32F39E.dip.t-dialin.net] has joined #lisp 11:32:20 -!- Geralt [n=Geralt@unaffiliated/thegeralt] has quit [Client Quit] 11:32:56 interesting. (declaim (sb-ext:muffle-conditions sb-ext:compiler-note)) halves the wall-clock compilation time of (time (asdf:oos 'asdf:load-op :zip :force t)) for me. not much impact on CPU time. I'm running the comands at SLIME repl from an Emacs running on another host (in a nearby counrty) 11:33:16 cltl2 with-added-methods 11:33:16 Sorry, I couldn't find anything for with-added-methods. 11:34:33 fusss, CLtL2 has with-added-methods. I think some implementations have a cltl2 compatibility package that might have this. 11:34:40 ruediger [n=the-rued@p508B3216.dip.t-dialin.net] has joined #lisp 11:34:59 Adlai: NICE! thanks :-) 11:35:05 probably it's not such a bad idea to stifle style-warnings when compiling other people's libraries when you're not going to read them anyway 11:35:11 besiria [n=user@pantou.lib.uom.gr] has joined #lisp 11:36:52 -!- dmiles_afk [n=dmiles@c-76-104-220-73.hsd1.wa.comcast.net] has quit [Read error: 60 (Operation timed out)] 11:37:59 lukego: doesn't zip.asd muffle notes on #+sbcl anyway? 11:38:23 lukego: if you're not going to be reading it, how many times are you going to be compiling it? 11:38:24 ah, but not for dependencies perhaps? 11:38:55 splittist: fair point perhaps 11:39:28 well, I wouldn't want to read SBCL's style warnings even for my own projects, and I'm compiling those rather often 11:39:36 spradnyesh [n=pradyus@nat/yahoo/x-fdlltznftydvmlsc] has joined #lisp 11:40:56 mgr [n=mgr@psychonaut.psychlotron.de] has joined #lisp 11:41:53 I limit my claim to the observation that via SLIME to a remote host (Swiss DSL - German colo) it takes about twice as long to compile this randomly chosen system with compiler notes enabled. 11:42:38 is the time spent in printing the notes across the network, or in fontifying and overlaying all the source buffers at the end? 11:43:13 Krystof: I see Emacs on my laptop around 30-80% CPU. I shouldn't have any relevant buffers open, so I think this is *slime-repl* handling 11:43:30 but good point. it's latency-induced, but what's causing the latency .. 11:43:51 oh and CPU-time on the server is not impacted noticibly - so it is latency and not e.g. Swank processing. 11:45:03 Krystof: scp does 500KB/s so presumably Emacs isn't calling read() often enough. 11:45:03 isn't this your usual argument: that remote procedure call transparency is all very well, but it's only ever going to be translucent? 11:46:07 lukego: output is buffered by default 11:46:46 lukego: and chunks of 1000characters or some such are finish-output'd 11:46:47 Krystof: possibly, at a nuts and bolts level. I'm still thinking in terms of "if anybody happens to be e.g. recompiling McCLIM at the SLIME prompt, they might want to think about muffling compiler notes" 11:47:14 reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #lisp 11:47:31 tcr: I don't have a good explanation. Emacs isn't CPU-pegged so I see no reason it wouldn't be keeping up with the input rate 11:47:56 unless we have some kind of flow-control in the Swank protocol? is Lisp ever reading from Emacs during this time? 11:47:58 Joreji [n=thomas@40-233.eduroam.RWTH-Aachen.DE] has joined #lisp 11:48:10 you could try setting swank:*use-dedicated-output-stream* to T in your .swank.lisp and *dedicated-output-stream-buffering* 11:48:17 yeah we have flow-control 11:49:05 -!- ben_m [n=ben@chello084113058207.12.vie.surfer.at] has quit ["<3"] 11:49:43 *slime-events* looks like a bunch of async write-string messages from lisp to emacs. where's the flow control? 11:49:44 see also *maximum-pipelined-output-chunks* *maximum-pipelined-output-length* and send-user-output 11:50:16 the :ping and :emacs-pong events indicate the flow-control 11:51:29 interesting 11:51:35 how come we need flow control? 11:52:29 I didn't implement it so I cannot say for sure, but afaik, before it, output was sometimes lost spuriously 11:52:41 will clbuild find ~/.swank.lisp or should it go in e.g. clbuild/ ? 11:53:01 the swank server looks in ~/.swank.lisp 11:53:02 you could make those pretty TCP pictures of yours for the swank connection 11:53:25 things like Nagle gone bad should be immediately visible there 11:53:27 I think lukego is mostly dismayed that nothing has changed in the lisp world since he left 11:53:52 still not lukego-friendly 11:54:15 What does finish-output on a tcp socket do? 11:54:32 Krystof: on the contrary! I am mightily impressed at the moment at all the good stuff that has been happening 11:54:34 he's been twittering a different impression 11:55:16 twittering, eh? 11:55:19 oh I wonder if the flow control is so that a noisy Lisp thread won't starve other Lisp threads. 11:55:26 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit [Read error: 110 (Connection timed out)] 11:56:09 good call 11:56:49 -!- kwinz3 [n=kwinz@213162066160.public.t-mobile.at] has quit [Read error: 110 (Connection timed out)] 11:57:20 blandest [n=blandest@softhouse.is.ew.ro] has joined #lisp 11:57:32 dstatyvka [i=ejabberd@pepelaz.jabber.od.ua] has joined #lisp 11:57:44 lukego should blog about the state when he left, and the state when he came back :-) 11:58:01 I'm ssh tunneling -L4005:localhost:4005 - can I extend that to make the dedicated output stream work? 11:59:02 probably :-) does the manual tell? 11:59:06 it's more than every 6 months or so I've been trying to do "a weekend of Lisp hacking" and basically it always turns into fighting build problems and never getting to actually do anything. this time it's been very smooth with clbuild 11:59:08 if not, patches welcome 12:00:01 lukego: so that means you're actually going to do some Lisp hacking? Lucky us if that's your displacement activity! 12:01:23 ok good news on two fronts. #1 you can use dedicated outupt stream with -L4006:localhost:4006 and (setq swank:*dedicated-output-stream-port* 4006) and #2 the dedicated output stream totally nails the performance issues 12:01:40 splittist: I just go with the flow like always :) 12:02:49 lukego: Could you paste the exact lines you did on server/client? 12:03:12 for the output stream? 12:03:16 for everything 12:03:29 I'll see what is in the manual, and possibly how to extend it 12:03:41 did you tweak the buffering of the dedicated output stream? 12:04:57 no I just did (setq swank:*use-dedicated-output-stream* t) and (setq swank:*dedicated-output-stream-port* 4006) and forwarded ssh port -L 4006:localhost:4006, and that's the lot 12:07:00 I almost wonder if `C-u M-x slime-connect' should offer to rig this up 12:07:09 (minus the ssh port forwarding) 12:07:43 and I'm sure this is a "patches welcome" idea but we could even reuse the same port and just have Emacs send a sexp at the start to nominate what it's actually connecting for 12:07:59 -!- Beetny [n=Beetny@ppp118-210-127-153.lns20.adl2.internode.on.net] has quit [Read error: 54 (Connection reset by peer)] 12:08:55 how would that autoconfiguration thing work with forwarding? 12:10:44 I think forwarding has to be setup separately. I was thinking of a prompt "Dedicated output stream port [none]: " as a simple alternative to hacking .swank.lisp 12:12:21 I'm not sure how people are usually starting their swank server. I'm running 'clbuild preloaded' and then (swank:create-server :dont-close t) 12:14:47 postamar [n=postamar@c-nag-rtr.univ-avignon.fr] has joined #lisp 12:16:51 I should probably create a "start-my-swank.lisp" that sets all the ports up right. then I would not care about having it in slime-connect 12:17:54 hm or what about a `clbuild swank' that starts swank on 4005 w/ dedicated output on 4006 ? 12:18:17 but all on one port would be nicer 12:18:43 lukego: ./clbuild run swank 12:18:57 optional argument --port ... --address ... 12:19:29 No idea about dedicated output or whether .swank.lisp is loaded (and if so, when), etc. 12:19:39 ah in clbuild.lisp 12:23:12 wow my Lisp heap is 120MB. I suppose this is what you get for wanting "preloaded" :) 12:24:27 no, some other explanation, not important 12:25:09 -!- ruediger [n=the-rued@p508B3216.dip.t-dialin.net] has quit ["This computer has gone to sleep"] 12:25:20 -!- p_l [i=plasek@89.248.166.201] has quit [Read error: 60 (Operation timed out)] 12:25:30 p_l [i=plasek@89.248.166.201] has joined #lisp 12:25:39 lichtblau: I'm trying to use plexippus and following the examples with STP, but it's complaining about missing methods 12:26:09 and after a closer inspection, it seems there are no *-USING-NAVIGATOR methods defined for STP, only DOM 12:26:12 what gives? 12:26:43 the STP-related methods should be in the STP source code -- perhaps your version of STP isn't recent enough? 12:27:28 in general, Plexippus with STP has seen much more testing than with DOM. 12:27:44 btw anecdotally do people feel okay about connecting SLIME to a production e.g. webserver that's doing real traffic? or is this asking for trouble? 12:27:50 -!- besiria [n=user@pantou.lib.uom.gr] has quit [Remote closed the connection] 12:28:25 lichtblau: it's from the latest ASDF-installable tarball 12:28:33 cxml-stp-2007-10-21 12:28:40 lukego: By the time I'm connecting a debugger to a live server, I'm usually in trouble already. 12:29:09 in Erlang you can do product development by connecting to a live server and hacking away 12:30:00 ramus` [n=ramus@99.23.128.41] has joined #lisp 12:30:00 mathrick: in that case the cliki page in wrong, it should point to the more recent tar.gz not the out-of-date .tgz 12:30:11 fe[nl]ix [n=algidus@ABordeaux-158-1-74-135.w90-60.abo.wanadoo.fr] has joined #lisp 12:30:13 lichtblau: okay, lemme try updating that then 12:31:51 lichtblau: it seems it's because you uploaded a newer .tar.gz, whereas the older was .tgz 12:32:05 so the link kept pointing at the old "latest" symlink 12:32:26 -!- OmniMancer1 [n=OmniManc@122-57-29-175.jetstream.xtra.co.nz] has quit ["Leaving."] 12:32:58 lichtblau: okay, so that helped, thanks 12:33:05 -!- seangrove [n=user@c-67-188-112-83.hsd1.ca.comcast.net] has quit [Read error: 110 (Connection timed out)] 12:33:45 lichtblau: btw, what does STP stand for? 12:35:00 mathrick: check the wikipedia page on 2,5-Dimethoxy-4-methylamphetamine 12:35:35 lichtblau: hah, that's neat 12:38:24 Hun [n=hun@p50993726.dip0.t-ipconnect.de] has joined #lisp 12:41:42 ramus`_ [n=ramus@99.23.139.24] has joined #lisp 12:42:54 kwinz3 [n=kwinz@d86-33-115-105.cust.tele2.at] has joined #lisp 12:44:51 Sergio` [n=Sergio`@a89-152-187-193.cpe.netcabo.pt] has joined #lisp 12:47:11 -!- ramus` [n=ramus@99.23.128.41] has quit [Read error: 60 (Operation timed out)] 12:48:08 -!- Xantoz [n=hejhej@c-8cb7e253.01-157-73746f30.cust.bredbandsbolaget.se] has quit [Read error: 60 (Operation timed out)] 12:48:26 -!- ramus`__ [n=ramus@99.23.130.43] has quit [Read error: 104 (Connection reset by peer)] 12:49:09 lukego: in Erlang you don't connect to a production server, you do a rolling upgrade of code from your devel VM to one of the machines in the cluster ;-) 12:49:36 speak for yourself :) 12:51:01 lukego: I think people do it but it's more a knocking-on-wood experience 12:51:30 p_l: That is one of the coolest features of Erlang. 12:51:58 One that I will probably never need to use, but very cool none-the-less. 12:52:31 lukego: I heard of people connecting in order to debug something for customer/client 12:53:19 -!- stoop [n=stoop@unaffiliated/stoop] has quit ["Leaving"] 12:54:20 Although, Erlang can't top the story from Lisp where NASA connected to a rover from a million miles away to fix some code in the REPL. 12:54:23 lichtblau: is there a way to set a default namespace in plexippus? 12:55:08 bbommarito: when they fixed that whacky multithreading race condition? yeah, erlang is short on that particular brand of heroics. ;-) 12:55:36 (but yes that was pretty spectacular) 12:55:38 lukego: That's the one. I mean yes, Erlang can run a PBX, but Lisp runs rovers... 12:55:48 mathrick: default as in "empty namespace"? I think you can use "" or NIL in with-namespace, at least accordding to http://common-lisp.net/project/plexippus-xpath/atdoc/index.html#xpath__fun__with-namespaces 12:56:30 oh, I didn't notice that 12:56:32 Guthur [n=Michael@host81-159-211-99.range81-159.btcentralplus.com] has joined #lisp 12:56:32 *mathrick* tries 12:59:25 hdurer [n=hdurer@nat/yahoo/x-jnrafnblykvqbtmy] has joined #lisp 12:59:33 bbommarito: it wasn't afaik rover, but spaceship :-) 12:59:55 and the problem caused course deviation, didn't it? 13:00:42 bbommarito: And they spent considerably time testing that hot-patch 13:01:11 bgs100 [n=ian@unaffiliated/bgs100] has joined #lisp 13:01:31 joubert [n=joubert@user-0cev80t.cable.mindspring.com] has joined #lisp 13:02:03 -!- Jasko [n=tjasko@174.59.195.12] has quit ["Leaving"] 13:02:15 Of course, then there is RBD (rover based development), when you actually build the product on the customer's live server... 13:03:02 (or should that be PDD - panic driven development?) 13:03:07 tcr: Well, they actually spent a lot of time testing it before it was sent up but they missed a race condition. That's the story I pull out whenever someone gripes at me for missing a potential oddball condition in code on a staging environment. If frigging NASA can miss a potential odd case, so can I:) 13:03:09 while telling the customer you're just configuring the system 13:03:24 jsnell: exactly (: 13:04:07 bbommarito: better such error than to declare a float as integer 13:04:23 Jasko [n=tjasko@c-174-59-195-12.hsd1.pa.comcast.net] has joined #lisp 13:05:10 or copying a module from another rocket without testing because individual unit-tests didn't show anything last time... 13:06:09 but it wouldn't be in RPAN if it wasn't meant to be re-used... 13:06:18 -!- splittist [i=5502cbfd@gateway/web/freenode/x-psfbqjlnegazzbos] has quit ["bbiab"] 13:07:15 splitoh, the code module was fine... they just forgot that it was still set for the older rocket 13:08:03 "why didn't you configure it properly first time. Honestly, lisp programmers have such poor attention to detail" 13:08:14 s/splitoh/splittist: oh/ 13:08:25 Krystof: it was in Ada 13:09:10 the thing that you're talking about was in Ada 13:09:22 the thing that everyone else is talking about wasn't 13:09:36 I wonder how ITA handle the live-hacking thing. presumably when they install their system at a new customer there will be a bunch of integration-hacking needed, when the system is perhaps not in full production use but at least expected to be stable 13:10:40 the thing that you're talking about, I think, was the integer overflow responsible for the Ariane 5 disaster, which we can't really blame NASA for 13:10:43 also in Erlang, like in Unix, you often want to connect to a "sick" production system and explore what is going on - doing the equivalent of top, strace, etc from within the system 13:11:01 jsoft_ [n=user@unaffiliated/jsoft] has joined #lisp 13:11:07 -!- jsoft [n=user@unaffiliated/jsoft] has quit [Read error: 104 (Connection reset by peer)] 13:11:40 so it would be nice to be able to remotely execute basic stuff like "(room)" and maybe "(trace foo)" etc etc etc on a running Lisp without fear of disrupting what else it might be doing. 13:11:51 Krystof: I was speaking generally about the problems. Kinda got out of hand. Going back to what I was doing before :) 13:11:57 but maybe this is a bit hypothetical 13:12:16 -!- sadiquea [n=sadiquea@119.82.102.202] has quit ["Leaving."] 13:13:42 -!- Krystof changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language . New: cl-gtk2 0.1.1, SBCL 1.0.34 13:14:19 Axius [n=ade@92.85.28.40] has joined #lisp 13:14:33 -!- Athas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has quit [Remote closed the connection] 13:20:18 what is compact info environment in SBCL? 13:20:34 the :keys class option in Postmodern is kinda funky. subsequent calls to GET-DAO wants a value for *all* keys, if you specify more than one slot to be indexed as a key 13:21:58 (:key id login-name email) requires that you specify (get-dao 'user 123 "foo" "foo@bar.com")! instead of allowing you to look up by any single key, i.e. (get-dao 'user 123) or (get-dao 'user 'foo") 13:22:49 -!- Nshag [n=shag@lns-bzn-37-82-253-12-196.adsl.proxad.net] has quit [Read error: 110 (Connection timed out)] 13:23:06 Nshag [n=shag@lns-bzn-52-82-65-106-119.adsl.proxad.net] has joined #lisp 13:25:54 splittist [i=5502cbfd@gateway/web/freenode/x-mkaytwcfymmepwvm] has joined #lisp 13:26:02 -!- charOS_ is now known as charOS 13:27:09 -!- p_l [i=plasek@89.248.166.201] has quit [Remote closed the connection] 13:27:12 p_l [i=plasek@gateway/shell/rootnode.net/x-zbfanyizpcqugoex] has joined #lisp 13:28:01 It seems like asdf does not recompile a (:module) if one of the files changes that the module is specified to :depends-on 13:29:14 -!- Odin- [n=sbkhh@adsl-2-92.du.snerpa.is] has quit [Remote closed the connection] 13:29:58 Odin- [n=sbkhh@adsl-2-92.du.snerpa.is] has joined #lisp 13:32:14 -!- Axius [n=ade@92.85.28.40] has quit ["Leaving"] 13:34:21 sbcl website down? 13:35:30 jmckitrick [n=user@adsl-232-63-106.asm.bellsouth.net] has joined #lisp 13:36:43 looks like it to me 13:36:58 f5.txt says ok 13:37:17 this is true ;) 13:37:51 Okay, I don't quite understand the difference between let and let*. Anyone up to a brief explanation? 13:38:14 let* does assignments in serial, i.e. previous bindings are visible to later bindings. 13:38:50 hefner [n=hefner@ppp-58-9-118-134.revip2.asianet.co.th] has joined #lisp 13:38:57 (leet* ((x 10) (y 20) (d (sqrt (+ (* x x) (* y y))))) ...) 13:39:16 tic, I think you meant 1337* ? 13:39:18 (add spelling and parens matching) 13:39:19 fiveop [n=fiveop@g229138016.adsl.alicedsl.de] has joined #lisp 13:39:23 Adlai, hehe. 13:39:41 Hrmm, so if that was let, you could not use x in the d definition? 13:39:43 -!- ramus`_ [n=ramus@99.23.139.24] has quit [Read error: 110 (Connection timed out)] 13:39:46 bbommarito, correct. 13:39:55 parallell assignment. 13:40:07 But you could use x in the body of a let. 13:40:11 Yup. 13:40:20 you could use it but it would refer to an outer binding 13:40:32 -!- Stattrav [n=Stattrav@202.3.77.132] has quit [Remote closed the connection] 13:40:36 yikes! 13:40:38 (ironclad:digest-sequence 'ironclad:md5 "foo") != (md5:md5sum-sequence "foo") 13:41:07 am I misunderstanding things, or are identical strings required to hash to the same value? 13:41:23 Adlai pasted "simple let/let* contrast" at http://paste.lisp.org/display/92981 13:41:44 bbommarito, ^ 13:41:51 (let (( ) ...) ...) = ((lambda ( ...) ...) ...), (let* (( ) ...) ...) = ((lambda () (let* (...) ...)) ) is how I tend to think about it 13:42:08 fusss: I get: The value "foo" is not of type (VECTOR (UNSIGNED-BYTE 8)). 13:42:13 fusss: Is my ironclad too old? 13:42:23 *Xach* didn't think ironclad worked on strings directly 13:42:35 fusss: out of curioisity, do either of them give "acbd18db4cc2f85cedef654fccc4a4d8"? 13:42:38 Xach: your setup is not ut8-ized properly 13:42:40 soupdragon, funny you brought that up, I did an exercise for just that a while back -> http://mikael.jansson.be/log/translating-let-star-to-lambda 13:43:03 Okay, after playing with them in repl, I understand the difference now...and surprisingly properly typed them without parens matching... 13:43:12 tic: LET* is equivalent to LAMBDA + &AUX 13:43:17 fusss: My ironclad setup? 13:43:21 bbommarito, why doesn't your REPL have paren matching? 13:43:25 tic: but not to nested lets 13:43:27 ah that PAIP book is one I really liked 13:43:30 c|mell [n=cmell@203-144-180-65.static.asianet.co.th] has joined #lisp 13:43:43 I wanted to get AIMA but it's too expensive to just buy.. 13:43:43 tcr, why the + &AUX? Doesn't the lambda already bind that? 13:43:51 hefner: neither 13:43:51 Adlai: Paren matching to me (And this is probably the wrong idea) is when you type a (, it adds a ) automatically. 13:44:05 tic, &aux binds serially, like LET* 13:44:16 tic: &aux does sequential binding just like LET* does 13:44:26 Xach: your emacs setup;(set-language-environment "UTF-8") (setq slime-net-coding-system 'utf-8-unix) 13:44:28 defaults for lambda parameters are evaluated sequentially 13:44:31 Alright. Need to read up. Thanks. 13:44:44 tic: See http://common-lisp.net/project/parse-declarations/manual/html_node/Examples.html#Examples 13:44:49 fusss: I think you have not identified the issue correctly. 13:44:52 tcr, nice! 13:45:25 bbommarito, I see paren matching as just highlighting the matching paren. at least that's how vim does it. 13:45:47 blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has joined #lisp 13:46:11 dlowe [n=dlowe@ita4fw1.itasoftware.com] has joined #lisp 13:46:23 Xach: in my setup where both ironclad:digest-sequence and md5:md5sum-sequence take sequences as in put, their results for the same input is *different*; which runs counter to every "intuition" I had about hashing. 13:46:23 tic: That's probably the correct definition. I find sometimes that having the matching parens dropped in automatically is helpful. The emacs parenedit mode does that, but that is super strict...you cannot remove parens once they are in place. 13:46:59 Which is a pain if you forget a ) after an if condition, you can't just insert one. 13:47:22 they both worth compatible for strings of length 1; but anything else they're divergent. 13:47:36 has anyone comments on AIMA 3rd edition? 13:47:44 fusss: My ironclad:digest-sequence does not operate on strings. What ironclad are you using? 13:47:46 (which is finally out) 13:47:50 bbommarito, you can use "paren-agnostic" delete commands in paredit by prefixing with C-u 13:48:08 you can also insert lone delimiters using C-q 13:48:30 soupdragon: I don't think it has any Lisp content, does it? 13:48:37 oh 13:49:40 ironclad_0.26 13:49:54 and OpenSSL agrees with one of them, so I might have found a bug or a bad assumption 13:49:58 Adlai: I know about them, but forget about them half the time:) 13:50:32 -!- legumbre_ is now known as legumbre 13:50:44 fusss: what Lisp are you using? 13:51:13 Clozure Common Lisp Version 1.4-RC1-r13031 (WindowsX8632) 13:52:03 fusss: I wonder how it's interpreting the characters as octets in that case. 13:52:13 hmmm 13:52:24 charOS_ [n=chatzill@124.43.126.105] has joined #lisp 13:52:49 fusss, on Version 1.4-r13119 (LinuxX8664) I get a similar lack of agreement :\ 13:53:04 Does readtable content somehow leak into fasl files in sbcl? 13:53:22 rdd [n=user@c83-250-152-128.bredband.comhem.se] has joined #lisp 13:53:55 I really wonder what this bug is about 13:54:01 -!- PatrickMcLaren [n=Patrick@CPE-138-217-214-253.lns1.fli.bigpond.net.au] has quit [] 13:54:48 -!- DrunkTomato [n=DEDULO@ext-gw.wellcom.tomsk.ru] has quit [Read error: 60 (Operation timed out)] 13:57:58 (type-of "foo") ==> (SIMPLE-BASE-STRING 3) 13:58:09 ..hashing characters would be pretty silly, since characters don't exist 13:58:56 (ironclad:digest-sequence 'ironclad:md5 (map '(simple-array (unsigned-byte 8) 1) #'char-code "foo")) agrees with "echo -n foo |md5sum" here (on ironclad 0.25) 14:00:57 -!- charOS_ [n=chatzill@124.43.126.105] has quit [K-lined] 14:01:02 -!- charOS [n=chatzill@124.43.101.51] has quit [K-lined] 14:02:06 -!- Nshag [n=shag@lns-bzn-52-82-65-106-119.adsl.proxad.net] has quit [Read error: 110 (Connection timed out)] 14:02:13 How do I remove "b" from "abc" to give "ac" ? 14:02:25 +1 14:02:32 (remove #\b "abc") 14:02:39 jsoft_, check out http://l1sp.org/pcl/delete 14:02:42 or more succinctly, "ac" 14:03:05 oh, hmmmm. Xach, that didn't do what I expected :\ 14:03:21 (let ((vectorized (babel:string-to-octets 'foo"))) (values (md5sum-sequence vectorized) (digest-sequence vecorized)))) are equalp 14:03:59 jsoft_, http://l1sp.org/pcl/remove is the right link 14:04:42 minion, memo for Xach: http://l1sp.org/pcl/delete brings you to chapter 3. Wouldn't chapter 11 be a better fit? 14:04:42 Remembered. I'll tell Xach when he/she/it next speaks. 14:05:50 Adlai: i got the mapping from gigamonkey 14:05:51 Xach, memo from Adlai: http://l1sp.org/pcl/delete brings you to chapter 3. Wouldn't chapter 11 be a better fit? 14:06:05 Nshag [n=shag@lns-bzn-43-82-249-160-2.adsl.proxad.net] has joined #lisp 14:06:19 Thanks. 14:06:32 Adlai: i'm all for updating it, though 14:06:36 minion, memo for gigamonkey: http://l1sp.org/pcl/delete brings you to chapter 3. Wouldn't chapter 11 be a better fit? 14:06:36 Remembered. I'll tell gigamonkey when he/she/it next speaks. 14:06:41 hefner, Adlai, cheers. 14:07:01 jsoft_, are you familiar with the CLHS? 14:08:15 Now that I am really starting to understand Lisp, I love it more than ever. I don't know what I would ever use it for, but hey. 14:08:34 bbommarito: write a game! 14:09:09 hefner: Or I could play with it for web apps, I suppose. 14:09:18 bbommarito: write an IMAP server 14:09:31 or a lisp compiler. 14:09:42 Please dont assume Lisp is only useful for [games] just because these are the only things [hefner] happened to list. 14:10:12 bbommarito: FFI for QuantLib 14:10:16 I was thinking about writing a terminal based GTD app, just to mess around. Oh, I know it's very general purpose, and I know that Naughty Dog wrote PS2 games in Lisp. 14:10:23 or a computing grid for credit derivatives 14:10:35 bbommarito, http://www.wisdomandwonder.com/link/1018/please-dont-assume-lisp-is 14:10:50 naughty dog actually wrote a custom lisp-like language compiler 14:10:52 bbommarito: drewc wrote a parser for org-mode 14:11:04 Maybe I will write a child trade system in lisp (For when we start going to 1 child per family, you can trade your right to have a baby to someone else):) 14:11:14 (since getting an exisitng lisp compiler to target the emotion engine is kinda difficult) 14:11:17 Naughty Dog's compiler used Allegro CL, right? 14:11:21 Adlai: yes 14:11:25 writing a trading platform in Lisp is just cheating 14:11:30 Adlai: Though it was a custom system. 14:11:37 Adlai: but it was probably mostly portable 14:11:59 yeah, I doubt they'd need to use AllegroCache :P 14:12:08 I wonder if I could use Lisp for microprocessors...hrmmmm 14:12:13 bbommarito: old news 14:12:25 the lisp machines had a hardware design language 14:12:26 minion, tell bbommarito about lisp machines 14:12:28 bbommarito: have a look at lisp machines: Lisp Machines (commonly written 'LispM' and pronounced 'lispum' or 'lispem') are the nirvana (with all that implies ^_~) of Lisp users. http://www.cliki.net/lisp%20machines 14:12:38 rahul: what do you think of the Penn-Lehman trading platform? 14:12:51 fusss: which is this? 14:12:59 rahul: Currently I use Forth for that, but maybe a change might be fun. 14:12:59 Plat 14:13:01 *rahul* wonders if it's the one he wrote 14:13:05 http://www.cis.upenn.edu/~mkearns/projects/plat.html 14:13:25 dude, pass the sources ASAP! 14:13:32 you wrote a trading platform? :-P 14:13:48 heh 14:13:54 a platform, not a trader 14:14:06 traders are peanuts 14:14:08 rahul: You haven't worked for Goldman Sachs have you?:P 14:14:09 I have specific ideas for automated trading and none of them involve leaving an AI alone 14:14:29 bbommarito: Marc Feeley's group at umontreal seemed to be doing interesting scheme-for-microcontroller stuff 14:14:35 bbommarito: no, I never took that job, but I am working now for the partner at goldman who was going to hire me there 14:14:56 rahul: finance is that shitnitz 14:15:04 I want to work for GS just because the paychecks are insane. I would feel I had sold my soul, but money makes things better. 14:15:21 finance, almost as awesome as holding tankers for ransom 14:15:26 bbommarito: no you wouldn't feel you had sold your soul, you would have sold your soul 14:15:41 heh 14:15:48 the more I hear from traders the more I think lighting them all on fire before they manage to create a market in oxygen is the only safe policy 14:15:52 rahul: Well, I will sell my soul for the right money. It would have be in the range of 500K to 1mil, but hey. 14:15:54 bbommarito: work-life balance at goldman means more work, less life 14:15:57 Marc Battyani's http://www.hpcplatform.com/ is all about compiling to hardware with Lisp. 14:16:15 Adamant: markets are not created by traders 14:16:30 Adamant: that is, they aren't until the government prints money to give away to banks 14:16:36 rahul: carbon would disagree with you 14:16:41 -!- kiuma [n=kiuma@85-18-55-37.ip.fastwebnet.it] has quit ["Bye bye ppl"] 14:16:55 Adamant: no, that market is created by the prospect of government regulation 14:16:58 traders are just the oil that greases the market and keeps it running .. efficiently 14:17:08 rahul: and traders bribing governments 14:17:11 fusss: except for when they amplify swings 14:17:12 so.... 14:17:18 :P 14:17:21 Adamant: so elect better governments 14:17:35 demmeln [n=Adium@dslb-094-216-035-252.pools.arcor-ip.net] has joined #lisp 14:17:40 rahul: Which is exactly what GS does in a way. They amplify the swings by using high velocity trading:) 14:17:49 fusss: trading has both positive and negative feedback characteristics. there are 4 classes of traders, and each has a different effect 14:17:52 Anyone read the Rolling Stone article on GS? Funny, no matter who was in office, they do GS bidding.... 14:17:57 rahul: you really don't get how this works, do you 14:17:59 :P 14:18:00 bbommarito: GS does a tiny bit of it 14:18:00 -!- demmeln [n=Adium@dslb-094-216-035-252.pools.arcor-ip.net] has left #lisp 14:18:02 rahul: the swings are short lived, and their major victims are usually other, short term,traders 14:18:10 bbommarito: hedge funds actually do most of it 14:18:14 fusss: yes, correct 14:18:26 rahul: I would argue GS does more, since they are basically embedded in the US government. 14:18:34 fusss: but usually those short term traders are the general public 14:18:47 fusss: because they're most affected by greed and fear 14:18:55 bbommarito: hardly. 14:19:20 bbommarito: you're confusing being the largest creditor of a near-bankrupt company with controlling the government 14:19:20 they have a line to the Fed and their man in the Treasury Department 14:19:22 I will still sell my soul to them for the right paycheck though. I have done work for the DoD, so I can swallow my pride and help hurt the economy a bit. 14:19:27 bbommarito: so does EVERY bank 14:19:35 erm Adamant ^ 14:19:38 rahul: the general public doesn't have a chance to jaywalk in the stock market and wait to be killed; he is already being chopped up in forex :-P 14:19:47 Adamant: you need to learn what the Fed is. 14:20:02 fusss: um, not really 14:20:09 oh, wait, I see those ads 14:20:20 ;-) 14:20:21 are people actually dumb enough to do that forex trading? 14:20:26 yep 14:20:31 *rahul* facepalm 14:20:37 rahul: I have messed with it a bit. 14:20:50 rahul: I know what the Fed is, and I know Bernanke has some questionable ties to GS. yes, Bernanke is not the beginning and end of the Fed, but... 14:20:53 I'm going to go to work before I become more depressed 14:20:58 to the tune of 2 trillions a day (99% of is institutional, but a lot of dumb joes get into it) 14:21:09 Adamant: learn who owns the Fed and then come back 14:21:19 rahul: nobody owns the Fed 14:21:28 Adamant: wrong. it has shareholders. 14:21:30 Who does own the Fed? I don't know if anyone knows that answer since everything is top secret. 14:21:35 sigh 14:21:38 no, actually, everyone please drop this topic 14:21:40 bbommarito: it's published 14:21:58 rahul: banks putting money into the Fed is not owning the Fed 14:22:12 Adamant: read before spouting 14:22:24 who knows all about ITA / Martin Cracauer's dirty tricks for nice access to C structs? 14:22:32 I would be curious to see how that is done 14:22:34 rahul: quit being cranky on the Internet 14:23:04 Adamant: I'm not. you're embarrassing yourself, please stop and go learn something first. I'm done with this foolish discussion. 14:23:35 -!- kwinz3 [n=kwinz@d86-33-115-105.cust.tele2.at] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- kleppari [n=spa@bitbucket.is] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- kuwabara1 [n=kuwabara@84.14.121.138] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- cupe [n=cupe@mein.eigensex.org] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- rbancroft [n=rumble@S01060014bf54b5eb.cg.shawcable.net] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- manituuuu [n=as@orwell.fiit.stuba.sk] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- thijso [n=thijs@83.98.233.115] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- danderson [n=dave@atlas.natulte.net] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- Bucciarati [n=buccia@www.inscatolati.net] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- blast_hardcheese [n=blast_ha@dsl092-043-124.lax1.dsl.speakeasy.net] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- Ober [i=ober@dns.mauthesis.com] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- mtd [n=martin@ops-13.xades.com] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- housel [n=nuser@mccarthy.opendylan.org] has quit [verne.freenode.net irc.freenode.net] 14:23:38 kleppari_ [n=spa@bitbucket.is] has joined #lisp 14:23:39 Ober [i=ober@dns.mauthesis.com] has joined #lisp 14:23:43 manituuuu [n=as@orwell.fiit.stuba.sk] has joined #lisp 14:23:44 mtd [n=martin@82.68.80.108] has joined #lisp 14:23:45 cupe [n=cupe@213.133.102.28] has joined #lisp 14:23:45 blast_hardcheese [n=blast_ha@66.92.43.124] has joined #lisp 14:23:45 rbancroft [n=rumble@S01060014bf54b5eb.cg.shawcable.net] has joined #lisp 14:23:45 Bucciarati [n=buccia@212.45.155.126] has joined #lisp 14:23:45 danderson [n=dave@91.121.172.158] has joined #lisp 14:23:45 thijso [n=thijs@83.98.233.115] has joined #lisp 14:23:53 housel [n=nnuser@mccarthy.opendylan.org] has joined #lisp 14:24:03 kwinz3 [n=kwinz@d86-33-115-105.cust.tele2.at] has joined #lisp 14:24:11 kuwabara1 [n=kuwabara@cerbere.qosmos.com] has joined #lisp 14:24:12 -!- mtd is now known as Guest63937 14:24:24 rahul: telling people they're wrong but not why then declaring e-victory, waving your flag and going home is pretty pointless in the first place 14:25:11 xinming [n=hyy@125.109.247.139] has joined #lisp 14:26:07 Adamant: I hate to make a big fuss out of it, but stop being so adamant about things 14:26:10 Krystof: do you know cracaur's secrets? 14:26:17 (are they on sbcl-dev or something?) 14:26:30 Adamant: I'm declaring failure, not victory 14:26:58 I like donuts. 14:27:04 ruediger [n=the-rued@p508B328F.dip.t-dialin.net] has joined #lisp 14:27:19 where is Younder when you need him 14:27:40 now that is a man of real opinions 14:27:53 Adamant: grab a big bag of donuts and sit back and watch this: http://video.google.ro/videoplay?docid=-515319560256183936&ei=xfpBS8eeE4O62wKHnaHNAw&q=the+money+changers&client=firefox-a# 14:28:18 lukego: I think it's just that it's all in mmap()ed data, outside the lisp heap, and they have a whole bunch of friendly macros 14:28:29 foom would be able to fill in some details 14:29:07 friendly macros layered over system-area-pointers? 14:29:16 Is there a way to trace so to see all the uses of a variable? 14:29:42 all accesses to a special variable 14:31:55 tcr: make it a symbol macro and trace that 14:32:14 of course, you need to recompile everything that uses it, which may not be possible... 14:32:32 you can trace macro expansions? 14:33:05 nope not possible, it's *readtable* 14:33:12 but still, I'd expect that even if an implementation provided variable tracing, you'd need debug turned up when compiling that code, which means you probably need to recompile it if it's not your code anyawy 14:33:22 Adamant: you can trace what it expands into 14:33:45 Adlai: yes, by binding *macroexpand-hook* 14:34:33 Krystof, ah right. I keep forgetting about that variable. 14:35:06 yeah, your question wasn't directly related to what I was saying, so one or the other of our answers is what you're actually asking about... 14:35:37 tcr: hm. I would think that slime's heap-grovelling technique should work on special variable / symbol references. 14:35:46 rahul, was that to me? 14:35:56 Axius [n=ade@92.85.19.47] has joined #lisp 14:35:56 grr yes 14:36:09 one of you change your nicks 14:36:10 leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has joined #lisp 14:36:12 rdd` [n=rdd@c83-250-152-128.bredband.comhem.se] has joined #lisp 14:36:20 *Adlai* is adamant about keeping his nick 14:36:26 lukego: You can build sbcl with xref-collecting enabled nowadays. 14:36:30 heh 14:36:39 jmckitri` [n=user@adsl-176-182-125.asm.bellsouth.net] has joined #lisp 14:36:42 anyway, hi ho hi ho it's off to work I go 14:36:50 o/ 14:37:10 lukego: but I'm more in need for a *break-on-access* 14:37:49 tcr: I used to have (setq slime-echo-arglist-function 'slime-compute-autodoc) but that's broken with slime CVS. 14:37:50 -!- jmckitri` [n=user@adsl-176-182-125.asm.bellsouth.net] has quit [Remote closed the connection] 14:38:02 kiuma [n=kiuma@85-18-55-37.ip.fastwebnet.it] has joined #lisp 14:38:02 that was renamed to slime-autodoc 14:38:07 there's no need for setting it yourself 14:38:20 just use the slime-autodoc contrib 14:38:30 even by chaning slime-compute-autodoc to slime-autodoc. 14:38:46 -!- xinming [n=hyy@125.109.247.139] has quit ["leaving"] 14:39:07 you perhaps have to restart emacs 14:39:12 why do you do this anyway? 14:39:21 -!- george_ [n=george@189.13.102.17] has quit [Read error: 110 (Connection timed out)] 14:39:32 tcr: I load the fancy module and autodoc is loaded by that. I want the args to be only shown when writing. 14:40:02 -!- jtza8_ [n=jtza8@iburst-41-213-12-127.iburst.co.za] has quit [Read error: 110 (Connection timed out)] 14:40:34 When I see a reference in source to "MOP p.206" which document does that refer to? 14:40:45 The Art of the MetaObject Protocol 14:41:12 Ah. so AMOP and MOP are indistingushable references? 14:41:49 easyE, AMOP is the currently accepted MOP standard. 14:41:57 AMOP is a book. 14:41:58 Geralt [n=Geralt@p5B32F39E.dip.t-dialin.net] has joined #lisp 14:42:13 leo2007: Did you try restarting emacs? 14:42:41 Yeah, I have the book in front of me. I just wanted to make sure I wasn't missing something else. Thanks for the clarification. 14:42:44 well, I meant "The MOP according to AMOP" 14:42:54 tcr: yes, I did. It worked you starting slime for the first time, if I quit and started it again, no args will be shown. 14:42:59 CrazyEddy [n=CrazyEdd@wrongplanet/CrazyEddy] has joined #lisp 14:42:59 (because the page reference doesn't quite make sense) 14:43:00 that's with slime-autodoc 14:43:28 I mean 'quitting slime' 14:43:35 -!- silenius [n=jl@yian-ho03.nir.cronon.net] has quit [] 14:43:52 leo2007: do you have (setq slime-use-autodoc-mode nil) in your .emacs? 14:43:59 yes 14:44:03 binghe [n=chatzill@60.12.227.4] has joined #lisp 14:44:08 cddr [n=user@5ac75ee9.bb.sky.com] has joined #lisp 14:44:22 hugod [n=hugod@bas1-montreal50-1279439888.dsl.bell.ca] has joined #lisp 14:44:23 try setting echo-arglist-function to (lambda () (eldoc-message (slime-autodoc))) 14:44:23 AMOP doesn't cover DEFINE-METHOD-COMBINATION. Is the section in CLtL2 the only place that describes how that behaves? 14:44:36 clhs define-method-combination 14:44:36 http://www.lispworks.com/reference/HyperSpec/Body/m_defi_4.htm 14:44:56 It's part of standard CLOS itself. 14:45:08 Adlai: but that's more-or-less straight from the CLtL2 chapter as far as I can tell. 14:45:17 hmm, is there an easy FORMAT directive to print the arg N times? 14:45:48 method combinations are not desperately well MOPped, as it were 14:45:49 *mathrick* searches in pretty printer 14:46:03 they overlap drastically with compute-effective-method without being cleanly integrated 14:46:29 easyE, large chunks of CLtL2 are still applicable 14:46:32 I'm actually just trying to understand the semantics of long D-M-C. 14:46:46 -!- bbommarito [n=bbommari@c-68-61-113-178.hsd1.mi.comcast.net] has quit [Read error: 110 (Connection timed out)] 14:46:49 I found the examples to be helpful. Check out the one for the standard method combination. 14:46:59 There's http://www.cawtech.demon.co.uk/clos/define-method-combination.html 14:47:10 Erm.. how do I check if something is nil? 14:47:36 Im checking an optional argument. 14:47:47 jsoft_: (null x) 14:47:55 Ahh thanks. 14:48:12 -!- Axius [n=ade@92.85.19.47] has quit ["Leaving"] 14:48:21 -!- brandelune [n=suzume@pl571.nas982.takamatsu.nttpc.ne.jp] has quit [] 14:48:22 jsoft_, how are you learning lisp? this is pretty basic stuff, and the good intro books cover it well. 14:48:25 But that kind of leaves off on the more estoteric parts (which I need to implement it). I probably need more time just slogging through the code and examples myself. 14:49:03 easyE, what part is confusing you? 14:49:22 The part about predicates. 14:49:44 you can sort methods based on predicates. it's similar to SATISFIES type specifiers. 14:49:54 these match only the list of qualifiers 14:49:58 tcr: That works. It seems slime core already shows function and args except it has no font locking as in slime-autodoc. 14:50:55 Adlai: thanks. I need to think abit more on my side to come up with a sharper question. 14:51:30 -!- rdd [n=user@c83-250-152-128.bredband.comhem.se] has quit [Read error: 110 (Connection timed out)] 14:51:35 -!- jmckitrick [n=user@adsl-232-63-106.asm.bellsouth.net] has quit [Read error: 110 (Connection timed out)] 14:51:51 -!- rdd` is now known as rdd 14:51:56 leo2007: slime-autodoc does more than font-locking; it also highlights the current parameter, and it's context-sensitive 14:54:18 -!- c|mell [n=cmell@203-144-180-65.static.asianet.co.th] has quit ["Leaving"] 14:54:27 tcr: I see. eldoc-message is already used inside slime-autodoc function, why is it necessary to wrap it inside the (lambda ...) and use it again? 14:54:49 -!- Joreji [n=thomas@40-233.eduroam.RWTH-Aachen.DE] has quit [Read error: 60 (Operation timed out)] 14:55:41 that's a hack, slime-autodoc is actually supposed to bet set to eldoc-documentation-function which takes a string 14:55:42 c|mell [n=cmell@203-144-180-65.static.asianet.co.th] has joined #lisp 14:56:39 and it returns a string if we have a cache hit 15:04:30 -!- alpheus [n=user@c-98-215-226-98.hsd1.il.comcast.net] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 15:05:36 demmeln [n=Adium@dslb-094-216-035-252.pools.arcor-ip.net] has joined #lisp 15:05:38 bah I found the damn bug 15:05:44 -!- demmeln [n=Adium@dslb-094-216-035-252.pools.arcor-ip.net] has left #lisp 15:06:25 tcr: ??? 15:06:30 in slime-autodoc? 15:06:48 no unrelated blabbering 15:07:33 tcr: isn't finding bugs supposed to be a good thing? 15:07:46 ok. Thanks for your help. Have you done any slime talk in 2009? I'd like to see the slides if you do ;) 15:08:12 leo2007: Nope, there's some new stuff I wanted to write a blog posting about but haven't had time for. 15:08:36 *Xach* loves blog posts 15:08:42 leo2007: Check the slime-asdf contrib; in particular slime-open-system, slime-browse-system, slime-rgrep-system, slime-query-replace-system 15:09:24 splittist: It took considerably time, and the bug is some missing argument to a function which defaults to *readtable* in sbcl's reader :-/ 15:09:44 special variables be damned :-) 15:10:02 heh 15:11:04 tcr: thanks for that. 15:11:43 leo2007: stassats commited C-y in sldb yesterday which is also quite cool but not yet as feature-ful as I'd like to become 15:12:15 it inserts a call to the function the backtrace frame at points to the repl 15:13:15 nice! 15:13:46 I should have it as I just updated slime last night. 15:18:29 ikki [n=ikki@189.139.232.40] has joined #lisp 15:18:34 ignas [n=ignas@78-60-73-85.static.zebra.lt] has joined #lisp 15:21:20 sunwukong [n=vukung@business-80-99-161-225.business.broadband.hu] has joined #lisp 15:21:53 In slime mode, what does it mean when something is underlined in lisp code 15:21:54 ? 15:22:01 -!- fusss [n=chatzill@60-241-1-206.static.tpgi.com.au] has quit [Read error: 113 (No route to host)] 15:22:23 jsoft_: the underlining indicates compiler notes from your last compilation 15:22:38 you can use M-n M-p to navigate through compiler notes in the lisp buffer 15:22:50 -!- pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has quit [Remote closed the connection] 15:22:56 jsoft [n=user@unaffiliated/jsoft] has joined #lisp 15:23:01 authentic [n=authenti@85-127-183-140.dynamic.xdsl-line.inode.at] has joined #lisp 15:23:04 and also press C-x ` (M-x next-error) to jump to the *SLIME Compilation* buffer 15:23:14 doh 15:23:16 accidently closed my terminal. 15:23:21 C-c M-c removes compiler notes 15:23:35 Sorry can you say that again? 15:23:45 I done an emacs chord which closed my terminal :( 15:23:46 why it is necessary that C-c C-c in slime has to write a temp file? This seems problematic when connecting to a remote swank server. 15:24:08 jsoft: I'll paste in query 15:24:10 pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has joined #lisp 15:24:44 leo2007: because SBCL does not offer a way to compile from a stream with file-compilation semantics 15:25:01 leo2007: Why does it seem problematic? 15:25:48 hm, would that be a possible CLtL3 extension? COMPILE-STREAM ? 15:25:54 jan247 [n=jan247@unaffiliated/jan247] has joined #lisp 15:26:05 ecl calls it compile-from-stream 15:26:34 the way to make it happen is to implement it, you know ;-) 15:26:46 -!- SandGorgon [n=OmNomNom@122.160.41.129] has quit [Connection timed out] 15:26:58 right. Would ECL's name be clearer? 15:27:13 -!- Ralith [n=ralith@69.90.48.97] has quit [Read error: 113 (No route to host)] 15:27:40 seangrove [n=user@c-67-188-112-83.hsd1.ca.comcast.net] has joined #lisp 15:28:05 Dunno 15:28:31 the hard part is its return value, not its name :-) 15:28:31 -!- madsy [n=madsy@195.204.229.160] has quit ["reise hjem"] 15:28:54 it must return some kind of fasl stream which LOAD must be adapted to be able to cope with 15:29:21 I think it should return a stream that you could write into a file to get a valid fasl file. 15:29:46 and then there could be a corresponding load-[from]-stream that could load directly. 15:29:54 load does already take a stream 15:30:18 ahh, it takes a "filespec". ok. 15:30:50 anyone know how to compute the width of a string in zpb-ttf? 15:32:27 rrice [n=rrice@adsl-76-244-145-54.dsl.akrnoh.sbcglobal.net] has joined #lisp 15:32:59 Is there a URI-referencable tarball for Alexandria? 15:33:22 http://common-lisp.net/~loliveira/tarballs/inofficial/alexandria-2008-07-29.tar.gz 15:33:29 Thanks. 15:33:50 cddr: zpb-ttf:string-bounding-box is one way 15:34:43 sykopomp|work [n=user@unaffiliated/sykopomp] has joined #lisp 15:34:48 cddr: that computes the dimensions in the font's reference size. you'll have to scale it to get the dimensions in some other size. 15:35:44 -!- jsoft [n=user@unaffiliated/jsoft] has quit [Read error: 104 (Connection reset by peer)] 15:35:44 -!- jsoft_ [n=user@unaffiliated/jsoft] has quit [Read error: 104 (Connection reset by peer)] 15:35:57 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #lisp 15:36:07 so what goes into determining the other size? 15:36:30 happy new year! 15:36:30 cddr: the font's units/em 15:36:35 where is the dwim.hu demo site? 15:36:58 -!- ^authentic [n=authenti@unaffiliated/authentic] has quit [Connection timed out] 15:37:34 cddr: the ratio of the desirted unit size to the font's units/em is the scale factor for the dimensions 15:37:38 desired, rather 15:37:51 dwim.hu seems to be dead :( 15:37:58 tcr: I can't get tramp to work so I can't explain what exactly is the problem. That was from my past experience when I usually got something like 'file not found'. 15:38:19 pjb [n=t@158.Red-79-149-157.staticIP.rima-tde.net] has joined #lisp 15:38:54 ok cool thanks Xach. 15:39:08 cddr: No problem, I'm always glad to see people use my libraries :) 15:39:13 cddr: What are you using it for? 15:40:03 Axius [n=ade@92.84.10.169] has joined #lisp 15:40:17 jtza8 [n=jtza8@iburst-41-213-14-140.iburst.co.za] has joined #lisp 15:40:36 messing around with cells, clx and vecto 15:41:29 ah, vecto has its own string bounding box function 15:41:39 and it does it at the font pixel size you're using 15:41:59 yes but I've got to give :height/:width to with-canvas right? 15:42:35 if I make an image for just a single piece of text, wouldn't I need to calculate it before calling with-canvas? 15:44:54 -!- spradnyesh [n=pradyus@nat/yahoo/x-fdlltznftydvmlsc] has left #lisp 15:45:08 cddr: yes, you do. actually, vecto:string-bounding-box takes a size parameter 15:45:56 i have a (unfortunately private) library that makes all that a lot easier...it takes a little bit of fiddling to get the canvas offsets right 15:46:46 xinming [n=hyy@125.109.247.139] has joined #lisp 15:47:02 svaksha [n=svaksha@perrier.eu.org] has joined #lisp 15:47:28 rread [n=rread@c-98-234-219-222.hsd1.ca.comcast.net] has joined #lisp 15:48:15 I've been going back to my high school Maths books to re-learn matrix transformations. Man I've forgotten a lot since then :-) 15:48:34 -!- rread [n=rread@c-98-234-219-222.hsd1.ca.comcast.net] has quit [Client Quit] 15:49:10 alec [n=aberryma@ita4fw1.itasoftware.com] has joined #lisp 15:49:21 -!- joubert [n=joubert@user-0cev80t.cable.mindspring.com] has quit [] 15:49:35 leo2007: tramp should be involved in that case 15:49:46 joubert [n=joubert@user-0cev80t.cable.mindspring.com] has joined #lisp 15:52:35 Zephyrus__ [n=emanuele@unaffiliated/zephyrus] has joined #lisp 15:52:40 cddr: vecto/transform-matrix.lisp has a bit of that too 15:53:03 cddr: and i've found the PDF Reference on transform matrixes is good for Vecto use 15:53:12 gigamonkey [n=user@adsl-99-64-118-11.dsl.pltn13.sbcglobal.net] has joined #lisp 15:53:17 Xach: herep 15:53:18 gigamonkey, memo from Adlai: http://l1sp.org/pcl/delete brings you to chapter 3. Wouldn't chapter 11 be a better fit? 15:53:41 hi gigamonkey 15:53:50 sorry, i can't think of any good titles 15:54:03 gigamonkey: onto the next one already huh? 15:54:19 lukego: yup. 15:54:34 Xach: Is there somewhere I can download the l1sp.org/pcl mapping file. 15:54:41 I think I created that a couple computers ago. 15:54:41 how happy are you with C@W, scale 1-10? 15:54:43 gigamonkey: sure, just a moment 15:55:07 http://xach.com/tmp/pcl.txt 15:55:08 lukego: I'd say 8 or 9 for all the parts I was responsible for. 15:55:27 I'm not crazy about the typesetting that Apress chose to use. 15:55:41 gigamonkey: I'm sure it's early days but you should talk to Scott Wallace. he's one of the authors of Squeak, one of the main "kids programming in Smalltalk guys", an *extremely* nice guy, and lives in Palo Alto 15:55:44 And I wish between me and the copyeditor we could have caught more of the typos. 15:56:11 (I think transcribed interviews probably start with a much greater density of typos than normal writing and we didn't take that into account.) 15:56:39 lukego: you know him? As in could provide an intro? 15:56:59 sure. now or later? 15:57:02 Later. 15:57:07 I'm just beginning to get organized. 15:57:13 yeah figures 15:57:33 Where "getting organized" means, "dorking around writing the custom software I 'need' to write this book." ;-) 15:58:06 george_ [n=george@20158177205.user.veloxzone.com.br] has joined #lisp 15:58:13 gigamonkey: Is the book ((a history of programming) for kids), or (a history of (programming for kids))? 15:58:26 Xach: you can, if you wish, feel free to fix that pcl mapping file if people complain about it. 15:58:34 sellout: the latter. 15:58:58 Cool. 15:59:34 I suspect this is a good time for a book like this because a lot of folks around my age who are now parents were in the generation who were exposed to Logo and BASIC when they were kids. 15:59:53 yay 16:00:06 I bet a bunch of us are wondering, "what ever happened to that stuff", especially since computers are obviously so much more ubiquitous now. 16:00:20 you'd better include some good retro software on a disk for our little ones to play with 16:00:35 gigamonkey: I don't even have kids yet, but I've already started looking into it. 16:00:44 gigamonkey: are you planning to be more story-telling historical or hands-on here's-how-to-use-scratch? 16:01:07 lukego: more story-telling and idea exploring. 16:02:03 I'd want readers to come away with an understanding of how to evaluate different programming environments themselves rather than spending too much time telling them about any particular ones. 16:02:40 -!- mvilleneuve [n=mvillene@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has quit ["Lost terminal"] 16:02:45 I mostly wonder how hacker-types actually are learning to program nowadays. suspect PHP has displaced BASIC but don't know :) 16:02:50 -!- reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 16:03:05 don't make the mistake of expecting too much from your readers. surely, after paying good money for a book, most people expect to be told what to believe, so they don't have to think about it. 16:03:34 froydnj [n=froydnj@gateway.codesourcery.com] has joined #lisp 16:03:58 right, I'll tell them what to believe about how kids should be exposed to computers. 16:04:00 -!- Zephyrus [n=emanuele@unaffiliated/zephyrus] has quit [Read error: 110 (Connection timed out)] 16:04:19 -!- billstclair [n=billstcl@unaffiliated/billstclair] has quit [Read error: 60 (Operation timed out)] 16:04:23 Then the can figure out which particular bits at any given time best realize the ideal I've forced into their brains. ;-) 16:04:31 What's "kids" anyway? 16:04:41 small versions of adults 16:04:55 I mean which age 16:05:22 I'd guess the modding scene may be interesting to gaming adolescents 16:05:54 bytbox [n=scott@ogodei.mbhs.edu] has joined #lisp 16:05:59 -!- bytbox [n=scott@ogodei.mbhs.edu] has left #lisp 16:06:12 gigamonkey, but is there a parental supervision program? 16:06:21 to make sure that kids don't see anything subversive 16:06:37 lemoinem [n=swoog@66.51.254.29] has joined #lisp 16:06:52 tcr: whatever the earliest age people have tried to expose kids to computers. 16:07:04 -!- binghe [n=chatzill@60.12.227.4] has quit ["ChatZilla 0.9.86 [SeaMonkey 2.0.1/20091206081659]"] 16:07:11 -!- sunwukong [n=vukung@business-80-99-161-225.business.broadband.hu] has quit ["bye"] 16:07:13 Early elementary school for Logo. 16:07:23 Okay, I've gotta walk the dog. Back in a bit. 16:07:32 Isn't it more about parents wanting to program the brain of their offspring? :-) 16:07:36 gigamonkey, if your book is for parents, please include a chapter on censorship stupidity 16:07:50 or at least a footnote 16:08:44 Apple II / C64 had kids programming in BASIC around 8 years old 16:09:00 How to program kids *brush off dust* How to program FOR kids *brush off more dust* How to program FORTY kids 16:09:08 maybe javascript is where people start now? 16:09:31 sellout: as long as it's not FORTRAN kids 16:09:40 Fare: Zing! 16:10:09 lukego, javascript is probably the right *platform* to target. Probably not the right *language* though. 16:10:30 Fare: javascript isn't that bad. 16:10:33 Fare: I'm not proposing anything, just wondering where people are in fact starting these days 16:10:46 at least the PLT guys have a story on how to teach 10 years old (would probably work for smart 8 years old) 16:11:10 pjb pasted "Ruby grammar in sexps." at http://paste.lisp.org/display/92988 16:11:15 billstclair [n=billstcl@unaffiliated/billstclair] has joined #lisp 16:11:16 PLT guys are trying to program children :) 16:11:24 sykopomp, javascript is nothing bad. Probably not what I'd use to teach a kid, though. 16:11:27 -!- george_ [n=george@20158177205.user.veloxzone.com.br] has quit [Read error: 60 (Operation timed out)] 16:11:37 lukego, and successful at it! 16:11:43 -!- leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has quit ["break"] 16:12:13 Fare: really? I thought the takeaway of the workshop talk was "we must act fast or kids will all be using SCRATCH to have FUN!" :) 16:12:22 huyslogic [n=Huy@192.206.112.168] has joined #lisp 16:12:45 "fun bad, algerbra good" :) 16:13:21 ramus` [n=ramus@adsl-99-23-153-250.dsl.chcgil.sbcglobal.net] has joined #lisp 16:14:47 -!- Axius [n=ade@92.84.10.169] has quit ["Leaving"] 16:14:55 -!- soupdragon [n=somebody@unaffiliated/fax] has quit [Nick collision from services.] 16:15:10 and what's ugly? 16:15:12 soupdragon [n=somebody@unaffiliated/fax] has joined #lisp 16:15:22 look at the faces on www.bootstrapworld.org - is that fun or not? 16:15:29 could anyone answer me a gambit-c question? 16:15:37 huyslogic: try #scheme 16:15:54 Fare: extremely un-fun imho :) 16:16:16 :( people aren't talking in there, was hoping there was some crossover knowledge 16:16:26 reminds me of Caml hackers with the slogan "Put the fun back in functional programming" 16:16:46 lambda in caml is "fun", as in fun x -> x+1 16:17:36 Zephyrus [n=emanuele@unaffiliated/zephyrus] has joined #lisp 16:17:51 Fare: How about Rebol? 16:18:28 pbusser: what about it? It has lots of cool stuff. But for KIDS? 16:18:37 (and isn't it proprietary, anyway?) 16:19:07 bytbox [n=scott@ogodei.mbhs.edu] has joined #lisp 16:20:23 Fare: I guess the thing about bootstrap is that it's so unlike the "Apple II" experience of the old days. back then it was all exploration and experimentation and no agendas / experts / curriculum. 16:20:35 Fare: I think Scheme would be something for kids. Regarding Rebol, the implementation is proprietary, but there is a freeware implementation too (http://freshmeat.net/projects/rebol-orca). 16:20:43 Fare: How does Rebol compare to Lisp? 16:20:55 Fare: in that sense Scratch and Etoys are more like what I relate to 16:21:17 I would start with Logo for my kids 16:21:28 kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 16:21:33 mishoo: just curious - why logo rather than Scratch? 16:21:55 *mishoo* googles Scratch... 16:22:07 -!- FufieToo [n=poff@Gatekeeper.vizrt.com] has quit ["Leaving"] 16:22:12 regarding programming in schools... late kindergarten? 16:23:09 btw, "teaching children programming" would be a good fit for a Genera-lookalike, except made more for children and exploration/experimentation than "normal" development 16:23:25 lukego: While this might not be the target of gigamonkey's book, there is a need for a curriculum. The exploration and experimentation gets us programmers, but it doesn't teach everyone to program. And I think programming is going to be an important general skill going forward. 16:23:53 bfein [n=bfein@ita4fw1.itasoftware.com] has joined #lisp 16:24:03 Since we don't actually know the one good way to program, it seems a bit random to fix on a curriculum this generation 16:24:38 Such a curriculum should include topics like "how to ask questions?", "how to RTFM" and "how to automate your everyday tools (Windows/OSX/Unix)" 16:25:25 splittist: Hopefully the curriculum wouldn't focus on one way to program. 16:26:21 btw isn't it amazing how much our views of how e.g. kids should be educated are shaped by our own experiences :) 16:26:48 LiamH [n=none@pdp8.nrl.navy.mil] has joined #lisp 16:27:05 reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #lisp 16:27:14 -!- reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 16:27:34 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit ["Leaving."] 16:27:35 reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #lisp 16:27:42 sellout: I'd like thousands of crazy kids with no idea of what can't be done coming up with the next TeX/Emacs/Lisp/Smalltalk [wow - those things are old...]. Perhaps this is the Gigakids approach... 16:28:02 lukego, ideally, there would be something with both a curriculum AND exploration. 16:28:09 lukego: v true 16:28:15 konr [n=user@189.98.62.235] has joined #lisp 16:28:48 *Fare* was an Apple ][ kid, too. 16:29:02 splittist: Right, I support that. The curriculum is for the people who aren't going to be programmers/language designers/etc.  basic competence (and maybe some of them will jump over after having fun with it) 16:29:38 -!- pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has quit [Remote closed the connection] 16:30:12 -!- Zephyrus__ [n=emanuele@unaffiliated/zephyrus] has quit [Read error: 113 (No route to host)] 16:31:25 ^authentic [n=authenti@85-127-39-228.dynamic.xdsl-line.inode.at] has joined #lisp 16:31:50 Yuuhi` [n=user@p5483E7F2.dip.t-dialin.net] has joined #lisp 16:32:09 sellout: this strikes me as the wrong answer. Do we teach how to sms/twitter/IM at school? And yet everyone does it. If controlling devices/services with a rich interface is important, then make that interface easy to use, don't make people learn some suboptimal interface. 16:32:13 pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has joined #lisp 16:32:33 (that came out as more negative than I intended it to be.) 16:32:52 Even if it has a crappy interface, people will use it if they have a reason to do so. 16:32:55 -!- borism [n=boris@213-35-234-124-dsl.end.estpak.ee] has quit [Read error: 60 (Operation timed out)] 16:32:57 -!- soupdragon [n=somebody@unaffiliated/fax] has quit [Nick collision from services.] 16:33:01 Which is a point often overlooked, imho. 16:33:12 soupdragon [n=somebody@unaffiliated/fax] has joined #lisp 16:33:34 Zhivago: agreed. See e.g. SMS/Twitter/IM (: 16:34:00 while we're being negative :) the bootstrap.org guys make me think of "A Mathematician's Lament". they dont' treat the computer as a creative instrument, just a vehicle for sticking algebra into kids' brains. 16:34:13 -!- Yuuhi [i=benni@p5483CB67.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 16:34:16 borism [n=boris@213-35-234-124-dsl.end.estpak.ee] has joined #lisp 16:34:32 postamar_ [n=postamar@c-nag-rtr.univ-avignon.fr] has joined #lisp 16:34:53 btw this is a long shot but has anyone read _a mathematician's lament_ and not been in vigorous agreement? 16:35:59 -!- kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 16:36:06 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 16:36:15 me 16:37:24 Most kids love to play video games. 16:37:57 Edward__ [n=Ed@AAubervilliers-154-1-48-112.w90-3.abo.wanadoo.fr] has joined #lisp 16:38:14 my son wasnt much interested in logo but picked up scratch with great enthusiasm 16:38:33 and got two of his friends too 16:38:36 nuba: Scratch? Is that a programming language? 16:38:38 all 7 yrls old kids 16:39:03 oops, two of his friends involved, too* 16:39:25 pbusser: http://scratch.mit.edu/ 16:40:18 lukego, have you seen felleisen's reply to a mathematician's lament? 16:40:19 nuba: cool :). the bootstrap.org guys were upset that Scratch spreads from person to person, because of its lack of formal curricular value :) 16:40:27 Fare: no? 16:40:55 nuba: That looks like something children might enjoy. 16:40:57 pbusser, unhappily, scratch doesn't let you really program all that much. plenty of copy-paste, not much recursion. 16:41:04 oh I see it now 16:41:16 nuba: there's also an "Alice" alice.org, perhaps for older pupils. 16:41:21 well as a senior sysadmin and computer science student I think scratch is a great way to start 16:41:28 no, they are complaining that Scratch doesn't scale up. 16:41:55 with some interesting agent and event programming concepts 16:42:03 on the other hand, they don't yet have an answer to getting 7 y o to program. 16:42:37 -!- authentic [n=authenti@unaffiliated/authentic] has quit [Read error: 110 (Connection timed out)] 16:42:49 -!- postamar [n=postamar@c-nag-rtr.univ-avignon.fr] has quit [Read error: 110 (Connection timed out)] 16:42:49 -!- postamar_ is now known as postamar 16:43:00 not to mention he gets a blast from being able to scan his drawings (to become sprites) and record sounds (which canbe triggered there) 16:43:08 Fare: The first thing for such kids is to become interested in using computers in a more or less creative way. 16:43:23 Fare: At that age you can't expect them to grock lambda calculus. 16:43:57 nuba: of course there's also Smalltalk that was designed for children too. http://www.squeak.org/ 16:44:01 After all, they're kids, they should play. 16:44:30 squeakland.org is the main entry point for the kids'ey (etoys) side of squeak btw 16:44:34 http://www.ccs.neu.edu/home/matthias/Tmp/essays/essays/anti-lament.html 16:45:04 pbusser, possibly. But if there's no path from where they are to lambda calculus, then you set them on a dead end 16:45:32 -!- borism [n=boris@213-35-234-124-dsl.end.estpak.ee] has quit [Read error: 60 (Operation timed out)] 16:45:36 Fare: I don't relate to anything Felleison or his students say. upbringing i'm sure 16:45:37 -!- varjag [n=eugene@122.62-97-226.bkkb.no] has quit ["Ex-Chat"] 16:45:43 Fare: There is a path which is to go to university and study computer science. 16:46:05 im pretty much interested in http://www.toontalk.com/English/papers.htm too 16:46:08 pbusser that's ridiculous you don't have to go to university to learn something basic like programming with functions 16:46:09 if you're giving them confusing leads that hinder their acquiring proper concepts, rather than organize things clearly in their mind, you've corrupted them, not taught them. 16:46:35 soupdragon: Lambda calculus is a bit more than programming with functions. 16:46:39 *lukego* fetches a priest.. Fare is posessed by Dijkstra! 16:46:50 once scratch becomes boring, toontalk ism my next stop 16:46:51 pbusser oh really I didn't know that 16:47:10 -!- Adlai [n=adlai@unaffiliated/adlai] has quit [Read error: 54 (Connection reset by peer)] 16:47:19 Adlai` [n=adlai@unaffiliated/adlai] has joined #lisp 16:47:24 Fare: We're talking about kids here, not students. Many things kids do have no purpose, are wrong, and pointless. And that is good, because that way they learn. 16:47:49 Fare: There are people who are puting their 3 year olds in some kind of formal training. That is the worst thing you can do to kids. 16:48:11 -!- Adlai` is now known as Adlai 16:48:45 something tells me the next gigabook will be controversial :) 16:49:20 -!- huyslogic [n=Huy@192.206.112.168] has left #lisp 16:49:30 I assume this is unintentionally hilarious: 'nobody has tried to distill all of this mess to Newtons laws of programming and computing' 16:50:14 -!- Jabberwockey [n=jens@port-11432.pppoe.wtnet.de] has quit [Remote closed the connection] 16:50:24 yeah I don't get what he's saying there at all 16:50:43 -!- pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has quit [Remote closed the connection] 16:50:56 must be something to do with lambda calculus 16:51:36 splittist, it's about giving clear concepts and methods to kids. 16:51:58 Fare: check toontalk 16:52:23 having them rely on mysterious side-effects that one doesn't understand and can't specify is recipe for creating confused kids. 16:52:47 nuba: looks cool, but I have no time to dig into it 16:53:02 Fare, you can't really argue that side-effects are confusing to beginners 16:53:12 soupdragon, yes I can, and I do. 16:53:13 pbusser [n=pbusser@82.174.238.138] has joined #lisp 16:53:30 how? 16:54:21 as far as I can tell, instructing a turtle fd 10 is a lot simpler than writing prolog based on the logical reading of clauses 16:54:36 they prevent beginners from acquiring the concept of function, of transformation, the notion of a value, etc. 16:55:02 you can instruct your turtle to fd 10 functionally. 16:55:06 I learned about functions by using BASIC. 16:55:11 it's quite trivial to do, actually 16:55:14 gemelen [n=shelta@shpd-92-101-137-120.vologda.ru] has joined #lisp 16:55:18 -!- Zephyrus [n=emanuele@unaffiliated/zephyrus] has quit [Client Quit] 16:55:33 Fare: sure. I'm just saying that Newton had centuries of mathematics to build on (and was a transcendant genius): computer programming is a few decades old. To defend mathematical education on the basis that comp sci education is worse seems... odd. 16:56:03 computer programming has the same centuries, and four more, to lean on. 16:56:12 Fare, I don't really follow what you are saying here. That side effects are inherently confusing or difficult ? 16:56:20 if you don't first confuse side-effecting procedures as "functions". 16:56:31 side-effects ARE inherently confusing. 16:56:44 so is a large stack 16:56:44 you can EASILY build the understanding of side-effects on top of pure functions. 16:56:45 oh 16:56:51 the opposite is NOT easy 16:56:52 Yes, it was a mistake for CL to call procedures functions. 16:57:17 Just type those functions into your non-side-effecting editor and ... 16:57:19 well I do not feel that they are but assume that it is true: In that case why should we do pure functional programming? There are other declarative paradigms too 16:57:28 Zhivago, we're discussing educating kids. 16:57:55 The reason that procedures are attractive, imho, is that they reflect a mechanistic view of the universe. 16:58:06 I remain curious about which environments motivated kids are in fact choosing for themselves as we speak 16:58:09 And for simple things that mechanistic view is often easier. 16:58:14 Fare: that's probably the great paradox. how to make it interactive and meaningful, but at the same time teach concrete concepts 16:58:15 I've seen beginners stuggle terrible with prolog (as well as seasoned programmers that already know a good few languages) 16:58:15 soupdragon, sure there are other declarative paradigms. Functional, though, has a simple unambiguous execution model. 16:58:16 So we start with Leibniz, not Newton? 16:58:23 (sp) 16:58:24 I look forward to the generation raised on Javascript. 16:58:32 I think it is the new basic, and a vast improvement. :) 16:58:35 (what Zhivago said) 16:58:42 maybe kids don't want to understand functions, values, and transformations. maybe they want to tell the computer to do stuff. 16:58:42 Zhivago: Hehe! 16:58:48 Fare: http://imagebin.org/78266 16:58:53 hefner, hear! hear! 16:59:09 Yes, so what is important is making sure that the tools are there to build upon later. 16:59:21 Zhivago, some people are choosing crack for themselves. The kids I know choose for themselves Halo and Star Wars whatever as their "computing" environment. 16:59:30 Give them various things to choose from, and they will take whatever allows them to learn the most. 16:59:31 Javascript has closures and they're useful -- this is a very powerful teaching mechanism. 16:59:33 I can just imagine the generation that has learnt physics by starting from feynman diagrams 16:59:33 Fare: and http://pastebin.com/mfb4b93e <-- the abstract of a recent article on toontalk 16:59:35 Fare but what if you wanted to produce a progam that interacts with the user? 16:59:38 Zephyrus [n=emanuele@unaffiliated/zephyrus] has joined #lisp 16:59:49 the main problem with javascript is that it doesn't provide meaningful error messages 16:59:54 soupdragon, so you teach the kids about monads! 16:59:55 -!- wlr [n=walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Read error: 110 (Connection timed out)] 16:59:56 err, wait :D 16:59:57 wlr [n=walt@c-65-96-92-150.hsd1.ma.comcast.net] has joined #lisp 16:59:59 Fare: The javascript generation isn't quite here yet. 17:00:15 Of course, one of the main problems you run into is that it used to take very little effort to produce a wonderful result. The bar for wonderful results is now incredibly high. 17:00:27 Fare or perhaps that sort of thing is irrelevant to introductory programming 17:00:28 hefner, maybe a kid doesn't want to learn the alphabet and proper grammar, just to be able to scribble random signs and get other humans to do stuff. 17:00:31 this is part of toontalk's primitives http://imagebin.org/78266 17:00:32 and javascript's function generating functions is not the easiest thing out there to read, so... 17:00:35 oh, you want to talk about how a ball flies through the air? Well, first we have to understand van der Waals forces, and viscosity, and the pauli exclusion principle, and so we'll be doing SO(2) symmetry groups for a few yers 17:00:44 Kids don't care about easy to read. 17:00:51 we'll come back to a ball's trajectory when you're older 17:00:58 They'll do whatever the hell they want to do in order to get something done. 17:01:03 Zhivago: I agree with that. 17:01:10 If that means copying half-understood magical spells, then they'll do that. 17:01:17 they don't, but if it prevents them from doing it? 17:01:18 Zhivago: Yep. 17:01:23 But as they get older they'll tend to understand them at a finer grain. 17:01:28 this reminds me of TIM the incredible machine 17:01:39 nuba: yeah, great game 17:01:40 there's no doubt about that. from simple to more advanced 17:01:47 Starting with an environment with closures and GC and prototypes and classes looks pretty wonderful to me. 17:01:57 guaqua: but SO(2) symmetry _is_ simple! 17:02:02 But, as noted, javascript development environments are pretty horrible to debug in yet, so ... 17:02:03 much simpler than the flight of a ball through the air 17:02:03 Trying to make programming kid-friendly by making into cartoons seems to me like trying to make christianity interesting by making it into cartoons. 17:02:09 yeah, and if you give them guns and tell them that adults are corrupted by old thinking, you can have a nice kid's army, too. Doesn't mean it's good for them. 17:02:19 (I hope the analogy to teaching computing is obvious) 17:02:29 rpg [n=rpg@216.243.156.16.real-time.com] has joined #lisp 17:02:49 ejs [n=eugen@92.49.202.39] has joined #lisp 17:03:02 it does you no good to teach the fundamental principles if those principles are too far removed from the problems that are easy to understand and relevant for the student 17:03:06 the point is, fun and learning are distinct (related as they may be) things. 17:03:10 *lukego* hopes kids take care of themselves and don't rely on us to come up with the answer for them :) 17:03:23 Fare: No they are NOT distinct things. 17:03:24 optimizing for fun, you'll drop all the useful stuff to learn 17:03:28 Fare, Well it seems like you are suggesting to teach programming as writing a pure function that produces output which gets interpreted by the computer as either an interaction or similar -- which seems very hands-off 17:03:33 Fare: A kid that is having fun is learning. 17:03:35 *splittist* is reminded of School of Rock for some strange reason 17:04:03 lukego: the bright kids will always manage that. I think we should be concerned by the ones who aren't that motivated 17:04:05 Fare: Kids *love* to learn, if they can learn something, they become completely focused. 17:04:12 Fare: Kids are kids, not little adults. 17:04:13 there we can make a difference, ideally a good one 17:04:23 pbusser, yes, but WHAT is he learning? Is he learning to shoot people who wear glasses and speak foreign languages (Cambodia, 1975), or is he learning to think in clear ways and build robust stuff? 17:04:29 Fare: I've never really understood the motivation against side effects either - is it something to do with verification/proving programs correct? 17:04:29 -!- postamar [n=postamar@c-nag-rtr.univ-avignon.fr] has quit [] 17:04:47 Fare: Kids aren't interested in learning how to shoot people. 17:04:50 soupdragon, proving it to yourself 17:04:50 Fare: that follows if they are negatively correlated. That seems unlikely. 17:04:51 i remember seeing also about concrete, tangible programming languages, with building blocks much like lego blocks 17:05:05 Fare, you mean like, informally understanding why it is correct? 17:05:06 pbusser, we have plenty of counter examples. 17:05:21 just in your head, without writing stuff down 17:05:30 Fare, what is your point? 17:05:30 soupdragon, if you can't prove correctness to yourself, how do you design programs? 17:05:32 Fare: Those kids were raised in social conditions that promoted that behaviour. 17:05:45 Fare, I'm still not sure what you mean by that 17:06:04 Krystof: at heart I think I mostly want to support people who are like myself. probably a darwinian explanation. :) 17:06:06 nuba: that kids learn, by definition. WHAT they learn is up to the educator. 17:06:07 -!- gigamonkey [n=user@adsl-99-64-118-11.dsl.pltn13.sbcglobal.net] has quit [Read error: 60 (Operation timed out)] 17:06:13 Fare: we know, it's because of governments, who through their imposition of taxes (and educational curricula) cause everyone to become psychopaths 17:06:24 lukego: the easy way to do that is to make everyone else learn less effectively 17:06:36 I'm not sure that's desperately moral (or even darwinian :-) 17:07:06 those who were like you don't need the support, surely. Or rather, they've got more support now thanks to having masses more easily-available stuff to play with 17:07:16 you can teach them to sit down quietly and repeat brainless exercises. 17:07:16 Fare, will you clarify ? 17:07:44 Krystof: do you know the actual definition of psychopath? :) (sorry. personal bias) 17:07:59 Krystof: maybe. but to me it feels like most schools are actually opposed to self-directed learning, if only indirectly 17:08:01 you can teach them to aim without guidance and not expect to get anywhere 17:08:22 I suffered a lot of abuse at primary and secondary school. And the kids who were the most abusive were the ones who came from families with social problems. Like parents who drank too much, abusive parents, etc. 17:08:32 soupdragon: the idea is this: with no side effects, func(a, b) is easily understandable, since it depends only on the value of a and b. 17:08:33 froydnj, memo from tcr: Ironclad's documentation at http://method-combination.net/lisp/ironclad/ does not yet point to the source repositories at github. 17:08:50 but can you give them basic concepts and methods that they can reuse on their own? 17:09:07 actually, the most important part is not curriculum, but teachers themselves 17:09:19 soupdragon: but with side effects, understanding proc(a, b) is hard, because you need to (potentially) understand the flow of the program that got you to the point of that call. 17:09:20 -!- stassats` [n=stassats@wikipedia/stassats] has quit [Read error: 110 (Connection timed out)] 17:09:26 there's too much bias on formal decisions being the thing that changes the most... 17:09:34 froydnj, it seems like a flawed argument to me 17:09:36 -!- gemelen [n=shelta@shpd-92-101-137-120.vologda.ru] has quit [Read error: 54 (Connection reset by peer)] 17:09:37 lukego: so? The bright ones will do it anyway. 17:09:46 soupdragon: why? 17:10:26 of course it's flawed, in that the understanding of a small piece isn't the same as the understanding of the whole, and it is not necessarily the case that understanding all the small pieces individually gives you a useful understanding of the whole 17:10:31 froydnj, if we consider e.g. a pure function f(s,a,b) and an effectful one f(a,b) -- which are equivalent in some sense (maybe 's' represents a mutable variable in a pure way, or the input/output terminal) 17:10:33 btw, to become an actual psychopath you need to have damage in certain (evolutionary necessary) brain systems 17:10:43 sure, and governments cause that 17:11:01 (has anyone read "Teaching as a subversive activity" by Postman & Weingartner?) 17:11:07 p_l: Yep. And it is only present in a small percentage of people (like 2% or so). 17:11:16 p_l: If that were the case you wouldn't expect the number of psychopaths to be stable across all populations. 17:11:24 BASIC solved this problem years ago by not encouraging you to use procedure calls. State is more manageable when you're mostly preventing from building anything too complicated. 17:11:43 p_l: I suggest that psychopathy is an evolutionary strategy that works while the expression rate is sufficiently low. 17:12:07 Krystof: I'm looking for a data point now :). I just pinged a Nepali kid on Twitter - he's a friend's brother, seemed to have the hacker-gene bigtime, but was not allowed by school/parents to hack because going off-curriculum brings down your grades and ruins your chance of scholarship and then you end up ... etc. we'll see if he's hacking now or doing something extremely boring instead :) 17:12:09 Zhivago: having said damage doesn't mean you will act like popular definition of psychopath. It just removes certain inhibitions (which are extremely important when the population is low) 17:12:15 hefner: That depends on the BASIC you're talking about. There were BASICs which had functions, procedures, call by value, call by reference, and stuff like that. 17:12:36 lukego: data!? (good idea) 17:12:39 davazp [n=user@95.Red-83-55-182.dynamicIP.rima-tde.net] has joined #lisp 17:12:54 p_l: The problem is that if it were caused by environmental damage, you wouldn't expect it to be at stable levels generally. 17:13:13 froydnj, I don't know if this is just a blind spot I have, because I do keep hearing people saying that pure functions are easier to reason about 17:13:42 Krystof: for myself I seem to have had the hacker-gene mixed with the stubborn-bastard gene that made it easier to think "this is all dumb, I'm gonna do this instead". the message from school was very much that guys like me end up losers on the dole :) 17:13:51 soupdragon: *shrug* it's more explicit in the functional version what's going on; it's partly how much explicitness you think is a good thing. 17:13:52 Zhivago: said damage removes your evolutionary feedback against various actions, including killing another "tribe member" to use informal speak... I guess that a certain amount of flawed genes still roam :) 17:13:56 but I have seen formal proofs on both sides and it's the same thing... you have to build up a bit of machinary to talk about effectful programs - whether they be writen in a pure functional language or not 17:14:02 pbusser: I refer to a classical dialect of BASIC from my youth which had line numbers and GOSUB, but no function parameters. I assume most of the old 8-bit micros had similar limitations. Newfangled BASIC variants aren't of much relevance. 17:14:21 soupdragon: and I didn't say that was the be-all-end-all argument, just a (partial) sketch. Krystof's point is well taken. 17:14:22 soupdragon, pure functions ARE easier to reason about. One less complex variable (state) to reason about. Explicit dependencies. 17:14:23 p_l: Sounds like a value judgement claiming that certain strategies are evil and thus 'damage'. 17:14:44 (I wonder if BASIC programmers today insist that it's now called "Basic", and saying "BASIC" indicates you're stuck in the 70s) 17:14:48 hefner: I'm talking about my youth too you know. It was actually a 4MHz Z80 machine. 17:15:02 pbusser: your youth was superior to mine, then. Congratulations! 17:15:04 Zhivago: no, I don't claim they are evil. They just make it easier to perform acts that would be considered evil, in part because of presence of said mechanisms 17:15:08 Fare you have said that but not really convinced me with any arguments 17:15:09 hefner: The BBC computer (6502) also had a great BASIC interpreter. 17:15:23 ISTR QBasic being spelt "QBasic" (not allcaps) 17:15:29 p_l: Well, then I suggest not calling it damage. 17:15:32 soupdragon, try to build a proof verifier for pure programs vs effectful programs. 17:15:38 have you guys seen that Ted talk about "school kills creativity" or something? one rather astute observation that guy made is that "if you ask somebody about their education, they pin you to the wall and won't shut up about it" :) 17:15:47 Fare, but also you didn't clarify -- if you were teaching pure functional programming, would you just not write any interactive programs? 17:15:57 Fare, as I said - they are the same thing 17:16:03 hefner: http://en.wikipedia.org/wiki/Enterprise_(computer) 17:16:05 soupdragon, stop bullshitting yourself and me 17:16:05 Zhivago: basically, the feedback loop is there as a kind of evolutionary moralism... and I only call it damage because it damages processing of emotions 17:16:16 soupdragon, the PLT guys have PURE, INTERACTIVE programs 17:16:38 Fare, yeah and how is it more pure than writing in scheme or logo? 17:16:40 what's more interactive than a video game? 17:16:49 they are writing in pure scheme, indeed 17:16:55 p_l: I expect that it confers superior performance in some areas. 17:17:09 kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 17:17:27 Zhivago: yes, it makes for fine assasins/soldiers 17:17:41 (and no, it's not entirely sarcastic) 17:17:55 p_l, or politicians 17:17:59 probably correllated changes might improve brain performance 17:17:59 see? 17:18:26 Fare: politicians aren't hindered due to lack of "close up" feedback of what they actions cause, so it doesn't matter if they have it or not ;-) 17:18:30 Fare, are you referring to FrTime? 17:18:44 soupdragon, I'm referring to bootstrapworld.org 17:18:46 (part of the whole "it's easier to harm someone indirectly/from distance" thing) 17:19:03 FrTime is not for kids. 17:19:27 though indeed it's a way that the ideas they teach kids do scale up 17:19:57 I think that Felleisen's notion that tools and curricula should scale up is important. 17:20:03 p_l: That's why I think it's dangerous to call it damage, rather than an alternate evolutionary strategy. 17:20:33 I wonder how OLPC is working out for the unusual kids with the hacker gene 17:20:42 Zhivago, it's still damage to the victims at least. 17:21:01 lukego, probably infinitely better than the preceding lack of computer 17:21:16 lukego, question is, how is it doing for kids without that gene? 17:21:26 While there's ADD-METHOD in ANSI, there's no way to make a new method object that can be passed to ADD-METHOD other than EVAL+DEFMETHOD, right? 17:21:27 Fare: if so then presumably we should see them turning up on #lisp etc within the next few years 17:21:38 Fare: no, those are two separate, valid, questions :) 17:21:44 or #python or #squeak 17:22:05 Fare: The same applies to any other genetically based talent or deviation. 17:22:09 tcr: (make-instance 'standard-method ...)? 17:22:18 Zhivago: in purely evolutionary terms, person with such case would be either immediately "removed" or be the cause of genocide in local population. Unless the society was advanced enough to cram enough logic thinking and reasoning to fill the void (the mechanism was created to enhance survivability, it wasn't there in the very beginning. It's part of the "society/tribe" thing that evolution came up with) 17:22:29 Zhivago, not all strategies involve negative sum games. 17:22:39 -!- kiuma [n=kiuma@85-18-55-37.ip.fastwebnet.it] has quit ["Bye bye ppl"] 17:22:39 p_l: That's obvoiusly nonsense. 17:22:45 Krystof: Does ANSI specify what to pass? 17:22:54 tcr: probably not 17:23:03 jsoft [n=user@unaffiliated/jsoft] has joined #lisp 17:23:20 p_l: If it were the case, then you wouldn't have this level of expression. So, the conclusion is that this strategy pays off when the number of psychopaths is sufficiently low in the population. 17:23:24 Is McCLIM being maintained? 17:23:43 pbusser: maybe, sort of. 17:23:51 Zhivago: I have heard that it is around 2% or so. 17:23:56 pbusser: it's not dead, it just smells funny. 17:24:01 hefner: Heh! 17:24:04 pbusser: Something like that, yes. 17:24:33 Zhivago: eh, it doesn't pay up *unless* in obviously artificial conditions. It's possible to *use* it when the number is quite low, but only through intelligent work 17:24:35 Fare, okay I think I see what you are saying with these bootstrap thing: it's like a game engine VM, and the students program it by making some pure functions that express behaviors of objects that get put inside it 17:24:45 (BTW, by the *end* of the PLT curriculum, the kids have typically learned objects with implicit state) 17:25:27 (just you try to put that at the *beginning* of the curriculum and teach kids any sensible notion to reason about their programs) 17:25:38 p_l: Actually, psychopathy seems to pay of pretty well. 17:25:40 There is no interest in McCLIM, or what? 17:25:45 Fare: I don't think you can reason about these games 17:25:57 pbusser: everyone is busy writing Web 2.0 websites 17:25:58 soupdragon, well, then try the curriculum 17:26:00 it's more like physics than computing 17:26:02 or in my case, teaching 17:26:06 pbusser: anything you say now may be lost in the channel noise methinks ) 17:26:08 Zhivago: for the individual, I guess... not for society. I guess I would actually root for the psychopath, actually ;-) 17:26:10 p_l: If you're smart enough to be a high functioning psychopath there are plenty of political, sales and business jobs that suit. 17:26:18 Can we stop the psychology/evolution crap? 17:26:31 p_l: I expect that it pays off for society to an extent as well. 17:26:56 lukego: That's no problem. It's good to see that the channel is busy. :-) 17:26:56 maybe that is a good thing though 17:27:27 soupdragon, reasoning about programs is a different path in which the PLT guys can scale up their curriculum, and they do it indeed (using ACL2 for now). 17:27:45 (aren't you glad kids are taught common lisp?) 17:28:16 Fare, I don't really buy the effect free dogma, especially if you are actually doing object oriented programming 17:28:24 tcr, doesn't look like it. 17:28:36 don't buy it without trying it. Try it. 17:28:43 Adlai: Are you interested in slime+ccl deficiencies? 17:28:54 Fare: BTW, are there introductory books about formal verification? 17:29:00 tcr, very much so. Can you leave me a memo or /msg though because I have to run :\ 17:29:16 pbusser, probably plenty of them. 17:29:40 Fare: Do you have any recommendations? 17:29:50 Adlai: I'll write a mail, note that I'm not on the newest ccl version 17:29:51 -!- c|mell [n=cmell@203-144-180-65.static.asianet.co.th] has quit [Read error: 110 (Connection timed out)] 17:29:56 pbusser, from which point of view? 17:30:07 Adlai: So replying with "Cannot reproduce" would satisfy me 17:30:12 pbusser, there are interesting lecture notes from graduate programs online. 17:30:27 for an oldie but goodie, the boyer-moore book is probably still good. 17:30:40 (introducing NQTHM, the ancestor of ACL2) 17:30:48 Fare: From a practical point of view. I hear a lot about formal verification, and proof carrying code, etc., but I don't know what it is and how it works. 17:31:09 pbusser: ATTAPL has an intro chapter on PCC 17:31:11 Fare: I would like to learn more about it, especially about applying it. 17:31:17 -!- cddr [n=user@5ac75ee9.bb.sky.com] has quit [Read error: 110 (Connection timed out)] 17:31:19 soupdragon: ATTAPL? 17:31:20 I learned at school and there wasn't a clear book to use, so I can't say. 17:31:23 yeah 17:31:43 -!- kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 17:31:51 soupdragon: What does ATTAPL mean? 17:31:52 you could try a tutorial for Coq or Isabelle or ACL2... 17:32:03 it's a book 17:32:11 or some other such software. 17:32:29 When I am in the *inferior-lisp* REPL buffer, how do I re-do the last expression so I dont have to type it again? 17:32:30 -!- Patzy [n=somethin@coa29-1-88-174-11-170.fbx.proxad.net] has quit [Read error: 54 (Connection reset by peer)] 17:32:37 Patzy [n=somethin@coa29-1-88-174-11-170.fbx.proxad.net] has joined #lisp 17:32:38 Or scroll up and down the history? 17:32:52 jsoft M-p 17:32:52 jsoft: M-{p,n} probably 17:32:53 C-up, C-down 17:33:33 Ahh so it is! :) 17:33:34 jsoft, don't be in *inferior-lisp* 17:33:35 Meta 17:33:42 use the *slime-repl impcl* buffer 17:33:46 Hmm 17:33:47 tcr, ok 17:33:54 Ok, so it's Advanced Topics in Types and Programming Languages. 17:33:56 oh C-up and down is nice 17:34:08 Fare: I'll have a look, thanks. 17:34:11 Adlai: I dont seem to have one 17:34:16 soupdragon: Thanks for the recommendation. 17:34:25 C-up and C-down is better for a dvorakist. M-p and M-n is impossible :( 17:34:27 jsoft, (slime-setup '(slime-fancy)) in your .emacs, I think 17:34:31 then you'll get one when you M-x slime 17:34:35 *Adlai* out 17:34:53 I remember a good set of course notes by Benjamin Werner, long ago. 17:34:54 guaqua I occasionally miss the p when even on querty, 17:35:12 I'm switch to C- up an down 17:35:37 I have learnt some nice key chords the last couple of days 17:36:05 Fare what does it teach, writing some games using pure functions? 17:36:41 Adlai: ahh that done it :D 17:36:51 -!- skeptomai|away is now known as skeptomai 17:37:03 soupdragon, you mean, the plt curriculum? It teaches how to think about programs, using games as a ploy to get kids interested, and pure functions as a basic concept. 17:37:20 how to think about programs? 17:37:39 yes. See also how to design programs 17:38:01 marioxcc [n=user@200.92.182.147] has joined #lisp 17:38:10 but the thinking part is important 17:38:47 The thinking part is always important. :-) 17:39:01 and the algebra part is important both as a way to sell the curriculum to educators and to emphasize the clear thinking and relationship between computing and mathematics. 17:40:53 it sounds great but I guess they only get to meet functional programming 17:41:05 you guess wrong, wrong, wrong 17:41:12 really 3 times? 17:41:21 once again, by the end of the curriculum, they know object oriented programming. 17:41:39 but you are obviously not interested in learning about it. 17:42:25 Fare, well okay I think we best not talk about this any longer 17:42:32 Athas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has joined #lisp 17:43:08 actually, they boast faster nothing-to-OO teaching of kids with their method than with people who try to teach kids Java directly. 17:43:27 The J-word. 17:43:36 Pervert! 17:43:38 *pbusser* ducks 17:43:53 *froydnj* notes that "real" OO and how OO is taught with Java can be *radically* different 17:44:09 "real" OO is probably somewhat closer to functional programming 17:44:13 whodathunk that when the concepts are clear at every step, kids learn more efficiently than when they are a gooey mess that they have to sort out without help at everystep. 17:44:13 -!- ruediger [n=the-rued@p508B328F.dip.t-dialin.net] has quit ["This computer has gone to sleep"] 17:44:28 Huh, ccl's xref facility learns 17:44:46 learns? 17:45:05 Say you have some function which uses (symbol-value symbol) where symbol is a parameter 17:45:12 if that function is called with *foo* 17:45:24 snearch [n=olaf@g225048113.adsl.alicedsl.de] has joined #lisp 17:45:28 xref will afterwards now that the function uses/used *foo* 17:45:32 interesting 17:45:34 s/now/know/ 17:45:46 it confused the hell out of me 17:45:51 dependent on (optimize debug), I suppose 17:46:00 default settings 17:46:09 I think CCL is a lot saner there than sbcl :-) 17:46:54 Does CCL also produce smaller core files than SBCL? 17:48:00 froydnj: any opinion on my mails? 17:48:31 froydnj: (making ironclad use named-readtables revealed that sbcl bug I fixed earlier, so it was worth it :-)) 17:48:45 tcr: the named-readtables bits? I'm tempted to just remove the readtable games. 17:49:07 (also, I think your patch failed to include the define-the-named-readtable-file) 17:50:07 Oh, indeed. How odd. Do I have to git add files so git diff will take them up? 17:50:18 think so. 17:50:30 I think you need to actually commit stuff, then git-format-patch 17:51:41 froydnj: there are also some unused variable style-warnings that your muffling sweeps under the carpet 17:52:08 I think you should unmuffle those 17:52:18 hm. 17:52:26 What does init-form do when used with class allocation? is it set with the first instance created? 17:52:42 "those" == unused-variable style-warnings (hopefully they have their own condition type) 17:53:37 *initform, darn CLHS typo 17:53:54 nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has joined #lisp 17:54:17 Guthur: that's explained in the Object Initialization section of CLHS 17:54:45 ok I just checked defclass 17:55:01 an initform is only used if the slot is otherwise uninitialized 17:55:02 it doesn't look like there's a separate condition type for unused-variable warnings 17:55:43 should you just muffle sb-ext:compiler-note? 17:56:49 Krystof: Cheers 17:56:50 I can't remember why I muffled style-warning. possibly to stop complaints about redefining functions. 17:57:05 froydnj: well those do come with their own condition type 17:57:06 Axius [n=ade@92.85.27.84] has joined #lisp 17:57:11 -!- ignas [n=ignas@78-60-73-85.static.zebra.lt] has quit [Read error: 60 (Operation timed out)] 17:57:53 jmbr [n=jmbr@146.33.220.87.dynamic.jazztel.es] has joined #lisp 17:58:17 rread [n=rread@c-98-234-219-222.hsd1.ca.comcast.net] has joined #lisp 17:58:57 xinming_ [n=hyy@125.109.247.70] has joined #lisp 18:01:52 Hmm, slime with slime-fancy gets simple loop indentation really wrong. Should I ask the slime list how to fix it? 18:02:04 balooga [n=00u4440@147.21.16.3] has joined #lisp 18:02:08 Xach: It's emacs bits. 18:02:20 tcr: it worked before(tm) 18:02:50 Oh simple loop? 18:02:55 yes. 18:02:57 amnesiac [n=amnesiac@p3m/member/Amnesiac] has joined #lisp 18:03:03 You want (loop\n (foo) ...)? 18:03:27 Do you have something like (setq lisp-simple-loop-indentation 2 lisp-loop-keyword-indentation 6 lisp-loop-forms-indentation 6) in your .emacs? 18:04:09 tcr: Thanks. I actually want 1 for simple-loop indentation. 18:04:12 that seems to work. 18:05:01 tcr: another indentation question, which might again be emacs's fault 18:05:25 -!- joubert [n=joubert@user-0cev80t.cable.mindspring.com] has quit [] 18:05:42 if I do (typecase foo RET TAB (bar RET TAB the cursor is at completely the wrong point (should be under the b of bar, is in fact under the r) 18:06:10 do you use the slime-indentation contrib? 18:06:35 yes 18:06:36 joubert [n=joubert@user-0cev80t.cable.mindspring.com] has joined #lisp 18:06:37 iirc that introduces this kind of abomination indentation (which is the reason that puts me off from using the contrib) 18:06:54 it seems like the ita hackers like(d) it that way 18:07:25 huh. Shame, it gets loop right :) 18:07:33 not simple loop! 18:07:47 I like simple loop with indent 2 18:07:59 do you have indent 1 for progn, too? 18:08:05 I wouldn't mind changing it, but segv is gone and I wouldn't who else to talk to 18:08:15 +know 18:08:32 Krystof: Nope. 18:08:35 tcr: half the people on this channel, surely? Isn't everyone but thou and me in the ITA megalith these days? 18:08:48 *Xach* is in the wigflip microlith 18:09:09 slyrus [n=slyrus@adsl-76-195-1-74.dsl.pltn13.sbcglobal.net] has joined #lisp 18:09:25 Krystof: Write a posting to the mailing list. I'll reply with "If there are no complaints, I'll change this" 18:11:53 cddr [n=user@5ac75ee9.bb.sky.com] has joined #lisp 18:12:07 ben_m [n=ben@chello084113058207.12.vie.surfer.at] has joined #lisp 18:12:55 -!- dstatyvka [i=ejabberd@pepelaz.jabber.od.ua] has left #lisp 18:13:03 dstatyvka [i=ejabberd@pepelaz.jabber.od.ua] has joined #lisp 18:13:15 Greetings! I have to get the contents of a file hosted on a website ... what would be the best way to do that? Best would probably be a function that treats a remote file like a regular stream... 18:13:25 Joreji [n=thomas@40-233.eduroam.RWTH-Aachen.DE] has joined #lisp 18:13:35 drakma 18:14:37 Looks good, thanks. 18:14:52 n'p 18:15:26 -!- xinming [n=hyy@125.109.247.139] has quit [Read error: 110 (Connection timed out)] 18:16:24 spilman [n=spilman@ARennes-252-1-61-42.w83-195.abo.wanadoo.fr] has joined #lisp 18:19:03 ruediger [n=the-rued@p508B328F.dip.t-dialin.net] has joined #lisp 18:21:49 How can I get SBCL/win32 to not drop into the debugger when an unknown aliend is defined using cffi? 18:22:11 fix whatever is causing it to drop into the debugger 18:22:41 Krystof: No, I actually want undefined aliens to be compliled into the image. 18:23:25 Krystof: That waY I can decide at runtime what to call, and not have to force a recompile depending on the libraries that are available at runtime. 18:23:26 yeah, and I'm saying that to do that you seem to need to fix whatever it is that causes unknown aliens to make sbcl drop into the debugger 18:23:27 can't you just switch to getting the symbol address dynamically at runtime instead? 18:23:29 schoppenhauer_ [n=christop@unaffiliated/schoppenhauer] has joined #lisp 18:23:32 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [Read error: 60 (Operation timed out)] 18:23:53 -!- schoppenhauer_ is now known as schoppenhauer 18:24:03 urg! going to excel VBA from lisp is a harsh transition 18:24:17 you ask as though there might be some simple switch that says "don't invoke the debugger, just go on merrily", whereas I am saying that it probably isn't that simple, and you might need to understand why the debugger is being invoked 18:24:24 and then find that reason and fix it 18:25:19 Krystof: It boils down to a different between SBCL/Linux and SBCL/win32. SBCL/linux issues a warning. SBCL/win32 drops into the debugger. 18:25:33 http://l1sp.org/cffi/foreign-symbol-pointer 18:25:51 hefner: I'll look into that approach. 18:25:57 balooga: Krystof's point is that sbcl-on-win32 needs some love 18:26:01 arrrgh. now i can't even get a minimal slime setup that indents simple loop the way I want. 18:26:09 balooga: yes, and I'm saying that that difference probably isn't just conditional on some special variable or switch, but needs some actual work 18:26:10 balooga: just like you'd do to look up an OpenGL extension :) 18:26:35 Xach: Slime should not have anything to do with that. 18:26:53 Xach: I rather think that you did have some hidden .emacs magic before? 18:27:09 I mean, I could be wrong, there might be just some simple (error "haha, win32 user") in there that simply needs removing 18:27:22 (except not really, because drivers have been known to export stubs for extensions they don't implement) 18:27:24 but even if that's it, you have to investigate it yourself 18:27:35 tcr: After you mentioned lisp-simple-loop-indentation, I tried it, and it did what I needed. Then I restarted emacs to make sure it would work from a cold start. It did not work. Now I can't recover whatever it was that worked. 18:27:48 jmbr_ [n=jmbr@154.245.218.87.dynamic.jazztel.es] has joined #lisp 18:28:04 impulse32 [n=impulse@bas3-toronto48-1176442074.dsl.bell.ca] has joined #lisp 18:28:05 legumbre_ [n=leo@r190-135-16-16.dialup.adsl.anteldata.net.uy] has joined #lisp 18:28:17 b 18:28:18 Ralith [n=ralith@d142-058-082-073.wireless.sfu.ca] has joined #lisp 18:28:18 kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 18:28:20 Xach: Fwiw, simple loop is intended "incorrectly" here too 18:28:37 Xach: Though I don't bother, I like (LOOP (form1)\n (form2) ...) 18:28:37 tcr: That is not much comfort :) 18:29:01 The loss of control is much more frustrating than this specific problem. 18:29:07 Have you changed emacs version since? 18:29:15 tcr: No. 18:29:37 Krystof: That would mean creating a dependency on my libraries, and a not-yet official release of CFFI. Which is something I don't want to do. Kind of breaks the whole asdf-install thing. 18:31:04 minion: memo for stassats: (require :named-readtables) M-x slime-open-system RET named-readtables-test RET results in an error 18:31:05 Remembered. I'll tell stassats when he/she/it next speaks. 18:31:58 balooga: what? I am saying that it is not desireable that sbcl/win32 drops you into the debugger, and if you can work out why and remove that cause, you will solve your problem -- but I am also saying that you have to do your own investigation 18:32:18 hefner is the one who's talking about cffi, not me 18:32:32 maybe I don't understand your question 18:33:10 and I'm saying that what he's doing sounds like a kludge anyway 18:36:10 Krystof: I agree with what you are saying. I was just hoping I could have wrapped the definition in an existing something that would have not forced the debugger. 18:36:16 I also wonder why you can't #-win32 the offending definitions away :) 18:37:49 hefner: Then there would have to be a win32.exe version tied to lib-a and a win32.exe version tied to lib-b. Not something I want. 18:38:50 I'm not sure what that means, but I think I disagree. 18:39:38 hefner: I shall eludicate :) 18:40:26 I wonder why beginning-of-sexp is not bound to any key 18:41:00 tcr: ah, it seems that when it worked for me earlier, i was not using common-lisp-indent-function. 18:41:17 C-M-u C-M-d is unwieldy (and C-M-d is eaten up by gnome, grr) 18:41:18 slash_ [n=unknown@p5DD1CFCC.dip.t-dialin.net] has joined #lisp 18:41:22 hefner: SDL_Image 1.2.8 and later require calls to IMG_Init() and IMG_Quit(). These calls are not required in earlier libs. 18:41:31 the last time i looked at this, i think i found that cl-indent in emacs is broken in a deep way wrt simple loop. time to revisit... 18:41:34 kejsaren1 [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 18:42:26 tcr, beginning-of-sexp doesn't appear to be an interactive function. 18:42:29 hefner: So depending on the version of library at runtime, the system needs to either initialize SDL_Image using these functions, or not. 18:43:07 -!- kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 18:43:29 -!- jmbr [n=jmbr@146.33.220.87.dynamic.jazztel.es] has quit [Read error: 110 (Connection timed out)] 18:44:09 balooga: just curious, how do you avoid dying right now in the case where you have an older version of the library and they aren't defined? 18:44:16 malsyned: I now put (define-key lisp-mode-map (kbd "M-a") '(lambda () (interactive) (backward-up-list 1) (down-list 1))) into my .emacs 18:44:31 surely you can't call an undefined alien, even if you'd like to get away with defining one. 18:44:33 -!- legumbre [n=leo@r190-135-30-237.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 18:44:41 alley_cat [n=AlleyCat@sourcemage/elder/alleycat] has joined #lisp 18:44:47 Xach: I don't think that cl-indent has changed. slime-indentation contains a new, improved version of cl-indent 18:45:43 the undefined alieng still shouldn't explode, I prefer the SBCL/Linux warning approach 18:45:54 alieng/alien 18:46:59 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 18:47:00 hefner: The latest version of SDL_Image doesn't look like it is in Ubuntu/Redhat yeat, so this hasn't become a problem. 18:47:08 haha 18:47:22 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 18:47:47 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 18:47:47 what were you going to do, wrap the call in (ignore-errors) when it came up? :) 18:48:10 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 18:48:31 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 18:48:54 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 18:49:25 holycow [n=new@69.67.174.130] has joined #lisp 18:49:46 hefner: Right; re calling an undefined alien. I planning to define all the aliens using cffi:defcfun, then at runtime determining the library version, and if > 1.2.8 then setting something like *image-init-required*, and making the calls depending on if this returns T or NIL. 18:50:02 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 18:50:20 I'm going to give the SDL_image developers the benefit of the doubt and assume that IMG_Init is a performance thing and you aren't required to call it, even though they fail to make that clear in the documentation. 18:50:24 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 18:50:40 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 18:50:43 Otherwise they'd break binary compatibility, which warrants flogging (I'll get to them after I track down the mpg123 developers) 18:51:03 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 18:51:22 Stattrav [n=Stattrav@202.3.77.161] has joined #lisp 18:51:31 last time I dug into Linux internals I developed a grudging respect. I wonder what's wrong this time. 18:51:48 hefner: I haven't looked at the SDL_Image source, but I didn't want to rely on behaviour not explicitly defined in the API spec. 18:52:06 Although they don't deserve too much slack, as the apparent reason for the addition of IMG_Init is that SDL_image used to load/unload libpng/libjpeg/etc. for every image, which sounds completely braindead unless your computer is tiny, and someone complained it was slow (and offered IMG_Init as a solution). 18:54:03 anyway, I'd still look the symbols up at runtime and only call them if they exist. or just not call them at all. 18:54:10 ignas [n=ignas@ctv-79-132-160-221.vinita.lt] has joined #lisp 18:54:18 tcr: ah, it seems that lack of balanced parens are causing part of the problem. my punishment for not using paredit i suppose. 18:54:25 hefner: I'll do that. 18:54:34 tcr: in the past, it would indent simple loop accurately while it was incomplete. ah well. 18:55:43 That does not match my experience, but I always used the earlier pasted snippet 18:55:49 partisan [n=partisan@121.124.124.117] has joined #lisp 18:56:03 authentic [n=authenti@85-127-38-128.dynamic.xdsl-line.inode.at] has joined #lisp 18:56:23 -!- kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 18:56:43 tcr: using that snippet i get incorrect indentation on partial forms and correct indentation on complete forms. i might have guessed the cause wrong, though. 18:58:23 Ok, I'm using paredit 18:59:02 Hrm, I really hate it that inline functions can cause code-deletion-notes 18:59:32 So far I can't remember that it has ever indicated a bug for me 18:59:43 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 19:00:05 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 19:00:50 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #lisp 19:01:03 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 19:01:17 egn [n=egn@li101-203.members.linode.com] has joined #lisp 19:01:27 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 19:01:50 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 19:02:01 gruseom [n=daniel@S0106001217057777.cg.shawcable.net] has joined #lisp 19:02:14 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 19:03:35 -!- splittist [i=5502cbfd@gateway/web/freenode/x-mkaytwcfymmepwvm] has quit [] 19:03:56 plutonas [n=plutonas@port-92-195-71-139.dynamic.qsc.de] has joined #lisp 19:04:27 -!- Edward__ [n=Ed@AAubervilliers-154-1-48-112.w90-3.abo.wanadoo.fr] has quit [Read error: 54 (Connection reset by peer)] 19:04:54 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 19:04:56 -!- jmbr_ is now known as jmbr 19:05:10 -!- ^authentic [n=authenti@unaffiliated/authentic] has quit [Read error: 110 (Connection timed out)] 19:05:30 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 19:05:58 mattrepl [n=mattrepl@pool-72-83-118-99.washdc.fios.verizon.net] has joined #lisp 19:06:30 maybe instead of code-deletion notes, there should be a "mark and sweep" GC on source statements, making sure that all parts of the original source are marked as used. 19:07:18 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 19:07:26 I don't see how the mechanism can otherwise be made to work with arbitrary macros. 19:07:41 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 19:07:53 and even with macros, that'd probably require macros to either mark their arguments, or something magic to happen. 19:08:38 (e.g. macros being evaluated in an automatically-marking environment) 19:08:44 (declare (ignorable-code)) ;) 19:09:45 that is basically how it works 19:10:35 george_ [n=george@20158177205.user.veloxzone.com.br] has joined #lisp 19:10:35 but no matter what, some heuristics are needed to make it usable 19:11:03 and in some cases python's heuristics fail 19:11:50 I had really problems fighting with that heuristics when I hacked symbols-have-source-paths 19:12:09 I have to revisit that work at some point because it rocks :-) 19:16:50 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 19:17:12 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 19:21:10 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 19:21:33 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 19:21:55 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #lisp 19:23:41 -!- skeptomai is now known as skeptomai|away 19:26:51 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 19:27:11 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 19:30:49 varjag [n=eugene@103.80-202-117.nextgentel.com] has joined #lisp 19:31:23 -!- Axius [n=ade@92.85.27.84] has quit ["Leaving"] 19:33:01 gabnet [n=gabnet@226.23.67-86.rev.gaoland.net] has joined #lisp 19:39:12 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 19:39:32 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 19:44:15 SandGorgon [n=OmNomNom@122.162.50.59] has joined #lisp 19:45:17 -!- Ralith [n=ralith@d142-058-082-073.wireless.sfu.ca] has quit [Read error: 110 (Connection timed out)] 19:49:51 -!- skeptomai|away is now known as skeptomai 19:50:52 -!- soupdragon [n=somebody@unaffiliated/fax] has quit ["Leaving"] 19:51:59 andy-laptop_ [n=andy-lap@58.148.71.197] has joined #lisp 19:52:07 guys help me 19:52:31 my isp keep redirects me when i try to surf web because i didnt pay for it but irc works 19:52:46 andy: pay your isp, or switch isp 19:52:50 nooo 19:52:54 i dont want to 19:53:04 wrong channel. 19:53:09 this channel is not #isp_fraud 19:53:20 oops 19:53:20 sry 19:54:50 frito [n=user@cpc2-sout4-0-0-cust13.sotn.cable.ntl.com] has joined #lisp 19:55:53 So I gave you a reproducible test case for backtrace losage: https://bugs.launchpad.net/sbcl/+bug/503081 Plz fix. :-) 19:57:12 Beetny [n=Beetny@ppp118-210-127-153.lns20.adl2.internode.on.net] has joined #lisp 19:57:14 -!- pbusser [n=pbusser@82.174.238.138] has quit [Remote closed the connection] 19:58:10 -!- lnostdal [n=lnostdal@90.149.113.175] has quit [] 20:05:33 -!- frito [n=user@cpc2-sout4-0-0-cust13.sotn.cable.ntl.com] has quit [Remote closed the connection] 20:05:46 timor [n=timor@port-87-234-97-138.dynamic.qsc.de] has joined #lisp 20:08:24 lukego_ [n=lukegorr@adsl-84-227-129-61.adslplus.ch] has joined #lisp 20:09:07 saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has joined #lisp 20:09:57 -!- Geralt [n=Geralt@unaffiliated/thegeralt] has quit [Remote closed the connection] 20:11:10 -!- andy-laptop_ [n=andy-lap@58.148.71.197] has quit [Read error: 60 (Operation timed out)] 20:12:55 -!- skeptomai is now known as skeptomai|away 20:13:20 andy-laptop_ [n=andy-lap@116.32.190.230] has joined #lisp 20:15:29 mrsolo [n=mrsolo@nat/yahoo/x-lqbhqewjbxuwnwyf] has joined #lisp 20:18:01 slyrus_ [n=slyrus@dsl092-019-253.sfo1.dsl.speakeasy.net] has joined #lisp 20:19:05 -!- lukego [n=lukegorr@adsl-84-227-215-36.adslplus.ch] has quit [Read error: 110 (Connection timed out)] 20:19:05 -!- lukego_ is now known as lukego 20:20:47 benny` [n=benny@i577A3C49.versanet.de] has joined #lisp 20:20:59 -!- benny [n=benny@i577A303F.versanet.de] has quit [Read error: 110 (Connection timed out)] 20:21:29 kruth [n=chatzill@kruth.org] has joined #lisp 20:24:50 -!- gabnet [n=gabnet@226.23.67-86.rev.gaoland.net] has quit ["Quitte"] 20:27:01 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 20:27:22 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 20:27:55 Davidbrcz [n=david@212-198-83-2.rev.numericable.fr] has joined #lisp 20:30:07 b4|hraban [n=b4@a83-163-41-120.adsl.xs4all.nl] has joined #lisp 20:31:22 cephalopod [i=42a1d3ae@gateway/web/freenode/x-dqhlhsphqcalnuvc] has joined #lisp 20:32:46 -!- reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 20:33:03 kjbrock [n=kevin@173-11-106-193-SFBA.hfc.comcastbusiness.net] has joined #lisp 20:34:47 frito [n=user@cpc2-sout4-0-0-cust13.sotn.cable.ntl.com] has joined #lisp 20:36:39 Ragnaroek [n=chatzill@p54A66633.dip.t-dialin.net] has joined #lisp 20:37:10 OmniMancer [n=OmniManc@122-57-29-175.jetstream.xtra.co.nz] has joined #lisp 20:37:33 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 20:38:43 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 20:39:04 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 20:40:15 -!- Athas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has quit [Read error: 104 (Connection reset by peer)] 20:40:25 Athas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has joined #lisp 20:40:41 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 20:41:02 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 20:45:33 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 20:46:13 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 20:46:21 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 20:46:41 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 20:46:52 -!- impulse32 [n=impulse@bas3-toronto48-1176442074.dsl.bell.ca] has quit [Read error: 60 (Operation timed out)] 20:50:04 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 20:50:24 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 20:50:32 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 20:50:52 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 20:51:52 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 20:52:02 -!- legumbre_ is now known as legumbre 20:52:14 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 20:52:56 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 20:53:17 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 20:53:41 gigamonkey [n=user@adsl-99-64-118-11.dsl.pltn13.sbcglobal.net] has joined #lisp 20:54:23 -!- Modius [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has quit [Read error: 54 (Connection reset by peer)] 20:56:05 mstevens [n=mstevens@81.2.103.24] has joined #lisp 20:56:42 -!- tcr [n=tcr@host146.natpool.mwn.de] has quit ["Leaving."] 20:56:56 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 20:57:34 -!- Stattrav [n=Stattrav@202.3.77.161] has quit [Read error: 110 (Connection timed out)] 20:58:20 -!- Kolyan [n=nartamon@93-80-223-112.broadband.corbina.ru] has quit [] 20:59:02 -!- spilman [n=spilman@ARennes-252-1-61-42.w83-195.abo.wanadoo.fr] has quit ["Quitte"] 20:59:05 hefner: herep 21:00:10 Stattrav [n=Stattrav@202.3.77.160] has joined #lisp 21:05:11 aye 21:06:20 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 21:06:43 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 21:06:52 I saw your comments about BASIC from earlier. I just read a book about BASIC by the folks who invented it. 21:07:07 Interestingly, they hated those bare-bones BASICs on micros. 21:07:13 pr [n=pr@p579CA821.dip.t-dialin.net] has joined #lisp 21:07:16 heh, nice 21:08:06 -!- nowhere_man [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has quit [Read error: 113 (No route to host)] 21:08:31 I guess worse really is better. 21:09:43 they probably intended basic to be a cleaner fortran or something 21:10:06 -!- Joreji [n=thomas@40-233.eduroam.RWTH-Aachen.DE] has quit [Read error: 113 (No route to host)] 21:10:21 makes sense, never thought about it that way 21:10:44 cmm: i think it was supposed to be a beginners all-purpose symbolic instruction code :) 21:11:12 Well, they were inventing it around the time of the rise of structured programming. 21:11:14 gabnet [n=gabnet@226.23.67-86.rev.gaoland.net] has joined #lisp 21:11:23 kenanb [n=kenanb@88.238.33.118] has joined #lisp 21:11:40 They added structured programming facilities to the language over time but when folks implemented BASIC on micros, they stripped out all those features. 21:12:18 what's unstructured about computed gosub? 21:12:44 (don't answer that) 21:13:42 -!- SandGorgon [n=OmNomNom@122.162.50.59] has quit [Read error: 110 (Connection timed out)] 21:13:44 -!- skeptomai|away is now known as skeptomai 21:13:47 Am I the only Lisper who hates "The Little Schemer"? 21:13:54 -!- alley_cat [n=AlleyCat@sourcemage/elder/alleycat] has quit ["Ex-Chat"] 21:14:15 gigamonkey: I hated it on first reading, but actually got a lot out of it on the second 21:14:15 no 21:15:02 lukego: maybe I'll give it another look some time. I just found the format incredibly tedious. 21:15:09 gigamonkey: a CL or Smalltalk based Sugar-like thingy would be fun environment for kids to program 21:15:14 I'm not a big fan of Socrates either. 21:15:24 and patronising, etc, but it's where I learned to think recursively. 21:15:37 -!- cephalopod [i=42a1d3ae@gateway/web/freenode/x-dqhlhsphqcalnuvc] has quit ["Page closed"] 21:15:48 -!- freiksenet [n=freiksen@hoasnet-fe29dd00-202.dhcp.inet.fi] has quit [Remote closed the connection] 21:15:58 daniel_ [i=daniel@unaffiliated/daniel] has joined #lisp 21:16:20 I don't get it. I flipped through a friend's copy, and it seems like it asks you a lot of questions without first preparing you to answer them. 21:16:59 tsuru [n=user@c-174-50-217-160.hsd1.tn.comcast.net] has joined #lisp 21:17:28 I think it thinks it was written for kids, but in fact it was written for the authors as children with all their adult knowledge 21:17:32 However it was nowhere near as bad as "A Little Java, A Few Patterns" by the same authors. 21:18:16 I can only imagine that book was a weird attempt to make some bucks off the Java craze back in the late 90s. 21:18:26 nowhere_man [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has joined #lisp 21:18:35 jan247_ [n=jan247@unaffiliated/jan247] has joined #lisp 21:18:46 something many, many people did 21:20:28 -!- daniel [i=daniel@unaffiliated/daniel] has quit [Read error: 60 (Operation timed out)] 21:20:47 leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has joined #lisp 21:22:18 -!- mattrepl [n=mattrepl@pool-72-83-118-99.washdc.fios.verizon.net] has quit [] 21:22:32 mattrepl [n=mattrepl@pool-72-83-118-99.washdc.fios.verizon.net] has joined #lisp 21:22:34 -!- daniel_ [i=daniel@unaffiliated/daniel] has quit [Remote closed the connection] 21:26:03 -!- snearch [n=olaf@g225048113.adsl.alicedsl.de] has quit ["Ex-Chat"] 21:26:06 -!- kenanb [n=kenanb@88.238.33.118] has quit ["Leaving."] 21:26:18 -!- jan247 [n=jan247@unaffiliated/jan247] has quit [Read error: 110 (Connection timed out)] 21:26:18 -!- jan247_ is now known as jan247 21:26:55 any hints on debugging memory corruption problems with cffi? 21:26:55 -!- andy-laptop_ [n=andy-lap@116.32.190.230] has quit [Read error: 113 (No route to host)] 21:28:15 Jabberwockey [n=jens@port-11068.pppoe.wtnet.de] has joined #lisp 21:28:18 i'm writing a libelf interface, and sbcl is dying in foreign-alloc, but only if i initialize libelf first and make calls to gelf accessor functions between foreign-allocs 21:28:55 "dying" = SIGABRT from glibc malloc -> ldb 21:30:21 however, if i allocate a few foreign pointers *before* calling, e.g., gelf_ehdr, there's no problem 21:32:09 -!- kruth [n=chatzill@kruth.org] has quit ["ChatZilla 0.9.86 [Firefox 3.5.6/20091201220228]"] 21:32:26 and gelf_ehdr only allocates memory on the stack, AFAICT 21:32:26 amazing how many bad 2nd-edition books came up using XML or Java in late-90s/early-00s 21:32:54 Ralith [n=ralith@d142-058-090-060.wireless.sfu.ca] has joined #lisp 21:34:29 Adamant [n=Adamant@unaffiliated/adamant] has joined #lisp 21:36:19 -!- frito [n=user@cpc2-sout4-0-0-cust13.sotn.cable.ntl.com] has quit [Remote closed the connection] 21:40:13 -!- marioxcc is now known as marioxcc-AFK 21:41:42 -!- benny` is now known as benny 21:42:54 Edward_ [i=Ed@AAubervilliers-154-1-11-216.w86-212.abo.wanadoo.fr] has joined #lisp 21:44:32 lukego: even worse were the "learn in 15 minutes" books 21:45:15 well, learning a new syntax isn't hard. :-) 21:46:18 *hefner* learned C from "Learn C in 21 Days", but it didn't take as long as advertised :) 21:47:28 Yes, in the beginning of the 90's everyone was writing a book on C++ programming. The problem was they had no clue how to program object orientedly. There are a lot of, in hindsight, humerous attemts from that era. My favorite is C/C++ for expert ystems. Possibly one of the worst books ever written. But it inspired me to write my own design.. 21:48:30 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 21:48:52 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 21:49:00 hefner: the 21 days series was much better, I read it as well, I think 21:54:23 -!- Jasko [n=tjasko@c-174-59-195-12.hsd1.pa.comcast.net] has quit [Read error: 110 (Connection timed out)] 21:55:51 -!- Elench is now known as JHVH 21:57:45 -!- Ragnaroek [n=chatzill@p54A66633.dip.t-dialin.net] has quit [Remote closed the connection] 21:59:22 -!- ryepup [n=ryepup@one.firewall.gnv.acceleration.net] has left #lisp 21:59:38 -!- Beetny [n=Beetny@ppp118-210-127-153.lns20.adl2.internode.on.net] has quit [Read error: 104 (Connection reset by peer)] 22:00:01 -!- marioxcc-AFK is now known as marioxc 22:00:04 -!- marioxc is now known as marioxcc 22:01:55 -!- Demosthenes is now known as CB3FFE90 22:01:57 More LoL on the way.. Land of Lisp this time. A fun basic book trying to teach lisp concepts through games. (sounds oddly failiar.. http://home.chello.no/~jthing/index.html) 22:02:10 oh, is it out now? 22:02:38 tic: on amazon you can be put on wait. 22:03:44 -!- CB3FFE90 is now known as Demosthenes 22:05:08 -!- JHVH is now known as Elench 22:06:05 -!- gabnet [n=gabnet@226.23.67-86.rev.gaoland.net] has quit ["Quitte"] 22:16:31 -!- dstatyvka [i=ejabberd@pepelaz.jabber.od.ua] has left #lisp 22:16:45 -!- jtza8 [n=jtza8@iburst-41-213-14-140.iburst.co.za] has quit ["leaving"] 22:17:19 jtza8 [n=jtza8@iburst-41-213-14-140.iburst.co.za] has joined #lisp 22:17:40 -!- mishoo [n=mishoo@79.112.110.205] has quit [Read error: 110 (Connection timed out)] 22:17:47 rouslan [n=rouslan@pool-70-109-151-129.cncdnh.east.myfairpoint.net] has joined #lisp 22:18:00 -!- nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has quit [Read error: 104 (Connection reset by peer)] 22:18:02 nvoorhies_ [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has joined #lisp 22:18:41 -!- dlowe [n=dlowe@ita4fw1.itasoftware.com] has quit ["Leaving."] 22:20:35 Currently I have a simple and ugly interpreter for a BASIC-like scripting language for controlling a robot. 22:21:06 Jasko [n=tjasko@c-174-59-195-12.hsd1.pa.comcast.net] has joined #lisp 22:21:06 I have been thinking of using a Lisp interpreter instead; are there any good Java packages to provide this? 22:21:08 milanj [n=milan@109.93.33.229] has joined #lisp 22:21:30 -!- anekos [n=anekos@pl1218.nas924.p-osaka.nttpc.ne.jp] has quit [Read error: 60 (Operation timed out)] 22:22:34 rouslan: ABCL gives you a compiler. 22:22:43 There's a couple scheme implementations 22:22:46 there's ABCL, and there's clojure. ABCL is common lisp (the dialect preferred by most on this channel), and clojure is clojure, a pretty new lisp dialect. 22:22:46 antifuchs, memo from tsuru: 2010/1/4, sbcl boinkmarks haven't updated since 1.0.32.20 Thought you might like to know. 22:23:12 I know that clojure can be embedded in existing java software pretty nicely 22:23:31 abcl should work, too (afaik it was made to be the extension language for a text editor) 22:24:42 -!- jtza8 [n=jtza8@iburst-41-213-14-140.iburst.co.za] has quit ["leaving"] 22:25:45 -!- joubert [n=joubert@user-0cev80t.cable.mindspring.com] has quit [] 22:26:15 -!- Ralith [n=ralith@d142-058-090-060.wireless.sfu.ca] has quit [Read error: 60 (Operation timed out)] 22:26:15 But the interpreter is only a module of the entire software; Clojure seems to offer a replacement for everything. 22:27:01 I only need an interpreter (in Java) which parse a Lisp script which contains a few defined procedures. 22:27:40 the problem with embedding lisp is that you might want to write more stuff in it than your previous expectations allowed for (: 22:28:07 e.g. (camera-follow 10 5 velocity) => camera_follow(10, 5, velocity, null); 22:28:10 joubert [n=joubert@user-0cev80t.cable.mindspring.com] has joined #lisp 22:28:44 No, I'm only interested converting the scripting module. 22:29:31 ABCL seems to be good for this, unless I'm misunderstanding something. 22:30:54 -!- authentic [n=authenti@unaffiliated/authentic] has quit [Remote closed the connection] 22:31:04 authentic [n=authenti@85-127-38-128.dynamic.xdsl-line.inode.at] has joined #lisp 22:31:22 why script at all? save yourself the trouble and write it in java. 22:32:30 No, too rigid. 22:32:42 lnostdal [n=lnostdal@90.149.113.175] has joined #lisp 22:32:50 -!- Davidbrcz [n=david@212-198-83-2.rev.numericable.fr] has quit [Remote closed the connection] 22:33:00 That was a simple example, after all. 22:34:52 -!- rouslan [n=rouslan@pool-70-109-151-129.cncdnh.east.myfairpoint.net] has quit ["Java user signed off"] 22:34:54 antifuchs: on the "no updates" question, the manual at the sbcl website is quite outdated too 22:35:11 there's a gigantic "oops" in there somewhere 22:35:25 I should be able to make time to fix this tomorrow, or the weekend at the latest 22:35:33 carlocci [n=nes@93.37.195.127] has joined #lisp 22:37:12 So this feels like a dumb question but I can't figure it out: Say I have a Lisp program that uses a ton of memory, well more than the amount of physical RAM on the machine. Assuming the normal working set of objects fits in RAM, why can't I just let the OS take care of swapping out the unused bits? 22:37:20 Poor locality? 22:37:53 It seems, in practice, that actually doing that leads to massive thrashing and abysmal performance. 22:38:40 anekos [n=anekos@pl932.nas923.p-osaka.nttpc.ne.jp] has joined #lisp 22:39:11 -!- authentic [n=authenti@unaffiliated/authentic] has quit [Connection reset by peer] 22:39:21 authentic [n=authenti@85-127-38-128.dynamic.xdsl-line.inode.at] has joined #lisp 22:39:31 if your lisp uses a copying gc to handle memory, you'll see it trying to compact even the non-working set bits in thrash space 22:40:54 gigamonkey: you could try using SSD-backed swap space 22:40:59 membership in the working set is sadly not necessarily related to age of objects (like a gengc would use) or general reachability 22:41:12 that is indeed a good idea (: 22:41:19 antifuchs: yeah, that was sort of my theory. 22:41:25 I recommend one connected to pcie directly, no SATA (: 22:41:43 Another way to ask the question is: why do RDMBSs typically implement their own page cache? 22:42:04 -!- balooga [n=00u4440@147.21.16.3] has quit [Read error: 110 (Connection timed out)] 22:42:51 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit [Remote closed the connection] 22:43:00 rme [n=rme@pool-70-104-120-172.chi.dsl-w.verizon.net] has joined #lisp 22:43:05 good question, mostly because it's not always beneficial to use the page cache ((: 22:43:17 You mean the OS page cache? 22:43:22 either (: 22:43:29 (but not both at the same time) 22:43:58 there were a few interesting articles on planet postgresql about specific machine / page cache configurations and performance impacts of each 22:44:39 I believe the one I'm thinking of happened around february 2009-ish 22:44:46 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 22:44:53 antoni [n=user@21.pool85-53-22.dynamic.orange.es] has joined #lisp 22:45:02 it was a machine that was configured to first use no OS page cache at all, then no DBMS page cache 22:45:09 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 22:45:29 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 22:45:52 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 22:45:59 george__ [n=george@189.13.129.181] has joined #lisp 22:47:01 both configurations were fast in different scenarios, as you'd expect (: 22:47:19 gigamonkey: http://www.westnet.com/~gsmith/content/postgresql/InsideBufferCache.pdf has a few slides on the postgresql-specific interactions with the OS cache 22:48:15 answer is that the database can make better LRU decisions than the os, sometimes 22:48:24 and that makes it worthwhile most of the time 22:48:41 -!- alec [n=aberryma@ita4fw1.itasoftware.com] has quit ["Leaving"] 22:49:03 you can make a good decision on cache sizing and usage only after application-specific testing on the machine, anyway (-: 22:49:20 -!- Athas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has quit [Remote closed the connection] 22:50:56 antifuchs: of course, but given the amount of work on the OS, that's pretty theoretical. 22:51:14 antifuchs: yeah, that's sort of what I figured. And similarly, a Lisp program that had the ability to save data to disk could also make better decisions, perhaps, about what objects to put on disk and what to keep in memory. 22:52:09 gigamonkey: in theory... 22:52:38 -!- ejs [n=eugen@92.49.202.39] has quit [Read error: 113 (No route to host)] 22:52:45 pkhuong: right. 22:52:49 gigamonkey: you might be interested with user-level swapping... it's an interesting thing 22:53:02 -!- gruseom [n=daniel@S0106001217057777.cg.shawcable.net] has quit [Remote closed the connection] 22:53:35 gigamonkey: copying for the nursery and something mostly refcount-based (or similarly locality-conscious) might work well with normal swapping policies, though. 22:54:02 Linux swapping also just totally sucks. e.g. freebsd was always dramatically better. I think Linux stopped bothering to fix it because it's hard and ram has become cheaper 22:54:43 memories of Linux taking 30 seconds to swap-in a 20MB program from a disk that did 20MB/s :) 22:56:32 -!- slash_ [n=unknown@p5DD1CFCC.dip.t-dialin.net] has quit [Client Quit] 22:56:37 -!- antoni [n=user@21.pool85-53-22.dynamic.orange.es] has quit [Remote closed the connection] 22:56:48 Seems like if you wanted to just let OS swapping do it's thing on a Lisp program with many non-garbage but rarely used objects, you'd need some thing in the GC to put objects that are used together, together in memory. 22:57:32 antoni [n=user@21.pool85-53-22.dynamic.orange.es] has joined #lisp 22:57:55 -!- ikki [n=ikki@189.139.232.40] has quit [Read error: 113 (No route to host)] 22:58:07 lukego: they also stopped bothering to fix swap-less configurations. 22:58:34 gigamonkey: a copying GC tends to do that very well. 22:58:55 Non-gced memory is another option. 22:59:22 pkhuong: really. It puts live objects together in memory. But I'm assuming that *all* the objects are live--just some of them are not used frequently. 22:59:42 gigamonkey: no, objects that are used together too. 22:59:42 For instance, I may have a deep tree of objects but only the roots are frequently used. 22:59:49 pkhuong: how so? 23:00:08 You tend to follow pointers when navigating object graphs. 23:00:24 Copying gcs tend to copy objects in the order they traverse them. 23:00:28 Right. But my roots point to leaves but the leaves are used much less frequently than the roots. 23:00:48 So I want all the roots put together and then all the leaves put elsewhere. 23:00:57 In practice, mark/copy is known to be a very good heuristic. 23:01:16 gigamonkey: does your whole heap fit in RAM when you page out other programs? how big are we talking? 23:01:28 -!- Jabberwockey [n=jens@port-11068.pppoe.wtnet.de] has quit [Read error: 60 (Operation timed out)] 23:01:30 Maybe, in this case, a breadth first traversal will do what I want. But it seems like the GC would need to keep track of usage rates and times to be able to do this in general. 23:01:31 You might have special usage patterns and know them well enough (and care enough) to devise another heuristic. 23:02:01 lukego: Probably not. 23:02:29 You also have to consider that there are multiple levels to locality (L1, TLB, L2, L3, RAM, etc). 23:02:48 I.e. all the reachable objects don't fit in RAM. But the set of objects that I'm likely to actually need at any moment probably do. 23:02:52 gigamonkey: is this a theoretical question or what is this giant heap of yours? 23:03:15 So it's hard to fully exploit each of them. A copying GC with a nice high-level heuristic will tend to work decently at every level. 23:03:15 lukego: Linux's VM is kinda... weird. It iirc borders between good stuff (allocation mechanisms etc.) and idiotic (the interface to them) 23:03:25 lukego: the Biobike frame system containing reams of frames representing genes, etc. of organisms. 23:04:25 gigamonkey: I feel like the default solution in 2010 should probably be a large amount of RAM coupled with a fast SSD, but maybe I'm a bit of 23:04:44 -!- skeptomai is now known as skeptomai|away 23:04:55 -!- pr [n=pr@unaffiliated/pr] has quit ["Get MacIrssi - http://www.sysctl.co.uk/projects/macirssi/"] 23:05:13 -!- george_ [n=george@20158177205.user.veloxzone.com.br] has quit [Read error: 110 (Connection timed out)] 23:05:14 I'd trade the fast SST for a really huge gob of ram 23:05:31 I wonder if anyone has updated Jim Gray's five-minute rule analysis to account for SSDs. 23:06:07 how much RAM do you fit in a semi-budget machine these days btw? 16GB? 23:06:13 -!- Zephyrus [n=emanuele@unaffiliated/zephyrus] has quit [Client Quit] 23:06:16 gigamonkey: It might useful to look at cache oblivious data structures. I think there's a good Google tech talk about cache oblivious B-trees. 23:06:23 -!- LiamH [n=none@pdp8.nrl.navy.mil] has quit ["Leaving."] 23:06:48 lukego: I think the machine we're running on has 8G 23:07:01 -!- authentic [n=authenti@unaffiliated/authentic] has quit [Remote closed the connection] 23:07:03 ... won't help with GC, but the ideas are useful for optimizing cache usage at all levels. 23:08:18 Guest837`: could be. There are lots of things we could do if we want to get into the business of moving Lisp objects in and out of memory ourselves. 23:08:28 I'm just wondering if it's really the case that we have to. 23:08:40 -!- leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has left #lisp 23:08:53 lukego: but that machine is running multiple instances of the software. 23:09:14 gigamonkey: you're running on linux, right? 23:09:48 JP` [n=user@21.pool85-53-22.dynamic.orange.es] has joined #lisp 23:09:54 -!- antoni [n=user@21.pool85-53-22.dynamic.orange.es] has quit [Remote closed the connection] 23:09:54 -!- JP` [n=user@21.pool85-53-22.dynamic.orange.es] has quit [Remote closed the connection] 23:10:04 is this data mostly static? could you replace a bulging heap with some mmap tomfoolery? 23:10:06 if you have multiple instances, you might be interested in enabling memory compacting 23:10:29 plage [n=user@118.68.196.23] has joined #lisp 23:10:31 gigamonkey: maybe reread http://www.paulgraham.com/carl.html for inspiration (point #4) 23:10:34 and of course launching the app through fork() from preloaded image 23:10:44 A few years back, someone posted an article (probably linked to from reddit) with an implementation of functionality similar to perl's <> operator in lisp. Does that ring any bells with anyone? 23:11:08 Good morning! 23:11:17 plage: morning 23:11:33 malsyned: What does perl's <> operator do? 23:11:58 plage: you should get tommorrow an email with few example packages (most importantly SLIME + some utility scripts plus maybe some missing stuff from libcl) 23:12:26 malsyned: processes something line by line as in while (<>) {... 23:12:34 ^authentic [n=authenti@85-127-21-23.dynamic.xdsl-line.inode.at] has joined #lisp 23:12:45 (iirc) 23:13:08 p_l: yeah, linux. 23:13:17 p_l: Thanks. I am terribly busy right now, so I can't promise very rapid reaction time. 23:13:21 lukego: so the answer is to use a bunch of C++?! 23:13:24 -!- mstevens [n=mstevens@81.2.103.24] has quit [] 23:13:51 (equal plage beach), right? 23:14:37 gigamonkey: I am sure I don't understand your problem well enoguh to offer useful suggestions, I am just firing off every idea that tweaks :) 23:15:07 lukego: understood. Thanks. 23:15:16 gigamonkey: Depending on how often you mutate old instances, something like the prevayler technique may help. As hefner suggested, keep mostly read-only objects compressed and mmapped into your address space, with a change log of those that have been modified since the mmap snapshot was made. 23:15:31 ... another random idea that might help ... 23:16:31 antoszka, plage, <> returns a line of text from one of two sources: 1) the concatenation of the contents of all files specified on the command line, or 2) standard input if no file names were specified 23:16:46 malsyned: right. 23:16:50 gigamonkey: continuing on that unhelpful theme :-) I suppose the first fork in the road is, can you make the data set fit in RAM somehow? 23:17:19 lukego: I'm assuming no. Because whatever we can hold today, tomorrow someone will want to add more organisms. 23:17:19 malsyned: googling up: common lisp diamond operator did not return anything remotely useful. 23:17:26 antoszka, right. 23:17:50 malsyned: i'd be interested in that myself 23:17:52 gigamonkey: is the set of organisms growing exponentially, like RAM size? 23:17:53 I know that the article exists, and I'd rather not duplicate effort if I can avoid it, so I just thought I'd ask if anyone remembered it. 23:17:56 malsyned: I vaguely recall Edi Weitz having something like that to go along with cl-ppcre but I could be totally making that up. 23:17:57 antoszka, if I find it, I'll let you know. 23:18:06 gigamonkey, thanks, I'll check his site. 23:18:39 lukego: Possibly. The faster computers get, the more genes people can analyze, and the more data there is to deal with. 23:19:18 malsyned: thx 23:19:22 Graph the number of sequenced genomes over the past few decades and you'll probably see exponential growth. (Now I'm really making stuff up but I wouldn't be surprised since not that long ago there were basically zero.) 23:20:47 gigamonkey: will you host this application or will it run on lots of machines? 23:21:57 -!- joubert [n=joubert@user-0cev80t.cable.mindspring.com] has quit [] 23:23:04 Not me, but it's hosted. 23:23:05 -!- varjag [n=eugene@103.80-202-117.nextgentel.com] has quit [Remote closed the connection] 23:23:37 gigamonkey: my impression is that web dudes routinely cobble together e.g. 100GB of RAM from a small cluster of memcached boxes. so jsnell leads me to believe at least 23:24:06 JohnnyL [i=excellen@ool-182f0b98.dyn.optonline.net] has joined #lisp 23:24:18 but maybe you need snappier access 23:24:52 I have in the past worked on systems that tried really-really hard to operate on data in the same order it's laid out on disk (i.e. reading chunks off a bdb primary index) and that was a royal pain compared with freewheeling random access 23:25:30 Yeah, there are lots of ways to actually solve this problem. But they all require a lot more work than just having the OS-level swapping take care of it for us. ;-) 23:25:47 So I want to be sure I'm not missing something obvious there. 23:26:07 gigamonkey: I guess you should try to get a test setup that you can measure with 23:26:34 Well, we have one. And it gets good and thrashed. That part's not theoretical. 23:26:55 gigamonkey: we just got a new box that is supposed to hold 144GB RAM ;) 23:27:00 how big is your heap? 23:27:22 hey this experiment ended with a pretty, if not optimal, result :) http://fresh.homeunix.net/~luke/supernova.png 23:27:47 -!- davazp [n=user@95.Red-83-55-182.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 23:27:55 lukego: I forget. It grows to like 4G. But that's just the old system that has a few organisms in it. Now we want to provide access to a database of, I think, 10s of thousands of virus genomes. 23:28:18 blue = transmit, green = ack (no data), purple = retransmit. time is the Y axis. circles are packets sent but never received 23:28:44 Thus my assumption that at some point we have to deal with having more data than will fit in RAM, at least in the way we're currently representing it. 23:29:03 joubert [n=joubert@user-0cev80t.cable.mindspring.com] has joined #lisp 23:29:29 are you paging to disk now? SSD should make a dramatic improvement to start with 23:30:08 (actually I'm speculating, maybe it's not true) 23:31:08 gigamonkey: can you characterise the data access pattern in any useful way? 23:31:40 lukego: there are probably a handful of different ones. 23:32:06 -!- konr [n=user@189.98.62.235] has quit [Remote closed the connection] 23:32:08 I'm not really sure what they are. 23:32:32 Basically it's a giant ball of objects that biologists can use to explore genetic data. 23:33:23 drewc: how much does 144GB RAM cost? :) 23:33:37 konr [n=user@189.98.62.235] has joined #lisp 23:33:40 Sounds like a job for shingles. :) 23:34:22 lukego: to lease, on that server, is about $2k USD/month IIRCPOIUR 23:34:30 sorry, IIRC 23:34:42 (and then ferret jumped on the keyboard) 23:35:19 gigamonkey: on linux, you can compact pages that contain the same data (like chunks of memory containing the same code etc., at least since 2.6.32 23:36:12 dstatyvka [i=ejabberd@pepelaz.jabber.od.ua] has joined #lisp 23:36:17 -!- ruediger [n=the-rued@p508B328F.dip.t-dialin.net] has quit ["This computer has gone to sleep"] 23:37:14 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 23:37:25 -!- fiveop [n=fiveop@g229138016.adsl.alicedsl.de] has quit ["humhum"] 23:37:37 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 23:37:51 -!- Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has quit [Excess Flood] 23:38:02 p_l: I'm not sure what that gets me, in this instance. 23:38:12 Claviceps [i=gambino@c-76-28-211-132.hsd1.wa.comcast.net] has joined #lisp 23:39:01 Ralith [n=ralith@69.90.48.97] has joined #lisp 23:39:09 gigamonkey: basically, if you get multiple pages sharing the same content, they'll get exchanged for one with multiple copy-on-write mappings 23:39:40 I heard it rocked the socks off RedHat's virtualization engineers ;-) 23:40:50 gigamonkey: anecdotally, ten years ago, freebsd's swap was an awful lot better than linux's. 23:41:22 gigamonkey: but if you have anything like random access then it's hard to imagine any disk-based solution being much good 23:41:36 -!- konr [n=user@189.98.62.235] has quit [Read error: 104 (Connection reset by peer)] 23:42:06 lisperati_boy [n=topo@190.232.44.65] has joined #lisp 23:42:10 hi 23:42:35 anecdotally, systems that don't seem to need swap at all performed better with swap, something related to I/O 23:42:42 one question, when i load a .lisp file in my folder appears then the file repeated like this: #aut.lisp# 23:42:48 with # # 23:42:57 any idea why this file appears and what does it means? 23:43:12 with swap, unused memory pages are freed, so that leaves more space for running programs. 23:43:12 I thought those were emacs autosaves? 23:43:13 lisperati_boy: looks like Emacs' lock file 23:43:22 *lock-file/autosave/etc. 23:43:34 oh, so it doesnt mind if i delete them? 23:43:44 vext01 [n=vext01@edd-sparc.kent.ac.uk] has joined #lisp 23:43:48 hey guys 23:44:34 lukego: well, there's random access and there's random access. I don't think at any moment that all objects have the same probability of being accessed. 23:44:37 konr [n=user@189.96.81.42] has joined #lisp 23:44:46 p_l: makes sense. swap becomes somewhere you tenure unused data, to make RAM available for e.g. filesystem caches 23:44:52 syamajala [n=syamajal@c-76-119-52-223.hsd1.ma.comcast.net] has joined #lisp 23:44:52 so no-one is testing this clisp update so im just going to have to learn it 23:45:17 lisperati_boy: they will be deleted after you save your files or exit emacs 23:45:38 its wierd because they dont dissapear 23:45:42 and i have a lot of # files 23:46:49 lukego: I heard also something about block/filesystem cache using swap for buffering as well, something about transforming random access to sequential streaming, but it might be bullshit - I read about this one long ago 23:47:07 p_l: hey that would be cool :) 23:48:08 gigamonkey: I don't suppose there's any Fantastic compressed data structure (trie, hashconsed, ..) for your stuff? 23:49:00 I'd again suggest shingling. 23:49:08 what's shingling? 23:49:46 kenanb [n=kenanb@88.238.46.6] has joined #lisp 23:50:54 hm. in my supernova pic at http://fresh.homeunix.net/~luke/supernova.png it's not actually clear why the ack being acked (green -> green) causes the volley of retransmits (purple) 23:51:08 Well, pretty much decomposition into overlapping n-gram hashes. 23:52:55 http://fresh.homeunix.net/~luke/legend.png is the legend 23:52:59 lukego: that all falls into the category of major reworking of the existing system. 23:53:12 gigamonkey: btw, I'm getting bugged about asking you regarding (paper) translations of PCL 23:53:35 p_l: eh? if you want to do one I can send you the source files. 23:54:10 The basic deal is, you show you're really interested in doing it (by doing some) and then I talk to Apress to make sure that there isn't an actual official translation in the works (highly unlikely). 23:54:35 Actually, I should ask, are you talking about doing a translation that someone would publish or to put on the web? 23:54:42 gigamonkey: well, for non-reworking it does seem like trying it on a machine with 32+GB RAM and an SSD would be a nice sanity check 23:55:27 gigamonkey: I'm personally interested in getting it published, but that depends on getting a publisher. Typesetting, correction etc. could be done by translation team ;-) 23:56:06 gigamonkey: I see that Amazon EC2 offers a 15GB-ram VM by the hour 23:56:13 if it has to be GCed memory, you could put it all in tenured immortal space. 23:56:23 oh wow they go all the way up to 68GB! 23:56:42 lukego: EC2 has the problem of actually getting the data there, so it might be problematic 23:56:54 p_l: you can send/receive hard drives 23:56:58 $0.84 / hour to use a 68GB of RAM. I must keep this in mind for experiments :) 23:57:09 pkhuong: nice 23:57:11 and the ~ 23:57:21 it also appear a file with the ~ at the end 23:57:26 if i have a.lisp 23:57:33 p_l: In that case you should contact rights@apress.com. 23:57:37 lisperati_boy: those are backups 23:57:42 then it appears a~.lisp and #a.lisp# 23:57:58 They may want you to have found a publisher first, I don't know. 23:58:14 gigamonkey: I'll see about publisher, then 23:58:20 (oh I'm reading the wrong price list, "on demand" is about 3x the price, but still hyper cheap for an experiment) 23:58:38 madsy [n=madsy@ti0207a340-0168.bb.online.no] has joined #lisp