00:00:48 btw, Riastradh . 00:00:50 Ill let you know here, 00:00:53 I intend to /use/ Side effects. 00:00:58 I'm not writing static stuff. 00:00:59 jonrafkind: didn't work under scheme48 00:01:04 For example, if, while editing a program, I exchange the order of two parameters to some procedure, and if Scheme guaranteed left-to-right argument evaluation, then it would be incorrect in general to transform calls such as (F (FOO) (BAR)) to (F (BAR) (FOO)), because they have significantly different meanings. 00:01:10 scheme48 sux0rz 00:01:33 Riastradh: I don't agree... 00:01:42 but you could try (number->string 1234 16) 00:01:50 Riastradh: They only have the same meaning currently because FOO and BAR don't use effects 00:01:51 soupdragon, if you disagree with my assertion, then you are wrong. I stated fact, not opinion. 00:01:57 Riastradh: It's not a fact 00:02:14 Well ok you are right they have the same meaning 00:02:25 but the meaning is Permutation(FOO,BAR) in both cases 00:02:29 soupdragon, the correct transformation is from (F (FOO) (BAR)) to (LET* ((X (FOO)) (Y (BAR))) (F Y X)). 00:02:50 elderK, yes, I know you intend to use side effects. That doesn't change that repeated evaluation of expressions, due to the use of macros, makes the program confusing and hard to follow. 00:03:12 well, how would you suggest I improve it? 00:03:20 Write the lambda itself, not using macors? 00:03:24 s/cors/cros/ 00:03:53 soupdragon, with the current unspecified evaluation order, (F (FOO) (BAR)) does not imply any particular sequence of effects. Hence it is correct to transform the expression into (F (BAR) (FOO)). 00:04:03 Riastradh: Normally in Scheme if FOO and BAR has effects, nobody would write (F (FOO) (BAR)) would they? 00:04:16 Riastradh: So it's fine to change F and then write (F (BAR) (FOO)) 00:04:24 No, soupdragon. It is very common in languages that guarantee a particular evaluation order to rely on it. Otherwise, why would you guarantee it? 00:04:45 -!- gfb [i=806405c6@gateway/web/freenode/x-b0ecc5c8d8352335] has quit [Ping timeout: 180 seconds] 00:04:59 Riastradh: Btw, erm, I have something that... may or may not offend you, but, I think could help the information you are intended to get across, to hit home. 00:05:10 *intending 00:05:19 Not sure 00:05:27 asl? 00:05:39 asl? 00:05:45 -!- attila_lendvai [n=ati@apn-89-223-208-211.vodafone.hu] has quit [Read error: 110 (Connection timed out)] 00:05:46 minion: what does ASL stand for? 00:05:47 Acromiothoracic Stertorously Lavation 00:05:50 Riastradh: in theory they have the same meaning, both evaluate any permutation and then apply it yes? -- in practice say I run it in chicken and FOO and BAR both print their own name, it'll actually print in an opposite order 00:06:12 close! 00:06:25 asl? => #f 00:06:36 Riastradh: because of this, people wouldn't write it with FOO and BAR having effects (unless the effects could commute) 00:06:48 attila_lendvai [n=ati@apn-89-223-190-171.vodafone.hu] has joined #scheme 00:06:58 isn't that right so far? 00:07:02 81, female, south pole. /me stfus. 00:07:13 soupdragon, the meaning of the expression (F (FOO) (BAR)) does not carry the implication of any particular order of evaluation in Scheme. This encourages us to explicate the desired order of effects using LET* or similar. 00:07:37 But if you impose a particular order of evaluation, then suddenly you add new meaning to (F (FOO) (BAR)) that may not have been intended, and that there is no way *not* to say. 00:08:03 m that's true 00:08:25 Is it really something worth expressing though? That you don't care which order these things get evaluated in 00:08:56 my standard asl answer is too much / too little / too far 00:09:07 Riastradh: Did you see my question earlier about shadowing of `...'? 00:09:11 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 113 (No route to host)] 00:09:16 We already have a perfectly good way to say that this expression must be evaluated before that expression: LET*. We also have a reasonable way to say that the side effects of this expression and that expression commute, namely LET or ordinary procedure calls. (This is not as fine-grained as one might like; we can't express general partial orders, but it's better than nothing.) 00:09:19 The bonus of specifying evaluation order is that you can give new meaning to a scheme program using continuations 00:09:44 Absolutely, soupdragon, it is worth expressing independence of order, because that enables simpler transformations of programs; programs become easier to reason about. 00:10:26 chandler, how much earlier? After I replied initially? If so, no. 00:10:27 what about a case when (f (bar) (foo)) works in one implementation as desired and breaks in other? stupid programmer? 00:10:34 maybe I want a macro [F (FOO) (BAR)] that works just like the LET* 00:10:35 sladegen, yes, the program then has a bug. 00:10:55 soupdragon, well, you are welcome to write a macro L->R that applies a procedure to some arguments, evaluating the subexpressions in left-to-right order. 00:11:06 Riastradh: I missed your earlier reply, sorry. 00:11:10 Riastradh you really changed my mind on this.. somehow :) 00:11:38 Riastradh: I initially thought it was a scheme48 bug, until I couldn't find anything in R5RS to clarify what the behavior should be. 00:12:10 soupdragon: maybe you can translate? 00:12:17 :P Man, sometimes I feel so out of place here. 00:12:17 lol 00:12:42 elderK: translate what? 00:12:56 chandler, actually, I misspoke, now that I think about it. 00:13:18 nvm soupdragon . I'll just have to rered. 00:13:18 :) 00:13:26 chandler, there *is* (what I think would be considered) a bug in Scheme48, but its symptom is not what you described. 00:13:33 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Remote closed the connection] 00:13:46 Consider (let-syntax ((foo (let ((... 5)) (syntax-rules [something involving ...])))) (foo [blah blah])). 00:13:56 That would exhibit the bug in Scheme48. 00:15:17 ~_~ Man, I need to find some more accessible resources on the more advanced side of Scheme. 00:15:28 *ponders* 00:15:37 in a way that a practical, self-taught guy would grok. 00:15:55 *elderK* rereads 00:16:04 how depressing. 00:16:06 How long ago did you start reading (seriously) about Scheme, elderK? 00:16:21 I've been reading about Scheme for interest for a few months now. 00:16:32 I haven't been coding in Scheme much, so I haven't got to apply much of what I've read. 00:16:33 If you've been working at understanding Scheme thoroughly for ten years, well, then I suppose you might have something to worry about. 00:16:39 but, I always read about things - abotu many languages, for interest. 00:16:53 I've been learning Scheme I guess, on and off for a couple months. 00:17:00 but it certainly hasn't been constant. 00:17:03 or focussed. 00:17:10 but after chandler pointed that out he quoted r5rs as saying that ... shouldn't be shadowed. and it's not in scheme48. am i missing something? 00:17:19 Just, making less progress I guess, than I feel I should be. 00:17:32 Riastradh: I'm not sure why that's a different case. What am I missing? 00:17:44 elderK: I think the stuff I was asking Riastradh about was pretty esoteric and not generally relevant 00:17:50 chandler, because the environments are totally different -- they're at different storeys of the syntactic tower. 00:17:58 They have no connection. 00:18:03 heh, sorry to bring my inferiority complex out here. 00:18:03 lol 00:18:04 :) 00:18:31 Riastradh: Perhaps I'm not quite following. Can you give a fully concrete example? 00:18:36 (let-syntax ((foo (let ((... 42)) (syntax-rules () ((_ a ...) (list a ...)))))) (foo 1 2 3)) returns '(1 2 3) 00:18:42 Still, I didn't know that I could group all parameters by just saying (lambda all-params body) 00:19:03 but, it makes sense really if you understsand the (lambda (man . opt) body) 00:19:05 form. 00:19:05 :) 00:19:05 chandler, sladegen's example works. That should be a syntax error, just as (LET ((ELSE 5)) (CASE 'FOO (ELSE 'FNORD))) is. 00:19:30 rudybot: eval (let-syntax ((foo (let ((... 42)) (syntax-rules () ((_ a ...) (list a ...)))))) (foo 1 2 3)) 00:19:31 sladegen: error: eval:1:80: foo: bad syntax in: (foo 1 2 3) 00:19:43 But if you move the (LET ((... 42)) ...) outside the LET-SYNTAX, so that it happens at the ground storey of the syntactic tower, there should be no error. 00:20:03 Can you point me to the language in R5RS that would indicate that it should be a syntax error? 00:20:34 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 00:20:38 The only language I've found that establishes hygiene for the ELSE in COND is at the beginning of 4.2: "The constructs in this section are hygienic, as discussed in section 4.3." 00:20:40 btw, guys, how expensive is it to use (let ...) ? 00:20:48 like, the way I see it, let is used for creating local variables? 00:20:51 Oh, well, in the R5RS, you can't put the LET on the right-hand side of the LET-SYNTAX bindings. 00:20:53 or, local bindings? 00:21:02 elderK, its expense should not concern you. 00:21:08 sweet. 00:21:09 It costs $0.02 per use, but there's a public fund. 00:21:44 I mean, (let ((a 0) (b 1)) ....) == ((lambda (a b) ...) 0 1) roughly, right? 00:21:47 switch to euro, let the cost go down. 00:21:57 Yes, elderK, exactly. 00:22:48 (let* ((a 0) (b a)) body) == (let ((a 0)) (let ((b a)) body)) ? 00:22:53 -!- attila_lendvai_ [n=ati@apn-89-223-230-139.vodafone.hu] has quit [Read error: 110 (Connection timed out)] 00:23:34 yes 00:23:35 Disregarding what R5RS says for a moment, do you believe that (let ((... 42)) (let-syntax ((foo (syntax-rules () ((_ a ...) (list a ...))))) (foo 1 2 3))) should be a syntax error or not? 00:24:03 It should not be. 00:24:27 :) Riastradh, what would it be? 00:24:34 or is that targetted to chandler ? 00:24:37 to chandler, aye. 00:24:38 :) 00:24:42 Why? 00:24:43 elderK, yes, sorry. 00:24:45 Let me try again. 00:24:47 elderK, yes, that is correct. 00:24:51 chandler, no, it should not be a syntax error. 00:24:52 thanks, Riastradh . 00:25:00 For clarity's sake: 00:25:02 Riastradh: Why? 00:25:13 chandler, the binding of `...' does not occur in the environment in which the SYNTAX-RULES expression (in Scheme48, anyway, and also in PLT Scheme and others) is evaluated. 00:25:35 (However, in MIT Scheme, which has slightly different semantics for the right-hand sides of syntax definitions, it would be a syntax error.) 00:25:51 -!- segoe [i=3e164621@gateway/web/freenode/x-d57698bc16c6aec5] has quit [Ping timeout: 180 seconds] 00:27:53 -!- kuribas [i=kristof@d54C434F4.access.telenet.be] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 00:28:09 segoe [i=3e164621@gateway/web/freenode/x-570aaec631e6f49d] has joined #scheme 00:28:45 but bash conflicts with scheme 00:28:45 17:26 < the_unmaker> printf "%#x\n" "$((7*1024*1024*1024))" 00:28:45 17:26 < the_unmaker> 0x1c0000000 00:28:45 17:27 < the_unmaker> (number->string 7516192768 16) 00:28:46 17:27 < the_unmaker> 1x0000000 00:29:05 why does scheme48 not give me the 0x part 00:29:31 *Riastradh* blinks. 00:29:36 > (number->string 7516192768 16) 00:29:36 "1c0000000" 00:29:50 aagh sorry you are right 00:30:08 but the bash thing puts 0x in front of the 1c0000000 00:30:10 Scheme48 doesn't prefix 0x to the string because it's not supposed to. 00:30:20 is 0x not part of the hex number? 00:30:42 Neither does bash (or, to be precise, the standard printf utility) if you use `%x' rather than `%#x'. 00:30:56 I am not quite used to hex and for some reason oracle configs on soalris ar ein hex 00:31:00 What is a `hex number'? 00:31:02 I am not so sure they ahve to be though 00:31:02 Is it like a hex wrench? 00:31:10 base 16 00:31:23 Maybe you mean `the hexadecimal representation of a number'. 00:31:34 and I tried an online hex converter and it gave me some thing liek 3430303030303030 00:31:39 yes!! 00:31:40 `0x' is merely a common way to indicate `what follows is the hexadecimal representation of a number'. 00:31:47 oh really 00:32:00 Can you explain what `hexadecimal representation' means? 00:32:19 Riastradh: OK. I understand the argument here, though now I'm a bit confused as to why PLT exhibits the behavior it does in this case. 00:32:22 a representation of a number in base 16? using more than 0-9? 00:32:40 For example, how does one interpret the text `123abc' as a number using the hexadecimal representation? 00:32:50 no idea 00:33:00 So what does `base 16' mean, then? 00:33:00 might not be able 00:33:24 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 60 (Operation timed out)] 00:33:33 well each column counts from 0-15 rather than 0-9 00:33:35 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 00:33:42 I think 00:33:44 I suggest that you get out a pencil and paper, and find, by Google, perhaps, or in your favourite local library, an explanation of numeral systems. 00:33:50 -!- joast [n=rick@76.178.184.231] has quit [Connection timed out] 00:34:14 I was trying to find a converter online and got very weird results so I tried to use scheme to be my converter 00:35:46 -!- athos [n=philipp@92.250.250.68] has quit [Remote closed the connection] 00:35:50 joast [n=rick@76.178.184.231] has joined #scheme 00:37:04 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 00:38:28 -!- mmc [n=mima@cs162149.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 00:38:50 the root solution for me is that the /etc/system parameters to define shared memory for oracle do not need to be in hex as some lunatic here at work put them 00:39:12 thus my pain poof goes away 00:39:20 *Riastradh* coughs. 00:39:23 scheme is quite handy calculator 00:39:55 Honestly, I think you should get out a pencil and paper as I suggested and work out the meaning of hexadecimal representations of numbers. 00:39:57 I should try to get the hand of file and directory input out sometime 00:40:07 ok I will go now 00:40:14 I understand base 2 8 and 10 00:40:25 RageOfThou [n=RageOfTh@89.146.185.76] has joined #scheme 00:40:33 hex just throws me because after 10 you get a b c d e 00:40:36 etc 00:40:39 kinda weird for me 00:40:46 lol 00:41:02 Sigh. 00:41:07 0xA = 10 00:42:00 chandler, I think PLT Scheme has a bug, then. 00:42:19 didn't you hear eli, "PLT is right" 00:43:01 Always, I'm sure. 00:48:53 -!- melgray [n=melgray@70.99.250.82] has quit [] 00:50:21 Hmph. I can't put a library definition as the same file as another library definition, or a top-level program? 00:50:32 "library: allowed only in as a top-level module by itself" 00:55:02 -!- nun0 [n=pierre@69.172.71.220] has quit ["Leaving."] 00:55:21 rudybot: eval (define (dec->hex n) (cond ((number? n) (string-append "0x" (number->string n 16))) ((string? n) (dec->hex (string->number n 10))) (else (cons "Error: not a number." n)))) (dec->hex 7516192768) (dec->hex "7516192768") 00:55:22 sladegen: ; Value: "0x1c0000000" 00:57:21 the_unmaker: btw http://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_sec_6.2.4 00:57:23 -rudybot:#scheme- http://tinyurl.com/3tmrwx 00:57:38 dudleyf [n=dudleyf@ip70-178-212-238.ks.ks.cox.net] has joined #scheme 00:57:56 Argh. Why doesn't Mac OS X support null mounts? 00:58:03 Riastradh: Could you clarify how you understand LET-SYNTAX should scope its right hand sides? 00:58:16 -!- MrFahrenheit [n=RageOfTh@SE400.PPPoE-6850.sa.bih.net.ba] has quit [Read error: 110 (Connection timed out)] 00:59:43 attila_lendvai_ [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 00:59:56 cuz mac is for sissies 01:00:00 real men use netbsd 01:00:04 -!- attila_lendvai [n=ati@apn-89-223-190-171.vodafone.hu] has quit [Read error: 110 (Connection timed out)] 01:00:53 Incidentally, I want to use null mounts in Mac OS X for the purpose of updating a NetBSD installation on another machine... 01:01:24 -!- sepult [n=user@xdsl-87-78-25-27.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 01:01:44 I can patially see why you would expect no syntax error, but I can also almost see why you should get one. I believe I am missing the subtleties of the discussion here. 01:01:53 dysinger [n=tim@71.20.231.3] has joined #scheme 01:02:03 I don't think you are, because I'm still not sure on this point myself. 01:03:50 chandler: Well, as I understand it, LET-SYNTAX is a splicing form, which means at least that the body forms will be considered as within the scope of the surrounding LET form, but my manual isn't clear about the scoping of the right-hand side expressions. 01:04:28 I'm trying to understand Chez's interpretation of this code, by the way: 01:04:44 Yes, it's the right hand side that matters here :-) 01:05:37 arcfide pasted "Chez's Behavior" at http://paste.lisp.org/display/82472 01:06:11 -!- foof [n=user@dn157-046.naist.jp] has quit [Read error: 60 (Operation timed out)] 01:06:45 (let () (meta define ... 7) (let-syntax ([a (identifier-syntax ...)]) a)) => identifier out of context. 01:07:32 Consider this: 01:07:53 (let ((x (syntax-rules [somethingorother]))) (let-syntax ((foo x)) (foo [whatever]))) 01:07:57 Does that make any sense? 01:08:29 No, of course not. 01:08:42 Initially, I don't think I would have seen anything wrong with it. 01:08:44 So why should a binding of ... affect the right-hand side of the LET-SYNTAX? 01:09:00 The environments of each storey of the syntactic tower are completely disjoint. 01:10:24 Hrm, right, trying the above code, if it captures the ... rebinding, I would have expected it to capture the X, but it doesn't see the X. 01:11:57 -!- the_unmaker [n=g@w005.z209031033.sjc-ca.dsl.cnc.net] has quit [Remote closed the connection] 01:12:47 Weird. 01:15:02 Riastradh: If the issue is being able to shadow `...' in PLT, then this it is only sensible to have an occurrence of `...' in a *pattern* be at the same phase as the code that the macro works on. 01:15:16 soupdragon: Please stop flaming. 01:15:25 fuck of 01:16:00 soupdragon: good, good. Let it go. Show everyone how un-trollish you are. 01:16:07 soupdragon: Please do not respond rudely like that. 01:17:08 chandler: Can you tell eli to stop screwing with me? 01:17:11 chandler: re "At least not about the REPL. It makes total sense in the context of file compilation." -- one of the major point of the PLT module system is that there is no difference between compiled code and uncompiled code. (The REPL has issues, of course, but that's unavoidable.) 01:17:41 eli: Paste the exact message which is a 'flame' 01:18:03 I should have said "file loading" there, as I was trying to a draw a contrast to the REPL. 01:18:19 of might feel offended. 01:18:20 chandler: He's calling me names and telling me off for stuff I don't do -- I can tell he's going to keep this up 01:18:47 Sigh. 01:18:55 If I asked everyone to be polite, could we all agree to that? 01:19:10 yeah I'd like it if eli stops this 01:19:18 I got a feeling he's got a plan though 01:19:25 No, he doesn't. 01:19:38 His plan is to discuss the algorithmic language Scheme in #scheme, and it's a good one. 01:20:18 chandler: And chandler re the "does it (drscheme) always think that #!r6rs is important enough" -- yes, it's always showing showing the `#lang' line since it's important as it determines the language of the buffer, and `#!' is equivalent to `#lang'. 01:20:56 I just thought it a bit curious that it was pinned to the top of the view. That wasn't a judgemental comment. :-) 01:21:15 Perhaps you can help me understand how to use R6RS libraries with PLT, assuming I know nothing about the PLT module system. 01:21:40 rudybot: later tell Fare: you can do a very similar kind of loop using `for/*', usually `for/fold' is a generalized tool. But you might as well go with a named `let'. 01:21:40 minion: memo for Fare:: eli told me to tell you: you can do a very similar kind of loop using `for/*', usually `for/fold' is a generalized tool. But you might as well go with a named `let'. 01:21:41 Remembered. I'll tell Fare: when he/she/it next speaks. 01:22:25 rudybot: later tell Fare: Actually, I'd just fix the number of arguments for the process... (Path names are still limited at the OS level, I think...) 01:22:25 minion: memo for Fare:: eli told me to tell you: Actually, I'd just fix the number of arguments for the process... (Path names are still limited at the OS level, I think...) 01:22:26 Remembered. I'll tell Fare: when he/she/it next speaks. 01:22:43 chandler: Are you referring to the splicing issue? 01:23:38 I have a R6RS library and a R6RS top-level program. The library is named (my-syntax). I initially tried putting them both in the same file, but I received an error: 01:23:54 "library: allowed only in as a top-level module by itself" 01:24:08 You can't put multiple libraries in the same file. 01:24:22 (in R6RS, that is.) 01:24:24 So, I put the library in a file 'my-syntax.sls', and the top-level program in a file 'my-user.ss' 01:24:38 I was searching for the source of that restriction in R6RS, but I didn't find it. 01:24:53 The files are in the same directory. 01:25:12 Per the manual, I'm using the ++path option to tell PLT where to find the library file: 01:25:15 plt-r6rs ++path ./ my-user.ss 01:25:19 But, it still can't find it. 01:25:32 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 01:25:46 Did you try with just `.'? 01:25:57 can i also use that minion memo thing? 01:26:32 -!- Nshag [i=user@Mix-Orleans-106-4-106.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 01:26:56 my-user.ss:3:13: import: cannot find suitable library installed (exception: collection-path: collection not found: "my-syntax" in any of: (# # #)) at: (my-syntax) in: (import (for (my-syntax) expand) (rnrs base 6)) 01:27:15 -!- attila_lendvai_ [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Read error: 113 (No route to host)] 01:27:57 chandler: It might need to be in a subdirectory or something. 01:28:18 I really don't have much experience with that, but if you paste the files somewhere I'll try to see if I can make it work. 01:28:37 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 01:29:11 chandler pasted "my-syntax.sls" at http://paste.lisp.org/display/82475 01:29:20 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 01:29:23 chandler annotated #82475 "my-user.ss" at http://paste.lisp.org/display/82475#1 01:29:40 (the files are just a test of phases I was plonking together; ignore the contents.) 01:31:56 And indeed, (rnrs base 6) should be (rnrs base (6)) in my-user.ss, but that doesn't fix the issue. 01:32:05 eli pm please 01:33:36 chandler: I put them in a directory, went up a level, used `++path .', and prefixed the `import' spec with that directory name. 01:33:49 And that gives me "X/my-user.ss:8:4: z: bad syntax in: (z lit a)" 01:33:57 eli: Can you share some light on the behavior of the LET and LET-SYNTAX stuff above? 01:34:08 eli: Thank you. 01:34:26 arcfide: Just a second, I'm trying to figure out what chandler is doing... 01:34:34 eli: Take your time. 01:35:51 chandler: (define lit) --? 01:36:54 I'm not sure how literals and modules work together yet. I was thinking that I needed to export the literal too. 01:37:41 chandler: Well, that `define' form is still flawed... Did you mean to define it to some random value? 01:37:46 Oh, yes. 01:38:22 I must have forgotten to put something there. This was something I was trying to put together when I ran into a brick wall with library paths, so don't read too much into what's there. 01:38:24 Then something is weird, I'm not getting a syntax error for some reason. 01:38:48 Seems like a bug! 01:39:51 Riastradh: Would you consider a 'parser:single-bracketed' parser (where the left and right brackets are the same) useful for parscheme? 01:40:30 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 01:40:51 chandler: Yes, looks like just (define x) works, and binds `x' to `void'. 01:41:28 Yes, it does. I didn't care about the value, and I didn't remember if one was required. 01:41:33 I was just fussing about with module export forms. 01:41:46 chandler pasted "why isn't the binding of `...' captured in a syntax-case macro?" at http://paste.lisp.org/display/82476 01:43:14 Whoops. It is, and I messed up the macro call. 01:44:26 chandler: I just got to "my-user.ss", and it looks weird. 01:44:58 First, (let-syntax ((z foo)) ...) wouldn't work right, since `foo' is not bound normally at the syntax level. 01:45:05 -!- mrsolo [n=mrsolo@nat/yahoo/x-890406b40a0dfc8f] has quit ["Leaving"] 01:45:26 The `foo' identifier is basically associated with a transformer function that lives at the syntax level. 01:46:07 How would I bind it normally? 01:46:28 chandler: Second, you're using `lit' at the runtime phase, so it's unrelated to the one from "my-syntax.ss", since that one is imported into the syntax phase. 01:46:57 But the broken `let-syntax' obscures what you're trying to do. 01:47:02 Ignore `lit' for the moment. 01:47:11 If you don't mind PLT syntax, I can probably explain things much better. 01:47:38 -!- cky [n=cky@cpe-024-211-249-162.nc.res.rr.com] has quit [Read error: 110 (Connection timed out)] 01:47:39 48 hours being awake and obscure r6rs syntax don't sit well for me. 01:47:46 Why did defining foo normally in the my-syntax library not bind it normally at the syntax level in my-user.ss? 01:48:37 Ah, I missed that. I take 3/4 of what I said back. 01:49:44 cky [n=cky@cpe-024-211-249-162.nc.res.rr.com] has joined #scheme 01:51:29 OK. I think I'm sufficiently tired that I can't understand what I'm trying to do either. 01:52:04 chandler pasted "my-library.sls" at http://paste.lisp.org/display/82477 01:52:11 chandler annotated #82477 "my-user.ss" at http://paste.lisp.org/display/82477#1 01:52:23 test-phase-hygiene/my-syntax.sls:12:11: compile: unbound identifier (and no #%app syntax transformer is bound) at: list in: (list (quote a)) 01:52:34 chandler: Matthew replied and pointed at the r6rs `define' -- apparently, (define ) is a valid r6rs form. 01:52:57 Yes, I found that. Ignore that for the moment. I'm confused about something new, now :-) 01:53:22 chandler: Re what you're trying to do in general, let me try to summarize some things, if you're also semi-zombie. 01:54:34 The thing is that the pattern of a macro is something that is matched against code that lives in the runtime phase, not code from the syntax phase. 01:54:42 -!- RageOfThou [n=RageOfTh@89.146.185.76] has quit [Read error: 110 (Connection timed out)] 01:55:03 Because of that, the `lit' definition in "my-syntax.ss" is not the same binding as the one used for a keyword. 01:55:36 How that interacts with the rest of the r6rs semantics is something I don't know. 01:55:43 Right, I understand that now. 01:55:46 foof [n=user@dn157-046.naist.jp] has joined #scheme 01:56:08 Can you look at my most recent paste and tell me why I'm getting an error about unbound 'list'? 01:56:34 `list'?? 01:56:38 Yes. 01:56:55 http://paste.lisp.org/display/82477 01:56:59 test-phase-hygiene/my-syntax.sls:13:11: compile: unbound identifier (and no #%app syntax transformer is bound) at: list in: (list (quote a)) 01:57:01 *arcfide* grabs some dinner. 01:57:33 (list (quote a)) is the expansion of `foo'. 01:59:09 That's a toplevel thing, I didn't even try it. 01:59:20 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 02:00:04 OK. I think I will come at this with a fresh eye tomorrow. 02:00:36 OK. 02:00:55 *chandler* is still very confused as to why the binding of `list' vanished. 02:01:09 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 02:01:20 gfb [i=ad22383a@gateway/web/freenode/x-3167439e6e594b40] has joined #scheme 02:01:21 (arcfide: I assume that this was also what you asked about...) 02:01:45 chandler: That one is easy. 02:02:33 chandler: What happens is that you usually write code that looks like this: (define-syntax foo (lambda (stx) (syntax-case stx () [(...A...) ...B...]))) 02:02:52 In this case, the whole `lambda' expression lives at the syntax level. 02:03:22 The `...A...' pattern lives at the runtime level ("lives" in the sense of the identifiers it matches). 02:04:06 And finally, `...B...' is back at the syntax level, but it can be (syntax ...C...) which will make `...C...' be in the runtime level again. 02:04:21 chandler: Is all of this jumping clear? 02:05:32 -!- z0d [n=z0d@unaffiliated/z0d] has quit [Read error: 60 (Operation timed out)] 02:06:24 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 02:08:16 eli: No, because I'm lost as to how it interacts with library phases. The form #'(list 'a ...) is at *whose* runtime level in the library my-syntax? 02:09:30 z0d [n=z0d@unaffiliated/z0d] has joined #scheme 02:10:00 chandler: What I'm trying to explain is that in a typical macro there is interleaving of code that lives at runtime and code that lives at syntax time. `define-syntax' is a runtime binding, but its RHS is a syntax-time form, etc. 02:10:30 A `syntax' form *lowers* it's contents -- usually from a syntax-time code into the runtime code. 02:10:53 Probably an easier example is: (define-syntax foo (lambda (stx) (syntax bar))) 02:11:15 `foo' is now a macro that always expands to `bar'. 02:11:31 -!- gfb [i=ad22383a@gateway/web/freenode/x-3167439e6e594b40] has quit [verne.freenode.net irc.freenode.net] 02:11:31 -!- segoe [i=3e164621@gateway/web/freenode/x-570aaec631e6f49d] has quit [verne.freenode.net irc.freenode.net] 02:11:33 So `bar' is something that is at the runtime level. 02:12:11 The code of the macro lives at syntax time, but the `syntax' form is what "lowers" the `bar' into runtime. 02:12:24 Is that better? 02:13:52 I understand what you're saying, but it's not helping me understand the behavior of my example. 02:14:15 It's related. 02:14:34 So, the bottom line is that this simple (define-syntax foo (lambda (stx) (syntax bar))) definition makes sense. 02:14:55 Now what you're trying to do is define the macro expander function in a library, as a plain definition, 02:15:17 you do that by simply switching `define-syntax' into `define': (define foo (lambda (stx) (syntax bar))) 02:15:22 In the library my-syntax, foo is defined at the runtime level. At what level do patterns and syntax forms in foo reside? 02:15:47 This means that the `lambda' expression is no longer at the syntax level, it is a simple runtime expression. 02:16:13 (Just let me go on with this example a little longer.) 02:17:30 Besides that, the other jump -- the one from `syntax' -- is still there. Except that now instead of jumping down from syntax time to runtime (phase 1 to phase 0), it is jumping from the runtime to the next level down -- you're jumping from phase 0 to phase -1. 02:18:23 "Obviously", phase -1 is not usually populated, so that `bar' will normally not refer to anything. 02:18:50 Specifically, if you use `list', then that's a referene to `list' at phase -1, which is unbound -- and that's how your `list' disappeared. 02:19:29 Oh! For some reason I had gotten it into my head that phases were nonnegative. 02:19:30 In r6rs jargon you'd fix that by importing rnrs or whatever with (for ... (meta -1)). (At least I think that I remember it this way.) 02:19:44 Yes, that's it. 02:19:46 No, they can be negative and that's very confusing... 02:20:17 In fact, in PLT, this kind of import is called `for-template' because it applies to templates that are used in runtime code. 02:20:21 It isn't; on the contrary, thinking that they were nonnegative confused me. 02:20:55 (The funny thing is that the "template" name confused me completely when I first saw it, I feel much more comfortable with the integers and the known points where the code switches from N to N+1 or N-1). 02:21:05 Anyway, this is a sure sign that sleep will improve my thinking. 02:22:17 Thank you for your help. 02:23:08 -!- fishey [n=fisheyss@ool-4573344b.dyn.optonline.net] has quit [Read error: 110 (Connection timed out)] 02:23:16 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 02:23:54 fishey [n=fisheyss@ool-4573344b.dyn.optonline.net] has joined #scheme 02:25:59 I will pester you more tomorrow about the capture of `...'. To me it seems to come down to a question of whether ... is a literal in the pattern syntax (in which case it exists in a different phase from the surrounding runtime lexical bindings) or a special part of the pattern, existing at the runtime level. 02:26:31 I suspect that this is the source of the difference between scheme48 and plt. 02:31:21 "For the libraries defined in the library report, the export level is 0 for nearly all bindings. The exceptions are, from are syntax-rules, identifier-syntax, ..., and _ from the the (rnrs base (6)) library, which are exported with level 1..." 02:32:23 If ... is exported at level 1, a binding at level 0 should not affect its meaning in patterns, should it? 02:32:44 jonrafkind [n=jon@98.202.86.149] has joined #scheme 02:46:44 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 02:46:45 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 02:47:30 -!- cky [n=cky@cpe-024-211-249-162.nc.res.rr.com] has quit ["Upgrading kernel"] 02:48:40 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 02:49:32 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 02:50:19 -!- joast [n=rick@76.178.184.231] has quit [Connection timed out] 02:52:09 cky [n=cky@cpe-024-211-249-162.nc.res.rr.com] has joined #scheme 02:53:03 tjafk2 [n=timj@e176222060.adsl.alicedsl.de] has joined #scheme 02:55:41 chandler: weird, in plt it has level 0. I'll ask. 02:56:15 chandler: What's the reference to the `...' thing? 02:57:42 -!- felipe [n=felipe@my.nada.kth.se] has quit [Remote closed the connection] 02:59:57 eli: R6RS, section 7.2 03:00:48 eno_ [n=eno@adsl-70-137-131-139.dsl.snfc21.sbcglobal.net] has joined #scheme 03:00:55 chandler: No, I meant your code. But no problem I found it. 03:01:39 joast [n=rick@76.178.184.231] has joined #scheme 03:02:45 -!- eno [n=eno@nslu2-linux/eno] has quit [Nick collision from services.] 03:02:52 -!- eno_ is now known as eno 03:08:55 -!- tjafk1 [n=timj@e176214201.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:09:11 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [] 03:17:38 -!- forcer [n=forcer@c194248.adsl.hansenet.de] has quit [Read error: 110 (Connection timed out)] 03:19:40 scidan [n=dan@c-69-250-212-245.hsd1.dc.comcast.net] has joined #scheme 03:20:21 -!- scidan [n=dan@c-69-250-212-245.hsd1.dc.comcast.net] has quit [Client Quit] 03:23:04 -!- luz [n=davids@189.122.121.232] has quit ["Client exiting"] 03:33:38 -!- soupdragon [n=f@amcant.demon.co.uk] has quit ["Leaving"] 03:37:47 leppie [n=lolcow@196-210-177-69-wblv-esr-3.dynamic.isadsl.co.za] has joined #scheme 03:45:15 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 03:47:19 -!- pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has quit [Read error: 110 (Connection timed out)] 03:52:03 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 03:53:03 -!- joast [n=rick@76.178.184.231] has quit [Read error: 110 (Connection timed out)] 03:53:19 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 03:54:09 as my scheme project gets larger, 6000LOC, and i play more with haskell; i'm really starting to feel that having types is a _good_ thing for keeping project manageable. have others felt this way? if so, how did you resolve it in scheme, perferably with macros 03:54:53 joast [n=rick@76.178.184.231] has joined #scheme 03:55:02 *Elly* resolves that by using typed languages for large projects :P 03:55:43 how do you bring types into scheme? 03:56:06 well, there is typed scheme 03:56:10 records or statiic typing? 03:56:12 it's a PLT extension I think 03:56:19 haskell like typing 03:56:51 lowlycoder: I find it's a tradeoff. No type declarations has the advantage of letting you prototype faster, and more importantly makes refactoring and changing types easier, at the expense of some shallow bugs that are quickly caught by a unit test suite which covers all code branches. 03:57:14 I wrote more than a thousand lines of C today I think 03:57:23 In theory, Haskell doesn't require type declarations. In practice, it always does. 03:57:36 foof: agreed on the prototypig stage; it's actually the refactoring stage where I feel types is good; because it sets up this boundry; maybe i'm just bad at encapsulation 03:58:52 What I want is a system that doesn't require type declarations, but will detect and warn about type mismatches at compile time. 03:59:31 that's aabout it for me too; "if you see an error, I prefer to get it at load time, rather than when you're running with an exeption of "hey, you're trying to take the car of a point3d record" 03:59:50 scheme-complete has caught a number of bugs for me at edit-time with its type inference. The latest Chicken now provides type-inference-based warnings. But there's a long way to go. 04:00:11 scheme-complete.el ? 04:00:23 yes 04:00:42 a type checker in emacs, the horro 04:01:03 i'd like to roll out something involving macros 04:01:27 that seems almost the perfect level of abstraction -- code expansion time -- right before it's compiled/interpreted 04:01:43 sciendan [n=dan@c-69-250-212-245.hsd1.dc.comcast.net] has joined #scheme 04:08:50 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 04:18:51 -!- synthase [n=synthase@adsl-220-183-171.mob.bellsouth.net] has quit [Read error: 60 (Operation timed out)] 04:23:06 synthase [n=synthase@adsl-146-212-140.mob.bellsouth.net] has joined #scheme 04:25:11 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:28:29 dysinger_ [n=tim@71.20.231.3] has joined #scheme 04:37:48 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 04:44:58 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 54 (Connection reset by peer)] 04:45:22 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 04:48:58 Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has joined #scheme 04:50:07 -!- dysinger [n=tim@71.20.231.3] has quit [Read error: 110 (Connection timed out)] 04:52:59 -!- Arelius [n=indy@64.174.9.113] has quit [Read error: 110 (Connection timed out)] 04:54:13 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 04:54:39 Poeir_ [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has joined #scheme 04:55:30 -!- Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has quit [Read error: 60 (Operation timed out)] 05:04:41 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 05:12:07 -!- SharkBra1n [n=gerard@210.48.104.34] has quit ["leaving"] 05:20:10 segoe [n=segoe@201.Red-79-155-84.dynamicIP.rima-tde.net] has joined #scheme 05:20:21 hi 05:20:30 yeah, yeah. 05:22:23 eli: are you still awake? 05:23:59 ikaros [n=ikaros@g226150163.adsl.alicedsl.de] has joined #scheme 05:27:01 eno_ [n=eno@adsl-70-137-139-149.dsl.snfc21.sbcglobal.net] has joined #scheme 05:28:09 pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has joined #scheme 05:34:17 -!- ASau [n=user@193.138.70.52] has quit ["off"] 05:35:20 xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has joined #scheme 05:39:00 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 110 (Connection timed out)] 05:48:26 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 05:54:58 _ender [n=user@c-76-126-245-211.hsd1.ca.comcast.net] has joined #scheme 05:55:31 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [] 06:02:42 -!- arcfide [n=arcfide@h-69-3-100-36.chcgilgm.dynamic.covad.net] has left #scheme 06:03:16 MrFahrenheit [n=RageOfTh@SE400.PPPoE-5903.sa.bih.net.ba] has joined #scheme 06:05:54 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 06:15:54 -!- ikaros [n=ikaros@g226150163.adsl.alicedsl.de] has quit ["Leave the magic to Houdini"] 06:17:17 -!- Quadrescence [n=quad@unaffiliated/quadrescence] has quit [Read error: 110 (Connection timed out)] 06:17:49 -!- X-Scale [i=email@89.180.205.13] has quit [Client Quit] 06:20:16 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 06:22:18 -!- xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has quit [Connection timed out] 06:22:46 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [] 06:30:32 -!- JHVH [n=jarv@dsl-217-155-101-22.zen.co.uk] has quit [Remote closed the connection] 06:31:59 -!- _ender [n=user@c-76-126-245-211.hsd1.ca.comcast.net] has quit [Remote closed the connection] 06:36:08 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 06:44:57 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 54 (Connection reset by peer)] 06:45:20 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 06:51:51 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 06:52:48 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 06:53:27 -!- araujo [n=araujo@gentoo/developer/araujo] has quit ["Leaving"] 07:03:35 ASau [n=user@host112-230-msk.microtest.ru] has joined #scheme 07:04:06 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 07:08:17 -!- MrFahrenheit [n=RageOfTh@SE400.PPPoE-5903.sa.bih.net.ba] has quit [Read error: 110 (Connection timed out)] 07:17:35 -!- segoe [n=segoe@201.Red-79-155-84.dynamicIP.rima-tde.net] has quit ["Lost terminal"] 07:21:21 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 07:21:32 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit ["Leaving."] 07:21:43 blandest [n=blandest@softhouse.is.ew.ro] has joined #scheme 07:24:56 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 07:28:00 rstandy` [n=rastandy@net-93-144-243-56.t2.dsl.vodafone.it] has joined #scheme 07:28:26 -!- rstandy` [n=rastandy@net-93-144-243-56.t2.dsl.vodafone.it] has quit [Remote closed the connection] 07:28:29 -!- rstandy [n=rastandy@net-93-144-243-56.t2.dsl.vodafone.it] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 07:28:36 rstandy [n=rastandy@net-93-144-243-56.t2.dsl.vodafone.it] has joined #scheme 07:41:38 Hydr4 [n=Lernaean@24-107-112-153.dhcp.stls.mo.charter.com] has joined #scheme 07:41:38 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [Nick collision from services.] 07:42:34 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 07:43:29 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 07:48:24 Sveklo [n=user@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 07:50:03 -!- elmex [i=elmex@ist.m8geil.de] has quit [Remote closed the connection] 07:50:37 elmex [i=elmex@ist.m8geil.de] has joined #scheme 08:02:26 athos [n=philipp@92.250.250.68] has joined #scheme 08:02:59 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit [Read error: 60 (Operation timed out)] 08:04:20 -!- foof [n=user@dn157-046.naist.jp] has quit [Read error: 60 (Operation timed out)] 08:16:13 leppie|work [i=52d2e3c8@gateway/web/freenode/x-3ca59bf152fcc343] has joined #scheme 08:26:20 blandest [n=blandest@softhouse.is.ew.ro] has joined #scheme 08:30:24 Arelius [n=indy@64.174.9.113] has joined #scheme 08:39:39 attila_lendvai_ [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 08:47:33 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 08:51:17 -!- cipher [i=weinsd0@monica.cs.rpi.edu] has quit [Read error: 110 (Connection timed out)] 08:54:01 Quadrescence [n=quad@unaffiliated/quadrescence] has joined #scheme 08:58:24 jewel [n=jewel@dsl-242-129-65.telkomadsl.co.za] has joined #scheme 09:07:06 blandest1 [n=blandest@softhouse.is.ew.ro] has joined #scheme 09:07:36 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit [Read error: 104 (Connection reset by peer)] 09:08:50 Can some one point me to an Emacs mode for scheme that supports evaluating buffers and s-expressions ? 09:09:13 quack.el 09:09:24 and probably any other scheme mode 09:12:18 I'm currently trying quack but I get this error "reference to undefined identifier: compile-file" 09:14:17 hm.. my quack.el doesn't contain any compile-file.. 09:14:28 my entire emacs doesn't know about compile-file, it says 09:16:07 that happens when i hit C-c C-k 09:16:22 it's bound to #'scheme-compile-file 09:16:49 ah, the error you get is in your scheme, not in quack, right? 09:16:53 yes 09:17:00 how do I compile using quack ? 09:17:06 what Scheme do you use? 09:17:30 plt scheme 4.2 (latest version on Windows) 09:17:38 -!- blandest1 is now known as blandest 09:18:04 artagnon [n=artagnon@unaffiliated/artagnon] has joined #scheme 09:23:44 it seems C-c C-k calls scheme-compile-file (from cmuscheme.el), which has calls COMPILE-FILE hard-coded. 09:24:28 do you really want to *compile* the file? or load it into plt? then C-c C-l might work 09:25:29 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 09:26:29 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 09:28:06 -!- artagnon [n=artagnon@unaffiliated/artagnon] has left #scheme 09:28:06 ecraven: seems to work. Thanks! 09:28:51 welcome ;) 09:28:56 have a look at paredit.el 09:29:19 I use paredit for CL code :D 09:29:41 great ;) 09:35:06 heya guys. 09:35:16 *elderK* sits alone in the corner, looks rather meek. 09:35:20 *elderK* lights up a cigarette. 09:49:54 borism [n=boris@195-50-201-218-dsl.krw.estpak.ee] has joined #scheme 09:51:34 ewww 09:55:48 Nshag [i=user@Mix-Orleans-106-2-114.w193-248.abo.wanadoo.fr] has joined #scheme 09:58:05 felipe [n=felipe@my.nada.kth.se] has joined #scheme 10:00:22 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit [Read error: 110 (Connection timed out)] 10:00:42 -!- Axioplase is now known as Axioplase_ 10:07:44 :( It's been a rather crap day. 10:07:48 But hey, hkBst, what's up man? 10:08:23 not much 10:11:49 Gutted? 10:11:55 Or, are you just happy ot be relaxing? 10:13:36 I'm happy enough to be relaxing :) 10:14:55 :) 10:15:00 I'm trying to understand some things from SRFI#9. 10:15:06 the first record srfi. 10:15:15 I don't see why he has done some things the way he has... 10:15:38 Especially when I can't find him actually using... the data he is storing in some cases. 10:15:45 it's just there, waiting, forever. 10:15:52 like, :record-type 10:16:04 that's probably why there are more srfi's on records ;P 10:16:09 heh 10:16:11 good point. 10:16:11 :) 10:16:22 *hkBst* is suspicous of multiple srfi's about the same thing 10:17:07 anyway, I've only really used the source of random bits and threads SRFIs. 10:17:22 18 and 27 IIRC 10:17:37 What? No srfi-1 or srfi-13? 10:17:47 heya sjamaan :) 10:17:48 Those are the killer SRFIs for me 10:17:50 hi elderK 10:18:06 So far, I find many of the SRFIs as they are, limiting. 10:18:11 Ie, blobs... 10:18:26 Octet addressed binary blobs, etc. 10:18:41 Need better ways of accessing data from binary blobs. 10:19:14 Who knows, maybe I'll write one for the hell of it :) 10:19:20 Could be some fun. 10:19:20 What's wrong with srfi-4? 10:19:52 erm... 10:19:57 u8vectors are what you usually work with when you need binary blob support 10:20:08 what if I want to read a 32bit integer, stored at an unaligned address? 10:20:20 I shouldn't have to compose it myself... 10:20:33 r6rs bytevectors can do that 10:20:35 Wouldn't that break on several architectures? 10:20:43 No, sjamaan. 10:20:57 Unaligned stuff can break, in certain situations... 10:21:24 Function addresses, stack addresses.... unaligned, that can cause agony. 10:21:33 sjamaan: look at things like the BMP format. 10:21:35 ELF, etc. 10:21:55 PCX, TGA... 10:21:57 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [Remote closed the connection] 10:22:25 Sure, I can create the u32 value by gluing the bytes together myself, just, that's kind of... a crappy solution, imho. 10:23:16 ic 10:23:52 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 10:25:54 thesnowdog_ [i=thesnowd@114.73.39.174] has joined #scheme 10:28:40 The r6 library seems alright at first glance 10:28:51 However, what's the deal with this "endianness symbol" stuff? 10:29:00 Why is there a need for this special syntax? 10:35:31 *shrug* 10:35:36 you shouldn't need special synatx. 10:35:45 endianness isn't that hard to deal with... 10:35:48 but, anyway. 10:35:59 seriously, the srfi-4 stuff, the blob conversion stuff as current, 10:36:01 is really ... well, shit. 10:36:22 ie: blob->u32vector or whatever, only works when the blob is a multiple of 4 in size... 10:36:26 that shouldnt matter. 10:36:38 we might want to access a 32bit value stored somewhere in 12b of data... 10:36:52 -!- jewel [n=jewel@dsl-242-129-65.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 10:37:01 Oh, and of course, the fact that all those blob->**vector conversions involve copying... 10:37:14 It's just, not very practical for any serious binary stuff. 10:37:20 yeah, that's fubar 10:37:25 Good god, I hope I'm not the only one to see sense here. 10:37:27 YAY! 10:37:27 :) 10:37:33 heh 10:37:43 Seriously, I had an argument about this AGES ago. 10:37:51 And the person just wouldn't see why this was /bad/ as it is. 10:37:54 Didn't I let you know that alaricsp was thinking about this too? 10:38:00 Was that someone else? 10:38:05 Aye, him and I talked about that too. 10:38:08 ok 10:38:10 Yeah, I argued with someone else. 10:38:26 I think everyone in the chicken community agrees that the current situation is sucky 10:38:36 It's just, a "pure scheme" solution to this, will suck equally as much as the current solution... 10:38:55 we'd need to introduce a new blob-type thing, that dropped down to C for the shit that actually made sense :P 10:39:05 sure 10:39:07 that way, we wouldnt have to fucking reconstruct integers byte by byte... 10:39:22 I dont know, man. 10:39:29 It's this part of Scheme that frustrates me hte most. 10:39:29 You can't always do that, only for the native endianness 10:39:35 No, you can Sjamaan. 10:39:46 Many processors feature native instructions to convert endianness. 10:39:51 ah, that's nice 10:40:08 Not to be overly like, Anti-scheme-community here, 10:40:16 but this is one thing that really pisses me off. Like, 10:40:19 Anyway, the hairiness would be best handled in C 10:40:27 Too many people will completely disregard this, they fail to see the sense. 10:40:38 It drives me nuts. 10:40:45 Is that really your impression of the Scheme community? 10:40:51 -!- thesnowdog [i=thesnowd@114.73.30.9] has quit [Read error: 110 (Connection timed out)] 10:40:53 That, or some have this whole "holier than thou" attitude. 10:40:55 Not the entire community. 10:40:56 Just, some. 10:41:02 I think most people that actually have to deal with this stuff agree with you 10:41:10 Like you, Syntropy, alaricsp, etc. You're all cool. 10:41:13 Down to earth-y. 10:41:43 Did you check out how other implementations do this? 10:41:46 I don't know. I just know that well, it can make using Scheme a lot less enjoyable, you know? 10:41:47 (aside from R6RS) 10:41:55 yes, absolutely 10:41:55 You mean different interpreters and hte like? 10:41:58 yes 10:42:00 Like, Ikarus, Ypsilon? 10:42:02 A little. 10:42:06 blandest [n=blandest@softhouse.is.ew.ro] has joined #scheme 10:42:07 Not in serious detail though, I'll admit 10:42:13 Ikarus is R6, so I guess that just uses that API 10:42:40 I think it's not a bad API, it could be ported to SRFI-4 with maybe some name changes for consistency 10:43:03 And get rid of the funky "endian symbol" nonsense 10:43:18 Like, initially, I thought I was misinterpreting a lot of people - or maybe it was my education or something. But, more and more, I realize that "smug (lisp|scheme) weenie" pretty much describes some people. Like, some elitist view or something. It's just, not the best way to interact. 10:43:19 Aye. 10:43:20 is there a function that can iterate over both collection types (lists and vectors) ? 10:43:22 I have to research r6rs. 10:43:31 I see that map only works on lists :( 10:43:33 I've been avoiding r6, mostly because everything is still (ftmp) r5. 10:43:51 foof [n=user@dn157-046.naist.jp] has joined #scheme 10:43:55 blandest: It'd be neat if you could map over strings too :P 10:43:58 character by character. 10:44:07 I was wondering about this earlier, too. 10:44:11 blandest: I think there are a few SRFIs and/or libraries that can do this 10:44:31 If you're not worried about memory usage or cpu time, you could convert :P 10:44:43 are these SRFIs some kind of "addons" that have to be activated ? 10:44:51 I'll have to do some reading :) 10:44:52 yes, you could say that 10:44:52 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 10:44:58 srfi.schemers.org has the list 10:45:00 pretty much blandest. 10:45:07 How to activate them depends on the implementation you're using 10:45:14 It's like a community repository providing implementations of stuff people generally find useful 10:45:26 except, it's kind of formalized. 10:45:32 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 10:45:32 Which is good :) 10:45:38 yup. 10:45:52 It's basically like a slightly-more-decoupled standard library. 10:45:58 at least, as far as I see it. 10:46:06 Same here 10:46:12 That's what bothered people about R6, too 10:46:16 They ignored SRFIs 10:46:32 Didn't implement any of them as core r6/ 10:46:32 ? 10:46:47 No, they implemented some of srfi-1, but with different names 10:46:51 That's just stupid 10:47:02 Did they provide any decent rationale for it? 10:47:13 or was it just for the heck of it? 10:47:16 I don't think they did 10:47:26 But I wasn't that involved with the process of R6 10:47:28 I could understand why htey did that, if it was for a real, valid reason. 10:47:33 Otherwise, what tards. 10:47:34 :p 10:47:34 I hope to get more involved with R7 10:47:44 Edico [n=Edico@unaffiliated/edico] has joined #scheme 10:47:56 man, my relationship with scheme is weird. 10:48:00 I love and hate it, at the same tiem. 10:48:09 heh 10:48:12 Seriously. 10:48:15 It's a /great/ language. 10:48:18 It offers so much, 10:48:26 but there are some really massive things, that make it really... unusable for a LOT of thigns. 10:48:32 unless you are willing to ignore serious inefficiency. 10:48:37 I know what you mean 10:48:46 These things should be identified and fixed 10:48:56 Aye, dealt with. 10:49:27 Instead of the answers I get mostly, which basically come down to "This is the Scheme way. Schemers dont need to do that stuff.... that's crude....." 10:49:35 heh, how silly 10:49:37 and it's like, dude, that crude shit is what powers everything else.... 10:49:49 Take accessing some arbitrary offset in a blob, right? 10:50:05 Why should we have to convert it, make a copy, index it, then release that copy? 10:50:22 why cant we just dereference it, immediately? I mean, that's possible on every processor under the sun. 10:50:28 Even 8bit chips... 10:50:44 I can understand copying if you are setting a value, in a blob. That way, you can stay persistent like. 10:51:10 But there is no reason to make all these things more painful than is needed. It just makes using scheme more difficult and frankly, annoying, than it should be. 10:51:15 *elderK* nods firmly, grabs a coffee. 10:51:54 I spose someone could say "Use the right tool for the right job". and, that's true - and probably a good answer. But, afaik, Scheme is a general purpose language. 10:51:56 No? 10:52:00 I think this blob stuff you're talking about is a pretty Chicken-specific flaw 10:52:06 No, it's wide. 10:52:13 Guile, Scheme48, etc. 10:52:13 I think it's a flaw simply because Felix hasn't gotten around to implementing something better 10:52:28 All it needs is someone to roll up their sleeves and hack a better replacement 10:52:39 I mean, for all I know, the interpreter might actually optimize out the crap. I just, I don't want to rely on that. 10:52:45 Aye, Sjamaan. 10:53:17 :P You know, all these bitches I have could be a function of the fact that, well, pretty much everything I do, and write code for, is low-level. Seriously low-level. 10:53:31 That's good 10:53:31 :P lol. I go to sleep reading Architecture manuals and datasheets. :P 10:53:35 That about explains my position pretty well. 10:53:36 lol 10:53:44 People with different needs can balance a language 10:53:52 Precisely. 10:54:00 I want to see Scheme grow /stronger/. If you get my meaning? 10:54:10 Become less restricted in the scope in which it can be used. 10:54:18 At least, used seriously. 10:54:21 yes 10:54:23 That would rock 10:54:25 Used in place of something like C. 10:54:25 elderK: have you tried bigloo and gambit? 10:54:35 No, but I've looked at Gambit. 10:54:41 elderK: that is Bigloo motto :) 10:55:03 "Bigloo is a Scheme implementation devoted to one goal: enabling Scheme based programming style where C(++) is usually required." 10:55:10 I'm off for a walk 10:55:11 bbl 10:55:26 -!- araujo [n=araujo@gentoo/developer/araujo] has quit ["Leaving"] 10:55:29 Also, a lot of people seem to think that when I talk like this, I /dont/ care about portability. That's crap. My code is expected to run across chips like Coldfire, 68K (yep), x86, ARM. :P I get portability. 10:55:34 Later sjamaan . enjoy it man :) 10:55:37 And hey, thanks for listening, I appreciate it! 10:55:49 hkBst: I'll check out Bigloo :) and, Gambit, again. 10:56:01 blandest1 [n=blandest@softhouse.is.ew.ro] has joined #scheme 10:56:07 wb blandest 10:56:08 :) 10:56:28 Thanks. I'm at work and have to use a VPN connection :( 10:56:34 :( 10:56:37 ejs [n=eugen@nat.ironport.com] has joined #scheme 10:56:39 *pet pet* :P 10:56:47 The kind that disables your local area network :D 10:57:01 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit [Read error: 104 (Connection reset by peer)] 10:57:01 I feel your pain there. 10:57:04 Nichibutsu [i=Fabse@wikipedia/Track-n-Field] has joined #scheme 10:57:07 Yknow what also sucks? :P 10:57:17 :P How many programs get confused when you have more than one live connection. 10:57:22 Like, three NICs or something. 10:57:30 So many programs don't let you specify which NIC to use. 10:57:38 or, general link. 10:58:05 -!- thesnowdog_ is now known as thesnowdog 10:58:16 you can trick the cisco vpn by using a virtual machine, but that's complicated 10:59:10 blandest1: why are you using scheme for low level programming in the first place? 10:59:24 what low level programming ? 10:59:26 :) 10:59:35 *johnnowak* hits head 10:59:38 meant elderK 10:59:39 elderK: there is also prescheme, perhaps you could write jit for scheme48 if you are so obsessed by speed. 10:59:47 I just want to learn Scheme, I have a little background in CL 11:00:11 johnnowak: Hit me, why? 11:00:16 ah, my bad. 11:00:17 :) 11:00:28 well we're off to a good start 11:00:40 and I wouldn't consider expecting to address u32's at odd addresses in a blob, low level. 11:00:50 and because I wish to prototype some things. 11:01:11 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 11:01:36 wouldn't consider it low level either, but you did say you're looking to do low level programming i thought 11:01:46 Well, no. 11:02:03 Most of what I build however, is low-level, generally. It's like, my job :P 11:02:11 but, obviously, I'll use C or something for that. 11:02:32 Still find it really annoying though, that many simple things are so agonizing painful in Scheme. 11:02:41 but then, I should just fix them myself. 11:02:50 *elderK* shrugs 11:03:12 there's a severe lack of practical necessities in most languages 11:03:35 except PHP... 11:03:38 yeah, but I think this tops the cake, man. 11:04:27 ...and Perl. 11:04:29 Seriously. If you cannot see why having to piece integers together, byte by byte, when you want to read one from some odd position, is bad.. .then, oy. 11:05:44 xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has joined #scheme 11:07:41 elderK: sounds pretty special-purpose/low-level ;P 11:09:58 ... 11:10:04 *elderK* face palm 11:10:05 :P 11:11:26 -!- blandest1 [n=blandest@softhouse.is.ew.ro] has left #scheme 11:11:47 mmc [n=mima@cs162149.pp.htv.fi] has joined #scheme 11:12:54 ;) 11:12:54 http://www.irp.oist.jp/trac/chicken/browser/chicken/trunk/srfi-4.scm 11:13:00 *elderK* reads 11:19:55 elderK: all the integers the same size? 11:20:24 no, not always. 11:20:29 like I said, we are reading formatted binary data. 11:20:37 structures, on disk. 11:20:39 in R6RS, just do: bytevector->sint-list 11:20:54 that's not good enough. 11:20:56 -!- xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has quit [Read error: 104 (Connection reset by peer)] 11:21:14 xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has joined #scheme 11:21:37 o well, I guess your frind is fread then :) 11:22:04 lol... 11:22:04 :P 11:22:10 or just read the entire file and index the hell out of it :P 11:22:47 grep is my friend 11:22:48 :P 11:23:51 grep for binary data? 11:24:05 no, grep for chicken's source code. 11:24:05 -!- xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has quit [Read error: 54 (Connection reset by peer)] 11:24:11 so I can learn how to build my own blob stuff. 11:24:11 :p 11:24:20 ah k :) 11:24:22 xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has joined #scheme 11:24:43 write a blob reader macro, so you can define the shape of the data 11:24:54 -!- xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has quit [Read error: 54 (Connection reset by peer)] 11:24:56 sounds like fun actually :) 11:25:10 xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has joined #scheme 11:26:26 learning macro's are the most fun if you can actually apply what it does 11:26:50 -!- xwl [n=user@a91-155-188-169.elisa-laajakaista.fi] has quit [Read error: 54 (Connection reset by peer)] 11:28:39 because when i think fun, i think reader macros 11:30:06 I sould have said 'blob-reader' macro, not a reader macro like LISP, eeek! 11:30:23 *johnnowak* restores stomach contents 11:31:17 I was thinking of writing a friendly read-structured-data type thing. 11:31:33 like, you'd give the structure a name, you'd say the sizes of the fields, their names. 11:31:36 the blob as the source. 11:31:57 then, it'd extract all the stuff, have it in the returned structure or vector or whatever. 11:32:05 the extraction would probably be slow, and use nothign but core scheme. 11:32:15 but, at least the relevant stuff would be cached in the returned data. 11:34:08 yeah, what came to my mind, as a macro :) 11:34:40 you can use deferred execution and only read the data when you actually need it. 11:35:04 because what really matters, is that we can easily access hte data we want - not how much larger it may be in the Scheme world, vs on disk representation. 11:35:09 and aye. 11:35:31 Painted htat way, extraction doesnt need to be /fast/ 11:35:38 just as long as retrieving data later, is fast. 11:35:38 :P 11:36:12 Since really all thats happening, like in any other language, is we are bringing in the binary data in from disk and changing it into something that we can actually use... 11:36:24 in C, that's a LOT easier :P Since, C structures can map 1:1 to the on disk data :P 11:36:44 :) You've got my mind rolling, leppie. 11:36:58 good :) 11:37:03 I need to learn some of the crazy stuff of syntax-rules 11:37:05 jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has joined #scheme 11:37:06 like, ... 11:37:24 I would suggest syntax-case rather 11:37:34 (syntax-rules () ((some-new-syntax v1 (v2 v3 ...)) ............ ) 11:37:36 complex macro's can get very hairy in syntax-rules 11:37:43 I need to get what the ()s in the spec are. 11:37:49 that enclose v2/v3 11:37:58 does it just mean a list in the input? 11:38:15 like, (some-new-syntax 'bla '(a b c)) ? 11:38:17 the () can take identifiable free identifiers 11:38:42 to match identifiers in the syntax 11:38:47 aye. 11:38:51 like the else of a cond 11:38:51 I think I might just have to play around :) 11:38:54 get familiar. 11:39:20 start with syntax-rules, and see where it takes you :) 11:39:29 Aye. 11:39:32 then try it in syntax-case and see which one you prefer 11:39:44 say, I'd want something like this : 11:40:24 (decompose-structure (( ) ...)) 11:40:32 that way, we could say later, from the returned data , 11:40:52 (returned-data ) ----> the unpacked stuff for that field. 11:41:40 how will you handle different types, eg strings, chars, numbers, floats? 11:41:45 or like, (returned-data ! ) 11:41:53 I wouldn't. 11:41:53 :P 11:41:59 so just numbers? 11:41:59 I'm a hacker :P I don't need htem :P 11:42:14 i've got this library for working with aligned fields in bytevectors: http://bazaar.launchpad.net/%7Eweinholt/%2Bjunk/industria/annotate/head%3A/weinholt/struct/pack.sls 11:42:16 -rudybot:#scheme- http://tinyurl.com/n5fuef 11:42:17 well, no. I'd find a way. 11:42:30 I thought you meant for hte load spec. 11:42:37 like, automagically determine the binary size. 11:42:51 say, for this : 11:43:08 nice weinholt :) 11:43:11 (decompose-structure (( ) ...) 11:43:16 etc. 11:43:18 that way, 11:43:23 elderK: look at that code 11:43:25 leppie|work, thanks :) 11:43:30 (returned-data ) would return the string, or whatever. 11:43:42 it looks clever :) hehe 11:44:16 i'll check it out at home tonite 11:44:48 dharmatech [n=root@c-75-72-202-174.hsd1.mn.comcast.net] has joined #scheme 11:45:22 foof's article on reddit: http://www.reddit.com/r/programming/comments/8vj71/small_is_beautiful/ 11:45:27 Vote up cabrones! 11:46:06 And on hacker news: http://news.ycombinator.com/item?id=673484 11:46:28 srfi74 will be useful I think. 11:49:58 -!- dharmatech [n=root@c-75-72-202-174.hsd1.mn.comcast.net] has quit ["Leaving"] 11:50:45 btw, guys, 11:50:57 Little Schemer, Reasoned Schemer, etc, worthwhile books? 11:51:09 I'm not new to programming - but I'm reasonably new to scheme. 11:51:32 So, i'd rather something that gets into Scheme - rather than the "this is what a variable is, this is what a program is, this is what we call input and output..." 11:51:38 Kind of like, Scheme for Programmers. 11:51:38 :P 11:53:07 (not being a rich person, I'd like bang-for-my-buck, lol) 11:56:30 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 11:56:35 elderK: some good lisp books are: SICP, LiSP, PAIP. 11:59:53 But those books are about more than just learning the language itself. 12:00:57 dharmatech [n=root@c-75-72-202-174.hsd1.mn.comcast.net] has joined #scheme 12:01:59 ps: I don't endorse reddit or hacker news in anyway. I don't even read them. They are both lame. But foof's article deserves exposure. 12:02:03 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 12:02:18 higepon919 [n=taro@FL1-125-197-200-195.tky.mesh.ad.jp] has joined #scheme 12:02:25 Which article? 12:02:26 higepon919, !!! 12:02:38 higepon919, How's life in Moshland? 12:03:02 Man, Scheme is taking over Japan. 12:03:09 Fine. Now implmenting, (mosh concurrent) library. 12:04:25 Hey Riastradh, port scmutils to Scheme48. ;-) 12:05:13 luz [n=davids@139.82.89.70] has joined #scheme 12:05:18 hkBst: I haven't heard of LiSP or PAIP? 12:05:26 higepon919, Has anybody considered adding the gl and glut libraries to Mosh? I.e. the same libraries that run on Ikarus and Ypsilon? 12:05:38 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 12:05:47 And, I'm not averse to learning more than the language itself, provided it isnt just, introductory filler than you learn when you learn any other language... 12:05:53 elderK: ask WP 12:06:05 WP? 12:06:11 wikipedia 12:06:16 Alrighty. 12:06:32 Aha 12:07:29 Ppjet6_ [n=ppjet@ivr94-11-88-187-39-7.fbx.proxad.net] has joined #scheme 12:07:59 elderK: Lisp in Small Pieces and Paradigms in AI Programming (AFAIR). 12:08:37 Cheers. 12:08:41 :) 12:08:50 -!- dharmatech [n=root@c-75-72-202-174.hsd1.mn.comcast.net] has quit ["Leaving"] 12:10:38 -!- Ppjet6_ [n=ppjet@ivr94-11-88-187-39-7.fbx.proxad.net] has quit [Remote closed the connection] 12:24:12 -!- mmc [n=mima@cs162149.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 12:29:50 Ooh... let's see if my webserver can handle being reddited... 12:30:42 lol 12:30:49 sorry for voting :( 12:31:07 -!- eno_ is now known as eno 12:31:23 It's still up... it should be able to handle a better load than my old webserver. 12:32:36 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [Remote closed the connection] 12:33:21 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 12:38:40 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 12:53:18 Leppie, would you mind helping me understand a syntax-rules example? 12:53:35 -!- ASau [n=user@host112-230-msk.microtest.ru] has quit ["off"] 12:53:35 Just want to make sure I've got it down. 12:54:04 the pattern: (foo (p1 ...) ((p2) ...) ((p3) ...)) 12:54:34 matches against: (foo (a b) ((c) (d) (e)) ()) 12:55:02 foo matches foo, (p1 ...) matches (a b), ((p2) ...) matches ((c) (d) (e)) and ((p3) ...) matches (), but p3 will be 'empty' 12:55:08 like, it matches the nothingness inside of (). 12:55:20 rmorris [n=user@209.120.179.205] has joined #scheme 12:55:24 ? 12:55:26 correct? 12:56:26 elderK: I think that's correct 12:56:40 thanks hkBst. 12:56:41 :) 13:03:25 ASau [n=user@77.246.230.112] has joined #scheme 13:04:34 vstranger [n=user@pD9E6179E.dip.t-dialin.net] has joined #scheme 13:08:03 MrFahrenheit [n=RageOfTh@SE400.PPPoE-1515.sa.bih.net.ba] has joined #scheme 13:14:18 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 13:18:24 naunsins [i=charles_@120.138.100.90] has joined #scheme 13:22:05 -!- naunsins [i=charles_@120.138.100.90] has left #scheme 13:22:41 heh 13:22:43 -!- rstandy [n=rastandy@net-93-144-243-56.t2.dsl.vodafone.it] has quit [Read error: 110 (Connection timed out)] 13:22:48 a scheme interpreter written in scheme's macro language. 13:22:48 lol 13:22:56 sorry elderK , been working, going home now, will check then :) 13:23:03 interpreting at the time it expands... the macro. 13:23:03 lol 13:23:05 hahah thats cool 13:23:09 -!- leppie|work [i=52d2e3c8@gateway/web/freenode/x-3ca59bf152fcc343] has left #scheme 13:24:09 -!- incubot [i=incubot@klutometis.wikitex.org] has quit [Remote closed the connection] 13:27:42 -!- luz [n=davids@139.82.89.70] has quit [Read error: 54 (Connection reset by peer)] 13:27:59 luz [n=davids@139.82.89.70] has joined #scheme 13:28:48 bombshelter13_ [n=bombshel@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has joined #scheme 13:31:02 incubot [n=incubot@klutometis.wikitex.org] has joined #scheme 13:34:30 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 13:38:29 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has left #scheme 13:38:33 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 13:38:48 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 13:40:39 -!- Nichibutsu [i=Fabse@wikipedia/Track-n-Field] has quit [] 13:43:08 elderK: where's sample? 13:44:39 -!- ejs [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 13:45:19 the pattern: (foo (p1 ...) ((p2) ...) ((p3) ...)) 13:45:19 matches against: (foo (a b) ((c) (d) (e)) ()) 13:45:20 member:identifier:elderk 13:45:20 foo matches foo, (p1 ...) matches (a b), ((p2) ...) matches ((c) (d) (e)) and ((p3) ...) matches (), but p3 will be 'empty' 13:45:20 member:identifier:elderk 13:45:20 like, it matches the nothingness inside of (). 13:53:53 ejs [n=eugen@95.135.126.183] has joined #scheme 13:54:38 I'm not sure what you mean by "the nothingness inside of ()". 13:54:54 `...' means `zero or more of'. 13:56:11 jewel_ [n=jewel@dsl-242-129-65.telkomadsl.co.za] has joined #scheme 13:58:19 argg sorry, got interupted 13:59:17 -!- Lectus [n=Lectus@189.105.42.131] has quit [Read error: 104 (Connection reset by peer)] 13:59:30 yes ((p3) ...) will match () and ((xyz)) and (((xyz) (xyz)) 14:00:02 what dont you understand? 14:00:48 syntax-rules patterns are like a very limited regex with only * 14:00:58 -!- attila_lendvai_ is now known as attila_lendvai 14:01:15 ... being equal to * 14:02:13 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 60 (Operation timed out)] 14:06:10 annodomini [n=lambda@130.189.179.215] has joined #scheme 14:12:19 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 14:12:31 -!- amca [n=amca@CPE-121-208-82-97.qld.bigpond.net.au] has quit ["Farewell"] 14:14:43 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 14:18:36 neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has joined #scheme 14:21:44 -!- neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has quit [Client Quit] 14:30:35 You answered my question :) 14:30:40 I was just ensuring my understanding was correct. 14:30:43 thanks leppie :) 14:30:50 (Sorry for late response, ive been reading some TSPL3) 14:31:41 np 14:33:10 "A begin that contains only definitions is considered to be a definition in the grammar; this is permitted in order to allow syntactic extensions to expand into more than one definition." 14:33:13 ie: 14:33:23 (begin (define a 0) (define b 1) ....) 14:33:24 ? 14:33:44 it splices the output into the containinf form 14:33:46 ((lambda (a b) ....) 0 1) 14:34:13 okay, give me a begin I can splicify to make sure I understand :) 14:34:20 and throw the 'splicified' version at you, to check :) 14:34:21 no, its like you never wrote (begin ) 14:34:23 if you wouldn't mind :) 14:34:35 chandler pasted "phase separation and hygiene, again: my-syntax.sls" at http://paste.lisp.org/display/82488 14:34:46 chandler annotated #82488 "my-user.ss" at http://paste.lisp.org/display/82488#1 14:34:47 (begin (define a 0) (define b 1)) 14:34:53 there's a splicing one 14:35:01 (define a 0) (define b 1) ? 14:35:05 Riastradh, eli: when you're around, I'd like your opinions on this. 14:35:29 (begin #f (define a 0) (define b 1)) <-- not legal 14:35:39 mp[e. 14:35:42 yes elderK 14:35:43 defines have to be first, right?. 14:35:47 yes 14:36:25 begin is used a lot in macro's to emit more than '1 expression' 14:36:48 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 14:37:11 thanks leppie :) 14:37:20 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 14:37:43 well, aye, if you used only one expression, why even have a begin at all? 14:37:49 right? 14:37:59 (begin (+ 1 2)) is pointless. 14:38:23 chandler: should'nt you be exporting the 'lit' syntax too? 14:38:34 xwl [n=user@62.237.32.162] has joined #scheme 14:39:48 I wonder if you could create an infinitely recursive macro 14:39:49 :P 14:40:26 (define-syntax fudge (syntax-rules () ((fudge a b ...) (fudge a b ...))) 14:40:26 :P 14:40:35 well you might get a (begin (+ 1 2)) in macro output, but the compiler takes care of that 14:41:01 aye, its valid - just pointless, the (begin (+ 1 2)) that is. 14:41:12 leppie: 'lit' is not bound, so how could I export it? 14:41:37 dzhus [n=sphinx@93-80-204-198.broadband.corbina.ru] has joined #scheme 14:46:09 (define-syntax lit (lambda (x) (syntax-violation #f "invalid syntax" x))) 14:47:29 Well, that binds it, but is it necessary to do so? 14:48:03 ^_^ macros are cool. 14:48:24 It'd be funny to see a C interpreter written in Scheme 14:48:25 if you want free-identifier=? to work, yes 14:48:38 well according to aziz anyways 14:48:40 then a Scheme interpreter written in C :P 14:48:48 just for geekspect. 14:48:49 :P 14:48:49 lol 14:49:24 else you can do literal matching, using syntax->datum and match the symbol, but that needs to happen in a fender, so syntax-case for you :) 14:49:36 fender? 14:50:27 in syntax-case, you can have an optional 1st expression that acts as a futher predicate after the syntax has been matched 14:50:41 leppie: I'm having trouble understanding why there needs to be a binding, just working from first principles and the definition of syntax-rules. 14:50:46 Let's put syntax-case aside for a minute. 14:51:29 it should not work chandler, as you are shadowing lit 14:51:43 or maybe it can 14:51:49 any of oyu guys seen Pirates of Silicon Valley? 14:51:53 :) It's an entertaining movie. 14:51:58 im not too clued up on all those explicit phases :p 14:52:09 :P Cheers me up after a favourite company gets swallowed by some conglomorate... 14:52:15 $!@# ZeniMax. 14:52:17 *sigh* 14:52:21 I am shadowing lit with a binding in the runtime phase. But should that binding affect its use in the expansion phase in the right hand side of let-syntax? 14:52:27 let me run it quick here, and see what the psyntax says 14:52:50 I know what psyntax does, but I am not convinced that it is correct. 14:53:51 what you saying makes sense 14:54:34 -!- higepon919 [n=taro@FL1-125-197-200-195.tky.mesh.ad.jp] has quit [Read error: 60 (Operation timed out)] 14:54:34 and i guess that's another disadvantage of implicit phasing, but how often does that corner case appear in practice? 14:56:17 I'm not sure this is a disadvantage of implicit phasing, and I think it's important to clarify this behavior. 14:56:40 -!- mmmulani [n=mmmulani@taurine.csclub.uwaterloo.ca] has left #scheme 14:58:00 asdfa [n=sadfasf@60.234.62.23] has joined #scheme 14:58:18 how do i have an if condition have more than one statement? 14:58:24 in clojure i use (do 14:58:27 what do i use in scheme? 14:58:28 -!- Sveklo [n=user@a88-115-8-123.elisa-laajakaista.fi] has quit [Read error: 104 (Connection reset by peer)] 14:58:47 Either use `cond' or `begin'. 14:59:10 rudybot: eval (cond ((odd? 1) (display "Hi!") #t)) 14:59:11 chandler: ; Value: #t 14:59:12 chandler: ; stdout: "Hi!" 14:59:27 rudybot: eval (if (odd? 1) (begin (display "Hi!") #t)) 14:59:28 chandler: error: eval:1:0: if: bad syntax (must have an "else" expression) in: (if (odd? 1) (begin (display "Hi!") #t)) 14:59:35 No, I musn't! 14:59:46 heh 14:59:47 lol 14:59:47 -!- MrFahrenheit [n=RageOfTh@SE400.PPPoE-1515.sa.bih.net.ba] has quit [Connection reset by peer] 14:59:48 PLT scheme y'know 14:59:55 Beginner module? 14:59:56 rudybot: eval (when (odd? 1) (begin (display "Hi!") #t)) 14:59:58 *offby1: your sandbox is ready 14:59:58 *offby1: ; Value: #t 14:59:59 *offby1: ; stdout: "Hi!" 15:00:00 leppie: nope 15:00:01 MrFahrenheit [n=RageOfTh@SE400.PPPoE-1515.sa.bih.net.ba] has joined #scheme 15:00:06 leppie: module language 15:00:11 that's a relatively recent change though 15:00:39 leppie: how's Iron Scheme coming? 15:00:48 rudybot: eval (when (odd? 1) (display "Hi!") #t) 15:00:48 leppie: your sandbox is ready 15:00:49 leppie: ; Value: #t 15:00:49 leppie: ; stdout: "Hi!" 15:00:51 *offby1* just re-entered the World O' Dot Net recently 15:00:55 It's quite annoying. I would tolerate either R5RS or some interpretation of R6RS as applied to REPL semantics, but this language is not *quite* Scheme. 15:01:12 chandler: that's right -- it's not "Scheme"; it's "PLT Scheme". 15:01:12 slowly offby1, but steady :) 15:01:15 cool 15:01:22 I really ought to try it :-| 15:01:30 As the cats would say, "do not want". 15:01:42 my cat never _says_ that; he just makes it clear by his action 15:02:00 if you are on Windows, and have .NET experience, I would encourage you :) 15:02:02 I'm pretty sure I can coax rudybot into being more R5RS-like. 15:02:08 rudybot: init r5rs 15:02:08 *offby1: your r5rs sandbox is ready 15:02:25 rudybot: eval (if #t (begin (display "Oh goody") #t)) 15:02:25 rudybot: init r5rs 15:02:25 *offby1: ; Value: #t 15:02:26 *offby1: ; stdout: "Oh goody" 15:02:27 chandler: your r5rs sandbox is ready 15:02:35 rudybot: init module 15:02:35 chandler: error: module: standard-module-name-resolver: collection not found: "module" in any of: (#) in: module 15:02:49 chandler: I've forgotten how to reset it :) 15:02:57 maybe "init" with no arguments. 15:02:58 I hope. 15:03:41 I think it'd be helpful to have new sandboxes default to R5RS, as long as there was a way to obtain a PLT module language sandbox. 15:03:41 leppie: I have almost no .NET experience, but (despite disliking almost everything about Microsoft) whenever I use it, I enjoy it 15:03:45 rudybot: init 15:03:45 chandler: error: module: standard-module-name-resolver: collection not found: "module" in any of: (#) in: module 15:03:58 hehe offby1 :p i feel like that about Ubuntu :) 15:03:58 chandler: what I -really- wish is that I could make a SICP sandbox. 15:04:17 rudybot: init 15:04:17 *offby1: your r5rs sandbox is ready 15:04:21 -!- ASau [n=user@77.246.230.112] has quit ["off"] 15:04:22 *offby1* scratches head 15:04:27 chandler: OK, lemme check the source 15:04:27 pity Mono is so slow and broken :( 15:04:43 And if I had an infinite number of implicitly-phased wishes, I'd wish for the ability to interpret a lisppaste and its annotations as a number of R6RS libraries, followed by a R6RS top-level program. 15:05:18 that be cool :p 15:05:24 init scheme 15:05:28 rudybot: init scheme 15:05:29 *offby1: your scheme sandbox is ready 15:05:32 *offby1* wipes brow 15:05:34 i could do that for ironscheme :p 15:05:39 chandler: behold 15:06:07 i just dont trust the sandbox I setup for it on windows yet :( 15:06:25 leppie: really? Sandboxes are, from what I've gathered, quite tricky 15:06:42 we found a couple of bugs in PLT's sandbox once I started using it in rudybot 15:06:56 i create a guest account and ran the process under that account, and it seemed to work rather well, just not tested enough 15:07:46 i still need to make things like execution threads, and termination timers ... 15:08:06 ah, using a separate process is a good idea. 15:08:17 I considered that for rudybot too but was too lazy to bother :) 15:08:30 what you mean? 15:08:53 -!- elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has quit [] 15:08:55 dont you guys just make a 'jail' in linux? 15:09:26 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 60 (Operation timed out)] 15:09:30 chroot and that stuff :p 15:09:41 i havent played with linux for so long 15:10:28 -!- ejs [n=eugen@95.135.126.183] has quit ["This computer has gone to sleep"] 15:11:02 eno_ [n=eno@adsl-70-137-139-149.dsl.snfc21.sbcglobal.net] has joined #scheme 15:11:27 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 15:11:36 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 15:11:54 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 104 (Connection reset by peer)] 15:12:23 leppie: oh no, it's nothing like that. rudybot's sandbox is a PLT scheme module; all the code you and I give him gets evaluated in the same process as all the rest of him. 15:12:50 and you run it under root? 15:12:57 no, I run it as me. 15:13:02 hehe 15:13:04 it's (presumably) way more complex than just making a socket to a separate, low-privileged process; but it's entirely portable 15:13:24 i.e., if I ran rudybot on Windows, (I think) it'd Just Work 15:13:29 never tried that 15:13:35 I got IPC too 15:14:09 leppie: When you say "sandbox", do you mean a .NET sandbox, or something user-level? 15:14:12 just a simple eval interface, but it does return references to Scheme objects in the other process 15:14:13 with sufficient cleverness, you can talk rudybot into loading a DLL, and getting him to tell you stuff like his userid, which you will find is me. 15:14:26 chandler: user-level 15:14:33 leppie: ooh ooh: do you serialize closures? 15:14:47 ikaros [n=ikaros@f050246053.adsl.alicedsl.de] has joined #scheme 15:14:49 Why not run it in a sandboxed AppDomain? 15:14:53 no, and I havent tried 15:14:59 aww 15:15:19 chandler: I have never done that, and didnt feel like finding out 15:15:23 This is something I wanted to set up for ABCL for #lisp (using Java sandboxes), but never got around to doing. 15:15:38 gfb [i=4c455486@gateway/web/freenode/x-a57f75ad8b004f12] has joined #scheme 15:16:05 leppie: Does IronScheme run in a Silverlight 2.0 VM? 15:16:10 I guess that would be best, but I pretty much need unrestricted access to .NET 15:16:24 no, Silverlight is too restricted profile 15:16:33 you cant create runtime types 15:17:09 so if I change types with vectors for records, I could maybe, but conditions would still be a problem 15:17:20 So is Codeplex's svn server slow and flaky, or am I just unlucky? 15:17:20 So in IronRuby et al, everything is represented as one of a fixed set of runtime types? 15:17:39 offby1: normally fast 15:18:05 yes, when I last looked, that was the case 15:18:25 soupdragon [n=f@amcant.demon.co.uk] has joined #scheme 15:18:33 I'm still stuck with some of those python-centric leftovers :( 15:18:44 crypto_ [n=z0d@artifact.hu] has joined #scheme 15:19:07 im getting rid of all that rubbish for version 2, and writing the compiler in scheme itself 15:19:25 Are you getting rid of the DLR as well? 15:19:30 yip 15:19:33 mreggen_ [n=mreggen@cm-84.215.47.12.getinternet.no] has joined #scheme 15:19:40 will just be using the 2 number classes from there 15:19:43 -!- mreggen [n=mreggen@cm-84.215.47.12.getinternet.no] has quit [Read error: 60 (Operation timed out)] 15:20:32 ejs [n=eugen@95.135.126.183] has joined #scheme 15:20:34 im still lost in that source code, spaghetti logic 15:20:44 pfo_ [n=pfo@chello084114049188.14.vie.surfer.at] has joined #scheme 15:20:50 rudybot: init scheme 15:20:53 -!- Hydr4 [n=Lernaean@24-107-112-153.dhcp.stls.mo.charter.com] has quit [verne.freenode.net irc.freenode.net] 15:20:53 -!- Poeir_ [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has quit [verne.freenode.net irc.freenode.net] 15:20:53 -!- z0d [n=z0d@unaffiliated/z0d] has quit [verne.freenode.net irc.freenode.net] 15:20:53 -!- pfo [n=pfo@chello084114049188.14.vie.surfer.at] has quit [verne.freenode.net irc.freenode.net] 15:20:53 -!- minion [n=minion@common-lisp.net] has quit [verne.freenode.net irc.freenode.net] 15:20:53 -!- Khisanth [n=Khisanth@pool-141-157-237-196.ny325.east.verizon.net] has quit [verne.freenode.net irc.freenode.net] 15:20:53 chandler: your scheme sandbox is ready 15:21:14 Kusanagi [n=Lernaean@24-107-112-153.dhcp.stls.mo.charter.com] has joined #scheme 15:22:01 Poeir_ [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has joined #scheme 15:27:30 -!- socialite [n=piespy@dynamic-87-105-8-31.ssp.dialog.net.pl] has quit [Read error: 110 (Connection timed out)] 15:29:19 -!- asdfa [n=sadfasf@60.234.62.23] has quit [] 15:30:51 -!- crypto_ is now known as z0d 15:31:49 socialite [n=piespy@dynamic-78-8-240-63.ssp.dialog.net.pl] has joined #scheme 15:34:15 -!- ejs [n=eugen@95.135.126.183] has quit ["This computer has gone to sleep"] 15:34:28 offby1: the reason i havent really look at serializing closure is due the fact that I cant have serializable continuations yet, so I am not really sure just the closure would be very usefull, if at all, also part of version 2 plans 15:35:11 Khisanth [n=Khisanth@pool-141-157-237-196.ny325.east.verizon.net] has joined #scheme 15:35:28 athos [n=philipp@92.250.250.68] has joined #scheme 15:36:08 leppie: I've heard it's _very_ hard; I didn't really expect you to do it 15:36:26 offhand the only system I know of that did it was Termite, yome's thesis 15:38:35 it would be interesting to try once I have delimited continuations in place 15:39:25 I can serialize pretty much anything so far, except closures 15:40:53 i have a problem with characters though that need to be represented as surrogate pairs, for some reason .NET does not like that 15:41:15 Dark-Star [n=michael@p57B569C4.dip.t-dialin.net] has joined #scheme 15:43:15 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Remote closed the connection] 15:43:52 you can serialize anything you want ... 15:43:56 *offby1* digs a pygmy 15:44:50 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 54 (Connection reset by peer)] 15:44:50 yeah, you just have to tell .NET that you want to, and add a few 'pointer' fixups during deserilization 15:45:16 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 15:48:18 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 15:48:50 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 113 (No route to host)] 15:50:24 -!- dudleyf [n=dudleyf@ip70-178-212-238.ks.ks.cox.net] has quit [] 15:53:00 -!- eno_ is now known as eno 15:53:30 -!- vstranger [n=user@pD9E6179E.dip.t-dialin.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 15:56:24 -!- proq [n=user@unaffiliated/proqesi] has quit [Remote closed the connection] 16:00:23 -!- Quadrescence [n=quad@unaffiliated/quadrescence] has quit [Read error: 104 (Connection reset by peer)] 16:02:47 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 16:07:48 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:08:03 proq [n=user@38.100.211.40] has joined #scheme 16:09:42 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 16:16:25 exexex [n=chatzill@85.96.117.251] has joined #scheme 16:16:31 leppie: incubot is a chroot jail implementation 16:18:06 Hydr4 [n=Lernaean@24-107-112-153.dhcp.stls.mo.charter.com] has joined #scheme 16:18:06 minion [n=minion@common-lisp.net] has joined #scheme 16:18:43 ASau [n=user@193.138.70.52] has joined #scheme 16:18:50 rudybot: init http://tmp.barzilay.org/x.ss 16:18:52 eli: your "http://tmp.barzilay.org/x.ss" sandbox is ready 16:18:59 rudybot: eval (if (> 1 2) 3) 16:18:59 eli: error: reference to an identifier before its definition: if in module: 'page 16:20:55 rudybot: init http://tmp.barzilay.org/x.ss 16:20:57 eli: your "http://tmp.barzilay.org/x.ss" sandbox is ready 16:20:58 rudybot: eval (if (> 1 2) 3) 16:20:59 eli: error: reference to an identifier before its definition: if in module: 'page 16:21:04 rudybot: eval (if (> 1 2) 3 4) 16:21:05 eli: error: reference to an identifier before its definition: if in module: 'page 16:21:28 rudybot: describe if 16:21:29 eli: eh? Try "rudybot: help". 16:21:35 rudybot: help 16:21:35 eli: help [], version, quote, source, seen , uptime, init [], eval ..., give ..., apropos ..., desc , doc , later "tell" ... 16:21:43 rudybot: desc if 16:21:44 eli: `if' is a bound identifier, defined in "page" required directly 16:21:58 rudybot: eval if 16:21:59 eli: error: reference to an identifier before its definition: if in module: 'page 16:22:28 rudybot: eval chandlers-if 16:22:28 eli: error: eval:1:0: chandlers-if: bad syntax in: chandlers-if 16:22:41 rudybot: eval (chandlers-if (> 1 2) 3) 16:22:42 eli: ; Value: NIL 16:23:52 rudybot: init http://tmp.barzilay.org/x.ss 16:23:54 eli: your "http://tmp.barzilay.org/x.ss" sandbox is ready 16:23:58 rudybot: eval + 16:23:58 eli: ; Value: # 16:24:06 rudybot: eval if 16:24:07 eli: error: reference to an identifier before its definition: if in module: 'page 16:24:15 rudybot: eval (if 1 2 3) 16:24:15 eli: error: reference to an identifier before its definition: if in module: 'page 16:26:00 eli why don't you do this in PM? 16:26:05 it's kind of spammy 16:30:44 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 16:31:01 What is wrong with this procedure definition?: http://pastebin.com/dfde0bc0 16:31:58 rouslan: th einernal define should be SET! instead, or even better just write (+ x 1) instead of both 16:32:22 instead of both ..setting x and returning the new value 16:36:14 yeah that's some seriously bad juju rouslan. Why don't you just use (+ x 1) without any define? 16:36:30 'juju'? 16:37:27 soupdragon: So I cannot define a value within an another definition? 16:38:02 -!- jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 16:38:09 rouslan: You can actually 16:38:18 sepult [n=user@xdsl-87-78-168-5.netcologne.de] has joined #scheme 16:38:34 if it wasn't clear, what I was suggesting was: 16:38:50 ((>= x 0) (set! x (+ x 1)) x)) 16:38:53 or even better 16:38:59 ((>= x 0) (+ x 1)) 16:39:01 http://pastebin.com/m76094a35 16:39:14 is it clear? SET! works differently than DEFINE 16:39:16 Don't use set! either. That's messy. 16:39:20 Yeah. 16:39:26 Ok, thanks. 16:39:36 synx: Yeah I've pointed out several times that SET! is redundant here :p 16:39:53 well that's true enough 16:40:14 I would use let anyway, not set! 16:40:29 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 104 (Connection reset by peer)] 16:40:31 ((>= x 0) (let ((x (+ x 1))) x)) 16:40:52 chandler: The above should have worked fine, but there's some weird bug that leads to the confusing error about `if' not being defined. 16:41:17 chandler: (This is re your mention of evaluating code from a paste) 16:43:22 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 16:45:43 hmm 16:51:49 kuribas [i=kristof@d54C434F4.access.telenet.be] has joined #scheme 16:52:51 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit ["Leaving..."] 16:57:17 -!- Hydr4 [n=Lernaean@24-107-112-153.dhcp.stls.mo.charter.com] has quit [Operation timed out] 16:57:18 rudybot: eval (+ 1 2) 16:57:19 synx: error: make-evaluator: expecting a single `module' program; got more than a single expression 16:57:56 rudybot: eval (quit) 16:57:57 synx: error: make-evaluator: expecting a single `module' program; got more than a single expression 16:58:34 rudybot: init 16:58:35 synx: error: make-evaluator: expecting a single `module' program; got more than a single expression 16:59:55 I think I accidentally rudybot. 17:04:41 dharmatech, sorry, scmutils is not likely to happen on Scheme48 (and Scheme48 is too slow for that to be very useful, anyway). There's another Scheme implementation to which a port is more likely, but that won't happen for a while. 17:06:07 (What's with all these `sls', `sps', `slp', `spl', `ss' file names? Was there something wrong with `scm'?) 17:07:15 repror___ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 17:07:37 chandler, I'm around, and my opinion is tha the code ought to expand to (LET ((LIT 42)) (DISPLAY (LIST 'A 'B 'C))). 17:08:05 chandler, oops, sorry: you need to export LIT in order for that to work. As it is, the invocation of FOO is a syntax error. 17:08:21 elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has joined #scheme 17:08:38 chandler, actually, on second thought, no, you don't need to export LIT. 17:08:40 Heya, Schemefolk! 17:08:44 Mornin' Riastradh. 17:08:48 Or, Eve'n even. 17:09:27 I wonder what to call my binary-extractor-generator. 17:09:37 define-extractor, hm... 17:09:46 Riastradh: haven't you heard-- .scm is now the universal extension for files under source code management; wouldn't want a conflict 17:10:01 .ss ;) 17:10:48 sps is for R6 programs, sls is R6 libraries 17:11:43 :P God, I feel like I'm back in the world of Windows. 17:11:44 but that never even made it to the final R6RS 17:11:50 Back when .cpp and such... 17:11:51 Why is there a distinction, leppie? What useful information does changing the extension provide? 17:11:54 -!- jewel_ [n=jewel@dsl-242-129-65.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 17:11:58 leppie: L is for the way you look at me 17:12:23 mrsolo [n=mrsolo@nat/yahoo/x-13c2e0821c57a45d] has joined #scheme 17:12:27 Riastradh: nothing 17:12:53 i just use .ss mostly 17:13:35 one can do "find -name '*.sls'"... in stead of "parsing" every .scm file? 17:14:09 For what purpose, sladegen? 17:14:13 Guys, is there a way I can generate a symbol that I could use for say, a function? 17:14:14 say, 17:14:25 make- + = make-whatever 17:14:25 ? 17:14:50 Riastradh: for the purpose of finding files having certain desired content... 17:14:54 You can construct symbols in programs using the STRING->SYMBOL procedure, but I'm guessing that that's not actually what you want, elderK. 17:15:01 -!- lisppaste [n=lisppast@common-lisp.net] has quit [Remote closed the connection] 17:15:01 -!- specbot [n=specbot@common-lisp.net] has quit [Remote closed the connection] 17:15:02 agreed. 17:15:42 If you want a macro that generates and binds names in its output that did not occur in its input, well, whether you can do that depends on what macro system you are using. SYNTAX-RULES, for example, as specified in the R5RS, cannot do that. 17:16:03 elderK: syntax-case (remember what I said, hehe) 17:17:07 elderK: If this is for chicken, use explicit renaming macros 17:17:36 aye. 17:18:31 Riastradh: i'd say having non .scm extension for scheme48 config-lang files would be nice(tm), too, since config-lang is not scheme sctrictly speaking anyway. 17:20:49 leppie: can I pm you my little extractor prototype? 17:21:21 -!- exexex [n=chatzill@85.96.117.251] has quit [Remote closed the connection] 17:21:35 exexex [n=chatzill@85.96.117.251] has joined #scheme 17:21:43 Riastradh: i'm a bit confused, shouldn't implicit phasing still handle that example? given the explicit for expand 17:21:58 dysinger [n=tim@71.20.231.3] has joined #scheme 17:22:14 elderK: ok 17:22:41 Um, I closed the window, and now lisppaste is gone, so I can't see the code to see what you're talking about. 17:22:47 In any case, implicit phasing is a serious design bug. 17:24:34 -!- minion [n=minion@common-lisp.net] has quit [Remote closed the connection] 17:25:25 dudleyf [n=dudleyf@ip70-178-212-238.ks.ks.cox.net] has joined #scheme 17:29:14 Quadrescence [n=quad@unaffiliated/quadrescence] has joined #scheme 17:29:36 lisppaste [n=lisppast@common-lisp.net] has joined #scheme 17:31:10 minion [n=minion@common-lisp.net] has joined #scheme 17:31:17 specbot [n=specbot@common-lisp.net] has joined #scheme 17:31:27 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Read error: 113 (No route to host)] 17:34:58 Ah, lisppaste is back now. 17:35:14 leppie, so what do you mean by `shouldn't implicit phasing handle that example'? 17:35:30 X-Scale [i=email@89.180.147.20] has joined #scheme 17:37:06 meaning it should not complain about invalid syntax due to shadowing of the 'lit' identifier 17:37:21 What does implicit phasing have to do with that? 17:37:26 given the 'explicit' (for ... expand) 17:38:49 -!- dysinger_ [n=tim@71.20.231.3] has quit [Read error: 110 (Connection timed out)] 17:38:50 oh, I thought that was due to implicit phasing, so it's just a bug if psyntax gives a syntax error on that? 17:39:08 What syntax error does it give? 17:40:07 "invalid syntax", it cant match 'lit' with free-identifier=? 17:40:56 Why not? 17:41:08 -!- xwl [n=user@62.237.32.162] has quit [Remote closed the connection] 17:41:21 LIT should have no binding in either environment -- that of the definition of FOO and that of the use of FOO --, so that the two instances should compare true under FREE-IDENTIFIER=?. 17:44:09 -!- kuribas [i=kristof@d54C434F4.access.telenet.be] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 17:45:02 ok, that makes sense 17:45:09 so it's a bug 17:45:34 Riastradh annotated #82488 "Scheme48 analogue -- displays (A B C), as expected" at http://paste.lisp.org/display/82488#2 17:46:29 Whoops, missed QUOTE as an auxiliary name. 17:47:11 Oh well; doesn't really matter practically for this purpose. 17:54:20 copumpkin [n=pumpkin@dhcp-210-125.cs.dartmouth.edu] has joined #scheme 17:57:15 melgray [n=melgray@70.99.250.82] has joined #scheme 17:58:32 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 18:02:44 leppie annotated #82488 "simplified, whats the expected result?" at http://paste.lisp.org/display/82488#3 18:04:02 Riastradh: should that paste work? 18:04:33 xwl [n=user@62.237.32.162] has joined #scheme 18:13:11 nvm, it should not run 18:14:34 In the last paste, the invocation (FOO LIT) should fail on reference to an undefined variable, either FOO or LIT. 18:15:08 yeah, I see there is a noted bug in Ikarus 18:15:26 Noted bug in Ikarus about what? 18:15:55 why it was working for a slightly different case than what I pasted 18:16:03 on Ikarus 18:22:10 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 18:23:47 -!- xwl [n=user@62.237.32.162] has quit [Remote closed the connection] 18:25:46 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [] 18:27:22 -!- metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has quit ["If you reach back in your memory, a little bell might ring, 'bout a time that once existed when money wasn't king."] 18:29:23 gnomon_ [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 18:33:23 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 104 (Connection reset by peer)] 18:33:45 -!- gnomon_ is now known as gnomon 18:38:26 dcat [n=dirtycat@ip70-188-17-240.rn.hr.cox.net] has joined #scheme 18:38:30 -!- copumpkin [n=pumpkin@dhcp-210-125.cs.dartmouth.edu] has quit [] 18:39:50 -!- sepult [n=user@xdsl-87-78-168-5.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 18:51:02 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 18:51:14 jao [n=jao@94.Red-88-6-161.staticIP.rima-tde.net] has joined #scheme 18:55:53 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [Connection timed out] 18:56:01 mgodshall [n=mgodshal@pool-71-173-175-194.hrbgpa.east.verizon.net] has joined #scheme 18:58:22 mmc [n=mima@cs162149.pp.htv.fi] has joined #scheme 19:02:06 copumpkin [n=pumpkin@dhcp-210-125.cs.dartmouth.edu] has joined #scheme 19:05:47 gnomon_ [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 19:09:19 -!- copumpkin [n=pumpkin@dhcp-210-125.cs.dartmouth.edu] has quit [] 19:09:27 -!- Nshag [i=user@Mix-Orleans-106-2-114.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 19:10:15 Nshag [i=user@Mix-Orleans-106-2-81.w193-248.abo.wanadoo.fr] has joined #scheme 19:11:16 Kusanagi [n=Lernaean@24-107-112-153.dhcp.stls.mo.charter.com] has joined #scheme 19:11:28 So, using plt the following scheme program takes 22 megabytes of memory. 19:11:28 https://synx.us.to/code/scheme/cgitest.ss 19:12:14 -!- joast [n=rick@76.178.184.231] has quit [Read error: 110 (Connection timed out)] 19:12:15 I don't see what's taking up 22 megabytes though. I use maybe 30 bytes myself. 19:14:02 xwl [n=user@62.237.32.162] has joined #scheme 19:14:19 joast [n=rick@76.178.184.231] has joined #scheme 19:14:19 That means 99.9999% of that memory is unaccounted for. 19:14:46 do you lack memory synx? 19:14:48 I could understand a 4K buffer here and there, but how do I get 22 megabytes? 19:15:33 leppie: Well, consider the scenario where someone clicks refresh on that CGI 100 times. 19:16:09 synx, what does the profiler say? 19:16:14 what the execution time? 19:16:25 heck refreshing 20 times is enough to freeze my computer. 19:16:36 profiler? ._. 19:16:42 leppie: about 60 seconds 19:17:57 When you say `uses 22 megabytes of memory', synx, what do you mean exactly? Do you mean that the mzscheme process reserves 22 MB of virtual address space, or that you observe it actually occupying 22 MB of physical RAM of which it thereby starves other processes? 19:18:00 (sleep 60) 19:18:11 lol @ 60 seconds :) 19:19:22 Riastradh: 22MB of RAM. It reserves 37MB of virtual address space. 19:19:26 leppie: hehe 19:20:47 IronScheme uses about 22MB for just strating the REPL, with R6RS libraries loaded 19:21:49 synx, the source of that program leads me to believe that you're starting up a new instance of mzscheme for every HTTP request. Is that true? 19:22:06 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Nick collision from services.] 19:22:08 -!- gnomon_ is now known as gnomon 19:22:31 gnomon: That would be correct. 19:22:52 Yeah I know leppie I just don't understand it. 19:22:57 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 19:23:25 (define (p) (p)) defines a procedure which only returns itself, which in turn returns itself, etc., right? 19:23:33 Calls, not returns. 19:23:44 synx, good god, man. Ever heard of threads? 19:23:52 Riastradh: Thanks. 19:24:11 -!- Deformative [n=joe@c-71-238-44-239.hsd1.mi.comcast.net] has quit [Read error: 110 (Connection timed out)] 19:24:12 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 104 (Connection reset by peer)] 19:24:39 Goodnight guys! 19:24:42 Thanks for all your help! 19:24:51 ;) Rock on! Keep the spirit alive! :P 19:24:58 gnomon: CGI kind of requires that you keep 1 process for each session. That's why I don't use it usually. 19:25:13 -!- elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has quit [] 19:25:20 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 19:25:33 But I think it should be possible to make a lightweight scheme process, if you're only doing simple stuff. 19:25:37 Riastradh: What would this be called? Infinite recursion? 19:26:14 synx, sure, it's possible to make a tiny scheme system that starts up in no time and consumes no memory - see foof's Chibi, for example. 19:26:37 When 99.9999% of the memory is considered "overhead costs" I wonder if I'm not just doing something wrong. 19:26:50 So it's impossible to do that in plt? 19:26:52 synx: cant you compile the script and just call the executable? 19:27:26 or maybe there is a compilation caching option 19:27:31 rouslan: yes, infinite recursion. Infinite tail recursion to be specific, which is just an infinite loop. 19:27:32 leppie: That doesn't take any less memory. 19:27:34 synx, but isn't it better to figure out how to use a system that will give you all the nifty tools of a full-size scheme distribution in a way that also uses less RAM and CPU time than CGI, especially since the marginal effort required is pretty low? 19:27:37 well 19:27:41 let me qualify that. 19:27:52 jewel_ [n=jewel@dsl-242-129-65.telkomadsl.co.za] has joined #scheme 19:29:13 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 104 (Connection reset by peer)] 19:29:14 gnomon: I already run about 4 web servers just for this 1 website, so yes it's usually better. I just wonder why that 22 megabytes is necessary, making it unfeasible to write CGI scripts with plt. 19:30:27 just like a hammer does not work on screws 19:30:31 leppie: compiling to an executable in plt makes that test script use 37MB of RAM 19:30:52 synx, and the point I'm trying to make is that you're using PLT in a way that plays away from its strength - that of being a very full featured, quite fast Scheme implementation - and hits on a significant weakness - startup time and memory overhead - while emphasizing that these drawbacks are in place because PLT was not meant to be used in the way you're using it. 19:31:15 When I write a C program for instance, it doesn't allocate 22 megabytes of memory on startup to prepare for if I may want to use GTK. 19:31:34 If you've already got to the point of measuring memory use, writing a reduced test case, and attempting static compilation... why not also put in a little bit more effort and try doing things The Right Way(tm), too? 19:31:35 It just does what I tell it to do, and I have to specify if I want the bells and whistles. 19:31:39 no, but C does not have a JIT either 19:32:05 synx, that's possibly true, but think of all the dynamic libraries your C program relies upon that are already assumed to be loaded in RAM. 19:32:19 So a JIT compiler eats up a lot of memory? 19:32:23 Now give your PLT program that same advantage by loading *its* requirements and see how they compare. 19:32:28 Oh, for pity's sake. 19:32:56 gnomon: Those are counted in the memory used I think, if you have static linkage. 19:33:20 Fare [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 19:33:32 Well, does PLT try to reuse physical memory for dynamically loaded libraries as your operating system will for C programs? 19:33:41 And does one, in normal use cases, statically link executables when one is planning to use them as CGI programs, a context where startup time is a significant problem? 19:34:07 Sorry, I meant dynamically linked libraries. 19:34:29 Uh, I dunno really. Static linking doesn't increase startup time. 19:34:45 Static linking doesn't increase startup time but it generally does increase memory use. 19:34:55 synx, do you acknowledge that loading a larger program from disk takes some finite amount of time? 19:34:57 Riastradh: Can't it tell the operating system to do all that memory management? 19:35:13 synx: it may if you use plenty of different executables, each statically linked, increasing memory pressure 19:35:21 Do you also acknowledge that most disk buffers are of a finite size, such that it is worthwhile considering that larger programs blow out the disk cache faster than smaller programs? 19:36:15 Riastradh: only if you're statically linking libraries used between processes. 19:36:43 yes gnomon 19:38:09 heck if I were doing it I'd have plt take advantage of dynamic linking to keep common code in memory between processes, might indeed be good for CGI programs... 19:38:29 -!- Nshag [i=user@Mix-Orleans-106-2-81.w193-248.abo.wanadoo.fr] has quit [Remote closed the connection] 19:38:36 shared memory is pretty accessible at the very least. 19:38:55 synx, and you've read over http://docs.plt-scheme.org/web-server-internal/index.html ? 19:39:20 Still doesn't explain why I need 22 megabytes just to parse a QUERY_STRING and output some formatted text. 19:40:15 Yes I use that gnomon. 19:41:07 *Fare* looks for a trie implementation on PLaneT and finds one by jay. Yay! 19:43:03 shagou [i=user@Mix-Orleans-106-1-179.w193-248.abo.wanadoo.fr] has joined #scheme 19:44:48 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 19:45:02 gnomon_ [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 19:45:14 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 19:46:06 synx: Besides jit, a small C program does not have threads, tcp, and lots of other things. 19:46:31 TCP? 19:46:34 synx: Also, try to use `scheme/base' as your language. `scheme' is a language that has (and therefore loads) a lot of stuff. 19:46:41 "network support". 19:46:52 I sure hope that PLT Scheme takes advantage of the operating system's TCP/IP stack and doesn't reimplement its own! 19:46:58 Right, and I cannot omit those things in plt. 19:47:08 I did use scheme/base 19:47:42 mzscheme just loads scheme anyway, so scheme/base isn't really that effective... 19:48:03 Riastradh: Yeah, but the cost of having a high level interface to system's low level interface is not free. 19:48:21 What does the high-level interface add, beyond superfluous protocol-dependence? 19:48:21 synx: No, `mzscheme ' does not load `scheme', if the file doesn't. 19:48:54 The ability to start a server in one line. 19:48:59 eli: I want to create an in-core representation of the filesystem structure, so as to not have to deal with repeated syscalls and have to deal with things moving under me (damn OS filesystem interface isn't transactional) 19:49:02 It loads scheme/init, which is close enough. 19:49:23 eli: are there already packages / datastructures to represent filesystem hierarchies? 19:49:24 I try mzscheme -n, but that doesn't seem to work for #! notation... 19:49:49 synx: Like I said, it does not, `mzscheme ' does *not* load `scheme' (or `scheme/init'). 19:50:06 Fare: Have you considered using a relational database? 19:50:15 Surely there's much more to it than that, eli. In a reasonable Scheme rendition of the BSD sockets API, starting a server takes maybe four or five lines (bind, listen, accept, loop). 19:50:18 Fare: You mean a tree? As in, a list of lists? 19:50:27 Are you sure eli? Because I was sure if you didn't specify that it would. 19:50:32 eli, heh. I see what you did there 19:50:42 eli: probably a trie of files 19:50:57 2. Require `(lib "")' <-- in "mzscheme --help" 19:51:11 synx: yes, but I don't want to rewrite ALL the applications that currently use the filesystem instead. 19:51:39 synx: Yes, I'm sure. It loads `scheme/init' only when you start it with no arguments so it runs a repl. 19:51:50 plus I have reasons to doubt the maintainability of GCing and shrinking a 200GB relational database. 19:52:14 eli: It says Require `(lib "")' [when -i/-e/-f/-r, unless -n] 19:52:17 Not just -i 19:53:47 Riastradh: Please to demonstrate. Make sure to have the rest of the functionality in plt -- including non-blocking io, cml events, a one-line client to go with the one-line server, and finally, don't forget to verify that it runs the same on Windows, OSX, Linux, BSD, and Solaris. 19:54:19 When I do say (mzscheme -n -t something.ss) it uses a lot less memory than (mzscheme something.ss) 19:54:44 Fare: I usually use a trie-like thing, using the path parts. 19:55:00 gnomon_: What I did where? 19:55:25 only for trivial cases of course. 19:55:59 eli, OK -- I won't claim that supporting Windows is easy. When you said `network support', I assumed you meant just the parts of the system that deal with networking, not the rest of the I/O and thread and rendezvous systems. 19:56:42 synx: See the bottom too lines: "If only configuration options are before the first argument, -u is added" -- so if there is a file argument, it does not add `-i', therefore no repl is loaded. 19:57:30 I didn't say a repl was loaded, just scheme/init 19:58:10 Riastradh: Well, in this context I addressed synx's point that a C program doesn't start with 22mb. I could perhaps more effectively just pointed at "...plt/src/mzscheme/src/network.c" and say "a small C program doesn't have all *that*". 19:59:18 Well, regardless of what it provides I certainly will have to use something else for CGI 19:59:34 synx: `-i' means "start a repl", no `-i' => no repl. `-n' disables loading the initial library only when a repl is used. No repl => `-n' is doing nothing. 20:00:09 synx: Besides, having four web-servers for a single web site most likely mean that you should revise your design. 20:00:34 Unless that web site is cnn.com or google.com or something. 20:01:17 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Read error: 110 (Connection timed out)] 20:01:22 Why do you insist on using CGI, synx? 20:02:01 *Fare* looks at jay's trie library and tries to figure out if it's applicable. Looks like http://planet.plt-scheme.org/package-source/jaymccarthy/trie.plt/1/0/string.ss has what I need. Now for me to understand how to use the unit system... 20:02:06 Well one web server is apache, using mod_proxy to the others. Another web server runs an application to upload files. A the third web server runs the image gallery I've been working on. And the fourth one just redirects all http -> https 20:02:17 -!- socialite [n=piespy@dynamic-78-8-240-63.ssp.dialog.net.pl] has quit [Read error: 110 (Connection timed out)] 20:02:37 Riastradh: Some web servers / hosting providers only allow CGI 20:03:27 yeah, units are something that confuse me too... 20:05:18 eli: ping 20:10:17 vgeddes [n=vgeddes@dsl-245-138-21.telkomadsl.co.za] has joined #scheme 20:10:24 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 20:10:28 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 20:10:42 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 20:11:56 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 20:13:32 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [Client Quit] 20:16:40 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 110 (Connection timed out)] 20:19:14 *Fare* is looking for a 2nd lightning talker next monday at the BLM http://fare.livejournal.com/144600.html 20:20:12 eli: any food preferences for Monday? 20:24:21 -!- ikaros [n=ikaros@f050246053.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 20:24:43 Fare: What -- I get to choose the food for everyone? In that case, very large pieces of dead animals prepared over open fire. 20:25:47 no open fire 20:25:52 Oh, and dry beans and little pieces of sticks for the vegetarians. 20:25:55 but dead animal can be 20:26:26 How about "live animals, freshly killed"? 20:27:05 OK if you do the killing and gutting just before the talk 20:27:16 http://www.flickr.com/photos/passiveaggressive/3642661392/sizes/o/ 20:27:16 Fare: But seriously -- no, I have no preference at all... 20:27:21 chandler: pong, btw. 20:27:22 eli, that's funny - for some reason I thought you were a vegetable. 20:27:30 Er, a vegetarian. 20:27:35 arf 20:27:52 eli is a big vegetable that has achieved sentience! 20:28:05 chandler: :) 20:28:22 gnomon_: No, I'm neither a vegetarian, nor a vegetable. 20:28:49 gnomon_: But I live with one... 20:28:57 eli: I'm not sure if you saw it, but I wanted to get your opinion on http://paste.lisp.org/display/82488 . 20:29:02 you live with a vegetable? 20:29:02 lol carnivores need an obesity support group 20:29:17 gnomon_: Identifying us carnivores-married-to-vegetarians is easy: we always eat meat when we go out. 20:29:50 Fare: Actually, I live with a vegetarian *and* lots of vegetables... 20:29:52 eli - solidarity, sir! 20:30:08 It's hard not to eat meat when you go out. All the meals are meat themed. 20:30:11 :) 20:30:20 *gnomon_* profers the carnivores-living-with-vegetarians gang sign 20:30:47 Actually, it's gone to a level that I'm surprised every time I see a female who *does* eat meat. 20:30:48 "I'm not a vegetarian because I love animals. I'm a vegetarian because I *hate* vegetables." 20:30:49 wingo [n=wingo@188.Red-83-44-189.dynamicIP.rima-tde.net] has joined #scheme 20:31:35 chandler: doing a keyword match over an undefined keyword is tricky. 20:32:01 evening, folks 20:32:05 chandler: This is how mzscheme used to deal with `else' etc (and `...', and `=>') but it doesn't work well. 20:32:12 I'd like to go somewhere and order a nice big steaming bowl of fresh veggies, maybe a plate of pasta, garlic bread, and they ask me what meats and I'll just say "surprise me." 20:32:55 eli, small variation, then: add (DEFINE LIT) to the (MY-SYNTAX) library and export LIT. 20:33:01 synx: In such cases you should verify that the waiter has the same number of limbs when your food is served. 20:33:09 chandler: So the solution is to have them all bound, which means that you can rename them etc as usual. 20:33:15 mmm... long pork... 20:33:30 chandler: And they're all defined as syntaxes that throw errors when used: 20:33:34 rudybot: init scheme 20:33:35 eli: your scheme sandbox is ready 20:33:38 rudybot: eval else 20:33:39 eli: error: eval:1:0: else: not allowed as an expression in: else 20:33:50 Riastradh: That isn't quite enough, because the binding of lit in the top-level program *still* won't be shadowing anything. 20:34:21 chandler, isn't quite enough for what? The object of adding a binding of LIT in the (MY-SYNTAX) library is to avoid matching unbound literals. 20:34:26 Riastradh: Adding a definition that is not provided is probably only making sure that it will never match. 20:34:51 eli, sorry, what do you mean `adding a definition that is not provided'? 20:35:06 Do you mean `provide' in the PLT module sense, i.e. `export' in the R6RS library sense? 20:35:38 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Read error: 104 (Connection reset by peer)] 20:36:03 Riastradh: Yes; addding (define lit), but not making `lit' available outside. 20:36:17 That's why I said `add (DEFINE LIT)...and export LIT.' 20:36:18 Perhaps you can explain to me why matching unbound literals is difficult, though I'm not sure what difference making a binding of 'lit' available in the expansion phase of the top-level program changes when discussing whether a lexical binding of 'lit' in the runtime phase of the program shadows anything. 20:37:34 chandler pasted "with a binding for lit" at http://paste.lisp.org/display/82511 20:37:48 chandler annotated #82511 "top-level program" at http://paste.lisp.org/display/82511#1 20:37:53 Riastradh: I missed the "...and" part. 20:38:06 *Riastradh* blinks. 20:38:09 When: <Doc Brown>From the future...</Doc Brown> 20:38:28 Hm. Two bugs. 20:38:30 Never seen that before at lisppaste. 20:39:32 By the way, I have now completely forgotten the question surrounding this code. 20:40:00 Is it `What should this code do?', or `Why does PLT exhibit some semantics?' (what does PLT do, anyway?), or `Why does Ikarus exhibit this semantics?', or something else? 20:40:00 chandler: As for the difference in behavior, Matthew said: 20:40:38 (slightly edited) "Local bindings shadow all levels, at least in plt. R6RS doesn't seem to say anything explicit on this point." 20:40:50 Riastradh: `What should this code do?'. 20:41:01 Why do local bindings shadow all levels? 20:42:48 -!- gnomon_ is now known as gnomon 20:43:36 Why doesn't R6RS say anything explicit on this point? 20:43:48 chandler, OK. Do you know what it does in Ikarus and PLT? (I don't -- I don't have either one handy to test. I do know that the analogous program in Scheme48 does what I expect -- it prints (A B C).) 20:44:27 It is a syntax error in PLT. I haven't tried Ikarus, because the last release is ancient and I don't have the correct tool installed to check out the current source. 20:44:45 -!- rmorris [n=user@209.120.179.205] has quit [Remote closed the connection] 20:44:46 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 54 (Connection reset by peer)] 20:45:13 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 20:45:30 Larceny 0.97b displays an inscrutable error and leaks a psyntax gensym's printed representation in the error. 20:45:43 Whoops, no, not for that program. That was a different test. 20:45:47 Is it specifically a syntax error in the invocation of FOO, or a syntax error in the invocation of Z? 20:45:51 (I'm guessing FOO.) 20:46:06 It's a syntax error in the invocation of FOO. 20:46:15 OK. 20:48:19 paste.lisp.org not responding for me. 20:50:52 It should be working now. 20:54:14 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Remote closed the connection] 20:54:26 As near as I can determine from section 7.2 ( http://www.r6rs.org/final/html/r6rs/r6rs-Z-H-10.html#node_sec_7.2 ), the level of an identifier determines when it is allowable to reference that identifier, but does not distinguish references to bindings of that identifier at multiple levels. 20:55:39 Well, in the R6RS, names may not have distinct bindings at distinct levels. I don't remember whether this applies only to top-level bindings or to any bindings, though. 20:57:52 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 20:58:09 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 20:58:48 ejs [n=eugen@206-249-124-91.pool.ukrtel.net] has joined #scheme 20:59:43 -!- gfb [i=4c455486@gateway/web/freenode/x-a57f75ad8b004f12] has quit [Ping timeout: 180 seconds] 21:00:15 OK. I am close to believing that these semantics are broken, and not particularly well-specified either. 21:01:27 The semantics of the R6RS and the semantics of Ikarus are certainly broken. 21:01:59 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 21:02:00 -!- langmartin [n=user@exeuntcha.tva.gov] has quit [Client Quit] 21:02:06 I think the only bug in Scheme48 is that `...' is not treated hygienically. 21:03:06 (I mean the only bug related to this in Scheme48, of course.) 21:03:22 Yes, I understood what you meant. 21:03:51 (...and that there is no way to generate ellipsis in Scheme48's SYNTAX-RULES.) 21:04:43 As far as I can determine, there is no way of lexically binding an identifier so that a reference to it is valid in the expansion environment, at least not in R6RS. 21:04:59 Of course not. What would that mean? 21:06:00 Hm? The right-hand side would be evaluated in the expansion phase, and the binding could be referred to on the right-hand side of any enclosed LET(REC)-SYNTAX forms. 21:06:03 -!- ejs [n=eugen@206-249-124-91.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 21:06:17 levy [n=levy@apn-94-44-11-86.vodafone.hu] has joined #scheme 21:06:57 Huh? Let me confirm that I understand you correctly. Are you talking about, in (LET ((X )) (LET-SYNTAX ((Y )) [body])), referring to X inside ? 21:07:37 -!- dudleyf [n=dudleyf@ip70-178-212-238.ks.ks.cox.net] has quit [Remote closed the connection] 21:08:10 Not LET, but an analogue that worked in the expansion phase: (expansion-let ((x )) (let-syntax ((y )) ...)), where refers to the binding established by `expansion-let'. 21:08:22 Ahhh, OK. 21:08:31 fabse [n=myfabse@wikipedia/Track-n-Field] has joined #scheme 21:08:44 Perhaps I'm missing something, but I can't for the life of me figure out how to implement this using R6RS syntax-case. 21:08:46 Yes, there is no EXPANSION-LET in Scheme48 or the R6RS, and I am not aware of any in PLT, although there may be. 21:08:59 And I don't think it is definable in Scheme48 or the R6RS. 21:12:25 I believe I understand the rationale for the PLT/Ikraus(/R6RS, if it really speaks to this issue) semantics. It comes down to a question of whether phase separation or lexical hygiene takes precedence in these cases. 21:14:22 I don't think there is any merit to letting lexical hygiene take precedence over phase separation. 21:14:42 -!- vgeddes [n=vgeddes@dsl-245-138-21.telkomadsl.co.za] has left #scheme 21:15:16 saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has joined #scheme 21:16:45 -!- dzhus [n=sphinx@93-80-204-198.broadband.corbina.ru] has quit [Remote closed the connection] 21:16:46 I'm not sure I'm willing to make that statement quite yet, but it does seem to me that complete phase separation has not been achieved with these semantics. 21:17:40 s/letting lexical hygiene take precedence over // ... 21:18:30 That is nonsense, wingo. Failing to separate phases is an abject design mistake. 21:18:33 That statement is assuredly wrong, wingo. I can't see why you'd want to do without phase separation entirely. 21:18:44 *wingo* just trolling :) 21:20:10 I think that in the R6RS, your program is a syntax error. 21:20:56 However, the wording is slightly loose. 21:21:53 That seems likely to me, but a few minutes of reading the semantics of phases in 7.2 left me with no understanding and a strong annoyance with the author(s) for not clearly distinguishing between exported top-level bindings and lexical bindings. 21:22:26 In the R6RS, Section 7.2 `Import and export levels', p. 26, the third paragraph reads: `The level for each identifier bound by a definition within a library is 0; that is, the identifier can be referenced only at phase 0 within the library.' I suspect that `definition' here was intended to apply to any binding, not just top-level definitions. 21:22:32 Yes... 21:25:21 I'm not sure whether they mean that the reference is a syntax violation UNLESS it is a reference to a binding at phase 0, or if the identifier does not reference that binding at all. 21:25:27 One irksome consequence of this nonsense about the requirement of one denotation per name per library, over all phases, is that merely importing a library at syntax-time reduces the set of names fit for use as local variables in your library. 21:25:55 Erk. So you can't lexically shadow one of those bindings? 21:26:15 -!- fabse [n=myfabse@wikipedia/Track-n-Field] has quit [] 21:26:17 If that's the case, then I'm confident that these semantics are flat wrong. 21:26:37 I think so. 21:26:51 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 21:26:53 I'm trying to find the language that says that a name can have one denotation per library, over all phases. 21:27:24 (I doubt whether anyone actually implements that restriction, though.) 21:28:28 -!- dcat [n=dirtycat@ip70-188-17-240.rn.hr.cox.net] has left #scheme 21:28:36 -!- saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has quit ["This computer has gone to sleep"] 21:30:26 saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has joined #scheme 21:32:56 Certainly the Ikarus folks believe it. Quoth Ghuolom, in `Implicit phasing for R6RS libraries', Section 4.1 `Phase of local identifiers': For example, the following code cannot be compiled because a reference to the run time variable X is referenced at expansion time, when the LAMBDA expression is evaluated: 21:33:08 (let ((x 5)) (define-syntax f (lambda (y) (+ x y))) (display (* x (f 3)))) 21:33:24 s/Ikarus/Indiana/1 21:34:16 -!- saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has quit [Client Quit] 21:36:11 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 21:36:40 That example doesn't seem valid to me in any implementation. To what binding does the reference to `x' in the lambda occur? 21:37:53 Well, I think it ought to refer to whatever binding of X was imported at syntax-time. 21:38:06 But the Indiana folks say that it cannot be compiled. 21:38:48 ...precisely because the name X on the right-hand side of the syntax definition is a reference to the run-time variable by that name. 21:39:59 Riastradh: In the documentation of foof-loop you mention a dylan-like collection iteration document. Is that available anywhere? 21:40:33 Right. I believe I understand the thinking behind this, but I believe it naturally follows that there should be some way to introduce a binding that can be referenced at the expansion phase. 21:40:47 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 21:41:10 Why does that naturally follow? 21:41:22 ecraven, document? No, I never wrote a document about it, beyond a little bit of experimental code. 21:43:07 Riastradh: Ah, I thought it might be more. Is that bit of experimental code available? 21:43:20 I'm interested in all things Dylan (and EuLisp) lately 21:43:43 21:43:53 Thank you 21:44:18 I don't know whether it still works with the latest version of foof-loop. 21:44:36 -!- bombshelter13_ [n=bombshel@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has quit [] 21:45:06 If there is a binding form that shadows bindings visible at higher phases, then it seems natural to me that there should be a binding form available which shadows bindings visible at lower phases. Currently, it's asymmetrical. 21:45:28 segoe [i=3e164621@gateway/web/freenode/x-290fe4c759ea753b] has joined #scheme 21:45:29 hi 21:45:47 In other words, the corresponding version of this fragment is (expander-let ((x 5)) (define-syntax f (lambda (y) (+ x y))) (display (* x (f 3)))) 21:46:15 ... which is a syntax error because the binding of 'x' referred to in (* x (f 3)) is at the wrong phase. 21:46:59 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 21:47:14 Well, why is that any more natural than just that there ought to be LET-like bindings forms for every level? 21:47:36 I don't understand your question. 21:47:59 If you're asking if there should be meta versions of LET(REC) and LET(REC)-SYNTAX, I'd answer "yes". 21:48:03 Why not just have (PHASED-LET )? 21:48:21 Yes. I was just using EXPANDER-LET as a specific example. 21:48:25 (and maybe PHASED-LET{,*,REC}{,-SYNTAX}) 21:48:29 Yes. 21:50:03 fabse [n=myfabse@wikipedia/Track-n-Field] has joined #scheme 21:50:34 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 21:51:02 Oh, sorry, my question involving `more natural' was a portmanteau question. The question I intended that actually meant to ask involving `more natural' is: why does this PHASED-LET[...] follow naturally particularly from the Indiana camp's view, and not from, say, Scheme48's view, where phase separation takes precedence over lexical hygiene? 21:51:41 -!- xwl [n=user@62.237.32.162] has quit [Read error: 60 (Operation timed out)] 21:52:36 Hm. I'm actually not sure, now that I think about it. 21:54:13 I think it should be present regardless of whether phase separation takes precedence over lexical hygiene, but for some reason the PLT/Ikarus semantics seem specifically incomplete without it. 21:55:50 As I said earlier, in the PLT/Ikarus semantics it is possible to shrink the set of lexical bindings that can be referenced at a higher phase, but it is not possible to expand that set. In the Scheme48 semantics, that set of bindings can't be shrunk in the same way, so while it would be useful to have the ability to expand that set, it does not seem wrong not to have it. 21:56:01 -!- q[mrw] [n=russd@willers.employees.org] has quit [Remote closed the connection] 21:56:32 OK. 21:57:44 (I don't know why that happens in PLT, by the way -- PLT very emphatically does *not* do the implicit phasing nonsense of which the Indiana folks are so misguidedly fond.) 21:58:48 I think it's likely that R6RS implies these semantics, or at the very least was intended to imply these semantics. 21:59:19 I haven't the foggiest clue what the PLT language does, as I'm not fluent in it. 22:00:08 Not exactly. The R6RS was a compromise between the PLT camp and the Indiana camp, primarily, so that the Indiana folks could do implicit phasing and rule out useful language-mixing constructs that the PLT camp does all the time, and so that the PLT camp could rule out implicit phasing and usefully mix languages at different levels, while retaining a non-empty common ground for portable R6RS code. 22:00:17 Well, I do know from the behavior of shadowing `...'. 22:00:24 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 22:03:42 So why PLT lets local bindings cross phases, I don't know. 22:04:01 Riastradh: What is phasing? 22:05:31 pbusser2, when you want to run a Scheme program, you must first expand macros, and then execute their expansion. These are two separate steps, or /phases/, and they are often done at very different times, but both phases involve evaluation of Scheme programs, and consequently must be conducted in the presence of a lexical environment to supply bindings for the names in those programs. 22:05:45 I don't believe the binding actually crosses phases. The presence of the binding at phase 0 shadows any other binding established in surrounding scope at a higher level, but if the binding itself crossed phases it would be valid to refer to it in the higher phase. 22:06:15 chandler, well, the *binding* crosses phases, but you can't do anything useful with a phase-0 binding at phase-1, such as using its value. 22:07:10 I think we're arguing about terminology now, but I'd say that a binding that cannot be referred to is a sufficiently new animal as to warrant the use of different language. 22:07:15 OK. 22:07:49 The binding does exist when you evaluate phase-1 programs, though -- particularly when you process macro definitions at phase-1, because they must remember phase-0 bindings in order to refer to those bindings in the output. 22:09:19 Sorry, when I said `macro definitions at phase-1', I meant `macro definitions that require evaluating code at phase-1', such as top-level DEFINE-SYNTAX forms in library bodies. 22:10:33 I think I'd agree with that statent if "does exist" was replaced with "is reified". 22:10:42 And if "statent" was replaced with "statement". 22:10:48 Anyway, I'm going to forage for food. 22:10:56 OK. 22:11:48 Riastradh, chandler: I didn't follow all that, and I have to run now, but if there's any issue with phase separation, then it sounds bad -- so it would be nice if you post it to the list. 22:12:41 eli, summary: (let ((x 5)) (let-syntax ((foo [something involving x])) ...)) should not be an error (assuming that some module/library imported at syntax-time exports x), but apparently is in PLT. 22:14:14 Riastradh: Do you mind posting it to the list? (If not I'll bug matthew later, but it will take more time.) 22:14:18 *eli* runs away 22:15:42 copumpkin [n=pumpkin@dhcp-212-202.cs.dartmouth.edu] has joined #scheme 22:16:03 is there something like a scheme equivalent of CPAN? I nice collection of open source modules for use and reading? 22:16:29 there is the plt planet 22:16:49 look here http://planet.plt-scheme.org/ 22:17:17 you know... 22:17:47 That is PRECISELY what I was looking for! Thanks! 22:17:58 Chicken also has the Eggs unlimited thing 22:18:06 There is also Gambit's SNOW thing. 22:18:28 http://snow.iro.umontreal.ca/ 22:18:53 bsund [n=bsund@h29n2fls303o1114.telia.com] has joined #scheme 22:23:11 -!- copumpkin [n=pumpkin@dhcp-212-202.cs.dartmouth.edu] has quit [] 22:23:35 copumpkin [n=pumpkin@dhcp-212-202.cs.dartmouth.edu] has joined #scheme 22:23:44 Well, this is documented, eli, so if I sent it to the list it probably wouldn't be considered a bug. 22:24:48 chandler, in the PLT Scheme Reference Manual, Section 1.2.1 `Identifiers and Binding', the last paragraph reads: `If an identifier has a local binding, then it is the same for all phase levels, though the reference is allowed only at a particular phase level. Attempting to reference a local binding in a different phase level [from] the binding's context produces a syntax error.' 22:25:26 eli, if you're up for fixing typos: the document incorrectly says `than' where I substituted `from'. 22:26:27 What I don't understand in this is why local bindings are prohibited from having bindings at different phases, while module bindings (and top-level bindings -- whatever those are, if not module bindings) are not. 22:26:30 -!- copumpkin [n=pumpkin@dhcp-212-202.cs.dartmouth.edu] has quit [Client Quit] 22:26:53 Actually, that's not quite right either; consider 22:26:57 > (let ((x 5)) (let-syntax ((f (lambda (stx) (let ((x 3)) (datum->syntax stx x))))) (f))) 22:27:00 3 22:27:07 copumpkin [n=pumpkin@dhcp-212-202.cs.dartmouth.edu] has joined #scheme 22:27:44 So the truth is a little more complicated than what the excerpt claimed, but I still don't see why, say, local bindings at phase 0 should shadow module bindings at phase 1. 22:28:30 -!- copumpkin [n=pumpkin@dhcp-212-202.cs.dartmouth.edu] has quit [Remote closed the connection] 22:28:58 copumpkin [n=pumpkin@dhcp-212-202.cs.dartmouth.edu] has joined #scheme 22:30:21 Riastradh pasted "why does PLT let local bindings shadow module bindings at different phases?" at http://paste.lisp.org/display/82521 22:30:29 Time for me to eat, too. 22:35:59 -!- wingo [n=wingo@188.Red-83-44-189.dynamicIP.rima-tde.net] has quit [Read error: 113 (No route to host)] 22:38:04 -!- levy [n=levy@apn-94-44-11-86.vodafone.hu] has quit ["..."] 22:39:50 -!- segoe [i=3e164621@gateway/web/freenode/x-290fe4c759ea753b] has quit ["Page closed"] 22:46:14 -!- Dark-Star [n=michael@p57B569C4.dip.t-dialin.net] has quit [Read error: 104 (Connection reset by peer)] 22:50:23 Lectus [n=Frederic@189.105.43.162] has joined #scheme 22:53:02 -!- repror___ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 60 (Operation timed out)] 23:01:12 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 23:05:06 rstandy [n=rastandy@net-93-144-204-143.t2.dsl.vodafone.it] has joined #scheme 23:05:11 -!- fabse [n=myfabse@wikipedia/Track-n-Field] has quit [Connection timed out] 23:08:06 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 23:15:07 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [Read error: 60 (Operation timed out)] 23:16:27 -!- erg [n=erg@li13-154.members.linode.com] has quit [Read error: 60 (Operation timed out)] 23:16:39 erg [n=erg@li13-154.members.linode.com] has joined #scheme 23:17:04 -!- exexex [n=chatzill@85.96.117.251] has quit [Read error: 60 (Operation timed out)] 23:17:07 mornfall [n=mornfall@anna.fi.muni.cz] has joined #scheme 23:17:09 -!- melgray [n=melgray@70.99.250.82] has quit [] 23:17:41 exexex [n=chatzill@85.96.117.251] has joined #scheme 23:20:18 -!- mmc [n=mima@cs162149.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 23:21:32 -!- thesnowdog [i=thesnowd@114.73.39.174] has quit [Read error: 60 (Operation timed out)] 23:21:44 segoe [i=3e164621@gateway/web/freenode/x-f2edfbf04b54b693] has joined #scheme 23:21:51 -!- Lectus [n=Frederic@189.105.43.162] has quit [Read error: 60 (Operation timed out)] 23:22:13 -!- jewel_ [n=jewel@dsl-242-129-65.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 23:28:47 arthurmaciel [n=user@189.100.126.138] has joined #scheme 23:28:50 -!- copumpkin [n=pumpkin@dhcp-212-202.cs.dartmouth.edu] has quit ["Leaving..."] 23:28:52 hi there 23:29:19 er.. how to call the bot? I want to know a good pastebin 23:29:20 dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has joined #scheme 23:29:49 lisppaste: url 23:29:50 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 23:34:12 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [] 23:39:47 arthurmaciel pasted "Does 'k' has any meaning?" at http://paste.lisp.org/display/82527 23:40:06 Riastradh: could you answer my question, please? (see pasting above) 23:41:28 -!- CaptainMorgan [n=CaptainM@75.68.42.94] has quit [Client Quit] 23:41:29 You've defined `k' in the top-level environment. 23:42:05 hum... where?? 23:42:19 Previously. 23:43:02 chandler: oh, I've defined it before, and deleted the code, but run-scheme had it 'in mind'. Hm.. 'try' can only be defined as a macro? 23:43:32 chandler: I mean without defining 'k' at the top-level env. 23:43:54 I'm afraid I don't understand what you are attempting to do. 23:45:12 chandler: this is a TSS exercise on chapter 14 23:45:20 chandler: nevermind, I'll check it 23:46:43 saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has joined #scheme