00:01:32 *lichtblau* thinks it was misleading to call it an app. It's a webserverish thing. 00:02:27 Skynet. I knew it. 00:05:21 abugosh [~Adium@pool-108-15-19-17.bltmmd.fios.verizon.net] has joined #lisp 00:06:18 they call it something different in german, though. 00:07:32 -!- MorganB [ylDLqh0bgu@lin114-10.cise.ufl.edu] has quit [Remote host closed the connection] 00:08:32 -!- ikki [~ikki@189.247.194.68] has quit [Ping timeout: 276 seconds] 00:10:15 jweiss_ [~jweiss@cpe-069-134-009-048.nc.res.rr.com] has joined #lisp 00:12:36 -!- lnostdal-laptop [~lnostdal@167.80-203-136.nextgentel.com] has quit [Quit: Leaving] 00:12:44 -!- netytan [~netytan@host86-175-234-107.wlms-broadband.com] has quit [Quit: netytan] 00:14:00 ikki [~ikki@189.247.194.68] has joined #lisp 00:15:24 Der Schwarze Himmelstrasse or something 00:16:08 -!- jweiss_ [~jweiss@cpe-069-134-009-048.nc.res.rr.com] has quit [Ping timeout: 272 seconds] 00:17:20 is there any kind of "pause" command in lisp? I just want to be able to go step by step pressing a key 00:17:38 -!- peterhil [~peterhil@a91-153-127-82.elisa-laajakaista.fi] has quit [Quit: Must not waste too much time here...] 00:17:50 TheOm3ga: different lisps offer different levels of support for that kind of thing, which is usually called stepping. I don't know how to use it in my favorite Lisp, SBCL, though. 00:18:11 adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has joined #lisp 00:18:21 *Xach* more often recompiles specific defuns with debug 3 and checks frame values 00:19:51 Xach: which version do you use ? 00:20:09 Xach: do you go with always the latest ? or the last stable ? 00:21:05 homie: when i install a new system, i usually get a binary from www.sbcl.org, use that to bootstrap cvs, and then rarely update unless nikodemus adds a nice new treat i want to try. 00:21:15 like ~ in pathnames! 00:21:28 ah ok 00:22:37 SV_Nik [~ngkhatu@99-89-3-67.lightspeed.sntcca.sbcglobal.net] has joined #lisp 00:23:00 askatasuna [~askatasun@190.176.223.148] has joined #lisp 00:23:27 dto1 [~dto@pool-96-252-62-25.bstnma.fios.verizon.net] has joined #lisp 00:23:31 -!- abugosh [~Adium@pool-108-15-19-17.bltmmd.fios.verizon.net] has quit [Quit: Leaving.] 00:24:08 -!- carlocci [~nes@93.37.216.193] has quit [Quit: eventually IE will rot and die] 00:26:46 peterhil [~peterhil@a91-153-127-82.elisa-laajakaista.fi] has joined #lisp 00:26:55 -!- peterhil [~peterhil@a91-153-127-82.elisa-laajakaista.fi] has quit [Read error: Connection reset by peer] 00:27:31 -!- ikki [~ikki@189.247.194.68] has quit [Ping timeout: 240 seconds] 00:31:45 let (defun g (x) (lambda (y) (+ x y))) 00:32:11 then if i evaluate ((g 7) 3) i get a "illegal function call" 00:32:32 good instinct, wrong language 00:32:46 yeah, i know it's scheme'ish 00:32:46 yates: CL doesn't work like that. 00:32:56 yates: you could (funcall (g 7) 3) 00:33:02 but i'm trying to discern why it doesn't work 00:33:07 Xach: yes, i know that too 00:33:27 i'm just trying to get my mind around the exact reason why ((g 7) 3) doesn't work 00:33:35 ikki [~ikki@189.247.194.68] has joined #lisp 00:33:55 yates: because g is not a defun 00:34:11 syntard: If you don't know, no need to offer random guesses. 00:34:12 well actually g is 00:34:23 yates: yeah, wrong answer 00:34:24 syntard: It's worse than saying nothing. 00:34:27 but (g 7) isn't 00:34:40 Xach: Yeah, that's what I meant 00:34:42 yates: Defun returns the symbol G not the function object #'G. 00:34:43 yates: Do you mean "why are the evaluation rules like that"? 00:34:50 is it that cl expects a symbol in the first element of a list that is to be evaluated? 00:35:08 and (g 7) is not a symbol but a list? 00:35:19 yates: In general, the first thing in a form should name a function. 00:35:27 Why am I having flashbacks from yesterday? 00:35:35 yates: ((lambda ...) ...) is an exception baked into the evaluation rules. 00:36:16 Xach: is it incorrect to say the first thing in a form should be a symbol? 00:36:53 (putting aside the (lambda...) exception for the moment) 00:37:12 I did not know that ((lambda () ..) ...) was an except 00:37:36 hehe, #lisp is always worth watching 00:37:50 -!- ziarkaen [~ziarkaen@stu246.queens.ox.ac.uk] has quit [Ping timeout: 264 seconds] 00:38:05 Guthur: holy crap, it is an exception 00:39:05 Xach: i'm very interested to hear your answer to my most recent question to you 00:39:15 Hexstream [~hexstream@modemcable075.97-200-24.mc.videotron.ca] has joined #lisp 00:39:17 yates: I like to think of it as the first thing in a cons to be evaluated has to be the name of a function. And there are two kinds of names, appropriately bound symbols and LAMBDA expressions. 00:39:32 gigamonkey: yeah, that makes sense 00:39:36 thanks 00:41:11 -!- nyef [~nyef@pool-64-222-179-143.man.east.myfairpoint.net] has quit [Quit: G'night all.] 00:41:37 Unfortunately that's not strictly correct in the terminology of the CLHS in which "function name" is either a symbol or a list of the form (SETF ). 00:43:25 gigamonkey: ccl says Car of ((SETF 'A) 5) is not a function name or lambda-expression. 00:43:41 gigamonkey: but then shouldn't this work: ((setf a (g 7)) 3) 00:43:48 it does not 00:43:58 wow 00:44:38 Eh, I thought the exact same thing and tried it. It doesn't work, you have to go with FUNCALL (or SBCL is wrong but I doubt it!) 00:44:47 -!- krl [~krl@port-87-193-235-133.static.qsc.de] has quit [Ping timeout: 276 seconds] 00:44:57 -!- askatasuna [~askatasun@190.176.223.148] has quit [Quit: WeeChat 0.3.3] 00:45:18 somnium [~user@184.42.17.189] has joined #lisp 00:46:45 -!- ikki [~ikki@189.247.194.68] has quit [Ping timeout: 245 seconds] 00:47:30 yates: some time ago I recommended that you read chapter 3 of the hyperspec 00:47:36 Well, ((setf a (g 7)) 3) couldn't work because (setf a (g 7)) is not a proper function name... But (setf gethash), for instance, would work. This works: (let ((hash (make-hash-table))) (funcall '(setf gethash) 3 'test hash) (gethash 'test hash)) 00:47:38 -!- replete [~pete@cpe-74-64-94-88.hvc.res.rr.com] has quit [Ping timeout: 245 seconds] 00:47:57 jconrad [~jconrad@host109-153-56-157.range109-153.btcentralplus.com] has joined #lisp 00:48:11 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Quit: mrSpec] 00:48:31 clhs 3.1.2.1 00:48:31 http://www.lispworks.com/reference/HyperSpec/Body/03_aba.htm 00:49:12 adeht: ok, thanks - i have been busy reading pcl, so pardon me 00:49:28 yates: that's the problem I mentioned about my terminology not matching exactly with the CLHS glossary. 00:49:43 replete [~pete@cpe-74-64-94-88.hvc.res.rr.com] has joined #lisp 00:49:58 -!- TheOm3ga [~jose@84.122.7.221.dyn.user.ono.com] has quit [Remote host closed the connection] 00:49:59 gigamonkey: np - i'll probably get it if i do as adeht suggested 00:50:00 timack [~tim@hlfx50-2-142177005015.ppp-dynamic.dial.ns.bellaliant.net] has joined #lisp 00:50:10 thanks - it's been instructive anyway 00:50:16 Per the hyperspec "function names" are symbols and (setf symbol) lists. 00:50:29 And the things that can go in the CAR of a CONS are symbols and lambda expressions. 00:50:48 And the things that can go in the CADR of a FUNCTION special form are function names and lambda expressions. 00:51:58 #'(setf gethash) works... 00:52:09 I was really hoping for a few more rounds of bouncing random arrangements of parens and CL package symbols off the channel to see which work, in the hopes that the complete works of William Shakespeare, J.S. Bach, and Edi Weitz might emerge 00:52:13 -!- dto [~dto@pool-96-252-62-25.bstnma.fios.verizon.net] has quit [Ping timeout: 245 seconds] 00:52:16 Hexstream: that's sugar for (function (setf gethash)) 00:52:28 I know that. 00:52:35 ikki [~ikki@189.247.194.68] has joined #lisp 00:52:43 Ohh, nevermind. Misread you :/ 00:53:39 -!- simplechat [~simplecha@unaffiliated/simplechat] has quit [Remote host closed the connection] 00:54:53 In defpackage, how can :use a package except for some subset of exports? 00:55:10 -!- yates [~yates@nc-76-3-105-199.dhcp.embarqhsd.net] has quit [Quit: rcirc on GNU Emacs 23.2.1] 00:55:25 The SETF special case is slightly annoying. Especially since you'll pretty much never actually use it as a function name (I'm half-expecting a veteran saying "I do it all the time!!") except when defining setf functions, but there could be another variant of DEFUN for that or something. 00:55:52 seangrove: I don't think you can do that. 00:56:15 Weird :P 00:56:35 But you can using shadowing imports to resolve conflicts if that's what you're trying to achieve. 00:56:36 seangrove: depends on the implemntation, there are extensions that covered that 00:56:47 minion: conduits? 00:56:48 conduits: Conduits is a Library for manipulating packages. http://www.cliki.net/conduits 00:57:06 anyone familiar with this interface passing concept? 00:57:46 Guthur: http://fare.livejournal.com/155094.html?thread=526550 00:58:00 I find it a little hard to follow 00:58:01 Hexstream: I forgot one case, a function name is something you can use as the CADR of a DEFUN form or in the appropriate place of a FLET or LABELS. 00:58:04 also, #interface-passing-styl 00:58:46 I have some underlying raw data which I want access in a variety of ways, do I just create some interface types that allow me to dispatch to the appropriate access methods 00:59:10 p_l|home: there's an ips channel? 00:59:40 -!- _s1gma [~herpderp@77.107.164.131] has quit [Quit: format t "motherfuckers"] 01:00:08 Guthur: that would be the idea. The nice thing about it is that it decouples dispatch from representation, but also that it lets you combine interfaces at runtime or compile time. 01:00:46 gigamonkey: Locally binding a new SETF function with FLET or LABELS seems like a singularly peculiar thing to want to do o_o 01:01:04 pkhuong_, So these interface types do nothing more that direct the dispatch, correct 01:01:04 Hexstream: it's sometimes useful, especially with symbol macros. 01:01:06 ? 01:01:06 Hexstream: why? 01:01:07 -!- gravicappa [~gravicapp@91.78.228.28] has quit [Ping timeout: 240 seconds] 01:01:17 pkhuong: it can also be useful with ordinary macros 01:01:26 Guthur: right, and contain other interfaces to perform further dispatch. 01:01:26 I don't know, some intuition. I would never have thought about trying it by myself. 01:01:34 syntard: drewc mentioned something 01:01:41 #interface-passing-style iirc 01:02:05 pkhuong_, Oh interface combination, cheers 01:02:18 seangrove: that's normally done with shadow or shadowing-import-from. 01:03:15 Guthur: and, if you do things like Keene tells you and use a constructor function instead of raw make-instance, you get to punt to specialised interfaces. 01:03:33 Xach: I thought so, but I couldn't tell exactly if that was what I was reading or not 01:05:02 pkhuong: why? you can always pass a function that calls make-instance instead 01:05:47 adeht: that would be using a constructor function. 01:05:52 right 01:06:00 -!- ikki [~ikki@189.247.194.68] has quit [Ping timeout: 265 seconds] 01:06:42 so you're asking why one should use a constructor function when they can always use a constructor function? 01:06:43 I sometimes wish there was a way to make "self-deprecating exports", where you export a symbol but if it enters in a conflict with a symbol from another package with the same name, the former always "loses" automatically. It would be kind of the opposite of shadowing imports. 01:07:14 pkhuong_, I assume you were referring to Object-Oriented Programming in Common Lisp by Sonya Keene? 01:07:18 pkhuong: maybe I misunderstood what you said 01:07:41 Guthur: right. 01:07:43 Hexstream: How would you use that? 01:08:13 Potentially useful for utility functions that everyone uses. 01:08:49 I don't see how 01:08:51 Hexstream: potentially useful for creating hard to diagnose bugs 01:09:03 I recently had to mess around to give an option to not export #'compose and other functions in a utility package of mine that I expect to be used with other utility packages that also export #'compose. 01:09:20 You shouldn't do that 01:09:22 Yeah, just a silly idea I'm throwing around. 01:09:44 The user of your package should resolve conflicts 01:09:56 You can't guess what people want to use 01:10:17 That's what happens by default. 01:10:35 ikki [~ikki@189.247.194.68] has joined #lisp 01:10:41 Hexstream: note, that you could always create a different package that exports all but the self deprecating symbols. 01:10:46 *hefner* might prefer conflicts just produce a warning, and save the error for if you actually refer to the conflicting symbol 01:10:46 Not quite the same thing, but similar. 01:11:25 Yeah, that's another idea I considered. I might do that too or instead. 01:11:47 pkhuong_, Would you recommend the book? 01:12:02 how about never using :use for something other than :cl or libraries you control 01:12:06 -!- timack [~tim@hlfx50-2-142177005015.ppp-dynamic.dial.ns.bellaliant.net] has quit [Quit: leaving] 01:12:17 that is a fine, fine policy 01:13:27 sure, for people who sleep on stone slabs, take cold showers, and live on a strict diet of rice and bamboo leaves 01:13:39 Seems like that would imply lots of manual juggling of symbols. With proper emacs integration I guess it should be doable... 01:13:47 also for people who like to sleep at night 01:14:04 that makes even less sense than what I said. 01:14:54 sleep, someone should find something to cure that disease :( 01:15:07 Forget that. Cure aging first. 01:15:13 -!- pavelludiq [~quassel@91.139.196.22] has quit [Read error: Connection reset by peer] 01:15:22 drdo: they have. it isn't legal in most jurisdictions. 01:15:24 .. knowing the bounds of the set of symbols imported 01:15:25 that would suck really hard hefner 01:15:28 *Hexstream 01:15:29 -!- nefo [~nefo@unaffiliated/nefo] has quit [Read error: Operation timed out] 01:15:49 *accessible, not imported 01:15:58 hefner: tell me more 01:16:15 Why? I mean, if you can control it. Of course I wouldn't want to be in a kid's body all my life ;P 01:16:40 Hexstream: Well, the obvious thing is, there would be way too many people 01:16:45 nefo [~nefo@2402:f000:5:8f01::143:81] has joined #lisp 01:16:45 -!- nefo [~nefo@2402:f000:5:8f01::143:81] has quit [Changing host] 01:16:45 nefo [~nefo@unaffiliated/nefo] has joined #lisp 01:17:01 We'd change some policies, probably. 01:17:07 And then degenerate into savagery 01:17:14 As we kill each other for the limited resources 01:17:32 Can't we just learn to be more reasonable? (chuckle) 01:17:55 Or, most likely, only a few select people would get access to this 01:18:02 which also sucks 01:18:25 I see that you're an optimist. 01:18:57 :) 01:19:34 my glass is always half full, and of the wrong beverage 01:19:39 *half empty 01:20:15 -!- jconrad [~jconrad@host109-153-56-157.range109-153.btcentralplus.com] has quit [Quit: jconrad] 01:20:16 It'll be interesting to see how people react to updates that accidentally break packages that :use theirs. 01:20:17 At least it's not full of the wrong beverage. 01:20:29 parenscript is one early culprit 01:20:53 "They're like ants!!" 01:20:55 nikodemus had an interesting idea, based on his alexandria package lock bughunting: lock every package after loading it, and see what breaks. 01:20:55 Xach: Isn't the general convention that only major versions can break that? 01:21:13 drdo: If there's a general convention, I haven't seen it in practice. 01:21:59 -!- Yuuhi [benni@p5483C944.dip.t-dialin.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 01:22:00 drdo: What about packages that don't even have versions? 01:22:02 asdf added and removed symbols and entire packages between minor versions. probably not an exemplary project, though. 01:22:37 Hexstream: Not a good idea, but probably ok for things like split-sequence 01:22:38 -!- nefo [~nefo@unaffiliated/nefo] has quit [Ping timeout: 272 seconds] 01:23:25 kmwallio [~kmwallio@host113-70.brownlie.fit.edu] has joined #lisp 01:23:29 -!- sdsds [~sdsds@dyn-16.sub2.cmts01.cable.TORON10.iasl.com] has quit [Quit: Leaving.] 01:23:37 -!- ikki [~ikki@189.247.194.68] has quit [Ping timeout: 250 seconds] 01:23:55 timack [~tim@hlfx50-2-142177005015.ppp-dynamic.dial.ns.bellaliant.net] has joined #lisp 01:24:13 it was a small room, a dozen persons were sitting in a circle, the air was tense, when one of them started to speak: "I am adeht, and I was a :user ..." 01:24:46 -!- Edward_ [~ed@AAubervilliers-154-1-15-5.w86-212.abo.wanadoo.fr] has quit [] 01:27:08 nefo [~nefo@2402:f000:5:8f01::143:81] has joined #lisp 01:27:08 -!- nefo [~nefo@2402:f000:5:8f01::143:81] has quit [Changing host] 01:27:08 nefo [~nefo@unaffiliated/nefo] has joined #lisp 01:29:35 ikki [~ikki@189.247.194.68] has joined #lisp 01:29:42 :user hefner compared non-:users to ascetics, but adeht pressed: "have you ever tried not :use-ing?" 01:31:09 *hefner* says "never say never" 01:31:57 adeht: I just tried no-using, it works! 01:33:01 k2t01f12d [~k2t0f12d@121.98.185.20] has joined #lisp 01:33:22 -!- HET2 [~diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has quit [Quit: This computer has gone to sleep] 01:33:55 -!- katofiad [~k2t0f12d@121.98.185.20] has quit [Ping timeout: 240 seconds] 01:34:06 -!- khumba [~khumba@S010600259ce46bb1.ok.shawcable.net] has quit [Quit: Oyasumi.] 01:42:44 -!- ikki [~ikki@189.247.194.68] has quit [Ping timeout: 265 seconds] 01:44:25 _nix00 [~Adium@61.172.241.100] has joined #lisp 01:44:33 -!- _nix00 [~Adium@61.172.241.100] has left #lisp 01:44:43 -!- Kerrick [~Kerrick@kerrick.student.iastate.edu] has quit [Ping timeout: 240 seconds] 01:45:19 -!- Guthur [~Guthur@host86-141-209-196.range86-141.btcentralplus.com] has quit [Quit: Leaving] 01:50:09 ikki [~ikki@189.247.194.68] has joined #lisp 01:50:16 kenanb [~kenanb@94.54.235.211] has joined #lisp 01:57:28 -!- nefo [~nefo@unaffiliated/nefo] has quit [Ping timeout: 272 seconds] 02:00:39 Kerrick [~Kerrick@e40-1.nat.iastate.edu] has joined #lisp 02:01:08 -!- ikki [~ikki@189.247.194.68] has quit [Ping timeout: 240 seconds] 02:01:51 -!- Kerrick [~Kerrick@e40-1.nat.iastate.edu] has quit [Max SendQ exceeded] 02:03:04 Kerrick [~Kerrick@e40-1.nat.iastate.edu] has joined #lisp 02:03:36 jweiss_ [~jweiss@cpe-069-134-009-048.nc.res.rr.com] has joined #lisp 02:03:56 -!- gemelen [~shelta@shpd-92-101-136-78.vologda.ru] has quit [Ping timeout: 240 seconds] 02:05:07 -!- Kerrick [~Kerrick@e40-1.nat.iastate.edu] has quit [Excess Flood] 02:05:42 Kerrick [~Kerrick@e40-1.nat.iastate.edu] has joined #lisp 02:07:11 -!- rff [~rff@ip72-207-243-174.br.br.cox.net] has quit [Read error: Connection reset by peer] 02:07:36 ikki [~ikki@189.247.194.68] has joined #lisp 02:12:22 nefo [~nefo@2402:f000:5:8f01::143:81] has joined #lisp 02:12:22 -!- nefo [~nefo@2402:f000:5:8f01::143:81] has quit [Changing host] 02:12:22 nefo [~nefo@unaffiliated/nefo] has joined #lisp 02:13:57 -!- ace4016 [ace4016@adsl-33-40-124.mia.bellsouth.net] has quit [Ping timeout: 240 seconds] 02:15:53 rff [~rff@ip72-207-243-174.br.br.cox.net] has joined #lisp 02:18:32 -!- Adamant [~Adamant@unaffiliated/adamant] has quit [Quit: Adamant] 02:20:08 -!- ikki [~ikki@189.247.194.68] has quit [Ping timeout: 240 seconds] 02:23:09 pers [~user@182.sub-75-202-27.myvzw.com] has joined #lisp 02:23:48 ajmorgan_ [~ajmorgan@96.18.164.16] has joined #lisp 02:23:53 hargettp [~anonymous@pool-71-174-141-119.bstnma.east.verizon.net] has joined #lisp 02:25:35 ikki [~ikki@189.247.194.68] has joined #lisp 02:26:12 -!- ignas [~ignas@ctv-79-132-160-221.vinita.lt] has quit [Read error: Operation timed out] 02:26:41 -!- hargettp [~anonymous@pool-71-174-141-119.bstnma.east.verizon.net] has quit [Client Quit] 02:27:13 cataska [~cataska@210.64.6.233] has joined #lisp 02:31:59 sabalaba [~sabalaba@219.237.160.89] has joined #lisp 02:36:12 zac314159 [~user@c-68-84-149-234.hsd1.nm.comcast.net] has joined #lisp 02:36:47 mrfoobar [~ravi@118-93-189-209.dsl.dyn.ihug.co.nz] has joined #lisp 02:37:40 -!- nefo [~nefo@unaffiliated/nefo] has quit [Ping timeout: 260 seconds] 02:39:59 -!- ikki [~ikki@189.247.194.68] has quit [Ping timeout: 276 seconds] 02:41:30 jeti`` [~user@p54B47544.dip.t-dialin.net] has joined #lisp 02:41:58 -!- jeti`` [~user@p54B47544.dip.t-dialin.net] has quit [Client Quit] 02:42:06 nefo [~nefo@unaffiliated/nefo] has joined #lisp 02:42:55 cmpitg [~cmpitg@113.22.105.166] has joined #lisp 02:43:27 -!- cmpitg [~cmpitg@113.22.105.166] has left #lisp 02:44:17 -!- Guest43858 [~deanz@64.241.87.62] has quit [Ping timeout: 240 seconds] 02:44:36 ikki [~ikki@189.247.194.68] has joined #lisp 02:45:31 -!- SV_Nik [~ngkhatu@99-89-3-67.lightspeed.sntcca.sbcglobal.net] has quit [Ping timeout: 250 seconds] 02:45:50 -!- jeti` [~user@p54B47801.dip.t-dialin.net] has quit [Ping timeout: 276 seconds] 02:47:21 -!- rff [~rff@ip72-207-243-174.br.br.cox.net] has quit [Read error: Connection reset by peer] 02:53:22 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: nighty night] 02:53:33 -!- nefo [~nefo@unaffiliated/nefo] has quit [Read error: Operation timed out] 02:55:50 -!- emma [~em@unaffiliated/emma] has quit [Ping timeout: 264 seconds] 02:57:29 nefo [~nefo@2402:f000:5:8f01::143:81] has joined #lisp 02:57:29 -!- nefo [~nefo@2402:f000:5:8f01::143:81] has quit [Changing host] 02:57:29 nefo [~nefo@unaffiliated/nefo] has joined #lisp 02:57:50 -!- ikki [~ikki@189.247.194.68] has quit [Ping timeout: 255 seconds] 03:11:01 spradnyesh [~pradyus@nat/yahoo/x-vpcobhoitoopafij] has joined #lisp 03:15:31 Ocaso [~chatzilla@203.156.243.14] has joined #lisp 03:19:28 ikki [~ikki@189.247.194.68] has joined #lisp 03:21:14 -!- Hexstream [~hexstream@modemcable075.97-200-24.mc.videotron.ca] has left #lisp 03:25:30 -!- Kerrick [~Kerrick@e40-1.nat.iastate.edu] has quit [Ping timeout: 260 seconds] 03:27:38 -!- jweiss_ [~jweiss@cpe-069-134-009-048.nc.res.rr.com] has quit [Ping timeout: 264 seconds] 03:29:46 -!- ikki [~ikki@189.247.194.68] has quit [Read error: Operation timed out] 03:32:22 -!- timack [~tim@hlfx50-2-142177005015.ppp-dynamic.dial.ns.bellaliant.net] has quit [Read error: Connection reset by peer] 03:33:26 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 03:33:40 -!- nefo [~nefo@unaffiliated/nefo] has quit [Ping timeout: 260 seconds] 03:35:05 ikki [~ikki@189.247.194.68] has joined #lisp 03:38:39 rff [~rff@ip72-207-243-174.br.br.cox.net] has joined #lisp 03:41:12 -!- Ocaso [~chatzilla@203.156.243.14] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6.12/20101026210630]] 03:41:35 Ocaso [~chatzilla@203.156.243.14] has joined #lisp 03:41:39 Kerrick [~Kerrick@kerrick.student.iastate.edu] has joined #lisp 03:43:57 -!- spradnyesh [~pradyus@nat/yahoo/x-vpcobhoitoopafij] has quit [Quit: Leaving.] 03:44:00 -!- _pw_ [~user@125.34.41.58] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 03:44:45 -!- Demosthenes [~demo@206.180.155.43.adsl.hal-pc.org] has quit [Ping timeout: 260 seconds] 03:44:56 spradnyesh [~pradyus@nat/yahoo/x-tpulsypuxloyoclc] has joined #lisp 03:46:11 -!- k2t01f12d [~k2t0f12d@121.98.185.20] has quit [Ping timeout: 250 seconds] 03:50:20 -!- ikki [~ikki@189.247.194.68] has quit [Ping timeout: 265 seconds] 03:50:25 -!- syntard [~chatzilla@fl-74-4-76-189.dhcp.embarqhsd.net] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6.12/20101026210630]] 03:50:43 -!- pizzledizzle [~pizdets@pool-96-250-215-244.nycmny.fios.verizon.net] has quit [] 03:51:11 syntard [~chatzilla@fl-74-4-76-189.dhcp.embarqhsd.net] has joined #lisp 03:51:28 dys``` [~andreas@krlh-5f7274fc.pool.mediaWays.net] has joined #lisp 03:51:29 -!- dys`` [~andreas@krlh-5f722eae.pool.mediaWays.net] has quit [Ping timeout: 276 seconds] 03:52:34 -!- dlowe [~dlowe@c-66-30-112-95.hsd1.ma.comcast.net] has quit [Quit: Leaving.] 03:53:18 -!- gigamonkey [~user@adsl-99-24-218-110.dsl.pltn13.sbcglobal.net] has quit [Remote host closed the connection] 03:54:57 -!- silenius [~silenus@cpe-76-169-35-122.socal.res.rr.com] has quit [Read error: Connection reset by peer] 03:58:48 in clisp, is there a way to see on which line an error occured? e.g. *** - EVAL: undefined function foo... 03:59:00 k2t01f12d [~k2t0f12d@121.98.185.20] has joined #lisp 04:00:33 ajmorgan_: usually you can tell from the backtrace. or if you use slime, sometimes you can use "v" to jump to the place where the error occurred. don't think that's available in clisp in slime, but i'm not sure. 04:01:37 it works nicely in sbcl+slime. 04:01:44 silenius [~silenus@cpe-76-169-35-122.socal.res.rr.com] has joined #lisp 04:05:47 Good morning everyone! 04:06:01 Demosthenes [~demo@206.180.156.18.adsl.hal-pc.org] has joined #lisp 04:06:03 howdy beach. 04:06:58 oh, it's the scary guy 04:06:59 ;-) 04:07:43 'morning 04:07:46 I'll make sure I skip a few mornings for your benefit! 04:08:21 -!- sbadger [~sbadger@c-76-27-21-59.hsd1.ut.comcast.net] has quit [Quit: leaving] 04:08:27 no need 04:08:54 Humans are scary as a species anyway (and yes, humanity scares me) 04:11:59 -!- silenius [~silenus@cpe-76-169-35-122.socal.res.rr.com] has quit [Read error: Connection reset by peer] 04:17:49 -!- az [~az@p5796C7BD.dip.t-dialin.net] has quit [Ping timeout: 250 seconds] 04:18:59 silenius [~silenus@cpe-76-169-35-122.socal.res.rr.com] has joined #lisp 04:23:30 kushal [~kdas@nat/redhat/x-tbwplgbfbafjzaxz] has joined #lisp 04:23:30 -!- kushal [~kdas@nat/redhat/x-tbwplgbfbafjzaxz] has quit [Changing host] 04:23:30 kushal [~kdas@fedora/kushal] has joined #lisp 04:25:32 az [~az@p4FE4FA6F.dip.t-dialin.net] has joined #lisp 04:27:52 good morning all 04:27:55 -!- dto1 [~dto@pool-96-252-62-25.bstnma.fios.verizon.net] has quit [Remote host closed the connection] 04:29:01 Hey kushal 04:29:33 beach, hello 04:29:44 beach, how you manage to get up so early ? 04:29:59 kushal: I just wake up at this time. You? 04:30:40 first time at 7am then slept again at 8am and finally woke up at 9:15am 04:31:24 kusal: As people get older they often need less sleep. 04:33:42 At some point you really need no sleep. 04:33:57 ok , strange 04:34:39 Fare [~Fare@64.119.159.126] has joined #lisp 04:36:17 -!- Kerrick [~Kerrick@kerrick.student.iastate.edu] has quit [Ping timeout: 240 seconds] 04:36:25 -!- kenanb [~kenanb@94.54.235.211] has left #lisp 04:36:27 nefo [~nefo@unaffiliated/nefo] has joined #lisp 04:36:45 in between I understood my idea of creating substring index for the keys of a big dictionary is a *very bad* idea 04:36:46 kushal: not really. Your need to sleep drops, with the age between 30~40 to be the lowest I think, then grows back. Or so I recall from my lessons 04:37:14 s/dictionary/hash table 04:37:42 p_l|home, in that case , another 3 years and I will be in that zone 04:39:59 kushal: What problem are you trying to solve? 04:40:23 Zhivago, I have a big hash table where keys are strings 04:40:57 then I want to find all keys which contain a given sbstring 04:41:03 * substring 04:41:13 -!- sabalaba [~sabalaba@219.237.160.89] has quit [Ping timeout: 250 seconds] 04:41:41 kushal: And you don't have any idea what the substrings you'll be looking for are? 04:41:57 Zhivago, yes, no idea 04:42:02 -!- TraumaPony [~TraumaPon@124-148-41-235.dyn.iinet.net.au] has quit [Read error: Connection reset by peer] 04:42:14 kushal: How many strings of what length do you want to search? 04:43:56 Zhivago, minimum 3 chars , total number of strings(keys) 2241501 (for the first subset of data I am working with) 04:44:50 Zhivago, basically 'select id, name from students where name like "%ush%"' kind of thing 04:45:13 Well, one obvious approach would be to produce an inverse index of overlapping n-grams. 04:45:45 Then you can n-gramify your key and find the subset of names that are potential matches, and then search those more exhaustively. 04:46:00 Or you could keep the offsets, in which case your inverse index can answer the question directly. 04:46:02 n-gramify? 04:46:16 "hello" -> "hel", "ell", "llo", etc. 04:46:28 For 3-grams. 04:47:16 oh, ok 04:47:34 Zhivago, I tried that approach , but my memory consumption went well above 4GB and then I killed the process 04:47:35 *Fare* orders a kilogram 04:47:40 :) 04:47:53 TraumaPony [~TraumaPon@124-148-53-51.dyn.iinet.net.au] has joined #lisp 04:48:40 kushal: Did you try not storing the offsets? 04:49:11 Zhivago, no, I never sorted them, I kept them in another hash table 04:49:49 Did you eliminate poorly discriminating features? 04:50:29 Zhivago, means ? 04:51:02 Let's say that 50% of your names contain "fre". 04:51:24 In that case "fre" provides a low discriminatory power - it's probably not worth indexing. 04:51:57 -!- LiamH [~nobody@pool-72-75-78-43.washdc.east.verizon.net] has quit [Quit: Leaving.] 04:52:39 no , I never did that 04:52:46 but until you start counting, you don't know you shouldn't be indexing 04:52:55 reminds me that paper on GC at the scheme workshop 04:53:03 Another approach is that you could just produce N suffix trees. 04:53:12 Well, you can make a model from a subsample. 04:53:43 Where N is the number of prefix characters removed. 04:53:59 -!- k2t01f12d [~k2t0f12d@121.98.185.20] has quit [Remote host closed the connection] 04:54:25 they were building indexes for which page points to which; but stopping to index after the count gets high, avoiding large useless indexes on frequently pointed-to page. Then justifying that this is precise (enough) arguing that we weren't in Lake Wobegon, where all children are above average 04:55:24 Since these are names, they should have a reasonable distribution. 04:55:48 sabalaba [~sabalaba@66.220.12.133] has joined #lisp 04:57:11 kushal: what searches are you trying to speed up? 04:57:51 substring match. 04:58:10 random substring match. :) 04:58:11 substring match for a set of keys of a hash table 05:00:21 random according to what distribution? 05:00:38 ? 05:01:22 not sure 05:02:57 how big the table? 05:03:13 what latency constraints? 05:03:14 Fare, total keys: 2241501 05:03:38 ok, so it's biggish, but totally fits in RAM even of an average computer. 05:04:21 yes 05:04:38 Fare, I have 10-16GB of RAM atleast 05:04:47 just for the index? 05:05:15 Fare, no, but in the box, so I can use it for other work also 05:06:07 Fare, btw, that is a subset of data , my total current data is around 80694036 05:06:37 but the users will search on a given subset mostly 05:06:38 -!- rff [~rff@ip72-207-243-174.br.br.cox.net] has quit [Read error: Connection reset by peer] 05:06:58 brb 05:07:03 indexing n-grams (and dropping indexes after the count gets too high) is a good one indeed. Storing all prefixes/suffixes in a patricia trie is probably overkill. 05:08:17 -!- lolsuper_ [~super_@unaffiliated/lolsuper-/x-9881387] has quit [Ping timeout: 240 seconds] 05:08:20 (but might be optimal in some sense) 05:08:35 (then search becomes trivial) 05:09:19 *Fare* remembers using using tries like that to build a palindromic pangram for an ITA puzzle. 05:09:44 -!- Ocaso [~chatzilla@203.156.243.14] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6.12/20101026210630]] 05:09:55 _nix00 [~Adium@61.172.241.100] has joined #lisp 05:10:12 -!- _nix00 [~Adium@61.172.241.100] has left #lisp 05:14:32 -!- pers [~user@182.sub-75-202-27.myvzw.com] has left #lisp 05:15:19 back 05:15:35 chp [3d87a5ae@gateway/web/freenode/ip.61.135.165.174] has joined #lisp 05:18:07 -!- sabalaba [~sabalaba@66.220.12.133] has quit [Max SendQ exceeded] 05:19:01 katofiad [~k2t0f12d@121.98.185.20] has joined #lisp 05:23:51 Fare, issue is even if the count is too high, I am supposed to show the result 05:25:24 if the count is very high, the index won't help much as compared to a full table search 05:25:53 If the count is too high, you can use the other features to reduce the search space. 05:25:53 and/or you can first look at WHICH of the n-grams in your search term has the LOWEST count, and follow THAT n-gram. 05:26:16 In the end you need to search strings the hard way -- the n-grams just help you to make that space small. 05:26:17 hopefully, one of the n-grams in your search term is rare enough to be indexed. 05:27:03 in string kushal -- ush is a valid n-gram, correct ? 05:27:08 You can then do an on-the-fly index merge between multiple keys if you like. 05:27:10 as for string search - in case your lisp doesn't do it fast enough, there is boyer-moore and other algorithms that you may use when searching over a large space of keys 05:27:12 Sure. 05:27:23 ok 05:27:26 And so are kus and hal. 05:27:37 Which of those n-grams has the lowest frequency? 05:27:57 should be kus 05:28:00 *Fare* would try the patricia tree of prefix/suffix, just for kicks. 05:28:10 So, kus is where you'd start looking. 05:28:41 -!- katofiad [~k2t0f12d@121.98.185.20] has quit [Ping timeout: 240 seconds] 05:28:43 What's the n-gram with the next lowest frequency? 05:29:33 Zhivago, I have to see, the strings I am going through are actually not simple names 05:29:53 Well, just make something up -- if it is hal, then you could zip down both indexes in parallel. 05:30:02 btw, does this code http://paste.lisp.org/display/116645 look ok ? 05:30:08 Zhivago, ok 05:30:25 If you've sorted the indexes, then you just merge kus and hal, discarding mismatches as you go. 05:30:45 The result is the intersection of kus and hal, which is the set of names containing those n-grams. 05:31:07 ok 05:31:09 You could also zip down ush and usa at the same time, which would give you the set of all possible candidates. 05:31:12 irocai [~chatzilla@203.156.243.14] has joined #lisp 05:31:49 Since you're doing that on the fly, you can just do the substring match as you zip down the indexes, and just reduce it to the actual matches without storing additional data. 05:32:13 patricia trees can give you a very compact representation of it all, with total size proportional to the size of the text. 05:32:15 There are various index encoding strategies that can make this faster, but they're probably more complex than you require. 05:32:53 Fare, any links to read (except wikipedia ) ? 05:33:00 Zhivago, ok 05:33:12 If you're interested, then you might want to read up on some of Alistair Moffat's papers. 05:33:24 Zhivago's strategy is more "general purpose" - it works on about any kind of indexes. 05:33:27 *kushal* goes to search 05:33:29 But your problem space is pretty small ... 05:33:44 yes 05:33:46 Yes. What I'm talking about is suitable for searching the internet, for exampe. 05:33:53 as such, it might be good to implement anyway, if you're going to have many different kinds of indexes. 05:34:18 the patricia tree thing is completely tailored to this particular substring search. 05:34:19 Or you could just get a search engine and use it. 05:34:20 echo-area [~user@114.251.86.0] has joined #lisp 05:34:47 (and only works because your problem fits in RAM) 05:34:51 Rather than patricia tree I'd just use a sparse radix tree with tail compression, ala Bagwell's Array Mapped Trees. 05:35:11 -!- somnium [~user@184.42.17.189] has quit [Remote host closed the connection] 05:35:14 But that depends on your alphabet size. 05:35:27 ok 05:35:50 What actual problem is this supposed to solve, by the way? 05:36:16 compression is fine, when you don't need to search inside the compressed part. If it's going to be indexed anyway, I don't see what that gives you in this case. 05:36:48 -!- borism [~boris@ec2-79-125-58-77.eu-west-1.compute.amazonaws.com] has quit [Read error: Operation timed out] 05:37:09 Zhivago, if I hit the db every time for each search , it takes time, so was looking for ways to make it faster 05:37:23 Tail compression here refers to representing trees with a maximum of one child per node as strings. 05:38:41 -!- deepfire [~deepfire@80.92.100.69] has quit [Ping timeout: 240 seconds] 05:38:44 ramkrsna [~ramkrsna@unaffiliated/ramkrsna] has joined #lisp 05:38:51 Zhivago: yes, but once again, if you're indexing *every* prefix/suffix, this compression doesn't help, because you'll have to index starting from each of the positions in those substrings, anyway 05:39:03 -!- lune [~claire@97.76.48.98] has quit [Ping timeout: 260 seconds] 05:39:17 deepfire [~deepfire@80.92.100.69] has joined #lisp 05:39:38 -!- Xach [~xach@pdpc/supporter/professional/xach] has quit [Ping timeout: 260 seconds] 05:39:38 -!- jpanest [~jpanest@174-143-154-194.static.cloud-ips.com] has quit [Ping timeout: 260 seconds] 05:39:41 -!- mathrick [~mathrick@users177.kollegienet.dk] has quit [Ping timeout: 245 seconds] 05:40:02 Well, when you get to such a tree you can just do a substring search. 05:40:13 katofiad [~k2t0f12d@121.98.185.20] has joined #lisp 05:40:35 Although it might not be a worthwhile optimization for this case. 05:40:48 -!- rrice [~rrice@adsl-69-221-165-176.dsl.akrnoh.ameritech.net] has quit [Ping timeout: 260 seconds] 05:40:54 lune [~claire@97.76.48.98] has joined #lisp 05:41:15 jpanest [~jpanest@174-143-154-194.static.cloud-ips.com] has joined #lisp 05:41:29 Xach [~xach@pdpc/supporter/professional/xach] has joined #lisp 05:41:50 I was thinking of a scheme with two tries, one for prefix, one for suffix, which each node of one linking to a set (itself a trie?) of nodes of the other. 05:42:00 then your index is also your fulltext database. 05:42:19 fully indexed 05:42:58 with hash-consing of the trie nodes, to save space. 05:44:03 looking for a substring becomes trivial. Just walk the trie of either suffix or prefix for the search term, and there you have it. 05:44:16 ok 05:44:55 you walk both the prefix and suffix tries after your term, and intersect the indexes from there. 05:46:09 ok 05:46:47 after so many days I am hearing all these words :) 05:46:57 so many days? 05:46:57 bad effect of working 05:47:46 Fare, the time I came out of the college and started working, almost never heard prefix/trie /index :) 05:47:50 borism [~boris@ec2-79-125-58-77.eu-west-1.compute.amazonaws.com] has joined #lisp 05:48:02 How did you manage to go through college without learning about basic datatypes? 05:48:20 Zhivago, I am telling after got out of college :p 05:48:55 Zhivago, still in Korea? 05:49:05 Fare: As it happens, yes. 05:49:15 -!- kmwallio [~kmwallio@host113-70.brownlie.fit.edu] has quit [Remote host closed the connection] 05:49:56 -!- ajmorgan_ [~ajmorgan@96.18.164.16] has quit [Quit: ajmorgan_] 05:50:31 -!- mek||malloc [~mek@12.230.222.196] has left #lisp 05:51:57 rrice [~rrice@adsl-69-221-165-176.dsl.akrnoh.ameritech.net] has joined #lisp 05:51:57 mathrick [~mathrick@users177.kollegienet.dk] has joined #lisp 05:52:15 -!- rrice [~rrice@adsl-69-221-165-176.dsl.akrnoh.ameritech.net] has quit [Client Quit] 05:55:54 sigjuice [~sigjuice@c-71-198-22-233.hsd1.ca.comcast.net] has joined #lisp 06:01:48 -!- zac314159 [~user@c-68-84-149-234.hsd1.nm.comcast.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 06:10:09 freiksenet [~freiksene@cs181130165.pp.htv.fi] has joined #lisp 06:10:35 -!- katofiad [~k2t0f12d@121.98.185.20] has quit [Ping timeout: 276 seconds] 06:10:44 -!- irocai [~chatzilla@203.156.243.14] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6.12/20101026210630]] 06:11:27 Ocaso [~chatzilla@203.156.243.14] has joined #lisp 06:14:37 stassats [~stassats@wikipedia/stassats] has joined #lisp 06:16:23 -!- mega1 [~quassel@catv4E5CABA2.pool.t-online.hu] has quit [Ping timeout: 245 seconds] 06:16:27 katofiad [~k2t0f12d@121.98.185.20] has joined #lisp 06:16:51 Harag [~Harag@wbs-41-208-211-15.wbs.co.za] has joined #lisp 06:17:06 buncito [~user@202.70.51.148] has joined #lisp 06:20:53 http://paste.lisp.org/+2I06 06:20:57 Demosthenex [~demo@206.180.155.43.adsl.hal-pc.org] has joined #lisp 06:21:22 i go t a Heap exhausted during garbage collection on sbcl over the weekend. 06:21:51 and what do you want to do about it? 06:21:57 -!- buncito [~user@202.70.51.148] has quit [Remote host closed the connection] 06:22:19 this is on a 512meg virtual server ...what can i fine tune to avoid it 06:22:22 ? 06:22:24 if anything 06:22:27 use less memory 06:22:35 -!- Demosthenes [~demo@206.180.156.18.adsl.hal-pc.org] has quit [Ping timeout: 265 seconds] 06:22:51 it is only running hunchentoot, and postmodern 06:23:55 that doesn't mean it uses less memory 06:24:41 the setup only uses half of the memory available 06:24:56 http://paste.lisp.org/+2I06/1 06:24:59 Harag: try to profile your memory usage, look for stale references etc. 06:25:56 p_l|home: stale references to clos objects? 06:26:10 to any objects 06:26:10 Harag: well, any kind of data 06:26:37 if you have left a reference that still fulfills the requirements for "live", you're essentially leaking memory 06:30:25 in theory there should be none of those because the only "global" vars I have are hunchentoot sessions and those time out...unless of course they did not time out...but even then its a couple of bytes per user... 06:30:35 holycow [~new@poco208-2.fredcanhelp.com] has joined #lisp 06:33:35 -!- srolls [~user@c-76-126-221-48.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 06:35:46 rukowen [~thehien@113.161.72.89] has joined #lisp 06:35:59 -!- rukowen [~thehien@113.161.72.89] has left #lisp 06:36:04 -!- Jack-is [jack@gateway/shell/anapnea.net/x-wefqiysanhixxfnp] has quit [Quit: leaving] 06:36:35 -!- fisxoj [~fisxoj@cpe-24-59-205-231.twcny.res.rr.com] has quit [Ping timeout: 276 seconds] 06:43:29 mcsontos [~mcsontos@nat/redhat/x-vpebbklfjdkoluid] has joined #lisp 06:43:30 Davidbrcz [~david@212-198-92-25.rev.numericable.fr] has joined #lisp 06:44:27 -!- Buganini [~buganini@security-hole.info] has quit [Ping timeout: 240 seconds] 06:45:03 zomgbie [~jesus@85-127-211-18.dynamic.xdsl-line.inode.at] has joined #lisp 06:46:04 is there a way that I can force gc to have a look at what happens? 06:50:04 -!- Davidbrcz [~david@212-198-92-25.rev.numericable.fr] has quit [Read error: Operation timed out] 06:50:49 (sb-ext:gc :full t) 06:51:18 thanx 06:51:43 Please learn how to spell "thanks". 06:53:14 -!- Vivitron [ad4c080a@gateway/web/freenode/ip.173.76.8.10] has quit [Quit: Page closed] 06:54:31 What is the idiomatic way of catching all errors? 06:55:00 ehu [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has joined #lisp 06:55:20 clhs ignore-errors 06:55:20 http://www.lispworks.com/reference/HyperSpec/Body/m_ignore.htm 06:57:09 Ah. I foolishly sought without-errors. 06:57:34 -!- Makoryu [~bloodgog@pool-71-174-191-10.bstnma.fios.verizon.net] has quit [Remote host closed the connection] 06:58:46 -!- mrfoobar is now known as chemuduguntar 07:00:08 zac314159 [~user@c-68-84-149-234.hsd1.nm.comcast.net] has joined #lisp 07:06:07 -!- Amadiro [~whoppix@ti0021a380-dhcp0225.bb.online.no] has quit [Quit: A subtle thought that is in error may yet give rise to fruitful inquiry that can establish truths of great value.] 07:06:54 mek||malloc [~mek@12.230.222.196] has joined #lisp 07:06:54 enupten [~neptune@117.254.151.145] has joined #lisp 07:07:37 Is there any way to get a function's definition from slime after compiling it? 07:07:58 I can run (describe 'foo) on it but I'm not sure what other options are available 07:08:07 M-. 07:08:27 Meta and dot? 07:08:45 -!- Fare [~Fare@64.119.159.126] has quit [Quit: Leaving] 07:09:38 daniel___ [~daniel@p5082A27F.dip.t-dialin.net] has joined #lisp 07:12:35 -!- daniel [~daniel@p5B327A07.dip.t-dialin.net] has quit [Ping timeout: 245 seconds] 07:12:41 -!- minion [~minion@common-lisp.net] has quit [Ping timeout: 255 seconds] 07:12:57 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has quit [Quit: adu] 07:13:19 -!- The_Jon_Smith [~The_Jon_S@ip24-250-13-137.ri.ri.cox.net] has quit [Ping timeout: 250 seconds] 07:13:42 which place I should read to see how people actually implement various data structures in lisp ? 07:15:50 flip214 [~marek@2001:858:107:1:baac:6fff:fe6b:9183] has joined #lisp 07:15:50 -!- flip214 [~marek@2001:858:107:1:baac:6fff:fe6b:9183] has quit [Changing host] 07:15:50 flip214 [~marek@unaffiliated/flip214] has joined #lisp 07:17:26 -!- freiksenet [~freiksene@cs181130165.pp.htv.fi] has quit [Quit: WeeChat 0.3.2] 07:18:19 -!- ehu [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has quit [Ping timeout: 240 seconds] 07:20:26 -!- quasisane [~sanep@c-76-24-80-97.hsd1.nh.comcast.net] has quit [Ping timeout: 264 seconds] 07:20:58 -!- daniel___ is now known as daniel 07:21:04 emma [~em@unaffiliated/emma] has joined #lisp 07:21:24 varjag [~eugene@122.62-97-226.bkkb.no] has joined #lisp 07:23:06 mrSpec [~Spec@chello089076137084.chello.pl] has joined #lisp 07:23:06 -!- mrSpec [~Spec@chello089076137084.chello.pl] has quit [Changing host] 07:23:06 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 07:25:57 -!- enupten [~neptune@117.254.151.145] has quit [Ping timeout: 240 seconds] 07:26:25 kushal: Data structures are often not that different in Lisp compared to other languages. 07:27:11 kushal: What data structure do you need? 07:29:15 For slime, is there any way to save a slime session or save compiled functions which are currently in slime's buffer history / memory? I just lost the file I was working on and I have a good deal of the code active in slime. 07:29:22 Any suggestions would be greatly appreciated. 07:30:58 trigen [~MSX@87.209.144.213] has joined #lisp 07:35:40 -!- trigen [~MSX@87.209.144.213] has quit [Ping timeout: 272 seconds] 07:39:36 quasisane [~sanep@c-76-24-80-97.hsd1.nh.comcast.net] has joined #lisp 07:43:22 mvilleneuve [~mvilleneu@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has joined #lisp 07:43:30 good morning 07:43:37 Hello mvilleneuve 07:43:55 Beetny [~Beetny@ppp118-208-8-91.lns20.bne1.internode.on.net] has joined #lisp 07:44:32 Any suggestions how I might save the code emacs slime has compiled (sbcl)? 07:45:21 I read that sbcl has a core-image dump which may be useful (http://www.sbcl.org/manual/Saving-a-Core-Image.html) but I'm not sure how it would be used, or if it's even the right option 07:45:34 longshot [~longshot@216.131.74.24] has joined #lisp 07:46:01 mvilleneuve: How is the loop code coming? 07:46:03 mek||malloc: if you called C-c C-k while in a file buffer, it would compile it to fasl. If you want to dump the entire image, you use save-lisp-and-die 07:47:04 p_l|home: Perhaps I shall try the latter. The file containing my source has disappeared so I was hoping to at least recover the code I have compiled through slime. 07:47:53 beach: I didn't look at it this week-end, I'll have to get back into it (especially the parsing error I was having on friday) 07:47:54 -!- holycow [~new@poco208-2.fredcanhelp.com] has quit [Remote host closed the connection] 07:48:31 gaww\w [~gavv@178.236.241.138] has joined #lisp 07:48:53 nikodemus [~nikodemus@cs181199216.pp.htv.fi] has joined #lisp 07:50:26 simplechat [~simplecha@123-243-79-139.static.tpgi.com.au] has joined #lisp 07:50:26 -!- simplechat [~simplecha@123-243-79-139.static.tpgi.com.au] has quit [Changing host] 07:50:26 simplechat [~simplecha@unaffiliated/simplechat] has joined #lisp 07:51:59 -!- simplechat [~simplecha@unaffiliated/simplechat] has quit [Remote host closed the connection] 07:53:07 trigen [~MSX@87.209.144.213] has joined #lisp 07:54:47 trigen- [~MSX@81.18.253.210] has joined #lisp 07:57:48 -!- trigen [~MSX@87.209.144.213] has quit [Ping timeout: 265 seconds] 07:57:49 mvilleneuve: It looks like the cons-high module is going to be ready to go pretty soon now. 07:58:40 beaumonta [~abeaumont@85.48.202.13] has joined #lisp 08:00:07 Does it support computed conses? 08:00:28 I don't know. What is a computed cons? 08:00:59 A pair where the car and cdr are computed from a hidden state. 08:01:16 lnostdal-laptop [~lnostdal@77.19.129.20.tmi.telenormobil.no] has joined #lisp 08:01:30 I still don't know. What is a hidden state? 08:01:43 Hey guys, any thoughts on http://trapm.com/vana-templating-an-utterly-sensible-templatin ? 08:01:43 It's a state that other things can't see ... thus hidden. 08:02:05 I'd like to perhaps open up what I've been doing over the past few days in #lisp 08:02:20 Consider the list of all integers from zero upward. 08:02:29 Zhivago: It doesn't sound like the cons-high module supports that. 08:02:43 The hidden state of the first cons block would probably be zero, allowing the car and cdr to be computed. 08:02:55 Well, that's a pity. 08:03:14 beach, schmrkc , nothing special , just want to read how people actually implement them (how to code in a good way) 08:03:59 c|mell [~cmell@gprs1.mtnonline.rw] has joined #lisp 08:05:07 say for a node of a tree should I just a structure and use simple variables to store data inside , or what if I use a hash table as a node etc etc 08:05:49 kushal: Ideally you should abstract those details away via a protocol, and then it doesn't matter. 08:06:08 kushal: Use defclass to define things like nodes etc. Whether you use a hash table or not for the data depends on what kind of data it is, and the amount. 08:06:11 Zhivago, from the memory point of view ? 08:06:11 bsod1 [~osa1@88.244.10.198] has joined #lisp 08:06:16 pavelludiq [~quassel@91.139.196.22] has joined #lisp 08:07:05 is there a special syntax for getting a member in a list or do you always use cadr caddddddddddddr etc. ? I just started to learn common lisp.. 08:07:35 Well, if you're just thinking in terms of operations like (traverse tree label) then it doesn't matter. 08:07:41 bsod: See nth, elt. 08:07:59 bsod1: You can use (position x '(x a b)) or test membership (member x '(x a b)) 08:08:07 beach, ok, what I was asking about reference (pointers in c) to the next node 08:08:08 ? 08:08:30 Athas [~athas@82.211.209.226] has joined #lisp 08:08:30 kushal: Stop thinking about them -- start thinking about the operation you want to do. 08:08:32 seangrove: have you seen yaclml? 08:08:42 Zhivago, ok 08:08:51 Is there a way to save a compiled function to a file through emacs slime? I'm very nervous to save-lisp-and-die. I'd like to save anything from this session that I can... I no longer have the source file, just the functions in slime's history. :o( 08:09:03 mek||malloc: thanks, are there any loops like for or while? 08:09:26 bsod1: Check out the loops for blackbelts in PCL 08:09:54 bsod1: The loop macro affords a lot of flexibility including ... do always, while, until, when, etc. 08:10:06 -!- beaumonta is now known as abeaumont_ 08:10:10 -!- gaww\w [~gavv@178.236.241.138] has quit [Ping timeout: 265 seconds] 08:10:21 freiksenet [~freiksene@hy-ovpn2-125.vpn.helsinki.fi] has joined #lisp 08:10:22 mek||malloc: PCL? 08:10:39 bsod1: For your other question, I'd listen to Zhivago with respect to getting the nth element 08:10:40 jdz [~jdz@193.206.22.97] has joined #lisp 08:10:51 ,pcl 08:10:51 bsod1: Practical Common Lisp (available online free of charge) 08:11:01 !pcl 08:11:08 Hm, failure :( 08:11:13 minion: pcl-book 08:11:23 *nikodemus* kicks minion 08:11:37 I'm sure a bot in here could tell you about it, if we knew how. :) 08:11:56 minion knows about it but doesn't seem to be around 08:12:05 :o( Any feedback on the slime question? 08:12:06 ok I know that book 08:12:10 :) 08:12:10 http://gigamonkeys.com/book/ 08:13:23 mek||malloc: what slime question? 08:14:28 you lost your source code, but you have it compiled? 08:14:38 stassats: I have lost my source file and I have 500+ lines of CL compiled through emacs slime (sbcl) and I'm looking for some way to at least save the compiled functions to a file. I am petrified to try a core-save / dump 08:14:54 stassats: Precisely. 08:15:21 why are you afraid to do core-save? 08:15:42 zvrba: Because if I can't recover the session, I've lost all ability to save any portion of my work. 08:15:54 ? 08:16:00 is core-save buggy? 08:16:24 mek||malloc: if you've lost the source you've essentially already lost the work 08:16:28 mek||malloc: try this (getf (sb-introspect:definition-source-plist (sb-introspect:find-definition-source #'YOUR-FUNCTION)) :emacs-string) 08:16:33 nikodemus: I'm aware. 08:16:59 stassats: oh, good point! 08:17:23 mek||malloc: did it work? 08:17:28 Checking 08:17:39 but in only works for C-c C-c compiled code, IIRC 08:17:43 It did 08:18:09 p_l|home: No, I don't think so 08:18:16 stassats: Thank you. So. Much. 08:18:54 Checking it out now 08:19:36 Just cl-who 08:20:24 I'd like to move towards something like haml, but still pure lisp with as few macros as possible 08:20:48 Looks like yaclml is very xhtml-centric, and not very html5 friendly 08:20:48 krl [~krl@port-87-193-235-133.static.qsc.de] has joined #lisp 08:21:08 seangrove: macros are quite a pure lisp 08:21:11 and i've lost source code more than once, and was able to recover it by grepping the harddisk for a piece of code 08:21:15 churib [~tg@dslb-088-071-150-055.pools.arcor-ip.net] has joined #lisp 08:21:27 stassats: Tried that, and using lsof, etc. 08:21:39 jdz: True, true 08:22:12 I'd still prefer to keep the macros to a minimum 08:22:26 seangrove: yaclml simply doesn't have tag definitions for HTML5 yet 08:22:47 jdz: but macros can make a mess of the code much quicker 08:22:58 kushal: The semantics of Lisp is such that everything looks like a reference (pointer). So when you store a child node in some node, it is automatically a pointer. 08:23:06 and yes, it's kinda xml-centric, however, it's still compatible with HTML5 (under HTML5/XHTML compatibility outlined in some companion material from WHATWG) 08:23:13 p_l|home: I'm sure that would be easy enough, but the xml approach is not my style 08:23:17 -!- nikodemus [~nikodemus@cs181199216.pp.htv.fi] has quit [Quit: This computer has gone to sleep] 08:23:22 stassats: Is there a way to get a list of all functions which have been compiled in slime? 08:23:54 -!- zomgbie [~jesus@85-127-211-18.dynamic.xdsl-line.inode.at] has quit [Ping timeout: 265 seconds] 08:23:59 I balk at anything that requires designers to type *more* than plain html 08:24:00 e.g.