00:00:58 Climacs has some goodies, but that is going nowhere. Not enough people. I guess it is not compellingly better. 00:01:21 What we need is an editor programmable in Java. 00:01:23 There are interesting ideas in Climacs that need to be salvaged. 00:01:26 Eeeek. 00:02:21 It is too difficult to write modes in Climacs, though Climacs modes provide full syntactic editing support due to incremental Earley parsers. 00:02:39 Also, Climacs is tied to CLIM, which has some significant disadvantages. CLIM is going nowhere. 00:03:34 Climacs is also tied to CL, which means that you have to have a full CL implementation around. If you want to bring it up on a new system, you have to pick a CL and port it. 00:03:37 Which is not so easy. 00:04:50 I think it would be better to build an editor so that it can be run with at least some minimal level of support on any interpreter or compiler that provides "R5RS + X", where X is clearly defined. 00:05:32 Then you could run it on top of Java, if so desired, and possibly even build a bridge to make it programmable in Java. 00:06:51 Programmable in Java? I think you are on to something. 00:06:53 :) 00:07:35 why java? because of JVM? 00:08:25 It would be nice having something like HTML.. ujst a bit better 00:11:22 how about HOP? 00:11:24 -!- Fare [n=Fare@193.253.141.78] has quit [Read error: 110 (Connection timed out)] 00:11:50 ( http://hop.inria.fr/ runs on Bigloo) 00:13:42 -!- npe [n=npe@94-224-251-223.access.telenet.be] has quit [] 00:20:57 -!- nicoca [n=nicoca@mon76-1-88-168-192-93.fbx.proxad.net] has quit ["Leaving."] 00:21:22 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 104 (Connection reset by peer)] 00:22:41 -!- ken-p [n=ken-p@84.92.70.37] has quit [Connection timed out] 00:25:04 eno [n=eno@nslu2-linux/eno] has joined #scheme 00:28:50 rudybot_: later tell hkBst Are you responsible for the trimmed text at http://packages.larrythecow.org/?v=ebuild&s=dev-scheme%2Fplt-scheme-4.2.1 ? 00:28:50 minion: memo for hkBst: eli told me to tell you: Are you responsible for the trimmed text at http://packages.larrythecow.org/?v=ebuild&s=dev-scheme%2Fplt-scheme-4.2.1 ? 00:28:51 Remembered. I'll tell hkBst when he/she/it next speaks. 00:29:35 rudybot_: ghost rudybot 00:29:35 offby1: eh? Try "rudybot_: help". 00:29:39 *sigh* 00:30:11 rudybot_: ghost rudybot 00:30:14 rudybot_: nick rudybot 00:30:14 -!- rudybot_ is now known as rudybot 00:35:03 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 00:35:45 sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 00:38:14 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 00:38:29 -!- Nshag [i=user@Mix-Orleans-106-2-233.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 00:44:13 eli: I made a post to plt-dev 00:49:37 -!- sphex_ [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 00:49:55 -!- aack [n=user@a83-161-214-179.adsl.xs4all.nl] has quit [Remote closed the connection] 00:51:35 chylli [n=lchangyi@119.181.15.104] has joined #scheme 00:56:06 -!- karlw [n=user@adsl-99-157-202-134.dsl.pltn13.sbcglobal.net] has quit [Remote closed the connection] 01:01:33 jengle [n=jengle@64.252.88.235] has joined #scheme 01:01:42 hi. 01:03:03 are there any popular conventions in scheme for the naming of procedures and its parameters? 01:03:12 s/its/their/ 01:04:40 jengle: look into some bigger popular project written in C (for example, linux kernel) 01:04:52 eh 01:04:56 wrong channel :) 01:06:18 jengle: There are a number of conventions. 01:06:24 "my-procedure-name", not "myProcedureName". (good-name? "some-name"), not (is-name-good "some-name"). 01:07:01 jengle: Riastradh has a style guide, which also touches on naming: http://mumble.net/~campbell/scheme/style.txt 01:07:27 eli: ping 01:08:56 jengle: also, not "my_procedure_name". 01:09:50 thank you. 01:11:35 QinGW [n=wangqing@203.86.81.2] has joined #scheme 01:12:50 -!- Axioplase_ is now known as Axioplase 01:15:09 ankou_ [n=quassel@p57A6FB4E.dip.t-dialin.net] has joined #scheme 01:19:26 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 01:20:22 -!- mmc [n=mima@cs162149.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 01:22:35 foof [n=user@dn157-046.naist.jp] has joined #scheme 01:25:09 incredibly enough 01:25:17 i've got to translate this http://www.ccs.neu.edu/home/will/Twobit/src/scheme.scm 01:25:29 (a scheme compiler written in scheme by Marc Feeley) 01:25:38 into Common Lisp with scm2cl and run it in SBCL 01:25:58 maybe it would be nice having a Scheme in a fast Lisp 01:26:25 -!- ankou_ [n=quassel@p57A6FB4E.dip.t-dialin.net] has quit [Read error: 104 (Connection reset by peer)] 01:29:46 -!- masm [n=masm@a213-22-83-196.cpe.netcabo.pt] has quit [Read error: 113 (No route to host)] 01:30:02 -!- QinGW [n=wangqing@203.86.81.2] has quit [Read error: 104 (Connection reset by peer)] 01:31:41 -!- ankou [n=quassel@p57A6E8C2.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 01:36:46 Anyone here familiar with the SXML-to-HTML.scm file from Oleg? 01:37:10 I'm wondering why the attributes of elements are being sanitized. 01:37:42 That is, the string "blah" of something like (a (@ (href "blah"))) is passed through string->goodHTML. 01:38:04 I don't think this should be happening, but it is. Is this a bug in my port, or a bug in the implementation, or intentional? 01:38:18 arcfide: To prevent generating bad HTML? 01:38:20 *segoe* never used it 01:38:36 arcfide: If the string contained double-quotes, for example 01:38:54 TimMc: How is (a (@ (href "server.html?blah=blah&bla2")) "blah") bad HTML? 01:39:03 arcfide: It should not, attribute escaping is different from HTML escaping. 01:39:11 foof: Right. 01:40:32 foof: Does this happen in all versions of this code? 01:40:40 *arcfide* wonders how to test this on rudybot. 01:40:49 rudybot: Show your weaknesses. 01:40:50 arcfide: eh? Try "rudybot: help". 01:40:59 I'm not too familiar with Oleg's code, I use my own for this. 01:41:27 fadein [i=fadein@static-ip-62-75-255-124.inaddr.server4you.de] has joined #scheme 01:41:53 I have no weaknesses. I'm invulnerable. 01:42:50 rudybot: Pshaw, you lie in ways unseen. 01:42:50 arcfide: eh? Try "rudybot: help". 01:43:08 arcfide: What does it produce when the attribute literal is "foo \"bar\""? 01:44:15 Oh...test 01:44:42 TimMc: That's doesn't change the fact that it shouldn't mess with some URLs. 01:45:19 arcfide: Changing & to & doesn't mess with the URL. 01:45:47 In fact, it encodes it to *protect* the URL. (If I'm understanding what this does.) 01:46:18 What is the result of (a (@ (href "server.html?blah=blah&bla2")) "blah") 01:46:56 blah 01:47:05 arcfide: Perfect. 01:47:10 There is nothing to worry about. 01:47:41 In fact, leaving that ampersand unencoded can lead to parser errors. 01:47:41 arcfide: Yeah, that's allowed. It's not strictly necessary for any major browser though. 01:48:50 Hrm... 01:48:55 Okay, thanks. 01:50:35 & is allowed in URIs, but it is not allowed in HTML documents except to start an entity definition. That's why they splice the & in the URL there instead of an &. 01:51:01 By the time people figured that out people were already using & in HTML documents all over the place anyway. 01:51:12 -!- RageOfThou [i=RageOfTh@SE400.PPPoE-1908.sa.bih.net.ba] has quit [Read error: 104 (Connection reset by peer)] 01:51:28 arcfide: Given that "foo&bar" is taken by browsers as "foo&bar" suggests that browsers will take "foo&bar" as the same only because of "foo&bar" having no special meaning unless the `&' sequence is a known entity. 01:51:54 -!- Judofyr [n=Judofyr@c249DBF51.dhcp.bluecom.no] has quit ["raise Hand, 'wave'"] 01:52:48 TimMc: pong 01:53:06 rudybot: later tell karlw thanks 01:53:07 minion: memo for karlw: eli told me to tell you: thanks 01:53:08 Remembered. I'll tell karlw when he/she/it next speaks. 01:54:23 arcfide, i'm working on a version of the sieve using vectors, but for some reason my procedure that "removes" multiples of a number from the vector only iterates once before stopping... 01:54:51 jengle: Post it up. 01:55:20 jengle pasted "remove-multiples-of" at http://paste.lisp.org/display/84650 01:55:30 arcfide: BTW, I ran into this recently, and my conclusion was that the html encoding is generally what works (which surprised me since I didn't expect it to). 01:55:54 arcfide: For example, try

Blah

vs

Blah

01:56:17 -!- peter_12 [n=peter_12@S01060024016bb36c.gv.shawcable.net] has quit [] 01:56:19 arcfide: Or the same with

Blah

and

Blah

01:56:27 eli: That's because %dd is for encoding something in a URL. 01:57:01 foo%26bar would be wrong. 01:57:36 TimMc: Right, but the encoding is happening below the level of the html encoding, so `%hh's work because it is unquoted later when the browser goes over there. 01:58:12 That's how you embed an & inside the URL's query name or value, is %26. "?a=b&foo%26bar=bar" is a valid URL, where one of the arguments is named "foo&bar" 01:59:25 If you put foo&bar, the browser will parse it into foo&bar before requesting the URL, and your script will see foo&bar, but if you put foo%26bar, the browser won't touch it, and your script will see foo%26bar, and decode that into a single thing, not an argument separator. 01:59:40 Here's another sequence that works:

Blah

02:00:10 -!- foof [n=user@dn157-046.naist.jp] has quit [Read error: 104 (Connection reset by peer)] 02:00:18 foof` [n=user@dn157-046.naist.jp] has joined #scheme 02:00:56 eli: Yup, that works. 02:01:11 A little silly, but it definitely works. 02:01:33 synx: No, that's wrong. 02:02:07 I've entered a url like http://somewhere.com/path/file?x=1&z=3 02:02:31 and the file was served with the query string being "x=1&z=3" 02:03:04 eli: That will result in {"x" => "1", "amp;z" => "3"} being passed to the script. 02:03:12 which means that the browser is not decoding &entities in URLs. (That would be really surprising). 02:03:30 r2q2 [n=user@c-24-7-212-60.hsd1.il.comcast.net] has joined #scheme 02:03:39 TimMc: Yes, that's what I was testing. If what synx said was correct, then the site would never see that `&'. 02:03:50 TimMc: And BTW, you wanted to ask something earlier? 02:04:02 eli: Browsers don't decode &entities in URLs. It's only in SGML/XML that they do. 02:04:02 Yes eli, but if you print http://somewhere.com/path/file?x=1&z=3 inside a HTML document, then the browser must turn & into &. 02:04:21 Of course if you type it into the URL bar directly it won't decode the HTML entities. 02:05:10 synx: I don't know what you mean by "print". If the HTML file *contains* "&" inside an attribute, *then* the browser decodes it as "&". 02:05:12 eli: I'll be in your Programming Languages course this fall. 02:05:34 Any textbooks for that? The online bookstore says no, but it has lied before. 02:05:41 QinGW [n=wangqing@203.86.81.2] has joined #scheme 02:05:54 synx: In other words, that's not "how you embed an & inside the URL's query name or value" -- it's how you embed it in any HTML text (including attributes). 02:06:17 (I hate multi-level encoded stuff.) 02:06:32 -!- hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has quit [Connection timed out] 02:06:36 -!- eli [n=eli@winooski.ccs.neu.edu] has left #scheme 02:06:53 No %26 is how you embed an & inside a URL's query name or value. I agree totally. 02:07:00 TimMc: I agree totally. ;_; 02:07:01 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [] 02:07:03 eli [n=eli@winooski.ccs.neu.edu] has joined #scheme 02:07:23 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 02:08:34 (Sorry, Emacs farted.) 02:09:03 TimMc: I'm using a pretty modified variation of PLAI (www.plai.org) -- but if you read the book, you should know the material. 02:10:00 synx: The confusing bit is the fact that there are two different encodings here: different syntaxes, different purposes, and different times when they're applied. 02:10:18 *eli* loves quotations in any form 02:10:51 It can be pretty confusing yeah. 02:10:53 eli: And one encoding is semi-optional. :-( 02:11:01 foof`` [n=user@dn157-046.naist.jp] has joined #scheme 02:11:03 '"Hofstadter", said Doug.' 02:11:56 My rule is always print & in URLs in HTML documents to separate query arguments. print %26 in HTML documents to directly embed a & in the resulting URL argument name or value. 02:12:31 TimMc: BTW, I thought that you told me about taking it, and in any case, if you've been dealing with an Olin project, then you're likely prepared enough. 02:12:41 %26 doesn't get messed with by the HTML encoding, and it only gets decoded by the URL encoding once it's separated out all the logical parts of the URL. 02:12:56 underspecified [n=eric@203.118.14.76] has joined #scheme 02:13:31 & goes to & right away inside the HTML document, so you can't even copy the URL from browser to the clipboard without & getting decoded to plain &. 02:14:15 eli: Hmm, I may have mentioned it. 02:15:00 offby1: For real fun -- much more intense than GEB -- get this: http://www.amazon.com/Diagonalization-Self-Reference-Oxford-Logic-Guides/dp/0198534507 02:15:02 -rudybot:#scheme- http://tinyurl.com/n8vvmq 02:15:29 The project with Olin isn't going so well, actually. :-/ I've had a hard time picking up the REPL + Emacs + a different scheme (Scheme48) + bzr source control all at the same time. 02:15:32 But leaving & inside the URL to separate arguments, as printed in the HTML document, is dangerous and might not be supported. I mean the URL "?foo=bar&=amplifier" if you just printed that unencoded into the HTML it would get decoded as "?foo=bar&=amplifier", so you need to turn the & into & 02:15:38 foof``` [n=user@dn157-046.naist.jp] has joined #scheme 02:15:49 -!- foof`` [n=user@dn157-046.naist.jp] has quit [Remote closed the connection] 02:16:19 TimMc: Well, yeah, that's a very full plate. 02:16:40 synx, eli: The major concern is automated HTML generation, where you don't know if semicolons and such might be in query parameters. 02:17:19 Of course. 02:17:21 You first urlencode all the key-value components, join 'em with '&', and html-encode that, and stick it in the attribute. 02:17:22 doesn't matter if semicolons are in the query parameter or not. If you encode the & to & before printing a URL in a HTML document, it'll never go wrong. 02:17:38 right 02:17:57 In fact semicolon might need to be URL encoded too... 02:18:03 Nah. 02:18:06 A good approach to such problems is to have different types. 02:18:08 It's only allowed to separate parameters. 02:18:12 eli: Indeed. 02:18:40 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 02:18:46 *eli* notes that this is actually the absolute opposite of the perl mindset 02:19:02 sphex_ [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 02:19:04 When I have to use PHP, I use Hungarian notation to indicate what a value has been "cleared" for: sh_foo means "safe for HTML" 02:19:49 PHP best feature is that it's a good demonstration that you can indeed go lower than Perl. 02:20:48 -!- foof` [n=user@dn157-046.naist.jp] has quit [Read error: 104 (Connection reset by peer)] 02:20:50 eli: It's so damned convenient, though. That really gets me. :-( 02:21:32 TimMc: *cough* Should I start you off with a negative karma score...? 02:22:17 TimMc: But seriously, if you think that it's so convenient, then a good exercise is to clarify what is it exactly that makes it convenient. 02:22:47 TimMc: If the answer has things like "good server integration" and "good libraries", then that's irrelevant. 02:22:54 foof```` [n=user@dn157-046.naist.jp] has joined #scheme 02:22:59 -!- jengle [n=jengle@64.252.88.235] has quit ["Leaving"] 02:23:10 eli: It's an absolutely horrid language, of course. I despise debugging it, too. 02:23:28 -!- foof``` [n=user@dn157-046.naist.jp] has quit [Read error: 104 (Connection reset by peer)] 02:23:35 Hey, libraries and integration are important for convenience. 02:24:03 -!- foof```` is now known as foof 02:24:13 Of course they are -- but they shouldn't be a factor in judging a language. 02:27:30 heredoc syntax is nice, "${variable} substitution" is pleasant but makes me nervous, the large selection of ready-made string- and array-manipulation functions is a joy 02:29:48 I dislike the gigantic flat namespace. 02:29:55 jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has joined #scheme 02:30:38 TimMc: A flat namespace is just not acceptable for any serious langauge. 02:31:01 TimMc: A selection of string and array functions is very directly an issue of a library. 02:31:06 -!- foof [n=user@dn157-046.naist.jp] has quit [Read error: 104 (Connection reset by peer)] 02:31:13 Is there a scheme function like `log` but accepts a base number? 02:31:26 TimMc: And finally -- the here-string syntax *is* a good point, 02:31:46 jlongster: If need be, use (/ (log foo) (log base)) 02:31:59 TimMc: but PLT has a *much* better tool for that. 02:32:12 eli: quasiquote? 02:32:21 jengle [n=jengle@64.252.88.235] has joined #scheme 02:32:31 No. Even better than quasiquote. 02:32:40 Better than quasiquote? Impossible! 02:32:48 *arcfide* waits for it... 02:33:04 I expect a shameless plug is in order. 02:33:06 Quasiquote has its own issues, btw, which is how in the old days the PLT website ended up with a lot of foo 02:33:06 TimMc: oh, that's right, thanks 02:33:34 arcfide: Well, given that he's in NEU, there's no shame issue... 02:33:52 TimMc: do you have a mzscheme accessible? 02:33:59 heh 02:34:12 I don't, actually. Is the Ubuntu repo fairly current? 02:34:32 dudleyf [n=dudleyf@ip70-178-212-238.ks.ks.cox.net] has joined #scheme 02:34:50 I see "2:4.0-1ubuntu2", whatever that means. 02:34:52 No, and in addition the ubuntu thing (and the debian thing) have all kinds of weird issues. 02:35:03 da 02:35:05 eli: NEU? 02:35:05 *drat 02:35:17 arcfide: ccs.neu.edu 02:35:20 aah. 02:35:44 -!- sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 02:35:56 Maybe rudybot can do it. 02:35:59 rudybot: init scheme 02:36:01 eli: your scheme sandbox is ready 02:36:07 rudybot: eval (require scribble/reader) 02:36:15 rudybot: eval (use-at-readtable) 02:36:24 rudybot: eval (define x @list{1 2 3}) 02:36:26 rudybot: eval x 02:36:27 eli: ; Value: ("1 2 3") 02:36:31 Oh, good/. 02:36:36 TimMc: So here: 02:36:37 eli: Java was my first serious language, and I enjoyed having functions "hang off of" the variables. Kept the namespace nice and clean. But JS has taught me that that model doesn't play well with functional programming. 02:36:50 rudybot: eval (define name "Eli") 02:37:02 rudybot: eval @list{Hello, @name} 02:37:03 eli: ; Value: ("Hello, " "Eli") 02:37:21 rudybot: eval (define (welcome someone) @list{Hello, @someone}) 02:37:39 rudybot: eval @list{@welcome{@name}!} 02:37:40 eli: ; Value: (("Hello, " "Eli") "!") 02:38:09 rudybot: eval (require scribble/text) 02:38:15 rudybot: eval (output @list{@welcome{@name}!}) 02:38:16 eli: ; stdout: "Hello, Eli!" 02:38:35 TimMc: That's the idea. 02:38:52 Curious. I'd have to look at that in more detail. 02:39:55 TimMc: The main point is that you don't need to remember whether you're in text mode or in code mode -- which is what you need to do with practically all of the string interpolation tools. 02:40:08 would scribble, or some part of it, be useful as a replacement for a templating system like Cheetah? 02:40:13 And that's exactly the problem of quasiquote too -- you need to know if you're quoted or not. 02:40:45 ...which is exactly how we got those foo -- putting a quote in a quasiquoted context. 02:40:53 *nod* 02:40:59 I've seen that happen. 02:41:24 BTW, my idea comes from my way of quoting terms in Nuprl, and this is a very different application. 02:42:12 -!- soupdragon [n=f@amcant.demon.co.uk] has quit ["Leaving"] 02:42:20 offby1: Two places to look at are the preprocessor language (which is what I just used very indirectly in rudybot): http://docs.plt-scheme.org/scribble/preprocessor.html 02:42:42 offby1: And then Jay basically took that, and made it into an HTML template system: http://docs.plt-scheme.org/web-server/templates.html 02:43:13 offby1: And when we did all that, then Cheetah was mentioned seevral times, so I know pretty well how much better we're doing. 02:44:06 One huge problem they have (and didn't implement properly, yet) is dealing with whitespaces -- for cases where you want to use it to spit out code. 02:44:39 But the language itself is much less convenient since it's the same string-interpolation shtick. 02:53:06 tjafk2 [n=timj@e176212074.adsl.alicedsl.de] has joined #scheme 02:55:28 -!- oatkiller [n=robertau@pool-96-241-118-186.washdc.fios.verizon.net] has left #scheme 02:57:05 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit ["Leaving."] 02:57:58 -!- haesbaert [n=haesbaer@c925abca.virtua.com.br] has quit ["leaving"] 02:58:37 eli: What do you think of my "functional languages vs. member methods" comment above? 03:01:03 You mean the Java vs JavaScript? 03:01:12 TimMc: -"- 03:01:49 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 03:02:47 eli: Yes. 03:03:16 -!- dudleyf [n=dudleyf@ip70-178-212-238.ks.ks.cox.net] has quit [] 03:03:30 TimMc: Well, one thing to keep in mind is that Java and JS have very different object models. 03:04:04 But regardless, and as many people say, functional programming makes OO much less important, and easily expressible. 03:05:02 eli: What I find annoying is that when you detach the functions from their objects, their names bloat up. 03:05:22 Why would you want to detach them? 03:05:54 rudybot: eval (define (foo x) (list (curry + x) (curry * x))) 03:06:03 rudybot: eval (define bar (foo 5)) 03:06:05 rudybot: eval bar 03:06:06 eli: ; Value: (# #) 03:06:14 rudybot: eval ((first bar) 10) 03:06:14 eli: ; Value: 15 03:06:18 rudybot: eval ((second bar) 10) 03:06:19 eli: ; Value: 50 03:06:35 I can keep the functions there without ever hanging them on their own names. 03:07:30 eli: So, in Java I have someFoo.bar(), but in Scheme it seems like the equivalent is (foo-bar someFoo) 03:07:30 -!- jengle [n=jengle@64.252.88.235] has quit ["Leaving"] 03:08:11 (I may just not have seen enough Scheme.) 03:08:16 -!- tjafk1 [n=timj@e176207091.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:09:02 I get the feeling that the type's name is added to the function's name (talking about library functions here). 03:09:10 That's just a common convention for an accessor. You can just as well make it (someFoo 'bar), or (send someFoo bar) 03:09:16 It's not necessarily bad, just feels like a tradeoff. 03:09:21 It almost sounds like you're looking for generic functions, TimMc? Where (bar foo) does something different whether foo "is" something or other? 03:09:47 TimMc: It's even easy to implement this. 03:09:49 scheme is by default pretty typeless, so without adding the type to the procedure's name, it's hard to be really polymorphic or anything. 03:10:12 synx: Nope, just thinking about the pragmatics of naming. 03:10:34 you just (cond a-bunch-of-type-tests) and call the real functions conditionally. Or maybe how tinyclos does it. 03:10:39 rudybot: eval (define (make-foo arg) (lambda (msg) (case msg [(bar) (list 'bar arg blah)]))) 03:10:49 rudybot: eval (define some-foo (make-foo 'some-arg)) 03:10:56 rudybot: eval (some-foo 'bar) 03:10:56 eli: error: reference to an identifier before its definition: blah in module: 'program 03:11:03 Ugh 03:11:11 rudybot: eval (define (make-foo arg) (lambda (msg) (case msg [(bar) (list 'bar arg 'bar)]))) 03:11:14 rudybot: eval (define some-foo (make-foo 'some-arg)) 03:11:15 rudybot: eval (some-foo 'bar) 03:11:16 eli: ; Value: (bar some-arg bar) 03:11:20 TimMc: You are free to name your function bar, as in (bar someFoo). It just won't work if you pass someNotFoo. 03:11:48 synx: There's an easy way around that too, 03:11:59 rudybot: eval (define (bar obj) (obj 'bar)) 03:12:04 rudybot: eval (bar some-foo) 03:12:05 eli: ; Value: (bar some-arg bar) 03:12:06 Yeah, like I said, do a cond statement on what is being passed. 03:12:20 synx: There is no cond in `bar'. 03:12:31 Ooh, yeah or have objects be message passing procedures. 03:12:38 There's a cond in "obj" in your case. 03:12:47 But just for each message, not for each object type. 03:13:15 TimMc: And there's your answer. :D 03:13:37 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [] 03:14:14 synx: The `case' in my `make-foo' implementation is serving the same purpose as a virtual table lookup. 03:14:35 In other words, an efficient translation would first do something like: 03:14:55 rudybot: eval (define bar-idx 0) 03:15:52 rudybot: eval (define (make-foo arg) (define methods (vector (lambda () (list 'bar arg 'bar)))) (lambda (msg . args) (apply (vector-ref methods msg) args))) 03:16:18 rudybot: eval (define (bar obj . args) (apply obj bar-idx args)) 03:16:29 rudybot: eval (bar (make-foo 'some-foo)) 03:16:29 eli: ; Value: (bar some-foo bar) 03:16:35 ThereYouGo. 03:17:09 synx: And for extra credit, explain why many object systems do single inheritance. 03:18:08 *TimMc* copies eli's code into an IDE to read it 03:21:59 Ah, I see, yes. 03:22:14 OK, sleep now. 03:23:53 bombshelter13p_ [n=bombshel@24.114.232.35] has joined #scheme 03:24:07 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 03:24:50 BW^- [n=Miranda@89.123.93.69] has joined #scheme 03:24:53 klutometis: around? 03:26:18 eli: To avoid double inheritance in diamond structured inheritance situations? Or just because you can assume a single parent instead of having to loop through a list of parents. :p 03:27:04 https://synx.us.to/code/scheme/simple-polymorphs.scm 03:27:51 anyone good at Bigloo's threading (and I/O) around? 03:43:29 bombshelter13p__ [n=bombshel@24.114.232.32] has joined #scheme 03:44:40 -!- rdd` [n=rdd@c83-250-157-93.bredband.comhem.se] has quit [Read error: 104 (Connection reset by peer)] 03:44:57 rdd` [n=rdd@c83-250-157-93.bredband.comhem.se] has joined #scheme 03:50:54 -!- underspecified [n=eric@203.118.14.76] has quit [] 03:54:38 eli: for extra credit, tell me why in plt it raises an error, without trying to automatically initialize the super-class with no arguments. 03:56:44 -!- r2q2 [n=user@c-24-7-212-60.hsd1.il.comcast.net] has quit [Remote closed the connection] 03:57:43 r2q2 [n=user@c-24-7-212-60.hsd1.il.comcast.net] has joined #scheme 04:00:07 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 04:03:27 -!- bombshelter13p_ [n=bombshel@24.114.232.35] has quit [Read error: 110 (Connection timed out)] 04:05:58 synx: If you have double inheritance, as in C++, things are easier. But following what I showed above, you need single inheritance to assume a fixed index for the method. 04:06:14 As for your code, I don't know what you mean, it's running fine for me. 04:07:43 No not in my code I mean in plt's object system. Just seemed a bit persnickety to me. Form above function. 04:12:13 bombshelter13p_ [n=bombshel@24.114.232.33] has joined #scheme 04:14:06 -!- bombshelter13p__ [n=bombshel@24.114.232.32] has quit [Read error: 110 (Connection timed out)] 04:15:34 ada2358_ [n=ada2358@jumpbug.ccs.neu.edu] has joined #scheme 04:15:55 -!- ada2358_ [n=ada2358@jumpbug.ccs.neu.edu] has quit [Client Quit] 04:16:03 synx: I have no idea what's the "it" which raises an error. 04:17:18 bombshelter13p__ [n=bombshel@24.114.232.34] has joined #scheme 04:17:47 -!- BW^- [n=Miranda@89.123.93.69] has left #scheme 04:17:57 If you try to define a class without invoking its super class's initialization, it doesn't default to anything, but raises an error telling you basically "Put (super-new) in there just so I know you understand the rules young lady." 04:20:43 synx: so let's see -- say that I have: 04:20:50 (define c1 (class object% (display 1))) 04:21:00 (define c2 (class c1 (display 2) (display 3))) 04:21:14 It's really no big deal though. For the most part the class system works great. 04:21:18 What would you expect this to print? 04:21:23 123 04:21:49 Why not 231? (Which would be my guess, if (super-new) is added in the end.) 04:22:14 Or maybe 213 if it tries to "stick the super initialization somewhere in the middle"? 04:22:18 -!- bombshelter13p_ [n=bombshel@24.114.232.33] has quit [Read error: 60 (Operation timed out)] 04:23:21 Or how about 312, just because it will randomly choose expressions to make sure that you never leave the order unspecified? 04:23:31 ada2358_ [n=ada2358@jumpbug.ccs.neu.edu] has joined #scheme 04:23:40 -!- ada2358_ [n=ada2358@jumpbug.ccs.neu.edu] has quit [Client Quit] 04:23:53 Well why isn't the order specified? 04:24:03 The order *is* specified. 04:24:09 It's left to right. 04:24:12 I mean, if I want to call super-new in a weird place, I can invoke it deliberately. 04:24:19 So 123 then... 04:24:51 foof [n=user@dn157-046.naist.jp] has joined #scheme 04:25:00 In the vast majority of cases it makes sense to initialize the base class part before the derived class. That's why (super-new) is at the top of all my classes. 04:25:20 WuJiang [n=wujiang@jumpbug.ccs.neu.edu] has joined #scheme 04:25:40 Huh? See my comment above: if there was some rule about an implicit place to do the super initialization, then *my* guess would be that it comes at the end. 04:25:52 -!- bombshelter13p__ [n=bombshel@24.114.232.34] has quit [Read error: 60 (Operation timed out)] 04:26:07 So clearly this is not something that is natural enough for anyone to know what the "right thing" is. 04:26:40 In other words, your solution is to add a rule about the implicit (super-new) appearing first, and my guess would be that it's added last. 04:27:17 In any case, you're complicating the system by adding another rule to remember, *and* adding another pit for people to fall into. 04:27:18 -!- jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has quit [Read error: 113 (No route to host)] 04:28:11 Q: "I did this: (define foo (class window% (send this set-transparency 0.2))) and my window is not transparent" 04:28:33 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 04:28:56 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:29:09 A: "You did not explicitly use (super-new), and the PLT system synx-izes these cases by doing it first, making the window appear before you set the transparency, you should add (super-new) at the end of your class definition" 04:29:19 Does that look like a good idea? 04:30:16 Alternatively, you can require explicitly making the before and after sequences: (class c ... (before-super (do-this) (do-that)) (after-super (do-something-else))) 04:30:36 Do you invoke (super-new) at the end when you use classes? 04:30:36 Besides windows don't appear in plt's GUI until you send the show message with #t as the flag. 04:31:03 But how about simplifying this -- just add a token to mark the point between the before and the after: (class c ... (do-this) (do-that) **do-super-here** (do-something-else)) 04:31:29 ... and now all you need is to spell "**do-super-here**" as "(super-new)". 04:31:44 (class side-effect-thing% (send this set-transparancy 0.2) (super-new))... 04:31:59 How are windows in mred related? That could be my own window system. 04:32:36 You specify (super-new) if you want it in a weird place, like I said. If you don't put it at the beginning though, how are you able to assume the super class is in any state to take normal messages and set transparency and stuff? 04:32:47 See my Q&A -- by making it optional you're making life easier for half of the people who use it, and making life awfully confusing for the other half. 04:33:31 (send this set-transparency 0.2) (super-new) ... "ERROR: display window object is still unspecified huh?" 04:33:54 It doesn't matter. This can be any side effect at all. It doesn't even have to use the objects that are instantiated. 04:34:09 I'd say more than half. It just doesn't make sense not to initialize the super class first. You can't use the super class stuff until it is initialized. That's what initialization does is prepare it for use. 04:36:04 OK, 75%. 80%. Whatever. What you're saying is still ridiculous towards the poor part that didn't expect it. 04:37:00 Here: (class c (define x (read)) (super-new) (define y (read))) 04:37:19 -!- QinGW [n=wangqing@203.86.81.2] has quit [Connection timed out] 04:37:25 The order certainly matters, and it has nothing to do with the superclass methods. 04:48:08 -!- segoe [n=segoe@83.231.62.170] has quit [Read error: 60 (Operation timed out)] 04:51:10 QinGW [n=wangqing@203.86.81.2] has joined #scheme 04:52:31 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 05:01:25 bombshelter13p_ [n=bombshel@24.114.232.33] has joined #scheme 05:09:22 Shouldn't matter since any class that inherits from c won't be able to use x or y until after they've called super-new 05:10:12 I mean, any class that inherits from...that. The order doesn't matter since c isn't going to care if x is initialized or not. 05:10:24 x however might depend on c being initialized. 05:10:55 No, using it is irrelevant. You have side effects => order matters. Period. 05:13:39 bombshelter13p__ [n=bombshel@24.114.232.32] has joined #scheme 05:13:49 The derived class shouldn't cause any side effects that the base class depends on to initialize. I can't think of any reason to do that, unless you're doing a mix-in, which still creates a situation where you call (super-new) first. 05:15:28 "Shouldn't" -- ha! 05:16:40 I hope that you *at least* realize that the sane rendition of your suggestion is to basically get rid of any way to have control over the order. 05:17:10 ...and that this is clearly not some stupid "do it our way" kind of error. 05:18:25 ebzzry [n=ebzzry@124.217.73.199] has joined #scheme 05:19:02 -!- ebzzry [n=ebzzry@124.217.73.199] has quit [Client Quit] 05:23:42 -!- bombshelter13p_ [n=bombshel@24.114.232.33] has quit [Read error: 110 (Connection timed out)] 05:24:28 No I say that if no order is specified, it's fine to default calling (super-new) first. If you call super-new explicitly, you can specify where it's called. 05:25:33 The only reason not to do that is that some people worry it would allow ignorant coders to derive classes without making a rational conscious choice where to put the super class initializer. 05:25:44 I don't think it's something most people need to worry about though. 05:26:38 Well, I'm very happy for you. 05:27:00 *eli* points at Perl, the language that is so full of "we don't need to worry about that"s 05:28:24 -!- r2q2 [n=user@c-24-7-212-60.hsd1.il.comcast.net] has quit [Remote closed the connection] 05:28:59 sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 05:31:42 -!- sphex_ [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has quit [Read error: 60 (Operation timed out)] 05:34:21 -!- bombshelter13p__ [n=bombshel@24.114.232.32] has quit [Read error: 110 (Connection timed out)] 05:39:49 andy__ [n=andy@87.114.148.38.plusnet.thn-ag1.dyn.plus.net] has joined #scheme 05:42:15 say what you like, at least perl has decent namespace support. 05:43:22 *eli* pukes on synx's shoes 05:46:05 bombshelter13p_ [n=bombshel@24.114.232.34] has joined #scheme 05:48:47 nooo 05:48:50 now where will I sleep 05:50:38 -!- andy__ [n=andy@87.114.148.38.plusnet.thn-ag1.dyn.plus.net] has quit [] 05:50:50 -!- Thren [n=Thren@c-75-67-111-180.hsd1.nh.comcast.net] has quit ["Peace"] 05:53:53 athos [n=philipp@92.250.250.68] has joined #scheme 05:56:17 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 06:01:09 bombshelter13p__ [n=bombshel@24.114.232.34] has joined #scheme 06:08:37 -!- bombshelter13p_ [n=bombshel@24.114.232.34] has quit [Connection timed out] 06:09:17 So I have a database that stores hashed values, and it uses a keyring to sign and/or encrypt those values. But the keyring itself is a list of keys each with a hash key, which must be calculated by the database serialization code. 06:09:37 what are you doing? 06:09:48 So the database code asks the keyring for a key, and the keyring code asks the database for the hash to it. 06:10:01 Elly: fixing Usenet... 06:10:13 ah, I see 06:10:37 ya I know it's nuts. I thought of a neat system to do it though. 06:11:32 do tell 06:12:39 Well, I was thinking about content hash key type databases, where there are records indexed by their own (strong) hash. 06:13:07 yep 06:13:11 4chan-style 06:13:44 right! 06:13:54 venti does that, in fact 06:13:56 wait 06:13:58 ken-p [n=ken-p@84.92.70.37] has joined #scheme 06:14:04 no 4-chan uses timestamps not hash codes. 06:14:13 no, that's how 4chan stores content internally 06:14:28 Oh, huh? Didn't know. 06:14:34 there is a huge database mapping timestamp to SHA1 of image, and a SHA1-addressed backing file store 06:14:34 Anyway, I realize that if you divide up a large file into manageable pieces, people can set limits on how much they download before being able to hash verify. Bittorrent kind of does that. 06:14:43 with you so far 06:15:26 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 06:16:55 So I insert a large file in pieces, and get a list of content hash keys for those pieces. I can serialize that list itself into a file, and insert that. If that file produces more than one key, I can serialize them and insert that. It's recursive... 06:17:01 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 06:17:43 the name for this technique is "tree hashing" 06:17:53 ...thanks 06:18:01 oO? 06:18:02 well, it is 06:18:09 I like it because you can verify pieces of the file before you have the whole thing. 06:18:14 yes 06:18:19 also you can parallelize hashing a large file 06:18:21 No it's fine I just didn't know that's what it was called. 06:18:54 Yes, and over a network you can swarm instead of stream, no need to transfer pieces in order. 06:19:10 sure 06:19:26 So that's still not quite getting at what my trick is that I think is pretty swift. 06:20:12 -!- bombshelter13p__ [n=bombshel@24.114.232.34] has quit [Connection timed out] 06:20:25 kinks [n=kinks@wnklmb01dc1-185-33.dynamic.mts.net] has joined #scheme 06:20:49 What I would do is insert a message file, whose format may refer to other pieces (by CHK of course). Then I would take that key, and sign it with my private key. 06:21:03 okay... 06:22:37 If I insert a file serializing the CHK, its signature, and maybe a CHK for my public key, then I've just inserted a signed message into the database. It's split up into manageable pieces that people can verify as they transfer. You could even encrypt pieces, so it could be a private message that untrustworthy messagers could transport. 06:22:52 indeed 06:23:02 you have just invented a non-anonymous, centralized version of Freenet 06:23:14 or a version of Tahoe-LAFS without the capability system on top 06:23:27 Well sure, I've tried to use Freenet before. 06:24:16 but yes, you could do that 06:24:39 It's not necessarily centralized. Using tree hashes makes it a lot easier to distribute a file on a p2p style network. Plus the signatures mean that you don't have to control the people doing the transfer, which is also amenable to p2p. 06:25:10 if you do routing appropriately, it's just Freenet :P 06:25:17 Plus if you did that over i2p, it would gain anonymity. Freenet's not really anonymous anyway... 06:25:25 how so? 06:25:58 I haven't been watching too carefully, but I haven't seen any breaks in the protocol announced 06:26:27 Freenet is pretty much exactly what I described. Except with non-hashed keyword searches glutting up the network, and a boorish democratic tragedy-of-the-commons style routing strategy that ends up forcing you to share everyone's bad porn. Oh and it's a Darknet now lol. 06:26:49 none of those makes it not anonymous 06:26:56 They say it's anonymous, because unless the police find your private key, they can't tell if you were the author of a message, or just relaying it. 06:27:11 okay; do you doubt that claim? 06:27:18 But they can easily detect if you passed a piece of something to them or not. 06:27:25 how? 06:27:42 I mean, how can they know if you are the originating node or someone else is? 06:27:42 Well, they just record the IP of whoever sent them that piece. 06:27:54 Obviously they can't. 06:27:55 but you are not necessarily the originator 06:28:01 and by design, you don't know what the piece is 06:28:09 even though you are storing it 06:28:31 But that's a problem in of itself. 06:28:33 so I don't see how they would gain any information by knowing that you conveyed to them an encrypted blob that you cannot read on behalf of someone you do not know 06:29:04 If I don't know what the piece is, I can't protect myself from being DoS'd with bad pieces. 06:29:10 ...so? 06:29:20 nobody can DoS you in particular either 06:29:29 they can DoS the network at large, if they want 06:30:45 Oh lord can they DoS me when I run Freenet. That thing maxes out my connection, clocks my disk all the time, and freezes my computer by swallowing up memory like Atomos before Thanksgiving dinner. 06:31:03 what you mean by that is "I do not know how to configure Freenet properly" 06:31:30 it's not exactly resource-light, though 06:31:38 I think the problem is in that you're requesting pieces (mostly) that you did not yourself request, but were "democratically" selected by a kind of weak trust network model. 06:31:44 if I hypothetically had a freenet node, it would hypothetically be pretty much dedicated to the task 06:31:55 synx: I don't see how that is a problem; that's the intent of the entire protocol 06:32:10 It'd be better if you could just request the pieces you wanted, and have a tradeoff at that point between how much you want to get, and how much you are able to provide. 06:32:13 that's where the censorship resistance comes from, even - even if a majority of freenet nodes do not want particular content, it can't be censored 06:32:32 It's a problem because nodes could lie about what pieces that are popular. 06:32:49 how? 06:33:09 they can't send repeated requests for the same chunk, because the node won't count additional requests from the same node towards a chunk's popularity 06:33:10 Your node basically just trusts whatever they say... 06:33:34 the maximum popularity a piece can have is "Every node I am connected to has asked for this at least once" 06:33:46 well yeah, but... 06:34:13 so an individual node can't make a piece illegitimately popular with your node 06:34:27 All I really want is the assured signature, and the content hash key based transfer thing. I don't really care about censorship resistence or plausible deniability. 06:34:39 ahh 06:35:31 well 06:35:35 you may want to look at Venti 06:35:42 it can do the content-addressed storage part for you 06:35:45 I see the reason Usenet got so unpopular is because people couldn't assert who they were, and form positive communities. So they went and did it with awful PHP hacks and centralized authoritarian websites. 06:36:11 But if the most of a spam you downloaded was an unrecognized signature of a 32 byte key, then that's pretty good... 06:36:14 as I see it the reason usenet got so unpopular is that it got spammed into the ground 06:36:33 um, but your design is centralized, isn't it? 06:37:01 It's not really centralized. Each user has their own database of pieces they requested. 06:37:13 but all the pieces live on a server or something 06:37:20 I still haven't worked out how to pass pieces back and forth. You could have big central repositories of pieces. 06:37:26 you can distribute bits of the content from user to user, but it sounds like you have a big central yeah, that 06:37:32 bittorrent-style 06:37:39 No they live wherever they go. No need to keep them on a big server. 06:38:07 then the big server is just like a torrent tracker 06:38:16 What if the server goes down? People should be able to route around that. That's the big problem with those centralized PHPBB boards, is they go down and every member is cut off from every other member. 06:38:30 how do you suggest that people route around that? 06:39:04 With other big servers, hopefully. Or directly, which would of course be slower, but still not zero communication. 06:39:43 I'm not sure how this is an improvement on bittorrent, really 06:39:47 People trust people, not servers, to determine that what they can transfer is the most likely to be worth reading. 06:40:36 Well, Bittorrent doesn't hash the torrent file. It's like tree hashing, except not the last level so you need a big central web server to distribute torrent files. They solved that with the DHT sort of... 06:40:59 it sounds like attaching a GPG signature to the torrent file would do it, though 06:41:02 But if you cannot contact the tracker specified in the torrent, then bittorrent fails pretty comprehensively. So they hacked in multi-tracker torrents... 06:41:45 Yeah, well I'm not a big fan of GnuPG anyway, but it would be possible to route such a network over bittorrent. Kind of pointless really though, since the files are already divided up into pieces. 06:42:04 right 06:42:06 that's what I mean 06:42:10 use bittorrent, sign .torrent files 06:42:50 That's a great idea for transferring big files, but for large amounts of relatively small messages I don't see it as the best way to handle things. 06:43:03 small messages just become one-chunk torrents 06:43:15 (or just get posted directly, still signed) 06:43:25 why do you not like gpg? heh 06:44:01 Yeah, but then you'd have a separate torrent swarm for each message, and you'd have to figure out how to have users join them automatically as more messages popped out on the queue. 06:44:30 or post them directly, since the messages are probably roughly the same size as the torrent files 06:44:42 BW^- [n=Miranda@89.123.93.69] has joined #scheme 06:44:48 oh now how do you inline hexadecimal values 06:44:53 0xFE 06:44:54 Yeah, at that point... 06:45:05 BW^-: #xFE 06:45:08 ah thx 06:45:24 I am curious what you don't like about gpg though 06:45:48 So with my system, each message would be one piece, and you'd just transfer that piece as one of the pieces you're offering. Just like one big swarm, adjusting for who gives you more pieces you need. 06:46:10 GnuPG screwed up PGP/MIME for one. Their trust network is a load of hooey too. 06:46:20 how so? 06:46:28 I mean, I am using their trust network right now 06:47:00 Well, supposing I'm a spammer, and I approach several of your close friends. 06:47:12 okay 06:47:32 I inform them that I'm a spammer, and that I have a million email addresses. Then I show them my government issued ID and that I've signed each address with ultimate trust and such. 06:47:47 um... what? 06:47:51 you don't sign addresses, you sign keys 06:48:16 So they according to the GnuPG trust model would be obliged to sign my key with at least a 4, which would result in me being able to send you a million spams from a million addresses, all trusted totally by your gpg. 06:48:23 um, no 06:48:30 Well yeah, but each key has an email "address". A million keys, a million addresses, let's say. 06:48:35 "trusted by GPG" means "authentically from this address", not "not spam" 06:48:40 GPG is not a spam filter 06:49:03 Well right. So what good is the trust network at all? 06:49:14 for example 06:49:17 I have a friend named wes 06:49:24 he lives in baltimore, and I do not physically see him 06:49:26 All it proves is that I had a photo ID at some point shown to various people you trust. It's just worthless information. 06:49:31 however, I do have two friends who went to school here with him 06:49:38 and have both signed his key on the key server when they met him in person 06:49:40 "named" right 06:49:45 I can now be reasonably confident that that is his key 06:50:46 Why do you care if it's his key or not? 06:51:01 because if it's not, someone else might be reading our messages 06:51:48 Well, why would that matter? 06:52:05 because I like talking to him about stuff I would not talk about in public 06:52:31 Either way you're talking with someone. If they then go betray you, because they're hired by the Fed to spy on your conversations, then you know their key isn't trustworthy. 06:52:43 sure, but I trust wes more than I trust the internet at large 06:52:54 Whether you're talking with Wes, or whether you're talking with Spooky McMeanAgent. 06:52:59 that's why he has a shell on one of my machines but the machine doesn't allow just anyone to log in :P 06:53:36 See, you trust wes. But you cannot trust people using GnuPG's web of trust. It doesn't tell you anything about whether wes is trustworthy or not. 06:54:01 no; I guessed that he was trustworthy by a) asking the two friends who had known him and b) talking to him 06:54:05 How'd you determine he was trustworthy in the first place? 06:54:59 So you trusted them. Eventually you'll get back to a point where you trust no one, and just had to trust whoever approached you. 06:55:07 uh... no 06:55:15 After that you can verify who continues to be trustworthy, and who breaks that trust. 06:55:21 there is a temporal element 06:55:26 But initially you're pretty much stuck. 06:55:42 I knew both of them for long enough that anything they could gain from compromising my trust is worth less than the time and effort spent on it 06:55:51 Right, and if you just trusted wes's key 10 years ago, and 5 years ago a middle-man jumped in, obviously he wouldn't be able to spy on anything. 06:56:16 except I would have no reason to trust wes' key 10 years ago, and I do now, i.e. that it is signed by two people that I trust 06:56:20 You don't need GnuPG's trust network to establish that kind of trust. It's just a matter of assuming that keys were trustworthy at some point. 06:56:38 I like having gnupg to automate seeing that those two people have both signed his key for me 06:56:42 verifying those things by hand is a pain 06:56:52 and when there's 25 people all doing key exchange at a key party, it gets to be a big hassle 06:56:57 so having it automated is good :) 06:56:58 And those two people you would have trusted unconditionally, without being able to find anyone you knew who signed their key. 06:57:21 because I met them in meatspace 06:57:27 I consider that essentially a root of trust 06:57:44 So you trust people you've met in person. A very human quality. 06:57:53 if someone is willing to hire two actors to pretend to be my friends and hang out with me for six months in order to intercept my communications with another person, then so be it 06:58:04 I am willing to take that risk, because the cost to anyone else would be higher than their gain 06:58:34 bombshelter13p_ [n=bombshel@24.114.232.32] has joined #scheme 06:58:37 If someone is willing to put up server resources to calculate a million 10 hour hashcashes in order to spam me, then so be it. 06:58:49 uh...yes 06:59:03 if they're doing that, they are paying VASTLY more to send spam than otherwise, and the system is working entirely 06:59:07 that's the goal of hashcash 06:59:41 Well it's the same sort of thing. No signing of keys by government authorities needed. 06:59:49 See what I do is I communicate with people via their key, and I set myself up for a failure. Try to bait any middle men, pretty much. 07:00:04 but then you can't have actual communications with anyone 07:00:47 If I don't know anyone, then I'm kind of screwed anyway, so I just have to trust people. The people who betray me less are the ones I continue to trust. 07:00:51 And if I survive that what they'd call "infancy" then I stand a chance at actually forming trusted relationships. But signing keys doesn't help me do that. 07:01:07 signing keys automates demonstrating trust relationships 07:01:08 that's it 07:01:17 the automation, in my experience, has been a significant help to me 07:01:27 otherwise I have too big of a friend graph to keep track of 07:01:35 QinGW1 [n=wangqing@203.86.81.2] has joined #scheme 07:01:35 Signing keys doesn't have anything to do with trust. It just establishes government assigned identity, assuming no impostors. 07:01:46 er 07:01:49 we don't check ID cards 07:01:55 keys are signed on the basis of who you claim to be 07:01:59 I wouldn't use the GnuPG web of trust to validate a vote that's for sure. 07:02:12 I have, and I continue to 07:03:06 I sure wouldn't use it to approve members of my "Pakistani Immigrant" support group. 07:03:34 It's just that any case where you could actually use such a web of trust, that's when they send the spies in. 07:03:57 so wait 07:04:02 what are you proposing happened, exactly 07:04:05 -!- arcfide [n=arcfide@adsl-99-14-208-163.dsl.bltnin.sbcglobal.net] has left #scheme 07:04:10 bombshelter13p__ [n=bombshel@24.114.232.32] has joined #scheme 07:04:13 haha no 07:04:16 I met two people in meatspace, and knew them for a while, after which I accepted their signatures on a third person's keys as trustworthy 07:04:22 The support group didn't use PGP keys. 07:04:25 at which point do you suppose someone was dishonest? 07:05:46 Probably never, but then there probably isn't a middle man spying on someone I randomly contact. 07:06:05 "probably never" is good enough for me 07:06:19 having it on the authority of two people I trust that this is wes's key is a lot better than having it on no authority at all 07:07:04 Well I'd have to trust those two people on no authority at all. After a few years of no problems, I could then trust them to sign wes's key. 07:07:26 so replace "a few years" with "six months" and you have what I did 07:07:38 I do not see the flaw, except that I trust people more easily than you :P 07:08:54 Well it's just I didn't need to meet anyone. By the GnuPG trust network, I would be obliged not to sign anyone's key, and forced to assume that they're all compromised by middle-men. 07:08:58 -!- bombshelter13p_ [n=bombshel@24.114.232.32] has quit [Read error: 60 (Operation timed out)] 07:09:14 ...no? 07:09:22 or you could sign them with a trust rating below 4, if you trust them less 07:09:28 or other people could trust your trust scores less 07:09:54 How would I trust them less? GnuPG's trust model has nothing to do with trust. 07:10:02 hotblack23 [n=jh@p5B05686D.dip.t-dialin.net] has joined #scheme 07:10:23 have you actually used gpg before? it has a feature called "trust levels" which you can attach to your signatures of keys 07:10:26 My method though, if I trust someone long enough without incident, I don't have to verify their identity or meet them or anything. After that I can verify people with increasing reliability by signatures of those before me. 07:10:42 take a look at gpg --edit-key's "tsign" command 07:10:47 Yes it does, but those levels are useless. Either you verified someone's identity, or you can't trust them at all. 07:11:14 or they said "by the way, I'm 1024D/00000000" and you were like "Okay, I haven't seen photo ID, so I'll give that a trust level 1" 07:11:41 Why would I give you a trust level of 1? What good would that do at all? 07:12:03 it says "I have had a person claim to me that they own this email and this key" 07:12:08 Just as a reminder to request your photo ID in the future? 07:12:18 you can configure gpg to factor those in to how much you trust something 07:12:29 Well obviously they own the key. 07:12:44 And clearly they control the email, even if they aren't its rightful owner. :3 07:13:00 *Elly* rolls her eyes 07:13:06 That gets back to the problem that email isn't signed right. 07:13:15 mine is 07:13:25 -!- BW^- [n=Miranda@89.123.93.69] has quit ["Miranda IM! Smaller, Faster, Easier. http://miranda-im.org"] 07:13:27 email headers aren't signed. 07:13:34 -!- easy4 [n=easy4@c-68-45-192-148.hsd1.pa.comcast.net] has quit [] 07:13:38 so? 07:13:45 the important one is "From" 07:13:52 and that one is what the signature is for 07:14:00 Yeah, and it can be totally faked. 07:14:04 I could care less that it was *really* received by murder.mx.andrew.cmu.edu :P 07:14:05 uh, no 07:14:07 signatures can't be faked 07:14:25 if the "From" says foo@bar.net and there is no foo@bar.net signature and I expect them to have signed it, it was faked :P 07:14:58 If you signed everything then you wouldn't be trusting or even reading a From: address. You wouldn't care who controlled what email account. All you need is what their public key is, and that is their identity. 07:15:09 yes 07:15:18 then I don't see why it is a problem that the headers are not signed 07:15:21 since you just said I don't even look at them 07:15:22 leppie|work [i=52d2e3c8@gateway/web/freenode/x-ghyjtuhjrndtptvu] has joined #scheme 07:16:17 -!- QinGW [n=wangqing@203.86.81.2] has quit [Success] 07:16:19 Well it's just you said you care who "owns" a particular email account. It affects what level of "trust" you give them. 07:16:39 I do, in fact, care about that 07:16:49 I identify people by email addresses rather than by signature fingerprints, since it's much easier to remember 07:17:04 But that address can be faked... 07:17:09 but the signatures mean that nobody can pretend to be a person I know, because my mail client will say "You told me this would be signed, and it's not" 07:17:20 yes, it can be faked, right until I go to read the email and my mail client checks the sig for m e 07:17:31 Well, it would be signed by a different key is all. 07:17:45 as far as the verifier is concerned, that's the same as no signature at all 07:18:03 I only care about what key signed it. If it came from a hacked email account in the DoD, and is still signed by my friend, I consider it to be from my friend. 07:18:27 interestingly enough, I do that too, but my mail client sorts mail based on apparent email address, not signature owner 07:18:46 since much of the email I get is unsigned, but none of it has no From: header 07:19:07 Well alright. 07:20:46 I dunno I trust people even less after I met them in real life. Maybe I'll never understand this stuff... 07:20:57 that's weird 07:21:01 I trust people quite easily, though 07:21:24 I think the important part of this is that I am proud of the way I live, so I have no real secrets 07:21:39 there are some things I don't broadcast to the world, but nothing that I would be really bothered by 07:21:40 -!- bombshelter13p__ [n=bombshel@24.114.232.32] has quit [Connection timed out] 07:21:57 I interact with people quite easily. Just after I've met them in person, that gives them a lot more power over me. I don't usually tell them about myself or divulge what I would more easily when protected online. 07:22:50 I might be proud of the way I live, but many people would wish me dead... 07:23:18 oh 07:23:18 I do 07:23:18 I tell most people I meet about myself 07:23:18 everyone I interact with regularly knows that I am transgendered and bisexual and a bunch of other things :P 07:24:04 so it gives someone no power over me to know those things about me 07:24:07 QinGW [n=wangqing@203.86.81.2] has joined #scheme 07:24:15 because really, who are they going to tell? 07:24:40 That sort of thing could get you killed if the wrong people know who you are. Or at least not considered for the position at this time. 07:25:02 like I said, there are some things I don't broadcast to the world 07:25:19 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 07:25:35 but I am not worried about those things, really 07:25:36 Many people think that those who do not adopt traditional church sanctioned relationships well... "their blood is upon them" 07:25:51 a company that would discriminate against me based on that is a company I would not want to work for anyway 07:26:14 freenose [n=freenose@204.97.199.7] has joined #scheme 07:26:15 -!- ecraven [n=nex@140.78.42.103] has quit ["brr"] 07:26:41 I trust people online more, but when someone demands to meet me in person before they will interact it makes me suspicious. It's probably just them wanting to socialize, but... 07:27:06 People I know in person have to earn a lot of trust before I'll risk letting them know who I am, whereas I can protect myself better online. 07:27:21 Oo that's an alien mindset to me 07:28:22 I know! Don't know why it's so alien from most people. Not like I was raped or anything. Just seems natural to me... 07:28:55 What's the name of the debian pkg for mit/scheme? I can only find mit-scheme-doc 07:29:16 synx: maybe you're just crazy 07:29:26 -!- QinGW1 [n=wangqing@203.86.81.2] has quit [Connection timed out] 07:30:41 bytecolor [n=user@32.156.215.43] has joined #scheme 07:30:49 Or maybe I'm just so very sane. 8| 07:31:05 I don't know 07:31:16 what do you do with your time usually? 07:31:36 is there a way to expand a function I've created with define-syntax? 07:31:41 Oh, this and that. 07:32:00 I'm learning with guile for now 07:32:27 Working on my forum, or that cute little game I was trying. Washing dishes. Reading something in the library. 07:32:46 oh 07:32:56 hm 07:33:04 I am a student and also have work :P 07:33:05 Missed a meeting of real people today. Woke up too late to attend, sadly. 07:33:07 so I had better go to sleep 07:33:24 school... 07:33:30 well, good night. Nice talking with you! 07:34:11 you too 07:34:28 bombshelter13p_ [n=bombshel@24.114.232.32] has joined #scheme 07:35:37 -!- bombshelter13p_ [n=bombshel@24.114.232.32] has quit [Client Quit] 07:37:18 mmc [n=mima@esprx02x.nokia.com] has joined #scheme 07:37:31 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 07:38:59 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 07:43:05 npe [n=npe@195.207.5.2] has joined #scheme 07:44:18 -!- rdd` is now known as rdd 07:44:24 not sure what you mean bytecolor. expand, like figure out what syntax it produces? 07:49:42 -!- hotblack23 [n=jh@p5B05686D.dip.t-dialin.net] has quit ["Leaving."] 07:54:35 ecraven [n=nex@140.78.42.103] has joined #scheme 07:59:25 synx: yes 08:00:05 I'm knee deep in the guile manual ;) 08:01:37 define-syntax defines a syntax transformer. That is a procedure that takes a syntax 'form' and returns another modified syntax form. 08:01:59 syntax-rules is a convenient way to create such a procedure, and use syntax-case to transform the form into something new. 08:02:38 haven't used syntax-case yet, just define-syntax and syntax-rules 08:03:34 So pretty much you have to figure out syntax-case (pretty much like syntax-rules except it takes form as a parameter and you make #'(...) instead of (...) as the result). Then you make a lambda that takes a form and calls syntax case. Save the return value of syntax case, just a normal value, and display it, then return it. 08:04:20 ah, I somewhat follow you ;) 08:04:30 What syntax-case returns is the new syntax your syntax transformer has produced from your old syntax. can't do it with syntax-rules because it doesn't let you squeeze things in between the procedure and the syntax-case. 08:04:49 I see 08:05:04 I'll have to experiment a bit with syntax-case 08:08:03 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 08:08:46 It's really similar to syntax-rules, just it gives you plenty more hanging rope. 08:08:52 To hang yourself with. 08:09:13 heh 08:09:18 thanks synx 08:09:18 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 08:11:51 masm [n=masm@a213-22-83-196.cpe.netcabo.pt] has joined #scheme 08:14:08 np 08:14:44 jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has joined #scheme 08:37:04 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 08:42:17 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 08:47:22 -!- EnglishGent [n=nobody@ai-core.demon.co.uk] has quit [] 08:49:32 -!- masm [n=masm@a213-22-83-196.cpe.netcabo.pt] has quit [Read error: 60 (Operation timed out)] 08:50:35 Jduht78 [n=Jduht78@host217-34-51-26.in-addr.btopenworld.com] has joined #scheme 08:54:50 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 09:06:07 -!- QinGW [n=wangqing@203.86.81.2] has quit [Connection timed out] 09:08:44 nicoca [n=nicoca@mon76-1-88-168-192-93.fbx.proxad.net] has joined #scheme 09:12:17 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 09:17:22 kib2 [n=kib@bd137-1-82-228-159-28.fbx.proxad.net] has joined #scheme 09:25:46 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 09:34:55 QinGW [n=wangqing@203.86.81.2] has joined #scheme 09:37:32 -!- ken-p [n=ken-p@84.92.70.37] has quit [Connection timed out] 09:38:52 -!- Adrinael [i=adrinael@rid7.kyla.fi] has quit [Client Quit] 09:41:28 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 09:42:29 -!- Jduht78 [n=Jduht78@host217-34-51-26.in-addr.btopenworld.com] has left #scheme 09:46:57 Adrinael [n=adrinael@barrel.rolli.org] has joined #scheme 09:49:41 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 09:59:47 -!- Axioplase is now known as Axioplase_ 10:01:20 -!- nicoca [n=nicoca@mon76-1-88-168-192-93.fbx.proxad.net] has left #scheme 10:03:02 HG` [n=wells@xdslev189.osnanet.de] has joined #scheme 10:08:55 -!- QinGW [n=wangqing@203.86.81.2] has quit [Read error: 104 (Connection reset by peer)] 10:12:53 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 10:13:21 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 10:22:21 rouslan_ [n=Rouslan@pool-64-222-181-252.man.east.myfairpoint.net] has joined #scheme 10:23:18 Def [n=joe@c-68-84-166-52.hsd1.mi.comcast.net] has joined #scheme 10:23:59 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 104 (Connection reset by peer)] 10:27:25 dzhus [n=sphinx@93-80-239-81.broadband.corbina.ru] has joined #scheme 10:28:23 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [simmons.freenode.net irc.freenode.net] 10:28:23 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [simmons.freenode.net irc.freenode.net] 10:28:23 -!- jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has quit [simmons.freenode.net irc.freenode.net] 10:28:23 -!- sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has quit [simmons.freenode.net irc.freenode.net] 10:28:23 -!- ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has quit [simmons.freenode.net irc.freenode.net] 10:28:23 -!- offby1 [n=user@q-static-138-125.avvanta.com] has quit [simmons.freenode.net irc.freenode.net] 10:28:23 -!- TimMc [n=timmc@pinball.ccs.neu.edu] has quit [simmons.freenode.net irc.freenode.net] 10:28:25 -!- sjamaan [n=sjamaan@netbsd/developer/sjamaan] has quit [simmons.freenode.net irc.freenode.net] 10:29:00 any tips for minimalistic scheme interpreter? (i just need to steal gc and type system from somewhere) 10:29:00 Adrinael [n=adrinael@barrel.rolli.org] has joined #scheme 10:29:00 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 10:29:00 jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has joined #scheme 10:29:00 sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 10:29:00 ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has joined #scheme 10:29:00 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 10:29:00 TimMc [n=timmc@pinball.ccs.neu.edu] has joined #scheme 10:29:00 sjamaan [n=sjamaan@netbsd/developer/sjamaan] has joined #scheme 10:32:33 MrFahrenheit [n=RageOfTh@users-55-202.vinet.ba] has joined #scheme 10:33:15 If you want a pluginable GC, use Boehm. 10:34:39 -!- sad0ur_ is now known as sad0ur 10:41:45 davids [n=davids@189.122.90.116] has joined #scheme 10:42:25 foof: looks good, thanks 10:48:42 -!- metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit ["Nichts mehr."] 10:51:55 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [simmons.freenode.net irc.freenode.net] 10:51:55 -!- TimMc [n=timmc@pinball.ccs.neu.edu] has quit [simmons.freenode.net irc.freenode.net] 10:51:55 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [simmons.freenode.net irc.freenode.net] 10:51:55 -!- sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has quit [simmons.freenode.net irc.freenode.net] 10:51:55 -!- ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has quit [simmons.freenode.net irc.freenode.net] 10:51:57 -!- sjamaan [n=sjamaan@netbsd/developer/sjamaan] has quit [simmons.freenode.net irc.freenode.net] 10:51:57 -!- jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has quit [simmons.freenode.net irc.freenode.net] 10:51:57 -!- offby1 [n=user@q-static-138-125.avvanta.com] has quit [simmons.freenode.net irc.freenode.net] 10:52:28 -!- ski__ [n=md9slj@remote3.student.chalmers.se] has quit [Read error: 60 (Operation timed out)] 10:52:47 ski__ [n=md9slj@remote3.student.chalmers.se] has joined #scheme 10:52:52 Adrinael [n=adrinael@barrel.rolli.org] has joined #scheme 10:52:52 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 10:52:52 jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has joined #scheme 10:52:52 sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 10:52:52 ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has joined #scheme 10:52:52 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 10:52:52 TimMc [n=timmc@pinball.ccs.neu.edu] has joined #scheme 10:52:52 sjamaan [n=sjamaan@netbsd/developer/sjamaan] has joined #scheme 10:53:28 ... or you could write the interpreter in Java or C#. 10:53:58 or i could write the interpret in scheme :) 10:55:06 RageOfThou [n=RageOfTh@users-42-33.vinet.ba] has joined #scheme 10:57:24 -!- MrFahrenheit [n=RageOfTh@users-55-202.vinet.ba] has quit [Read error: 113 (No route to host)] 11:01:27 tonyg [n=tonyg@host226.lshift.net] has joined #scheme 11:04:55 -!- leppie [n=lolcow@dsl-243-60-08.telkomadsl.co.za] has quit [Read error: 110 (Connection timed out)] 11:09:09 cracki [n=cracki@40-123.eduroam.RWTH-Aachen.DE] has joined #scheme 11:09:58 schmir [n=schmir@mail.brainbot.com] has joined #scheme 11:12:03 metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has joined #scheme 11:18:41 -!- RageOfThou [n=RageOfTh@users-42-33.vinet.ba] has quit [Read error: 104 (Connection reset by peer)] 11:18:46 RageOfThou [n=RageOfTh@users-42-33.vinet.ba] has joined #scheme 11:22:24 athos [n=philipp@92.250.250.68] has joined #scheme 11:27:29 -!- alaricsp [n=alaricsp@88-202-202-24.rdns.as8401.net] has quit ["Leaving."] 11:33:43 about the boehm gc - where does it look for pointers to traverse? and how does he know it's a pointer? because i store pointers always unaligned and with all bits inverted 11:39:30 -!- cracki [n=cracki@40-123.eduroam.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 11:39:42 It looks everywhere. 11:40:01 ... except under the couch. If you leave a pointer under the couch, you need to tell Boehm. 11:40:21 the_shepherd [n=hello@vpn-240-20.roam.ucl.ac.uk] has joined #scheme 11:40:28 -!- the_shepherd [n=hello@vpn-240-20.roam.ucl.ac.uk] has left #scheme 11:41:27 (where everywhere == the C stack, and the couch == everywhere else) 11:42:37 refusenik [n=Dfowler@ip-66-9-231-226.autorev.intellispace.net] has joined #scheme 11:44:39 -!- dzhus [n=sphinx@93-80-239-81.broadband.corbina.ru] has quit [Read error: 54 (Connection reset by peer)] 11:46:12 hmm maybe that's a good approximation, but i know where exactly are stored all the pointers and how the data layout looks like (it's just lisp pair) 11:47:13 And you can't use it with inverted bits, or use the XOR trick for doubly linked lists, or anything like that. 11:50:20 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [simmons.freenode.net irc.freenode.net] 11:50:20 -!- metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit [simmons.freenode.net irc.freenode.net] 11:50:20 -!- TimMc [n=timmc@pinball.ccs.neu.edu] has quit [simmons.freenode.net irc.freenode.net] 11:50:20 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [simmons.freenode.net irc.freenode.net] 11:50:20 -!- sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has quit [simmons.freenode.net irc.freenode.net] 11:50:21 -!- ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has quit [simmons.freenode.net irc.freenode.net] 11:50:21 -!- sjamaan [n=sjamaan@netbsd/developer/sjamaan] has quit [simmons.freenode.net irc.freenode.net] 11:50:21 -!- jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has quit [simmons.freenode.net irc.freenode.net] 11:50:21 -!- offby1 [n=user@q-static-138-125.avvanta.com] has quit [simmons.freenode.net irc.freenode.net] 11:52:20 metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has joined #scheme 11:52:20 Adrinael [n=adrinael@barrel.rolli.org] has joined #scheme 11:52:20 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 11:52:20 jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has joined #scheme 11:52:20 sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 11:52:20 ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has joined #scheme 11:52:20 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 11:52:20 TimMc [n=timmc@pinball.ccs.neu.edu] has joined #scheme 11:52:20 sjamaan [n=sjamaan@netbsd/developer/sjamaan] has joined #scheme 11:52:43 boehmgc just seems like too complex solution to my simple problem. i found tinyscheme which has just the kind of allocator i need. 11:54:06 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [simmons.freenode.net irc.freenode.net] 11:54:06 -!- TimMc [n=timmc@pinball.ccs.neu.edu] has quit [simmons.freenode.net irc.freenode.net] 11:54:06 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [simmons.freenode.net irc.freenode.net] 11:54:06 -!- metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit [simmons.freenode.net irc.freenode.net] 11:54:06 -!- sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has quit [simmons.freenode.net irc.freenode.net] 11:54:06 -!- ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has quit [simmons.freenode.net irc.freenode.net] 11:54:06 -!- sjamaan [n=sjamaan@netbsd/developer/sjamaan] has quit [simmons.freenode.net irc.freenode.net] 11:54:06 -!- jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has quit [simmons.freenode.net irc.freenode.net] 11:54:06 -!- offby1 [n=user@q-static-138-125.avvanta.com] has quit [simmons.freenode.net irc.freenode.net] 11:55:57 -!- kib2 [n=kib@bd137-1-82-228-159-28.fbx.proxad.net] has quit [simmons.freenode.net irc.freenode.net] 11:55:57 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [simmons.freenode.net irc.freenode.net] 11:55:57 -!- thesnowdog [i=thesnowd@122.110.24.229] has quit [simmons.freenode.net irc.freenode.net] 11:55:57 -!- r0bby [n=wakawaka@guifications/user/r0bby] has quit [simmons.freenode.net irc.freenode.net] 11:55:57 -!- Modius [n=Modius@24.174.112.56] has quit [simmons.freenode.net irc.freenode.net] 11:55:57 -!- Arelius [n=indy@64.174.9.113] has quit [simmons.freenode.net irc.freenode.net] 11:56:23 kib2 [n=kib@bd137-1-82-228-159-28.fbx.proxad.net] has joined #scheme 11:56:23 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 11:56:23 thesnowdog [i=thesnowd@122.110.24.229] has joined #scheme 11:56:23 Modius [n=Modius@24.174.112.56] has joined #scheme 11:56:23 Arelius [n=indy@64.174.9.113] has joined #scheme 11:56:37 metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has joined #scheme 11:56:37 Adrinael [n=adrinael@barrel.rolli.org] has joined #scheme 11:56:37 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 11:56:37 jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has joined #scheme 11:56:37 sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 11:56:37 ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has joined #scheme 11:56:37 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 11:56:37 TimMc [n=timmc@pinball.ccs.neu.edu] has joined #scheme 11:56:37 sjamaan [n=sjamaan@netbsd/developer/sjamaan] has joined #scheme 11:59:04 the_shepherd [n=hello@vpn-240-20.roam.ucl.ac.uk] has joined #scheme 11:59:23 is PLT scheme a recommended learning environment for those starting out? 12:02:16 mario-goulart [n=user@201-40-162-47.cable.viacabocom.com.br] has joined #scheme 12:05:34 -!- the_shepherd [n=hello@vpn-240-20.roam.ucl.ac.uk] has quit ["Get MacIrssi - http://www.sysctl.co.uk/projects/macirssi/"] 12:07:31 soupdragon [n=f@amcant.demon.co.uk] has joined #scheme 12:07:36 It's one of them. 12:08:11 the_shepherd: it's a good Scheme, just don't use the Teaching Languages 12:08:12 hkBst, memo from rudybot_: eli told me to tell you: Are you responsible for the trimmed text at http://packages.larrythecow.org/?v=ebuild&s=dev-scheme%2Fplt-scheme-4.2.1 ? 12:10:12 eli: I copied the entire release notes. I am not responsible for the automatic trimming. 12:11:42 dysinger [n=dysinger@200.25.197.105] has joined #scheme 12:14:43 -!- soupdragon [n=f@amcant.demon.co.uk] has quit ["Leaving"] 12:16:06 -!- tjafk2 is now known as timj 12:17:35 cracki [n=cracki@40-123.eduroam.RWTH-Aachen.DE] has joined #scheme 12:23:06 dzhus [n=sphinx@95-24-91-54.broadband.corbina.ru] has joined #scheme 12:26:28 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 12:41:01 masm [n=masm@a213-22-83-196.cpe.netcabo.pt] has joined #scheme 12:44:24 hkBst: Well, I always need to trim the whole announcement message down to 600 characters for the freshmeat.net blurb -- so you can use that (http://freshmeat.net/projects/plt-scheme). 12:44:55 hkBst: Or if you're doing it regularly, I can put an item on my release checklist to send you a copy. 12:49:59 hkBst: And BTW, re your comment about the teaching languages -- they're getting very close to being extint now. 12:53:43 oatkiller [n=robertau@38.103.27.10] has joined #scheme 12:54:01 -!- cracki [n=cracki@40-123.eduroam.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 12:55:21 -!- oatkiller [n=robertau@38.103.27.10] has quit [Client Quit] 12:56:09 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 13:07:11 makmanalp [n=legato@80.76.201.55] has joined #scheme 13:07:58 hello, can anyone explain to me what this does: (define nats$ (cons 0 (map add1 nats$))) 13:08:22 well, i mean, i understand what it's doing but i'm not certain how, or what exactly promises are. 13:08:28 (lazy dialect of mzscheme) 13:10:17 i understand that it's an infinite list of sorts (of all natural numbers) and i can do (second nats$) etc which will return 1 13:11:09 makmanalp: What is it exactly that you don't understand? Is it how it evaluates to the list of all natural numbers, how lazy scheme works, or how promises are implemented? 13:14:15 i'm confused as to how when i call (second nats$), 1 is being returned 13:14:28 i guess that would be how it evaluates to the list of all natural numbers 13:14:57 how come it's not trying to execute the whole thing and ending up in an infinite loop? 13:15:12 maybe i should read up a bit on lazy scheme 13:15:40 makmanalp: Just think about this as -- all expressions have a value that they will evealuate to, but this is not really done until the value is actually needed. 13:16:01 -!- Fufie [n=poff@Gatekeeper.vizrt.com] has quit ["Leaving"] 13:16:31 Or in specific Scheme terms, every function application is wrapped in a `delay', and every value is wrapped in a `force'. (Roughly.) 13:17:24 -!- dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has quit ["Leaving"] 13:17:26 hmm 13:20:10 so when i call (first nats$), nats$ isn't really evaluated up until then, and then will it execute the cons (this is the confusing part, how do you execute only one step of it at a time to be lazy) and then check what the first element is? 13:20:31 or (first (first nats$)) for that matter 13:20:47 makmanalp: Are you comfortable with `lambda's? 13:20:56 sure 13:21:39 In that case, think about it this way: (first nats) in the lazy language is treated as (lambda () (first nats)), 13:22:03 and places that use that value wrap it in parens to pull out the value. 13:22:20 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 13:23:21 Of course all functions should be aware of their arguments being wrapped this way -- including `map'. That's how the whole thing works. 13:25:31 cool 13:28:12 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 13:30:22 eli: I haven't worked with lazy scheme *at all*, but what I imagine is that (car nats$) forces one "loop" of that definition, producing (cons 0 (map add1 nats$)), then grabs the 0. Asking for the cdr would force another evaluation of nats$, resulting in (cons 0 (cons 1 (map add1 (map add1 nats$))). 13:30:35 Is this basically accurate? 13:31:24 That's roughly the idea at the very high level. (And in 660 we go over how this is done in *much* more details.) 13:31:46 eli: so when it's getting the first value it sees (cons 0 (lambda () (map add1 nats$))) and it can get the 0 fine, without dealing with the map, but what happens when i ask for (first (first nats$)) and it gets into the map? 13:31:57 oh wait, did TimMc just answer me 13:31:59 *makmanalp* reads 13:32:30 I think my code needs more lambdas. 13:32:40 makmanalp: You need to think about doing that very consistently. 13:33:02 Say that {} stands for (lambda () ), 13:33:18 okay 13:33:34 That expression should therefore be: {(cons {0} {(map {add1} {nats$})})} 13:33:49 Or to make it even more accurate: {({cons} {0} {({map} {add1} {nats$})})} 13:34:18 ah. 13:35:33 well no, i think i got the bottom of what's confusing me: how does (cons 0 (map add1 nats$)) end up as (cons 0 (cons 1 (map add1 (map add1 nats$))) 13:36:59 It doesn't get there in a straightforward way. 13:37:01 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [simmons.freenode.net irc.freenode.net] 13:37:01 -!- rouslan_ [n=Rouslan@unaffiliated/rouslan] has quit [simmons.freenode.net irc.freenode.net] 13:37:01 -!- a-s [n=user@92.81.135.104] has quit [simmons.freenode.net irc.freenode.net] 13:37:01 -!- certainty [n=david@alpha.d-coded.de] has quit [simmons.freenode.net irc.freenode.net] 13:37:04 -!- elmex [i=elmex@ist.m8geil.de] has quit [simmons.freenode.net irc.freenode.net] 13:37:04 -!- klutometis [i=klutomet@pdpc/supporter/active/klutometis] has quit [simmons.freenode.net irc.freenode.net] 13:37:04 -!- rcassidy [n=rcassidy@pinball.ccs.neu.edu] has quit [simmons.freenode.net irc.freenode.net] 13:37:04 -!- freenose [n=freenose@204.97.199.7] has quit [simmons.freenode.net irc.freenode.net] 13:37:04 -!- dlouhy [n=jdlouhy@pinball.ccs.neu.edu] has quit [simmons.freenode.net irc.freenode.net] 13:37:04 -!- Leonidas [n=Leonidas@unaffiliated/leonidas] has quit [simmons.freenode.net irc.freenode.net] 13:37:04 -!- chandler [n=n@opendarwin/developer/chandler] has quit [simmons.freenode.net irc.freenode.net] 13:37:04 -!- z0d [n=z0d@unaffiliated/z0d] has quit [simmons.freenode.net irc.freenode.net] 13:37:04 -!- leppie|work [i=52d2e3c8@gateway/web/freenode/x-ghyjtuhjrndtptvu] has quit [simmons.freenode.net irc.freenode.net] 13:37:27 (first {({cons} {0} {({map} {add1} {nats$})})}) 13:37:53 You need to get the value of that, so `first' will need to get a value for it's input, which it does by applying it: 13:38:09 So it's as if we now have: (first ({({cons} {0} {({map} {add1} {nats$})})})) 13:38:23 which is the same as (first ({cons} {0} {({map} {add1} {nats$})})) 13:38:48 right, following so far 13:38:57 That's all rough -- there are two `first's there -- the one that applies the input, and the one that is doing the actual work. 13:39:28 Anyway, now to evaluate the argument, we need to evaluate the function and its arguments: 13:39:38 (first (({cons}) ({0}) ({({map} {add1} {nats$})}))) 13:39:50 (first (cons 0 ({map} {add1} {nats$}))) 13:40:04 And again: 13:40:21 (first (cons 0 (map add1 ({nats$})))) 13:40:38 And now comes the potentially confusing part -- it looks like I should now do this: 13:40:46 following so far still 13:41:00 (first (cons 0 (map add1 ({nats$})))) --> (first (cons 0 (map add1 nats$))) 13:41:03 Nshag [i=user@Mix-Orleans-106-1-69.w193-248.abo.wanadoo.fr] has joined #scheme 13:41:06 Which is leading to the obvious problem. 13:41:15 right! 13:41:37 But the thing is that `map' is itself a lazy function, which means that it is itself going to do the (...) forcing. 13:41:48 So what we should really have at this point is: 13:42:13 (first (cons 0 (map {add1} {nats$}))) 13:42:39 And to really know how this continues, you need to follow through the definition of (the lazy) `map'. 13:42:58 ah. 13:43:23 But of course, the whole thing just works -- the only thing you need to know is that `map' is in charge of forcing values that are needed, and you can trust it to not do so when they're not needed. 13:43:57 well, it's only {add1} in the last (first (cons 0 (map {add1} {nats$}))) because the map defines the first arg to be in {}, right? 13:44:06 leppie|work [i=52d2e3c8@gateway/web/freenode/x-ghyjtuhjrndtptvu] has joined #scheme 13:44:24 It doesn't actually need to do the forcing itself, since it can be implemented *in* lazy scheme -- so the way it does the forcing is by using primitive functions -- and those are the ones that eventually derive the whole computation. 13:44:24 ventonegro [n=alex@li17-123.members.linode.com] has joined #scheme 13:44:38 (These functions are called strict.) 13:45:08 hmm 13:45:17 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 13:45:17 rouslan_ [n=Rouslan@unaffiliated/rouslan] has joined #scheme 13:45:17 freenose [n=freenose@204.97.199.7] has joined #scheme 13:45:17 a-s [n=user@92.81.135.104] has joined #scheme 13:45:17 certainty [n=david@alpha.d-coded.de] has joined #scheme 13:45:17 elmex [i=elmex@ist.m8geil.de] has joined #scheme 13:45:17 klutometis [i=klutomet@pdpc/supporter/active/klutometis] has joined #scheme 13:45:17 z0d [n=z0d@unaffiliated/z0d] has joined #scheme 13:45:17 rcassidy [n=rcassidy@pinball.ccs.neu.edu] has joined #scheme 13:45:17 dlouhy [n=jdlouhy@pinball.ccs.neu.edu] has joined #scheme 13:45:17 chandler [n=n@opendarwin/developer/chandler] has joined #scheme 13:45:17 Leonidas [n=Leonidas@unaffiliated/leonidas] has joined #scheme 13:45:58 To get better details at this point you should probably read about it in some book. 13:46:04 good point 13:46:12 thank you eli, this was exactly what i needed 13:46:27 PLAI does a good job explaining it, btw. 13:47:00 http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/ 13:47:51 ^ i think this is my advanced intro to programming professor's husband :) 13:48:01 takinig programming languages with her this fall 13:48:05 *taking 13:48:50 makmanalp: If this is WPI, then you're right. 13:50:33 eli: hah, great! 13:51:37 eli: do you happen to know them, or just by name 13:51:46 -!- ventonegro [n=alex@li17-123.members.linode.com] has quit [simmons.freenode.net irc.freenode.net] 13:51:46 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit [simmons.freenode.net irc.freenode.net] 13:51:46 -!- Arelius [n=indy@64.174.9.113] has quit [simmons.freenode.net irc.freenode.net] 13:51:46 -!- kib2 [n=kib@bd137-1-82-228-159-28.fbx.proxad.net] has quit [simmons.freenode.net irc.freenode.net] 13:51:46 -!- Modius [n=Modius@24.174.112.56] has quit [simmons.freenode.net irc.freenode.net] 13:51:46 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [simmons.freenode.net irc.freenode.net] 13:51:46 -!- thesnowdog [i=thesnowd@122.110.24.229] has quit [simmons.freenode.net irc.freenode.net] 13:52:03 ventonegro [n=alex@li17-123.members.linode.com] has joined #scheme 13:52:03 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 13:52:03 kib2 [n=kib@bd137-1-82-228-159-28.fbx.proxad.net] has joined #scheme 13:52:03 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 13:52:03 thesnowdog [i=thesnowd@122.110.24.229] has joined #scheme 13:52:03 Modius [n=Modius@24.174.112.56] has joined #scheme 13:52:03 Arelius [n=indy@64.174.9.113] has joined #scheme 13:52:45 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [simmons.freenode.net irc.freenode.net] 13:52:45 -!- TimMc [n=timmc@pinball.ccs.neu.edu] has quit [simmons.freenode.net irc.freenode.net] 13:52:45 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [simmons.freenode.net irc.freenode.net] 13:52:45 -!- metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit [simmons.freenode.net irc.freenode.net] 13:52:46 -!- sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has quit [simmons.freenode.net irc.freenode.net] 13:52:46 -!- ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has quit [simmons.freenode.net irc.freenode.net] 13:52:46 -!- sjamaan [n=sjamaan@netbsd/developer/sjamaan] has quit [simmons.freenode.net irc.freenode.net] 13:52:46 -!- jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has quit [simmons.freenode.net irc.freenode.net] 13:52:46 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [simmons.freenode.net irc.freenode.net] 13:52:59 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Connection reset by peer] 13:53:19 metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has joined #scheme 13:53:19 Adrinael [n=adrinael@barrel.rolli.org] has joined #scheme 13:53:19 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 13:53:19 jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has joined #scheme 13:53:19 sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 13:53:19 ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has joined #scheme 13:53:19 offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has joined #scheme 13:53:19 TimMc [n=timmc@pinball.ccs.neu.edu] has joined #scheme 13:53:19 sjamaan [n=sjamaan@netbsd/developer/sjamaan] has joined #scheme 13:56:11 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Read error: 113 (No route to host)] 13:56:30 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 13:57:51 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 13:59:29 makmanalp: Yes, they are part of PLT. 13:59:42 *eli* disappears 14:01:34 eli: well, i'll say hi to prof fisler for you :) 14:04:59 thehcdreamer [n=thehcdre@94.198.78.26] has joined #scheme 14:04:59 -!- Deformati [n=joe@c-68-84-166-52.hsd1.mi.comcast.net] has quit [SendQ exceeded] 14:10:00 -!- sjamaan [n=sjamaan@netbsd/developer/sjamaan] has quit ["Reconnecting"] 14:10:10 sjamaan [n=sjamaan@frohike.xs4all.nl] has joined #scheme 14:10:19 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 14:10:22 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 14:10:56 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 14:13:45 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [simmons.freenode.net irc.freenode.net] 14:13:45 -!- TimMc [n=timmc@pinball.ccs.neu.edu] has quit [simmons.freenode.net irc.freenode.net] 14:13:45 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [simmons.freenode.net irc.freenode.net] 14:13:45 -!- metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit [simmons.freenode.net irc.freenode.net] 14:13:45 -!- sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has quit [simmons.freenode.net irc.freenode.net] 14:13:45 -!- ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has quit [simmons.freenode.net irc.freenode.net] 14:13:45 -!- jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has quit [simmons.freenode.net irc.freenode.net] 14:14:33 metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has joined #scheme 14:14:33 Adrinael [n=adrinael@barrel.rolli.org] has joined #scheme 14:14:33 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 14:14:33 jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has joined #scheme 14:14:33 sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 14:14:33 ToxicFrog [n=ToxicFro@69-165-140-82.dsl.teksavvy.com] has joined #scheme 14:14:33 TimMc [n=timmc@pinball.ccs.neu.edu] has joined #scheme 14:16:49 -!- refusenik [n=Dfowler@ip-66-9-231-226.autorev.intellispace.net] has quit [Read error: 54 (Connection reset by peer)] 14:18:39 lep-delete [n=chatzill@muedsl-82-207-249-158.citykom.de] has joined #scheme 14:29:25 refusenik [n=Dfowler@ip-66-9-231-226.autorev.intellispace.net] has joined #scheme 14:34:06 -!- jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has quit [No route to host] 14:38:25 -!- TimMc [n=timmc@pinball.ccs.neu.edu] has quit ["Changing server"] 14:38:28 TimMc [n=timmc@pinball.ccs.neu.edu] has joined #scheme 14:41:02 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 14:42:01 bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 14:42:16 sepult [n=buggarag@xdsl-87-78-102-51.netcologne.de] has joined #scheme 14:47:57 soupdragon [n=f@amcant.demon.co.uk] has joined #scheme 15:00:11 jengle [n=jengle@64.252.88.235] has joined #scheme 15:04:14 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 15:10:08 -!- dzhus [n=sphinx@95-24-91-54.broadband.corbina.ru] has quit ["Yow! Legally-imposed CULTURE-reduction is CABBAGE-BRAINED!"] 15:15:00 *yes*. 15:15:19 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 15:15:53 *maybe* 15:15:54 *no* 15:16:57 *mu* 15:21:40 *µ*! 15:21:54 i finally wrote a decent implementation of a sieve 15:22:11 ... to calculate the sum of all primes below 2 million 15:22:12 *pbusser2* pulls Elly's hair. 15:22:32 jengle: RE this? http://groups.google.com/group/plt-scheme/browse_thread/thread/33a1531bf3ed3610 15:22:34 -rudybot:#scheme- http://tinyurl.com/nvz6vw 15:22:48 -!- langmartin [n=user@exeuntcha.tva.gov] has quit [Remote closed the connection] 15:22:54 makmanalp, nope 15:22:57 -!- jengle [n=jengle@64.252.88.235] has quit ["Leaving"] 15:23:03 TR2N [i=email@89-180-224-243.net.novis.pt] has joined #scheme 15:26:45 pbusser2: ow! 15:26:57 jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has joined #scheme 15:29:04 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 15:30:42 leppie [n=lolcow@dsl-243-60-08.telkomadsl.co.za] has joined #scheme 15:33:46 Edico [n=Edico@unaffiliated/edico] has joined #scheme 15:38:50 jonrafkind [n=jon@204.99.164.51] has joined #scheme 15:40:03 hi 15:44:05 -!- Elly [n=elly@unaffiliated/elly] has quit [Read error: 110 (Connection timed out)] 15:49:48 -!- mmc [n=mima@esprx02x.nokia.com] has quit [Remote closed the connection] 15:50:03 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 15:52:17 -!- npe [n=npe@195.207.5.2] has quit [] 15:59:27 -!- Modius [n=Modius@24.174.112.56] has quit [Read error: 60 (Operation timed out)] 15:59:32 -!- thehcdreamer [n=thehcdre@94.198.78.26] has quit [] 16:03:20 Elly [n=elly@unaffiliated/elly] has joined #scheme 16:07:38 nvteighen [n=nvteighe@103.Red-88-15-81.dynamicIP.rima-tde.net] has joined #scheme 16:09:03 r0bby [n=wakawaka@guifications/user/r0bby] has joined #scheme 16:09:59 how do I load a file when I start mzscheme, (something like mit-scheme --load file)? 16:10:45 mzscheme --load file 16:10:56 -!- soupdragon [n=f@amcant.demon.co.uk] has quit ["Leaving"] 16:11:37 yes but I want to enter repl 16:14:58 rstandy [n=rastandy@net-93-144-178-201.t2.dsl.vodafone.it] has joined #scheme 16:17:13 Edico: "mzscheme -f .scm -i 16:17:15 " 16:18:39 thanks hkBst 16:18:47 alaricsp [n=alaricsp@88-202-208-146.rdns.as8401.net] has joined #scheme 16:19:15 anyway I don't like mzscheme cause I can't use it with Simply Scheme book 16:20:04 mzscheme is good... but pretty not like MIT/GNU IMO 16:20:07 Edico: why not? 16:20:31 nvteighen, you had a question about MIT Scheme or Edwin last week or so, to which you received an unsatisfactory answer here, but I don't remember what your question was. Do you? 16:20:56 Riastradh: It was about images... 16:21:03 What about them, specifically? 16:21:25 How to create world images from compiled modules in a sane way 16:21:38 not compiling each module manually 16:21:48 Something like SBCL's save-lisp-and-die 16:21:54 (disk-save ...)? 16:22:34 yes, but that will get the stuff as it is loaded 16:22:36 (This doesn't have the effect of killing Scheme, however. If you want that effect you must call EXIT (or %EXIT) afterward.) 16:22:48 What does SBCL's SAVE-LISP-AND-DIE do that DISK-SAVE doesn't/ 16:22:48 ? 16:22:56 (except for killing the running Lisp) 16:23:09 disk-save will get the current state and save it 16:23:12 exactly as it is 16:23:24 this means, the non compiled stuff will remain non compiled 16:23:44 save-disk-and-die compiles the stuff and THEN it creates the image 16:23:56 It does?? 16:23:56 hkBst, I can't load the files from the book ftp://anarres.cs.berkeley.edu/pub/scheme/ (try simply.scm) 16:24:04 What makes you think that it does, nvteighen? 16:24:16 Riastradh: the guys at #lisp :p 16:24:34 Actually SBCL compiles everything always 16:24:48 Modius [n=Modius@24.174.112.56] has joined #scheme 16:24:55 Not quite. 16:24:59 ! 16:25:10 what I'm sorry I am cause mit-scheme doesn't have a amd64 version! 16:25:22 SBCL interprets some code, because it is faster for those cases. 16:25:24 Edico, use the C back end. 16:25:33 hmmm... 16:25:46 Riastradh: I think I'll fire up SBCL and test this :p 16:27:38 Riastradh: http://www.sbcl.org/manual/Compiler_002donly-Implementation.html#Compiler_002donly-Implementation 16:27:40 -rudybot:#scheme- http://tinyurl.com/lgv6x3 16:27:46 nvteighen, anyway, you can always just do, say, (define (cl pathname) (compile-file pathname) (load pathname)), and use that rather than LOAD. That will put you no worse off than you were before. 16:28:09 Never thought of that... :p 16:28:21 -!- dysinger [n=dysinger@200.25.197.105] has quit [Remote closed the connection] 16:28:33 So, a wrapper around load... yeah, seems the best :) 16:32:11 dysinger [n=dysinger@200.25.197.105] has joined #scheme 16:34:28 Kusanagi [n=Lernaean@unaffiliated/kusanagi] has joined #scheme 16:35:06 Ok, can someone explain what's wrong with this macro? http://pastebin.com/m572e5131 16:35:27 npe [n=npe@94-224-251-223.access.telenet.be] has joined #scheme 16:35:34 It will return 7 no matter I pass a procedure as argument or not... 16:35:55 soupdragon [n=f@amcant.demon.co.uk] has joined #scheme 16:36:18 Riastradh, it doesn't work 16:38:04 hmm... actually this http://pastebin.com/m4936bd8c 16:38:12 anyway I can live with guile 16:41:17 nvteighen: a syntactic closure is not a procedure 16:41:28 that I feared... 16:41:42 any way to inspect what the syntactic closure has inside? 16:42:03 Riastradh: why are you so cool? you're making the rest of us look bad :P 16:42:16 I mean, how can I know what I passed as argument? 16:42:18 wait, nevermind 16:43:26 p1dzkl: it's clearly that... it's skipping the then-clause considering the if-clause as #f... 16:47:26 Slom [n=a@pD9EB34DA.dip.t-dialin.net] has joined #scheme 16:48:51 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 16:53:16 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 16:53:32 mrsolo [n=mrsolo@nat/yahoo/x-ribvkaxcbaoipzpw] has joined #scheme 16:53:34 It's hard to read due to quasiquote abuse, but I don't think "((if (procedure? +) + 6) 7)" is the result you want 16:56:26 Let's see 16:56:55 What I want is actually just an over-elegant solution to this (just because of curiosity) 16:57:23 (if (procedure? x) (x 6 7) 7) 16:57:43 I wanted to see if it could be possible not to write that 7 twice 16:58:16 -!- chylli [n=lchangyi@119.181.15.104] has quit [Remote closed the connection] 16:59:35 then use `(if (procedure? ,aggr) (,aggr 6 7) 7) 17:00:17 well... that's what I have right now... in a procedure-fashion 17:00:28 What I thought was this 17:00:38 My procedure can return two things 17:00:45 (+ 6 7) 17:00:47 or 7 17:01:30 both are the list's last element, so... 17:01:30 -!- Slom [n=a@pD9EB34DA.dip.t-dialin.net] has quit [] 17:01:30 sorry, I mean, the last element is common 17:02:08 so, I thought maybe a macro could choose how to construct the rest of the code 17:02:23 yeah, again, it's just a bit of experimenting 17:03:02 saccade_ [n=saccade@cpe-66-25-188-73.austin.res.rr.com] has joined #scheme 17:05:14 -!- bytecolor [n=user@32.156.215.43] has quit [Read error: 110 (Connection timed out)] 17:08:17 the macro doesn't know if aggr evaluates to a procedure at runtime or not 17:10:06 right... 17:10:13 There is no 64bit version for mit/scheme right? 17:11:05 p1dzkl: so, you mean I only can use a procedure or the redundant `(if (procedure? ,aggr) (,aggr 6 7) 7) 17:11:16 I get it, thanks :) 17:12:09 nvteighen: I suppose you could wrap <7> in a lambda, bind it in a let, and evaluate it in both places. 17:12:54 (let ((v 7)) (if (procedure? x) (x 6 (v)) (v))) 17:13:03 TimMc: well, that snippet is a VERY simplified version of some code I have. In my real code I'm using the let 17:13:14 yes. putting aggr in the result twice is dangerous btw, because it will be evaluated twice, which is a bad idea especially if it has side effects 17:15:16 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 17:16:37 *leppie* prays 17:16:53 -!- leppie [n=lolcow@dsl-243-60-08.telkomadsl.co.za] has quit [] 17:17:27 ok, thanks for your help 17:17:30 gotta go... 17:17:31 :) 17:17:34 -!- nvteighen [n=nvteighe@103.Red-88-15-81.dynamicIP.rima-tde.net] has left #scheme 17:18:18 -!- saccade_ [n=saccade@cpe-66-25-188-73.austin.res.rr.com] has quit ["This computer has gone to sleep"] 17:18:39 -!- RageOfThou [n=RageOfTh@users-42-33.vinet.ba] has quit [Read error: 104 (Connection reset by peer)] 17:18:56 RageOfThou [n=RageOfTh@users-42-33.vinet.ba] has joined #scheme 17:19:05 MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 17:22:22 leppie [n=lolcow@dsl-243-60-08.telkomadsl.co.za] has joined #scheme 17:22:33 windows didnt die! 17:22:49 leppie: Look around 17:22:54 See anyone who cares? ;) 17:23:09 yeah, me! 17:27:35 -!- freenose [n=freenose@204.97.199.7] has left #scheme 17:36:55 -!- tltstc [n=tltstc@cpe-76-90-92-154.socal.res.rr.com] has quit [] 17:40:24 tltstc [n=tltstc@cpe-76-90-92-154.socal.res.rr.com] has joined #scheme 17:45:37 hotblack23 [n=jh@p5B05686D.dip.t-dialin.net] has joined #scheme 17:48:03 peddie_ [n=peddie@c-67-169-9-130.hsd1.ca.comcast.net] has joined #scheme 17:53:45 -!- schmir [n=schmir@mail.brainbot.com] has quit [Remote closed the connection] 18:00:23 offby1` [n=user@q-static-138-125.avvanta.com] has joined #scheme 18:01:36 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Read error: 60 (Operation timed out)] 18:01:42 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 18:04:32 -!- peddie [n=peddie@c-67-169-9-130.hsd1.ca.comcast.net] has quit [Read error: 110 (Connection timed out)] 18:13:28 -!- dysinger [n=dysinger@200.25.197.105] has quit [Remote closed the connection] 18:15:26 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Read error: 110 (Connection timed out)] 18:15:56 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit ["..."] 18:16:02 easy4 [n=easy4@c-68-45-192-148.hsd1.pa.comcast.net] has joined #scheme 18:17:22 dysinger [n=dysinger@200.25.197.105] has joined #scheme 18:18:23 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 18:19:17 athos [n=philipp@92.250.250.68] has joined #scheme 18:25:08 IR dummy :( 18:26:24 MrBlueSky [n=MrBlueSk@c-24-129-82-57.hsd1.fl.comcast.net] has joined #scheme 18:26:33 Hey! I've got a question 18:26:35 I'm using guile 18:26:42 and I'm trying to import the socket library 18:26:56 socket module* 18:27:09 so I'd do it like this right: (require 'socket) 18:27:37 but when I do that, I'm getting an unbound variable error 18:27:44 saying that require basically isn't found. 18:27:56 so uh, what's going on here? What am I doing wrong? 18:29:34 here is the actual error: 18:29:35 Backtrace: 18:29:35 In standard input: 18:29:35 2: 0* (require (quote socket)) 18:29:35 standard input:2:1: In expression (require (quote socket)): 18:29:35 standard input:2:1: Unbound variable: require 18:29:37 ABORT: (unbound-variable) 18:34:28 MrBlueSky: I don't use Guile, but the reference manual mentions that REQUIRE is used with SLIB. Guile modules seem to have different semantics . 18:34:30 -rudybot:#scheme- http://tinyurl.com/kug5jj 18:35:33 -!- npe [n=npe@94-224-251-223.access.telenet.be] has quit [Remote closed the connection] 18:35:46 npe [n=npe@94-224-251-223.access.telenet.be] has joined #scheme 18:36:06 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 18:38:05 yeah 18:38:21 I've tried messing around with that and I couldn't get anything to work. 18:38:35 I'm pretty sure (require 'socket) should just work fine. 18:40:19 nevermind, somehow I think I got it to work. 18:40:36 I think guile already has all the modules imported or something. 18:41:39 Narrenschiff [n=ritchie@xolotl.plus.com] has joined #scheme 18:41:56 -!- proq [n=user@unaffiliated/proqesi] has quit [Remote closed the connection] 18:43:34 -!- proqesi [n=user@unaffiliated/proqesi] has quit [Remote closed the connection] 18:44:54 -!- MrBlueSky [n=MrBlueSk@c-24-129-82-57.hsd1.fl.comcast.net] has quit ["Leaving"] 18:46:45 (add (num 3) (num 4)) 18:47:59 ^ it seems (num foo) doesn't exist? 18:48:14 (reading the examples from the PLAI book) 18:48:16 metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has joined #scheme 18:48:28 jengle [n=jengle@64.252.88.235] has joined #scheme 18:56:34 proq [n=user@38.100.211.40] has joined #scheme 18:56:50 what would num do? 19:00:55 Judofyr [n=Judofyr@c249DBF51.dhcp.bluecom.no] has joined #scheme 19:00:55 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 104 (Connection reset by peer)] 19:02:32 -!- leppie|work [i=52d2e3c8@gateway/web/freenode/x-ghyjtuhjrndtptvu] has quit [Ping timeout: 180 seconds] 19:03:59 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 19:07:31 -!- HG` [n=wells@xdslev189.osnanet.de] has quit [Client Quit] 19:12:11 Elly: i believe it'd be sort of a "cast" from an sexp to a number 19:12:29 you are already passing it a number though 19:12:42 er, let me give the other example 19:13:45 http://pastebin.com/d43b94c6a 19:14:03 'num(sexp)' is not valid syntax 19:14:11 you'd use this as (parse (read)) and then enter, for example, (+ 4 4) 19:14:15 er 19:14:36 it's a type constructor, a la haskell. there are macros for defining types (define-type) and doing case analysis (sort of poor-man's pattern matching on types) 19:14:37 I think maybe you want `(num ,sexp) 19:14:39 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 19:14:41 it is a type constructor, yes 19:14:42 (num sexp) 19:14:52 ^ that's what i meant 19:15:03 mmc [n=mima@cs162149.pp.htv.fi] has joined #scheme 19:17:29 well this is quite odd, it's straight out of the book. i found a package for the language variant the book uses: http://planet.plt-scheme.org/display.ss?package=plai.plt&owner=plai 19:18:35 and most of it just malfunctions 19:18:44 maybe i have an old version of the book 19:19:19 makmanalp: have you called define-type with num as one of its cases before trying this? 19:25:23 jao: hah, it seems i missed that. when it said plai was scheme with datatypes, i thought it was a primitive of sorts 19:25:37 found the definition a couple pages before, thanks! 19:30:44 davazp` [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 19:30:52 offby1`` [n=user@q-static-138-125.avvanta.com] has joined #scheme 19:31:33 -!- rouslan_ [n=Rouslan@unaffiliated/rouslan] has quit [Remote closed the connection] 19:32:00 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 19:32:13 -!- jengle [n=jengle@64.252.88.235] has quit ["Leaving"] 19:33:17 rcassidy_ [n=rcassidy@pinball.ccs.neu.edu] has joined #scheme 19:33:29 peddie [n=peddie@c-67-169-9-130.hsd1.ca.comcast.net] has joined #scheme 19:33:53 jeff___ [n=jdlouhy@pinball.ccs.neu.edu] has joined #scheme 19:34:21 crypto__ [n=z0d@artifact.hu] has joined #scheme 19:35:47 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 19:38:22 -!- z0d [n=z0d@unaffiliated/z0d] has quit [Read error: 104 (Connection reset by peer)] 19:39:17 -!- dysinger [n=dysinger@200.25.197.105] has quit [Remote closed the connection] 19:42:36 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Nick collision from services.] 19:42:39 -!- rcassidy [n=rcassidy@pinball.ccs.neu.edu] has quit [Read error: 104 (Connection reset by peer)] 19:42:47 -!- davazp` is now known as davazp 19:45:22 -!- dlouhy [n=jdlouhy@pinball.ccs.neu.edu] has quit [Read error: 110 (Connection timed out)] 19:45:30 -!- peddie_ [n=peddie@c-67-169-9-130.hsd1.ca.comcast.net] has quit [Read error: 110 (Connection timed out)] 19:46:26 -!- offby1` [n=user@q-static-138-125.avvanta.com] has quit [Read error: 110 (Connection timed out)] 19:48:20 Open [n=Open@cpe-24-92-71-240.wi.res.rr.com] has joined #scheme 19:49:34 dudleyf [n=dudleyf@65.243.31.107] has joined #scheme 19:52:20 -!- rdd [n=rdd@c83-250-157-93.bredband.comhem.se] has quit [Read error: 104 (Connection reset by peer)] 19:58:28 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 20:13:06 -!- vandemar [i=bella@2001:470:1f10:56b:0:0:0:4] has left #scheme 20:17:49 -!- Narrenschiff [n=ritchie@xolotl.plus.com] has quit [Read error: 110 (Connection timed out)] 20:19:10 -!- kib2 [n=kib@bd137-1-82-228-159-28.fbx.proxad.net] has quit [Read error: 60 (Operation timed out)] 20:19:57 -!- hotblack23 [n=jh@p5B05686D.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 20:22:25 Narrenschiff [n=ritchie@xolotl.plus.com] has joined #scheme 20:22:50 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 20:25:29 dysinger [n=dysinger@gprsinternet03.porta.net] has joined #scheme 20:30:08 kib2 [n=kib@bd137-1-82-228-159-28.fbx.proxad.net] has joined #scheme 20:30:56 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 20:35:14 kib21 [n=kib@bd137-1-82-228-159-28.fbx.proxad.net] has joined #scheme 20:40:11 So when exporting a piece in my database, if it's encrypted, I first export the key it's encrypted with, then use that to decrypt. 20:40:36 you are storing the key with the encrypted data? 20:40:52 Just the hash of the key. 20:41:52 I'm storing the hash with the encrypted data, and I have to export that hash into an actual key. Obviously if I don't have that key it's not supposed to work. 20:43:40 Anyway, I made a key module to export keys specifically, which uses the general export from the database module and decodes it as a key. 20:43:54 So the database module requires the key module in order to export any keys when it finds encrypted pieces, and the key module requires the database module to export keys... 20:43:58 -!- mario-goulart [n=user@201-40-162-47.cable.viacabocom.com.br] has quit [Remote closed the connection] 20:46:21 When I find a circular dependency like that it's tempting to just pack it all into one file, but it likely indicates a logic error... 20:46:47 like if a key is encrypted with a key encrypted with a key encrypted with a key, that's just a mess. 20:47:03 synx: It seems like the alternative is duplication of some of your code. 20:48:16 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 20:48:27 uh... seriously doubt that 20:50:33 synx: What I mean is, you would have a key database that only the key module uses, for example. 20:50:38 -!- kib2 [n=kib@bd137-1-82-228-159-28.fbx.proxad.net] has quit [Read error: 110 (Connection timed out)] 20:51:53 Yeah that sounds like a disaster waiting to happen. 20:52:59 Not saying it's good idea. :-P 20:53:09 pantsd [n=hkarau@206-248-170-192.dsl.teksavvy.com] has joined #scheme 20:53:43 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit [Read error: 110 (Connection timed out)] 20:55:19 pants1 [n=hkarau@206-248-161-225.dsl.teksavvy.com] has joined #scheme 20:55:47 -!- pantsd [n=hkarau@206-248-170-192.dsl.teksavvy.com] has quit [Read error: 60 (Operation timed out)] 20:56:19 I was trying that, but it just doesn't work out right... but these circular/recursive dependencies are just killer. 20:57:07 pantsd [n=hkarau@206-248-157-217.dsl.teksavvy.com] has joined #scheme 20:57:18 If you import a key, it might be too large and get divided up into pieces, in which case you need to import a piece list file, for the tree hashing thing. That'll "never happen" of course. :p 20:57:52 jengle [n=jengle@64.252.88.235] has joined #scheme 20:58:39 So import-key should technically use the import function from the combine module, which uses the database module but recursively imports a tree hash structure. 20:59:06 But the database module needs to export-key, if it finds any encrypted pieces marked with a certain hash. Maybe if I put import-key and export-key into separate modules? ._. 21:00:39 But if you export a key and it turns out to be a piece-list, then you have to use the piece-list module to export it...bwarg 21:01:17 hi all 21:01:43 Almost seems like a separate module for every import and export for every stage. Because everything the imports depend on, depend on the exports in reverse order. 21:02:36 suppose you have a procedure that is given a number that is "out of bounds", but still need to return *something*... what do you do? 21:02:41 hi jengle 21:02:56 right now i'm returning -1 for error, but i wonder if there's a better way 21:02:58 (void) 21:02:58 hi synx 21:03:42 I raise an exception when a number is out of bounds. 21:03:56 synx, how do you do that? 21:04:20 (error) 21:04:37 (error "Number out of bounds" thing) 21:04:39 something like that. 21:04:54 There might be more sophisticated methods for whatever scheme you're using. 21:05:52 synx: Oh, right, you're doing recursive lookups. :-/ 21:07:05 synx, thanks a lot. 21:07:17 -!- pants1 [n=hkarau@206-248-161-225.dsl.teksavvy.com] has quit [Connection reset by peer] 21:07:33 no prob jengle 21:09:31 nuu... export db depends on export key, which depends on export piece-list, which depends on export db, which depends on export key....... 21:11:14 I wonder if units can be plugged together in a circular fashion. 21:14:06 -!- pantsd [n=hkarau@206-248-157-217.dsl.teksavvy.com] has quit [Connection timed out] 21:14:48 andy__ [n=andy@87.114.148.38.plusnet.thn-ag1.dyn.plus.net] has joined #scheme 21:16:11 hm...linking units... 21:16:24 pantsd [n=hkarau@75-119-237-108.dsl.teksavvy.com] has joined #scheme 21:18:40 pants1 [n=hkarau@75-119-234-164.dsl.teksavvy.com] has joined #scheme 21:19:13 mfredrickson [n=mfredric@98.212.171.158] has joined #scheme 21:19:35 -!- mfredrickson [n=mfredric@98.212.171.158] has quit [Client Quit] 21:19:48 mfredrickson [n=mfredric@98.212.171.158] has joined #scheme 21:19:57 -!- sepult [n=buggarag@xdsl-87-78-102-51.netcologne.de] has quit ["leaving"] 21:21:18 pants2 [n=hkarau@69-165-161-185.dsl.teksavvy.com] has joined #scheme 21:21:27 -!- jengle [n=jengle@64.252.88.235] has quit ["Leaving"] 21:23:24 pants3 [n=hkarau@69-165-149-229.dsl.teksavvy.com] has joined #scheme 21:25:24 pants4 [n=hkarau@75-119-238-25.dsl.teksavvy.com] has joined #scheme 21:27:09 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 21:27:59 pants5 [n=hkarau@75-119-230-76.dsl.teksavvy.com] has joined #scheme 21:28:19 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:28:55 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [Client Quit] 21:29:31 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 21:30:23 -!- pants5 [n=hkarau@75-119-230-76.dsl.teksavvy.com] has quit [Read error: 60 (Operation timed out)] 21:32:00 pants5 [n=hkarau@69-165-161-243.dsl.teksavvy.com] has joined #scheme 21:33:14 -!- pantsd [n=hkarau@75-119-237-108.dsl.teksavvy.com] has quit [Connection timed out] 21:33:48 pantsd [n=hkarau@206-248-179-24.dsl.teksavvy.com] has joined #scheme 21:34:19 -!- pants5 [n=hkarau@69-165-161-243.dsl.teksavvy.com] has quit [Read error: 60 (Operation timed out)] 21:35:40 -!- pants1 [n=hkarau@75-119-234-164.dsl.teksavvy.com] has quit [Read error: 110 (Connection timed out)] 21:35:42 pants5 [n=hkarau@69-165-150-231.dsl.teksavvy.com] has joined #scheme 21:36:20 -!- pantsd [n=hkarau@206-248-179-24.dsl.teksavvy.com] has quit [Read error: 60 (Operation timed out)] 21:37:00 pantsd [n=hkarau@76-10-156-18.dsl.teksavvy.com] has joined #scheme 21:38:14 -!- pants2 [n=hkarau@69-165-161-185.dsl.teksavvy.com] has quit [Connection timed out] 21:39:05 -!- pantsd [n=hkarau@76-10-156-18.dsl.teksavvy.com] has quit [Read error: 60 (Operation timed out)] 21:39:31 pantsd [n=hkarau@69-165-142-9.dsl.teksavvy.com] has joined #scheme 21:39:55 -!- pants3 [n=hkarau@69-165-149-229.dsl.teksavvy.com] has quit [Connection timed out] 21:41:41 pants1 [n=hkarau@206-248-175-152.dsl.teksavvy.com] has joined #scheme 21:41:55 -!- pants4 [n=hkarau@75-119-238-25.dsl.teksavvy.com] has quit [Connection timed out] 21:44:04 -!- pantsd [n=hkarau@69-165-142-9.dsl.teksavvy.com] has quit [Read error: 104 (Connection reset by peer)] 21:44:14 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 21:44:27 incubot: Scrappage scheme lifts Ford sales 21:44:31 though after my last attempt at sales (new car sales - nissans) I think I might be done with it 21:44:49 -!- jewel [n=jewel@dsl-242-128-103.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 21:49:25 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 21:52:44 -!- pants5 [n=hkarau@69-165-150-231.dsl.teksavvy.com] has quit [Read error: 110 (Connection timed out)] 21:57:54 -!- dudleyf [n=dudleyf@65.243.31.107] has quit [] 21:58:23 -!- pants1 [n=hkarau@206-248-175-152.dsl.teksavvy.com] has quit [Read error: 110 (Connection timed out)] 22:00:30 pantsd [n=hkarau@206-248-176-220.dsl.teksavvy.com] has joined #scheme 22:00:54 -!- mmc [n=mima@cs162149.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 22:02:34 -!- pantsd [n=hkarau@206-248-176-220.dsl.teksavvy.com] has quit [Read error: 60 (Operation timed out)] 22:03:04 pantsd [n=hkarau@206-248-175-250.dsl.teksavvy.com] has joined #scheme 22:03:36 -!- andy__ [n=andy@87.114.148.38.plusnet.thn-ag1.dyn.plus.net] has quit [] 22:04:06 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 22:05:19 pants1 [n=hkarau@206-248-175-18.dsl.teksavvy.com] has joined #scheme 22:11:55 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 22:12:31 pants2 [n=hkarau@206-248-176-12.dsl.teksavvy.com] has joined #scheme 22:14:12 -!- npe [n=npe@94-224-251-223.access.telenet.be] has quit [] 22:14:33 pants3 [n=hkarau@206-248-176-220.dsl.teksavvy.com] has joined #scheme 22:17:20 -!- pants2 [n=hkarau@206-248-176-12.dsl.teksavvy.com] has quit [Read error: 104 (Connection reset by peer)] 22:20:05 -!- pantsd [n=hkarau@206-248-175-250.dsl.teksavvy.com] has quit [Read error: 110 (Connection timed out)] 22:20:52 -!- dysinger [n=dysinger@gprsinternet03.porta.net] has quit [Remote closed the connection] 22:21:15 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 22:23:12 -!- pants1 [n=hkarau@206-248-175-18.dsl.teksavvy.com] has quit [Read error: 110 (Connection timed out)] 22:24:46 r2q2 [n=user@c-24-7-212-60.hsd1.il.comcast.net] has joined #scheme 22:24:48 join #clojure 22:25:40 FunkyDrummer [n=RageOfTh@users-42-33.vinet.ba] has joined #scheme 22:26:02 Uknown command: join 22:29:25 *eli* slaps #clojure 22:31:41 -!- pants3 [n=hkarau@206-248-176-220.dsl.teksavvy.com] has quit [Read error: 110 (Connection timed out)] 22:36:42 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Remote closed the connection] 22:37:18 myeh... hygene 22:38:32 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [Read error: 110 (Connection timed out)] 22:38:38 All I want to do is make a language that can handle contracts, but sticking (require scheme/contract) in the module syntax turns into (require askluhobur.uchuouhoentegeneratedsymbol444444) or something to protect hygene. 22:39:36 Only by manually typing (require scheme/contract) into every file in this language can I use -> style contracts. 22:42:42 -!- Narrenschiff [n=ritchie@xolotl.plus.com] has quit [] 22:43:31 -!- RageOfThou [n=RageOfTh@users-42-33.vinet.ba] has quit [Read error: 110 (Connection timed out)] 22:44:19 Fufie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 22:44:48 kind of like how when you use #lang scheme you still have to require scheme/contract oh wait...no :p 22:45:32 synx: What are you using, then? 22:46:17 I'm just doing something wrong. plt languages are wickedly complicated. 22:47:52 -!- sad0ur [n=sad0ur@psi.cz] has quit [Read error: 60 (Operation timed out)] 22:50:47 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 23:00:48 -!- jonrafkind [n=jon@204.99.164.51] has quit [Connection timed out] 23:01:10 -!- Foofie [n=innocent@86.80-203-225.nextgentel.com] has quit [Read error: 110 (Connection timed out)] 23:01:26 hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has joined #scheme 23:05:03 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 23:11:08 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 113 (No route to host)] 23:15:08 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 23:18:48 -!- FunkyDrummer [n=RageOfTh@users-42-33.vinet.ba] has quit [Read error: 104 (Connection reset by peer)] 23:18:59 FunkyDrummer [n=RageOfTh@users-42-33.vinet.ba] has joined #scheme 23:27:32 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 23:29:01 -!- r2q2 [n=user@c-24-7-212-60.hsd1.il.comcast.net] has quit [Remote closed the connection] 23:32:32 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 23:32:43 karlw [n=user@adsl-99-157-202-134.dsl.pltn13.sbcglobal.net] has joined #scheme 23:34:32 dysinger [n=dysinger@gprsinternet03.porta.net] has joined #scheme 23:50:31 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 23:54:46 -!- kib21 [n=kib@bd137-1-82-228-159-28.fbx.proxad.net] has left #scheme 23:55:25 merimus [n=merimus@c-67-171-83-6.hsd1.pa.comcast.net] has joined #scheme 23:55:41 -!- dysinger [n=dysinger@gprsinternet03.porta.net] has quit [Remote closed the connection] 23:56:03 is '() a single token? 23:57:46 and is it distinct from an empty list? 23:59:57 rudybot: eval '() 23:59:58 rotty: your sandbox is ready 23:59:59 rotty: ; Value: ()