00:00:05 -!- nybbles [n=nybbles@CPE000ae6ad1ea9-CM00169240d79c.cpe.net.cable.rogers.com] has quit [] 00:01:30 -!- marioxcc is now known as marioxcc-AFK 00:06:21 -!- quidnunc [n=user@bas16-montreal02-1242357571.dsl.bell.ca] has quit [Read error: 60 (Operation timed out)] 00:06:41 -!- YuleAthas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has quit [Remote closed the connection] 00:08:36 -!- LiamH [n=nobody@pool-141-156-235-135.res.east.verizon.net] has quit [Read error: 111 (Connection refused)] 00:11:32 -!- marioxcc-AFK is now known as marioxcc 00:15:28 plage [n=user@123.19.66.10] has joined #lisp 00:15:31 sellout: ping 00:15:37 Good morning! 00:17:40 cods_ [n=cods@tuxee.net] has joined #lisp 00:20:24 -!- ziga` [n=user@BSN-61-41-229.dial-up.dsl.siol.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 00:21:22 plage: mornin! 00:22:47 -!- cods [n=cods@rsbac/developer/cods] has quit [Read error: 111 (Connection refused)] 00:24:37 spradnyesh [n=pradyus@122.167.98.23] has joined #lisp 00:24:48 -!- dnolen [n=dnolen@ppp-70-249-155-206.dsl.rcsntx.swbell.net] has quit [] 00:25:24 hi plage 00:26:14 cmsimon [n=cms@unaffiliated/cmsimon] has joined #lisp 00:26:40 -!- grouzen [n=grouzen@91.214.124.2] has quit [Read error: 60 (Operation timed out)] 00:29:58 -!- milanj [n=milan@93.86.188.99] has quit [Read error: 113 (No route to host)] 00:35:37 -!- rvirding [n=chatzill@h69n5c1o1034.bredband.skanova.com] has left #lisp 00:38:09 -!- mrSpec [n=Spec@unaffiliated/mrspec] has quit [] 00:39:23 hi i have a new question 00:39:33 if accessing the nth element of an array takes O(1) time 00:39:40 and accessing the nth element of a list takes O(n) time 00:40:10 making nth inside of dotimes to iterate over an array would be faster than iterate over a list 00:40:14 a im right? 00:41:44 iterating would be O(n) in both cases 00:42:15 stassats: is there any extra overhead at all from having to look at the car of the cdr vs the next array slot? 00:42:24 why? accessing the nth element of an array doesnt take O(1) time? 00:42:42 topo: wen iterating over a list, you just look at the cdr of the current cons cell. 00:42:49 you don't go back to the beginning each tim. 00:43:09 so it would be ineficient in lists and arrays , i know that 00:43:39 i just was asking if it would be much worse using nth in a list than an array 00:43:48 sykopomp: well, it's a constant factor 00:44:07 topo: not if you're iterating over elements. 00:44:46 topo: making nth inside of dotimes to iterate over an array <- you can not use NTH with an array. 00:45:06 you can use elt with a vector, though 00:45:11 oh 00:45:15 aref? 00:45:43 aref too, for arrays in general 00:46:05 -!- mishoo [n=mishoo@79.112.110.205] has quit [Read error: 110 (Connection timed out)] 00:46:24 topo: elt works on sequences. Aref is for arrays, svref is for simple vectors, nth is for lists 00:46:38 topo: I am not quite understanding what it is you are trying to do with "making nth of dotimes to iterate over an array". Could you maybe help me understand what it is you are trying to do? 00:46:42 is there any benefit in using vectors instead of arrays or lists? 00:46:47 char is for strings, bit is for bit vectors, and sbit for simple bit vectors 00:46:56 oh, and schar! 00:47:01 vectors are one-dimensional arrays 00:47:27 "making nth inside dotimes to iterate over an array" 00:47:42 i should say a list 00:47:50 topo: I still don't understand ): 00:47:51 "making nth inside dotimes to iterate over a list" 00:48:07 "making nth inside dotimes to iterate over a list" is stupid 00:48:20 clhs dolist 00:48:20 http://www.lispworks.com/reference/HyperSpec/Body/m_dolist.htm 00:49:00 can i use dolist to iterate a number? 00:49:26 iterate a number? what's that? 00:49:36 topo: What is it you are wanting to do? 00:49:57 i'm inferring that you want LOOP 00:50:23 i want to make something like this but without dotimes 00:50:31 i want to use dolist 00:50:31 (dotimes (i 4 ) 00:50:31 (translate i 0 0 ) 00:50:32 (cube 4) 00:50:32 ) 00:50:37 is it possible? 00:51:15 (loop for i to 4 do ...) 00:51:35 and which is faster? 00:51:43 using do times o loop? 00:51:46 why do you care? 00:51:48 sure. (loop for i to 3 doing (translate i 0 0) (cube 4)) 00:52:09 i care because i want to make as more as i can 00:52:14 topo: I'm convinced they'll be about just exactly the same speed. 00:52:16 im interested in complexity 00:52:32 ok thanks 00:52:33 it has the same complexity, obviously 00:52:34 I'm betting both of these turn into nicely efficient jne loops. 00:53:16 the thing is that i made a 3d cellular automata before 00:53:27 but i used nth inside dotimes and that is stupid 00:53:40 so i want to remake the software in a efficient way 00:54:05 topo: I'm not at all familiar with 3d cellular automata. But NTH is generally not so very fast. So maybe rewrite it all using arrays + AREF or some such. 00:55:00 For this there example you just had I'd definitely go with DOTIMES though. It strikes me as much clearer to what is actually happening :) 00:55:36 are you telling me that is good to use dotimes? 00:55:54 what makes you think it isn't? 00:56:40 topo: I'm telling you that it is not bad to use it. And for this example, atleast to me, DOTIMES seems to better explain what is going on. "do this 4 times" instead of "lets see what this loop is doing. ooh ok! I see" 00:58:30 dnolen [n=dnolen@ppp-70-249-155-206.dsl.rcsntx.swbell.net] has joined #lisp 00:58:46 wanna see the code? 00:58:58 not really 00:59:30 ok 00:59:42 maybe somebody find it interesting 00:59:43 http://paste.lisp.org/display/92610 01:00:21 *stassats* finds it scary 01:01:09 clhs incf 01:01:09 http://www.lispworks.com/reference/HyperSpec/Body/m_incf_.htm 01:01:19 topo, see that link. 01:01:26 hahaha 01:01:28 scary? 01:01:41 topo: What you want to do is not have lonely )'s on a line. 01:01:42 also, don't put closing parens on their own line. 01:01:56 instead like (gl:pop-matrix)))) 01:01:59 oh yes i know i made that code a lot before 01:02:04 yes sorry 01:02:06 ill fix it 01:02:07 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [] 01:02:25 and... don't write stuff like (nth (+ i ii )(nth (+ j jj )(nth (+ k kk ) l))) ever 01:02:39 why not? 01:03:03 topo: So with a bit of replacing the NTHs with AREFs maybe (: as you stated earlier array speed lookup is faster than list (: 01:03:08 it's inefficient and it scares stassats 01:03:23 For some reason it makes me think of scheme. 01:03:26 *Adlai* is scared too 01:03:37 yes 01:03:37 it's indecipherable, use proper data abstractions instead 01:03:56 aref are exactly the same as nth? only that it works for arrays? 01:03:57 and code abstractions 01:04:11 how about you just -never- use NTH again 01:04:17 -!- kpreid [n=kpreid@pool-173-63-104-207.nwrknj.fios.verizon.net] has quit [] 01:04:19 quek [n=read_eva@117.102.187.225.static.zoot.jp] has joined #lisp 01:04:29 topo: pretty much. but 01:04:32 clhs aref 01:04:32 http://www.lispworks.com/reference/HyperSpec/Body/f_aref.htm 01:04:36 nth itself doesn't do anything, it just either CDRs down a list n times, or calls aref. 01:04:39 never is a good idea to use nth? 01:04:41 -!- alec [n=alec@adsl-179-22-176.bna.bellsouth.net] has quit [Read error: 104 (Connection reset by peer)] 01:04:45 never 01:04:55 -!- timor [n=martin@port-87-234-97-138.dynamic.qsc.de] has quit [Remote closed the connection] 01:04:59 ummm 01:05:04 umm. never. 01:05:13 for once, rahul and I agree. 01:05:15 why does it exist? 01:05:17 :D 01:05:22 topo: to trap newbies like you 01:05:33 topo: Unless you work with lists I guess. But this strikes me as "3d code". I certainly knows just about bananas when it comes to 3d code, but certainly arrays is the thing to go with. 01:05:36 im not noobie, im self made 01:05:46 *schme* is a self made noobie. 01:05:53 no, you haven't made yourself yet 01:05:54 :D 01:05:55 topo, you're not self made, give your mother some credit. 01:05:57 topo: You do make me wish we had some sort of quote bot :) 01:06:30 topo: once you understand when you should use nth, then you will be partly made. 01:06:30 last question 01:06:37 right now you are totally unmade. 01:06:38 stassats` [n=stassats@wikipedia/stassats] has joined #lisp 01:06:49 using aref inside dotimes to iterate over an array is a good idea? 01:07:03 I think I might have used nth twice in all my 10 years of writing lisp 01:07:07 topo: It's a good way to access an array. 01:07:10 it's better than this nested nth. 01:07:23 topo: aref is a constant time operation 01:07:26 ok im going to fix my code with that 01:07:33 1*n = n 01:07:33 Adlai: nth doesn't call aref 01:07:34 thanks ill let you know if it worked 01:07:39 n*n = n^2 01:07:50 topo: seriously. Just take this code. replace all the NTH's with AREF's. you will get crazy speed increase. 01:07:52 stassats`, no? 01:07:54 elt is the one that does nth or aref depending 01:08:02 oh oops. my bad. 01:08:08 ITYM ELT 01:08:11 topo: then for EXTRA speed increase, you must fix the single )s on the empty lines. 01:08:13 yeah, I did. 01:08:18 scheme, but i have list in my code , and i need to replace the lists with arrays to make aref work, isnt it? 01:08:18 schme: heh 01:08:30 topo: That is correct. 01:08:32 topo: yes. the problem is the fact that you're using lists for random access 01:08:33 topo, that's right. You shouldn't use lists to represent any-dimensional matrices. 01:08:44 topo: use the right data structure for your needs 01:08:54 ok thanks im gonna try and let you know 01:09:18 There is no TRY! only DO! 01:09:37 -!- cmsimon [n=cms@unaffiliated/cmsimon] has quit ["brb."] 01:09:53 ... and there's PROG too 01:10:03 prog? 01:10:16 *schme* mutters. try.. like this is some java or something. 01:10:48 "There is no try. There is only handler-bind!" 01:11:04 heh 01:11:05 hehehehe 01:11:07 don't show him prog 01:11:12 he might use it 01:11:24 *rahul* considers making the modern prog 01:11:33 What's the modern prog? 01:11:42 handler-bind + loop + restart-case + retry macro 01:11:43 prog is better suited for writing in fortran in lisp 01:12:15 retry being its own loop+restart-case 01:12:39 Adlai uses prog a lot >:( 01:13:18 sykopomp is just jealous because he can't read DO loops yet 01:13:42 Adlai also likes using DO >:( 01:13:45 -!- quek [n=read_eva@117.102.187.225.static.zoot.jp] has left #lisp 01:13:47 heh 01:13:55 quek [n=read_eva@117.102.187.225.static.zoot.jp] has joined #lisp 01:14:01 but I like PROGV :) 01:14:05 sykopomp can't read DO* loops either 01:14:24 Adlai: sorry that my code is always so readable :P 01:14:30 do is just loop for ... = ... then ... and ... = ... then ... until ... do ...) 01:14:49 Just avoid DO, DO* and LOOP, and ITERATE like normal people. 01:14:57 or maybe it's while? 01:15:15 until 01:15:17 rahul: until 01:15:21 until ... return ... 01:15:23 Adlai: bastard 01:15:37 not return. finally, I think 01:15:43 stassats`: finally (return ...) 01:15:50 yeah 01:15:50 almost. 01:15:56 finally (return (progn ...))) 01:16:00 fffu- 01:16:17 I guess this is what they call iterative development? :P 01:16:21 *sykopomp* ducks. 01:16:27 implicit progn should be familiar to anyone who can use defun or let or lambda :) 01:16:34 s/until/when/ 01:17:23 or let over lambda, or lambda over let over lambda, or ... 01:17:33 or lawl 01:17:54 Adlai: are we mixing factor into this now, too? 01:18:15 hmm? let over lambda is not factor, it's "hardcore" CL 01:18:40 more like lawlcore 01:18:50 more like core 01:18:50 http://letoverlambda.com/ 01:19:04 Adlai: yes, that's lawlcore 01:19:12 like gavino 01:19:21 or Xah Lee 01:19:25 my favorite gavino quote: 01:19:31 Who is this gavino anyway? And why is he banned everywhere? 01:19:43 schme: a troll 01:19:48 hmm ok. 01:19:55 " i'm ok, learning about lambda now.." 01:19:56 *sykopomp* is out. 01:20:04 sykopomp: merry xmas out! 01:20:16 schme: Xofmas! 01:20:42 -!- coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has quit ["May the Coyoes cook you some hot chili some day!"] 01:20:49 merry christmas all! 01:20:57 coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has joined #lisp 01:21:29 madnificent: merry xmas. 01:21:49 thanks schme 01:22:19 -!- stassats [n=stassats@wikipedia/stassats] has quit [Read error: 110 (Connection timed out)] 01:24:31 when you compile a function call with the wrong amount of arguments, you get a warning. Is there some way to hook into that warning system to shout out your own warnings? 01:24:45 clhs warn 01:24:45 http://www.lispworks.com/reference/HyperSpec/Body/f_warn.htm 01:25:04 yes, I know warn, but when I'd do it that way, it won't highlight it in slime etc, will it? 01:25:41 and warn doesn't tell me how you can suppress them (as you can do with (declare (ignore foobar-arg)) 01:26:17 -!- piso [n=peter@98.176.79.151] has quit [Read error: 110 (Connection timed out)] 01:26:21 slime hooks up warnings signaled at compile time 01:26:39 (declare (ignore ..)) doesn't suppress warnings, it tells the compiler not to signal them in the first place; warnings are suppressed by binding a handler that calls MUFFLE-WARNING 01:26:43 stassats`: so it will automatically highlight the right section? 01:26:51 if you warn at compile-time 01:27:24 madnificent: how right the right is depends on the implementation 01:27:26 cool, thanks :) 01:27:37 Scary code indeed. 01:27:58 next question: "how to signal warnings at compile time?" 01:28:15 stassats`: I can do that 01:28:29 topo: You seem to put blank lines in there totally arbitrarily. Blank lines could be useful, but just the way you use them in writing, i.e., to go from one topic to the other, and then only a single blank line. 01:28:47 -!- spradnyesh [n=pradyus@122.167.98.23] has left #lisp 01:28:53 billstclair [n=billstcl@unaffiliated/billstclair] has joined #lisp 01:28:58 plage: shouldn't you be sleeping by now? 01:29:10 you normally wake up again in 4 hours or so, am I wrong? 01:29:23 "good morning vietnam!" 01:29:47 ah 01:30:15 that means that #lisp will not indicate the normal time of the day anymore 01:30:16 plage: yeah, go to bed with ya. Also merry xmas :) 01:30:19 goodnight #lisp :) 01:30:20 madnificent: Yeah, different timezone. 01:30:31 -!- Odin- [n=sbkhh@adsl-2-92.du.snerpa.is] has quit [] 01:30:35 madnificent: Good night! 01:30:37 plage: enjoy! 01:30:42 thanks 01:30:42 madnificent: night. 01:31:20 that code is old 01:31:39 topo: I didn't see any new versions like you promised. Did I just miss it? 01:32:12 topo: You haven't been programming very long have you? 01:32:27 -!- jordyd [n=jordyd@99-177-65-75.lightspeed.wepbfl.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 01:33:42 schme: Yeah, merry christmas to you too. We had a huge dinner last night. 01:34:13 yes 01:34:20 but im self made 01:34:45 plage: Excellent. That was our plans too. Had food cooked, and all packed up to bring to the "bring your own dish" xmas gathering. Then we had some minor interruptions so oh well. no xmas dinner :) 01:34:45 wait im still doing it 01:34:53 out of clay? 01:34:55 kpreid [n=kpreid@72-255-8-14.client.stsn.net] has joined #lisp 01:34:59 *schme* now has a lot of food to eat. yum 01:35:10 topo: You would do well then to listen to advice you get here wrt things like naming identifiers, etc, and that is independent of the programming language. 01:35:36 whats naming identifiers? 01:36:02 topo: xx ii jj etc. might not be a good idea. 01:36:22 whats wrong with that? 01:36:25 how it should be? 01:37:06 topo: No one knows what the heck it means. 01:37:10 topo: There might not be anything wrong with it, but usually, you would the reader of your code to be able to deduce some purpose of the identifier. 01:37:17 xx is the 4th dotimes 01:37:38 when i have nested dotimes 01:37:48 i understand myself 01:37:55 Cools. 01:38:12 topo: Then you are a lucky person. half of the time I don't understand myself. 01:38:37 if you want to be self-made then you shouldn't ask questions on irc 01:38:50 topo: Now question is. When you come back to this code in 3 years. and you see the variable XX. Will you be able to know what it is right away? 01:39:07 topo: Well, there is a contradiction there, because you submitted the code for us to read, yet you don't care whether we understand it. 01:39:16 ummm 01:39:49 yes, sorry, im going to make it in a away everybody understands 01:39:50 :P 01:41:17 i is my first iteration 01:41:18 (dotimes (i (- *n* 2)) 01:41:24 stop 01:41:29 j second iteration 01:41:32 stop 01:41:45 k third iteration 01:41:45 ok 01:41:47 -!- Yuuhi [i=benni@p5483D8DE.dip.t-dialin.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 01:42:00 whoppix [n=whoppix@ti0021a380-dhcp0681.bb.online.no] has joined #lisp 01:42:09 woah 01:42:12 what does it do? 01:42:27 it scares everyone 01:42:47 topo: Like this. We can all decode your code if we really want to. But it hurts ones eyes, and also ones brain. Too much thinking needed. Because your variables are named confusingly. It is not clear from just reading what the purpose of 'em are. 01:43:07 idk i kinda like it 01:43:11 topo: and this is all ok if it is code for you. But if you post code and want help.. you need to make it easy to decipher and understand. without people hurting. 01:43:23 JonSmith: You speak like a C programmer :P 01:44:05 schme: the paste looks very much like a C or Fortran program 01:44:13 so you've got a couple of nested 3D arrays 01:44:16 stassats`: indeed :) 01:44:23 -!- Ralith [n=ralith@216.162.199.202] has quit [Read error: 104 (Connection reset by peer)] 01:44:25 im trying to adapt the creationg of the 3d list to a 3d array 01:44:30 Ralith [n=ralith@216.162.199.202] has joined #lisp 01:44:39 yeah 01:44:41 look this is my list 01:44:44 (setf l (loop repeat *n* collecting (loop repeat *n* collecting (loop repeat *n* collecting (make-patch :c (random 1.0) :t 1 :x 0))))) 01:44:45 you iterate over them 01:45:23 I've seen a lot of 1980s lisp that looks like fortran 01:45:32 where do i define the size of my array? 01:45:33 (make-array (list x y z):element-type 'fixnum) 01:45:34 Hey I like fortran. 01:45:39 this is much cleaner than fortran :-P 01:45:42 oudeis [n=oudeis@bzq-79-179-51-253.red.bezeqint.net] has joined #lisp 01:45:54 its the list part 01:46:01 x y z are the dimensions 01:46:17 the list part? 01:46:17 clhs make-array 01:46:17 http://www.lispworks.com/reference/HyperSpec/Body/f_mk_ar.htm 01:46:25 i dont need to define the size of the array? 01:46:46 what you need is to learn Lisp 01:46:48 (make-array (list dim-one dime-2 dim-3) :element-type 'fixnum) 01:47:17 ummm 01:47:23 and the size? 01:47:28 stassats`: And programming. 01:47:28 size? 01:47:34 mgr [n=mgr@psychonaut.psychlotron.de] has joined #lisp 01:47:46 This is an excellent time to get some more coffee I see. 01:47:46 yes i dont need to define the size? 01:47:56 don't the dimensions determine the size? 01:48:19 topo, no, you don't. your lisp will magically figure it out from the dimensions. 01:48:43 well the size and element type 01:48:53 it will figure it out in bytes or something 01:48:56 topo: x, y, and z are very bad choices for array dimensions. 01:49:03 but you dont need to know 01:49:17 are you telling me that :(make-array (list dim-one dime-2 dim-3) :element-type 'fixnum) is an array with 3 spaces? 01:49:26 like [ , , ] 01:49:28 like that? 01:49:28 it has 3 dimensions 01:49:38 clhs make-array 01:49:38 http://www.lispworks.com/reference/HyperSpec/Body/f_mk_ar.htm 01:49:47 topo, no, you colud make that with (make-array (list 3)) 01:50:02 -!- fiveop_ [n=fiveop@p579EA304.dip.t-dialin.net] has quit ["humhum"] 01:50:03 or (vector a b c) 01:50:32 so this (make-array (list dim-one dime-2 dim-3) :element-type 'fixnum) creates 3 dimensions without size? 01:50:45 no, with size! 01:50:53 no, each of the dimensions is a size for that dimension 01:50:59 seriously, read the CLHS page for this function 01:51:08 each dimension is a size for that dimension? 01:51:20 ok im gonna read 01:51:23 Also get a math book or something that explains the word dimension wrt array. 01:51:49 i can understand the confusion, a lot of languages don't have that sort of thing 01:51:57 (make-array (list 2 3)) will create a 2x3 array 01:52:03 *stassats`* goes imagining eleventh dimension 01:52:26 (make-array (list x y z)) creates an X by Y by Z array, where the size of the array is determined at runtime. 01:52:51 JonSmith: Such as? 01:53:02 perl, c, java 01:53:03 JonSmith: such as C 01:53:17 pick a language pretty much :-P 01:53:18 JonSmith: java have runtime sizable arrays 01:53:21 JonSmith: C has multidimensional arrays. 01:53:31 plage: but at fixed size 01:53:52 marioxcc: Lisp arrays are fixed size as well. 01:54:03 marioxcc: I'm pretty sure you can access memory as non-fixed size arrays using C. 01:54:06 plage: i mean fixed at comopile time 01:54:16 marioxcc: You can malloc arrays in C. 01:54:31 in C, "memory" is one giant fixed-size array... 01:54:33 you don't malloc arrays 01:54:41 you only alloc memory 01:54:44 and treat is as array 01:54:49 is not an practical diference 01:54:50 Adlai: indeed. just grab some memory address, and use that as start of an array :) 01:54:51 with c you have to do a different constructor or something, and the syntax is a bit different 01:54:52 but an conceptual one 01:55:12 JonSmith: well obviously syntax is differenc. 01:55:21 with devastating consequences if that happens to be, say, the base of your C stack 01:55:42 well so you aren't using make-array 01:55:45 adlai, the size of the array is determine at runtime? 01:55:46 Adlai: You have no idea how many times I have had funny accidents like that in forth. overwriting my program code with data or what not :) 01:55:51 what do you mean? 01:55:55 w/e 01:56:00 topo: in common lisp yes 01:56:02 in C is not 01:56:02 my point is that you don't see a 7D array a lot 01:56:08 well, in C99 is 01:56:11 but i think that sucks 01:56:27 is reasonable to not understand if you are just a regular programmer type 01:56:35 well, [][][][] is just a shorthand for pointer arithmethic 01:56:49 whats runtime? 01:56:53 p_l: yes, that is wath i say, you just treat is as array 01:56:55 sometimes I think #lisp should be taken out and shot. 01:57:07 topo: runtime is when you run the program 01:57:11 i agree, but possibly for different reasons than you do 01:57:21 JonSmith: Most likely :) 01:57:33 topo: as example, you don't know the result of (read-char) until runtime 01:57:36 topo, have you started reading PCL and/or Gentle Intro yet? 01:57:47 but you know the result of (1+ 1) at compile time 01:57:49 I linked you to them -hours- ago. 01:57:57 i read before 01:58:02 but i prefer to learn experimenting 01:58:10 oh god 01:58:28 topo: is bad to experiment in exact ciences like informatic and computing 01:58:32 you can practice 01:58:36 but not experiment 01:58:42 lol 01:58:42 im not interested in the exact part 01:58:49 im more interested in the oposite 01:58:51 then you're in the wrong field. 01:58:55 psychological experiments on IRC users? that's novel 01:58:58 ok, here's a nice experiment: read random CLHS pages. 01:59:13 topo: computing is exact, you like or dont like it 01:59:14 but actually read and understand them, and if you don't understand a term, look it up. 01:59:27 if you dont like exact ciences go study biology or something :) 01:59:38 i like guy steele as a guide 01:59:39 i mean, i more interesting in experimenting with code, im against that ingenier approach where you have the idea of what you are going to do in your head 01:59:44 biology is reasonably exact 01:59:45 is easier to understand if not always accurate 02:00:06 topo: if you are againstig that idea you will never create good programs 02:00:06 biology is inexact 02:00:06 marioxcc: you can experiment if you don't have exact model while trying to experimentally gather enough information to build exact model 02:00:10 i tell you by experience 02:00:16 marioxcc: try psychology instead, heh 02:00:24 http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html 02:00:24 the idea of good programs is subjective 02:00:31 topo: biology is exact... psychology has becoming exact as its goal 02:00:41 -!- JonSmith [n=jon@c-71-233-58-7.hsd1.ma.comcast.net] has left #lisp 02:00:41 biology is not 02:00:41 (kind of) 02:00:52 topo, there's a difference between exploratory programming and helpless flailing 02:00:53 you have some unpredictibility 02:01:00 you dont know how we will are in 10K years 02:01:04 and so 02:01:16 sure mutation is an inexact copy in genetic programming 02:01:17 p_l: yes, but it becomes exact then 02:01:22 joubert [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 02:01:35 marioxcc, that's not biology, that's science fiction... 02:01:50 hi, why for puzzle, queens, etc. solvings, Common Lisp is hundred of times slower than Java? 02:01:59 -!- Tordek [i=tordek@gateway/shell/blinkenshell.org/x-zvsmfgbgqktvytkh] has quit [Read error: 60 (Operation timed out)] 02:02:00 eldragon: you're doing it wrong. 02:02:02 eldragon: because you're a bad programmer 02:02:02 marioxcc: that's incorrect - biology is exact, it's just that entropy messes up an object introducing lack of data to apply your exact model 02:02:13 eldragon: CL is 10x faster for me 02:02:29 p_l: of course 02:02:33 you cant create an exact model 02:02:35 marioxcc: the only thing that is exact is mathematics 02:02:37 it doesn't change the laws biology is build on (which is basically applied physics and chemistry) 02:02:39 if you create it is only aproximate 02:02:47 and CS is the closest thing to mathematics 02:02:52 rahul: there are other ciences too, like computer cience 02:03:07 marioxcc: physics is not exact. chemistry is not exact. 02:03:18 rahul: i dont say they are 02:03:25 i say they are another ciences 02:03:26 marioxcc: but CS is exact 02:03:28 Tordek [i=tordek@gateway/shell/blinkenshell.org/x-txujikdfubmbideo] has joined #lisp 02:03:30 ¿inexact? 02:03:30 Gödel wouldn't agree 02:03:31 eldragon: Did you compile your code? 02:03:38 astrology is exact! 02:03:41 marioxcc: you can, in theory, make an quant-level exact model and run a simulation of evolution on it... you will just run out of computing power ;-) 02:03:41 stassats`: knowable and exact are orthogonal 02:04:12 stassats`: and known is also orthogonal to both 02:04:13 i know exactly that all we are talking about is off-topic 02:04:16 marioxcc: It is spelled "science". 02:04:19 haha 02:04:27 p_l: quantum mechanic is inexact 02:04:30 unpredictable 02:04:33 is not as classic mechanic 02:04:36 plage: ohh, sorry 02:04:41 *Adlai* will now spell it psyence 02:04:52 quamtum physics depends of the observer, you can have access to reality never 02:04:59 you cant 02:05:11 marioxcc: depends what you define by "inexact". But it's off-topic and I'm starting to get sleepy and thus prone to inexact rounding errors 02:05:18 lol 02:05:19 eldragon: You didn't answer my question. 02:05:24 well, unpredictable 02:05:28 that is my pont 02:05:43 good nigth and mery cristmax (i dont know how to write it) 02:05:46 Edward_ [n=Ed@AAubervilliers-154-1-29-14.w90-3.abo.wanadoo.fr] has joined #lisp 02:05:53 marioxcc: christmas 02:05:58 thanks 02:06:00 plage: Good Morning! 02:06:00 Xofmas 02:06:03 biology for sure is unpredictable 02:06:09 because its a complex system 02:06:13 :P 02:06:17 off-topic on #lisp is unpredictable 02:06:18 topo: complex dont mean unpreditable 02:06:30 stassats`, unless Younder wanders in... 02:06:36 theres a correlation between complex and unpreditable 02:07:12 nice chat but i have to an christmas family party 02:07:17 i hate that 02:07:22 but i'm forced to 02:07:25 hey p_l 02:07:25 -!- marioxcc [n=user@200.92.161.176] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 02:07:34 in complex systems tiny perturbation can create feedback loops of a lot of complexity that can lead into unpredictable results or patters, that why complex systems are counter intuitive 02:07:35 rme [n=rme@pool-70-105-87-61.chi.dsl-w.verizon.net] has joined #lisp 02:07:47 joubert_ [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 02:08:36 thats the power of common lisp, you can use it to evolve the rules of interactions of the components of the system until the system as a hole can resolve complex problems 02:08:37 -!- joubert [n=joubert@user-12ld81k.cable.mindspring.com] has quit [Read error: 60 (Operation timed out)] 02:08:37 -!- joubert_ is now known as joubert 02:09:18 topo, the only hole is the gaping one in your methodology. read a book. please. 02:09:36 ;D 02:09:40 topo: Too many undefined words for your remark to make sense. 02:09:50 paradoxically, Common Lisp is predictable 02:10:47 im talking about that if you have a system where the components of the systems interact in a descentralized way , the system can self organize and an emergent property emerges from simple interactions rules 02:11:18 the thing is that because is a complex system and unpredictable you cant know which set of rules you need for evolving some adaptative behaivor 02:11:20 topo: Adding more undefined words is not going to help. 02:11:24 i'm an incompetent. 02:11:36 eldragon, no you're not. look at topo here. 02:11:41 so you can use lisp, program genetic to evolve the interaction rules of the agents to get smart complex bahaiors 02:11:43 thats all 02:11:43 Heh! 02:11:50 thank goodness. 02:12:45 for example the cellular automata that i made create architectural 3d complex structure 02:12:56 topo: You said "that's all". 02:13:00 do bahaiors like visiting teh Bahá'í Gardens? 02:13:11 now i want to find a structure in all the universe of posibilities that can solve some desing problem 02:13:12 THAT IS ALL, TOPO 02:13:39 I can't belive this is still going 02:13:45 minion, what does topo stand for? 02:13:45 Transcriber Ostreophagous Perverse Oenomel 02:13:54 uh. I go away from #lisp for a couple of minutes and I see all this. 02:14:10 schme: That should teach you not to go away. 02:14:13 topo is mole 02:14:20 an animal that lives underground 02:14:24 *stassats`* saw a film "El Topo" 02:14:31 good movie 02:15:00 -!- pemryan [n=pem@159.226.35.246] has quit [Remote closed the connection] 02:15:02 -!- pr [n=pr@unaffiliated/pr] has quit ["Get MacIrssi - http://www.sysctl.co.uk/projects/macirssi/"] 02:15:03 underground, where there's no light 02:15:19 no knowledge. no books. no documentation. 02:15:37 *plage* laughs 02:16:10 I like this marketing. "the power of common lisp is that you can use it to evolve rules of interaction of the components of the system until the system as a whole can resolve complex problems" 02:16:39 thats the potential but nobody have noticed 02:17:04 I'm not even sure what the heck it means. or how it is unique to CL. 02:17:06 schme: ... and kill the creator" 02:17:12 for great victory (: 02:17:21 yay business-speak 02:17:24 schme do you know whats emergence? 02:17:29 topo: Yes. 02:17:51 emergent behaivor emerge from simple interactions rules 02:17:54 topo: Well correction. I do not know it. I have some basic knowledge about theories concerning it. 02:18:39 i found this 02:18:40 http://www.youtube.com/watch?v=gdQgoNitl1g 02:18:57 it's my problem, the inefficiency of a complex application once made the integration of macroprocessor + davis-putnam-loveland-loleidontremember + untyped lambda calculus interpreter + CAS algebra, the major part of inefficiency is brough to DPLL over common lisp, iirc. If DPLL is made in Java or C++, the penalties are much lesser. 02:20:06 Maybe write more efficient code. 02:20:19 -!- ruediger [n=the-rued@p508B236D.dip.t-dialin.net] has quit ["This computer has gone to sleep"] 02:20:32 haha 02:20:37 eldragon: you are dumb 02:20:49 eldragon: I'll ask again: did you compile your code? 02:20:50 and topo lives in a cave 02:20:52 rahul, why? 02:20:59 eldragon: you tell me why you are dumb 02:21:03 rahul, no, he lives underground. Can't you read? 02:21:07 I don't know you well enough 02:21:08 ie, in the soil. 02:21:14 Adlai: he thinks he does 02:21:19 Adlai: but it's really a cave 02:21:41 it's my question, integration or misintegration? 02:21:52 eldragon: tbh I didn't understand half of what you wrote there, or what you were trying to do. I just read that somehow CL made it all inefficient, and java made it fast. So my conclusion is that you wrote more efficient java than CL. 02:21:52 *stassats`* lives in a Faraday cage 02:22:30 eldragon: all of those things have been done in lisp more efficiently than in C++ already 02:22:41 eldragon: so the conclusion is that you're a bad user of libraries 02:22:59 ... or that he didn't compile his code? 02:23:02 oh, I don't know what the heck DPLL is 02:23:24 rahul, DPLL is a puzzle-like solver. 02:23:28 maybe he used NTH on lists 02:23:51 inside of a dotimes! 02:23:55 http://en.wikipedia.org/wiki/DPLL_algorithm 02:23:58 heh! 02:24:14 eldragon: How come you don't answer questions? 02:24:21 CNF-SAT? 02:24:27 you can't do THAT? 02:24:29 hahahahaha 02:24:34 minion, what does cnf-sat stand for? 02:24:35 a man, a plan, a canal - panama 02:24:42 plage, because i've not terminated the project 02:24:53 eldragon: What? 02:24:57 if you can't do that, you can't do anything 02:24:57 not terminated the project, i can't compile the project. 02:25:05 what? 02:25:06 eldragon, which lisp are you using? 02:25:10 you can't compile it? 02:25:12 Adlai, sbcl. 02:25:17 sounds like a personal problem to me 02:25:32 rahul, the politically correct term is "pebkac" 02:25:34 I don't even know what CNF-SAT is. But this DPLL algo looks simple enough to get as efficient in any decent CL as in java. 02:25:49 and it says 40 years old so I bet someone has done it. 02:25:52 eldragon: In Lisp you can compile a function at a time if you like. No need to finish the project. 02:26:12 schme: it's a major part of space ship one 02:26:14 :) 02:26:51 *schme* google "space ship one" 02:26:55 schme, DPLL, untyped lambda calculus, every they are >40 years old 02:27:21 eldragon, why do you keep bringing up the untyped lambda calculus? 02:27:39 Adlai, because it's simplest. 02:28:25 eldragon: I assure you that this thing that was slow in CL can be just as fast as your Java implementation of the same thing. You just need to write more efficient code. 02:28:32 seriously, if you can't compile that function, then there is something wrong with you 02:28:43 um untyped lambda calc is the SLOWEST 02:28:55 or write less inefficient code :D 02:29:18 eldragon: and this is coming from an expert on writing slow code. 02:29:21 acutally space ship one used a SAT solver that was faster than DPLL 02:29:22 -!- mattrepl [n=mattrepl@pool-72-83-118-99.washdc.fios.verizon.net] has quit [] 02:29:25 rahul, i wanna to implement aggressive codes that are subject to failures. 02:29:37 eldragon: does that sentence mean anything? 02:30:21 i already saw today scary aggressive code 02:30:26 rahul, i mean that i'm conservative. 02:30:32 huh? 02:30:46 eldragon: so you are opposed to universal health care? 02:30:53 hehe aggressive code? i'm glad i'm not the only one that made no sense to 02:31:04 he's a conservative writing aggressive code 02:31:12 sounds like an evangelical christian to me 02:31:16 is this moral code or legal code? 02:31:21 There is enough violence in society as it is without being attacked by code as well. 02:31:26 heh 02:31:30 no, i'm writing conservative code instead of aggressive code. 02:31:46 -!- jsoft_ [n=user@unaffiliated/jsoft] has quit [Remote closed the connection] 02:31:52 Is aggressive code for EXTREME Programmers? 02:31:55 you mean instead of attacking people, it conserves mass-energy? 02:32:04 the problem of the agressive codes is that they're very complicated and i don't understand almost these complex things. 02:32:07 oddity lol 02:32:36 or are you saying there are no carnot cycles in it? 02:32:40 #lisp is funny tonight 02:32:52 *schme* thinks #lisp is mean tonight. 02:33:10 things that i don't understand ==> more probable that the program fails miserably. 02:33:31 eldragon: things that are slow by nature ==> more probable that the program never succeeds anyway. 02:33:31 #lisp is both tonight 02:33:41 it's because i picked archaic theories. 02:33:59 yeah, he's getting all newtonian on us 02:34:03 like one about lisp being slow? 02:34:13 with his point particles and frictonless surfaces 02:34:15 and untyped lambda calc 02:34:24 ambda 02:34:36 I thought this was about conservative fields 02:34:40 nah, i use my SK-combinators instead 02:34:44 -!- kwinz3_ [i=kwinz@212067232036.public.telering.at] has quit [Read error: 110 (Connection timed out)] 02:34:44 Adlai, yes, it's for higher order functions of CAS algebra 02:35:02 real men use unlambda 02:35:18 um 02:35:44 untyped lambda calc was used for NORMAL functions in CAS algebra 02:35:51 that's what lisp was invented for 02:35:56 kwinz3_ [n=kwinz@85.124.207.20] has joined #lisp 02:36:09 lisp isn't untyped lambda calculus 02:36:10 and then they realized that it's a programming language, too :P 02:36:16 eldragon: not any more 02:36:26 back in 1952 it was 02:36:36 yes rahul 02:36:45 well, actually, it wasn't lambda calc then either 02:36:54 since it had dynamic scoping 02:37:09 untyped lambda calc. is lexical scoping 02:37:44 eldragon: are you trying to do anything? 02:37:59 or are you just trying to replicate the failures of the 60s? 02:38:16 yes, rahul, i'm trying to do a complex calculator to solve sqrt(5+sqrt(5)). 02:38:20 DPLL is actually extremely complex 02:38:31 solve? 02:38:35 there's nothing to solve there 02:38:50 DPLL is more complex than alpha-beta, for sure 02:39:08 to get a proper implementation of DPLL, you need something like IBM's deep blue chess playing computer 02:39:22 (eval '(sqrt (+ 5 (sqrt 5)))) => 2.689994 02:39:32 except that you don't have the instinctive knowledge of the space like you do with chess 02:39:37 oops, I gave away the solution 02:39:42 -!- saikatc [n=saikatc@c-98-210-192-23.hsd1.ca.comcast.net] has quit [] 02:39:53 Adlai: but it's not complex! 02:39:54 Adlai: oh no. you've just made eldragon's entire life's work a waste! 02:39:56 Adlai, i'm looking for a finite and complete answer, not a infinite and incomplete answer. 02:40:04 what? 02:40:10 how is that infinite? 02:40:16 yates [n=yates@cpe-174-097-145-232.nc.res.rr.com] has joined #lisp 02:40:19 or are you saying you want to square the circle? 02:40:31 (eval '(sqrt (+ 5 (sqrt -5)))) => #C(2.2888017 0.4884801) now, that's complex 02:40:52 if i only had enough time to learn one dynamic language, why should i learn lisp and not python? 02:40:57 (eval '(complex (sqrt (+ 5 (sqrt 5))))) => #C(2.689994 0.0) 02:41:19 yates: Because you asked in #lisp? 02:41:19 eldragon: HAKMEM has a section on representing irrationals in computers 02:41:22 yates, because then you could argue about which form prog2 is -really- supposed to return 02:41:24 i want something as "denest sqrt(5+sqrt(5)) please!". 02:41:41 yates: if you're asking that kind of question, please don't use lisp 02:41:47 denest? 02:41:55 plage: i'm going ask the converse in #python... 02:42:07 yates: Good luck! 02:42:17 removing the nested inner sqrt from there. 02:42:17 yates, there's a comparison of CL and Python on Peter Norvig's site 02:42:18 learning lisp takes a lifetime 02:42:24 Adlai: which is completely wrong 02:42:41 oh? 02:42:45 yes 02:42:47 how so? 02:42:54 it makes numerous factual errors 02:42:55 indeed how so 02:43:03 if you can't spot them, you need to learn lisp :) 02:43:05 plage: Do I remember correctly that you're beach? :) 02:43:09 folks, it wasn't meant to start a war - i would just like to hear if there are any arguments that logically support the one over the other 02:43:17 p_l: Yes. 02:43:21 yates, there are. 02:43:27 yates: See here for starters: http://dept-info.labri.fr/~strandh/features.text 02:43:38 yates every language has pluses and minus 02:43:39 minion: features of common lisp? 02:43:39 features of common lisp: Features of Common Lisp, a one-page summary of what makes Common Lisp unique: http://abhishek.geek.nz/docs/features-of-common-lisp 02:44:02 also how come you are so short of time, you could try both 02:44:03 plage, catch/throw is not just nonlocal, it's also computed. 02:44:07 Oh, minion knows about that. Great! 02:44:25 Adlai: Sure, thanks! 02:44:55 you're welcome 02:45:05 plage: I'm getting close on a nice standalone+libcl compatible package (asdf-install as well with some exceptions) for slime/paredit/redshank together with simple configuration (and possibility to use "normal" slime config - it just will take some sane defaults and utility functions. Gonna pack some "useful extras" as well 02:45:25 one question 02:45:29 p_l: Sounds good! 02:45:30 theres something i dont understand 02:45:38 topo: REALLY? 02:45:39 if (make-array (list 2 3)) will create a 2x3 array 02:46:01 (make-array (list x y z)) will create a array of which size? 02:46:12 topo: guess 02:46:12 xxyxz 02:46:17 xyzzy 02:46:21 topo: It would depend on the values of x, y and z. 02:46:30 zxyyzz ?? 02:46:30 x×y×z 02:46:37 i see 02:46:45 (said the blind man) 02:46:47 i've the a problem of mis-planning the programming, almost CAS code that is written popularly worldwide is in Common Lisp, almost puzzle-like code is written in C++ or Java, i've a problem of difficulty of the integration of separated parts. 02:47:00 plage: while libcl contains for example most of the stuff I intended as "base minimum, it remarkably misses split-sequence... 02:47:04 if i dont specify this: :element-type 'fixnum 02:47:08 eldragon, I think you mean "almost all" 02:47:13 it doesnt matter? 02:47:26 in the first example here under "Generalized references", http://abhishek.geek.nz/docs/features-of-common-lisp 02:47:31 topo: go and experiment 02:47:34 topo, did you read the CLHS page for make-array? 02:47:39 yes i did 02:47:44 im gonna experiment 02:47:44 why isn't the result of *colours* (YELLOW GREEN BLUE)? 02:47:46 ill be back 02:47:55 oh, I think norvig corrected the errors in his comparison 02:47:58 soupdragon [n=quantum@unaffiliated/fax] has joined #lisp 02:48:04 topo: it's not a simple array, so I guess it might have various interesting quirks you don't expect from learning other languages 02:48:12 yates: a typo 02:48:13 p_l: Why is it missing? 02:48:19 speaking of generalized ref, I don't think that's mentioned in norvig's comparison 02:48:19 retupmoca [n=retupmoc@99.54.133.197] has joined #lisp 02:48:23 i believe that it's a sort of impedance mismatch, it's weird implementing CAS algebra in Java, and weird implementing puzzle-like in Common Lisp. 02:48:26 not a simple array? 02:48:45 clhs simple-array 02:48:45 http://www.lispworks.com/reference/HyperSpec/Body/t_smp_ar.htm 02:48:49 stassats`: thought it might be, but such assumptions are dangerous when you're new... 02:48:58 *plage* must go. See you later. 02:49:02 -!- plage [n=user@123.19.66.10] has left #lisp 02:49:05 bye plage 02:49:06 plage: not sure :D I definitely find split-sequence to be way useful tool, as I find the lack of simple, stupid, "split" operations, especially on stings 02:49:10 *strings 02:49:11 yates: it should be. try it at a repl 02:49:12 thanks plage 02:49:17 he bailed on us! :-o 02:49:36 wups 02:49:49 eldragon: that's why all the first puzzle-like games were written in lisp, clearly 02:49:51 *rahul* facepalm 02:50:24 my separated minds can't merge to one easily 02:50:24 eldragon: the second major thing lisp was used for was chess AIs 02:50:52 I guess that tit might have something to do with puzzles being common undergraduate programming assignments, whereas CAS are not... 02:50:55 split-string is pretty useless when you have CL's sequences library 02:51:07 :start and :end make split-sequence a waste of memory 02:51:57 ? 02:52:02 rahul: "split based on a single character" kind of utility function seems lacking... though, if I get a nicer way to do that than split-sequence (I find pulling ppcre to be using a nuke to kill a fly) I'll happily correct my misgiving 02:52:14 p_l: because it's unnecessary and wasteful 02:52:23 p_l: loop 02:52:29 + position 02:52:37 I find (split-sequence #\: .....) just nice and fine. 02:52:41 is the nomenclature "first-class function" essentially another way to say that functions can be generalized references? 02:52:42 it's a trivial macro 02:52:51 as easy to write as split-sequence 02:53:02 yates: no, the two are orthogonal 02:53:02 So why not just write split-sequence? 02:53:06 rahul: maybe, but then I quite often just want those pieces as separate strings for later :) 02:53:10 schme: why not write nth inside of dotimes? 02:53:11 yates: http://en.wikipedia.org/wiki/First_class_function 02:53:32 p_l: then use SERIES :) 02:53:40 rahul: I see no reason to not use split-sequence for splitting sequences. "waste of memory" is pretty dumb argument. 02:54:01 schme: you're just creating a copy for no reason 02:54:36 especially if original string goes away and parts of it become parts of various datastructures, not just parsed-and-forgotten 02:54:56 "goes away"? 02:54:56 though the suggestion on series is interesting 02:55:07 I'm not sure what buggy GC you're using... 02:55:18 -!- shrughes [n=shrughes@pool-108-2-120-130.phlapa.fios.verizon.net] has quit [Remote closed the connection] 02:55:31 but if you need EVERY piece for lots of different data structures, then it makes sense 02:56:09 rahul: I read-line a string of data, split into parts which then become elements of different data structures, then the original string becomes garbage (though it might still exist as the store forthose parts... not a problem for me. logically it doesn't exist anymore 02:56:13 if you are splitting a string just to convert the 1st field to a number and the 3rd field is a string, then you're being wasteful for fun 02:56:15 <3 SERIES 02:56:56 but yes, I'll definitely have to look into positional way and series 02:57:14 it's just that split-sequence is just simple and easy to use 02:57:21 I view split-sequence the same way I view append 02:57:32 useful for convenience but a red flag for performance 02:57:44 something that's repeatedly hanging me up is the definition "functional programming" 02:57:48 http://en.wikipedia.org/wiki/Functional_programming 02:57:51 well obviously one does not use it "for performance". 02:58:03 schme: right, same with append 02:58:08 it states there is avoids state and mutable data 02:58:10 yates progamming with functions 02:58:34 yates: If you want to learn functional programming I'd suggest going with SML or haskell. CL can be used for it, but I find it is not the best tool for learning it. 02:59:11 schme: i'm just trying to get my head around the _definition_ 02:59:24 it seems that most (all?) programs have state at some level 02:59:24 yates: what does functional programming have to do with this? 02:59:29 clhs setf 02:59:29 http://www.lispworks.com/reference/HyperSpec/Body/a_setf.htm 02:59:35 yates: yes, that's right 02:59:36 rahul: with what? 02:59:42 yates: with, well, #lisp 03:00:02 yates: Programs tends to have state, yes :) 03:00:20 lisp has as much to do with functional programming as, for example, python... or java... or C 03:00:20 rahul: isn't lisp a functional programming language? 03:00:25 yates: no 03:00:25 clhs setq 03:00:25 http://www.lispworks.com/reference/HyperSpec/Body/s_setq.htm 03:00:29 nononononon 03:00:38 Scheme is a functional programming language 03:00:40 yates: most defnitely not 03:00:41 Adlai: no 03:00:47 yates: it's just that in functional programming, the state is defined differently - a "pure" function doesn't rely on anything outside its arguments, there's N:M (N>=M) relationship of argument states and output states 03:00:57 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit ["Leaving"] 03:01:02 CL is a programmable programming language that allows you to work functionally if you are so inclined. 03:01:09 rahul: are you saying it's a style rather than a language? 03:01:15 yates: with functional programs, state is stored by the language, not your program 03:01:18 rahul, if you say so. I don't know much about scheme, but I am under that impression. 03:01:20 quidnunc [n=user@bas16-montreal02-1242357571.dsl.bell.ca] has joined #lisp 03:01:20 one question 03:01:29 yates: well, it's a feature of a specific function 03:01:31 which are the differences between setf and setq? 03:01:44 yates: it doesn't stop you from keeping the state in a variable that gets passed around, or in some special construct or in implicit, imperative way that breaks the nice purity ;-) 03:01:45 yates: and it special language support is needed to make it practical on the large scale 03:01:56 topo: you should've read those links 03:02:06 topo, SETQ only sets variables, while SETF works on generalized references 03:02:16 Adlai: scheme is no different from lisp as far as mutation of variables and data structures go 03:02:26 what are generalized references? 03:02:31 like lists? 03:02:36 pure functional vs functional 03:02:37 not like lists 03:02:42 topo: they're places 03:02:45 arrays? 03:02:46 clhs 5.1.2 03:02:46 http://www.lispworks.com/reference/HyperSpec/Body/05_ab.htm 03:02:50 not like arrays 03:02:55 places? 03:02:58 locations IN arrays 03:02:59 ocaml and SML can have all the effects scheme does 03:03:03 topo, that's a listing of the "Kinds of Places" 03:03:11 (aref array i) is a generalized reference 03:03:24 soupdragon: kind of 03:03:34 soupdragon: but only if you jump through hoops to get it 03:03:48 you have to say "I want to allow mutation here" 03:03:56 you must be thinking of haskell 03:04:01 as opposed to scheme or lisp where you say "mutate this" 03:04:03 soupdragon: no 03:04:21 "mutate this!" in scheme 03:04:25 heh 03:04:27 right 03:04:45 places? is there any relation with spaces? 03:04:46 in scheme you shout at the language to get a mutation 03:04:47 topo, for example, you can (setf (slot-value object 'slot-name) (compute new value)) 03:04:49 topo: no 03:04:52 smalltalk? 03:04:54 is there a command in rcirc to retroactively and forwardly filter everyone except a specified set of users? 03:05:15 oh I see what you mean, it's that lambda bindings are mutable in lisp but not in ocaml and SML (only mutable cells are) 03:05:24 soupdragon: right 03:05:25 yates, that seems like a sort of veild suggestion 03:05:29 ;) 03:05:35 soupdragon: you have to ask BEFOREHAND to allow mutation here 03:05:43 soupdragon: in CL, you just do it 03:05:51 soupdragon: in scheme, you shout that you want it 03:05:52 nmutate-this 03:06:00 tychoish: not at all - it's just that i get confused trying to sort out different responses and think it would be much easier for me to consider one at a time 03:06:04 yeah, in CL you might get a little nasal 03:06:06 or fricative 03:06:14 okay 03:07:32 yates, just playing. there's an irssi plugin that sort of smartly colorizes the nicks in chats as they go by, which I find helps. but I can't help wrt rirc... in a way this seems like sort of the problem that google wave tries to solve (threading) but I still like IRC :) 03:08:46 -!- joubert [n=joubert@user-12ld81k.cable.mindspring.com] has quit [] 03:08:52 places has any relation with proxyspaces? 03:08:58 from smalltalk? 03:08:59 tychoish: colorizing would help 03:09:03 similar concept 03:10:12 yates: http://scripts.irssi.org/html/nickcolor.pl.html -- I'm a huge emacs head, but irssi is sort of the best chat program ever written to my mind :) 03:10:46 tychoish: riece beats it any ol' day. 03:10:47 such kind of questions is better suited for #emacs 03:11:25 stassats`: true. already done :) 03:11:34 "to my mind." being the opperative phrase. 03:16:29 schme, rahul: you two seem to disagree. rahul, you told me lisp is NOT a functional programming language, but schme told me it can be used as such 03:16:45 yates: What is the disagreement? 03:17:12 -!- dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has quit [Read error: 113 (No route to host)] 03:17:23 now, you two disagree about a disagreement 03:17:32 yates did you miss the clarification that I just got 03:17:33 ? 03:17:44 stassats`: i disagree! 03:17:45 *schme* heads explode. 03:17:46 schme: what is the difference between a "functional programming language" and "a language that can be used as a functional programming language"?!? 03:17:46 -!- dnolen [n=dnolen@ppp-70-249-155-206.dsl.rcsntx.swbell.net] has quit [] 03:17:54 yates: C can be used as such, too 03:18:03 soupdragon: yes, i did - looking 03:18:04 yates: and python and java and .... 03:18:09 i've though much, i've to drop Java to favor Common Lisp, but i'm not sure if MLton is another choice or not, i'm not sure if CAS algebra is possible in MLton. 03:18:12 yates: I say CL can be used for a functional style of programming. It does not force you into this way. 03:18:30 eldragon: of course it is 03:18:48 yates: CL has numbers. That does not mean that CL lacks string. 03:18:50 rahul: well then why isn't what i asked earlier true? "it's more a matter of style than a specific language" 03:18:58 here comes the turing tarpit 03:19:29 'you can program haskell in any language'?! :) 03:19:31 yates: languages can enforce styles or not 03:19:37 drewc +1 03:20:47 perhaps it would help me understand if i see a simple example of a lisp function that isn't a functional programming function 03:21:08 yates: (defun foo () (print "foo")) 03:21:35 clhs sort 03:21:35 http://www.lispworks.com/reference/HyperSpec/Body/f_sort_.htm 03:21:39 and you can't do this in haskell? 03:21:43 yates: rplaca 03:21:48 sellout: ^^^^? 03:21:53 no, you can't write that directly in haskell 03:22:01 you need to create a monad first 03:22:20 to tell the language that I/O is happening and then you need to drive values though functions into the monad 03:22:24 -!- quidnunc [n=user@bas16-montreal02-1242357571.dsl.bell.ca] has quit [Remote closed the connection] 03:22:37 of course, nothing is stopping you from creating that monad in CL, there is just very little need for it. 03:22:48 only the monads have state 03:23:08 *drewc* has been playing with the continuation monad in CL. fun! 03:23:11 drewc: you mean and therefore keeping all functional functional programming functions? 03:23:21 what? 03:23:31 buffalo buffalo buffalo buffalo? 03:23:40 drewc has been driving rusty nails though the back of ones hands for fun :p 03:23:47 s/all functional/all functions/ 03:23:51 rahul: Western new york state? 03:24:01 nyef: and wyoming! 03:24:11 that's what'll really buffalo you! 03:24:15 yates: can you rephrase that in language i can understand? 03:24:18 sorry - trying to type too fast 03:24:37 drewc: I don't think he's learned lisp yet 03:24:38 :D 03:24:50 drewc: you said, "of course, nothing is stopping you from creating that monad in CL" 03:24:58 *drewc* got here in the middle of the conversation. 03:25:13 yates: well, i know what i said... it's what you said that i can't figure out :P 03:25:26 heh 03:25:37 tonight has been a comedy of non-lispers 03:25:54 drewc: and i'm clarifying if you are meaning "of course, nothing is stopping you 03:25:54 from creating that monad in CL and therefore keeping all functions in CL functional programming functions" 03:25:54 maybe santa will bring them a copy of PAIP 03:26:20 yates it might be best to not try too hard to make sense of things like this 03:26:22 buffalo buffalo CL buffalo functions buffalo? 03:26:25 yates: what is a 'functional programming function'? 03:26:28 you mean side-effect free functions? 03:26:41 -!- Hun [n=hun@p50993726.dip0.t-ipconnect.de] has quit [Remote closed the connection] 03:26:55 or buffalo-free functions? 03:26:58 drewc: are we really going to go there? 03:27:03 free-range buffalo? 03:27:03 you really don't know what i mean? 03:27:21 yates: i have no idea what you're talking about, and i'm beginning to doubt you do. 03:27:48 I'm convinced he's buffaloed himself 03:27:50 drewc: ok, drop it - i can't communicate with you 03:27:52 yates is trying to make sense of rahuls definitions 03:28:06 yes 03:28:29 soupdragon: if we can't make sense of things like these defintions, then why do they exist? 03:28:30 what definitions? 03:28:36 yates, they dont 03:28:36 functional programming 03:28:49 oh, well if we're making up terminology here i'll need to be informed as to the definitions before i can comment! 03:28:55 functional programming is an illusion 03:29:01 it's the tooth fairy 03:29:14 programs are never pure functions 03:29:25 the invocation of a function is not a pure function 03:29:30 i thought someone just asserted earlier that haskell is a functional programming language. i know you asserted lisp is not 03:29:49 what's the difference? 03:29:54 haskell is the only one that can actually be considered to be functional 03:30:02 yates, maybe one person claims god exists, another guy says god doesn't exist: Is one of them wrong? 03:30:07 in haskell you cannot write code that side-effects any data your code creates 03:30:08 yes 03:30:23 dnolen [n=dnolen@ppp-70-249-155-206.dsl.rcsntx.swbell.net] has joined #lisp 03:30:28 rahul: "pure functional".. please... 'functional' is an overloaded term and it's just confusing things. 03:30:40 however, the language side-effects things outside your code because you asked it to 03:30:48 yates, the answer is that they might both be right - because they mean something different to each person, but it's not communicated. The situation with 'functional programming' is similar 03:31:04 functionial isn't an either/or things, there are different levels of 'functional-ness' 03:31:10 soupdragon: if we can't agree on meaning, then all is lost 03:31:27 yates: basically, it's a useless term to discuss 03:31:32 yates, don't worry - words never meant anything from day 1, we haven't /lost/ anything - technically :) 03:31:35 and as I said, irrlevant to #lisp 03:31:44 shall we discuss the meaning of democracy or god next? 03:32:28 yates: the basic idea is that too many side-effects in your code make it hard to understand what is going on 03:32:49 now move on 03:33:32 rahul: it's sort of implied by wikipedia, because it states that a first-class functions are necessary for a functional programming language, and lisp claims to have first-class functions 03:33:45 i would prefer "it's simpler to reason about side-effect free code", but that's tomayto/tomahto 03:34:01 -!- leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has quit ["rcirc on GNU Emacs 23.1.90.1"] 03:34:10 rahul: you are free to move on if you wish. i choose to pursue this definition until i get it. 03:34:26 drewc: well, that's just a simpler formulation of my statement :) 03:34:35 a's needs b, c's have b, are c's a's? 03:34:40 yates: you will never get it 03:34:41 drewc, it's a weird statement though -- since you can model side effects monadically, and then it's really just another pure function 03:34:45 yates: it doesn't exist 03:34:52 (in terms of formally reasoning about it) 03:34:57 reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #lisp 03:34:57 soupdragon: no, not really. 03:34:58 soupdragon: monads are not pure functions 03:35:10 you've just swept the problem under the carpet 03:35:14 mikezor_ [n=mikael@c-5de570d5.04-404-7570701.cust.bredbandsbolaget.se] has joined #lisp 03:35:24 drewc: yes, i know it logically isn't implied - more from the writing style 03:35:26 and now it's even harder to reason about because you don't even know it exists 03:35:51 rahul, that's exactly what I mean -- it's swept under the carpet.. it's not gone just because you didn't use mutation 03:35:59 or you do know it exists and you put your side-effects in places that keep them organized and easy to reason about in the first place 03:36:07 well why don't people stop using the term if it doesn't really exist? 03:36:08 soupdragon: right. 03:36:19 yates: Marketing. 03:36:27 soupdragon: so don't use them when you don't need to use them 03:36:29 oh, them. 03:36:37 this is where the link between monads and hoare triples come in 03:36:47 yates: because it's a useful term in a general sense. why do you care? 03:37:13 drewc: did you miss the connection on the wikipedia page? 03:37:18 http://en.wikipedia.org/wiki/First_class_function 03:37:33 first class function has nothing to do with this 03:37:40 tell the author 03:37:40 yates, the inside of a bucket doesn't exist but it still holds water 03:37:42 yates: what are you talking about now? 03:37:57 soupdragon: no, the inside exists 03:37:57 drewc: try reading 03:37:59 yates, because something isn't there does not mean it is not useful 03:38:07 soupdragon: the inside is not part of the bucket 03:38:18 soupdragon: and it doesn't hold water. 03:38:34 soupdragon: gravity holds water in the inside, IF gravity is applied in the right direction 03:38:34 yates: ummm ... why? i'm perfectly comfortable with the terminology, i don't have to read a wikipedia page... i've read the sources. 03:38:43 rahul maybe my parable could do with a bit of brushing up then.. 03:39:16 wakeup [n=wakeup@koln-5d81a47f.pool.mediaWays.net] has joined #lisp 03:39:24 well, or some other force 03:39:55 -!- wakeup^ [n=wakeup@koln-5d815871.pool.mediaWays.net] has quit [Read error: 60 (Operation timed out)] 03:40:19 *drewc* reads it anyway 03:40:59 -!- yates [n=yates@cpe-174-097-145-232.nc.res.rr.com] has quit ["rcirc on GNU Emacs 23.1.1"] 03:41:08 too late 03:41:23 well, that was interesting. 03:41:36 drewc: the last in a series of 3 today 03:41:44 there was topo, eldragon, and yates 03:41:55 it's like it's september 03:42:03 (or sunday) 03:42:13 nah, it's christmas 03:42:46 then why aren't they with their families? 03:42:53 konr [n=user@187.88.188.76] has joined #lisp 03:43:01 instead of being tortured by their families, they're torturing us 03:44:44 September never ends! :) 03:45:28 -!- dmiles_afk [n=dmiles@c-76-104-220-73.hsd1.wa.comcast.net] has quit [Read error: 60 (Operation timed out)] 03:46:14 Modius [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has joined #lisp 03:47:06 legumbre_ [n=leo@r190-135-27-117.dialup.adsl.anteldata.net.uy] has joined #lisp 03:49:43 -!- dlowe [n=dlowe@c-24-91-154-83.hsd1.ma.comcast.net] has quit ["Leaving."] 03:50:45 -!- mikezor [n=mikael@c-5de570d5.04-404-7570701.cust.bredbandsbolaget.se] has quit [Read error: 110 (Connection timed out)] 03:53:16 -!- proq [n=user@unaffiliated/proqesi] has quit [Read error: 110 (Connection timed out)] 03:53:42 nybbles [n=nybbles@CPE000ae6ad1ea9-CM00169240d79c.cpe.net.cable.rogers.com] has joined #lisp 03:55:54 -!- Guthur [n=Michael@host81-159-209-251.range81-159.btcentralplus.com] has quit ["Computer says no"] 04:02:54 -!- legumbre [n=leo@r190-135-56-61.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 04:04:06 -!- rme [rme@clozure-F9D14A81.chi.dsl-w.verizon.net] has quit [Quit: rme] 04:04:07 -!- rme [n=rme@pool-70-105-87-61.chi.dsl-w.verizon.net] has quit [] 04:07:43 -!- ecraven [n=nex@octonex.swe.uni-linz.ac.at] has quit [Read error: 110 (Connection timed out)] 04:08:50 nybbles_ [n=nybbles@vpn19.cs.ubc.ca] has joined #lisp 04:09:42 -!- Edward_ [n=Ed@AAubervilliers-154-1-29-14.w90-3.abo.wanadoo.fr] has quit ["L'oignon fait la farce."] 04:16:15 -!- nybbles_ [n=nybbles@vpn19.cs.ubc.ca] has quit [] 04:19:22 -!- Modius_ [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has quit ["I'm big in Japan"] 04:23:21 piso [n=peter@ip98-176-79-151.sd.sd.cox.net] has joined #lisp 04:25:14 -!- dnolen [n=dnolen@ppp-70-249-155-206.dsl.rcsntx.swbell.net] has quit [] 04:25:21 -!- nybbles [n=nybbles@CPE000ae6ad1ea9-CM00169240d79c.cpe.net.cable.rogers.com] has quit [Read error: 110 (Connection timed out)] 04:26:12 ace4016 [i=ace4016@cpe-76-170-134-79.socal.res.rr.com] has joined #lisp 04:35:26 -!- plutonas [n=plutonas@147.52.197.145] has quit [Read error: 110 (Connection timed out)] 04:44:20 -!- nyef [n=nyef@pool-71-161-71-17.cncdnh.east.myfairpoint.net] has quit ["G'night all, and happy christmas"] 04:49:21 mek||malloc [n=mek@c-71-233-73-92.hsd1.vt.comcast.net] has joined #lisp 04:54:22 lukego_ [n=lukegorr@adsl-89-217-222-16.adslplus.ch] has joined #lisp 04:54:33 -!- mek||malloc [n=mek@c-71-233-73-92.hsd1.vt.comcast.net] has left #lisp 04:54:35 -!- Trystam is now known as Tristam 04:59:17 nybbles [n=nybbles@CPE000ae6ad1ea9-CM00169240d79c.cpe.net.cable.rogers.com] has joined #lisp 05:03:12 -!- lukego [n=lukegorr@adsl-188-155-43-237.adslplus.ch] has quit [Read error: 110 (Connection timed out)] 05:03:13 -!- lukego_ is now known as lukego 05:06:19 trying to build ECL on darwin ... probably won't work 05:07:00 configure make make install 05:07:30 ecl can compile lisp to machine code, didya know that ? 05:07:51 konichiwa: only through C - the internal compiler uses bytecode 05:08:47 konichiwa: unless you compile it with C++ compiler and link with clang, including full LLVM machinery inside and then override file I/O and external compiler calling to call linked-in clang 05:08:57 dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has joined #lisp 05:10:43 well i don't actually want to embed it 05:11:04 i just want to see if i can get this particular lisp file to evaluate, i've been running out of heap 05:11:19 check uname settings 05:11:23 *ulimit 05:11:50 ECL has a rather simple allocator, thus resilient against various problems that plague other lisps 05:12:03 i did that, it says no more room for lisp objects 05:12:04 (basically, break ECL, you break quite a lot of stuff, including commercial) 05:12:10 i gave it a 1 gig heap, then a 2 gig heap 05:12:21 i was using clisp 05:12:24 now i'm going to use ecl 05:12:33 well, check on ECL 05:13:08 installing ecl doesn't 05:13:14 seem to install man pages 05:15:11 konichiwa: might not have one 05:16:00 where can i get documentation ? 05:16:32 on ECL's website 05:16:51 also there's iirc source for the docs on site in ECL sources 05:20:11 wonder why they didn't use gnu getline or something like that for input 05:20:17 can't edit the line 05:21:02 evaluaint the lisp after compiling, should be interesting 05:21:20 i suspect clisp runs lisp faster 05:21:34 is that your experience ? which evals the lisp faster, clisp or ecl ? 05:22:01 well, ecl isn't eating up heap space nearly as fast as clisp did 05:22:11 either that means it's more efficient in memory usage, or slower 05:22:54 -!- Oddity [n=Oddity@99.199.136.138] has quit [] 05:23:00 jordyd [n=jordyd@99-177-65-75.lightspeed.wepbfl.sbcglobal.net] has joined #lisp 05:23:23 konichiwa: not sure, but it might be faster than clisp 05:23:30 however, compilation would be slower 05:24:48 -!- syamajala [n=syamajal@c-76-119-52-223.hsd1.ma.comcast.net] has quit ["Leaving..."] 05:24:50 I've seen SHRDLU and STUDENT and ELIZA etc but are there any more well advanced computational lingustics stuff I could check out? 05:25:39 not sure what you mean by compilation slower, if it turns it into machine code that should be faster 05:25:52 ecl has the ability to actually generate machine code, clisp doesn't do that 05:26:26 -!- billstclair [n=billstcl@unaffiliated/billstclair] has quit [] 05:26:54 not sure it did that for me, i don't see a ".o" in the directory 05:27:40 ah, i didn't include :system-p t 05:34:37 succeeded in compiling it ... it makes a new lisp interpreter in which your lisp functions are defined 05:34:41 wasn't expecting that ! 05:34:59 well, running it, lets see if the machine code version is faster and/or uses less heap 05:36:36 -!- jordyd [n=jordyd@99-177-65-75.lightspeed.wepbfl.sbcglobal.net] has quit [Read error: 60 (Operation timed out)] 05:41:12 konichiwa: if you do compile-file and then load generated fasl, it would normally load it dynamically into current binary 05:41:25 unless for some reason you don't have dynamic linking in your ECL 05:41:44 and by compilation being slower, I meant compile time 05:48:49 bombshelter13b [n=bombshel@76-10-149-209.dsl.teksavvy.com] has joined #lisp 05:56:14 merry crhsismas for all the poor peoples in the world 06:02:15 -!- stoop [n=stoop@unaffiliated/stoop] has quit [Read error: 110 (Connection timed out)] 06:07:09 -!- coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has quit [Remote closed the connection] 06:13:18 coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has joined #lisp 06:16:36 -!- coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has quit [Client Quit] 06:18:15 rme [n=rme@pool-70-105-87-61.chi.dsl-w.verizon.net] has joined #lisp 06:21:21 -!- rme [n=rme@pool-70-105-87-61.chi.dsl-w.verizon.net] has quit [Client Quit] 06:22:42 -!- rread [n=rread@nat/sun/x-tqbkoqkqkbvdqtgg] has quit [] 06:22:48 grouzen [n=grouzen@91.214.124.2] has joined #lisp 06:34:45 partisan [n=partisan@123.108.171.227] has joined #lisp 06:35:05 . 06:36:12 -!- bipt [i=bpt@cpe-173-095-174-230.nc.res.rr.com] has quit [Read error: 60 (Operation timed out)] 06:41:53 -!- partisan [n=partisan@123.108.171.227] has quit [Remote closed the connection] 06:47:11 -!- soupdragon [n=quantum@unaffiliated/fax] has quit ["* I'm too lame to read BitchX.doc *"] 06:49:27 partisan [n=partisan@123.108.171.227] has joined #lisp 06:49:40 -!- partisan [n=partisan@123.108.171.227] has quit [Remote closed the connection] 06:50:27 partisan [n=partisan@123.108.171.227] has joined #lisp 06:50:41 -!- partisan [n=partisan@123.108.171.227] has quit [Remote closed the connection] 06:51:49 partisan [n=partisan@123.108.171.227] has joined #lisp 06:58:27 benchmarks http://www.cliki.net/Performance%20Benchmarks 06:58:45 Adamant [n=Adamant@unaffiliated/adamant] has joined #lisp 07:06:32 jewel [n=jewel@vc-41-28-248-149.umts.vodacom.co.za] has joined #lisp 07:07:19 konichiwa: they no longer apply - they are way too outdated. I made a mistake of relying on them and misjudged ABCL heavily 07:08:02 how does one deal with hash collisions for a lisp hash table ? 07:08:10 or does the implementation deal with that automatically for you ? 07:10:42 sure it does, that's why it's called "a hash table" 07:17:53 galaxywatcher [n=galaxywa@ppp-58-8-45-10.revip2.asianet.co.th] has joined #lisp 07:21:35 Kolyan [n=nartamon@95-24-178-224.broadband.corbina.ru] has joined #lisp 07:26:18 one question 07:26:24 can i put structs inside an array? 07:26:26 or objects? 07:28:37 topo: have you been pointed at any documentation yet? 07:28:40 didi [n=user@unaffiliated/didi/x-1022147] has joined #lisp 07:28:45 yes 07:28:50 then go read it. 07:29:00 im reading it now 07:29:18 good. Then you don't need anyone to answer those questions for you. 07:30:43 sykopomp: topo wants to be self-made, he can't read any documentation 07:31:04 stassats`: I see. 07:31:17 i read 07:31:34 aja_ [n=aja@S01060018f3ab066e.ed.shawcable.net] has joined #lisp 07:31:50 -!- didi [n=user@unaffiliated/didi/x-1022147] has left #lisp 07:34:52 -!- OmniMancer1 [n=OmniManc@122-57-9-130.jetstream.xtra.co.nz] has quit [Read error: 110 (Connection timed out)] 07:39:01 what does it means this? 07:39:02 :ELEMENT-TYPE is a constant and thus can't be set. 07:39:12 im making this 07:39:13 (setf a (make-array (list 3 3 3)):element-type 'fixnum) 07:39:50 that you put your parenthesis wrongly 07:39:58 ^ 07:40:30 o like this 07:40:31 (setf a (make-array (list 3 3 3))):element-type 'fixnum 07:40:35 stassats`: actually, hasn't topo been around for quite a while? 07:40:46 topo: now you're just trolling. 07:40:52 now 07:40:53 no 07:40:54 topo: even more wrongly 07:41:16 sykopomp: he has, but hasn't learned anything, as i can see 07:41:22 if i make this it works 07:41:23 (setf a (make-array (list 3 3 3))):element-type 'fixnum 07:41:33 stassats`: he can't be serious with that, can he? 07:42:00 sykopomp: i wouldn't be surprised, actually 07:42:03 yes i lerned a lot 07:42:22 but i stop using lisp for a year 07:42:25 now im using again 07:42:44 don't you always say the exact same thing?.... 07:43:02 *sykopomp* goes to sleep. 07:43:34 nite 07:43:53 topo: stuffing parenthesis at random so it doesn't complain isn't a way to go 07:44:16 yes i just noticed it didnt work 07:45:41 jtza8 [n=jtza8@wbs-196-2-103-111.wbs.co.za] has joined #lisp 07:46:34 (setf a(make-array (list 3 3 3):element-type 'fixnum)) 07:46:54 -!- aja is now known as Guest47604 07:47:01 now ask yourself, why do the parentheses have to be _there_? 07:47:11 i know 07:47:18 i just realized 07:48:27 -!- aja_ [n=aja@unaffiliated/aja] has quit [""I am going to a commune in Vermont and will deal with no unit of time shorter than a season.""] 07:48:39 aja_ [n=aja@S01060018f3ab066e.ed.shawcable.net] has joined #lisp 07:49:18 -!- aja_ is now known as aja 07:49:34 i made it work 07:50:33 -!- grouzen [n=grouzen@91.214.124.2] has quit [Read error: 60 (Operation timed out)] 07:53:09 mishoo [n=mishoo@79.112.110.205] has joined #lisp 07:56:21 -!- reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 07:56:49 ASau` [n=user@77.246.231.47] has joined #lisp 07:58:00 spradnyesh [n=pradyus@115.184.4.133] has joined #lisp 08:01:27 mrSpec [n=Spec@unaffiliated/mrspec] has joined #lisp 08:06:19 can't say i'm impressed with lisp as a language. javascript is far better, and also has closures and lambdas 08:06:43 does it have macros? 08:06:48 why do people want to torture themselves with these parenthesis, the lack of operators, etc ? 08:06:56 *Ralith* snickers 08:06:59 no, not macros, unless you use an external macro facility 08:07:24 konichiwa: you forgot to do your Wu-Tang imitation while trolling 08:07:27 in lisp you can execute code at run time 08:07:32 Dave Chappelle is not amused 08:07:35 konichiwa: maybe this isn't the right channel for you then 08:07:38 topo: javascript also 08:07:47 konichiwa: frankly speaking, I find JS quite nice... except for all those braces, fugly lambdas, and it lacks SLIME (that's the greatest offence) 08:07:56 also, CL has way more power loaded :) 08:08:02 adeht: it's a channel for lisp discussion, not lisp promotion or lisp supporters 08:08:20 and I already fell in love with macros, despite so far writing only two 08:08:32 netbeans is a fantastic IDE and works w/javascript 08:08:41 konichiwa: I don't think you have much of a say on what this channel's about 08:08:42 eclipse also, haven't used eclipse much 08:09:09 konichiwa: doesn't hold a candle in various aspects of SLIME (and I used all three, Eclipse being the worst) 08:09:24 macros and sexps. 08:09:40 I actually still use NetBeans for Java work, as I can't ever get JDE to complete symbols. 08:09:43 netbeans does code completion and refactoring 08:10:01 And on more serious note, sexps are actually easier for me than algol-like syntax 08:10:16 it took me ~week of not intensive work with slime 08:10:27 now I even write JS with sexps 08:10:33 my understanding is that the main advantage of lisp is that it's a very simple language, and simple to implement an interpreter for 08:10:52 thus it's use as an embedded scripting language 08:11:41 konichiwa: that's maybe true for some SIOD variant (scheme in one defun). Common Lisp is spiritual ancestor to Java EE :) 08:12:02 but i really think open source projects that use embdded lisp like langs really shoot themselves in the foot, if their goal is to make the project 08:12:07 useful for non-specialists 08:12:43 functional programming is neat, i like Mathematica for example 08:12:58 Mathematica has a great system for symbolic manipulation 08:13:05 p_l: speaking as guy who uses emacs for C, I find symbol completion to be unnecessary. 08:13:18 -!- jewel [n=jewel@vc-41-28-248-149.umts.vodacom.co.za] has quit [Read error: 60 (Operation timed out)] 08:13:19 arglist display is a bigger timesaver 08:13:21 konichiwa: depends on what kind of lisp they pack, and how well the editor supports it. Given that Lisp doesn't require textual represantation of code, it gets interesting. As for extensions... I'll just say AutoCAD 08:13:21 but also not critical 08:13:27 Ralith: refactoring is so cool 08:13:29 Ralith: one word: "C" 08:13:36 p_l: noted. 08:13:43 Ralith: I need completion for Java :> 08:13:44 if I am using a function so rarely that I have to look up its stuff, I can deal with spending a few extra seconds to refer to the docs. 08:13:45 it's really nice to be able to decide the code will be more readable if you change some names, and be able to do so automatically 08:13:48 p_l: oh right, java. 08:13:51 yeah, I don't blame you on that. 08:14:32 coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has joined #lisp 08:14:47 last question 08:14:55 can i use aref in the same way i use nth? 08:15:15 ... 08:15:34 isn't this a lot more readable than traditional lisp style ? http://paste.lisp.org/display/92628 08:15:52 konichiwa: Lisp is *different* Sexps aren't really that important - it was actually supposed to use notation a'la mathematica, except for some reason everyone always returned to S-exps 08:15:53 dear god 08:15:56 i wish emacs or some other IDE would indent parens in this way 08:16:03 p_l: sexps are sexy! 08:16:11 konichiwa: ... OH GOD MY EYES HURT 08:16:19 for example if i have something like this: 08:16:20 (setf (patch-z (nth i)) k) 08:16:24 can i make something like this? 08:16:30 (setf (patch-z (aref i)) k) 08:16:34 holy shit 08:16:44 Christmas trolls? 08:16:45 konichiwa: are you trying to get us all to gouge our eyes out? 08:16:45 there's fucking camel case in that 08:16:58 and nil is capslock'd 08:17:15 i can easily see the code structure in that ... why you'd want to compact that in to a single line i can't fathom 08:17:28 konichiwa: I use indentation as guide for nesting level, just like in Python. Closing paren are unimportant to me, so I group them at the end. Opening paren means start of a form to me 08:17:34 and whitespace is sprayed all over it at random 08:17:43 what is even happening in that code? 08:17:48 p l: not a bad system 08:18:18 rahul: i do same as p l, i just place closing parens on separate lines sometimes 08:18:20 rahul: probably not whatever was intended >_> 08:18:20 konichiwa: http://www.foldr.org/~michaelw/emacs/color-box.png <-- here is how you interpret the classic lisp indentation 08:18:48 if you're interested, it's done by an emacs package 08:19:01 http://www.foldr.org/~michaelw/emacs/mwe-color-box.el 08:19:22 konichiwa: reading that is incredibly dificult. the parens on their own line look hideous 08:19:23 p_l: oh neat 08:19:28 p_l: do you actually program like that? 08:19:57 is that lisp ?? 08:20:01 where are the parens ? 08:20:14 invisible parens. 08:20:25 konichiwa: um, do you realize that a good number of lisp programmers are biologists? 08:20:29 konichiwa: parens set to invisible fonts? 08:20:30 p_l: also what GUI toolkit are you using O.o 08:20:42 Ralith: nope, that's screenshot from the author 08:20:55 konichiwa: it's easier for non-programmers to learn lisp than any other language 08:21:05 invisible paren mode might be nice to someone who knows lisp well, as a beginner it would be to confiusing for me 08:21:10 konichiwa: and it's also easier for non-programmers to learn lisp than for programmers to learn lisp 08:21:19 p_l: kk, thought it looked a bit impracitcal for authoring 08:21:30 konichiwa: so python is difficult for beginners? 08:21:45 rahul: really? I found lisp to be the easiest to learn yet out of the several languages I know well. 08:21:52 as in, pretty damn easy. 08:21:59 konichiwa: invisible paren mode works better when you are full-time paredit user 08:22:09 <3 paredit 08:22:10 Ralith: and yet you found it harder than someone who didn't know any of the other languages typically would :) 08:22:24 rahul: interesting; is there anything formal to back this up? 08:22:31 unfortunately I can't find interlisp graphical editor screencaps 08:22:37 Ralith: there can be nothing formal for this kind of thing 08:22:38 grouzen [n=grouzen@91.214.124.2] has joined #lisp 08:22:49 Ralith: anything that claims to be formal is clearly bogus 08:22:52 rahul: that's a shame, it'd be a fun statistic to have around. 08:23:07 what's the basis for it, then? 08:23:09 Ralith: there are lies, damned lies, and then there are staistics 08:23:14 Ralith: experience 08:23:23 you've taught a lot of nonprogrammers? 08:23:25 of basically everyone 08:23:42 I'm a bit wary of "it's true because everyone thinks it's true" 08:23:45 Ralith: no. many biology departments have 08:23:49 not that it's an unreasonable proposition 08:23:51 if I recall correctly, some version of interlisp didn't use parens at all, at least not in default editor 08:23:53 they don't think 08:23:54 they do 08:24:04 well w/e 08:24:21 it's certainly easier for anyone at all to learn than the competition 08:24:25 and they have no problem with biologists learning lisp 08:24:28 and that's mostly what matters 08:24:28 or psychologists 08:25:33 clhs aref 08:25:33 http://www.lispworks.com/reference/HyperSpec/Body/f_aref.htm 08:27:34 konichiwa: http://www.cs.uni.edu/~wallingf/blog-images/code/lisp1.5-page13.jpg have a scan of M-exp code 08:27:47 jewel [n=jewel@vc-41-28-232-243.umts.vodacom.co.za] has joined #lisp 08:28:03 and people avoided M-exp like the plague 08:30:28 kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 08:30:30 *rahul* needs update-instance-for-redefined-class-using-class 08:33:18 -!- gruseom [n=daniel@S0106001217057777.cg.shawcable.net] has quit [Read error: 60 (Operation timed out)] 08:33:53 clhs nth 08:33:53 http://www.lispworks.com/reference/HyperSpec/Body/f_nth.htm 08:35:07 -!- partisan [n=partisan@123.108.171.227] has quit [Remote closed the connection] 08:35:30 gaaahhhh 08:35:44 *rahul* throws his copy of AMOP across the room 08:38:45 partisan [n=partisan@123.108.171.227] has joined #lisp 08:41:27 Jabberwockey [n=jens@82.113.106.221] has joined #lisp 08:45:01 -!- kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 08:47:36 is there a way to make a list like '(1 2 3 4 5) use less memory ? 08:47:49 for exmaple, to specify the numbers are integers ? 08:48:28 how would that make them smaller? 08:48:58 konichiwa: how much space does the number 1 take? 08:49:00 i don't know if the integers are being stored internally as integers are a more complicated object 08:49:22 why would they not be stored as what they are? 08:49:25 for example, some languages will use "variants" or somethilne like this unless specifically told otherwise 08:49:39 stoop [n=stoop@unaffiliated/stoop] has joined #lisp 08:49:40 why should that take any more space? 08:49:44 ok, thanks, i take it they are stored as ints 08:49:51 you're not using numbers greater than 2^56 08:50:11 rahul: a variant will typically have a pointer to the data, and some additional info to specify the type of the data 08:50:15 it's only between 2^56 and 2^64 that you have any chance of saving space 08:50:24 a "variant" is a data structure that can represent many literal data types 08:50:26 konichiwa: the additional info is 3 bits 08:50:30 in basic, for example 08:50:32 -!- spradnyesh [n=pradyus@115.184.4.133] has quit [Read error: 60 (Operation timed out)] 08:50:34 Fare [n=Fare@adsl-71-135-52-237.dsl.pltn13.pacbell.net] has joined #lisp 08:50:35 konichiwa: lisp is not basic 08:50:52 konichiwa: lisp implementors are not that foolish 08:51:10 all the additional information can be stored in 2 bits 08:51:25 -!- nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has quit [] 08:51:25 on 64 bit architectures, they use 3 bits to make array access faster 08:51:32 -!- Phoodus [i=foo@ip68-231-37-148.ph.ph.cox.net] has quit [Read error: 54 (Connection reset by peer)] 08:51:52 erm not 56... 60 in that statement above 08:52:54 merry gravmas! 08:53:04 grav? 08:53:19 http://paste.lisp.org/display/92628 08:53:19 are you building a black hole? 08:53:37 why would 30,000 recursive calls to dfsNoLoop use a lot of heap ? 08:53:53 the only thing being kept, in let*, is a list of integers, 30,000 integers 08:53:53 konichiwa: because your code is indented horribly 08:54:02 a LIST 08:54:10 LISTs are data structures 08:54:17 do you expect them to be on the stack? 08:54:33 no 08:54:42 because they're in a let* outside the dfsNoLoop 08:54:53 they aren't allocated on the dfsNoLoop stack 08:55:03 http://soquoted.blogspot.com/2005/12/merry-gravmas.html 08:55:12 well, not "outside", but they're not declared inside dfsNoLoop 08:55:26 ahh newton 08:55:35 yes, merry gravmas 08:55:43 and prisimas 08:55:49 and achemas 08:55:50 i changed that code to use a hash table by the way, much faster 08:55:58 What happened to poor old mithras? 08:56:06 i think clisp must make hashtables for you automatically, because ecl is now about as fast as clisp 08:56:45 konichiwa: if that is the result of your thinking, I suggest you stop thinking 08:56:56 merry christmas 08:57:11 what was wrong with my reasoning ? 08:57:26 hash tables are bigger than lists 08:57:29 i don't know why the search in clisp was so fast, it was as fast as the ecl version once i put in the hash table 08:57:34 and speed has nothing to do with how much consing there is 08:57:38 rahul: i said faster, not heap usage 08:57:56 rahul: i do a search on the list to find if an element is in it 08:57:59 so you're saying completely random things all together 08:58:06 changning the list to a hash table makes that much faster 08:58:11 holy crap 08:58:22 you're doing all this just to implement FIND? 08:58:27 konichiwa: Less incoherence will improve reception. 08:58:29 hahah 08:58:42 konichiwa: you've discovered that hashtables have faster lookup than lists? 08:58:44 yes, find on a list does not use a hash table 08:58:48 SandGorgon [n=OmNomNom@122.162.51.84] has joined #lisp 08:58:49 konichiwa: perhaps it's because hash lookup is O(1) on average, while linear search is O(N) 08:58:59 What would find on a list use a hash table for? 08:59:01 my first day using lisp, no i didn't know that ilsp had the hash table feature 08:59:14 how did you use it, then? 08:59:44 <_deepfire> konichiwa, clisp is actually much slower than ecl 08:59:46 you're right, using a hash table to implement find wouldn't be straight forward 09:00:19 deepfire: not what i found 09:00:19 Well, it would be straight-forward, but odd. You'd need to cache it and handle invalidation for it to be of any use. 09:00:36 deepfire: perhaps clisp is faster for some code 09:00:38 It depends on if you're using ecl's interpreter or its compiler. 09:01:07 based on the speed of clisp in doing a find of an element on the list, i thought it might be using a hash table 09:01:09 <_deepfire> konichiwa, that is a definite possibility, yes 09:01:33 how can you use a hash table when one doesn't exist? 09:01:54 rahul: You could make one exist and then it would be simpler. 09:03:15 rahul is a paid harasser, he works for the cia ... he's just being obstinate because i'm the one who mentioned it 09:03:19 isn't that right, rahul ? 09:03:52 SandGorgon_ [n=OmNomNom@122.162.51.84] has joined #lisp 09:04:13 secret societies are everywhere, conspiracy is everywhere 09:04:31 it's interesting that a century ago, the existence of secret societies were well known, and were discussed in parliament, etc. 09:04:57 they've become more secret ... gotten better at their job 09:05:43 yes, the whole world is out to destroy you 09:05:50 because you're so important 09:05:50 zhivago, can you see why this code would use a lot of heap space ? http://paste.lisp.org/display/92628 09:05:56 spradnyesh [n=pradyus@115.184.10.28] has joined #lisp 09:06:01 -!- cods_ is now known as cods 09:06:07 if it recursive calls dfsNoLoop 30,000 deep for example ? 09:06:30 -!- stoop [n=stoop@unaffiliated/stoop] has quit ["Leaving"] 09:06:33 there is noting on the stack, so it's very odd 09:11:02 how is it odd that there's nothing on the stack yet the memory allocated goes to the heap? 09:11:11 is it supposed to go to some third area? 09:11:47 if each stack frame had a copy of a variable that used the heap 09:12:08 huh? 09:12:11 what does that mean? 09:12:25 what is using the heap? 09:12:31 oh wow 09:12:36 konichiwa is still here? 09:12:41 yes 09:12:44 apparently 09:12:50 or it's a conspiracy of the cia 09:13:13 maybe he's only here because of a cia conspiracy? 09:13:45 konichiwa: Your mental models do not appear to be valid for most lisp systems. 09:14:21 zhivago, in what way ? 09:14:33 In that they are causing you to babble nonsense a lot. 09:14:46 what did i say that was nonsense ? 09:14:49 Stop talking about stack and so on, and you should have less trouble. 09:15:05 konichiwa: something about the stack copying the heap 09:15:24 or maybe copying a use of the heap? 09:15:32 plage [n=user@123.19.66.10] has joined #lisp 09:15:36 Good afternoon! 09:15:55 i said that variables on recursive stack frames could duplicate data uncessarily on the heap 09:16:07 There is no stack in lisp. 09:16:10 konichiwa: it's not clear what your problem is. why do you think it uses "a lot" of heap space?.. you cons memory with push inside dfsNoLoop.. (I already gave you a version that uses cons instead of the ugly push/pop) 09:16:10 i tried to avoid that by putting the variables outside dfsNoLoop 09:17:21 it uses more heap space than i would expect because when it recursively calls dfsNoLoop 30,000 deep it's using 1 gig of heap, and there should only be 30,000 integers in the list 09:17:42 the list bing idPath 09:18:10 Oh, wow! We are still discussing this? 09:18:12 what is using 1 gig of heap? 09:18:23 and how do you claim to know this? 09:18:29 konichiwa: why do you think your dfs is responsible for all of this allocation? 09:18:34 the lisp environment when it evaluates the code 09:18:39 and why do you persist on believing your own lies? 09:18:46 no, not all, but the vast majority 09:18:51 Well, they're not lies -- they're delusions. 09:19:12 delusions are lies that seem real 09:19:32 -!- mishoo [n=mishoo@79.112.110.205] has quit [Success] 09:19:54 I thought we went through this before. There is no implicit copying of heap data structures. 09:19:54 spradnyesh1 [n=pradyus@115.184.95.42] has joined #lisp 09:19:56 mishoo [n=mishoo@79.112.110.205] has joined #lisp 09:19:57 konichiwa: you haven't answered my question 09:20:10 apparently when (push id idPath) occurs in the bottom stack frame, the old idPath lives on in a higher frame 09:20:21 adeht: i don't think it's responsible for all 09:20:27 -!- dek51 [n=eugene@mail.quickpay.ru] has left #lisp 09:20:42 adeht: i said most. because dfs is the only thing the lisp enviornment is evaluating 09:20:43 konichiwa: The two share structure, there is no implicity copying. 09:20:43 konichiwa: substitute "vast majority" for "all" 09:20:53 konichiwa: that's wrong 09:21:09 plage: that is what i thought. so push/pop are not causing the excessive heap usage ? 09:21:11 holy shit 09:21:17 -!- spradnyesh [n=pradyus@115.184.10.28] has quit [Read error: 60 (Operation timed out)] 09:21:27 you're CREATING This massive data structure to be returned and you're suprised that it exists? 09:21:30 *rahul* facepalm 09:21:48 where do i return it ? 09:22:02 it never gets returned 09:22:11 you're RELYING on it as a return value 09:22:25 rahul: where do i rely on it as areturn value? where in the code ? 09:22:28 konichiwa: you're also funcalling generatestate, for example 09:22:37 the recursive call is in the list you build 09:22:45 -!- jewel [n=jewel@vc-41-28-232-243.umts.vodacom.co.za] has quit [Read error: 110 (Connection timed out)] 09:22:48 adeht: there is no use of funcall in the code 09:23:00 not explicity anyway 09:23:07 amaron [n=amaron@cable-89-216-181-46.dynamic.sbb.rs] has joined #lisp 09:23:09 Edico [n=Edico@unaffiliated/edico] has joined #lisp 09:23:12 konichiwa: substitute "calling" for "funcalling" 09:23:29 (dolist (descendent (generatestate lastState )) ; TRUE 09:23:32 VERY explicit 09:23:40 adeht: yes, but generatestate only returns a list with at most 4 elements 09:23:52 so that's another allocation.. 09:24:01 konichiwa: called in a recursive traversal 09:24:27 so you're generating 4 times the number of total calls in the whole traversal 09:24:29 the generatestate returns (integer string) 09:24:34 the 1gb is not allocated all at once 09:24:35 so yes, the string may be the problem 09:24:50 but there's nothing i can do about that 09:24:54 and then there's the list you generate in that same function 09:24:57 nothing? 09:24:59 ok, i think that explains the heap usage 09:25:24 what other list do i generate besides generatestate ? 09:25:28 and inside that list is the recursion 09:25:32 the one you generate! 09:25:35 *rahul* facepalm 09:25:37 i had forgotten taht generatestate returns long strings 09:25:40 do you not see your own code? 09:25:57 maybe your indentation style is confusing you 09:26:18 i don't see another list being generated of significant size besides generatestate, adn the idPath 09:26:29 only the generatestate list is repeated across many recursion calls 09:26:46 and the list that's RIGHT THERE 09:26:52 IN the code you posted 09:26:57 is it the (list (setf ..) (setf ...) 09:27:00 konichiwa: it's not about significant size of lists 09:27:14 konichiwa: it's not that there's at one point in time, 1gb allocated 09:27:14 it's about allocating data recursively 09:27:31 you're taking the input data structure and expanding it recursively 09:27:34 ah, ok, that is a problem 09:27:44 konichiwa: it's that, all in all the evaluation allocated 1gb 09:28:05 how can i change that (list (setf ..) (setf ... ) (push ...) (dfsNoLoop) (pop ..) (setf ...)) 09:28:07 konichiwa: much of which is garbage after return 09:28:14 so that i don't return that from the code ? 09:28:20 konichiwa: why do you need it? 09:28:22 konichiwa: and much of which turned garbage throughout evaluation 09:28:30 konichiwa: it doesn't matter if you return it 09:28:33 you're CREATING it 09:28:41 i need to execute those 6 statments in the false branch of the "if" 09:29:05 and you need a list of all their results? 09:29:14 the list is in existence during the recursion call, so i can see that it can't be garbage collected 09:29:22 jewel [n=jewel@vc-41-30-127-143.umts.vodacom.co.za] has joined #lisp 09:29:22 rahul: I think konichiwa has not heard of progn. 09:29:23 >_> 09:29:36 how can i execute those 6 statements without putting it in a list ? 09:29:39 konichiwa: even if it is collected, it was allcoated 09:29:46 konichiwa: this is what you're complaining about no? 09:29:55 konichiwa: don't put them in a list, that's how! 09:29:59 ecraven [n=nex@octonex.swe.uni-linz.ac.at] has joined #lisp 09:30:08 don't create a data structure out of their results 09:30:15 rahul: how can i avoid putting it in a list 09:30:21 by not calling list! 09:30:28 and still do those stmts in the if ? 09:30:35 -!- nybbles [n=nybbles@CPE000ae6ad1ea9-CM00169240d79c.cpe.net.cable.rogers.com] has quit [] 09:30:56 how do you execute multiple statements on the "false" fork of an if, for example ? 09:30:58 *rahul* wonders how konichiwa is conversing with him and not noticing anything else 09:30:58 clhs progn 09:30:58 http://www.lispworks.com/reference/HyperSpec/Body/s_progn.htm 09:31:01 konichiwa: ^ 09:31:20 konichiwa: isn't documentation fun? 09:31:21 konichiwa: I gave you a version yesterday 09:31:29 adeht: jesus, this has been going on that long? 09:31:30 konichiwa: I assume you've not looked at it 09:31:50 ah, i just replace list with progn 09:31:51 thanks 09:31:53 Ralith: I was asleep for some hours, so I don't know :) 09:32:06 plutonas [n=plutonas@147.52.197.223] has joined #lisp 09:32:45 http://paste.lisp.org/+1ZFC/2 09:33:28 ejs [n=eugen@94-248-28-244.dynamic.peoplenet.ua] has joined #lisp 09:33:54 why is a DFS so complex? 09:34:14 it's not just a dfs 09:35:02 oh, the state graph can have loops 09:35:13 and then there's a depth limit in addition 09:35:24 fair enough 09:35:55 it looked about 2x as complex as needed to be, but there are 2x as many things going on as a simple DFS :) 09:36:27 konichiwa: In Lisp we don't "execute statements", we "evaluate expressions". 09:37:27 dek51 [n=eugene@mail.quickpay.ru] has joined #lisp 09:39:50 not sure if chaning that (list to (pron decreased the heap usage 09:40:13 you said those string were huge 09:41:10 yes, if the recursion is 30,000 deep, then i have strings of length 2 up to 30,0000, so it's basically sum 4 k, k from 1 to 30,000 09:41:26 assuming 4 states are generated at each level 09:41:42 which is a N (N+1) / 2 type of thing 09:42:04 just say N^2 to order of magnitude estimate 09:42:08 konichiwa: ever heard of persistent data structures? 09:42:17 (and tail calls) 09:42:20 that it goes 30k levels deep doesn't mean that dfs-no-loop gets called just 30k times 09:42:39 adeht: that is true 09:42:45 but i don't think that effects the heap usage 09:43:03 konichiwa: if that is the result of your thinking, I suggest you stop thinking 09:43:05 Fare: he doesn't have a real problem.. it just seems he's worried about allocating "a lot" of heap space without any concrete requirements 09:43:07 Fare: i looked up tail calls 09:43:18 it don't see how to easily change it to tail-call form 09:43:18 Fare: tail calls won't help 09:43:27 Fare: it's dfs.. 09:43:36 depth first search? 09:43:40 yes 09:43:44 true, there is no avoiding keeping this information on a stack during the recursion 09:43:48 in a sense 09:43:49 in what tree/graph ? 09:44:03 konichiwa: you claimed that it doesn't matter how many times your function runs, it allocates the same amount of data? 09:44:04 however, i could just keep one copy of the long string, and add and remove letters as i go along 09:44:07 with more work 09:44:20 rahul: you keep saying "stop thinking" and "don't think" .. :( 09:44:22 what is this string? 09:44:35 or not use a string but a chained list or a tree 09:44:40 I think he should think harder :) 09:44:43 adeht: because every time he thinks, he comes up with something patently false 09:45:00 rahul: the memory usage is calculated from the call recursion depth, not the number of function calls 09:45:11 assuming garbage collection 09:45:15 strings are not the be all end all of datastructures. Except maybe in 196X BASIC 09:45:21 konichiwa: how do you know this? 09:45:25 huh? 09:45:32 konichiwa: are you thinking again? 09:45:45 *Fare* remembers the pain of Applesoft BASIC 09:45:53 I suspect that rahul should be saying 'presuming' instead of 'thinking'. 09:45:58 with 24-bit floating point arithmetics! 09:46:12 rahul: based on analyzing the code 09:46:20 konichiwa: what? 09:46:22 rahul: if you believe i'm wrong, explain ? 09:46:38 you're analyzing what code and determining what? 09:46:47 dear god 09:47:06 Ralith: yes, are you calling me? 09:47:38 changing (list to (progn doesnt seem to have reduced the heap usage 09:47:57 maybe because the compiler was smart enough to see that it's not used 09:48:08 Fare: put a stop to this! 09:48:59 Ralith: what is "this"? 09:49:17 iunno 09:49:18 we don't know! 09:49:24 see? 09:49:26 just make it stooooooopppp! 09:49:58 konichiwa: you can try and count how many dfs-no-loop calls there are, and do your back-of-the-envelope calculations based on that 09:50:01 for starters 09:50:39 well, 30,000^2 is about 1 gig 09:50:53 so it's not actually unreasonable it would use around 1, 2 gig as it's implemented now 09:50:54 yay 09:51:03 so at least now i understand why it's using so much heap 09:51:04 you thought correctly! 09:51:13 -!- ejs [n=eugen@94-248-28-244.dynamic.peoplenet.ua] has quit [Read error: 60 (Operation timed out)] 09:51:29 and notice, you said something correct and didn't say "I think" 09:51:30 pr [n=pr@p579CAA14.dip.t-dialin.net] has joined #lisp 09:51:36 ejs [n=eugen@nat.ironport.com] has joined #lisp 09:51:47 how does one remove a character from the end of a string ? "ABCD" => "ABC" ? 09:51:56 and every time you say "I think", you say something that is embarrassingly false 09:52:17 konichiwa: by creating a new string with one less character 09:52:30 i'll admit many times what i think is not entirely true 09:52:47 however i wouldn't go so far as to say embarassingly false 09:53:06 well, that is all I've seen you do 09:53:51 so maybe thinking in my (virtual) presence is a bad thing for you 09:55:33 konichiwa: Why would you want to remove a character from the end of a string? 09:56:20 i'm going to have to keep the string path in a variable in my "let*" outside of the recursive function, and as i recurse down/up add and remove characters at the end 09:56:34 -!- jewel [n=jewel@vc-41-30-127-143.umts.vodacom.co.za] has quit [Read error: 110 (Connection timed out)] 09:56:36 this will avoid having a long path string in each recursive stack frame 09:57:28 and how do you propose to create new strings without using any memory? 09:57:37 If you have only one of those strings, you might want to use a fill pointer. 09:57:54 rittweil [n=rittweil@88-134-20-86-dynip.superkabel.de] has joined #lisp 09:58:01 i don't mind if i use memory as long as it is garbage collected 09:58:01 jewel [n=jewel@vc-41-27-51-16.umts.vodacom.co.za] has joined #lisp 09:58:10 ... 09:58:22 so GARBAGE COLLECT IT 09:58:38 put (gc) after your call to your function 09:59:11 won't help if the memory is still in use in each recursive stack frame 09:59:18 AT THE END 09:59:26 after the call 09:59:30 however, if during a recursive call, i allocate heap memory but don't keep a "reference to it", that's not a problem 09:59:41 do you keep a reference to it? 09:59:49 nonono 09:59:53 a "reference to it" 09:59:53 there is no need to call (gc) normally is there ? 10:00:04 konichiwa: no, but your thinking is abnormal 10:00:07 garbage collection is done automatically 10:00:11 so you need to call gc 10:00:14 konichiwa: right, so what is the problem? 10:00:25 i'm not aware there is a problem 10:00:29 good 10:00:33 THEN STOP COMPLAINING 10:00:37 i decided how to change the code to use less heap 10:00:42 rahul: iirc, a few days ago konichiwa asked why Emacs indents Lisp code so weirdly (he wanted parentheses be intended like braces in C) 10:00:56 rittweil: he asked that just a couple hours ago 10:01:18 :-( 10:01:35 p l says he does similar, but just not the closing parens 10:01:47 which is basically what hidden paren mode does in his IDE apparently 10:02:01 konichiwa: maybe you misunderstood p_l 10:02:07 what? 10:02:10 *rahul* cries 10:02:24 konichiwa: Lisp programmers generally have a very consistent indentation style 10:02:42 so consistent that it's consistent across Lisp programmers ;) 10:03:03 -!- coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has quit [Read error: 104 (Connection reset by peer)] 10:03:12 indeed 10:03:23 this was p l's example http://www.foldr.org/~michaelw/emacs/color-box.png 10:03:30 I'm sure p_l is largely conformant with the standard. 10:03:32 coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has joined #lisp 10:03:43 My god. is I went to sleep 3 hrs ago and this thing that started with topo is still going strong 10:03:44 konichiwa: if you paid any attention whatsoever, you'd know that that isn't his environment at all :P 10:04:08 woah 10:04:19 only 3 hours 10:04:19 konichiwa: the code in this example uses the ordinary Lisp style 10:04:28 I thought this was going on for more like 8 or 9 10:04:31 that hide parent mode gets me both excited and also very nooOOOooOoo 10:04:49 I had a similar reaction 10:04:50 rahul: well it was. I just went away for 3 hrs. I'm sure it had been going on for atleast 5 by then :) 10:05:00 *Ralith* is ultimately perfectly happy with parens, though. 10:05:11 Yes. I like parens. 10:05:47 So what cool stuff are you guys hacking on during christmas? 10:06:36 *schme* isn't hacking. more of the worried sick mode. 10:06:36 (: 10:06:46 + sleep deprevation \o/ 10:07:06 just about to start working on a mcclim rtorrent interface though. 10:07:08 I'm trying to figure out how to get class redefinition to work in formulate 10:07:59 rahul is just mad at me cuz i said i liked javascript better than lisp 10:08:14 konichiwa: I don't think rahul cares what you like (: 10:08:27 -!- quek [n=read_eva@117.102.187.225.static.zoot.jp] has left #lisp 10:08:40 if you like javascript then you should be overjoyed with how fast your code is now 10:09:01 can you open files with javascript? 10:09:32 no, some implementations of ecmascript you can 10:10:33 Zhivago's Lisp compiles to JavaScript :-) 10:10:50 and people talk about that language as if it's general-purpose. neat. 10:10:58 rittweil: I guess it's not a CL impl? 10:11:37 Sergio` [n=Sergio`@a89-152-187-193.cpe.netcabo.pt] has joined #lisp 10:11:44 adeht: With google handling all of ones file needs, maybe opening files is not actually something that is necessary. 10:12:10 Ralith: It's his own dialect 10:12:22 schme: I see 10:14:29 I suggest we standardize a WITH-GOOGLE-MAGIC macro 10:14:39 udzinari [n=user@19.221.broadband4.iol.cz] has joined #lisp 10:15:03 ehehehehe 10:15:28 All SLIME buffers suddenly filled with directed google ads too. 10:16:08 -!- Fare [n=Fare@adsl-71-135-52-237.dsl.pltn13.pacbell.net] has quit ["Leaving"] 10:19:04 -!- ejs [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 10:19:38 Athas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has joined #lisp 10:20:54 -!- bombshelter13b [n=bombshel@76-10-149-209.dsl.teksavvy.com] has quit [Remote closed the connection] 10:24:15 -!- spoofy [n=spoof@78.31.74.25] has quit [Read error: 113 (No route to host)] 10:27:18 -!- spradnyesh1 [n=pradyus@115.184.95.42] has left #lisp 10:30:27 -!- jewel [n=jewel@vc-41-27-51-16.umts.vodacom.co.za] has quit [Read error: 110 (Connection timed out)] 10:31:02 spilman [n=spilman@ARennes-252-1-82-179.w90-25.abo.wanadoo.fr] has joined #lisp 10:32:33 jewel [n=jewel@vc-41-27-17-100.umts.vodacom.co.za] has joined #lisp 10:33:53 anybody have a tool to browse/search #lisp logs (except firefox/google)? 10:33:58 pemryan [n=pem@159.226.35.246] has joined #lisp 10:34:21 w3m? 10:34:44 schme: I mean a lisp tool 10:34:53 not browser 10:34:56 closure? 10:34:58 ah too slow. 10:35:23 Where are the #lisp logs anyhoo? How would one browse 'em? 10:35:36 udzinari: I just wget them all and use my ordinary Unix tools. Works great! 10:35:59 I'm thinking maybe something with drakma and some mcclim... 10:36:01 (: 10:36:02 minion logs 10:36:24 minion: logs 10:36:24 logs: #lisp logs are available at http://ccl.clozure.com/irc-logs/lisp/ (since 2008-09) and http://tunes.org/~nef/logs/lisp/ (since 2000) 10:36:36 plage: pffft. Why such simple solutions when you can go complex overkill :( 10:36:50 schme: guilty as charged. 10:37:07 plage: yep that is simple 10:37:15 interesting, keeping the path off the stack frame sovled the heap problem for clisp, but not for ecl 10:37:25 woher. they also keep the logs stored as sexps. 10:37:32 ecl apparently allocates heap during my concat and doesn't know it can gc it 10:37:59 konichiwa: What is your heap problem? 10:38:23 http://paste.lisp.org/display/92628 10:38:39 udzinari: In case anyone thinks it takes up a lot of room, all the logs from tunes take less than 200MB. 10:38:41 og god. 10:38:47 i'm new to lisp, i had a hard time finding where heap was bing used in the 30,000 + recursion calls to dfsNoLoop 10:38:58 -!- Jabberwockey [n=jens@82.113.106.221] has quit [Read error: 110 (Connection timed out)] 10:39:09 konichiwa: I can tell by how you place your parens. 10:39:10 interesting, with the change, it maxes out at a recrusiondepth of 93,000 calls 10:39:31 plage: I am thinking to add log search to specbot.. or write a new one for it 10:39:32 konichiwa: Don't put parens by themselves on a line. 10:39:33 i'm not running out of heap or stack (yet) .. whether it ever finds a solution is another question 10:39:42 konichiwa: Don't use CamelCase identifiers. 10:39:43 plage: so you can search em from here 10:39:44 if it does find a solution, it could be one with 93,000 moves 10:40:06 konichiwa: I didn't quite read and/or bother understanding your code. But if you are not actually running out of heap and/or stack. Then what is the actual problem? 10:40:13 in C there are many different coding styles, is that not so for lisp ? 10:40:16 konichiwa: Maybe ECL is not GCing because there is no need for it. 10:40:25 konichiwa: If you submit your code for others to read, please use the standard way of formating it. 10:40:25 scheme: i was 10:40:28 konichiwa: Sure there are different coding styles. But not different idention styles ;) 10:40:45 scheme: i changed the code so that it does not use a lot of heap in each stack frame 10:40:50 konichiwa: It is pretty standardized. 10:40:51 -!- ace4016 [i=ace4016@cpe-76-170-134-79.socal.res.rr.com] has quit ["When there's nothing left to burn, you have to set yourself on fire."] 10:41:01 no i don't run out of heap or stack, it's at 94,000 recursion levels 10:41:07 no = now 10:41:14 I remember someone saying that after one had written a lot of lisp one did not see the parens any more. This is clearly I lie. like this paste here I see 'em bright and clear. 10:41:16 ejs [n=eugen@77.222.151.102] has joined #lisp 10:41:21 konichiwa: oh excellent :) 10:41:26 but one thing was interesting, the change fixed the problem in clisp, not ecl 10:42:19 konichiwa: Don't put whitespace after '(' or before ')' 10:42:41 konichiwa: Put a whitespace before the first '(' in a group and after the last ')' in a group. 10:42:53 konichiwa: That should keep you busy for a while. 10:43:36 minion: tell konichiwa about style 10:43:36 konichiwa: please look at style: http://mumble.net/~campbell/scheme/style.txt 10:43:49 konichiwa: Oh add: use the most specific construct that will do the job, so (1+ x) instead of (+ x 1) and (1- x) instead of (- x 1) 10:44:11 konichiwa: And use standard indentation. You can get that by including slime-indentation in your slime-setup. 10:44:32 ace4016 [i=ace4016@cpe-76-170-134-79.socal.res.rr.com] has joined #lisp 10:44:48 konichiwa: Instead of (setf x (1+ x)) use (incf x) 10:44:51 konichiwa: http://paste.lisp.org/display/92628#1 I did a quicx fix for ya. 10:45:01 oer didn't even see the incf decf :) 10:45:17 konichiwa: idem for (decf x) 10:45:25 eep 10:45:30 paste wrong. missed a line 10:45:59 ithat is pretty easy to read, thanks 10:46:13 konichiwa: I missed a line at the end. 10:46:18 your camelCase is not easy to read at all 10:46:41 konichiwa: And it seems you are still doing list instead of progn? 10:47:08 konichiwa: I suggest you fix up all of those problems and then resubmit. 10:47:09 yes, plage, i wasn't worried about that, he was just illustrating the style 10:47:37 konichiwa: What was it that you weren't worried about? 10:47:54 i don't think i was worried about anything ... 10:48:09 -!- ejs [n=eugen@77.222.151.102] has quit [Read error: 60 (Operation timed out)] 10:48:16 konichiwa: But what I am saying is that you *should* be worried about the things I pointed out. 10:48:27 konichiwa: Basically if you use slime-indentation in emacs it will indent stuff like it "should" be (most of the time). just don't put them ('s and )'s on lines by emselves :) 10:48:31 plage: i did chane it to plage 10:48:38 plage: that's not the latest version 10:48:46 -!- huangjs` [n=user@watchdog.msi.co.jp] has quit [Remote closed the connection] 10:48:50 that's the same paste from before, i haven't put up the newest veresion 10:48:54 konichiwa: Why did you submit a version that is not the latest? 10:48:57 you want to see the newest vereison ? 10:49:02 i didn't 10:49:06 plage: I asked what the problem was. that's why :) 10:49:11 i just pasted the same url i pasted earlier 10:49:35 konichiwa: Wait and paste the latest version only after you fixed all the problems that were pointed out to you. 10:50:27 decf, incf x, good idea, i didn't know about those 10:50:49 *schme* orders some books then. 10:51:35 ejs [n=eugen@nat.ironport.com] has joined #lisp 10:52:58 konichiwa: you made the code worse since yesterday, and while doing that, did things badly.. someone corrects the latter, but the code is still worse 10:54:06 the current version doesn't have the stack or heap problems, so from a functionality view it's better at least 10:54:12 and it seems to run pretty fast 10:54:18 konichiwa: cools :) 10:54:52 one thing i'd like to improve is to find away to avoid defining variables in the "let*" instead of passing them into dfsNoLoop 10:55:05 in C or C++ i would just pass in a pointer or reference, and work on the same heap object 10:55:15 but in lisp i don't know how to do that, or if it's possible 10:55:26 spradnyesh [n=pradyus@115.184.111.57] has joined #lisp 10:55:29 konichiwa: That is what you do when you pass the variable. It's pretty much a reference. 10:55:34 konichiwa: It happens by default in lisp, as we have told you many times. 10:55:43 konichiwa: But you could wrap the DEFUN in a LET*. 10:55:52 He might need to learn about 'places'. 10:56:15 (defun foo (x) (push 3 x)) 10:56:20 who is minions author? Krystof? 10:56:26 konichiwa: Anyway with the camelCase and the parens. You will find that lispers are very grumpy about people not following the religion of Correct Indentation, and No Camel Case. You shouldn't do things to different from the crowd ;) 10:56:26 when i call (foo x) x is not modified 10:56:36 konichiwa: Yes, it is. 10:56:41 Lisp, like C, uses pass-by-value 10:56:45 Not in the caller. 10:56:51 konichiwa: The local x in foo is. 10:56:56 plage: it doesn't appear to be when i evaluate it in the interpreter 10:57:01 konichiwa: That is just like in C 10:57:23 So, instead use something like (lambda (v) (push v x)) 10:57:52 i don't undersand how that would help 10:58:07 Well, that's just one of many things you don't understand. 10:58:14 Why not ask a question instead? 10:58:34 i don't know what question to ask 10:58:45 Well, that sounds like a fundamental problem. 10:58:52 Which part of my example do you not understand? 10:59:10 i understand your example 10:59:24 Then why don't you understand why it would avoid that problem? 11:00:26 seems to do the same as just eval (push 3 x) 11:00:28 ThomasI [n=thomas@unaffiliated/thomasi] has joined #lisp 11:00:35 -!- udzinari [n=user@19.221.broadband4.iol.cz] has left #lisp 11:00:47 And that doesn't have the problem you were complaining about, does it? 11:00:47 konichiwa: but which X? 11:00:49 if i evl ( (lambda ... ) 3 ) 11:00:59 Then what happens? 11:01:26 udzinari [n=user@19.221.broadband4.iol.cz] has joined #lisp 11:01:31 the code in lambda is evaluated with 3 as the replacment for "v" 11:02:04 It must be difficult to go through life being unable to answer simple questions in any meaningful fashion ... 11:02:52 i don't think this is the source of my difficulties in life 11:03:07 whether or not i answer questions meaningfully is a matter of opinion i suppose 11:03:34 or perhaps whether my answer is meaningful is dependent on the observer 11:03:40 =) 11:03:50 konichiwa: (let ((x 1)) (defun foo (x) (setf x 7)) (foo x) x) do you understand why this returns 1 ? 11:04:22 the point is that push modifies its second operand 11:04:30 c|mell [n=cmell@115.67.135.8] has joined #lisp 11:04:55 in the case of (defun foo (x) (push 3 x)) it modifies a binding that's created when foo is called 11:05:34 in the case of (lambda () (push 3 x)), x refers to a binding that already exists somewhere else 11:06:05 so in your first example, x was bound to the element 1 11:06:18 foo got a local copy of that binding when x was passed in 11:06:28 and modified that local binding to be to the element 7 11:06:36 which didn't effect the original binding 11:06:41 konichiwa: This is the same thing with your (defun foo (x) (push x 7)) 11:06:52 ok, yes, that makes sense 11:06:52 eeh or push 3 x 11:06:53 sorry. 11:08:07 so if i have (setq x '(1 2)) (push 3 x) 11:08:13 this returns (3 1 2) 11:08:19 and x will still be (1 2) 11:08:27 No, x will be modified. 11:08:39 ah, right 11:08:42 then we will scream at you for not doing (setq x (list 1 2)) ;) 11:08:50 So much for delusions of having understood it completely. 11:08:54 schme: there's no problem here 11:08:54 x will be (3 1 2) and the (1 2) list exists still, but gets gc 11:09:00 the original (1 2) list is not modified 11:09:09 adeht: I never see a problem :P 11:09:28 is that correct ? 11:09:30 spoofy [n=spoof@78.31.74.25] has joined #lisp 11:09:33 konichiwa: the original (1 2) is still the cdr of x. NO STRUCTURE IS IMPLICITLY COPIED. 11:09:37 konichiwa: hopefully the ol' (1 2) will be used for the (3 1 2) so not gc'd :) 11:09:50 say i do (setq x '(1 2)) (setq y x) (push 3 x) 11:09:58 now x is (3 1 2) and y is (1 2) 11:10:07 yes, they share structure 11:10:19 konichiwa: now modify (first y) :) 11:10:22 but if i modifed the element 2, that would effect both x and y 11:10:28 konichiwa: and (eq (cdr x) y) is true. 11:10:35 konichiwa: yes. 11:10:45 konichiwa: if you modified element 2, santa won't bring you any gifts 11:10:46 -!- spradnyesh [n=pradyus@115.184.111.57] has quit [Read error: 60 (Operation timed out)] 11:11:04 Oh, right, you are not allowed to modify constant data. 11:11:12 so it should be possible to rewrite dfsNoLoop without the outer "let*" without using much additional heap space 11:11:27 plage: You are allowed. consequences are undefined or some oddness. (: 11:11:36 i.e. i can get rid of the "let*" vars and pass them into dfsNoLoop 11:12:11 schme: fair enough 11:12:19 abeaumont [n=abeaumon@84.76.48.250] has joined #lisp 11:12:43 konichiwa: Well maybe. Problem is no one actually read your code because we can't read your way of writing code. So we don't know :) 11:14:59 (setq x "ab") (setq y x) (setq x (concatenate 'string x "c")) 11:15:03 now x is abc 11:15:07 is y ab, or abc ? 11:15:14 -!- kwinz3_ [n=kwinz@85.124.207.20] has quit [Read error: 110 (Connection timed out)] 11:15:35 try it. 11:15:49 i meant setf for the last 11:15:54 #lisp, the new REPL 11:16:04 ... with annotations :) 11:16:05 spradnyesh [n=pradyus@115.184.116.123] has joined #lisp 11:16:17 -!- spradnyesh [n=pradyus@115.184.116.123] has left #lisp 11:16:31 I wonder why SBCL's disassembler shows constant in decimal, and not in hex 11:16:43 CyberBlue [n=yong@111.167.31.52] has joined #lisp 11:17:05 don't you usually want the latter for magic numbers? 11:19:03 (setq x "ab") (setq y x) (setf x (concatenate 'string x "c")) 11:19:07 now x is abc, y is ab 11:19:21 konichiwa: your understanding of setq/setf is... lacking 11:19:36 this must have caused a new string to be allocated 11:19:38 -!- spilman [n=spilman@ARennes-252-1-82-179.w90-25.abo.wanadoo.fr] has quit ["Quitte"] 11:19:42 an "ab" string and an "abc" string 11:20:00 konichiwa: Did you expect y to be "abc" ? Indeed, yes. A new string is alloted. Strings are stored not in the same way as lists. 11:20:05 konichiwa: why do you have the first two setq and the latter one setf? 11:20:23 konichiwa: lists in lisp are made up of CONSes. So you can easily just point it to a new tail. Not so for strings :) 11:20:27 shme: but this is not the case with lists ? 11:20:45 (setq x '(1 2)) (setq y x) (push x 3) 11:21:02 x is now (3 1 2) y is (1 2) and yet we didn't allocate a new list ? 11:21:18 konichiwa: A list is made up of cells that have two slots. one with the "item", and one with a pointer to the tail. 11:21:26 no, the more likely result is that you're staring at the debugger 11:22:16 konichiwa: so when you "add stuff" to a list it just creates a new CONS and points the CDR of that to another cons, or points the cdr of some other cons to that cons. 11:22:26 minion: tell konichiwa about gentle 11:22:26 konichiwa: have a look at gentle: "Common Lisp: A Gentle Introduction to Symbolic Computation" is a smoother introduction to lisp programming. http://www.cs.cmu.edu/~dst/LispBook/ 11:22:53 ok, that makes sense for lists 11:22:58 strings and lists are both sequences 11:23:26 konichiwa: I'm assuming that generally strings are stored as straight chunks of memory. without pointers. 11:23:45 like s" foobar" would allot 6 bytes of memory on the heap after another. 11:23:56 and you can't very well just append something to it because .. well.. maybe there is shit after it. 11:23:57 uhm no quite some more 11:24:02 so you allot a new one. 11:24:08 it would not be possible to add a 3 to the end of (1 2) without effecting y 11:24:14 rittweil: Wha? 11:24:14 because you are modifying the 2 cell 11:24:31 galaxywatcher_ [n=galaxywa@ppp-61-90-20-216.revip.asianet.co.th] has joined #lisp 11:24:37 *schme* lost track of what is y. 11:24:58 (setq x '(1 2)) (setq y x) (push x) 11:25:14 schme: strings are vectors, and they have an array header; I can't remember how big it is, iirc, two words. 11:25:17 konichiwa: they share the same CONses yah. 11:25:21 this makes x (3 1 2) without effecting y. you could not similarly make x (1 2 3) without effecting y 11:25:38 rittweil: How does this matter for my s" foobar" example? It def has no array header in any normal forth. 11:25:49 schme: strings can also be adjustable vectors with fill-pointers and so can be extended via v-p-e.. 11:25:53 uh. 11:26:01 schme: How is forth topic of this channel? 11:26:03 adeht: I pull a comparision from forth and you start telling me about fill-pointers? 11:26:19 rittweil: I did a comparision to explain difference between strings in memory and list. 11:26:34 rittweil: Do you not see a lot of this being also done with C, python, Java? To explain things? 11:26:37 right. 11:27:07 ok, i have a much better understanding of how lists work, and whats happening on the heap when you pass 'm into a fn 11:27:44 seems like i can pass my path list of states into my recursive function, but not the string giving the path in human readable terms 11:27:55 the path is just like (3 9 24 ... ) a list 11:28:07 adeht: obviously vectors can be adjustable in lisp. I have no idea how bringing these ideas in would make explaining lists vs. simple strings easier to grok >< 11:28:09 the string is "XUDRDLL ..." 11:28:09 -!- jewel [n=jewel@vc-41-27-17-100.umts.vodacom.co.za] has quit [Read error: 110 (Connection timed out)] 11:28:29 konichiwa: ya man. now read that gentre intloduction. 11:28:36 schme: I think the subject you're trying to explain it too is much better off reading a Lisp book anyway 11:28:43 if i pass the string in, and modify it in the recrusive function, there is no way to avoid each stack frame putting its own long string on the heap 11:28:53 to 11:29:10 konichiwa: There are always ways... ;) 11:29:13 -!- plage [n=user@123.19.66.10] has left #lisp 11:33:02 i think i'll just keep the vars in the "let*" they use less stack that way anyway 11:33:40 ... 11:33:43 -!- galaxywatcher [n=galaxywa@ppp-58-8-45-10.revip2.asianet.co.th] has quit [Read error: 110 (Connection timed out)] 11:33:43 -!- galaxywatcher_ is now known as galaxywatcher 11:34:21 konichiwa: Stop trying to apply your c++ knowledge to Lisp, it's inappropriate. 11:34:50 was i wrong when i said it would use more stack ? 11:35:50 LET, in general but with some exceptions, does not allocate space. It just establishes bindings, that is a name to value mapping, at compile-time. 11:36:27 yes, rittwell, i said i'd leave the variables used in the recursive function in the outer let, rather than passing them in 11:36:44 i could probably pass some of them in and not use a lot more heap, or really stack. but it's more efficient this way 11:36:53 (: 11:36:53 and i don't feel like messing with it anymore 11:37:20 You have not yet acquired the necessary experience to judge about efficiency in Lisp 11:37:56 rittweil: I believe what konichiwa did is to test different things and notice that some versions stopped working due to running out of heap, and something else was slower. 11:38:12 rittweil: Seems a good way to judge efficiency imo. 11:40:50 well, moving things upwards a frame does get him less stack allocation in this case.. and of course, there's a cost to that 11:41:01 the only true method is the comparative method :) 11:41:24 -!- rittweil [n=rittweil@88-134-20-86-dynip.superkabel.de] has quit ["Java user signed off"] 11:42:12 adeht: i don't move things up a frame 11:42:20 i move them entirlely out of the recursive loop 11:43:01 the recusrive funciton has no arguments, if it did that would use some extra stack space, albeit no extra heap if i do it right 11:43:05 konichiwa: you seem very sure of yourself 11:43:58 i could qualify everything with "i think", true 11:44:32 I thought the idea was to write recursive funcs so they did the nice optimized tail call thing. 11:44:36 maybe in lisp passing arguments to a function doesn't use additional stack space 11:44:39 i could believe it 11:45:06 konichiwa: Not if you write your recursive funcs so they do not have to (: 11:45:13 moving the vars into an outer let just makes matters easier for the compiler 11:45:21 and i haven't put this function into tail-recusrive form 11:45:36 there you go... 11:45:50 *schme* has found that compilers generally are smarter than schme is. 11:47:01 many people seem to jump about tail recursion when they hear about recursion. weird. 11:47:09 konichiwa: if it works and you are happy with the performance. Then all is well (: 11:47:37 kenanb [n=kenanb@88.238.41.174] has joined #lisp 11:50:45 -!- c|mell [n=cmell@115.67.135.8] has quit [Read error: 110 (Connection timed out)] 11:51:38 c|mell [n=cmell@115.67.248.23] has joined #lisp 11:52:25 -!- benny [n=benny@i577A7414.versanet.de] has quit [Read error: 60 (Operation timed out)] 11:53:58 Yuuhi [i=benni@p5483BBE9.dip.t-dialin.net] has joined #lisp 11:56:24 -!- mishoo [n=mishoo@79.112.110.205] has quit [Read error: 110 (Connection timed out)] 12:00:39 -!- c|mell [n=cmell@115.67.248.23] has quit [Read error: 104 (Connection reset by peer)] 12:08:52 -!- kenanb [n=kenanb@88.238.41.174] has left #lisp 12:15:23 -!- sellout [n=greg@c-24-128-48-180.hsd1.ma.comcast.net] has quit [] 12:19:58 -!- adeht [n=death@bzq-84-110-48-219.red.bezeqint.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 12:27:14 -!- partisan [n=partisan@123.108.171.227] has quit [Remote closed the connection] 12:28:28 -!- Beetny [n=Beetny@ppp118-210-25-12.lns20.adl2.internode.on.net] has quit [" Want to be different? Try HydraIRC -> http://www.hydrairc.com <-"] 12:28:42 -!- lichtblau [n=user@port-92-195-41-30.dynamic.qsc.de] has quit [Remote closed the connection] 12:28:52 lichtblau [n=user@port-92-195-41-30.dynamic.qsc.de] has joined #lisp 12:29:29 Odin- [n=sbkhh@adsl-2-92.du.snerpa.is] has joined #lisp 12:31:26 jewel [n=jewel@vc-41-30-87-153.umts.vodacom.co.za] has joined #lisp 12:33:15 billstclair [n=billstcl@unaffiliated/billstclair] has joined #lisp 12:35:46 fiveop [n=fiveop@p579EA2E8.dip.t-dialin.net] has joined #lisp 12:36:30 mishoo [n=mishoo@79.112.110.205] has joined #lisp 12:37:23 shrughes [n=shrughes@pool-108-2-120-130.phlapa.fios.verizon.net] has joined #lisp 12:44:53 cmm [n=cmm@109.64.113.230] has joined #lisp 12:48:29 -!- CyberBlue [n=yong@111.167.31.52] has quit ["Leaving"] 12:49:21 -!- Athas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has quit [Remote closed the connection] 12:56:44 dlowe [n=dlowe@c-24-91-154-83.hsd1.ma.comcast.net] has joined #lisp 12:58:42 -!- jewel [n=jewel@vc-41-30-87-153.umts.vodacom.co.za] has quit [Read error: 60 (Operation timed out)] 13:05:45 OmniMancer [n=OmniManc@122-57-9-130.jetstream.xtra.co.nz] has joined #lisp 13:06:16 Hun [n=hun@p50993726.dip0.t-ipconnect.de] has joined #lisp 13:11:37 joubert [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 13:13:00 joubert_ [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 13:14:19 -!- joubert [n=joubert@user-12ld81k.cable.mindspring.com] has quit [Read error: 60 (Operation timed out)] 13:14:20 -!- joubert_ is now known as joubert 13:17:19 hugod [n=hugod@bas1-montreal50-1279439976.dsl.bell.ca] has joined #lisp 13:19:29 -!- SandGorgon_ [n=OmNomNom@122.162.51.84] has quit [Client Quit] 13:19:38 -!- SandGorgon [n=OmNomNom@122.162.51.84] has quit [Read error: 54 (Connection reset by peer)] 13:19:57 -!- Sergio` [n=Sergio`@a89-152-187-193.cpe.netcabo.pt] has quit [Read error: 60 (Operation timed out)] 13:22:09 reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #lisp 13:22:24 -!- hdurer_ [n=hdurer@nat/yahoo/x-cmcjpjkjmazvouxl] has quit [Read error: 60 (Operation timed out)] 13:23:19 SandGorgon [n=OmNomNom@122.162.51.84] has joined #lisp 13:27:00 kwinz3_ [i=kwinz@213142121207.public.telering.at] has joined #lisp 13:29:48 -!- OmniMancer [n=OmniManc@122-57-9-130.jetstream.xtra.co.nz] has quit [Read error: 110 (Connection timed out)] 13:35:50 -!- hdurer__ [n=hdurer@nat/yahoo/x-hrvyksnktjrmwsyv] has quit [Read error: 110 (Connection timed out)] 13:39:52 bgs100 [n=ian@unaffiliated/bgs100] has joined #lisp 13:45:40 -!- araujo [n=araujo@gentoo/developer/araujo] has quit ["Leaving"] 13:53:55 Sergio` [n=Sergio`@a89-152-187-193.cpe.netcabo.pt] has joined #lisp 13:55:47 joubert_ [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 13:56:32 lacedaemon [n=algidus@ABordeaux-158-1-107-248.w90-60.abo.wanadoo.fr] has joined #lisp 13:58:10 -!- fe[nl]ix [n=algidus@ABordeaux-158-1-127-36.w90-60.abo.wanadoo.fr] has quit [Nick collision from services.] 13:58:13 -!- lacedaemon is now known as fe[nl]ix 13:58:45 -!- Hun [n=hun@p50993726.dip0.t-ipconnect.de] has quit [Remote closed the connection] 14:00:31 -!- SandGorgon [n=OmNomNom@122.162.51.84] has quit [Read error: 110 (Connection timed out)] 14:03:30 -!- Odin- [n=sbkhh@adsl-2-92.du.snerpa.is] has quit [] 14:04:14 -!- kpreid [n=kpreid@72-255-8-14.client.stsn.net] has quit [] 14:04:15 partisan [n=partisan@123.108.171.227] has joined #lisp 14:07:57 plage [n=user@123.19.66.10] has joined #lisp 14:08:01 Good evening! 14:08:08 hello plage 14:08:16 -!- kwinz3_ [i=kwinz@213142121207.public.telering.at] has quit [Read error: 110 (Connection timed out)] 14:08:39 Don't tell me you are still discussing whether list structure gets implicitly copied when you make recursive function calls. 14:09:54 Merry Lispmas! 14:10:07 Hey lispm! To you too! 14:10:31 with snow! 14:10:42 not here, luckily! 14:10:51 ;-) 14:11:42 hi plage 14:11:50 lispm: Hu, Vietnam. 14:11:57 I guessed it 14:11:59 hey fe[nl]ix. Did you find any VO movies? 14:12:14 Merry Lispmas! 14:12:26 -!- joubert [n=joubert@user-12ld81k.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 14:12:26 -!- joubert_ is now known as joubert 14:13:13 lispm: Fröhliche Lispnacht'! 14:13:53 Fröhliche Lispnacht! 14:13:53 -!- partisan [n=partisan@123.108.171.227] has quit [Remote closed the connection] 14:14:24 plage: nothing interesting in pessac. I'll try in Bordeaux 14:15:11 partisan [n=partisan@123.108.171.227] has joined #lisp 14:16:03 kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 14:19:28 fe[nl]ix: Try "Utopia" in Bx center. I hear it's good. 14:20:14 that's one of the places I found :) 14:24:03 benny [n=benny@i577A8F2E.versanet.de] has joined #lisp 14:24:46 -!- hicx174 is now known as `hicx174` 14:24:50 syamajala [n=syamajal@c-76-119-52-223.hsd1.ma.comcast.net] has joined #lisp 14:30:02 -!- partisan [n=partisan@123.108.171.227] has quit [Read error: 104 (Connection reset by peer)] 14:30:58 -!- `hicx174` is now known as hicx174```` 14:32:00 leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has joined #lisp 14:32:58 -!- hicx174```` is now known as ^^^ 14:34:21 Athas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has joined #lisp 14:35:47 Axius [n=ade@92.82.76.172] has joined #lisp 14:35:59 -!- ^^^ is now known as ^^ 14:36:10 -!- Axius [n=ade@92.82.76.172] has quit [Read error: 104 (Connection reset by peer)] 14:36:47 -!- ^^ is now known as hicx174 14:36:48 -!- dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has quit [Read error: 54 (Connection reset by peer)] 14:47:24 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit ["Leaving"] 14:52:52 -!- plage [n=user@123.19.66.10] has quit [Read error: 110 (Connection timed out)] 14:53:18 ejs1 [n=eugen@77.222.151.102] has joined #lisp 14:57:39 partisan [n=partisan@123.108.171.227] has joined #lisp 14:58:31 _JFT_ [n=_JFT_@bas1-quebec14-1177670875.dsl.bell.ca] has joined #lisp 14:58:51 -!- _JFT_ [n=_JFT_@bas1-quebec14-1177670875.dsl.bell.ca] has quit [Remote closed the connection] 14:59:05 _JFT_ [n=_JFT_@bas1-quebec14-1177670875.dsl.bell.ca] has joined #lisp 15:00:05 kwinz3 [n=kwinz@213162066157.public.t-mobile.at] has joined #lisp 15:01:36 Guthur [n=Michael@host81-159-209-251.range81-159.btcentralplus.com] has joined #lisp 15:02:44 -!- konr [n=user@187.88.188.76] has quit [Remote closed the connection] 15:03:40 -!- Athas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has quit [Remote closed the connection] 15:04:25 -!- ejs1 [n=eugen@77.222.151.102] has quit ["This computer has gone to sleep"] 15:05:20 milanj [n=milan@109.93.200.242] has joined #lisp 15:05:29 -!- ejs [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 15:07:05 -!- xenosoz2 [n=xenosoz@pe.snu.ac.kr] has quit [Remote closed the connection] 15:07:41 xenosoz2 [n=xenosoz@pe.snu.ac.kr] has joined #lisp 15:08:59 -!- kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Client Quit] 15:09:51 mstevens [n=mstevens@81.2.103.24] has joined #lisp 15:10:43 joubert_ [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 15:12:18 rittweil [n=rittweil@88-134-20-86-dynip.superkabel.de] has joined #lisp 15:12:48 rares [n=rares@174-22-228-98.phnx.qwest.net] has joined #lisp 15:13:29 -!- joubert [n=joubert@user-12ld81k.cable.mindspring.com] has quit [Read error: 60 (Operation timed out)] 15:13:29 -!- joubert_ is now known as joubert 15:16:08 -!- rares [n=rares@174-22-228-98.phnx.qwest.net] has quit [Read error: 60 (Operation timed out)] 15:16:53 rares [n=rares@174-22-228-98.phnx.qwest.net] has joined #lisp 15:18:57 -!- syamajala [n=syamajal@c-76-119-52-223.hsd1.ma.comcast.net] has quit ["Leaving..."] 15:18:58 nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has joined #lisp 15:21:36 -!- kwinz3 [n=kwinz@213162066157.public.t-mobile.at] has quit [Read error: 54 (Connection reset by peer)] 15:24:02 -!- akamaus [n=maus@78.31.79.209] has quit [Read error: 110 (Connection timed out)] 15:27:00 -!- _JFT_ [n=_JFT_@bas1-quebec14-1177670875.dsl.bell.ca] has quit [] 15:29:53 lukego_ [n=lukegorr@adsl-89-217-222-16.adslplus.ch] has joined #lisp 15:30:58 -!- fiveop [n=fiveop@p579EA2E8.dip.t-dialin.net] has quit [Read error: 104 (Connection reset by peer)] 15:34:07 -!- lukego [n=lukegorr@adsl-89-217-222-16.adslplus.ch] has quit [Read error: 60 (Operation timed out)] 15:34:07 -!- lukego_ is now known as lukego 15:34:28 fiveop [n=fiveop@p579EA2E8.dip.t-dialin.net] has joined #lisp 15:42:31 -!- ASau` [n=user@77.246.231.47] has quit ["off"] 15:42:55 -!- pemryan [n=pem@159.226.35.246] has quit [Remote closed the connection] 15:45:04 kwinz3 [n=kwinz@91-113-28-127.adsl.highway.telekom.at] has joined #lisp 15:45:15 -!- lispm [n=joswig@f054052136.adsl.alicedsl.de] has quit [Remote closed the connection] 15:47:58 -!- rares [n=rares@174-22-228-98.phnx.qwest.net] has quit [Remote closed the connection] 15:48:45 joubert_ [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 15:51:50 -!- legumbre_ [n=leo@r190-135-27-117.dialup.adsl.anteldata.net.uy] has quit [Read error: 60 (Operation timed out)] 15:58:44 _JFT_ [n=_JFT_@bas1-quebec14-1177670875.dsl.bell.ca] has joined #lisp 16:04:09 dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has joined #lisp 16:05:10 -!- joubert [n=joubert@user-12ld81k.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 16:05:10 -!- joubert_ is now known as joubert 16:06:14 jewel [n=jewel@vc-41-27-32-76.umts.vodacom.co.za] has joined #lisp 16:06:37 freiksenet [n=freiksen@YYYKDLXXXV.gprs.sl-laajakaista.fi] has joined #lisp 16:08:56 gko [n=gko@122-116-15-138.HINET-IP.hinet.net] has joined #lisp 16:11:48 kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 16:12:48 -!- gko [n=gko@122-116-15-138.HINET-IP.hinet.net] has quit [Client Quit] 16:13:05 well, RISC is truly dead: fujitsu's SPARC VIII-fx's getting variable length instruction encoding. 16:13:15 gko [n=gko@122-116-15-138.HINET-IP.hinet.net] has joined #lisp 16:14:05 sounds risky 16:14:08 *Adlai* ducks 16:18:53 -!- kwinz3 [n=kwinz@91-113-28-127.adsl.highway.telekom.at] has quit [Read error: 110 (Connection timed out)] 16:22:29 akamaus [n=maus@78.31.79.209] has joined #lisp 16:23:24 Joreji [n=thomas@77-20-0-213-dynip.superkabel.de] has joined #lisp 16:25:23 -!- grouzen [n=grouzen@91.214.124.2] has quit [Read error: 110 (Connection timed out)] 16:26:44 -!- kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 16:27:59 Odin- [n=sbkhh@adsl-2-92.du.snerpa.is] has joined #lisp 16:28:30 -!- dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has quit [Read error: 113 (No route to host)] 16:31:01 hi guys, i'll appoint some things 16:32:31 -!- nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has quit [Read error: 54 (Connection reset by peer)] 16:32:42 nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has joined #lisp 16:33:38 dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has joined #lisp 16:36:20 (setq x '((1) (2))) (setq y x) (push '(3) x), x is '((3) (1) (2)), y is '((1) (2)), if i do (setf (first y) '(4)) then y is '((4) (2)) and x is evil-ly side-effected '((3) (4) (2)) instead of '((3) (1) (2)), right? 16:38:52 why are you asking? can't you check at the repl? 16:41:28 Davidbrcz [n=david@ANantes-151-1-58-74.w81-250.abo.wanadoo.fr] has joined #lisp 16:43:18 yes, it's right, clisp did well it. 16:43:53 -!- dlowe [n=dlowe@c-24-91-154-83.hsd1.ma.comcast.net] has quit ["Leaving."] 16:45:42 ohh, the pharentesis are useless, they are finally (4 2) and evil (3 4 2) respectively, tested in clisp. 16:46:21 minion: tell eldragon about gentle 16:46:21 eldragon: look at gentle: "Common Lisp: A Gentle Introduction to Symbolic Computation" is a smoother introduction to lisp programming. http://www.cs.cmu.edu/~dst/LispBook/ 16:47:03 I find that info item in minion odd. "smoother introduction". Smoother than what? 16:47:33 than other introductions 16:48:32 Right. But with just that info item popping out it is referencing to nothing. 16:49:32 -!- freiksenet [n=freiksen@YYYKDLXXXV.gprs.sl-laajakaista.fi] has quit [Remote closed the connection] 16:50:36 clisp is just made for not being in all referential-transparency. 16:51:23 what? 16:52:04 I don't think I have visited #lisp over the xmas before. Is every xmas like this? 16:52:09 joubert_ [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 16:55:54 joubert__ [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 16:57:07 Merry Christmas schme! 16:57:12 -!- joubert_ [n=joubert@user-12ld81k.cable.mindspring.com] has quit [Read error: 60 (Operation timed out)] 16:57:44 *schme* LAUGHS 16:57:53 ejs [n=eugen@92-49-213-68.dynamic.peoplenet.ua] has joined #lisp 16:58:42 Adlai: that made me laugh :D 17:03:08 adeht [n=death@bzq-84-110-48-219.red.bezeqint.net] has joined #lisp 17:04:19 Using special declarations to influence the expansion of macros, is quite cool. 17:04:23 pkhuong: as an instruction stream compression strategy 17:04:25 ? 17:04:47 -!- ThomasI [n=thomas@unaffiliated/thomasi] has quit ["Bye Bye!"] 17:06:22 joubert_ [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 17:08:46 -!- joubert [n=joubert@user-12ld81k.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 17:08:46 -!- joubert_ is now known as joubert 17:12:56 jewel_ [n=jewel@vc-41-27-136-199.umts.vodacom.co.za] has joined #lisp 17:13:03 -!- jewel [n=jewel@vc-41-27-32-76.umts.vodacom.co.za] has quit [Read error: 110 (Connection timed out)] 17:14:20 joubert_ [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 17:15:12 -!- gko [n=gko@122-116-15-138.HINET-IP.hinet.net] has quit ["rcirc on GNU Emacs 23.1.1"] 17:15:25 -!- fiveop [n=fiveop@p579EA2E8.dip.t-dialin.net] has quit [Read error: 104 (Connection reset by peer)] 17:20:05 FullMetalHarlot [n=rot13@d198-53-209-189.abhsia.telus.net] has joined #lisp 17:20:32 -!- hugod [n=hugod@bas1-montreal50-1279439976.dsl.bell.ca] has quit [] 17:20:50 hugod [n=hugod@bas1-montreal50-1279439976.dsl.bell.ca] has joined #lisp 17:22:34 -!- _JFT_ [n=_JFT_@bas1-quebec14-1177670875.dsl.bell.ca] has quit [] 17:22:45 -!- joubert__ [n=joubert@user-12ld81k.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 17:23:01 lat [n=lat@125.167.140.159] has joined #lisp 17:23:11 fiveop [n=fiveop@p579EA2E8.dip.t-dialin.net] has joined #lisp 17:23:37 -!- whoppix [n=whoppix@ti0021a380-dhcp0681.bb.online.no] has quit [Read error: 60 (Operation timed out)] 17:26:29 araujo [n=araujo@gentoo/developer/araujo] has joined #lisp 17:27:05 -!- mrSpec [n=Spec@unaffiliated/mrspec] has left #lisp 17:28:00 gruseom [n=daniel@S0106001217057777.cg.shawcable.net] has joined #lisp 17:29:14 -!- FullMetalHarlot [n=rot13@d198-53-209-189.abhsia.telus.net] has quit ["I plead the fifth"] 17:30:39 does cffi:foreign-funcall-pointer expect the function pointer address size to be the size of an int 17:30:51 -!- joubert [n=joubert@user-12ld81k.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 17:30:51 -!- joubert_ is now known as joubert 17:30:52 i seem to have one that is larger than usual 17:31:22 (SB-SYS:INT-SAP #X7FFFF3EFA4F0) 17:32:43 joubert_ [n=joubert@user-12ld81k.cable.mindspring.com] has joined #lisp 17:34:03 -!- joubert [n=joubert@user-12ld81k.cable.mindspring.com] has quit [Read error: 60 (Operation timed out)] 17:34:03 -!- joubert_ is now known as joubert 17:34:48 jordyd [n=JordyD@99-177-65-75.lightspeed.wepbfl.sbcglobal.net] has joined #lisp 17:37:15 Hmm.. To me logic suggests it could be any size your OS supports. no ? 17:37:46 schme ya i thought as much, though i did read something that says you can't make assumptions about it 17:37:55 sellout [n=greg@pool-71-123-34-153.phlapa.fios.verizon.net] has joined #lisp 17:38:00 but that may have been specific to C++ 17:38:15 marioxcc [n=user@200.92.161.137] has joined #lisp 17:38:19 but that is the address i am getting back 17:38:24 and it seems too big 17:38:31 Why too big? 17:38:34 -!- joubert [n=joubert@user-12ld81k.cable.mindspring.com] has quit [Read error: 60 (Operation timed out)] 17:38:40 rittweil pasted "special declaration influencing macro expansion" at http://paste.lisp.org/display/92633 17:38:45 int seems too small. Isn't max of int generally 65k or so? 17:39:08 umm ya suppose 17:39:38 Does it work? 17:39:41 noope 17:39:48 ok 17:39:50 :( 17:40:03 it does seem a bit big. but maybe you have tonsa RAM. 17:40:34 hehe, nope, maybe i am using foreign-funcall-wrong 17:40:39 (: 17:41:07 -!- fiveop [n=fiveop@p579EA2E8.dip.t-dialin.net] has quit [Read error: 60 (Operation timed out)] 17:41:49 joubert [n=joubert@user-0cev9v9.cable.mindspring.com] has joined #lisp 17:42:12 umm i think i am actually 17:47:22 Athas [n=athas@0x50a157d6.alb2nxx15.dynamic.dsl.tele.dk] has joined #lisp 17:50:01 loxs [n=loxs@82.137.72.133] has joined #lisp 17:51:42 whoppix [n=whoppix@ti0021a380-dhcp0681.bb.online.no] has joined #lisp 17:53:55 pkhuong: MIPS sounds still well off... 17:54:00 b4|hraban [n=b4@a83-163-41-120.adsl.xs4all.nl] has joined #lisp 17:55:42 -!- xenosoz2 [n=xenosoz@pe.snu.ac.kr] has quit [Remote closed the connection] 17:56:17 -!- joubert [n=joubert@user-0cev9v9.cable.mindspring.com] has quit [] 17:56:19 xenosoz2 [n=xenosoz@pe.snu.ac.kr] has joined #lisp 17:58:45 _JFT_ [n=_JFT_@bas1-quebec14-1177670875.dsl.bell.ca] has joined #lisp 17:58:49 Mik8y [n=user@122.47.115.98] has joined #lisp 18:00:45 -!- ejs [n=eugen@92-49-213-68.dynamic.peoplenet.ua] has quit [Read error: 60 (Operation timed out)] 18:02:31 -!- sellout [n=greg@pool-71-123-34-153.phlapa.fios.verizon.net] has quit [] 18:04:40 -!- mstevens [n=mstevens@81.2.103.24] has quit [] 18:05:22 -!- jordyd [n=JordyD@99-177-65-75.lightspeed.wepbfl.sbcglobal.net] has quit [Read error: 54 (Connection reset by peer)] 18:05:57 OmniMancer [n=OmniManc@122-57-9-130.jetstream.xtra.co.nz] has joined #lisp 18:06:00 -!- Mik8y [n=user@122.47.115.98] has left #lisp 18:07:22 -!- ia [n=ia@89.169.161.244] has quit [Read error: 60 (Operation timed out)] 18:09:40 -!- loxs [n=loxs@82.137.72.133] has quit [Connection timed out] 18:15:47 -!- Joreji [n=thomas@77-20-0-213-dynip.superkabel.de] has quit [Read error: 60 (Operation timed out)] 18:19:46 -!- _JFT_ [n=_JFT_@bas1-quebec14-1177670875.dsl.bell.ca] has quit [] 18:21:39 jinok [n=jason@ip72-192-77-18.ok.ok.cox.net] has joined #lisp 18:23:50 grouzen [n=grouzen@91.214.124.2] has joined #lisp 18:23:57 ia [n=ia@89.169.161.244] has joined #lisp 18:24:27 -!- partisan [n=partisan@123.108.171.227] has quit [Remote closed the connection] 18:24:34 -!- leo2007 [n=leo@cpc2-cmbg15-2-0-cust694.5-4.cable.virginmedia.com] has quit ["rcirc on GNU Emacs 23.1.90.1"] 18:25:15 schme: um int on 64 bit archs is 64 bits, I thought... 18:25:24 and it's 32 bit on 32 bit archs 18:25:45 or rather, ILP 64 archs have 64 bit ints, and I think amd64 is ILP 64 18:27:35 rittweil: I would not do it that way 18:27:49 rahul: main() { printf("%d", sizeof(int)); } => 4 uname -m => x86_64 18:27:51 rittweil: I would have a keyword option... but your syntax doesn't have a good place for that 18:27:57 rahul: Was it anything else? 18:28:12 mikezor [n=mikael@c-5de570d5.04-404-7570701.cust.bredbandsbolaget.se] has joined #lisp 18:28:28 schme: I know there was discussion as to whether to make amd64 ILP 64 or LP 64... I guess it's LP 64, then... 18:28:53 anyway, ints are 32 bit, not 16 bit 18:28:54 don't confuse ISA with ABI here 18:29:07 lichtblau: right, in the context of linux 18:29:20 -!- Davidbrcz [n=david@ANantes-151-1-58-74.w81-250.abo.wanadoo.fr] has quit [Remote closed the connection] 18:29:26 Well I'll let you boys keep up this very interesting discussion on your own. 18:30:34 schme: and he was seeing a negative number... 18:30:54 and your logic is way off :) 18:31:02 Guthur: a pointer should be pointer-sized 18:31:07 rahul: unsigned byte representing negative numbers? 18:31:14 Guthur: void * is a common way to do that 18:31:29 schme: 2's complement 18:31:38 heff all I say is an int is too small to represent a pointer. 18:32:18 Guthur: try it using a pointer type and see if it stays negative 18:32:46 if it does, then you're probably getting an error value being returned 18:33:03 although that's a pretty big error value 18:33:06 -!- Adlai [n=Adlai@unaffiliated/adlai] has quit [Excess Flood] 18:33:38 Adlai [n=adlai@unaffiliated/adlai] has joined #lisp 18:33:43 rahul: intptr_t. 18:34:05 pkhuong: a C99 thing, I assume 18:34:11 rahul: LP64. Except on win64, where it's LLP64. 18:34:23 pkhuong: ok 18:35:57 -!- jewel_ [n=jewel@vc-41-27-136-199.umts.vodacom.co.za] has quit [Read error: 110 (Connection timed out)] 18:36:06 *pkhuong* got hacker's delight for christmas (: 18:36:50 Axius [n=ade@92.82.72.205] has joined #lisp 18:36:54 -!- reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 18:37:03 -!- Axius [n=ade@92.82.72.205] has quit [Read error: 54 (Connection reset by peer)] 18:37:23 pbusser [n=Brucio-8@ip138-238-174-82.adsl2.static.versatel.nl] has joined #lisp 18:37:29 rares [n=rares@174-22-228-98.phnx.qwest.net] has joined #lisp 18:38:18 -!- rares [n=rares@174-22-228-98.phnx.qwest.net] has left #lisp 18:38:49 jewel_ [n=jewel@vc-41-29-77-24.umts.vodacom.co.za] has joined #lisp 18:39:00 Moin moin! 18:39:57 -!- mikezor_ [n=mikael@c-5de570d5.04-404-7570701.cust.bredbandsbolaget.se] has quit [Read error: 110 (Connection timed out)] 18:40:03 -!- coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has quit ["May the Coyoes cook you some hot chili some day!"] 18:41:21 coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has joined #lisp 18:41:39 -!- dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has quit [Read error: 113 (No route to host)] 18:41:40 -!- grouzen [n=grouzen@91.214.124.2] has quit [Read error: 110 (Connection timed out)] 18:42:30 hello 18:43:29 this is the first time I'm trying to specialize a function on specific types. I get warnings I don't fully understand: http://paste.lisp.org/display/92634 18:43:46 can someone comment on it? 18:44:12 akamaus: first, these aren't warnings, but (optimisation) notes) 18:44:33 pkhuong, ok, got it 18:44:35 These seem to be just warnings. 18:44:39 Are you using SBCL? 18:44:41 yes 18:44:56 1.0.31 18:44:58 I see. It is a kind of noisy thing. 18:45:03 akamaus: you shouldn't need to declare the return type 18:45:11 the first one tells you that it's boxing (storing into a format that includes runtime type information) the double float, which takes time and uses heap space. 18:45:12 -!- Adlai [n=adlai@unaffiliated/adlai] has quit ["restertemecs"] 18:45:29 aerique [n=euqirea@rl.xs4all.nl] has joined #lisp 18:45:33 akamaus: and if you're passing floats around, you'll get 99% of your optimization by either using a specialized array for storage or inlining the function 18:45:47 pkhuong, I tried to use 'the' form to get rid of boxing 18:45:49 pbusser: it says "note" 18:45:49 Adlai [n=Adlai@unaffiliated/adlai] has joined #lisp 18:46:02 rahul: What do you mean with specialized array? 18:46:25 pbusser: as a storage location for the result, instead of returning it as a result on the stack 18:46:28 clhs array-element-type 18:46:28 http://www.lispworks.com/reference/HyperSpec/Body/f_ar_ele.htm 18:46:30 akamaus: the problem isn't that the compiler can't tell that it's a float, but simply that it has to return a boxed value (that's the calling convention for non-local functions). 18:46:37 rahul: Ah ok. 18:46:38 because it can't fit in the usual return location 18:46:45 the second tells you that it can't use a fast implementation of conversion to double float for the result of (/ k n), because it doesn't know that it's either a (signed-byte 32) or an (unsigned-byte 32) (a machine integer). 18:47:15 akamaus: and declare fixnum is always a lie 18:47:22 akamaus: you have no idea how big a fixnum is, in general 18:47:47 akamaus: if you know of a specific limit in the range of values, declare _that_. if not, you're just hoping 18:47:59 and asking for a crash or invalid data later on 18:48:07 rahul, in this particular case n and k are coordinates point of image 18:48:32 akamaus: and what does the concept of fixnum have to do with that? 18:48:46 images and fixnums are not related to each other... 18:49:01 rahul, hmm.. I thought fixnums are machine integers. I would be fine with that 18:49:11 akamaus: "would be fine" is different from "is correct" 18:49:19 if it's not correct, you will suffer soon enough 18:50:10 grouzen [n=grouzen@91.214.124.2] has joined #lisp 18:50:14 akamaus: if your image constructor only accepts a certain range, define a constant for that range and use that constant in an (integer 0 #.+image-maximum-dimension+) declaration 18:51:00 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 18:51:04 akamaus: in any case, you gain nothing much from the declaration there anyway. it will still be a boxed value, most of the ways you will call it 18:51:05 rahul, right now I'm generating a mandelbrot set as a 2-d array 18:51:21 or rather, deftype a new type so you don't have to write (integer 0 #.foo) each time 18:51:23 akamaus: inlining will again be the best way to solve this 18:51:37 yes, a deftype for that will be a good idea, too 18:52:37 and fixnum is not "machine word" but rather "tagged representation for an integer that fits into a machine word" 18:52:53 -!- nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has quit [Read error: 60 (Operation timed out)] 18:52:53 what tagged means here? 18:52:53 many other types can fit into machine words 18:53:01 it means including type information 18:53:19 just inline it 18:53:32 rahul: actually, it's an arbitrary integer range that's at least (signed-byte 16). 18:53:36 and don't worry about optimizing the function 18:53:50 pkhuong: I'm talking about intent rather than requirements 18:54:00 rahul: ABCL. 18:54:03 afk 18:54:18 and so even if he declares something more specific, that doesn't mean that it will be as fast as possible 18:54:21 nybbles [n=nybbles@CPE000ae6ad1ea9-CM00169240d79c.cpe.net.cable.rogers.com] has joined #lisp 18:54:24 because the value will still need to be unboxed 18:54:33 (via a shift) 18:54:35 -!- xenosoz2 [n=xenosoz@pe.snu.ac.kr] has quit [Read error: 60 (Operation timed out)] 18:54:52 is fixnum very dependent of the lisp implementation and of the machine? 18:54:59 rahul, I heard complaints what inlining the functions can sometimes lead to troubles. What do they mean here? 18:55:02 pkhuong: well, if ABCL doesn't conform to the way that lisps typically work, I can't help with that :P 18:55:09 eldragon: yes, on both 18:55:13 xenosoz2 [n=xenosoz@pe.snu.ac.kr] has joined #lisp 18:55:27 -!- amaron [n=amaron@cable-89-216-181-46.dynamic.sbb.rs] has quit [Read error: 60 (Operation timed out)] 18:55:28 akamaus: because you change the function definition and the change doesn't propagate to callers 18:55:58 will I receive any warnings at least? 18:56:01 no 18:56:09 you are expected to know better. 18:56:13 you asked for it to be inlined. 18:56:25 -!- Kolyan [n=nartamon@95-24-178-224.broadband.corbina.ru] has quit [] 18:56:27 maybe I've just forgot ;) 18:56:29 "doctor, it hurts when I do this" "then don't do it" 18:56:40 lol 18:56:44 akamaus: then you shouldn't optimize your program for speed when the functionality isn't correct 18:57:29 Joreji [n=thomas@77-20-0-213-dynip.superkabel.de] has joined #lisp 18:57:48 dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has joined #lisp 18:58:05 if the functionality is wrong, optimize for debuggability and safety and redefinability 18:58:20 ^ 18:58:23 (usually debuggability and redefinability are both controlled by the debug setting) 18:58:38 write some tests, fix the code, then make it fast 18:59:28 rahul, yes, I shouldn't optimize prematurely, but maybe in the future I'll want to further develop my somewhat complete and speedy program 19:01:10 -!- coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has quit [Read error: 54 (Connection reset by peer)] 19:01:38 coyo [n=alex@99-6-151-42.lightspeed.rcsntx.sbcglobal.net] has joined #lisp 19:01:58 -!- dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has left #lisp 19:02:16 dto [n=dto@pool-96-252-62-25.bstnma.fios.verizon.net] has joined #lisp 19:04:13 akamaus: then your defsystem should have the right dependencies declared and you should reload the whole system when you change a macro or inline function or compiler macro 19:05:12 -!- slyrus [n=slyrus@adsl-76-195-1-74.dsl.pltn13.sbcglobal.net] has quit [Read error: 60 (Operation timed out)] 19:05:54 good idea, thanks 19:15:39 jewel__ [n=jewel@vc-41-27-3-35.umts.vodacom.co.za] has joined #lisp 19:16:16 how to coerce a rational number into floating? 19:16:24 -!- jewel_ [n=jewel@vc-41-29-77-24.umts.vodacom.co.za] has quit [Connection timed out] 19:18:11 HET2 [n=diman@chello084114129176.4.15.vie.surfer.at] has joined #lisp 19:18:20 profiler reports most time spent in function (defun sqr(x) (* x x)) I guess it's because it's fed with complex rational numbers 19:18:27 SandGorgon [n=OmNomNom@122.162.51.84] has joined #lisp 19:21:16 -!- SandGorgon [n=OmNomNom@122.162.51.84] has quit [Remote closed the connection] 19:27:44 might want to use floats.... 19:27:57 and that's a huge one for inlining 19:34:21 of course, in a typical mandelbrot rendering, you only need to test something like 5% of the pixels 19:34:27 legumbre [n=leo@r190-135-56-90.dialup.adsl.anteldata.net.uy] has joined #lisp 19:34:49 the rest you just fill in because of the continuous behavior of the iterations until exit from the 2-unit circle 19:41:33 -!- legumbre [n=leo@r190-135-56-90.dialup.adsl.anteldata.net.uy] has quit [Remote closed the connection] 19:42:53 legumbre [n=leo@r190-135-56-90.dialup.adsl.anteldata.net.uy] has joined #lisp 19:43:19 -!- Sergio` [n=Sergio`@a89-152-187-193.cpe.netcabo.pt] has quit [Read error: 104 (Connection reset by peer)] 19:43:38 hi all. In sbcl and clisp: (progv '(x y) '(1+ 1) (eval '(x y))) doesn't work, because "The function x is undefined". I'm trying to work through norvig's paradigms of ai programming, and this is preventing me from implementing the pattern matcher presented in ch. 6. can anyone help me through a workaround? 19:44:06 Sergio` [n=Sergio`@a89-152-187-193.cpe.netcabo.pt] has joined #lisp 19:44:24 jinok: you're trying to eval the code (x y) 19:44:32 do you want (list x y)? 19:45:25 is progv needed in the matcher? 19:45:47 -!- jewel__ [n=jewel@vc-41-27-3-35.umts.vodacom.co.za] has quit [Read error: 110 (Connection timed out)] 19:46:18 -!- nybbles [n=nybbles@CPE000ae6ad1ea9-CM00169240d79c.cpe.net.cable.rogers.com] has quit [] 19:47:24 progv is used to capture variable assignments in the matcher language. 19:47:53 and it looks like (list x y) does work, thanks! 19:48:02 rahul pasted "a gravmas miracle" at http://paste.lisp.org/display/92638 19:48:21 jinok: yeah, often closures can do the same 19:48:40 oh, but you're trying to interpret the matcher code 19:48:47 right 19:48:54 yep, you're on the right track 19:49:21 you seem to be having some confusion about how quote really works, tho 19:49:30 i think that's probably true. 19:49:31 quote vs list is an important distinction 19:49:35 quote stops ALL evaluation 19:49:44 it creates a LITERAL constant 19:50:06 LIST evaluates what's inside and then creates a list of those values as the code is run 19:52:05 nybbles [n=nybbles@CPE000ae6ad1ea9-CM00169240d79c.cpe.net.cable.rogers.com] has joined #lisp 19:53:01 SandGorgon [n=OmNomNom@122.162.51.84] has joined #lisp 19:54:15 Fare [n=Fare@adsl-71-135-52-237.dsl.pltn13.pacbell.net] has joined #lisp 19:55:11 Fare: http://paste.lisp.org/display/92638 19:55:14 :D 19:55:21 afk 19:56:08 syamajala [n=syamajal@c-76-119-52-223.hsd1.ma.comcast.net] has joined #lisp 19:56:56 so much scrollback! 19:57:24 varjag [n=eugene@103.80-202-117.nextgentel.com] has joined #lisp 19:57:34 okay, so now i think i understand why using list works: x is evaluated prior to eval itself, so eval is running not with the symbol x, but with the function x was dynamically bound to by progv. 19:58:11 jinok: Indeed. 19:58:48 pbusser, discussing some trivial evaluator? 19:59:21 rahul, nice 19:59:49 (I suppose you have a defclass extension to initialize those formulators) 20:00:05 but shouldn't eval work in the dynamic environment specified by progv? that is, shouldn't it be able to resolve symbols itself? for instance, this works for me: (progv '(x) '(1) (eval '(1+ 1)); it's only variables in the function namespace that aren't being resolved by eval. 20:00:46 sorry, that should have been (eval '(1+ x)) 20:01:01 Fare: jinok is doing an exercise from PAIP and having some questions about it. 20:01:05 jinok: progv establishes variable bindings, not function bindings 20:01:33 is there a way to get function bindings? 20:02:24 No 20:02:32 (and apologies for my mangling of terminology, i'm pretty new to lisp) 20:02:44 You can bind function objects to dynamic variables, and bind the variables via progv 20:02:45 yes, use pcos' dflet 20:02:50 with some syntactic sure 20:02:56 syntactic sugar 20:03:15 jinok: Join the club. :-) 20:03:21 or implement your own progv for your own namespace 20:03:23 Fare: DFLET doesn't really do dynamic _functions_ as such. 20:03:41 drewc: what does it do? 20:03:43 Fare: it does 'special places' 20:03:58 Fare: which basically means slots 20:04:07 oops, I'm reminded I didn't pay my last tech.coop bill... 20:04:36 Fare: heh... i haven't checkout accounts outstanding in a while :) 20:04:46 LiamH [n=nobody@pool-141-156-235-135.res.east.verizon.net] has joined #lisp 20:05:02 pbusser: thanks :) 20:05:58 Fare: DFLET is basically : store a gensym somewhere and take the symbol-value as slot-value, then PROGV that symbol.. your slot now has a dynamically bound value. 20:06:26 rittweil: what would that look like? 20:06:39 jinok: what drewc said 20:06:46 (only now it's not a gensym, it's a DYNAMIC-SYMBOL, which is DYNAMIC-SYMBOL-PROGV'd, but the effect is the same) 20:06:57 sellout [n=greg@pool-71-123-34-153.phlapa.fios.verizon.net] has joined #lisp 20:07:41 jinok: you could additionally use funcallable instances (user-extensible function objects) to hide the cruft 20:08:16 jinok: (defvar *my-fun-var* (lambda (a) a)) (defun my-fun (a) (funcall *my-fun-far a)) (let ((*my-fun-var* (lambda (a) ...))) ...) 20:10:13 -!- SandGorgon [n=OmNomNom@122.162.51.84] has quit [Read error: 60 (Operation timed out)] 20:10:46 okay, i'll try to get my head wrapped around all this. thanks, all :) 20:14:24 -!- mishoo [n=mishoo@79.112.110.205] has quit [Read error: 110 (Connection timed out)] 20:17:04 -!- nybbles [n=nybbles@CPE000ae6ad1ea9-CM00169240d79c.cpe.net.cable.rogers.com] has quit [] 20:24:34 Adlai` [n=adlai@unaffiliated/adlai] has joined #lisp 20:29:50 -!- Adlai [n=Adlai@unaffiliated/adlai] has quit [Read error: 60 (Operation timed out)] 20:31:50 -!- varjag [n=eugene@103.80-202-117.nextgentel.com] has left #lisp 20:32:02 varjag [n=eugene@103.80-202-117.nextgentel.com] has joined #lisp 20:32:21 -!- aerique [n=euqirea@rl.xs4all.nl] has quit ["..."] 20:32:44 kpreid [n=kpreid@pool-173-63-104-207.nwrknj.fios.verizon.net] has joined #lisp 20:33:21 -!- ace4016 [i=ace4016@cpe-76-170-134-79.socal.res.rr.com] has quit ["When there's nothing left to burn, you have to set yourself on fire."] 20:36:39 nyef [n=nyef@pool-71-161-71-17.cncdnh.east.myfairpoint.net] has joined #lisp 20:36:52 Hello all. 20:36:53 kejsaren_ [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has joined #lisp 20:37:00 -!- Adlai` is now known as Adlai 20:37:46 -!- wgl [n=wgl@216.145.227.9] has quit [Read error: 110 (Connection timed out)] 20:41:40 daniel [i=daniel@unaffiliated/daniel] has joined #lisp 20:42:20 -!- sellout [n=greg@pool-71-123-34-153.phlapa.fios.verizon.net] has quit [] 20:42:32 Beetny [n=Beetny@ppp118-210-25-12.lns20.adl2.internode.on.net] has joined #lisp 20:42:36 -!- Beetny [n=Beetny@ppp118-210-25-12.lns20.adl2.internode.on.net] has quit [Read error: 104 (Connection reset by peer)] 20:45:41 Fare: yeah, I'm trying to get class redefinition to propagate updated formulae for slots 20:45:54 except that u-i-f-r-c is not getting called, it seems 20:46:01 sounds like kenny's cells 20:46:03 maybe this is another optimization thing 20:46:05 heh 20:46:10 cells without c8 20:46:33 the formulators are actually CLOS objects and can be subclassed etc to provide custom behaviors 20:46:56 custom propagation and updating behaviors like throttling or eagerness or whatever is needed for the application 20:48:54 sigh, my kingdom for an update-instance-for-redefined-class-using-class 20:49:56 sellout [n=greg@pool-71-123-34-153.phlapa.fios.verizon.net] has joined #lisp 20:51:30 rahul: sounds like you want some Sheeple. 20:51:33 :) 20:51:39 =) 20:52:24 -!- kejsaren [n=kejsaren@111.25.95.91.static.ras.siw.siwnet.net] has quit [Read error: 110 (Connection timed out)] 20:53:00 sykopomp: no, sheeple would make this problem worse 20:53:12 actually, what I want is metacircularity in formulate 20:53:25 I need formulators to be formulated-classes :) 20:55:01 actually, bootstrapping may not be too hard 20:55:08 hmm 20:55:13 oh well a problem for another day 20:56:12 -!- Joreji [n=thomas@77-20-0-213-dynip.superkabel.de] has quit [Read error: 60 (Operation timed out)] 20:56:28 -!- kpreid [n=kpreid@pool-173-63-104-207.nwrknj.fios.verizon.net] has quit [] 20:56:55 stoop [n=stoop@unaffiliated/stoop] has joined #lisp 21:01:12 Beetny [n=Beetny@ppp118-210-25-12.lns20.adl2.internode.on.net] has joined #lisp 21:02:27 rahul: what is c8 ? 21:03:09 jordy [n=jordy@99-177-65-75.lightspeed.wepbfl.sbcglobal.net] has joined #lisp 21:03:31 Fare: 8 stands for infinity 21:03:34 that is all I understand 21:03:42 it has to do with declaring constraints in cells 21:06:48 kpreid [n=kpreid@pool-173-63-104-207.nwrknj.fios.verizon.net] has joined #lisp 21:06:55 -!- jtza8 [n=jtza8@wbs-196-2-103-111.wbs.co.za] has quit ["Must sleep..."] 21:07:38 should it not be an 8 on it's side 21:07:55  21:07:59 thats the one 21:08:48 -!- jordy [n=jordy@99-177-65-75.lightspeed.wepbfl.sbcglobal.net] has quit [Read error: 60 (Operation timed out)] 21:11:49 `--> git diff --shortstat v3.0.3 21:11:49 30 files changed, 906 insertions(+), 705 deletions(-) 21:11:55 gah wrong channel 21:12:12 *Adlai* hides in shame 21:13:29 daniel_ [i=daniel@unaffiliated/daniel] has joined #lisp 21:13:53 blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has joined #lisp 21:17:14 xinming_ [n=hyy@125.109.250.151] has joined #lisp 21:18:49 beaumonta [n=abeaumon@84.76.48.250] has joined #lisp 21:19:16 -!- beaumonta is now known as abeaumont_ 21:20:52 francogrex [n=user@91.177.152.214] has joined #lisp 21:22:24 pr_ [n=pr@p579CAC21.dip.t-dialin.net] has joined #lisp 21:23:52 -!- xinming [n=hyy@125.109.245.161] has quit [Read error: 60 (Operation timed out)] 21:27:25 -!- gruseom [n=daniel@S0106001217057777.cg.shawcable.net] has quit [Remote closed the connection] 21:27:27 pr__ [n=pr@p579CAEB8.dip.t-dialin.net] has joined #lisp 21:28:55 -!- daniel [i=daniel@unaffiliated/daniel] has quit [Read error: 110 (Connection timed out)] 21:31:02 -!- pr_ [n=pr@p579CAC21.dip.t-dialin.net] has quit [Read error: 60 (Operation timed out)] 21:31:16 jordy [n=jordy@99-177-65-75.lightspeed.wepbfl.sbcglobal.net] has joined #lisp 21:31:25 So C is indefinite differentiability in  ? 21:31:53 heh 21:32:02 I don't think kenny would even know what that means 21:32:21 although I think I'm going to add delta-based propagation to formulate at some point 21:32:22 -!- Buganini [n=buganini@security-hole.info] has quit [Remote closed the connection] 21:32:28 or add it to the SoC project proposal :) 21:32:31 anyway, I'm out 21:32:36 merry gravmas! 21:32:45 any lispniks in the SFO area? 21:33:00 bay area lispers 21:33:09 -!- rahul [rjain@clozure-6C5C827B.nyc.cable.nyct.net] has quit [Quit: merry gravmas! Happy birthday, Newton!] 21:33:09 -!- rahul [n=rjain@66-234-32-150.nyc.cable.nyct.net] has quit ["merry gravmas! Happy birthday, Newton!"] 21:33:18 -!- syamajala [n=syamajal@c-76-119-52-223.hsd1.ma.comcast.net] has quit ["Leaving..."] 21:34:59 hey if I enter the items (list "A" "B" "C" "B" "B" "C" "D" "A") into a hash-table; then using maphash automatically gets rid of duplicates? 21:35:30 no, puthash automatically overrides duplicates 21:35:35 assuming an equal hash-table 21:35:54 yes it's equal as test 21:36:07 by the time maphash runs, there are already no duplicates 21:36:08 Buganini [n=buganini@security-hole.info] has joined #lisp 21:36:46 -!- madsy [n=madsy@78-26-25-57.network.trollfjord.no] has quit ["leaving"] 21:36:50 but then ok, i assume that (gethash "A" table) will return the first value associated with the first "A" entry right? 21:37:11 there's only one entry and only one value 21:37:23 ok 21:38:09 because it's used as: (loop for i in items for j in values do (incf (gethash i table 0) j)) 21:38:20 -!- pr [n=pr@unaffiliated/pr] has quit [Read error: 101 (Network is unreachable)] 21:38:43 -!- pr__ is now known as pr 21:39:43 so the (gethash i table 0) is already set as the final incremented value as it is enetered in the hash-table? 21:40:50 i can't make any sense of your question 21:41:26 francogrex, gethash won't set the default value, it just returns it. 21:41:31 it's ok I got it, so the keys are just A B C D and the values get incremented inside the hash table 21:41:55 Adlai, i know, but incf sets the values 21:42:03 ah true 21:42:14 i get it now 21:42:34 tricky incf macro 21:42:59 <_deepfire> Fare, have you got my mail about vesta? 21:43:14 yes 21:43:23 I had heard of Vesta before, but never dug into it much 21:43:34 what's interesting about it? 21:43:35 <_deepfire> Fare, looks like it predated Nix by a at least half a decade 21:43:39 nice 21:43:53 <_deepfire> Same ideas as Nix, essentially, but with a slightly wider scope. 21:44:12 my bad for never paying attention, then :( 21:44:22 was it free software then? 21:44:32 <_deepfire> It was opensourced in 2001. 21:45:03 <_deepfire> Designed by DEC people for running very large scale projects. 21:46:15 -!- francogrex [n=user@91.177.152.214] has quit [Remote closed the connection] 21:47:06 nybbles [n=nybbles@CPE000ae6ad1ea9-CM00169240d79c.cpe.net.cable.rogers.com] has joined #lisp 21:48:47 -!- Fare [n=Fare@adsl-71-135-52-237.dsl.pltn13.pacbell.net] has quit [Read error: 60 (Operation timed out)] 21:50:01 dayto [i=62a896c6@gateway/web/freenode/x-vvpbwhlwccngffys] has joined #lisp 21:50:28 <_deepfire> While reading their paper you have to cringe your way through their analysis of prior "art" -- they pit themselves against rcs, cvs, make and some propeietary system. 21:53:00 <_deepfire> Also, I didn't like the automatic dependency discovery in both Nix and Vesta. 21:53:56 <_deepfire> It sounded like fragile heuristics. 21:56:15 <_deepfire> Well, it's probably incorrect to say that Vesta is larger scope than Nix. Just that their scopes are not subsets of each other. 21:58:55 -!- jinok [n=jason@ip72-192-77-18.ok.ok.cox.net] has quit [] 21:59:35 -!- pbusser [n=Brucio-8@ip138-238-174-82.adsl2.static.versatel.nl] has quit [Remote closed the connection] 22:06:53 -!- dayto [i=62a896c6@gateway/web/freenode/x-vvpbwhlwccngffys] has quit ["Page closed"] 22:09:42 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #lisp 22:10:07 quidnunc [n=user@bas16-montreal02-1242357571.dsl.bell.ca] has joined #lisp 22:10:40 -!- daniel_ is now known as daniel 22:14:02 -!- marioxcc [n=user@200.92.161.137] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 22:15:56 -!- dstatyvka [i=ejabberd@pepelaz.jabber.od.ua] has left #lisp 22:20:25 madsy [n=madsy@78-26-25-57.network.trollfjord.no] has joined #lisp 22:21:24 -!- madsy is now known as Madsy 22:23:45 -!- REPLeffect_ [n=REPLeffe@69.54.115.254] has quit [Read error: 110 (Connection timed out)] 22:25:42 REPLeffect_ [n=REPLeffe@69.54.115.254] has joined #lisp 22:34:59 _deepfire: Do you have any experience with git on windows? 22:35:50 rvirding [n=chatzill@h80n1c1o1034.bredband.skanova.com] has joined #lisp 22:36:26 -!- kpreid [n=kpreid@pool-173-63-104-207.nwrknj.fios.verizon.net] has quit [] 22:41:43 -!- varjag [n=eugene@103.80-202-117.nextgentel.com] has quit ["Leaving"] 22:42:01 -!- jordy [n=jordy@99-177-65-75.lightspeed.wepbfl.sbcglobal.net] has quit [Read error: 60 (Operation timed out)] 22:42:23 jordy [n=jordy@99-177-65-75.lightspeed.wepbfl.sbcglobal.net] has joined #lisp 22:44:27 -!- Guthur [n=Michael@host81-159-209-251.range81-159.btcentralplus.com] has quit ["Computer says no"] 22:44:42 Guthur [n=Michael@host81-159-209-251.range81-159.btcentralplus.com] has joined #lisp 22:48:14 -!- nybbles [n=nybbles@CPE000ae6ad1ea9-CM00169240d79c.cpe.net.cable.rogers.com] has quit [] 22:56:48 nvoorhies [n=nvoorhie@166.205.130.130] has joined #lisp 22:58:14 -!- nvoorhies [n=nvoorhie@166.205.130.130] has quit [Client Quit] 22:58:39 xinming [n=hyy@125.109.248.240] has joined #lisp 23:03:22 ak70 [n=ak70@85.232.204.113] has joined #lisp 23:05:22 caoliver [n=oliver@75-134-208-20.dhcp.trcy.mi.charter.com] has joined #lisp 23:05:28 redline6561 [n=redline@adsl-074-232-249-027.sip.asm.bellsouth.net] has joined #lisp 23:05:31 -!- xinming_ [n=hyy@125.109.250.151] has quit [Read error: 60 (Operation timed out)] 23:06:04 -!- ak70 [n=ak70@85.232.204.113] has quit [Client Quit] 23:14:33 -!- quidnunc [n=user@bas16-montreal02-1242357571.dsl.bell.ca] has quit [Read error: 60 (Operation timed out)] 23:14:33 -!- jordy [n=jordy@99-177-65-75.lightspeed.wepbfl.sbcglobal.net] has quit [Read error: 54 (Connection reset by peer)] 23:17:21 TR2N [i=email@89.180.175.42] has joined #lisp 23:27:16 -!- Adlai [n=adlai@unaffiliated/adlai] has quit [Read error: 113 (No route to host)] 23:27:52 ejs [n=eugen@94-248-34-14.dynamic.peoplenet.ua] has joined #lisp 23:28:26 Fare [n=Fare@adsl-71-135-52-237.dsl.pltn13.pacbell.net] has joined #lisp 23:29:03 <_deepfire> nyef, yes 23:29:47 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 104 (Connection reset by peer)] 23:30:00 eno [n=eno@nslu2-linux/eno] has joined #lisp 23:31:10 nikodemus [n=nikodemu@cs181201111.pp.htv.fi] has joined #lisp 23:31:13 I wonder if dependencies shouldn't be detected by intercepting calls to open 23:31:37 no more language-dependent dependency detection 23:31:39 plage [n=user@123.19.61.214] has joined #lisp 23:31:44 Good morning. 23:32:14 Tell me we are not still discussing implicit copying of list structures. 23:32:32 (can be tricky when there are generated files, though: the using file's build must be interrupted and resumed or restarted after the dependency was built) 23:33:26 [I guess not. Whew!] 23:34:48 hi Fare 23:35:31 fe[nl]ix, hi 23:36:56 *Fare* thinks about making the DAG of XCVB less OO and more functional, and introducing an extensible functional layer between the dependency spec and the DAG 23:39:03 -!- rittweil [n=rittweil@88-134-20-86-dynip.superkabel.de] has quit [Read error: 110 (Connection timed out)] 23:39:16 loxs [n=loxs@82.137.72.133] has joined #lisp 23:46:04 wasabi__ [n=wasabi@nttkyo496023.tkyo.nt.ftth.ppp.infoweb.ne.jp] has joined #lisp 23:46:59 <_deepfire> Fare, and this should be tied into git commit-ids/object-ids, to match the holistic picture of vesta 23:47:51 <_deepfire> Sadly, vesta's own vcs was not distributed, but they /couldn't/ get everything right, could they? :-) 23:48:09 Adlai [n=Adlai@unaffiliated/adlai] has joined #lisp 23:48:14 -!- nikodemus [n=nikodemu@cs181201111.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 23:49:10 <_deepfire> Although I guess they were among the first, if not the first, given the time when this was developed, to discover the importance of atomic commits. 23:50:24 wasabi___ [n=wasabi@nttkyo377073.tkyo.nt.ftth.ppp.infoweb.ne.jp] has joined #lisp 23:50:59 _deepfire, what do you think of lispy? 23:51:42 <_deepfire> Fare, haven't heard of it.. 23:51:51 watch planet-lisp 23:52:41 bgs100 [n=ian@unaffiliated/bgs100] has joined #lisp 23:52:52 <_deepfire> I see, looking in 23:53:15 <_deepfire> Heh, it seems we have a wealth of competing package management solutions. 23:53:34 I'd rather we had one good complete one 23:53:49 than five almost-good incomplete ones 23:54:39 insaneavocado [n=user@adsl-99-41-224-114.dsl.wlfrct.sbcglobal.net] has joined #lisp 23:59:39 XCVB iirc was more about building, not packaging 23:59:46 -!- wasabi [n=wasabi@nttkyo968045.tkyo.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 110 (Connection timed out)]