00:01:51 -!- redchrom [n=redchrom@93.185.183.27] has left #scheme 00:03:32 C isn't the problem, its just usually the wrong tool. it would be like using a toaster to make a pizza 00:10:17 -!- raikov [n=igr@60.32.127.43] has quit [Read error: 60 (Operation timed out)] 00:14:42 -!- jao [n=jao@249.Red-88-18-102.staticIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 00:21:12 -!- melgray [n=melgray@70.99.250.82] has quit [] 00:23:41 jonrafkind, hm, interesting analogy hehe 00:29:49 jonrafkind, whether or not C is `the problem', it is unquestionably brain-damaged syntactically. 00:30:04 tru dat 00:33:40 -!- athos [n=philipp@92.250.250.68] has quit [Remote closed the connection] 00:36:16 dudleyf [n=dudleyf@ip70-178-212-238.ks.ks.cox.net] has joined #scheme 00:37:42 annodomini [n=lambda@wikipedia/lambda] has joined #scheme 01:02:45 -!- dysinger [n=tim@71.20.231.3] has quit [] 01:10:24 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 01:13:21 -!- bweaver [n=user@68.60.0.190] has quit [Read error: 110 (Connection timed out)] 01:17:28 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 01:21:21 -!- dlouhy [n=jdlouhy@pinball.ccs.neu.edu] has quit [Remote closed the connection] 01:21:24 dlouhy [n=jdlouhy@pinball.ccs.neu.edu] has joined #scheme 01:26:47 dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has joined #scheme 01:32:46 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 01:34:05 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Read error: 113 (No route to host)] 01:34:38 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 01:43:41 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 01:44:48 jcowan [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has joined #scheme 01:51:01 -!- MrFahrenheit [n=RageOfTh@89.146.171.132] has quit [Read error: 110 (Connection timed out)] 01:53:04 -!- Nshag [i=user@Mix-Orleans-106-4-142.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 01:53:10 -!- joast [n=rick@76.178.184.231] has quit [Read error: 110 (Connection timed out)] 01:54:14 prescriptor [n=K@59-235-147.static.golden.net] has joined #scheme 01:55:02 joast [n=rick@76.178.184.231] has joined #scheme 01:55:14 hi what does a forward slash mean in scheme? .... i.e. (let ((eval-sum/product (lambda ( x y z) ..... ...... ))) 01:55:40 It means nothing to Scheme. In this case I presume it is to be pronounced by a human as `or'. 01:56:41 dzhus [n=sphinx@95-24-189-73.broadband.corbina.ru] has joined #scheme 01:57:01 i said "in scheme" not "to scheme" but thanks .. so this is or? 01:57:28 prescriptor: It has no special meaning, it's just another character 01:57:29 I imagine that the procedure is used both in evaluating sums and in evaluating products. 01:57:46 correct 01:57:48 It's a convention, not a rule. 01:58:59 but I can't think of it in terms of another language like java .... ... is this simply like saying "int eval-sum; int prod;" in Java? 01:59:07 No. 01:59:11 It's just a name. 01:59:12 ie. just declaring not instantiating 01:59:22 what is that line doing? 01:59:27 EVAL-SUM/PRODUCT is simply a single name, like eval_sum_or_product in Java. 01:59:32 oh 01:59:43 Or maybe it's eval_sum_and_product, who knows? 01:59:51 eval_sum_slash_product, then! 02:00:00 so "/" doesn't break up a variable name in Scheme? 02:00:02 No. 02:00:12 i seeeee 02:00:29 Nor does *, nor !, nor $, nor %, nor ^, nor &, nor :, nor ?, nor <, nor >, nor =, nor _, nor +, nor -, &c. 02:00:39 Nor `nor', for that matter. 02:00:47 Ni! 02:01:01 Ikky-ftang! 02:01:03 But what about `eval-sumfnordproduct'? 02:01:12 Seems like "/" means "with" most of the time but it's just a convention 02:01:26 Why did you put the words `sum' and `product' together, chandler? Usually we separate words in Scheme. 02:01:28 eval_sum_solidus_product() 02:01:43 "Eval-sumproduct"? What kind of a name is that? ~~ fear ~~ anxiety ~~ 02:01:52 There is a zero-width space there, don't you not see it? 02:02:12 Doch. 02:02:23 well thanks guys 02:02:59 i was reading this line as let eval-sum divided by product ... etc etc 02:03:13 i was like this mathematical formula makes no sense 02:03:47 *prescriptor* can see clearly now that the rain is gone! 02:04:06 There are no obstacles in your way, eh? 02:04:36 *prescriptor* I can see all the obsticles in my way (there are still obstacles though) 02:04:37 oops... I broke call/cc :/ 02:07:05 Scheme reverts to Maclisp control, film at 11! 02:07:42 -!- kandinsk1 is now known as kandinski 02:08:21 -!- mrsolo [n=mrsolo@nat/yahoo/x-a0e4be9eb94da9bc] has quit ["Leaving"] 02:14:36 curl -sr 131778-132932 http://www.gutenberg.org/files/12/12.txt 02:14:39 Whoops, sorry 02:14:56 Who wants to bet that's the kama sutra? 02:15:31 That tired old tome? Pish tosh. 02:18:00 No, it's another tome. 02:25:49 -!- Axioplase_ is now known as Axioplase 02:25:55 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 02:28:04 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 60 (Operation timed out)] 02:42:36 call/cc fixed 02:42:52 What was wrong with it? 02:42:55 -!- tnovelli [n=tom@pool-96-236-117-60.spfdma.east.verizon.net] has quit ["Leaving."] 02:43:49 Just when I switched from storing the IP on the stack to storing the offset from the IP to the start of the procedure's code, I forgot to update call/cc. 02:44:15 -!- Lectus [n=Frederic@189.105.10.45] has quit [Read error: 104 (Connection reset by peer)] 02:44:35 Lectus [n=Frederic@189.105.10.45] has joined #scheme 02:44:35 ...oh, you mean you fixed its implementation (in Chibi-Scheme?). 02:44:43 yes 02:44:50 -!- Lectus [n=Frederic@189.105.10.45] has quit [Remote closed the connection] 02:48:25 New version up for download? 02:49:48 eno_ [n=eno@adsl-70-137-131-139.dsl.snfc21.sbcglobal.net] has joined #scheme 02:50:14 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 02:50:42 It hasn't been 24 hours - unless you're desperate to use call/cc, I'm going to wait to see if any other stupid bugs turn up :) 02:52:07 What's the current release? 02:52:13 0.2 02:52:20 mattie [n=mattie@74-60-0-165.sea.clearwire-dns.net] has joined #scheme 02:52:33 .oO( Does no one read c.l.s? ) 02:52:53 (No. Any other questions?) 02:52:57 (Not me.) 02:53:07 tjafk2 [n=timj@e176219255.adsl.alicedsl.de] has joined #scheme 02:53:19 (I do, but only about once a week, on Sunday afternoon, and then only if the weather outside is not beautiful) 02:54:00 what is c.l.s ? 02:54:03 (What if the weather is reminiscent on Sunday afternoon of C++ templates, but there are nevertheless sandwiches to entice you in the other room?) 02:54:19 mattie, it is a distraction on the intertubes, just like everything else. 02:54:29 mattie, c.l.s is comp.lang.scheme, a newsgroup dedicated to the discussion of fine scotch. Occasionally people use it to discuss programming, and even more occasionally in Scheme. 02:54:30 You take a sandwich outside, of course. 02:54:48 (Why would you take a sandwich outside into weather reminiscent of C++?!?) 02:54:52 (Poor sandwich!) 02:54:59 (Poor weather!) 02:55:29 doesn't the mighty jdh post on c.l.s. occasionally? 02:55:41 jdh? 02:55:42 jdh? 02:55:44 Jon Harrop? 02:55:44 jdh? 02:55:48 yeah, that's the one 02:55:51 *Riastradh* coughs. 02:55:54 Mr. Flying Frog? 02:56:02 Yes, I think he has wasted time on c.l.s. 02:56:03 offby1` [n=user@q-static-138-125.avvanta.com] has joined #scheme 02:56:15 Hush, hush, there he is! 02:56:30 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Read error: 60 (Operation timed out)] 02:56:33 When did offby1 transmogrify into Jon Harrop? 02:56:52 He didn't. I... he... it was... oh, never mind. 02:57:02 *offby1`* glances around nervously. 02:57:08 Oh My God! The solstice was TWO DAYS AGO! Aaaaagggghhhh 02:57:11 I am he as you are he as you are me and we are all Jon Harrop? 02:57:16 -!- offby1` is now known as offby1 02:57:20 offby1`: hah! HOSED! 02:57:28 Oh wait, whoops. You dropped your backtic, there. 02:57:34 offby1, are you on #emacs on occasion ? 02:57:35 Is that like a nervous tic? 02:57:41 rudybot_ [n=luser@q-static-138-125.avvanta.com] has joined #scheme 02:57:49 mattie: constantly 02:58:04 ah, just curious 02:59:34 you might know then, is there a easy way to convert the plt docs to info format ? 02:59:49 Goodness gracious, foof, you use Google Groups as your NNTP client? 03:00:53 mattie: not that I know of. I suspect it would be a little bit of work, but not a huge amount, to write code to do it. 03:01:05 A mere SMOP. 03:01:10 ayup 03:01:21 offby1, as I suspected .. 03:01:53 -!- eno [n=eno@nslu2-linux/eno] has quit [Success] 03:02:16 ? 03:02:51 offby1, oh, just that no tool already exists. 03:03:31 now it is just a matter of how long I can put up with pdf vs. write my onw 03:03:42 foof: so when will chibi be stable enugh to be wrapped in a Chicken egg? 03:04:19 -!- mattie [n=mattie@74-60-0-165.sea.clearwire-dns.net] has quit ["Leaving"] 03:04:58 yeah, PDF is crappy for anything but printing onto paper 03:05:02 gfb [i=ad22383a@gateway/web/freenode/x-8fb5efe1734d384e] has joined #scheme 03:05:06 codermattie [n=user@74-60-0-165.sea.clearwire-dns.net] has joined #scheme 03:05:54 Riastradh: As one of the natives, I expect you to have a good explanation for this C++ish weather. 03:06:18 -!- socialite [n=piespy@78.8.139.175] has quit [Read error: 110 (Connection timed out)] 03:06:22 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Read error: 110 (Connection timed out)] 03:07:56 jcowan: I hadn't thought of that... you could do it now. I'm not sure how useful it would be, though chibi is likely to be faster than Chicken's EVAL. 03:08:10 neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has joined #scheme 03:08:33 carlmax [i=d20d6592@gateway/web/freenode/x-87aa00e22d423af7] has joined #scheme 03:08:34 offby1, I've found that PDFs are good for one other thing: scanned legal documents which also contain a roughly OCR'd text layer, to make them more or less searchable. Of course, djvu does that job better, but who's keeping score? 03:08:48 0.3 will include a module system 03:09:02 PDFs are great for embarrassing redaction failures. 03:09:04 gnomon: I'd think plain text would be even better. 03:09:09 -!- tjafk1 [n=timj@e176195171.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:09:17 Riastradh: Does paredit not support #; comments? 03:09:31 arcfide: That depends on your Emacs. 03:09:51 foof: Eh? 03:09:55 Do explaine. 03:10:01 I've been out of the Emacs game for a while. 03:10:06 I'm experimenting again. 03:10:14 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Read error: 113 (No route to host)] 03:10:16 Hi, is there such function like printf in c? 03:10:30 offby1, it would be, but plain text doesn't contain nice high resolution scans of the signatures on the documents. Or at least that's what the judges were saying. 03:10:31 carlmax: That depends on your Scheme implementation, but yes. 03:10:42 arcfide: More recent Emacsen support #;, at least for syntax highlighting. 03:10:43 Or, more precisely, that's what our lawyers were claiming the judges were saying. 03:10:49 carlmax: Of course, if you mean what you actually asked, then yes, there is such a function. It's printf() in C. :-) 03:11:03 http://docs.plt-scheme.org/reference/Writing.html#(def._((quote._~23~25kernel)._printf)) 03:11:19 And paredit doesn't do its own parsing, it just uses the Emacs sexp commands. 03:11:19 foof: No, this is an umatched bracket or quote error when initially entering paredit mode. 03:11:20 it's more limited than c printf 03:11:21 carlmax: many schemes have format 03:11:31 carlmax: `format` function I mean 03:11:50 arcfide: Which means your Emacs doesn't support #; 03:11:58 carlmax: If you are interested, (Petite) Chez Scheme has a printf which handles Common Lisp style format specifications, which is more powerful than C's printf, I believe. 03:12:06 arcfide, put #; at the end of a line; that helps. 03:12:08 *Riastradh* vanishes. 03:12:14 thanks, but I want to get %8.2f in printf 03:12:33 foof: in which gnu emacs version did they add #; support? 03:12:40 Sorry, my C is a bit rusty, but what exactly do you want to happen? 03:13:07 Do you mean an eight digit float with 2 decimal digits? 03:13:18 eg: 3.1415926 -> 3.14 03:13:21 i wrote a number formatting library 03:13:57 neilv, open source? 03:14:11 hm. looks like i didn't release it, and there's a couple edge cases i don't handle 03:14:20 just out of curiousity do alot of the people here use Emacs ? 03:14:22 carlmax: In Petite one does (PRINTF "~,2f" 3.1415926) => 3.14. 03:14:35 codermattie: Quite a few, I believe. 03:14:38 but i've been using it for billing, so it works well enough :) 03:15:02 heh, I will be comfortable here :) 03:15:03 I believe someone here has also written an output combinators library. 03:15:21 thanks arcfide, but i'd like to use plt-scheme 03:15:32 carlmax: I would expect them to have something similar. 03:16:14 in plt, I searched the document, but not found. 03:16:48 foof: I'm using Emacs 21.4.1. 03:17:28 neilv pasted "numberformat.scm properties" at http://paste.lisp.org/display/82313 03:17:53 thanks neilv, I'll have a look 03:18:03 does that have all the properties you need? 03:19:42 rudybot_: apropos decimal real 03:19:43 eli: matches: real->decimal-string. 03:19:51 rudybot_: doc real->decimal-string 03:19:54 arcfide: It's only in more recent Emacs 22. 03:19:56 eli: http://docs.plt-scheme.org/reference/numbers.html#(def._((lib._scheme%2Fbase..ss)._real-~3edecimal-string)) 03:20:07 carlmax: See there. 03:20:17 yes, neilv 03:21:09 arcfide: It's very badly broken though. 03:21:17 I have just started with the mzscheme reference and a program, and I don't understand # yet, is it like null ? 03:21:19 arcfide: If I wasn't that lazy, I'd disable it. 03:21:29 my background is elisp and SICP 03:22:25 codermattie: in PLT, `#' is the void value, which you get as a result of functions that have "unspecified result" -- most mutators, and IO functions. 03:22:59 Yes! eli, that's just I want. thanks 03:23:19 eli: Are you talking about Emacs being very badly broken? 03:23:26 eli: thanks! the void fell out of a when 03:23:40 arcfide: I'm talking about the broken "support" for `#;'. 03:23:57 how can I specify a null so I can play with it ? the print representation # doesn't seem to work 03:24:04 codermattie: Yes -- `when' will return a void value when the condition is false. 03:24:06 or rather void, sorry 03:24:22 You can use the `void' function. 03:24:26 rudybot_: eval (void) 03:24:40 thanks for the newb helo 03:24:55 codermattie: But the thing is that these values are in various contexts are not even printed -- as rudybot_ just did. 03:25:06 rudybot_: eval (list (void)) 03:25:07 eli: ; Value: (#) 03:25:17 rudybot_: eval (printf "void returns ~s" (void)) 03:25:18 eli: ; stdout: "void returns #" 03:25:35 foof: just what I had in mind: quick eval at run time for Chicken! 03:26:08 -!- eno_ is now known as eno 03:26:40 arcfide: more specifically, if you're use `#;#;' it's broken, if you're trying to use sexpr-navigation in a #;-commented text it's broken, if you try to indent some code that has a `#;'-commented block you get broken behavior. It's just bad. 03:27:12 My plt scheme documentation search function doesn't work even if I allowed the blocked content. why? 03:27:44 jcowan: You'll still have to marshall data back and forth, and won't be able to mutate objects from the Chicken side. 03:28:16 If I were to buy a programmer's reference/book for plt-scheme, and I wanted the money to go to the plt-scheme people what would you guys recommend ? 03:28:20 eli: That's...stupid. 03:28:31 *arcfide* wonders again why he's using Emacs. 03:29:13 arcfide: what's the problem ? 03:30:11 syntropy [n=who@unaffiliated/syntropy] has joined #scheme 03:30:13 arcfide: "Extremely annoying" is another description... My conclusion from this experience is that it's best to just not have "proper" support for #; as a real comment -- maybe some *additional* color but nothing more. Emacs is trying to be smart by treating it as a real comment which leads to all of these peoblem. 03:30:18 codermattie: Emacs doesn't seem to recognize or handle #; comments. 03:30:27 ah 03:30:30 what mode ? 03:30:40 arcfide: (Actually most of them -- the `#;#;' problem is due to the Emacs limitation on low-level parsing of the buffer,.) 03:30:51 codermattie: Scheme mode + paredit minor mode. 03:31:01 you want them indented etc ? 03:31:08 *arcfide* ponders vi again.... 03:31:18 hello. I'm trying to create a list of terms with a computation that uses the Nth and 1+Nth term. 03:31:21 it gets highlighted for me no problem 03:31:22 codermattie: I want paredit to not gag on it when I have them inside my code. 03:31:34 oh, I am using mic-paren 03:31:37 can't replicate here 03:31:39 codermattie: There's no books that will do that... The closest is HtDP -- which is available on-line, and even if you buy the hardcover version, the amount that the authors get is pretty ridiculously small. 03:31:50 bummer 03:32:27 I think I will just get the ref manual printed so I can read it on the bus 03:32:34 codermattie: (mic-paren is doing something completely different...) 03:32:39 (define mylist '(1 2 3 4 5)) and (map (lambda (x y) (proc x y)) (cdr mylist) (cddr mylist)) doesn't look right 03:32:44 eli: yep 03:32:59 codermattie: If you're looking for reading material, the guides would be a better fit. 03:33:51 eli: good to know, I need to get more familiar with them 03:34:03 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 03:34:22 codermattie: are you also mattie? 03:34:26 carlmax: Searching should work as long as JavaScript is enabled. If you're using IE, then it might have some other issues. FF (or probably any other non-IE browser) work much better. 03:34:31 offby1: yes 03:34:55 offby1: I don't know why I am codermattie right now ... 03:35:15 codermattie: If you don't need some really gentle intro, then skip the "Quick" then. 03:35:25 -!- codermattie is now known as mattie 03:35:30 good 03:35:35 now you're mattie :) 03:35:40 *offby1* 's head spins 03:35:52 yeah, my erc config did something funny I think 03:36:22 mattie: You can read http://docs.plt-scheme.org/more/ for the system level hacking (like writing a server), and http://docs.plt-scheme.org/guide/ for generic introduction to lots-of-stuff, and http://docs.plt-scheme.org/continue/ for an introduction to the web server. 03:37:02 eli: that is a huge help 03:37:36 I finally decided to get serious about plt-scheme after re-reading some of my own perl code 03:39:01 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 03:39:46 my module for building perl data structures from XML documents looked stupid after seeing three or four lines with sxml 03:42:18 -!- rudybot_ is now known as rudybot 03:42:54 anyone have an idea? 03:44:42 your too busy to talk to me when I show interest in your program but you're not too busy to ask newbie questionsn about your pet project in #scheme? 03:45:56 dum de dum 03:46:01 -!- gfb [i=ad22383a@gateway/web/freenode/x-8fb5efe1734d384e] has quit [Ping timeout: 180 seconds] 03:46:19 soupdragon: ? 03:46:34 what? 03:46:43 who was it who wanted the "#:" in plt keyword syntax colored to almost invisible? 03:46:45 were you talking to me ? 03:46:48 no 03:46:51 k 03:47:36 i need a sanity check that i'm not the only one who doesn't want to spend the next ten years having every keyword argument look like "#:foo" instead of ":foo" 03:48:34 foof? 03:48:52 syntropy: I don't understand your goal. Give an example input and output. 03:49:10 neilv: that was me 03:49:18 we are like soulmates 03:49:45 TimMc|Bahamas: I'm trying to implement the sum rule for derivatives in differentiential calculus. 03:50:02 it was to syntropy 03:50:23 TimMc|Bahamas: http://en.wikipedia.org/wiki/Sum_rule_in_differentiation 03:50:23 i don't understand why SRFI-88 keywords are not more widely adopted 03:50:32 why have :foo when you can have foo: ? 03:51:04 # is ugly and shows up way too much in Scheme source code 03:52:02 duncanm: i could go either way. but there's historical precedent for :foo, it's a prefix rather than suffix (more precedent for that in symbol disambiguation in syntax), and also it lines up better if you do one keyword arg per line 03:52:29 syntropy: Eh, I can't do calculus at this time of night. You seem to want to grab two adjacent item out of a list and process them together? 03:52:37 *eli* smiles 03:52:47 TimMc|Bahamas: yeap 03:52:54 hi eli 03:53:03 duncanm: Good morning. 03:53:10 -!- joast [n=rick@76.178.184.231] has quit [Read error: 110 (Connection timed out)] 03:53:41 *eli* reminds neilv about the :-as-' analogy that is often used too 03:53:47 eli: you're in israel? 03:53:54 -!- luz [n=davids@189.122.121.232] has quit ["Client exiting"] 03:53:55 the one thing i do like about "foo:" compared to ":foo" is that it's more appealing to non-lispers, but that's a small consideration 03:54:23 joast [n=rick@76.178.184.231] has joined #scheme 03:54:26 duncanm: The soup outside the window is a clear indication that I'm not in Israel. 03:55:17 Personally, I don't want a separate keyword type. Just 'foo: works fine. 03:55:37 i like SRFI-88 and 89 03:55:52 but 'foo: works for me too 03:56:02 And 'foo: can be portably added to any implementation. 03:56:08 foof: that's right 03:56:32 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 113 (No route to host)] 03:57:58 syntropy: It seems that you want create a new list out of the results of (calc-thing nth n+1th), yes? I think you might be better off writing your own recursive function. 03:58:40 I don't know any second-order library functions that will do what you want, though I'm no expert. 03:59:28 TimMc|Bahamas: http://en.wikipedia.org/wiki/Product_rule <-- I have sum rule, it's the product rule that I was confused about 04:03:33 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 04:08:06 clojure has non-offensive keywords 04:08:14 enough of this offensive colon-pounding 04:08:50 TimMc|Bahamas: f'(a*b*c) := f'(a)*bc + f'(b)*ac + f'(c)*ab ... etc 04:09:15 Sorry, no calculus past 22:00. 04:09:20 *TimMc|Bahamas* sleeps 04:09:34 lol 04:10:40 Lemonator [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 04:10:53 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 04:19:29 dzhus89 [n=sphinx@95-24-189-73.broadband.corbina.ru] has joined #scheme 04:22:58 -!- dzhus [n=sphinx@95-24-189-73.broadband.corbina.ru] has quit [Read error: 104 (Connection reset by peer)] 04:25:45 reprore [n=reprore@s210-234.pubnet.titech.ac.jp] has joined #scheme 04:26:26 foof: Quite so 04:26:40 -!- reprore [n=reprore@s210-234.pubnet.titech.ac.jp] has quit [Remote closed the connection] 04:27:14 *Elly* respawns 04:30:39 :( why do people make code with random limitations? 04:31:11 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:35:43 Riastradh: You around? 04:35:57 syntropy: What do you consider to be a random limitation? 04:36:01 any recommendations for plt-scheme debugger in emacs ? 04:36:20 arcfide: for instance, a function that sums all integer arguments. 04:36:31 arcfide: but limited to only two arguments. 04:36:46 you shouldn't need a special function 04:36:51 fold-left 04:37:17 syntropy: Like (+ 1 2 3 4 5) ? 04:37:20 no, i mean like '+' but limited to two args 04:37:26 TimMc|Bahamas: yeah...exactly 04:37:27 *TimMc|Bahamas* isn't asleep anymore >_> 04:37:47 (apply + '(1 2 3 4 5)) 04:38:00 (fold-left + 0 '(1 2 3 4 5)) 04:38:07 no mattie that wont work :) 04:38:22 please illuminate ? I got fifteen 04:38:38 but your + supports more than 2 args 04:38:47 write my+ that only takes 2 args 04:38:54 ah 04:39:42 I just wouldn't use a sum function limited to two args :) unless the problem has a intrisic limitation to two args 04:40:35 I'd say "apply" is a function that sums all integer arguments, even limited to two arguments. 04:40:47 Bah! Does anyone here know and understand parscheme? 04:40:49 actually, it's a lot more complex than that 04:42:30 http://dpaste.com/58577/ 04:43:10 i'm basically trying to rewrite the derive function into a version that is capable of more than just two arguments. 04:45:45 -!- neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has quit ["Leaving"] 04:45:54 the sum rule in general form is f'(args...) := f'(a1)*a2*a3*..aN + f'(a2)*a1*a2...aN ... etc 04:46:24 syntropy: This might be a great place to use recursion. 04:46:27 derivative of a single argument, multiplied by the product of all remaining arguments. 04:47:44 -!- mattie [n=user@74-60-0-165.sea.clearwire-dns.net] has quit [Remote closed the connection] 04:47:55 mattie [n=user@74-60-0-165.sea.clearwire-dns.net] has joined #scheme 04:48:10 a*b*c*d*e... == a*(b*(c*(d*(e*...)))) 04:48:30 mmm 04:48:55 *jcowan* still thinks it's cool how DTSS Lisp implemented - as the alternating sum 04:49:21 hm? 04:49:31 My first Lisp 04:50:06 (- a) = -a, (- a b) = +a + -b; (- a b c) = -a + +b + -c; etcc. 04:50:13 s/,/; 04:50:25 ahh, I see what you mean 04:50:35 I like the way - works in plt-scheme 04:50:40 It's nice that the 1-arg case is not a special case 04:50:48 (i.e., (- a b c d) is (- a (+ b c d))) 04:51:13 Left reduction is what both Scheme and CL prescribe 04:51:34 wait, you were around when DTSS was? 04:51:38 (I confess I just had to google it) 04:54:22 The 1-arg case, it's a beast. 04:54:25 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 04:54:27 The 2-arg case, it's a priest. 04:54:42 I was using it during the summer of '73, but not at Dartmouth; at the US Naval Academy 04:55:07 yikes! 04:55:12 *Elly* was not born then 04:55:19 *jcowan* born 1958 04:55:42 what tribe are you from? 04:55:43 *Elly* was born in 1989 04:55:47 did you hunt dinos? 04:56:03 *mbishop* hunts offby1 04:56:37 offby1 is a dinosaur? 04:56:52 foof: chibi 0.2 won't run on my 32-bit Ubuntu 04:57:01 ./chibi-scheme: error while loading shared libraries: libchibi-scheme.so: cannot open shared object file: No such file or directory 04:57:25 ldconfig does not help 04:57:31 Old Cary Grant fine. 04:57:43 *jcowan* laughs. 04:57:52 *offby1* hides behind a screen of dentures 04:58:22 oh, foof is a plan 9 person? 04:58:47 hmm... that's interesting. I'm taking a class next semester for which I intend to write a window manager for plan 9 04:59:53 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 05:00:12 jcowan: if you do LD_LIBRARY_PATH=. ./chibi-scheme, does it work? 05:01:19 socialite [n=piespy@78.8.139.175] has joined #scheme 05:01:52 (at least, that made it work for me.) 05:03:07 Yes. 05:03:31 If (+ 3 4) works, everything works -- except call/cc, of course. 05:03:48 I suspect if you `make install` as root it'll put libchibi-scheme somewhere where the interpreter binary can find it 05:05:25 ikaros [n=ikaros@f050246097.adsl.alicedsl.de] has joined #scheme 05:05:32 oh, there also appears to be a chibi-scheme-static target 05:06:06 leppie|work [i=52d2e3c8@gateway/web/freenode/x-2adb9b06a4c9020e] has joined #scheme 05:06:34 mmm, new webclient is nice :) 05:06:46 hm, this is a pretty cute scheme interpreter 05:07:44 could use a bit more ffi 05:08:49 sigh... so I find a game engine editor, and it's javascript based... 05:09:04 -!- dzhus89 [n=sphinx@95-24-189-73.broadband.corbina.ru] has quit [Read error: 110 (Connection timed out)] 05:10:28 Elly: nope, installing doesn't help 05:10:54 However, installing *plus* ldconfig does the trick 05:11:44 *jcowan* reads the ldconfig man page 05:11:48 Noooo! 05:11:58 you will regret this! 05:12:05 jcowan: Installing into a location in your LD_LIBRARY_PATH doesn't work? 05:12:18 It works, yes. 05:12:27 But ldconfig works better. 05:12:28 gfb_ [i=4c455486@gateway/web/freenode/x-e21e9af80ecce6f4] has joined #scheme 05:13:15 so either "sudo ldconfig $PWD" to make it work from the current directory, 05:14:02 /usr/bin/ld: eval.o: relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC 05:14:05 I really don't think you should do that 05:14:09 (ldconfig $PWD, that is) 05:14:24 I suspect that leaves a symlink from /usr/lib/libchibi-scheme.so to $PWD/libchibi-scheme.so 05:14:26 Yeah, well, install and then "sudo ldconfig" works 05:14:34 that's a better idea, I think :P 05:14:42 foof: needs more FFI! 05:15:14 No, no symlinks 05:15:24 jcowan: ldconfig is needed after install? 05:15:29 duncanm: What architecture? 05:15:43 foof: 64-bit ubuntu 05:15:44 foof: yeds 05:15:47 yes, even 05:15:59 x86-64 05:16:09 i386 for me 05:16:43 chibi needs more cowbell 05:16:47 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 05:17:22 ejs [n=eugen@189-106-135-95.pool.ukrtel.net] has joined #scheme 05:17:53 jcowan: I'll have it run ldconfig on Linux. 05:17:59 *jcowan* nods 05:18:05 needs to run as root 05:18:17 well, I guess install is running as root anyhow 05:18:19 Well, it will run during make install. 05:18:24 Yuppers 05:19:41 duncanm: On Linux it's only passing -fPIC when compiling the shared lib, I'll make it use -fPIC for the .o files as well. 05:19:51 And I haven't tested 64-bit yet. 05:20:51 foof: did you fix those integer-pointer cast warnings? 05:21:26 On 32-bit Linux and OS X it compiles with no warnings. 05:21:59 ah, so if i build using 'make CPPFLAGS=fPIC", it builds 05:22:16 but it doesn't run because it couldn't find libchibi-scheme.so 05:22:27 duncanm: LD_LIBRARY_PATH 05:22:44 right 05:23:07 What's all this ldconfig stuff? Back in my day we weren't afraid to set LD_LIBRARY_PATH. 05:23:33 -!- ejs [n=eugen@189-106-135-95.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 05:24:43 ejs [n=eugen@189-106-135-95.pool.ukrtel.net] has joined #scheme 05:25:20 duncanm: Also, you can feel free to set CFLAGS, not CPPFLAGS. 05:25:54 haha 05:25:57 > (expt 2 (expt 2 (expt 2 (expt 2 2)))) 05:25:57 inf.0 05:26:16 -!- gfb_ [i=4c455486@gateway/web/freenode/x-e21e9af80ecce6f4] has quit [Ping timeout: 180 seconds] 05:26:32 no bignum support, huh 05:26:36 Oh, numerics are very minimal. No bignums, and basic arithmetic ops don't overflow into flonums. 05:26:47 *syntropy* likes 05:27:16 *offby1* likes bignums 05:27:17 ... which is intentional, since if you use immediate flonums they have less precision than fixnums. 05:27:22 duncanm: oh, and: la la la 05:27:59 clojure is kinda unsatisfying in this aspect too... 05:28:04 1:6 user=> (defn expt [a b] (Math/pow a b)) 05:28:05 #'user/expt 05:28:05 1:7 user=> (expt 2 (expt 2 (expt 2 (expt 2 2)))) 05:28:05 Infinity 05:28:17 Closure has no bignums? That's odd. 05:28:47 i guess Math/pow is defined as 'static double pow(double a, double b)' 05:28:58 eww 05:29:06 foof: I'm building on x64, and it's linking with -fPIC but not compiling with -fPIC 05:29:13 jcowan: yes 05:29:36 That was an oversight, but it worked for me on 32bit. 05:30:21 I like my bignums. 05:30:27 foof: What is Chibi's footprint? 05:30:47 The smallest I got the standalone executable was 57kb. 05:31:01 midgetscheme 05:31:04 :) 05:31:11 see the chart in http://synthcode.com/blog/2009/06/Small_is_Beautiful 05:31:29 (which, btw, was the smallest I could get tinyscheme) 05:31:41 hey, foof 05:31:45 ahh 05:31:56 if i do (use '(clojure.contrib math)) 05:31:59 foof: and then it fails at link time with /usr/bin/ld: eval.o: relocation R_X86_64_32S against `a local symbol' can not be used whenmaking a shared object; recompile with -fPIC 05:32:00 then the expt thing works just fine 05:32:01 the RESUMECC case has this line in it: 05:32:03 ip = (unsigned char*)sexp_unbox_integer(_ARG3); 05:32:14 jcowan: someone else already reported that 05:32:16 when I tried it, that value (sexp_unbox_integer(_ARG3)) was 6. 05:32:21 jcowan: i just saw that, if you build with 'make CFLAGS=-fPIC', then it works 05:32:35 I will say again, I haven't tested chibi on any 64bit machines. 05:32:59 I have one, but it generates a lot of heat, and it's a hot summer day. 05:33:16 *Elly* pokes foof with the debugging stick 05:33:43 Elly: That has already been fixed. 05:33:44 ip = sexp_bytecode_data(bc) + sexp_unbox_integer(_ARG3); 05:34:15 w00t! :) 05:34:45 The IP was switched from absolute to relative address, to always fit in a fixnum. 05:36:15 ahh 05:36:36 this is a really neat interpreter :) 05:38:01 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 05:39:09 Okay, I've built it on the 64 bit box and it's running 05:39:20 make test, however, hangs after this line: 05:39:25 (quasiquote (a (quasiquote (b (unquote (+ 1 2)) (unquote (foo (unquote (+ 1 3)) d)) e)) f)) [PASS] 05:40:26 foof: Aw, you left out Petite Chez Scheme. :-P 05:40:41 -!- ejs [n=eugen@189-106-135-95.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 05:40:43 Probably a gc bug, that's the thing most likely to break in 64-bit, and the next test isn't any more complicated. 05:40:50 foof: Under normal circumstances, would one use the 57k executable for Chibi, or would it be bigger? 05:41:03 If you have Boehm installed you can try make CFLAGS=-fPIC USE_BOEHM=1 05:41:43 arcfide: I can only compare open source projects because I need to count lines of code! 05:42:20 Well, it's mostly intended to be used as a library from C code. 05:42:31 foof: Ah, that would be why you want LoC. 05:42:34 The library is 87k. 05:43:19 *jcowan* installs libgc-dev 05:43:53 jcowan: you're using the boehm GC? 05:44:15 I'm going to try 05:44:34 foof: The kernel that one would use for linking with a C program for scripting in larger applications is 170K for Chez, with a 752K runtime library if you want the entire Scheme, and less if you don't want everything. 05:44:50 All tests pass 05:44:58 cool 05:44:58 so you're right, it's a bug in the precise GC 05:45:25 which is bizarre, given that I wouldn't expect the tests to actually require a gc 05:45:39 I gotsa da lots of memory here 05:46:16 foof: Nice work, BTW. 05:46:24 The test suite uses a lot of macros and string ports. The memory adds up quickly. 05:48:15 arcfide: Apart from the fact that that's an order of magnitude larger than chibi, you're never going to sell me on an implementation I can't even use :) 05:49:21 jcowan: Also, default heap size is hard-coded to 2MB. 05:49:36 *jcowan* nods. 05:49:47 foof: I'm not saying that it's a reasonable comparison to the nice, compact Chibi, but in comparison to other fully compiled, optimizing systems like Chicken, I think its something to note. 05:51:47 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 05:53:06 foof: impressive how small it is 05:57:19 foof: is the impl. of COND the usual one, or are there ways to optimize it? 05:58:22 -!- ikaros [n=ikaros@f050246097.adsl.alicedsl.de] has quit ["Leave the magic to Houdini"] 05:59:42 wow, the ER macro implementation of syntax-rules is cool 06:03:27 hmm 06:03:30 foof: am I a bad person? 06:03:32 ~/s/chibi-scheme-0.2$ LD_LIBRARY_PATH=. ./chibi-scheme 06:03:32 > (load-native "./lt.so") 06:03:32 This is some C code. 06:03:32 #t 06:03:46 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 06:05:42 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has left #scheme 06:06:50 foof: nice blog post 06:07:25 hmm 06:07:31 now I need a way for the C library to call back to chibi 06:07:39 fortunately that should be easyish... 06:10:42 Elly: You can sort of do FFI by making an OP_FCALLN opcode and defining it in the environment. 06:11:04 peter_12: thanks 06:11:43 Elly: What does load-native do, dload the library? 06:11:43 foof: in Chibi, if I have two VMs running, they share the same heap? 06:11:46 foof: yes 06:11:52 well, dlopen() it 06:12:00 Elly: err, right 06:12:32 peter_12: currently, yes, I will make them use separate heaps in the next release 06:12:40 ahh 06:13:11 (define for-each map) :) 06:13:33 there we go 06:13:34 hbbnj [n=irc@s83-191-238-2.cust.tele2.se] has joined #scheme 06:13:36 foof: If the heap runs out of memory, it looks like it causes the process to exit. For an embedded system, that seems a bit drastic, doesn't it? 06:13:56 hah, I got the "dereferencing type-punned pointer" warning, but I got it to call an initializer function in the C library that returns an sexp :) 06:14:42 hehehe, *(void**)&func = f; 06:14:52 Elly: Are you planning on using libffi? 06:15:04 foof: I wasn't, no 06:15:14 but I wasn't planning anything at all 06:15:19 Then what use is load-native? 06:15:21 I was just wondering how hard it was to add builtins 06:15:47 I mean, currently I'm about to add an exported C function that lets C libraries register native functions 06:15:55 Ah, OK. 06:18:26 Daemmeru` [n=goetter@1133sae.mazama.net] has joined #scheme 06:18:27 -!- Daemmerung [n=goetter@1133sae.mazama.net] has quit [Read error: 104 (Connection reset by peer)] 06:24:36 -!- hbbnj [n=irc@s83-191-238-2.cust.tele2.se] has quit [Remote closed the connection] 06:30:21 hm... that's odd 06:30:31 it returns the right value, but it still thinks there's an exception 06:30:32 ? 06:30:34 Mestoco [n=user@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 06:30:50 I have a native function that returns 42 06:30:56 (well, returns sexp_make_integer(42)) 06:31:04 when I call it, chibi prints: "ERROR: 42" 06:31:21 huh 06:31:28 I'd have to see the code. 06:31:33 I can tar it up if you like 06:31:52 ... but apple wants me to perform my weekly reboot and lose all my state again, brb 06:32:12 -!- foof [n=user@dn157-046.naist.jp] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 06:33:14 ASau [n=user@host201-231-msk.microtest.ru] has joined #scheme 06:42:30 foof [n=user@dn157-046.naist.jp] has joined #scheme 06:44:20 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [] 06:44:27 -!- X-Scale [i=email@89.180.201.150] has left #scheme 06:45:06 foof: http://l.leptoquark.net/~elly/chibi-scheme-0.2-native.tgz 06:45:48 mmc [n=mima@esprx02x.nokia.com] has joined #scheme 06:47:13 I think the stack discipline is getting messed up because the special case I added is not doing something it's supposed to 06:47:18 but it is hard to tell :P 06:51:44 largely because I do not know what the stack discipline is 06:54:17 hm 06:54:21 maybe just adding new opcodes is a better idea? 06:54:22 Elly: That's not how I intended to add FFI, but if you want to play with it, add "ip += sizeof(sexp);" before the break in the VM nprocedurep case. 06:55:17 hm 06:55:21 how did you intend to do it? 06:55:24 from the other side? 06:55:26 Elly: Yes, the idea is to add an opcode, the same way the other C functions like sexp_expt, sexp_string_concatenate, etc. Are added. 06:55:36 ah, now it works :) 06:55:58 yeah, I just thought to look at how opcodes are handled 06:58:16 hm 06:59:05 -!- ASau [n=user@host201-231-msk.microtest.ru] has quit [Remote closed the connection] 06:59:16 ASau [n=user@host201-231-msk.microtest.ru] has joined #scheme 07:03:29 wingo [n=wingo@127.Red-79-151-219.dynamicIP.rima-tde.net] has joined #scheme 07:06:05 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 07:06:15 what is the scheme equiv of progn ? 07:08:37 adding new opcodes is not completely trivial 07:08:41 *Elly* puts it aside and goes to bed 07:10:24 mattie: begin 07:10:49 -!- carlmax [i=d20d6592@gateway/web/freenode/x-87aa00e22d423af7] has quit ["Page closed"] 07:21:28 -!- mattie [n=user@74-60-0-165.sea.clearwire-dns.net] has quit [Remote closed the connection] 07:22:15 -!- jcowan [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has quit ["Bailing out"] 07:25:46 -!- wingo [n=wingo@127.Red-79-151-219.dynamicIP.rima-tde.net] has quit [Read error: 113 (No route to host)] 07:29:05 ejs [n=eugen@77.222.151.102] has joined #scheme 07:30:46 -!- Greg02 [n=greg@ool-18bc79e7.dyn.optonline.net] has quit [Read error: 110 (Connection timed out)] 07:32:31 rgrau [n=user@161.116.222.132] has joined #scheme 07:33:09 -!- arcfide [n=arcfide@h-68-165-56-221.chcgilgm.dynamic.covad.net] has left #scheme 07:33:55 Mr-Cat [n=Miranda@hermes.lanit.ru] has joined #scheme 07:37:19 Modius [n=Modius@24.174.112.56] has joined #scheme 07:39:23 ejs1 [n=eugen@nat.ironport.com] has joined #scheme 07:45:34 -!- joast [n=rick@76.178.184.231] has quit [Connection timed out] 07:46:56 pierpa [n=user@host202-182-static.80-94-b.business.telecomitalia.it] has joined #scheme 07:47:14 joast [n=rick@76.178.184.231] has joined #scheme 07:48:13 -!- ejs [n=eugen@77.222.151.102] has quit [Read error: 110 (Connection timed out)] 07:56:25 elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has joined #scheme 08:01:23 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 08:02:19 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 08:05:44 -!- derrida [n=jacques@unaffiliated/deleuze] has quit [Read error: 113 (No route to host)] 08:11:13 athos [n=philipp@92.250.250.68] has joined #scheme 08:13:06 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 08:13:23 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [Remote closed the connection] 08:13:32 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 08:32:46 -!- Lemonator [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 08:36:54 codermattie [n=user@74-60-0-165.sea.clearwire-dns.net] has joined #scheme 08:37:08 arcfide [n=arcfide@h-68-165-56-221.chcgilgm.dynamic.covad.net] has joined #scheme 08:39:07 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 08:43:41 seltsam [i=5c4e8d56@gateway/web/freenode/x-8629d946e3618255] has joined #scheme 08:51:22 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 08:52:46 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 08:54:39 jewel [n=jewel@dsl-242-129-65.telkomadsl.co.za] has joined #scheme 09:00:59 -!- arcfide [n=arcfide@h-68-165-56-221.chcgilgm.dynamic.covad.net] has left #scheme 09:06:09 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 09:06:10 Nshag [n=shagoune@Mix-Orleans-106-2-217.w193-248.abo.wanadoo.fr] has joined #scheme 09:23:30 -!- Axioplase is now known as Axioplase_ 09:29:03 timchen1a [i=tim@163.16.211.21] has joined #scheme 09:29:54 -!- nasloc__ [i=tim@kalug.ks.edu.tw] has quit [Read error: 104 (Connection reset by peer)] 09:33:53 -!- athos [n=philipp@92.250.250.68] has quit [Read error: 104 (Connection reset by peer)] 09:40:29 timchen119 [i=tim@kalug.ks.edu.tw] has joined #scheme 09:41:33 -!- timchen1a [i=tim@163.16.211.21] has quit [Read error: 104 (Connection reset by peer)] 10:00:16 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 10:03:08 Greg02 [n=greg@ool-18bc79e7.dyn.optonline.net] has joined #scheme 10:04:50 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 10:07:08 alaricsp [n=alaricsp@88-202-202-163.rdns.as8401.net] has joined #scheme 10:13:59 kuribas [i=kristof@d54C434F4.access.telenet.be] has joined #scheme 10:15:28 -!- incubot [i=incubot@klutometis.wikitex.org] has quit [Remote closed the connection] 10:16:42 jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has joined #scheme 10:20:32 incubot [i=incubot@klutometis.wikitex.org] has joined #scheme 10:22:35 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [Remote closed the connection] 10:22:49 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 10:34:58 ejs2 [n=eugen@77.222.151.102] has joined #scheme 10:38:50 Edico [n=Edico@unaffiliated/edico] has joined #scheme 10:40:41 Nichibutsu [n=myfabse@wikipedia/Track-n-Field] has joined #scheme 10:43:57 -!- ejs1 [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 10:44:14 -!- jewel [n=jewel@dsl-242-129-65.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 10:44:59 jewel [n=jewel@dsl-242-129-65.telkomadsl.co.za] has joined #scheme 11:03:17 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Read error: 54 (Connection reset by peer)] 11:03:39 cracki [n=cracki@44-252.eduroam.RWTH-Aachen.DE] has joined #scheme 11:08:16 -!- sad0ur [n=sad0ur@psi.cz] has quit [Read error: 60 (Operation timed out)] 11:08:39 -!- soupdragon [n=f@amcant.demon.co.uk] has quit ["Leaving"] 11:10:28 sad0ur [n=sad0ur@psi.cz] has joined #scheme 11:21:11 ejs1 [n=eugen@nat.ironport.com] has joined #scheme 11:23:08 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 11:27:44 -!- cracki [n=cracki@44-252.eduroam.RWTH-Aachen.DE] has quit [Read error: 110 (Connection timed out)] 11:28:01 -!- seltsam [i=5c4e8d56@gateway/web/freenode/x-8629d946e3618255] has quit [Ping timeout: 180 seconds] 11:30:05 -!- ejs2 [n=eugen@77.222.151.102] has quit [Read error: 110 (Connection timed out)] 11:30:14 Edico [n=Edico@unaffiliated/edico] has joined #scheme 11:32:20 Hey guys, 11:32:28 I was wondering how I can limit a number to 32bits in Scheme? 11:35:43 soupdragon [n=f@amcant.demon.co.uk] has joined #scheme 11:36:02 (lambda (x) (let ((lim (- (expt 2 32) 1))) (cond ((> x lim) lim) ((< x 0) 0) (else x)))) 11:37:14 -!- Nichibutsu [n=myfabse@wikipedia/Track-n-Field] has quit [Read error: 110 (Connection timed out)] 11:38:06 -!- Mestoco [n=user@a88-115-8-123.elisa-laajakaista.fi] has quit [Remote closed the connection] 11:40:31 depends on what you mean by limit, but i'd go with (bitwise-and x #xffffffff) or perhaps (modulo x #x100000000) if your scheme doesn't have bitwise-and 11:45:05 ejs2 [n=eugen@nat.ironport.com] has joined #scheme 11:53:59 -!- ejs1 [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 11:59:57 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 12:00:53 -!- jewel [n=jewel@dsl-242-129-65.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 12:06:04 ejs1 [n=eugen@nat.ironport.com] has joined #scheme 12:08:06 -!- rgrau [n=user@161.116.222.132] has quit [Remote closed the connection] 12:15:25 -!- ejs2 [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 12:19:46 clamp :) 12:25:26 -!- elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has quit [] 12:30:10 elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has joined #scheme 12:31:05 -!- dudleyf [n=dudleyf@ip70-178-212-238.ks.ks.cox.net] has quit [] 12:37:43 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 12:38:08 tonyg [n=tonyg@host226.lshift.net] has joined #scheme 12:39:00 moghar [n=user@unaffiliated/moghar] has joined #scheme 12:40:32 sepult [n=buggarag@xdsl-87-78-24-243.netcologne.de] has joined #scheme 12:41:32 -!- elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has quit [] 12:48:39 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 12:55:27 cracki [n=cracki@44-252.eduroam.RWTH-Aachen.DE] has joined #scheme 12:56:20 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 13:00:27 -!- leppie [n=lolcow@dsl-243-41-58.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 13:01:08 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 13:01:41 -!- ejs1 [n=eugen@nat.ironport.com] has quit [Read error: 60 (Operation timed out)] 13:07:05 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 13:07:55 ikaros [n=ikaros@f050238146.adsl.alicedsl.de] has joined #scheme 13:08:10 leppie [n=lolcow@dsl-243-41-58.telkomadsl.co.za] has joined #scheme 13:09:47 sepult` [n=user@xdsl-87-78-24-243.netcologne.de] has joined #scheme 13:10:12 -!- sepult` [n=user@xdsl-87-78-24-243.netcologne.de] has quit [Remote closed the connection] 13:12:03 sepult` [n=user@xdsl-87-78-24-243.netcologne.de] has joined #scheme 13:16:04 rmorris [n=user@209.120.179.205] has joined #scheme 13:17:53 -!- sepult` [n=user@xdsl-87-78-24-243.netcologne.de] has quit [Client Quit] 13:18:26 -!- soupdragon [n=f@amcant.demon.co.uk] has quit ["Leaving"] 13:18:57 sepult` [n=user@xdsl-87-78-24-243.netcologne.de] has joined #scheme 13:27:04 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 13:28:23 derrida [n=jacques@pool-173-48-126-91.bstnma.fios.verizon.net] has joined #scheme 13:30:51 bombshelter13_ [n=bombshel@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has joined #scheme 13:31:35 -!- dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has quit ["Leaving"] 13:35:26 luz [n=davids@139.82.89.70] has joined #scheme 13:40:44 xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has joined #scheme 13:41:39 gfb [i=4c455486@gateway/web/freenode/x-26697ab1ced5b317] has joined #scheme 13:46:00 -!- araujo [n=araujo@gentoo/developer/araujo] has quit ["Leaving"] 13:47:57 metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has joined #scheme 13:53:30 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Remote closed the connection] 13:54:58 elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has joined #scheme 13:55:11 Hey people. 13:55:21 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Read error: 110 (Connection timed out)] 13:55:24 I was wondering if anyone would be kind enough to help me learn how to implement a simple data structure, in an efficient way, within Scheme. 13:55:25 :) 13:55:32 My usual tricks don't seem applicable here. 13:55:39 So, I'm keen to learn what tricks /would/ be useful :) 13:55:56 There aren't pointer-pointers :P 13:55:59 So, my tactics have to change. 13:56:01 (darn) 13:56:01 :p 13:58:33 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [] 13:59:04 elderK: say which datastructure then 13:59:18 binary search tree. 13:59:25 When I implement things like this in C, 13:59:41 I can minimize the amount of code, because the entire thing is so symmetric. 13:59:59 REPLeffect [n=REPLeffe@69.54.115.254] has joined #scheme 14:00:01 the only real thing that changes during insertion, etc, is which side of hte tree we route down. 14:00:14 likewise, the traversal logic for removal, insertion, lookup, is identical. 14:00:28 but, like I said, I use pointer-pointers and suchlike a lot inC. 14:00:39 :) and, scheme has its own way of solving things. 14:00:43 which, is why it's interesting. 14:00:43 :) 14:00:47 I just, hate repeating code, that's all. 14:00:54 especially if only one thing really changes... 14:01:40 ie, http://en.literateprograms.org/Binary_tree_(Scheme) 14:01:45 you're saying you're repeating code in a C implementation or in scheme? 14:01:45 look how much code this guy duplicates 14:01:51 in Scheme. 14:02:01 in C, I can implement this structure in less than 20 lines, easily. 14:02:30 the amount of lines is meaningless. Just, loko at this guys code. 14:02:32 Now make your structure persistent, elderK, and don't leak memory. (in C) 14:02:35 Look how little changes in so much of it. 14:02:44 heya Riastradh ! 14:02:55 elderK: why don't you show us some C code that explains what you want? 14:02:56 I dont leak memory :) 14:03:06 but aye, my code isn't persistent. 14:03:10 ~_~ in any case, what I mean here is, 14:03:14 look at this guys code, okay? 14:03:18 look at the symmetric case. 14:03:25 look how litlte changes, in many of hte cases he is handling. 14:03:40 elderK: duplicating code doesn't mean that's the way to do it in scheme, just that this person is duplicating code 14:04:01 Okay, good, at least someone agrees with me the guy here, is duplicating code. 14:04:13 :) My intention is simply to do it in such a way, to not duplicate code :) 14:04:14 jewel [n=jewel@dsl-242-129-65.telkomadsl.co.za] has joined #scheme 14:04:51 and, to abstract out the logic that does traversal. So that the individual code for insertion, removal, lookup - is much smaller - since, they all can reuse the traversal code. 14:04:53 well, i didn't actually look at most of the code, i'm just saying, why would you generalize scheme based on it? 14:05:02 Im not. 14:05:09 I never meant to be taken as saying 'scheme sucks' 14:05:13 I /like/ Scheme. 14:05:16 I'm not faulting Scheme. 14:05:19 Im simply faulting this guy. 14:05:19 elderK: Haven't seen (or rather talked) to you in a while. 14:05:19 :p 14:05:22 rmorris, he didn't generalize; he asked a specific question about specific code. Do you have a specific answer with specific code? 14:05:39 :D Yeah Quadrescence! Long time. 14:05:42 :) What's kicking, man? 14:05:58 I've been doing a lot of work lately, so, Ifelt like some fun. Thus, Scheme. 14:05:59 :) 14:06:11 elderK: Probably the same thing as last time I talked to you---making my own scheme-ish language. 14:06:13 Riastradh: i was interpreting the "scheme has its own way of solving things." bit, not saying you hate scheme :) 14:06:20 ah, not saying.. was meant for elderK 14:06:54 np :) cheers. 14:07:47 elderK, if you want to update the structure in place, and you have pointers back and forth for all the tree, you can share traversal code between search and update. But enough structure is different between search and update, for the persistent structure, that to isolate it would probably leave you with more code than before, and possibly code that is harder to follow. 14:08:01 for example, like, in C, we could just take the address of a node's left or right pointer. That way, we could just dereference, set - and hte correct link would be set (left or right). Where as in Scheme (afaik so far), I need to store the node that I'm in - and the side that I want to set. 14:08:13 Aye, Rias. 14:08:24 I'll note here, too, that I'm not implementing Persistence. 14:08:27 I do not need it :) 14:08:53 Well, then just transcribe what you would write in C. 14:09:38 that being said though, I'm pretty sure you could implement a persistent BST, sharing the traversal stuff, for removal, update, etc. BST without balancing is fairly simple. 14:10:26 then again, I may be missing the point here entirely. 14:10:26 :) 14:10:37 (I overcomplicate everything, it's like, my past time) 14:10:51 and Quadrescence, how's the language going? :) Have you made much progress since we last spoke? 14:12:23 elderK: Tons of progress. 14:13:04 :D 14:13:10 Any chance you have a change list? 14:13:16 I'd be interested in rolling through it :) 14:13:43 elderK: No, unfortunately. I'll PM you a webpage though. 14:13:58 Oh, and about Scheme - I guess I was wondering it was possible to say, store a symbol in another symbol, then update what the symbol stored, references. 14:14:01 Sweet, I'd appreciate that Quad. 14:14:07 something similar to this in C: 14:14:36 If by `update what the symbol stored, references', you mean `update the value of the *variable* that, in the program's source code, happened to be named by the symbol', then no. 14:14:41 parolang [n=user@keholmes.oregonrd-wifi-1261.amplex.net] has joined #scheme 14:14:55 The association between symbols and variables is strictly a static property of a program, not transferred into its run-time semantics. 14:14:56 int *a = 0, **b = &a, c = 5;&a; *b = &c; 14:15:04 Those aren't symbols, elderK. 14:15:45 o_O 14:15:46 You can reify the locations of variables' values: (cons (lambda () x) (lambda (x*) (set! x x*))) 14:16:22 I'd figure that's a no-no in Scheme though, generally? 14:16:56 It's not really a no-no, just something you need to explicitly do if you want it, rather than being built into every binding 14:16:59 It is not often a useful idiom. 14:17:07 bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 14:17:18 For that matter, mutable variables are not often useful. 14:17:19 See, this is where my mind starts to get blurred, I guess. Afaik, Symbols are simply names, that are assosciated with some address - that address stores a variable's value. The symbol itself, isn't the variable - it's simply a binding to that variable. The symbol can change it's binding. 14:17:26 No, elderK. 14:17:28 So all we ever seem to do, is change bindings, not variables. 14:17:28 Symbols are simply names. 14:18:03 Names that relate to a variable. 14:18:05 No. 14:18:10 Not intrinsically. 14:18:17 Riastradh: Would mind if I ask, how does (lambda () x) do anything? 14:18:24 I think it's fair to say "A given symbol, in a given context, is either unbound or bound to a mutable cell that contains a value" 14:18:28 elderK: It might help if you think of it like #define a 0\n\n#define b &a\n\nb = 5 14:18:29 annodomini [n=lambda@130.189.179.215] has joined #scheme 14:18:52 Yikes. I don't think that will help anyone, synx! 14:18:56 aye. 14:18:58 that's not even valid. 14:19:18 elderK, consider the following C fragment: int a = 5; const char *b = "a"; 14:19:22 as for alaricsp view, tahts hte one I side wide. 14:19:27 elderK, how do I get to 5 starting only from the variable named b? 14:19:42 Riastradh: It would help people who think that an identifier necessarily is mutable and has a pointer address. 14:19:49 b = (const char *)&a; :P 14:19:59 If you do (set! foo bar), it evaluates bar to get a value, finds the mutable cell bound to foo (in the context), and updates it to the value of bar. If you just say "foo", then that evaluates to the contents of the mutable cell foo is bound to (in the context) 14:20:14 elderK, let's try again: how do you get to 5 starting only from the *value* of the variable named b? 14:20:36 you dont. 14:20:42 If you just change the value of b, then you're no longer dealing with the string "a", which was the object of the exercise. 14:20:46 unless you're crazy and consult the RTDL. :) 14:20:47 Similarly, in Scheme, you can write this: 14:21:08 (let ((a 5) (b 'a)) (set! b (cons (lambda () a) (lambda (a*) (set! a a*)))) ...and then use B to find 5...) 14:21:56 mbishop_ [n=martin@unaffiliated/mbishop] has joined #scheme 14:22:34 (lambda () a) closes over a's value? 14:23:00 I'm having some trouble understanding that, Riastradh. 14:23:02 :) 14:23:03 No, it closes over A's *binding*, so that when we update the value associated with that binding by calling the procedure in the cdr, the procedure in the car will reflect the updates. 14:23:26 (Note, by the way, that the symbol A in the program is totally a red herring -- just like the string "a" in the C program.) 14:23:28 wipe that smile off yer face boah 14:23:41 *offby1* sobers up 14:23:44 haha 14:23:51 red herring? 14:23:58 ie, the string is in rodata? :P 14:24:01 ie, dontw rite to it? 14:24:08 else, torment and pain... 14:24:09 :P 14:24:24 ... 14:24:56 Read-only data has nothing to do with it. The symbol A is just totally irrelevant; instead of 'A I could have written 123. 14:25:00 No, a red herring in the sense that is irrelevant to the problem. 14:25:40 -!- cracki [n=cracki@44-252.eduroam.RWTH-Aachen.DE] has quit [Read error: 110 (Connection timed out)] 14:25:46 elderK: http://en.wikipedia.org/wiki/Red_herring_(idiom) 14:25:49 ... I understand A is simply human-friendly, its just some address. 14:25:52 it's just some location in RAM. 14:25:53 No! 14:26:00 how is it NOT? 14:26:01 The symbol A is totally irrelevant. 14:26:22 dudleyf [n=dudleyf@65.243.31.107] has joined #scheme 14:26:23 the symbol lets us access the data via a name. That name, is in essence, a binding. Many things can bind ot the same data. 14:26:26 When the *compiler* processes the program, it might use the symbol A in its representation of the program in order to refer to the variable which we named A, but that has nothing to do with the symbol A that our program is using. 14:26:55 it has everything to do with it! 14:27:19 elderK: Not to confuse you further, but I think you may be conflating the _symbol_ 'A with the _variable_ A 14:27:21 Are you trying to simply say that to the program, "A" is a VALUE? 14:27:27 just a friendly name? 14:27:31 for our number or stirng, or whatever? 14:27:38 So there are two programs involved: the meta-program (the compiler), and the object-program (our program, which the compiler is processing). The symbol A turns up in both programs, for different purposes. In the meta-program, the symbol A is used to refer to a variable which we introduced in the object-program. In the object-program, any association between the symbol A and a variable which (in the program's source code) we na 14:27:39 because, I'm really not able to get your point man, I'm sorry. 14:27:57 Riastradh: Cut off after "we na" 14:28:03 ...we named `A' is gone. 14:28:38 The situation is identical in C. The compiler might use the string "a" in some internal data structure to refer to variables in the object-program, but simply writing the string "a" in our object-program doesn't provide any way to get at the variable which (in the program's source code) we named `a'. 14:28:39 (define a 4) <--- a is a symbol. It binds to the cell that stores 4, no? 14:28:41 br1 [n=opera@r190-135-27-129.dialup.adsl.anteldata.net.uy] has joined #scheme 14:28:49 or is 'a the symbol, and a the variable? 14:29:02 Syntactically, A is a symbol, yes, but your program doesn't work with symbols. 14:29:09 te program works with values. 14:29:13 gotcha. 14:29:18 Similarly, in C, `int a = 4;' doesn't involve any strings, although syntactically we can talk about the string "a" which occurs in the program's source code. 14:29:33 Okay, let me explain how I udnerstande ,okay? 14:29:37 This might help you get your point across. 14:29:43 And save us further stress :) 14:29:49 The string "a" in the object-program doesn't help it to refer to the location of the variable which we happened to name `a' in the source code. 14:29:53 The value that A is bound to may be several locations in RAM over the lifetime of the program. 14:29:58 Even if unmodified. garbage collection and such. 14:30:25 int a = 4; <--- a is nothing but a human-readable address. We type a, it doesnt plug "4" into the code. It plugs the address of 4 into hte code. The machine-code uses that to access and modify that data. 14:30:47 A is an identifier. It is bound to a value. 14:30:57 exactly. 14:31:03 its nothign but to ease our understanding. 14:31:12 a likely story 14:31:12 for convenience only. 14:31:43 It is a name by which source code can refer multiple times to a common idea (in particular, a common location for a value). 14:32:15 precisely. 14:32:18 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 14:32:24 See, I thought "variables" in Scheme didnt exist 14:32:26 the mateirals I have been reading 14:32:29 always refers to them as bindings. 14:32:37 `Binding' is a slightly more general term. 14:32:43 A binding is an association between a name and its meaning in a lexical environment. 14:32:44 scheme only allows you to refer to an identifier within the scope that it is visible. There's nothing built-in to return something that would somehow expand the scope to its calling function. 14:32:50 I got mixed up, thinking that all "variables" are just, pointers - that Scheme automatically dereferences when we refer to them. 14:32:56 The meaning of a name might be a special operator or a macro, i.e. the binding might be a syntactic binding. 14:33:05 -!- Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has quit [Read error: 110 (Connection timed out)] 14:33:16 kidn of like C++ int &a = b; 14:33:32 The meaning might also just be a variable, which has an associated location. 14:33:44 So instead you return a value defined within the scope of the identifier. By using that value, you can access the value you're trying to keep track of. 14:34:08 -!- br1 [n=opera@r190-135-27-129.dialup.adsl.anteldata.net.uy] has left #scheme 14:34:18 :P I've lost how to expres what I've meant now. 14:34:18 lol 14:34:21 god have mercy. 14:34:25 It is probably better to leave C++ out of this. 14:34:47 so (let ((a 5)) (lambda () a)) does not break down to (lambda () 5). It retains that scope, so that it will always return whatever a is bound to. 14:34:55 'a is the symbol, a the variable --- yes, if by "the" you don't mean "its". Similarly in C "a" is a string, a is a variable, and they have nothing to do with each other 14:35:12 Im not saying they DID! 14:35:24 you guys have totally blown what I've been saying, way out of context. 14:35:26 elderK, I have a suggestion: write a trivial Scheme evaluator (in Scheme). 14:35:34 I think I may have to, 14:35:35 (let ((a 5)) (lambda () a) (set! a 6)) will produce a lambda that always returns 6 14:35:49 ...actually it'll produce nothing hold on 14:35:49 (let ((a 5)) (begin0 (lambda () a) (set! a 6))) will produce a lambda that always returns 6 14:36:54 well, aye, because it's closing over the a defined by the let. 14:37:01 the set updates the a defined by the let. 14:37:06 which the lambda will return the value of. 14:37:11 Yes, exactly. 14:37:33 Yes, and you can only refer to that a from within the let. 14:37:57 And that's how (cons (lambda () x) (lambda (x*) (set! x x*))) works -- the two procedures remember the same binding, the same variable, the same location; the first procedure fetches the current value from that location, and the second procedure stores a new value in that location. 14:37:59 and if you returned that lambda? 14:37:59 If the garbage collector moves a somewhere else, that code will still operate perfectly well. 14:38:02 -!- mbishop [n=martin@unaffiliated/mbishop] has quit [Read error: 113 (No route to host)] 14:38:12 aye. 14:38:17 precisely, beacuse its not marked as free. 14:38:23 I did return that lambda, thus the begin0 14:38:40 Basically, what I was thinking of achieving ,is similar to this in C: 14:38:54 (I know, C, evil, but it helps me express my intent) 14:39:11 struct { int *links[2] } test; 14:39:20 fudge. 14:39:21 :P 14:39:28 So by the lambda closing on a, you can access the value a refers to. But the lambda itself is not even assigned to an identifier. It's the value returned, which you can easily do. 14:40:19 int *links[2], **specific_link = &links[whatever_subscript]; *specific_link = ; 14:40:40 if whatever_subscript was 0, that is. 14:40:57 In Scheme, locations are not first-class like they are in C; you must reify locations explicitly. 14:41:17 I showed how to reify the location associated with a variable. You can also reify locations associated with vectors: (cons (lambda () (vector-ref v i)) (lambda (x) (vector-set! v i x))) 14:41:25 Should I consider that one of hte /major/ differences in paradigm here? 14:41:28 Once you reify a location, you can work with it like a pointer in C. 14:41:53 thank Riastradh. 14:42:02 er, thank you. 14:42:09 I think my brains starting to crash now. 14:42:10 ^_^ 14:42:10 fun 14:42:11 :p 14:42:19 Here's a reifier: (define-syntax & (syntax-rules () ((& ) (let ((p (lambda args (if (null? args) (set! (car args)))))) p)))) 14:42:24 Golly, have I become an interjection? 14:42:40 ? 14:42:48 More of a diety, I'd say. 14:42:53 I'd agree with diety. 14:42:54 deity ;) 14:43:00 (define (++ var) (var (+ (var) 1))) 14:43:05 Diety? I don't diet. I eat lots of food. 14:43:14 :P A god, Riastradh. 14:43:17 gfb, `++' is not valid lexical syntax for a symbol in Scheme. 14:43:19 I often mix up letters typed with alternate hands. 14:43:34 chandler: use dvorak, all vowels on the same hand ;) 14:43:44 I need to get my terminology sorted, 14:43:54 the blurring of binding is really screwing up my understanding, it seems. 14:44:04 Gee, I've never tried ttping wit my hands reversed before. 14:44:10 (bluring of my own understanding, that is) 14:44:17 Okay, but I've never had trouble with it in a scheme 14:44:21 Riastradh: don't diss dvorak man. :( 14:44:22 haha gfb good one 14:44:36 elderK, I suggest also that you read the R5RS. It defines all the terminology that I have been using. 14:44:39 (begin (define v 2) (++ (& v)) v) 14:44:46 Aye, I've read R5RS, thats the sad part. 14:44:58 Need to read it again, and again, until that holy gestalt moment... 14:45:03 You have to grok it 14:45:05 > (define (++ x) (x (+ (x) 1))) 14:45:05 Error: unsupported number syntax 14:45:05 "++" 14:45:26 weird, I can use ++ 14:45:38 It is accepted only as a non-standard extension. 14:45:39 (define (plus-plus var) (var (+ (var) 1))) 14:45:42 Its use is non-portable. 14:45:44 heheheheh 14:45:45 :) 14:45:49 okay gfb, you win :D 14:45:50 (begin (define v 2) (plus-plus (& v)) v) 14:45:50 :) 14:46:02 call it INCF :P 14:46:05 I've never had one of those moments... 14:46:11 Though I did hear a lecture on them just the other day. 14:46:13 and aye,ecraven, grok. Just, keep reading, tinkering, until I grok more and more :) 14:46:35 I can't help but get excited and want to run with it though, it's hard to realize you have to keep reading. 14:46:36 There's & operator for scheme variables. Now don't use it until you can think non-C. 14:47:02 ~_~ thats the biggest challenge here. 14:47:15 elderK: it helps to start on easy problems, and concentrate on solving them, not on thinking how you would do it in C or on trying to understand the entire language at once 14:47:16 I've been working in C for so long, exclusively, it's very difficult to change how I approach problems. 14:47:19 And now before I vanish: 14:47:23 Riastradh pasted "reducing some small duplication in persistent tree operations" at http://paste.lisp.org/display/82341 14:47:52 aye, ecraven. 14:47:56 BST was the simple practice. :P 14:48:00 Whether that is an improvement over the code without the TRAVERSE abstraction, well, I leave that to you to decide. 14:48:15 Ria, 14:48:20 is there a right or wrong answer to that decision? :P 14:48:30 or, is it simply preference? 14:48:35 dysinger [n=tim@71.20.231.3] has joined #scheme 14:48:36 and hey, I feel like I need ot restate this again, 14:49:34 I LIKE Scheme, a lot. In fact, I got a few friends excited about it - even someone who normally hates programming, clicked ot Scheme. I /like/ Scheme. Part of this is so hard for me, because I want to move to scheme as soon as possible. It's just, hard for me to deal with the fact that all the usual ways I think, analyze and deal with problems - are just going to need changing. 14:50:23 I can't become a mage of Scheme in a few weeks. It took me years to get where I am in C now. 14:50:25 :) 14:50:29 -!- kuribas [i=kristof@d54C434F4.access.telenet.be] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 14:50:33 *elderK* wanders off to jug, makes coffee. 14:50:41 And hey, thanks Riastradh for your patience :). 14:50:46 Synx, gfb and the like, too :) 14:50:48 elderK: have you read SICP or something like that? 14:51:01 I've read a lot of SICP, not cover to cover though. 14:51:10 I learn more through doing. 14:51:16 then learning new things, as I need htem. 14:51:33 seems I need to yet learn more before I can really do that. 14:51:45 http://docs.plt-scheme.org/getting-started/index.html 14:51:47 I don't like scheme. Nested contexts confuse me, and complex syntax leaves me totally in the dark. I *still* don't understand exactly how shift/reset works. 14:52:36 I use it because it has awesome garbage collection, because it has real continuations, and because the people here are pretty decent, if a bit stuffy at times. 14:52:58 I don't know synx. Coming from C, I can see the power... in the expressiveness that Scheme allows. 14:53:09 I can see that nested contexts and suchlike are useful. 14:53:15 that link gets you "doing" very quickly 14:53:17 I just need to learn how to take advantage of them :) 14:53:44 :) 14:53:50 Right guys, well, I'm going to get into some reading. 14:53:59 systems programming, web programming, graphics, etc 14:54:01 R5RS. I have it printedin hardcopy :) 14:54:11 gfb, how relevant are those guides for other Schemes? 14:54:23 If I read those, will they still help me if I use say, Chicken or Guile? 14:54:27 or scheme48? 14:54:37 They use the PLT libraries, but the ideas are universal to scheme 14:54:49 okay, neat :) 14:55:09 e.g. quoting and unquoting, higher-order functions, continuations, in "Continue" guide 14:56:12 then eventually SICP 14:56:35 I enjoyed SICP :) 14:56:47 I read about 3/4 of the book. Didn't understand it all, but still enjoyed it. 14:56:54 I did a lot of the excersizes too, doesn't seem that it all stuck. 14:57:05 :( 14:57:23 great then, you know it's there when you want it 14:57:39 :) 14:57:40 but if it didn't stick, maybe HTDP is a better start 14:58:03 elderK: give it a year, one day it will all just make sense :p 14:58:11 I hope so, Leppie. 14:58:13 athos [n=philipp@92.250.250.68] has joined #scheme 14:58:26 It's driving me insane, having this awesome language - that is tempting me so... 14:58:29 and being unable to just, jive with it. 14:58:37 I mean, can you guys understand my situation? :) 14:58:41 how long you been trying now? 14:58:48 on and off for about 3 months. 14:59:00 mostly reading, little experiments, then back to C. 14:59:12 Everytime I read more about Scheme, I find myself more impressed, more interested. 14:59:50 try not to do too much at a time 15:00:17 Aye, that maybe a good idea. 15:00:18 I teach a 3rd year programming languages course. Not doing the first thing that comes to mind from python/java/c and earlier courses is the hardest part for students. 15:00:44 Aye. 15:00:53 the patterns in all of those languages are fairly identical. 15:01:00 but, from those kinds of languages - to Scheme / Lisp, 15:01:03 it's a big shift. 15:01:13 Makes me feel kind of embarassed. 15:01:32 I've been programming for a long time, I'm capable of quite a lot - and yet, I stumble through Scheme like a zombie. 15:01:33 PLT (and when I teach CS outsiders) have lots of experience and success teaching scheme from the start: it's easier than teach 'experienced' programmers! 15:01:37 looking back at what I learnt, coming from 6 years of C# when I started scheme (now about 20 months), learn lambda, learn letrec, learn tail recursion 15:01:56 I find python resembles scheme a lot. 15:02:23 It's sort of scheme's retarded inbred abused cousin. 15:02:27 :) 15:02:29 python and javascript continue the mainstream return to lisp/scheme 15:02:45 :) 15:02:54 bbs guys, 15:02:57 :) Off to chill for a litlte. 15:03:05 dysinger_ [n=tim@71.20.231.3] has joined #scheme 15:03:05 Let some of this stuff sink in, along with stuff from r5rs :) 15:03:16 I still wish I could find a decent concatenative language to work with. Now that stuff comes intuitively to me! 15:03:28 -!- elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has quit [] 15:03:31 lol, its understable needing to reflect after being mentally asaulted like that =P 15:03:31 Q: I like Lisp but my company won't let me use it. What should I do? 15:03:35 A: Try to get them to let you use Python. ... Python ... has a lot in common with Lisp, and has been getting closer to Lisp over time. 15:03:38 -- Paul Graham 15:05:14 From the ECMAScript (javascript) 3 standard: ES3 is a simple, highly dynamic, object-based language that takes its major ideas from the languages Self and Scheme. 15:05:44 -!- ASau [n=user@host201-231-msk.microtest.ru] has quit ["off!"] 15:06:18 gfb: Might be while guile supports ecmascript now. 15:06:18 Heck I even did this once: https://synx.us.to/code/scheme/concatenative.ss 15:06:23 *why 15:09:41 -!- xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has quit [Read error: 104 (Connection reset by peer)] 15:09:55 xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has joined #scheme 15:10:41 synx: Is Factor not decent? 15:11:11 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 15:11:20 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 15:12:21 -!- underspecified_ [n=eric@softbank220043052007.bbtec.net] has quit [Connection timed out] 15:13:52 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 15:15:43 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 15:17:23 chandler: it hangs on compilation for me 15:17:55 ridiculously slow to compile, and recompiles everything every time. 15:22:54 -!- dysinger [n=tim@71.20.231.3] has quit [Read error: 110 (Connection timed out)] 15:22:58 -!- xwl_ [n=user@147.243.236.60] has left #scheme 15:25:32 -!- etoxam [n=||||||||@84.79.67.254] has quit [Read error: 110 (Connection timed out)] 15:26:32 etoxam [n=||||||||@84.79.67.254] has joined #scheme 15:27:11 -!- socialite [n=piespy@78.8.139.175] has quit [Read error: 110 (Connection timed out)] 15:27:25 does anyone use srfi-35 and friends? if so, what do you think of it compared to other condition systems like say, common lisp's or mit-scheme's? 15:29:09 jewel_ [n=jewel@dsl-242-129-65.telkomadsl.co.za] has joined #scheme 15:29:40 -!- jewel_ [n=jewel@dsl-242-129-65.telkomadsl.co.za] has quit [Client Quit] 15:31:17 socialite [n=piespy@dynamic-87-105-8-31.ssp.dialog.net.pl] has joined #scheme 15:37:02 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 15:37:51 I just red the discussion before ...; for c programmers is dificult to learn scheme? 15:38:27 I just finished my first programming book and is a C programming book 15:39:20 and now I want to begin SICP, HTDP or The little schemer 15:39:20 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:39:29 -!- sepult` [n=user@xdsl-87-78-24-243.netcologne.de] has quit [Client Quit] 15:39:35 -!- sepult [n=buggarag@xdsl-87-78-24-243.netcologne.de] has quit ["leaving"] 15:40:31 -!- xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has quit [Remote closed the connection] 15:44:48 Lectus [n=Frederic@189.105.11.213] has joined #scheme 15:47:40 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Success] 15:52:42 -!- IceD^ [n=theiced@93.84.112.80] has quit ["Leaving"] 15:53:09 -!- metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has quit ["If you reach back in your memory, a little bell might ring, 'bout a time that once existed when money wasn't king."] 15:54:01 someone who has been programming C for 15 years may have to unlearn a little, but otherwise, no 15:58:07 proq, do you like Star Wars? 15:59:02 who said "No different, only different in your mind. You must unlearn what you have learned." ? 16:00:00 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 16:00:05 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:00:20 yoda 16:00:31 yeah :) 16:05:44 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 16:06:23 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 16:15:19 -!- jewel [n=jewel@dsl-242-129-65.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 16:20:08 metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has joined #scheme 16:20:29 z-axis [n=sergk@93.190.183.68] has joined #scheme 16:22:41 mrsolo [n=mrsolo@nat/yahoo/x-0032d1829e516adc] has joined #scheme 16:25:45 hm 16:26:09 I had been programming in C for about eight years before I started picking up functional languages, and it didn't take me long to rewire my brain 16:31:42 Young brains tend to be easier to rewire. 16:33:11 by force if necessary! 16:36:29 i used chicken wire 16:36:40 I used PLT wire :P 16:39:15 -!- gfb [i=4c455486@gateway/web/freenode/x-26697ab1ced5b317] has quit [Ping timeout: 180 seconds] 16:40:16 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [Read error: 110 (Connection timed out)] 16:40:23 -!- jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has quit [Read error: 113 (No route to host)] 16:40:30 elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has joined #scheme 16:40:43 Riastradh: You still about dude? 16:40:47 Yes? 16:40:54 I was wondering if you could explain how the reification thing you showed me, with the cons, works? 16:41:16 Finally cleared up my misunderstanding about Symbols and what not. 16:41:22 Too much time implementing Linkers for me :) 16:41:35 The two procedures remember the location of the common variable (whatever I called it -- A or X or whatever it was). 16:41:48 What one procedure does when you call it is to fetch the current value out of the location. 16:41:54 What the other procedure does is to store a new value in the location. 16:42:05 Why did you place them in a c ons 16:42:06 ? 16:42:32 Just to put them together somehow. That part of it isn't important; you could use a vector, a record, another procedure (another closure), &c. 16:43:43 Aha, I see now. 16:44:00 We are using the functions as a proxy, we are closing over the variable, right? 16:44:18 Yes. 16:44:19 since the lambdas remember the data as it was when they were /defined/ 16:44:41 sweet. 16:44:53 I have to say, btw, I love the interpreter :D 16:44:58 *elderK* hearts repl 16:44:59 How do you call the function in the cons? 16:44:59 :) 16:45:09 elderK: which are you using? 16:45:18 ((car )) ? 16:45:23 atm, Guile. 16:45:25 which repl 16:45:26 parolang, suppose the pair is called L. Then ((CAR L)) will yield the current value; ((CDR L) 5) will store 5 in the location. 16:45:29 ah ok 16:45:38 Riastradh: That's what I tried...hmm. 16:46:18 I did: (define f (cons (lambda () x) (lambda (x*) (set! x x*)))) 16:46:34 And then ((cdr f) 5) does nothing. 16:46:39 or, it errors 16:46:48 Did you define X earlier? 16:47:24 That's the problem. Sorry :) 16:49:57 -!- pierpa [n=user@host202-182-static.80-94-b.business.telecomitalia.it] has quit [Read error: 60 (Operation timed out)] 16:50:57 -!- mariorz [n=mariorz@unaffiliated/mariorz] has left #scheme 16:50:58 so any thoughts on condition systems compared to srfi-35 and such? 16:51:51 mariorz [n=mariorz@unaffiliated/mariorz] has joined #scheme 16:53:12 fwiw I use them (via R6RS), but have no experience with other scheme systems 16:53:28 AHA! 16:53:30 *elderK* clicks 16:53:43 *Riastradh* clacks 16:53:49 *elderK* clocks 16:53:50 :P 16:53:50 lol 16:53:51 ^_^ 16:53:57 Think I got the hang of it 16:54:10 Instead of returning a pointer to what I want to change, 16:54:14 just return a function generated. 16:54:17 :) 16:54:30 Just tried it :) 16:54:37 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 16:54:46 Reify... to make it explicit, available, via proxy? 16:55:00 ASau [n=user@193.138.70.52] has joined #scheme 16:55:07 since we cant access it via raw address directly, we create a proxy by closing over something that lets us access it how we want :D 16:55:13 Yeah return a procedure in the scope of that identifier. 16:55:15 thus, giving us the same semantics :D 16:55:22 Yes, elderK. 16:55:26 YAY! 16:55:27 :D 16:55:32 It only took me X hours 16:55:34 :P 16:55:34 lol 16:55:47 Right. It doesn't even have a raw address. 16:56:06 Slow and steady win the race. 16:56:06 it just has like, an agent who remembers where to find what we want 16:56:16 yo, agent... do this, please. 16:56:21 agent > yeah, okay, grumble grumble... 16:56:22 :P 16:56:51 Totally want to build my tree now :D 16:56:53 with this newfound wisdom :D 16:57:14 gfb [i=ad22383a@gateway/web/freenode/x-f2430545b7faad88] has joined #scheme 16:57:15 really seems that generating functions and, closing over stuff is the key to Scheme? 16:57:19 What kind of program are you making, elderK? 16:57:29 At least until I grok "values" and call/cc 16:57:47 It's the key to closures. I don't know about scheme in general though. 16:57:48 oh atm, synx, nothing. Just experimenting, trying to cement knowledge by rebuilding ADTs in Scheme. 16:57:55 things like Radix trees, BST, etc. 16:57:58 none persistent, atm. 16:58:32 Totall time for another coffee. :) 16:59:01 I wouldn't do that if I were you. It just collapses down to degenerate cases for most sorts of abstract data representation. 16:59:15 i.e. it's already done 16:59:40 degenerate cases? 16:59:42 I'm just a big proponent of practical applications I guess. 17:00:11 ADTs are one of the things I like to explore for fun, you see. 17:00:18 -!- Daemmeru` [n=goetter@1133sae.mazama.net] has quit [Read error: 104 (Connection reset by peer)] 17:00:56 elderK: if you are really interested in that topic you can google "purely functional data structures" but he isn't using scheme, afaik. 17:01:00 Right, like a BST is a list. And that's all it is. 17:01:14 *Riastradh* blinks. 17:01:23 No, a binary search tree is not a list. 17:01:32 I suppose balancing a binary tree isn't something inherent to lists, but I would do that when I needed to optimize my A.I. searching for the next move to make in my game. 17:01:51 self balancing trees are cool and fun :D 17:01:52 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 17:02:04 I've got a library of ADTs, built mostly as a hobby. 17:02:13 AVL, Radix, Redblack, etc. 17:02:19 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 17:02:19 A BST can be represented by a list. It's tempting to make custom data structures to try and represent it, but I always end up just taking the simple route and using a list. 17:02:20 :) Just like playing with them. 17:02:30 also, useful, since I use them in various situations. 17:02:50 eugh red/black trees are an example of what I will never think of not in a million years 17:03:01 There is more structure to a binary search tree than there is to a list. Using a list as the internal representation is a trifle silly; records are better fit for the purpose. 17:03:15 aye. 17:03:58 Red/black trees, perhaps not; weight-balanced trees are very straightforward, though, and enable many convenient operations in running time vastly better than that of the same operations on lists. 17:04:13 amen 17:04:14 :) 17:04:19 balanced trees are cool. 17:04:24 ^_^ 17:05:10 It's likely I don't understand something intrinsic about binary search trees. 17:05:58 What structures you use really depends on the situation and what kind of stress your software is under. 17:06:02 Let's suppose you had a collection of four billion things, on which you have a total order. 17:06:05 use the best tool for the job. 17:06:15 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 17:06:23 If you put those four billion things into a list, how many steps does it take to find the two-billionth thing? 17:06:26 Oooh, story time! 17:06:33 lol 17:06:34 *gnomon* sits back with a cup of tea and listens to Riastradh 17:06:51 Yknow, gnomon, that sounds like a mighty fine idea. 17:06:56 *elderK* scurries off to make coffee. 17:07:00 Oh, no I didn't mean a flat list. Like a list of lists. 17:07:14 (You may count each call to CDR as one step, and in fact neglect the rest of the steps.) 17:07:38 I wouldnt call a tree a degenerate case of a list. 17:07:38 I guess I'd have to have left, right /and/ data, so... maybe a BST wouldn't be good as a list. 17:08:02 if you are doing purely iterative code, you'd perhaps need a parent too. 17:08:08 -!- metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has quit ["If you reach back in your memory, a little bell might ring, 'bout a time that once existed when money wasn't king."] 17:08:19 also depends on what the nodes themselves store. 17:08:25 *elderK* sips 17:08:28 mmm coffee.... 17:08:33 *elderK* eyes glare over, daydreams 17:09:45 A pair with the car as the data, and the cdr being a pair where car is left, cdr is right. That's how I'd make a BST. 17:09:47 Avoiding recursion via parent nodes fails at life. 17:10:46 recursive algorithms are equivalent to only storing the parent nodes of the current branch in the stack, whereas storing the parent nodes for the entire tree and iterating takes up more memory. 17:10:50 (Why does it matter how the nodes of a binary search tree are represented? Why do you care that it be a list, rather than, say, a record?) 17:10:56 plus recursive algorithms free the memory they use in the end, unlike a tree containing parent nodes. 17:12:06 I guess I don't really care. 17:12:18 .... 17:12:22 synx, unles of course, 17:12:38 you have teh odd situation where the MCU running has a max of maybe 32b of stack 17:12:39 L( 17:12:52 and vastly more room for read only data 17:13:12 then again, if the bst is complete, you can just have it as an array. 17:13:13 :) 17:13:25 In that case I'd write a scheme interpreter that put its stack on the heap. 17:13:39 okay, lemme rephrase 17:13:48 the dataspace that is writable, is itself, 32b. 17:13:52 the rest is program space, read only. 17:14:19 embedded ^_^ 17:14:50 Wait, you mean the rest is writeable, but only at a certain point in time, when compiling, or starting up or something. 17:15:05 I mean at the time the MCU is flashed :P 17:15:08 and the program is written to the ROM 17:15:08 :P 17:15:20 the 32b is scratch space for execution. 17:15:23 writable RAM. 17:15:42 just an example. 17:15:51 but MCU such as that do exist, in their zillions. 17:15:53 Or when soldering the wires into place. 17:16:20 Yeah in that case I suppose it's fine to pre-calculate the parent nodes. 17:16:38 not to mention, in some cases, the overhead of the callstack can be painful. 17:16:47 its minimal, but sometimes that minimal amount counts. 17:16:59 all depends on situation. 17:17:31 whadyou think about skip lists? 17:17:39 It does seem kind of silly that you'd be burning a binary tree onto a ROM chip. What would it be storing? 17:17:54 xwl [n=user@62.237.32.162] has joined #scheme 17:17:55 A list of hardware IDs maybe. 17:18:48 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 17:19:00 rmorris: many public transit systems use those. 17:19:02 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 17:20:48 like I siad, 17:20:50 it all depends. 17:20:57 It probably wouldnt be a BST, either. 17:21:06 probably AVL or something with better balance. 17:21:13 It always depends. 17:21:17 everything has costs. 17:21:31 Plain BSTs are quite horrible, really. 17:21:36 It's very easy to break their performance. 17:21:37 :P 17:21:44 just have a giant series of ascending numbers... 17:21:53 I think BSTs can be balanced though? 17:22:01 :P Yes, AVL :P 17:22:06 Redblack :P 17:22:06 *Riastradh* coughs. 17:22:20 I can't remember, 17:22:34 but I'm pretty sure Djikstra or something had a way to balance them. 17:22:39 then you have randomized stuff too 17:23:22 *shrugs* 17:23:22 woohoo! 17:23:28 Time for another day of C and Python hacking :\ 17:23:36 :D WOOT! 17:23:50 rmorris: I've investigated skiplists only a little. 17:23:55 I would like a t-shirt that says "I'd rather be writing scheme" 17:24:46 "My other interpreter is a scheme." 17:24:54 melgray [n=melgray@70.99.250.82] has joined #scheme 17:25:00 "Dubious Schemer, beware!" 17:25:00 :P 17:25:01 lol 17:25:31 "Smug Lisp^H^H^H^HScheme Weenie" 17:25:32 -!- z-axis [n=sergk@93.190.183.68] has quit ["bye"] 17:25:39 -!- moghar [n=user@unaffiliated/moghar] has left #scheme 17:26:02 I was quite glad that I managed to get a close friend of mine excited about Scheme. 17:26:05 Man, he really got involved in it. 17:26:11 He never really clicked with C or the like, 17:26:26 so I'm hoping that If I provide him with materials for Scheme, maybe that'll get him up for coding :) 17:26:45 Probably easier for him to jive too, since he doesn't have the same hang-ons to C that I do. 17:26:46 :) 17:27:02 :) I've put SICP, HTDP, TSPL, R5RS on a USB pen for him :) 17:27:09 As well as a collection of some pages I found useful. 17:27:34 I've been struggling to justify the use of many languages actually... 17:27:37 If I make a program in plt scheme, suddenly my program is a 300 megabyte program, far as my friend is concerned who hasn't installed plt yet. 17:27:39 python is getting around 100 megabytes too. And java is frikkin huge. 17:28:12 /usr/lib is quite big.. 17:28:15 Well, generally, I enjoy learning about new languages. Different languages, different perspectives; new ways of thinking about old problems :) 17:28:47 If I'm doing "serious" code, I generally work in C or Assembly. If I care about production speed over code size or exec.speed, I'll use other things... 17:29:02 -!- melgray [n=melgray@70.99.250.82] has quit [Client Quit] 17:29:03 and aye, /usr/lib on modern *nix systems, atleast my own, is one of hte largest chunks of the FS... 17:29:36 Although Python looks kind of neat. Just, when it comes to get good at Python or Scheme, I'd rather Scheme... 17:30:59 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 17:31:52 And it's all redundant algorithms. I mean there is some crossover, but setting up a basic environment for doing things... 17:32:08 like, what things? :P 17:32:23 I enjoy learning about new languages. But I always cringe when my friends have to spend a half hour installing various programs, just so they can use my latest nifty cool project. 17:32:32 Aye. 17:32:36 That's a major drag. 17:32:47 Most of /usr/lib is taken up by all those darned languages anyway. 17:32:48 I like to put things in /var/opt/ just to be difficult. :p 17:32:50 Which is why I generally stick to stuff that I can compile down. 17:33:04 :P and that relies on very, very little... 17:33:23 Well kildclient, emacs, plt, chicken, clive, openfire, pidgin... basically anything I compile on my own, without the package manager. 17:33:37 Yeah I kind of like native code too... 17:33:53 It's got a bad rap because of C though, and certain security measures. 17:33:54 -!- prescriptor [n=K@59-235-147.static.golden.net] has quit [] 17:34:11 I don't care what anyone says - C is not satan. 17:34:11 :) 17:34:35 *Riastradh* hiccups. 17:34:40 :P 17:34:41 lol 17:38:00 -!- tonyg [n=tonyg@host226.lshift.net] has quit ["Leaving"] 17:38:29 } <--don't these look like satan horns to you? 17:38:44 npe. 17:38:44 :) 17:39:34 heh 17:44:50 melgray [n=melgray@70.99.250.82] has joined #scheme 17:45:53 Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has joined #scheme 17:49:14 -!- gfb [i=ad22383a@gateway/web/freenode/x-f2430545b7faad88] has quit [Ping timeout: 180 seconds] 17:50:29 Then again, I listen to really hard rock :) 17:50:30 :P: 17:50:38 :) 17:50:39 *elderK* shrugs 17:50:48 Generally, I think most languages all have their strengths and weaknesses. 17:50:54 C is incredibly useful and strong at some things, 17:50:58 not so much at others. 17:51:12 I think it is a trait of a good programmer to know when to use what, and why. 17:51:18 I hope I'm right there. :) 17:51:31 likewise with data structures. 17:54:28 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 113 (No route to host)] 17:57:39 elderK: wow, man; the smiley/line ratio is approaching 0.50 17:58:13 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 18:06:02 }:) <- looks like a unibrow 18:06:55 proq: or salvador dali 18:07:49 http://www.tate.org.uk/modern/exhibitions/daliandfilm/images/dali_on_set_of_spellbound.jpg 18:07:52 -rudybot:#scheme- http://tinyurl.com/c3n2dg 18:13:17 JHVH [n=jarv@dsl-217-155-101-22.zen.co.uk] has joined #scheme 18:14:10 moghar [n=user@unaffiliated/moghar] has joined #scheme 18:14:41 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [Read error: 110 (Connection timed out)] 18:15:51 zbigniew pasted "blocky" at http://paste.lisp.org/display/82361 18:16:21 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 18:16:23 Damn. That was meant for #chicken 18:16:29 -!- dysinger_ [n=tim@71.20.231.3] has quit [] 18:16:51 No sweat. 18:17:38 dysinger [n=tim@71.20.231.3] has joined #scheme 18:17:45 synx was saying #| doesn't work properly in the Chicken interpreter (doesn't terminate) and I was showing it works for me. 18:18:22 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Client Quit] 18:19:14 shouldn't then there be a prompt after |# and before first 3? 18:19:55 not if you do not consider the #|...|# to be an expression to evaluate 18:20:26 ;-comments behave the same way 18:21:06 -!- dysinger [n=tim@71.20.231.3] has quit [Client Quit] 18:21:29 in other words, #|...|# is effectively whitespace, just like a newline 18:22:34 http://lists.gnu.org/archive/html/chicken-users/2009-06/msg00077.html is much more "fun"... 18:22:45 is it aziz's post 18:22:51 yes 18:22:56 zbigniew: what about #;? 18:22:58 i like it 18:23:03 incubot: '(#;harro just kidding) 18:23:04 (just kidding) 18:23:06 oh, nice 18:23:30 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 18:23:46 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 18:23:47 klutometis: i like #; but emacs doesn't 18:23:57 zbigniew: spurious newline? 18:24:24 what do you mean, are you asking why emacs doesn't like it? 18:24:31 yeah; i get a spurious newline 18:24:37 and M-C-k is broken 18:24:47 when i use it 18:24:55 what pathologies does your emacs have? 18:25:05 i think the spurious newline after #; is due to paredit 18:25:11 aha 18:25:28 ah... second 3 is repl echoing. naw i see. 18:25:40 sladegen: right 18:26:49 zbigniew: does #; screw with keyword highlighting; or what do you mean emacs doesn't like it? 18:27:30 klutometis: i think it's just that neither emacs nor paredit treats the #; sexpr as a comment, so no highlighting and there were some problems with navigating the structure 18:27:58 -!- syntropy [n=who@unaffiliated/syntropy] has left #scheme 18:28:31 it's usable, i just now usually use C-M-SPC C-c ; 18:28:46 very ugly, but it works 18:28:59 #; works for me with paredit 18:29:39 beta at least 18:30:10 rmorris: write a sexpr then place point at the opening ( and type #; 18:30:32 works 18:30:36 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 54 (Connection reset by peer)] 18:30:57 (+ 4 #;(blah) 2), only blah is red 18:31:03 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 18:31:07 same for (+ 4 #;blah 2) 18:32:06 klutometis: oh, right, and emacs comments out the rest of the line when it encounters a #;. That is the root of the problem 18:32:09 ah, that is (blah) is red for the first, and blah the second 18:32:17 zbigniew: nice; didn't know about make-sexp 18:32:46 it totally breaks the structure. perhaps there is a fix for scheme-mode to enable #; ? #| ... |# works perfectly fine 18:32:58 s/make/mark/ 18:33:08 maker's mark 18:33:27 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 18:33:36 zbigniew: what emacs version are you using? 18:33:53 nevermind in fact 18:34:10 i'm using the prebuilt win32 which is old, and it still works 18:34:12 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 18:35:20 i don't know man, i don't have a scheme-mode which understands #; 18:37:07 rmorris: i'm also curious if you use ; rather than #; at the beginning of a sexpr, a newline is inserted (true here, and expected, to preserve structure) 18:39:59 eh, i'm not quite understaing that question 18:40:47 you said #; doesn't insert a newline before a sexpr in paredit-mode, do you get a newline when you use ; by itself 18:42:20 rstandy [n=rastandy@93.144.41.47] has joined #scheme 18:42:27 -!- underspecified [n=underspe@leopard175.naist.jp] has quit [] 18:42:41 ah, no 18:42:47 jao [n=jao@249.Red-88-18-102.staticIP.rima-tde.net] has joined #scheme 18:43:19 if i'm understanding correctly anyway, i never have a newline inserted into the text when i use ; 18:44:06 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 60 (Operation timed out)] 18:44:09 X-Scale [i=email@89.180.205.13] has joined #scheme 18:44:13 well, if ; is bound to paredit-semicolon, then you should 18:44:19 uxhar [n=none@s83-191-238-2.cust.tele2.se] has joined #scheme 18:44:43 dzhus [n=sphinx@95-24-86-207.broadband.corbina.ru] has joined #scheme 18:45:36 there is no paredit-semicolon function in my env 18:45:41 and i'm using paredit beta 18:46:01 isearching the source doesn't come up with that name either 18:46:14 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 18:46:19 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 18:47:21 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 18:50:24 looks like it was removed in paredit 22 18:50:30 strange 18:51:43 maybe for this very reason? 18:51:45 nah 18:51:57 jimm [n=jimm@h-66-167-241-155.nycmny83.dynamic.covad.net] has joined #scheme 18:54:20 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 18:54:31 -!- uxhar [n=none@s83-191-238-2.cust.tele2.se] has left #scheme 18:55:37 er... i'm surprised Riastradh removed that, now typing ; breaks the s-expression structure 18:56:46 With (map (lambda (f) (load f)) '("path1" "path2")) why is path2 never loaded? I substitute "print" for "load" and it works. This is in Impromptu, if it matters. 18:57:14 ("works" means it prints both "path1" and "path2") 18:57:55 Oh, it has been removed from paredit 21 release as well, I am still using paredit 21 beta 19:00:43 well, this has been an eye-opening, as well as disgustingly hot, day 19:01:46 -!- leppie|work [i=52d2e3c8@gateway/web/freenode/x-2adb9b06a4c9020e] has quit [Ping timeout: 180 seconds] 19:04:35 hmmm 19:08:17 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [Read error: 110 (Connection timed out)] 19:14:43 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #scheme 19:17:05 -!- wlr [n=walt@c-65-96-92-150.hsd1.ma.comcast.net] has quit [Remote closed the connection] 19:17:35 soupdragon [n=f@amcant.demon.co.uk] has joined #scheme 19:19:34 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 19:20:03 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 19:20:27 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 19:28:20 -!- elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has quit [] 19:29:46 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Remote closed the connection] 19:33:02 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [Read error: 110 (Connection timed out)] 19:38:46 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 19:42:32 -!- ray [i=ray@2001:41c8:1:54da:0:0:0:1337] has quit [Read error: 60 (Operation timed out)] 19:44:08 Kusanagi [n=Lernaean@24-107-112-153.dhcp.stls.mo.charter.com] has joined #scheme 19:46:11 ray [i=ray@ipv6.the.ug] has joined #scheme 19:49:38 ejs [n=eugen@1-111-135-95.pool.ukrtel.net] has joined #scheme 19:53:08 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 19:53:57 zbigniew: feel like pinging Riastradh on the motivation? 19:56:14 Judofyr [n=Judofyr@ti0056a380-1332.bb.online.no] has joined #scheme 19:57:10 saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has joined #scheme 20:03:12 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 20:03:12 -!- moghar [n=user@unaffiliated/moghar] has quit [Read error: 104 (Connection reset by peer)] 20:03:43 moghar [n=user@157.185.jawnet.pl] has joined #scheme 20:10:38 -!- mmc [n=mima@esprx02x.nokia.com] has quit [Remote closed the connection] 20:11:05 -!- ejs [n=eugen@1-111-135-95.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 20:14:10 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 20:14:30 Ah Freenode. Doing everything they can to make sure people can camp on your nickname. 20:15:01 exexex [n=chatzill@85.96.117.251] has joined #scheme 20:15:38 synx, what are you complaining about? If anything, Freenode is more paranoid about nickname protection than any other IRC network I've seen. 20:16:06 Well it's a little known catch-22 in their system, involving gpg 20:16:09 ...gpg-tor 20:16:59 I never got gpg-tor to work with freenode 20:17:11 if you get the email wrong in some fashion, they do not tell you what you did wrong 20:17:29 When you sign on via gpg-tor, even if you provide a valid password and USER record, it still (erroneously in my opinion) requires you to have a specific nickname. 20:18:00 If you change your nickname, you immediately get kicked. The catch-22 comes in though, when there is a nickname conflict when signing on... 20:18:50 You can get completely locked out, unable to even ghost your nickname until whoever's using it decides to quit. 20:18:59 -!- REPLeffect [n=REPLeffe@69.54.115.254] has quit [Read error: 110 (Connection timed out)] 20:19:16 or you can reconnect via not-tor (which admittedly defeats the point) and ghost it 20:19:38 Well yeah that's beside the point really. 20:20:04 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 20:20:26 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 20:20:50 I made a bot that ghosts via their non-gpg tor interface. But that's also on auto-kill all the time, because they suck at blocking chanspammers. 20:22:22 Anyway, so crisis averted. 20:25:27 Why not just turn on enforcement? 20:28:56 -!- rmorris [n=user@209.120.179.205] has left #scheme 20:30:06 Well the only problem I've had is with the rare zombie. Might turn on enforcement if people start complaining about abuses I don't recall giving. 20:31:16 -!- dzhus [n=sphinx@95-24-86-207.broadband.corbina.ru] has quit ["-_-"] 20:31:18 Judofyr_ [n=Judofyr@c8F99BF51.dhcp.bluecom.no] has joined #scheme 20:36:10 -!- rstandy [n=rastandy@93.144.41.47] has quit [Read error: 110 (Connection timed out)] 20:37:15 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 20:38:13 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has left #scheme 20:38:49 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 20:39:07 arcfide [n=arcfide@h-69-3-100-36.chcgilgm.dynamic.covad.net] has joined #scheme 20:40:27 -!- Judofyr [n=Judofyr@ti0056a380-1332.bb.online.no] has quit [Nick collision from services.] 20:40:32 -!- Judofyr_ is now known as Judofyr 20:40:48 *arcfide* is playing with Acme. 20:40:59 Acme the Plan9 Editor/Interface, that is. 20:42:26 -!- jimm [n=jimm@h-66-167-241-155.nycmny83.dynamic.covad.net] has left #scheme 20:42:27 *Elly* had a bad experience with Acme a while ago 20:42:47 Elly: What happened to you? 20:42:58 It required a lot of mouse use. I am a keyboard person. 20:43:06 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 20:43:36 Elly: I thought that was the whole reason one used Acme: the mouse. 20:44:09 yeah, I know 20:44:14 but someone talked me into trying Acme, so I did 20:44:36 Elly: I take it the argument that the mouse in one hand and keyboard in the other doesn't suit you? 20:44:46 I work on a laptop, so no. 20:44:56 Elly: No mouse with you? 20:45:03 not usually 20:45:14 it's worth reading this book http://www.amazon.com/Simply-Scheme-Introducing-Computer-Science/dp/0262082810/ref=pd_bxgy_b_text_c for an absolute beginer? 20:45:16 -rudybot:#scheme- http://tinyurl.com/krsteg 20:46:33 -!- dudleyf [n=dudleyf@65.243.31.107] has quit [] 20:48:04 I use a Kensington Expert Mouse right now. 20:50:14 arcfide: you are an impeccable exigeant of hardware 20:50:30 -!- Lectus [n=Frederic@189.105.11.213] has quit [Connection timed out] 20:50:44 There has been some confusion surrounding #; comments and paredit. Excuse me a moment while I peruse the confusion. 20:51:57 -!- parolang [n=user@keholmes.oregonrd-wifi-1261.amplex.net] has quit [Remote closed the connection] 20:53:39 klutometis: Um...thanks? :-P 20:54:11 Old versions of GNU Emacs treated #; no differently from an octothorpe followed by a line comment. This is naive but excusible treatment of the syntax, and it is for this reason that I recommend breaking the line between the #; and the form to be commented. 20:55:10 More recent versions of GNU Emacs tried to treat #; and the form following it as a comment. This is a mistake; it causes perfectly valid S-expression structure to be treated as disorganized text, which baffles paredit. This also breaks the built-in S-expression motion commands, and is overall stupid. 20:55:49 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 20:56:34 Of course, there is no way to treat the code as a comment that is a structured s-expression, I mean, that would be too...easy, right? 20:56:54 Emacs should simply treat the `#;' token as whitespace. 20:57:20 Riastradh: that's my intuition, too; i wonder how difficult the change would be 20:57:26 Riastradh: And there is no way to tell Emacs to treat it this way without hacking ugly internals? It's not just a simple .emacs adjustment? 20:57:35 Reversion to its former behaviour, treating the octothorpe as an ordinary character and the rest of the line as a line comment, would be an acceptable compromise. 20:58:22 benny99 [n=benny@p5486FFAB.dip.t-dialin.net] has joined #scheme 20:58:43 I don't know what it would take to fix GNU Emacs. 20:58:44 I enjoy the idea that programs can be baffled. 20:59:13 Riastradh, time ? 20:59:28 Riastradh: the blood of Richard Stallman? 20:59:45 benny99, heh, no, I was talking about fixing a particular bug, namely that GNU Emacs tries to be clever about its treatment of `#;' and thereby infuriates anyone who uses it. 21:00:05 *Elly* uses vim and feels vaguely guilty about it 21:00:49 uh 21:00:59 *benny99* uses both 21:01:09 Elly: You should! Vim isn't a principled Vi, it's a sold out Vi that's thinks Emacs has some merit. 21:01:11 :-) 21:01:31 it also works very nicely and doesn't take 30 seconds to start :) 21:01:51 Elly: What takes 30 Seconds to start, I mean, you didn't use Eclipse, did you? 21:02:01 no, emacs :P 21:03:21 try a 486 :) 21:03:25 Elly: So, I am curious, though, did Acme really drive you crazy? 21:03:28 I've been avoiding that 21:03:42 arcfide: yes; I'm firmly a keyboard person. My WM (ion3) is keyboard-only, as are all the programs I use regularly. 21:04:25 so having to use the mouse for things like navigating around the buffer was... 21:04:36 I can't think of an appropriate descriptor 21:05:31 I really like Plan 9 as a concept, and from what I've seen of the internals they're pretty good as well, but rio and acme and rc collectively drive me insane :P 21:05:36 Elly: like manipulating a physical set of switches with only a single finger? 21:05:56 (rio because it insists on using the mouse for everything; acme because of same; rc because it doesn't support things I consider mandatory like having the current directory in the prompt) 21:06:58 Elly: Hehe, I have to admit that I'm not afraid to use my mouse, but I haven't taken the time to get good enough with two editors that are largely keyboard and largely mouse, to find out whether one is faster than the other. 21:07:35 I always work on my laptop, which happens to have a terrible mouse, and I rarely work in places where there's enough spare space for a proper mouse 21:07:38 -!- joast [n=rick@76.178.184.231] has quit ["Leaving."] 21:07:45 Elly: But if you really love the keyboard, rio, acme, and so forth would drive you insane. 21:07:53 they do, in fact 21:08:08 next semester I may be attempting to write a "better" (fsvo "better") WM for Plan 9 21:08:16 Elly: That's why I like a trackball. I have a Lenovo with the trackstick, which I find to be suitably efficient for mousing, given that it has a three button setup. 21:09:28 some brave soul ported vim to P9 21:09:32 which fixes 1/3 of the problem for me 21:10:05 Elly: Have you read the papers on Acme? They really don't like what they call "typescripts." 21:10:16 I read them some time ago 21:10:31 there are actually about 5 things standing between me and using Plan 9 as my primary OS 21:10:39 joast [n=rick@76.178.184.231] has joined #scheme 21:10:50 and those things are: rio, rc, my wireless card, my video card, and sshv2 support 21:11:33 Sorrowful [n=wicked@94.249.100.59.go.com.jo] has joined #scheme 21:11:57 my wireless card is one of those lovely broadcom ones that requires windows drivers, and thus requires ndiswrapper; my video card is nvidia, which is fine, except that using it at any of the VESA resolutions on my laptop screen looks terrible 21:12:09 -!- Sorrowful [n=wicked@94.249.100.59.go.com.jo] has left #scheme 21:13:00 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [Read error: 110 (Connection timed out)] 21:14:33 MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 21:14:48 Requires Windows drivers? 21:15:10 the open-source drivers for it did not work the last time I tried them 21:15:21 yes, ndiswrapper runs windows driver in emulation mode iirc 21:15:24 *drivers 21:15:43 well, it provides an API called NDIS that wireless drivers can be "portably" written against, I think? 21:16:01 Why not fix the drivers, then? 21:16:26 they are proprietary and the community didn't feel like reverse-engineering them 21:17:00 b44 is the result of the reverse-engineering efforts, IIRC 21:17:05 it also doesn't work too well with my card 21:17:09 Huh? The `open source drivers' are proprietary? 21:17:15 no 21:17:20 fsr I remember ndiswrapper using wine to work, but it looks like they implemented the NDIS and windows kernel APIs 21:17:22 the open-source driver is called b44 21:17:26 and it does not work with my card 21:17:26 The "open source" drivers require proprietary firmware. 21:17:29 So there is a free software driver. 21:17:33 there is a closed-source driver called bcmwl5, which does work 21:17:52 And so you have a chance of fixing it. 21:17:59 Are you sure you don't mean b43, Elly? 21:18:07 chandler: er, yes, b43 21:18:17 Is this for the Broadcom BCM 43xx Airforce cards? 21:18:28 And there's the broadcom party-open sauce driver, that's called wl. 21:18:41 It compiles with kernel <=2.6.28. 21:18:53 this is for a 4311, yes 21:18:55 open sauce party? who's invited? 21:18:56 Both wl and b43 kinda work on my b43 hardware. 21:19:07 s/party/partly/ 21:19:09 :) 21:19:14 b43 does not work for me at all. It attempts to connect, then speed degrades rapidly. 21:19:25 b43 has worked fine for me with several cards (on ubuntu, not plan 9) 21:19:29 "wl" works, but I believe it's the cause of the kernel panics I get every other week or so. 21:19:46 If I recall correctly, there's actually a free software reimplementation of the firmware, too, not to mention about four different free software drivers of which I am aware (for different operating systems). 21:19:51 chandler: Probably. It tends to freeze my system royally after about a day. 21:20:06 Riastradh: There is, but I couldn't get it to run. 21:20:34 Riastradh: Also, the free firmware is about 1/10 the size of the proprietary one, so I suppose, some stuff might not be implemented yet. 21:21:02 I used one of those drivers (with the proprietary firmware, before I knew of the free software firmware) pretty extensively last year after porting it to NetBSD. 21:21:23 do any of the open-source drivers work on plan 9? 21:21:44 I don't believe that there's a free reimplementation of the firmware. The only chipset I'm aware of with such a project is the Marvell 88W8686 and similar chips used e.g. in the OLPC. 21:22:25 Oh, hm. I just found the free b43 firmware. Interesting. 21:22:49 21:22:54 well, if b43 or wl works with 2.6.30, I will be happy 21:23:01 I'm about to upgrade and ndiswrapper is going to break :P 21:23:22 (I've never used any of this under Linux, nor worked with any of the Linux drivers.) 21:24:44 Elly: wl does not, b43 does, but the modules panicks for me after about 1-2 hours. 21:25:03 Elly: And there's no way to reload it (some ssb breakage), you need to reboot the machine. 21:25:47 Seems to work reliably for others, though. 21:26:42 Ever considered trying to debug it? 21:27:43 As far as turning debug on and watching what's happening, yes. But I don't have any C/kernel/low-level programming skills. 21:28:04 So I'll probably post debug logs to some suitable ml. 21:28:28 You could take this as a pedagogical opportunity. 21:29:29 Unfortunately I barely have time to try learning CL and Scheme slowly. This stuff naturally falls out of my self-learning scope. 21:29:53 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 21:29:53 Not that I ever was very interested in assembly and bare-metal stuff. 21:30:50 *Elly* loves bare-metal stuff :) 21:31:59 Not sure this really qualifies as `bare-metal stuff'. 21:32:09 -!- Judofyr [n=Judofyr@c8F99BF51.dhcp.bluecom.no] has quit [Remote closed the connection] 21:32:45 -!- bombshelter13_ [n=bombshel@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has quit [] 21:36:41 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 21:40:25 Well, much closer to the metal that my interests go :). 21:41:08 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 21:43:13 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:52:07 -!- MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has quit [Remote closed the connection] 21:57:06 -!- ikaros [n=ikaros@f050238146.adsl.alicedsl.de] has quit ["Leave the magic to Houdini"] 21:59:17 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 22:01:58 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [Client Quit] 22:04:51 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 22:05:33 segoe [n=segoe@201.Red-79-155-84.dynamicIP.rima-tde.net] has joined #scheme 22:06:19 jcowan [n=jcowan@72.14.228.129] has joined #scheme 22:06:39 *jcowan* unvanishes 22:06:47 foof: ping 22:08:39 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit [Remote closed the connection] 22:12:19 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 22:18:26 -!- saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has quit ["This computer has gone to sleep"] 22:22:12 dudleyf [n=dudleyf@ip70-178-212-238.ks.ks.cox.net] has joined #scheme 22:23:52 hm, well... so far, so good with b43 22:27:50 -!- codermattie [n=user@74-60-0-165.sea.clearwire-dns.net] has quit [Remote closed the connection] 22:30:52 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 22:32:11 -!- exexex [n=chatzill@85.96.117.251] has quit [Remote closed the connection] 22:35:45 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 113 (No route to host)] 22:39:23 -!- xwl [n=user@62.237.32.162] has quit [Remote closed the connection] 22:44:01 -!- benny99 [n=benny@p5486FFAB.dip.t-dialin.net] has quit [Read error: 60 (Operation timed out)] 22:47:29 benny99 [n=benny@p5486FFAB.dip.t-dialin.net] has joined #scheme 22:49:07 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 60 (Operation timed out)] 22:54:17 rstandy [n=rastandy@net-93-144-8-10.t2.dsl.vodafone.it] has joined #scheme 22:54:52 -!- jcowan [n=jcowan@72.14.228.129] has quit ["Leaving"] 22:58:58 -!- spic [n=spic@87.99.83.235] has quit [Remote closed the connection] 22:59:08 -!- moghar [n=user@unaffiliated/moghar] has quit [Read error: 113 (No route to host)] 22:59:37 moghar [n=user@157.185.jawnet.pl] has joined #scheme 23:03:51 -!- Nshag [n=shagoune@Mix-Orleans-106-2-217.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 23:29:05 Riastradh: at least with 22.3, Emacs still treats #; as # plus a line comment 23:30:33 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 23:32:47 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 23:34:41 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [] 23:40:35 Dawgmatix [n=deep@207-237-30-94.c3-0.avec-ubr11.nyr-avec.ny.cable.rcn.com] has joined #scheme 23:41:49 -!- fishey [n=fisheyss@ool-4573344b.dyn.optonline.net] has quit [Read error: 110 (Connection timed out)] 23:42:30 fishey [n=fisheyss@ool-4573344b.dyn.optonline.net] has joined #scheme 23:54:56 -!- benny99 [n=benny@p5486FFAB.dip.t-dialin.net] has quit [Client Quit]