00:01:39 synx: You implemented a lazy function application -- that's nothing exciting, and very far from fexprs. 00:01:50 dstorrs: Use PLTCOLLECTS -- it's really the easiest way. 00:03:12 -!- kenpp [n=kenpp@84.92.70.37] has quit [Connection timed out] 00:05:27 -!- jrtayloriv [n=jrt4@66.24.239.105] has quit ["Leaving"] 00:05:49 eli: so, each module that I'm going to define should check PLTCOLLECTS to ensure that the app-specific directory is there and, if not, should add it. 00:05:58 or is there something better? 00:10:42 -!- steiger [n=steiger@189.105.37.156] has quit [Read error: 104 (Connection reset by peer)] 00:11:32 -!- MrFahrenheit [n=RageOfTh@users-38-89.vinet.ba] has quit [Read error: 110 (Connection timed out)] 00:15:16 -!- karme [n=user@kallisto.karme.de] has left #scheme 00:16:46 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 00:17:51 _Pb [n=Pb@75.131.194.186] has joined #scheme 00:18:00 Arelius` [n=user@64.174.9.113] has joined #scheme 00:19:28 Hello other me! 00:20:15 Hey first me 00:21:34 -!- masm1 [n=masm@bl7-206-194.dsl.telepac.pt] has quit ["Leaving."] 00:21:44 -!- nightmode [n=Carbon@194.146.155.70] has left #scheme 00:23:10 fork bombs and thead babys eh ?! 00:23:18 s/thead/thread/ 00:23:51 ewww myyyy it's getting late lol 00:24:55 <_Pb> yes it is 00:26:22 dstorrs: I don't understand your question. 00:27:55 my other one doesn't understand it either! 00:28:00 lol 00:28:11 easy 00:28:50 hmm 00:29:15 (define (foo) #t) 00:29:26 (eval `(,'foo)) 00:30:03 (eval '(,foo)) 00:30:05 backwards, aint it? 00:30:45 (eval `(,foo)) 00:30:54 ,eval 00:33:05 eli: I think I'm not asking it very clearly. 00:33:40 eli: clarification by analogy. In Perl, a program or module can start off with "use lib '/home/george/modules'; 00:34:13 this tells the program / module that it should look in that directory as well as all normal paths in order to find needed modules. 00:35:01 dstorrs: The thing is that once you start PLT, you're usually inside the language and it's too late for that. 00:35:15 dstorrs: So, you should use the PLTCOLLECTS in a similar way. 00:35:32 Ok...but isn't PLTCOLLECTS an environment variable? 00:35:45 If I modify it, aren't I changing the env for all running programs? 00:35:46 dstorrs: For example: the equivalent of the above for PLT would be: export PLTCOLLECTS /home/george/modules: 00:36:11 Yes, you are. But I'd be very surprised if another application relies on the contents of the `PLTCOLLECTS' variable. 00:38:47 ok. 00:39:26 btw, is that "export" the shell command or the PLT command? 00:40:19 because I thought you said that once the code started, it was too late to modify how things are searched? 00:40:55 *chandler* doesn't understand why it's too late after PLT is started 00:40:57 so I'm guessing you're saying do this at the shell on an essentially permanent basis. 00:43:16 dstorrs: Yes, it's a shell command (eg, bash or zsh; [t]csh are annoyingly different.) 00:43:50 dstorrs: Also, note the terminating `:' -- it's important since it speficies that your directory should come before the standard place, instead of replacing it completely. 00:44:27 dstorrs: And there's no need to always do this -- you need to find out how to customize your shell and add it there, so you don't have to deal with it. 00:44:46 eli: do you think PLT people would be interested in a Scheme port of aptitidude's dependency resolver for use in PLaneT? 00:44:47 yes, sure, I could put it in my .profile, no problem. 00:44:55 dstorrs: You *could* also avoid the whole thing and use (require (file "/some/file.blah")) 00:45:00 *rotty* is working on such a beast for dorodango 00:45:25 eli: that means that I can't then change the repository structure without changing the code. 00:45:36 dstorrs: Another option is using planet -- there is a way to say "take this directory and make it available as that planet package, without really downloading anything". 00:45:44 dstorrs: I don't know what you mean by "that". 00:46:43 chandler: It's too late since you usually run it as `mzscheme some-file'. To make it not too late, you need to have that file set the library search path in scheme and then load the actual file -- which at this point will need to be a dynamic load. So it's doable, but not a common choice. 00:47:23 rotty: I have no idea what's "aptitidude's dependency resolver" or "dorodango"... so I cannot say how useful it is... 00:47:44 oops, typo: aptitude 00:48:02 (Debian's high-level package management tool) 00:48:16 eli: there! what you just said to chandler! That's EXACTLY what I want to do. How does that work? 00:48:23 eli: Why can't the search path be frobbed at expand time? 00:48:39 dorodango is a "package manager" for R6RS Scheme i've started working on 00:49:17 http://en.wikipedia.org/wiki/Aptitude_(program) 00:49:21 rotty: "something with debian/ubuntu" was my guess, but what do you do with such a tool? 00:49:39 rotty: In any case, ubuntu is as popular as elsewhere, so I guess you can expect the usual number of interested parties... 00:49:47 s/expect/expect better than me/ 00:50:03 Is there a better to way to do (set! (list-ref x n) val) 00:50:43 chandler: You can -- but if you do it at runtime then you need to avoid `require', and if you do it at syntax time you need to somehow avoid the file being compiled -- either way it's not really going to be a convenient thing to do. 00:51:11 dstorrs: Can you backtrack a little and describe the actual problem you have rather than ask about a solution that is possible not the best way to deal with it? 00:51:38 eli: I'm just porting the part that resolves dependencies (it can deal with multiple versioned dependencies, package conflicts, and allows to iterate over multiple "solutions") 00:51:48 s/multiple // 00:51:50 syntropy: Uh, don't? Why are you mutating a list? 00:51:53 -!- 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"] 00:52:08 eli: do you understand what I mean by "application specific module directory"? 00:52:16 and do you understand why I would want such a thing? 00:52:28 chandler: Because in thos case, it's required. 00:52:28 because that's the problem that I'm trying to solve. 00:52:39 syntropy: By whom? For what? 00:53:42 *eli* smells sicp in the air 00:54:12 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 00:54:14 rotty: Well, the thing is that all of that makes very little sense to me -- I don't use ubuntu often. 00:54:34 dstorrs: No, but that's irrelevant -- just describe the problem you're trying to solve. 00:55:32 chylli [n=lchangyi@60.211.214.32] has joined #scheme 00:55:35 -!- _Pb [n=Pb@75.131.194.186] has quit ["Leaving"] 00:56:02 chandler: http://dpaste.com/94624/ 00:56:42 frankly, i think it looks ugly 00:57:00 dpaste.com? yes, I agree :-) 00:57:49 Uh, why not use a record? 00:58:11 eli: does PLT/PLaneT allow different versions of the same package/module be installed and used at the same time, in the same program? 00:59:06 eli: I'm almost done putting this into email to the plt-scheme list. I'll send it in a minute and then you can read it there. 00:59:25 -!- jonrafkind [n=jon@155.98.68.48] has quit [Read error: 145 (Connection timed out)] 00:59:33 rotty: I think so, if you use some libraries that require different versions of a given library. 00:59:57 dstorrs: Solving it here would have been quicker. 01:00:49 eli: ok, then you don't have a use for a dependency resolver in PLaneT 01:01:36 rotty: Ah -- you were asking about planet... In that case there is no need for that, because dealing with planet peoperly is one of the major points of the system. 01:01:42 -!- mrsolo [n=mrsolo@nat/yahoo/x-hffrnjpphgzkqofp] has quit ["Leaving"] 01:02:04 rotty: See also the paper that they wrote. The basic idea is "how can we solve the DLL hell problem". 01:02:08 jrtayloriv [n=jrt4@cpe-66-24-239-105.stny.res.rr.com] has joined #scheme 01:02:19 -!- felipe [n=felipe@my.nada.kth.se] has quit [Client Quit] 01:02:21 eli: I'll paste the email to lisppaste. 01:02:35 it will be easier if you can read something coherent 01:02:46 dstorrs: ok 01:02:55 I appreciate you trying to help me on this 01:03:23 eli: do you have a title or URL for that paper? 01:03:38 dstorrs: FWIW, I have a few guesses about what the problem should be, but I need to clarify exactly the problem you're actually having -- that's why I said that a solution is probably relatively easy. 01:03:46 rotty: Give me a second. 01:05:15 sure 01:06:25 rotty: The paper is "Component Deployment with PLaneT You Want it Where?" -- google found it on the scheme workshop site, but it looks like the link is down. 01:07:51 eli: thanks, got it from http://people.cs.uchicago.edu/~jacobm/pubs/ 01:09:05 rotty: yes, I forgot about his homepage that still works... 01:12:22 dstorrs pasted "application specific module directory issue" at http://paste.lisp.org/display/87210 01:13:03 eli: there you go. http://paste.lisp.org/display/87210 01:19:15 QinGW [n=wangqing@203.86.89.226] has joined #scheme 01:22:24 dstorrs: So, points specific to your email: 01:23:21 (a) the opening part is already asking about a solution before you describe the problem. If you still want to send it to the list, you should remove it (and maybe add a comment that you know about that parameter) . 01:24:11 The thing is that you can change it, but this will only apply to the current running mzscheme process. So, for example, if you want to compile file with the new directories to search, you will need to find the way to invoke the compiler (or `setup-plt') from inside mzscheme. 01:24:34 But changing `current-library-collection-paths' is exactly what you get by changing PLTCOLLECTS. 01:25:04 ...which leads to (b) your points about setting the environment vairable. 01:26:23 Both of your points are bad -- "anything outside your program which depends on this variable sees the new value, and potentially breaks" -- PLT is far from being the only program that uses environment vairables, and by making the name start with `PLT' there shouldn't be any disturbances to any non-plt application. Just like I said above. 01:27:28 (according to that paper, PLT in principle allows multiple versions of modules in the same program, but this capabality is disabled by default) 01:27:37 "Must be set in all shells that are going to use these modules, and must be maintained persistently across sessions" -- this is also bogus, since in all environments and shells there are ways to change a value of a variable in the current shell, and then add it to some shell initialization script so it's always there. (Or, on windows, you set some properties.) 01:27:56 *headdesk* 01:28:13 rotty: I think that it does happen if you require libraries A and B, and both require C at different versions -- but (I think) not in the same process. 01:28:20 dstorrs: Why the headdesking? 01:29:02 eli: your comments basically boil down to copyedits on the email, followed by flat assertions of "I don't think your dislike of the proposed solution is valid" 01:29:14 dstorrs: (c) Using `parameterize' is not needed. To have any use for changing the parameter you still have the above problem of using the tools from inside mzscheme. 01:29:17 dstorrs: Huh? 01:29:44 let's start with the assumptions that (a) the problem is worth solving and (b) whether I'm sensible about it or not, I actually would prefer not to use the solutions outlined. 01:29:47 dstorrs: You have two points on why setting an environment variable is bad -- but your points are invalid. 01:29:56 is there another solution that isn't on that list? 01:30:07 Let me get through it. 01:30:59 ... continuing (b): the only difference between setting a parameter and using `parameterize' is that the latter is doing a change in some local dynamic extent rather than a permanent change -- but the problem of using the tools from mzscheme is still the same, so you don't get any help by trying this. 01:32:15 (Sorry, that was continuing (c)) 01:32:57 dstorrs: And finally (d) your #3 solution is the one that will be the most recommended, and the one that is easiest to deal with. 01:33:17 You do have to do that change when you change the directory structure inside the scheme code -- that's obvious, 01:33:48 but even if you'd use PLTCOLLECTS and your requires would all be the symbolic kind, even then you'd need to go and change require lines. 01:34:34 In your specific example, there would be one file that does (require code/modules/bar) -- and that would need to change and become (require code/modules/server/bar) 01:35:18 So no matter which route you choose, moving files means changing code that refer to these files and/or changing code in the file that point at relative resources (usually other sources). 01:36:13 dstorrs: And one last point -- (e) it is possible to do some of these things in an easier way by writing macros that expand to the right require paths, 01:37:05 for example, if you look in the typed-scheme collection you'll see that he does just that there (but I don't remember which file exactly is doing so) 01:37:35 The thing is that writing such macros (require/provide macros) can be tricky, and at an early stage I wouldn't recommend that solution. 01:37:43 dstorrs: That's all. 01:40:00 dmoerner [n=dmr@89-151.res.pomona.edu] has joined #scheme 01:40:53 eli: thanks. 01:42:17 dstorrs: No complaints now? 01:42:46 I'd be surprised if you agree with all of this now... 01:46:21 nope 01:46:45 but I don't think we're going to reach a meeting of the minds. 01:47:37 I will send email to the list, but a different email using (broadly) some of the suggestions you made. 01:48:57 dstorrs: Do you understand why changing the parameter is problematic? 01:49:19 I never argued it wasn't 01:49:37 as I said, you and I have not had a meeting of the minds throughout this discussion. 01:50:10 I don't know what you mean by "meeting of the minds", I'm focusing on the technicalities only here. 01:50:25 not to be rude, but I'm done. 01:50:35 OK, so? 01:50:36 I really appreciate the effort you made, but it's just not happening. 01:50:46 I'm out of energy to discuss it, so I'm letting it go. 01:56:43 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 02:21:10 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 02:28:53 incubot: T is not NIL, lol. 02:29:00 ct2rips_ [n=ct2rips@dslb-092-073-189-252.pools.arcor-ip.net] has joined #scheme 02:36:51 -!- davazp [n=user@79.153.148.56] has quit [Remote closed the connection] 02:37:23 -!- ct2rips__ [n=ct2rips@92.73.172.156] has quit [Read error: 145 (Connection timed out)] 02:38:29 Darki [i=Darkstar@p57B55DA8.dip.t-dialin.net] has joined #scheme 02:42:55 MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 02:43:32 felipe [n=felipe@my.nada.kth.se] has joined #scheme 02:45:20 offby1` [n=user@q-static-138-125.avvanta.com] has joined #scheme 02:45:48 rudybot_ [n=luser@q-static-138-125.avvanta.com] has joined #scheme 02:46:13 -!- jrtayloriv [n=jrt4@cpe-66-24-239-105.stny.res.rr.com] has left #scheme 02:48:22 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Nick collision from services.] 02:48:27 -!- offby1` is now known as offby1 02:50:51 -!- Dark-Star [i=Darkstar@p57B55D1D.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 02:52:28 tjafk [n=timj@e176195133.adsl.alicedsl.de] has joined #scheme 02:58:42 haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has joined #scheme 02:59:39 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Read error: 110 (Connection timed out)] 03:07:39 -!- rudybot_ is now known as rudybot 03:09:30 -!- tjafk2 [n=timj@e176206005.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:22:23 bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has joined #scheme 03:33:01 -!- emma [n=620e9a47@gateway/web/flash/eris.tuxhacker.org/x-rjhnyxtipvburgxo] has quit [Remote closed the connection] 03:36:29 -!- dmoerner [n=dmr@89-151.res.pomona.edu] has quit ["Leaving"] 03:36:54 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 03:37:27 -!- 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"] 03:38:12 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 54 (Connection reset by peer)] 03:38:15 -!- sphex [n=nobody@modemcable232.140-82-70.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 03:38:59 QinGW [n=wangqing@203.86.89.226] has joined #scheme 03:44:55 jonrafkind [n=jon@98.202.86.149] has joined #scheme 03:45:53 sphex_ [n=nobody@modemcable232.140-82-70.mc.videotron.ca] has joined #scheme 03:48:49 -!- MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 03:49:24 MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 03:49:41 -!- syntropy [n=who@unaffiliated/syntropy] has quit ["leaving"] 03:49:44 -!- MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has quit [Read error: 104 (Connection reset by peer)] 03:50:02 MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 03:51:09 -!- kssreeram [n=kssreera@122.174.66.200] has quit [Read error: 110 (Connection timed out)] 03:51:50 -!- sphex_ [n=nobody@modemcable232.140-82-70.mc.videotron.ca] has quit [Read error: 60 (Operation timed out)] 03:52:31 dysinger [n=dysinger@c-24-18-234-48.hsd1.wa.comcast.net] has joined #scheme 03:56:38 sphex_ [n=nobody@modemcable056.77-200-24.mc.videotron.ca] has joined #scheme 04:11:27 -!- bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has quit [Client Quit] 04:14:43 jrtayloriv [n=jrt4@cpe-66-24-239-105.stny.res.rr.com] has joined #scheme 04:14:47 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 04:17:10 In the formal grammar in R5RS, why do they have --> --> ? i.e., since is always replaced by , why not just call it and do --> ? 04:17:48 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [] 04:18:26 -!- arcfide [n=arcfide@99.50.231.131] has left #scheme 04:18:38 *offby1* stares blankly 04:18:53 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 04:20:10 That is, there is only one production rule for the non-terminal , which is --> ... so why not just get rid of altogether, and just use directly? 04:20:48 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 145 (Connection timed out)] 04:36:56 -!- MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has quit ["DOWNLOADING LATEST VERSION OF THE INTERNET"] 04:38:59 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 131 (Connection reset by peer)] 04:39:59 *jrtayloriv* wishes people didn't sleep 04:42:05 I'm entirely awake, and yet still unable to answer 04:43:00 QinGW [n=wangqing@203.86.89.226] has joined #scheme 04:44:12 offby1, That's OK. I'm in precisely the same situation. 04:44:43 well, then, perhaps it's time I go to bed 04:45:04 just like all the others ... 04:45:08 ;) 04:50:35 eno__ [n=eno@adsl-70-137-149-10.dsl.snfc21.sbcglobal.net] has joined #scheme 04:52:19 -!- dysinger [n=dysinger@c-24-18-234-48.hsd1.wa.comcast.net] has quit [Read error: 110 (Connection timed out)] 05:00:17 -!- segoe [n=segoe@62.32.133.51] has quit [] 05:00:50 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 110 (Connection timed out)] 05:01:02 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 05:02:10 -!- jrtayloriv [n=jrt4@cpe-66-24-239-105.stny.res.rr.com] has quit [Read error: 60 (Operation timed out)] 05:03:04 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 05:03:49 jrtayloriv left 05:06:04 minion: memo for jrtayloriv: i think it's just a case of clarity--you want a command there, which just happens to be an expression; note -> ( *) is not as clear as -> (+), and you lose semantic information 05:06:04 Remembered. I'll tell jrtayloriv when he/she/it next speaks. 05:09:19 minion: memo for jrtayloriv: s/not as clear as/clearer than/, sorry, swapped the senses 05:09:19 Remembered. I'll tell jrtayloriv when he/she/it next speaks. 05:09:32 jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has joined #scheme 05:09:41 i iz dum 05:11:59 Modius_ [n=Modius@24.174.112.56] has joined #scheme 05:12:24 you are what you is 05:16:54 jrtayloriv [n=jrt4@69.205.162.163] has joined #scheme 05:17:03 -!- peddie_ [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has quit ["leaving"] 05:17:07 peddie [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has joined #scheme 05:17:07 -!- jrtayloriv [n=jrt4@69.205.162.163] has quit [Read error: 131 (Connection reset by peer)] 05:17:19 jrtayloriv [n=jrt4@69.205.162.163] has joined #scheme 05:18:27 emma [n=620e9a47@gateway/web/flash/eris.tuxhacker.org/x-ysaudzmjgyvljtyq] has joined #scheme 05:19:57 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 05:21:37 -!- jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 05:25:20 -!- phax [n=psc@unaffiliated/phax] has quit [] 05:29:09 -!- Modius [n=Modius@24.174.112.56] has quit [Read error: 110 (Connection timed out)] 05:31:41 phax [n=phax@unaffiliated/phax] has joined #scheme 05:35:21 -!- ASau [n=user@83.69.240.52] has quit ["off"] 05:36:42 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Read error: 60 (Operation timed out)] 05:38:53 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 05:41:59 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 05:46:12 In the formal grammar in R5RS, why do they have --> --> ? i.e., since is always replaced by , why not just rename to and do --> ? 05:46:12 jrtayloriv, memo from zbigniew: i think it's just a case of clarity--you want a command there, which just happens to be an expression; note -> ( *) is not as clear as -> (+), and you lose semantic information 05:46:12 jrtayloriv, memo from zbigniew: s/not as clear as/clearer than/, sorry, swapped the senses 05:47:07 attila_lendvai [n=ati@apn-89-223-214-80.vodafone.hu] has joined #scheme 05:47:21 zbigniew, ahhh -- you already answered it -- thank you for clearing that up. So basically, if I was writing a parser, I *could* skip the extra production step, and just directly use , correct? 05:47:58 i.e. is just there for human readability? 05:49:11 Or rather, if I were writing a grammar for a parser ... 05:51:03 mmc [n=mima@cs137104.pp.htv.fi] has joined #scheme 05:53:03 -!- attila_lendvai [n=ati@apn-89-223-214-80.vodafone.hu] has quit [Read error: 104 (Connection reset by peer)] 05:55:41 zbigniew, And I understand why I lose semantic information when I go from ( *) to (+), but that is just because there are multiple types of expression, only some of which are of the form *, but if ALL s were of that form, then I don't see how any meaning is lost when you substitute one for the other. 05:59:06 But then there is another rule --> * ... so it seems that I must be missing some subtle difference here. 06:06:12 jrtayloriv: appears to be a kind of which is merely used for effect; see 4.2.3 Sequencing 06:06:41 it thus appears in DO, etc. 06:07:25 "Each iteration begins by evaluating ; if the result is false (see section 6.3.1), then the expressions are evaluated in order for effect..." 06:08:04 they also appear in BEGIN, though; so i may be wrong 06:08:26 klutometis, OK. So basically, if we're doing something for effect, it's a command. And if it's for value, then it's an expression. Is that what you're saying? 06:08:38 But syntactically, they are the same. 06:08:43 sphex__ [n=nobody@modemcable056.77-200-24.mc.videotron.ca] has joined #scheme 06:09:18 that's my reading 06:09:32 a scheme-yoda may appear and rebuke me, though 06:10:13 klutometis, Thank you. 06:10:19 np 06:11:01 -!- JKGpp [n=juergen@dslb-088-065-192-074.pools.arcor-ip.net] has quit [] 06:14:57 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 06:18:13 attila_lendvai [n=ati@apn-89-223-214-80.vodafone.hu] has joined #scheme 06:20:06 -!- sphex_ [n=nobody@modemcable056.77-200-24.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 06:21:46 -!- schemer999 [n=tmilford@76.89.231.7] has quit [Remote closed the connection] 06:27:03 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 06:29:59 sphex [n=nobody@modemcable056.77-200-24.mc.videotron.ca] has joined #scheme 06:35:22 sepult` [n=levgue@xdsl-87-78-101-112.netcologne.de] has joined #scheme 06:40:25 -!- Darki is now known as Dark-Star 06:48:02 -!- sphex__ [n=nobody@modemcable056.77-200-24.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 06:48:02 Summermute66 [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has joined #scheme 06:50:21 -!- sepult [n=levgue@xdsl-87-78-173-246.netcologne.de] has quit [Connection timed out] 06:51:27 -!- mmc [n=mima@cs137104.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 06:53:41 charmless [n=charmles@207.47.213.196] has joined #scheme 06:55:13 ASau [n=user@host15-231-msk.microtest.ru] has joined #scheme 06:59:41 alaricsp [n=alaricsp@217.205.201.45] has joined #scheme 07:04:29 leppie|work [i=52d2e3c8@gateway/web/freenode/x-reicigbrlfwtmkko] has joined #scheme 07:05:01 -!- Summermute [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has quit [Read error: 110 (Connection timed out)] 07:05:55 -!- ASau [n=user@host15-231-msk.microtest.ru] has quit [Remote closed the connection] 07:06:06 ASau [n=user@host15-231-msk.microtest.ru] has joined #scheme 07:06:49 Summermute [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has joined #scheme 07:07:51 -!- Summermute66 [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has quit [Read error: 110 (Connection timed out)] 07:08:26 -!- Modius_ [n=Modius@24.174.112.56] has quit [Read error: 110 (Connection timed out)] 07:17:36 Sveklo1 [n=sveklo1@88.115.8.123] has joined #scheme 07:20:54 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 07:26:31 mmc [n=mima@192.100.124.219] has joined #scheme 07:26:33 -!- attila_lendvai [n=ati@apn-89-223-214-80.vodafone.hu] has quit [Read error: 110 (Connection timed out)] 07:27:32 Summermute66 [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has joined #scheme 07:29:13 HG` [n=HG@xdslee010.osnanet.de] has joined #scheme 07:29:47 attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has joined #scheme 07:31:35 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 07:31:38 thehcdreamer [n=thehcdre@81-174-51-212.dynamic.ngi.it] has joined #scheme 07:32:38 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 07:34:26 rdd [n=user@c83-250-145-223.bredband.comhem.se] has joined #scheme 07:37:08 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [Remote closed the connection] 07:46:07 -!- Summermute [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has quit [Read error: 110 (Connection timed out)] 07:53:47 -!- thesnowdog [i=thesnowd@114.73.23.227] has quit ["Leaving"] 07:54:27 -!- Summermute66 [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has quit [Read error: 110 (Connection timed out)] 08:14:46 -!- emma [n=620e9a47@gateway/web/flash/eris.tuxhacker.org/x-ysaudzmjgyvljtyq] has quit [Remote closed the connection] 08:17:13 dmoerner [n=dmr@89-151.res.pomona.edu] has joined #scheme 08:17:14 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 08:17:41 hotblack23 [n=jh@p5B056323.dip.t-dialin.net] has joined #scheme 08:20:58 -!- mmc [n=mima@192.100.124.219] has quit ["Leaving."] 08:22:50 mmc [n=mima@esprx02x.nokia.com] has joined #scheme 08:27:50 -!- alaricsp [n=alaricsp@217.205.201.45] has quit ["Leaving."] 08:28:09 alaricsp [n=alaricsp@217.205.201.45] has joined #scheme 08:31:12 -!- Sveklo1 [n=sveklo1@88.115.8.123] has quit [Remote closed the connection] 08:34:54 ebzzry [n=ebzzry@115.147.97.193] has joined #scheme 08:36:07 How can I make  indent like lambda, i.e., indent 2 chars, in emacs? 08:37:27 Nvm, I got it: (put ' 'scheme-indent-function '1) 08:37:39 alaricsp1 [n=alaricsp@217.205.201.45] has joined #scheme 08:39:54 a-s [n=user@91.201.80.240] has joined #scheme 08:39:57 -!- FufieToo is now known as Fufie 08:45:37 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 08:46:13 -!- alaricsp [n=alaricsp@217.205.201.45] has quit [Read error: 110 (Connection timed out)] 08:46:31 -!- alaricsp1 is now known as alaricsp 08:51:54 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 08:54:50 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 09:00:54 -!- chylli [n=lchangyi@60.211.214.32] has quit [Remote closed the connection] 09:02:10 marcoecc [i=me@gateway/gpg-tor/key-0x9C9AAE7F] has joined #scheme 09:03:40 -!- charmless [n=charmles@207.47.213.196] has quit [] 09:05:26 amca [n=amca@CPE-121-208-82-97.qld.bigpond.net.au] has joined #scheme 09:11:50 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 09:25:07 ejs [n=eugen@77.222.151.102] has joined #scheme 09:29:14 mornfall [n=mornfall@anna.fi.muni.cz] has joined #scheme 09:29:43 Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 09:34:45 and` [n=hufs4@ti0035a340-0502.bb.online.no] has joined #scheme 09:37:25 How is DrScheme's `run' simulated in mzscheme (command line), is it "-f", "-t", or some other flag? 09:38:37 -f and -r work I believe 09:42:44 ebzzry: Just `mzscheme file' runs the file 09:43:03 ebzzry: If you want to get a repl inside the file, then start mzscheme, then use (enter! "your-file") 09:43:19 rstandy [n=rastandy@net-93-144-190-81.t2.dsl.vodafone.it] has joined #scheme 09:44:48 eli: thanks 09:45:19 Is -f a shorthand to the flagless invocation? 09:46:41 No, it's just a way to load a script. 09:46:50 Using `load'. 09:46:58 eli: ok 09:47:02 eli: What is the advised way of loading interactive.ss from .mzschemerc? 09:47:05 So it doesn't work with files that have modules in them. 09:47:45 Ah -- for *that* load is the right thing, but only because I'm lazy enough that I didn't split it to several files. 09:48:07 That is, just put (load ".../interactive.ss") in your .mzschemerc 09:48:19 eli: Hmm, ok. 09:48:39 eli: How would one simulate DrScheme's `run' with emacs? 09:49:12 The thing is that if you `load' a file that has (module blah scheme ...stuff...), then the module is defined but not visited. You can then do that with (require 'blah) with the quote. 09:49:29 What do you mean by `run' -- did you change the file and want to reload it? 09:49:30 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 09:50:47 eli: I'd want to simulate how one typically does things in DrScheme. Enter stuff in the definitions window, then hit Run. So with emacs it woud be some code in a window, then on another window, there's mzscheme running 09:52:03 ebzzry: Once you did the `enter!' thing, you can re-evaluate stuff as usual, 09:52:15 or you can (enter! "your-file") again, which will reload it. 09:52:21 eli: Ah, is it due to the nature of "#lang scheme"? (scheme-send-region (point-min) (point-max)) wouldn't work. 09:52:31 eli: ok 09:52:55 Yes, if you want to send expressions to the repl you need to avoid sending the `#lang' line. 09:53:08 eli: Yes, I recall now. 09:53:13 BTW, if you're using the interactive hack then ,en is short for `enter!' 09:53:20 eli: awesome! 09:54:16 -!- araujo [n=araujo@gentoo/developer/araujo] has quit ["Leaving"] 09:55:39 ebzzry: Note also the ,rr command (short for ,require-reloadable) -- the thing is that if you require a module, then the compiler will do inlining and such, and that means that you won't be able to redefine stuff this way, 09:56:02 so using ,rr will require it with the inlining turned off so you can do the redefinitions later. 09:56:17 eli: ok 09:56:20 cornucopic [n=r00t@202.3.77.134] has joined #scheme 09:56:21 `enter!' does that too, of course, so if that how you invoke a module there's no problems. 09:58:26 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 10:01:14 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 10:01:44 eli: thanks for the tip 10:03:23 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 10:12:03 -!- cornucopic [n=r00t@202.3.77.134] has quit ["leaving"] 10:19:24 -!- thehcdreamer [n=thehcdre@81-174-51-212.dynamic.ngi.it] has quit [] 10:23:38 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 10:35:23 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 10:40:49 -!- rstandy [n=rastandy@net-93-144-190-81.t2.dsl.vodafone.it] has quit [Remote closed the connection] 10:46:14 How can I make (current-load-relative-directory) yield the same results with DrScheme and mzscheme (standalone). On standalone mzscheme, it evaluates to #f 10:49:52 ebzzry: That looks like a bug somewhere 10:50:26 ebzzry: But you generally don't want to use `load', except for those rare cases like the interactive thing. 10:51:26 eli: I was trying to make some tests works; I imported macro definitions from another module and I'm checking for equality of expansion. 10:51:36 s/works/work 10:52:22 ebzzry: So you're trying to grab some code from some random file and use it in a module? 10:53:55 eli: Well, not really random. It "works" now by using (or (current-directory) (current-load-relative-directory)). Of course the path built assumes that the modules to which the definitions come from reside in the same directory as the one performing the tests. 10:56:18 ebzzry: I think that (or (current-load-relative-directory) (current-directory)) is more likely to be right 10:56:34 But in any case, the question is why are you using `load' anyway? 10:57:27 masm [n=masm@bl7-206-194.dsl.telepac.pt] has joined #scheme 11:03:24 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Remote closed the connection] 11:11:56 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 11:14:05 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 11:15:41 -!- Fufie [n=poff@Gatekeeper.vizrt.com] has quit [Read error: 104 (Connection reset by peer)] 11:18:51 Fufie [n=poff@Gatekeeper.vizrt.com] has joined #scheme 11:21:21 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 11:26:52 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 11:33:47 -!- amca [n=amca@CPE-121-208-82-97.qld.bigpond.net.au] has quit ["Farewell"] 11:43:26 -!- sepult` [n=levgue@xdsl-87-78-101-112.netcologne.de] has quit [Read error: 104 (Connection reset by peer)] 11:45:18 -!- and` [n=hufs4@ti0035a340-0502.bb.online.no] has quit [Remote closed the connection] 11:49:08 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 11:55:24 Edico [n=Edico@unaffiliated/edico] has joined #scheme 11:55:38 reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 11:56:31 davids [n=davids@189.122.90.116] has joined #scheme 12:01:53 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 12:11:35 -!- masm [n=masm@bl7-206-194.dsl.telepac.pt] has quit [Read error: 110 (Connection timed out)] 12:12:03 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Remote closed the connection] 12:20:58 -!- rdd [n=user@c83-250-145-223.bredband.comhem.se] has quit [Read error: 104 (Connection reset by peer)] 12:22:33 mario-goulart [n=user@67.205.85.241] has joined #scheme 12:34:02 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 12:35:51 masm [n=masm@bl8-56-187.dsl.telepac.pt] has joined #scheme 12:36:22 eli: I'm not using `load'. 12:37:14 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 12:38:19 I'm using it for `check-equal?' to test macro expansions 12:44:56 -!- haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has quit [Remote closed the connection] 12:47:52 thesnowdog [i=thesnowd@114.73.23.227] has joined #scheme 12:51:37 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 12:54:08 -!- reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 12:54:26 reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 13:00:17 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 13:07:38 Nshag [i=user@Mix-Orleans-106-1-108.w193-248.abo.wanadoo.fr] has joined #scheme 13:08:07 rdd [n=user@c83-250-145-223.bredband.comhem.se] has joined #scheme 13:14:36 ebzzry: I'm not following... How is macro expansion related to `current-load-relative-directory'? 13:15:00 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 13:16:54 Fare [n=Fare@c-98-216-110-136.hsd1.ma.comcast.net] has joined #scheme 13:23:39 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 13:26:07 ebzzry: In the meanwhile, Matthew clarified that the parameter value is #f when it's not inside a `load', etc -- so MzScheme is correct, and DrScheme should do the same when the definitions are not saved. (When the definitions are saved, you're working inside the context of that file.) 13:27:14 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 13:27:15 eli: any news about a room for Wed 30th? 13:27:15 Fare, memo from eli: it'll probably take a day or two to get a reply. 13:27:45 minion: thanks 13:27:45 you're welcome 13:28:10 Fare: What he said. 13:28:27 Especially given that the day just started now... 13:29:09 eli: btw, after sleeping on it, I finally grokked what you were saying yesterday. 13:29:15 not for ebzzry 13:30:31 basically, you were saying that the knowledge of where the modules are must be stored somewhere. There are a variety of places and ways to store it, but they all have disadvantages, so it's a question of choosing the one with the most acceptable set of disadvantages in a given situation. 13:31:25 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 13:31:28 And that, all else equal, PLTCOLLECTS has the most minimal set of downsides. 13:32:13 I suspect that conversation may have been a bit frustrating for you, so thanks for sticking with it. :> 13:34:55 eli: ok 13:35:06 dstorrs: Yes, exactly -- and no problems. 13:35:30 qebab [i=finnrobi@gaupe.stud.ntnu.no] has joined #scheme 13:36:18 considering scheme functions are before arguments, why aren't functions named a<-b instead of b->a ? 13:36:25 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 13:36:31 a<-b makes composition so much less confusing 13:36:42 (a<-b (b<-c (c<-d d))) 13:36:53 dstorrs: More specifically, it *would* be good to see if there is some other setup that makes such movements easier -- which is why I pointed at the way that Typed Scheme is doing that. It's a relatively new-ish kind of hack, and if it turns out that some project management is vastly easier using it, then it shouldn't be hard to make it part of the standard libraries. 13:37:01 instead of (b->a (c->b (d->c d))) 13:37:10 Fare: IIRC, this was raised a few times. 13:37:34 ebzzry: I'm still not clear about your need for the parameter during expansion tests... 13:38:35 of course, if currying were cheap, you'd use ((composing d->c c->b b->a) d) or some such. 13:39:18 Fare: You mean composition... 13:39:30 eli: the pb ebzzry & I are having is that we want to unit-test macro expansions, and thus have some macro bound at test time for (expand-once ...) work. 13:40:01 eli: the order of argument I'm using is probably reverse of whatever builtin exists 13:40:46 Fare: Well, that's why I asked how the parameter is related to expanding a macro. AFAICT, there shouldn't be any problems to do such tests without it. 13:42:48 eli: well w/o it, DrScheme wasn't seeing the define-syntax for define-tag 13:47:34 MrFahrenheit [n=RageOfTh@users-120-11.vinet.ba] has joined #scheme 13:49:08 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 13:50:54 -!- a-s [n=user@91.201.80.240] has quit [Remote closed the connection] 13:54:08 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 13:54:51 a-s [n=user@nat-240.ro.66.com] has joined #scheme 13:55:41 Fare: Huh? 13:55:45 rudybot: (define-syntax-rule (twice x) (begin x x)) 13:55:45 eli: eh? Try "rudybot: help". 13:55:49 rudybot: eval (define-syntax-rule (twice x) (begin x x)) 13:55:49 eli: your scheme sandbox is ready 13:55:55 rudybot: eval (syntax->datum (expand-once #'(twice 123))) 13:55:55 eli: ; Value: (begin 123 123) 13:56:03 Fare: What's wrong with that? 13:56:52 eli: we'll test again and provide a minimal break case 13:57:12 Fare: ok 13:57:41 chandler, another problem with top-level hygiene, this one which I suspect nobody gets right. 13:58:15 chandler, what happens if a macro expands to a use of DEFINE-RECORD-TYPE with some user-supplied fields and some literally macro-supplied fields? See, e.g., . 13:59:45 I think I run into something similar the other day 14:01:06 chandler, the problem is that most definitions of DEFINE-RECORD-TYPE include in their expansions expressions such as (make-record-type 'name (_quote_ (field1 field2 ...))) and (record-accessor rtd (_quote_ fieldN)). One quick fix is to introduce what Scheme48 calls CODE-QUOTE, which does not strip hygiene information like QUOTE does, and to change those uses of QUOTE to CODE-QUOTE. 14:01:32 Say FOO expands to DEFINE-RECORD-TYPE, you cant just call (foo boo (fields a b c)) without catering for the 'literal content' 14:01:54 Oho! This bug goes back to the original reference implementation, doesn't it? 14:02:41 That sounds very similar/familiar :) 14:02:48 Well, without CODE-QUOTE, it is impossible to define DEFINE-RECORD-TYPE in terms of MAKE-RECORD-TYPE and RECORD-ACCESSOR procedures so that DEFINE-LOCKED-RECORD-TYPE does the right thing. 14:03:47 Oho! Correction: I think that Scheme48's DEFINE-RECORD-TYPE will actually (accidentally) do the right thing, for DEFINE-RECORD-TYPE, anyway, although the record type descriptor that you get will be botched. 14:03:51 More details in a few minutes. 14:11:53 eli: When I used ,en the second time on my unit-tests file, it doesn't display the expected list of success, failure, ... stuff 14:12:32 -!- apgwoz [n=apgwoz@216.156.136.2.ptr.us.xo.net] has quit [Remote closed the connection] 14:13:22 -!- sstrickl [n=sstrickl@pool-151-199-30-68.bos.east.verizon.net] has quit [] 14:14:50 ebzzry: It works for me... 14:14:52 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 14:15:51 ebzzry: Oh, you mean when the file didn't change, right? 14:15:57 eli: Yes 14:16:16 jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has joined #scheme 14:16:28 Hm, that looks like it's questionable if it should be done. 14:19:39 eli: It is questionable, for a certain pov, but what if I don't know if the unit-test file in question is modified or not. A scenario would be, file1.ss is the file that contains the actual definition of test-suites, and file2.ss is the one that actually calls `run-tests' 14:19:47 As I predicted, Scheme48 does the right thing. 14:20:03 eli: and I'm trying to ,en "file2.ss" 14:20:30 eli: So in that case, the actual modifications go in file1.ss, and not file2.ss 14:21:22 Riastradh pasted "DEFINE-LOCKED-RECORD-TYPE and hygienic record field names" at http://paste.lisp.org/display/87234 14:24:39 apgwoz [n=apgwoz@216.156.136.2.ptr.us.xo.net] has joined #scheme 14:26:19 By contrast, 14:26:40 Riastradh annotated #87234 "with MIT Scheme" at http://paste.lisp.org/display/87234#1 14:28:53 MIT Scheme's top-level hygiene is hosed. However, I'm guessing that at least one implementation with non-broken top level hygiene gets this wrong. 14:29:24 Scheme48 does make a slightly unhappy record type descriptor (because it does less error checking than MIT Scheme in MAKE-RECORD-TYPE), on which RECORD-ACCESSOR is useless to get at the LOCK field that I defined, but DEFINE-RECORD-TYPE doesn't use RECORD-ACCESSOR in Scheme48 -- it computes the field offsets itself, hygienically using the fields' names. 14:29:43 MIT Scheme's hosed top-level *binding* hygiene is not an issue here, in fact. 14:30:09 Ah, OK. 14:30:27 DEFINE-LOCKED-RECORD-TYPE did define %CONSTRUCTOR and OBJECT.MUTEX at the top level, which is wrong, but which is unrelated to the issue at hand. 14:30:54 I bet that MIT Scheme's DEFINE-STRUCTURE would do the right thing, though. 14:33:01 It's harder to test that, though, because DEFINE-STRUCTURE does a lot of magic name concatenation, which makes it trickier to use in the output of macros such as DEFINE-LOCKED-RECORD-TYPE. 14:36:01 Oops: no, it will do the wrong thing, because it concatenates names. In fact, it's probably not happy with non-symbol names at all. 14:37:09 Also, it too uses MAKE-RECORD-TYPE with a quoted argument. 14:54:33 Oh, I see. 14:54:41 I did fix (part of) the bug in MIT Scheme. 14:54:58 With top-level bindings, that is. 14:55:35 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 14:57:53 Riastradh: Won't your definition of `define-locked-record-type' have problems in MIT Scheme due to the introduced top-level binding of %CONSTRUCTOR? 14:58:00 Independent of field-name hygiene problems... 14:58:15 Yes, but, as I said, that's unrelated. 14:59:59 -!- ASau [n=user@host15-231-msk.microtest.ru] has quit ["off"] 15:00:03 samth [n=samth@nomad.ccs.neu.edu] has joined #scheme 15:00:18 -!- samth [n=samth@nomad.ccs.neu.edu] has quit [Client Quit] 15:00:46 samth [n=samth@nomad.ccs.neu.edu] has joined #scheme 15:01:44 -!- mario-goulart [n=user@67.205.85.241] has quit [Remote closed the connection] 15:03:31 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Remote closed the connection] 15:04:28 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 15:04:51 No, I didn't fix part of the bug, on second thought. I partially fixed the bug, to be more precise. 15:11:06 Argh. Fixing the bug fully is a little tricky, because of the effort to which MIT Scheme goes in order to reduce the number of numbers hanging off names in the output. 15:12:50 chandler pasted "define-record-type-hygienic" at http://paste.lisp.org/display/87235 15:13:09 This works in MIT Scheme. 15:13:42 Yikes. 15:13:57 I concur Riastradh 15:14:08 Why is that "Yikes"? 15:14:25 That's a big, hairy macro. 15:15:07 I somehow feel syntax-case would do a better job of 'fixing' the issue 15:15:14 No, it wouldn't. 15:15:15 but I am not sure though 15:15:21 oh ok :( 15:15:29 leppie|work: This is absolutely unrelated to syntax-case. No breaking of hygiene is necessary or even desirable here. 15:15:52 What we're trying to do is *fix* hygiene in Scheme systems in which it is broken. 15:22:00 (And I don't think this macro is particularly hairy, though it is large.) 15:22:08 sstrickl [n=sstrickl@dublin.ccs.neu.edu] has joined #scheme 15:23:39 -!- mmc [n=mima@esprx02x.nokia.com] has quit [Remote closed the connection] 15:27:42 OK, I think I have a full fix for MIT Scheme's top-level binding hygiene now. 15:27:57 Yay! 15:29:42 Riastradh pasted "patch for MIT Scheme's top-level binding hygiene -- to test, type: M-x lisppaste-insert-paste RET C-x C-e" at http://paste.lisp.org/display/87240 15:30:26 This doesn't fix record field name hygiene, though. 15:30:43 ... It works! 15:30:53 -!- Fufie [n=poff@Gatekeeper.vizrt.com] has quit ["Leaving"] 15:33:23 Can you get it committed, or will other maintainers object? 15:33:56 I'll commit it once I've done a doubly fresh build and confirmed that it works, which should be done in a bit over half an hour. 15:34:16 Horray! 15:34:27 If Chris objects, he can let me know. However, his objection will be a little feeble because, as I said, the bug has been partially fixed, for three years now. 15:36:04 When I say `partially fixed', I mean that if you had multiple DEFINE-LOCKED-RECORD-TYPE forms (with the obvious SYNTAX-RULES definition) in a single file, they wouldn't clobber one another, but one of them would get to define top-level bindings named %CONSTRUCTOR and OBJECT.MUTEX. The other ones would get unreadable names such as .%CONSTRUCTOR.0-0. 15:36:18 Now they all get the unreadable names. 15:37:14 It also seemed to be partially fixed in that (define-syntax a (syntax-rules () ((_) (define b 1)))) did the right thing, but if it expanded to a `begin' with two `define's, it didn't. 15:38:40 Huh? 15:39:01 Oh, I see. 15:39:15 Interesting. 15:39:39 Your patch seems to fix the cases I've tested. 15:40:21 Very weird. I don't understand how that's happening. 15:40:34 Uninterned symbols aren't supposed to show up in the output. 15:40:53 Well, maybe there's still another bug lurking around here. 15:44:53 -!- Adman65 [n=Adman65@c-76-103-90-45.hsd1.ca.comcast.net] has quit [Read error: 60 (Operation timed out)] 15:45:03 -!- Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has quit ["Leaving..."] 15:45:23 Oh, phooey. That still doesn't quite do it. 15:48:15 mrsolo [n=mrsolo@nat/yahoo/x-liwssqtwfyutkntp] has joined #scheme 15:48:51 -!- ejs [n=eugen@77.222.151.102] has quit [Read error: 110 (Connection timed out)] 15:49:41 What cases did you test, anyway? 15:53:38 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:03:00 I see. 16:03:05 There is a bug in that code, I believe. 16:03:53 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 16:04:02 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 16:05:27 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 16:08:03 Riastradh annotated #87240 "patch for single definitions in MIT Scheme -- to test, type: M-x lisppaste-insert-annotation RET RET 1 RET C-x C-e" at http://paste.lisp.org/display/87240#1 16:09:31 Whoops, that's likely to break something else. 16:10:16 Yep. Needs another fix. 16:11:36 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Remote closed the connection] 16:12:07 Riastradh annotated #87240 "the bug that annotation #1 causes" at http://paste.lisp.org/display/87240#2 16:18:44 Fufie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 16:21:24 ejs [n=eugen@46-113-135-95.pool.ukrtel.net] has joined #scheme 16:21:42 does anybody know a dynamic (resizable) vector API? I'm going to (trivially) implement resizable vectors, and would like to follow existing API, if there is such a thing... 16:22:31 I have exactly the wrong answer to your question. is an implementation with a good algorithm, and next to no API. 16:23:08 there's a PLaneT package too, http://planet.plt-scheme.org/package-source/soegaard/evector.plt/1/1/doc.txt 16:23:09 -rudybot:#scheme- http://tinyurl.com/ntxpzg 16:23:13 (It implements, if the paper is to be believed, the abstraction with optimal running time and space usage.) 16:23:29 -!- Jafet is now known as aefjt 16:23:57 cool! gonna add that to spells :-) 16:24:43 I took the name `xvector' from a library internal to the Pre-Scheme compiler. I am sorry for using the letter `x'. 16:26:09 Mostly what is missing is SET-XVECTOR-LENGTH!, or XVECTOR-SHRINK! and XVECTOR-GROW!. 16:27:02 You can implement those with repeated XVECTOR-PUSH! and XVECTOR-POP! operations, but it would probably be better to implement them separately. 16:28:04 I see. I think I'm fine without that operations for now, however. 16:28:17 s/that/these/ 16:29:34 nothingHappens [n=nothingh@173-25-176-111.client.mchsi.com] has joined #scheme 16:31:31 Please test the code that is on the pages marked `The code on this page has never been tested!', though, before you include it in anything. 16:31:42 (or omit those pages) 16:33:11 ok 16:35:47 do you have a (partial) test suite for xvectors? 16:36:07 A small clarification on what `optimal time and space' means: XVECTOR-REF and XVECTOR-SET! run in constant time. XVECTOR-PUSH! and XVECTOR-POP! run in amortized constant time, or O(sqrt n) worst-case time. Aside from the storage needed to hold n objects, each xvector requires only O(sqrt n) extra space ever. 16:36:15 I think I might. Let me check. 16:36:22 However, only a partial one at best. 16:37:38 Yes, it's pretty minimal -- it just tests REF, SET!, PUSH!, and POP! on small xvectors (no more than 1000 elements): . 16:37:41 Please feel welcome to expand it. 16:45:26 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 60 (Operation timed out)] 16:53:55 jedc [n=jed@dyna6-216.cs.uoregon.edu] has joined #scheme 16:55:47 annodomini [n=lambda@130.189.179.215] has joined #scheme 16:57:13 Riastradh: I found a few typo-like issues (mostly xvector-length vs. xvector.length): http://rotty.yi.org/tmp/xvector.diff 16:57:41 Those aren't typos. 16:58:01 ...except for ARITMETIC-SHIFT vs ARITHMETIC-SHIFT. 16:58:45 -!- jrtayloriv [n=jrt4@69.205.162.163] has quit [Remote closed the connection] 16:58:53 I think previously I had written (* x 2) instead of (arithmetic-shift x 1), and perhaps forgot to test that change. 16:59:35 SET-XVECTOR-LENGTH!, in particular, is a reasonable name for an operation worth including in the API, but that operation is very different from SET-XVECTOR.LENGTH!. 16:59:57 On the other hand, you can just define XVECTOR-LENGTH to be an alias for XVECTOR.LENGTH. 17:00:20 ok, but you refer to XVECTOR-LENGTH in the code, which is not defined. 17:00:34 Hmm. 17:00:35 Hang on. 17:00:46 so it's probably just that alias missing 17:01:28 I must have made some cosmetic changes without testing them before uploading them. 17:01:42 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 17:02:14 (oops, the that should have been XVECTOR.LENGTH above) 17:04:28 mario-goulart [n=user@67.205.85.241] has joined #scheme 17:05:05 Oh, well, the only reference to XVECTOR-LENGTH was on a page I never tested! 17:05:25 Phaze [n=PhazeDK@0x5da32b16.cpe.ge-0-1-0-1104.soebnqu1.customer.tele.dk] has joined #scheme 17:05:36 Maybe I ought to go do that. 17:06:44 -!- ebzzry [n=ebzzry@115.147.97.193] has quit [Remote closed the connection] 17:09:05 fwiw, I updated the diff 17:11:21 (xvector-ref procedure i) 17:13:47 yep 17:16:25 xvector.scm is updated, with several other fixes. 17:16:46 test-xvector.scm is updated, with tests for XVECTOR-WALK and XVECTOR->LIST. 17:18:21 thanks! 17:21:52 -!- jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has quit [Read error: 113 (No route to host)] 17:24:22 jrtayloriv [n=jrt4@cpe-69-205-162-163.stny.res.rr.com] has joined #scheme 17:24:54 ASau [n=user@83.69.240.52] has joined #scheme 17:28:30 -!- alaricsp [n=alaricsp@217.205.201.45] has quit ["Leaving."] 17:28:41 -!- reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 17:32:18 reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 17:36:29 -!- reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 17:46:40 korvin [n=korvin@95-52-166-146.dynamic.komi.dslavangard.ru] has joined #scheme 17:46:45 (re all) 17:48:11 And one more new copy of xvector.scm, to reduce diffs with the MIT Scheme version of it. 17:48:35 Time for lunch now. 17:48:51 -!- Phaze [n=PhazeDK@0x5da32b16.cpe.ge-0-1-0-1104.soebnqu1.customer.tele.dk] has quit ["Leaving"] 17:52:23 I'm running (an application compiled with drscheme as stand alone distribution on winxp) on w2k3. it's do its work (as simple web-server), but returns "empty" html page to browser. when some exception ocured it returns "error" html-page (as programmed) and when I'm run it on winxp it works absolutely as programmed. why can be so? 17:57:07 with the plt server, how do I get backtraces of my request handlers when their err out? 18:02:28 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 18:04:16 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 104 (Connection reset by peer)] 18:04:46 jonrafkind [n=jon@155.98.68.48] has joined #scheme 18:07:45 -!- ejs [n=eugen@46-113-135-95.pool.ukrtel.net] has quit [Read error: 110 (Connection timed out)] 18:10:53 -!- aefjt [n=Jafet@unaffiliated/jafet] has quit [Success] 18:11:40 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [] 18:16:36 -!- HG` [n=HG@xdslee010.osnanet.de] has quit [Client Quit] 18:20:45 -!- p1dzkl [i=p1dzkl@208.92.234.202] has quit [anthony.freenode.net irc.freenode.net] 18:20:58 p1dzkl [i=p1dzkl@208.92.234.202] has joined #scheme 18:26:24 albacker [n=eni@unaffiliated/enyx] has joined #scheme 18:26:58 -!- p1dzkl [i=p1dzkl@208.92.234.202] has quit [anthony.freenode.net irc.freenode.net] 18:27:11 p1dzkl [i=p1dzkl@208.92.234.202] has joined #scheme 18:31:02 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 18:31:06 Fare: usually it dumps that to the terminal that you're running it from. 18:34:25 eni_ [n=eni@APuteaux-552-1-35-147.w90-61.abo.wanadoo.fr] has joined #scheme 18:36:37 rstandy [n=rastandy@net-93-144-190-81.t2.dsl.vodafone.it] has joined #scheme 18:38:26 it doesn't :-/ 18:38:32 had to debug blindly 18:38:47 is there a way to profile where it is spending all its time? 18:38:55 (using PLT still) 18:39:08 -!- albacker [n=eni@unaffiliated/enyx] has quit [Read error: 145 (Connection timed out)] 18:39:40 I would assume you could use the standard profile collection. http://docs.plt-scheme.org/profile/index.html 18:40:06 but I haven't used it so couldn't say for sure, or what the pitfalls are. 18:40:31 -!- eni_ is now known as albacker 18:51:05 -!- mrsolo [n=mrsolo@nat/yahoo/x-liwssqtwfyutkntp] has quit ["Leaving"] 18:58:16 -!- ct2rips_ [n=ct2rips@dslb-092-073-189-252.pools.arcor-ip.net] has quit ["Noch da, noch da ... Uuuuund weg."] 18:59:56 untouchable [i=un@dhcp-129-64-166-32.dorm.brandeis.edu] has joined #scheme 19:01:54 mrsolo [n=mrsolo@209.131.62.113] has joined #scheme 19:02:00 -!- leppie|work [i=52d2e3c8@gateway/web/freenode/x-reicigbrlfwtmkko] has quit [Ping timeout: 180 seconds] 19:04:54 mmc [n=mima@cs137104.pp.htv.fi] has joined #scheme 19:06:45 espire [n=espire@129.97.159.173] has joined #scheme 19:10:36 -!- 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"] 19:12:45 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 19:15:24 HG` [n=HG@xdslee010.osnanet.de] has joined #scheme 19:23:17 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 19:25:19 Soegaard's evector library has a space leak. 19:25:37 Summermute [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has joined #scheme 19:25:41 Aside from the unshrinkability of evectors, that is. 19:26:13 Perhaps a user of this library would like to report that it has a space leak. 19:29:46 Thoughts on SRFI 101? The first interesting SRFI I have seen in a long time. 19:33:34 saccade_ [n=saccade@pool-68-160-14-200.bos.east.verizon.net] has joined #scheme 19:33:59 -!- ASau [n=user@83.69.240.52] has quit [Remote closed the connection] 19:34:09 ASau [n=user@83.69.240.52] has joined #scheme 19:35:31 As someone who is currently designing a generic Sequence library, from the abstract, i'm pretty stoked 19:35:35 I wish it'd been specified in a way that didn't overlap with ordinary pairs. 19:36:53 Also, what *isn't* interesting about `define-lambda-object'? It's even *more* revolutionary than MU and NU. 19:37:08 :) 19:37:26 elderK [n=zk@122-57-241-160.jetstream.xtra.co.nz] has joined #scheme 19:38:00 It's interesting like the Chinese curse :) 19:38:06 chandler: pleas, more respect. It's 100! 19:38:22 so is 101 continuation of the joke? 19:38:40 Good grief. The R6RS specifies `BITWISE-ARITHMETIC-SHIFT'? 19:38:44 :-) 19:39:58 Sure. Every useful thing must have an independent name. 19:40:26 Or two, if you can afford it. 19:40:29 I should hope that it isn't an operation to perform the arithmetic shift operation, bitwise -- i.e. perform a different shift on each bit position! 19:41:14 fogus [n=fogus@PC45-012.dordt.edu] has joined #scheme 19:42:17 chandler, what do you mean `revolutionary'? It's not making anything change -- it's `immutable'! 19:43:14 redomendation for scheme compilers/interpreters to use on windows? 19:45:32 Riastradh: I mean my tongue was firmly planted in cheek? 19:45:42 fogus: I chose PLT for the extensive docs and libraries 19:45:54 fogus: PLT Scheme is a good implementation with an IDE. 19:45:56 Adman65 [n=Adman65@c-76-103-90-45.hsd1.ca.comcast.net] has joined #scheme 19:45:58 fogus: PLT works pretty well on windows 19:45:59 Im using DrScheme. Is there a way I can turn off this automatic ('s business. It wont let me type []'s 19:46:16 Adman65: try Control-[ 19:46:20 Summermute: is there a way to use it via CLI? 19:46:28 also, there's a preference for that 19:46:33 fogus: yes, it come with a CLI 19:47:10 fogus: yup. I use Dr Scheme and Emacs (with Quack) mostly 19:47:29 Heh, why does PLT decide that you can only type [ in certain positions? 19:47:36 not that I care, I'm firmly in the anti-squareness camp 19:47:49 chandler: it tries to anticipate the usual plt style 19:47:49 The [( thing is a setable option 19:48:01 and insert the correct paren in each case 19:48:26 but it doesn't when I just use the paren key - do most PLTers always use the square brackets for inserting parens? 19:48:31 chandler: yes 19:48:38 i pretty much only use the [ key 19:48:40 ah, so sort of an unshifted-paren hack 19:48:45 gotcha 19:48:45 yes 19:48:52 RageOfThou [n=RageOfTh@91.191.42.100] has joined #scheme 19:51:11 -!- espire [n=espire@129.97.159.173] has quit [] 19:59:07 -!- peddie [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has quit ["Lost terminal"] 20:01:30 -!- marcoecc [i=me@gateway/gpg-tor/key-0x9C9AAE7F] has quit [Remote closed the connection] 20:03:27 marcoecc [i=me@gateway/gpg-tor/key-0x9C9AAE7F] has joined #scheme 20:05:36 -!- MrFahrenheit [n=RageOfTh@users-120-11.vinet.ba] has quit [Read error: 110 (Connection timed out)] 20:05:58 peddie [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has joined #scheme 20:06:49 samth: would that be C:\Program Files\PLT\DrScheme.exe ? 20:07:06 DrScheme is the IDE; you're looking for mzscheme. 20:07:08 samth: what do I pass my .scm files into on the command line? 20:07:12 it would probably be called mzscheme 20:07:14 mzscheme? 20:07:15 ok 20:07:31 but i'm not familiar with the windows file layout 20:08:23 Hello, World! 20:08:26 yea! 20:08:43 -!- ASau [n=user@83.69.240.52] has quit [Remote closed the connection] 20:08:50 ASau [n=user@83.69.240.52] has joined #scheme 20:11:52 sepult [n=levgue@xdsl-87-78-27-56.netcologne.de] has joined #scheme 20:12:28 -!- fogus [n=fogus@PC45-012.dordt.edu] has left #scheme 20:12:39 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 20:13:52 saccade__ [n=saccade@pool-68-160-14-200.bos.east.verizon.net] has joined #scheme 20:14:01 -!- rstandy [n=rastandy@net-93-144-190-81.t2.dsl.vodafone.it] has quit [Connection timed out] 20:23:50 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 20:24:38 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 20:27:41 -!- saccade_ [n=saccade@pool-68-160-14-200.bos.east.verizon.net] has quit [Read error: 110 (Connection timed out)] 20:28:22 undone1 [n=diana@p57933F68.dip.t-dialin.net] has joined #scheme 20:28:41 what's the scheme syntax for "not equal to"? 20:29:48 *Fare* puts away debugging this plt webserver application any further for another day 20:30:25 *Fare* feels that mzscheme takes a whole lot of time to load it all at startup, though 20:30:49 meh for using lots of compiled dependencies. 20:31:01 (not (eqv? ... ...)) 20:31:14 what are you comparing? 20:31:21 numbers? 20:31:21 2 naturals 20:31:34 uhum 20:32:19 any other way? 20:32:19 chandler, proposal: at the top level (of a library), defining an imported name shadows it, defining a name that is already defined is an error, and the set of bound names is determined strictly from library imports and definitions. REPLs can interpret `is an error' to mean `redefinition'. None of this `every name is already bound to a bogus location' nonsense. That way, even Felix Klock's absurd reason for Larceny's broken hygi 20:32:25 (not (= x y)) 20:33:04 k, thanks, Fare, I guess that should normally work 20:33:24 Riastradh: You were cut off at "broken hygi"[ene]... 20:33:34 ...ene semantics breaks down. 20:33:54 -!- Khisanth [n=Khisanth@pool-68-237-101-45.ny325.east.verizon.net] has quit ["Leaving"] 20:34:13 -!- undone1 [n=diana@p57933F68.dip.t-dialin.net] has left #scheme 20:35:01 undone1: (define (!= a . r) (not (apply = a r))) 20:35:50 then (!= 2 3) #t (!= 1 1 1 1) #f 20:36:18 Riastradh, more generally, it's interesting that there isn't yet a comprehensive reimplementation of okasaki's book in scheme 20:36:37 or anything like Haskell's or OCaml's vast libraries of datastructures 20:36:54 Excellent point - what are known reimplementations? 20:37:02 SML, of course 20:37:17 Reimplementations? The code the book provides is SML code. 20:37:17 Riastradh: If you look at actual language in the R5RS, it clearly allows implementations where every name is already bound to a (junk) value to exhibit broken top-level hygiene semantics, but in an implementation where this isn't so, this argument is puzzling. 20:37:35 chandler, I know that it allows such implementations -- and I think that such allowance is stupid. 20:37:52 Well, that's what I means by "of course" 20:38:05 No reasonable system actually works that way; it is just being used as a silly excuse for a bug in Larceny. 20:38:14 ... and MIT Scheme, and Chicken, and ... 20:38:25 I haven't seen anyone trying to excuse MIT Scheme's semantics. 20:38:35 Which, by the way, is different from Larceny's bug. 20:38:44 `Semantics' is perhaps too strong a term here. 20:39:31 Chris Hanson did; shall I forward you the mail? 20:39:36 OK. 20:39:46 Your last name at mumble.net? 20:39:50 Yes. 20:40:05 Sent. 20:40:30 And once it gets through the greylist, maybe I'll receive it. 20:41:04 In any case, Chris is rewriting a bunch of that code now. 20:41:13 orly? 20:41:53 Syntax-defining syntax is just *broken* in Larceny: 20:41:54 (define-syntax foo (syntax-rules () ((_) (begin (define-syntax a (syntax-rules () ((_) (define b 1)))) (a) (define c 2))))) 20:42:11 (foo) -> Error: Undefined global variable "a". 20:42:18 Yes, mejja. 20:42:39 ...did I just dignify `orly' with a reply? Gosh. 20:42:41 Chicken at least consistently does the wrong thing. 20:44:31 Interestingly, Larceny's ERR5RS mode works correctly. 20:44:37 *Riastradh* blinks. 20:44:54 consistency is the hobgoblin of small minds... 20:45:56 Khisanth [n=Khisanth@pool-68-237-101-45.ny325.east.verizon.net] has joined #scheme 20:46:42 Quick question: what is the level of MIT Scheme's desire or lack thereof to faithfully adhere to evolving Scheme standards? 20:47:42 MIT Scheme implements what its maintainers consider useful and worth their time to implement. That includes most of the R5RS (the parts that don't work are non-trivial to change), and not much of the R6RS. 20:49:23 Any particular reason for this? Any reason it's not more popular given 1) its long history and 2) its compiler ??? 20:49:50 -!- saccade__ [n=saccade@pool-68-160-14-200.bos.east.verizon.net] has quit ["This computer has gone to sleep"] 20:50:06 There are approximately two and a half active maintainers, none of whom are paid to work on it (as far as I know). 20:50:56 So no longer an MIT sponsored project? 20:52:28 It has pretty much always been a tool used for other projects. I don't know whether there was ever any funding just to develop MIT Scheme, as opposed to funding for projects that ran on MIT Scheme done by developers of it. 20:52:48 Sure, makes sense. 20:54:11 -!- albacker [n=eni@unaffiliated/enyx] has quit ["Leaving"] 20:54:27 haesbaert [n=haesbaer@201.54.129.16] has joined #scheme 20:54:57 two and a half? Chris Hanson, Joe Marshall, and ? 20:55:24 Me, Chris, and either jrm or Matt Birkholz or Arthur Gleckler can take the `half' part. 20:56:01 (The last three can push to the repository, but they don't often make many general changes.) 20:56:37 (Hence the `and a half' and `approximately' parts.) 20:56:40 it sort of chaps my *ss that the native code compiling scheme's (Larceny, MIT Scheme) don't have alot more momentum behind them. 20:57:02 Chicken? 20:57:02 -!- elderK [n=zk@122-57-241-160.jetstream.xtra.co.nz] has quit [] 20:57:14 HG`` [n=HG@xdslez081.osnanet.de] has joined #scheme 20:57:22 chickenaintnative 20:57:26 I don't count any scheme -> c implementations 20:57:37 You have mass, I presume, Summermute, which could be turned into momentum if you so desired. 20:57:49 ;-) 20:58:11 I've twiddled some bits in my day :-) 20:58:37 For example, MIT Scheme needs a test suite. 20:58:46 Go write one! 20:58:51 Summermute: Besides the compile-to-C implementations (Chicken, Gambit), PLT has a JIT, and Ikarus is fairly well-known. 20:58:58 Actually, I find Larceny most appealing for some reason. 20:59:15 Must be the broken top-level hygiene in R5RS mode. 20:59:27 How much info is available on PLTs JIT? 20:59:44 Everything, including the source code! 20:59:49 Any associated partial type inference? 20:59:59 I have no idea. 21:00:19 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 21:00:32 chandler, by the way, in the message you forwarded me, Chris doesn't excuse MIT Scheme's semantics -- he just says that he'd like a clearer discussion of the subject before he could be persuaded. 21:00:51 well, right - I was thinking some docs, some benchmarks, etc. - NOT to critique PLT overall - pretty impressive system all together 21:01:15 Riastradh: Ah. Well, perhaps you can provide that. I'm not sure why "this ought to work and doesn't" isn't enough. 21:01:57 Speaking of interesting SRFIs, when is someone going to write a SRFI for atomic transactions? 21:02:58 Have you run your CML library on any natively-threaded Scheme yet? 21:03:01 Odd. With r5rs such a "minimal" lang spec, one would expect nearly perfect language semantics compliance on the core language. Hmmmm. 21:03:09 Also, when is somone going to write up the API of as a SRFI? I'm getting tired of all the uninteresting SRFIs! 21:03:33 -!- jedc [n=jed@dyna6-216.cs.uoregon.edu] has quit [Remote closed the connection] 21:03:40 I don't know. The author of the code seems to be a good candidate to write the SRFI. 21:03:43 Summermute, MIT Scheme's support for multiple return values is broken, because too much of the system assumes single-value returns. 21:03:58 chandler, arcfide claims to have gotten Scheme-CML to run on Chez Scheme. 21:04:02 I'll kvetch from the sidelines. That is the purpose of a SRFI mailing list, isn't it? 21:04:21 Hmm? What is the purpose of a SRFI mailing list? 21:04:21 Do I remember you trying to get it going on Gambit? 21:04:23 I love MRV, but implementing it efficiently is a big pain in the @ss. 21:04:35 Riastradh: For others to complain from the sidelines. 21:04:55 Not really, Summermute. *Changing* an existing implementation to use multiple return values is a pain, though. 21:05:17 chandler, oh, I misparsed: I thought that your question was supposed to be a snide comment about something I had said, and that your snide comment constituted the aforementioned kvetching. 21:05:30 No. It was a snide comment about the SRFI process. 21:06:10 Hmmm, think of call/cc and friends with MRV (not just a single tuple return). Af course, i'm currently implementing this in a typed language .... 21:06:51 How dare you mock the SRFI process! By what other process could we have attained the wonders of SRFIs 49, 51, 54, 86, and 100? 21:06:54 -!- HG` [n=HG@xdslee010.osnanet.de] has quit [Read error: 113 (No route to host)] 21:07:22 I did try to run Scheme-CML on Gambit, but ran into an internal compiler error. Also, Gambit's threads are user-level. 21:07:31 I ran it in the interpreter, though. 21:08:10 Oh. For some reason, I thought that Gambit had native threads. 21:08:12 But CML isn't about atomic transactions. They are solutions to very different problems. 21:08:54 Yes, of course - but you wondered when someone would write up your Scheme-CML as a SRFI. 21:09:16 Yes, but I said that after you mentioned running Scheme-CML on Gambit -- unless maybe you're Merlyn? 21:09:40 No; I think we're just talking past each other, or I'm not understanding you. 21:09:43 (or, running Scheme-CML on a natively-threaded Scheme) 21:10:38 How come one can talk `past' someone else, but one cannot talk `future' someone else? 21:11:08 Because until the future is touched, it's as if they haven't spoken at all. 21:12:22 Meanwhile (or erstwhile, or beforewhile, or afterwhile?), it's time for me to do something about dinner, such as doing it. 21:12:38 That sounds sensible. 21:12:53 Doesn't something like CML require potentially frobbing the RTS/GC quite a bit? 21:13:13 hmm, I read a CML paper ~10 years ago, what was its concurrency model again? 21:13:26 Preemptive, yes? 21:13:39 ML-CML 21:13:53 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:14:17 -!- mario-goulart [n=user@67.205.85.241] has quit [Remote closed the connection] 21:15:02 -!- sstrickl [n=sstrickl@dublin.ccs.neu.edu] has quit [] 21:30:22 alaricsp [n=alaricsp@217.205.201.45] has joined #scheme 21:38:04 What is Scheme-CML 21:39:28 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 21:39:50 -!- ASau [n=user@83.69.240.52] has quit [Remote closed the connection] 21:39:58 ASau [n=user@83.69.240.52] has joined #scheme 21:40:49 Summermute: PLT's jit is not that sophisticated 21:41:10 it mostly generates the obvious assembly code, with calls to the runtime where needed 21:41:46 if you want to understand the plt compiler, then use mzc to generate a .zo file 21:41:54 and then use mzc --decompile to see the output 21:42:33 -!- haesbaert [n=haesbaer@201.54.129.16] has quit [Remote closed the connection] 21:43:16 samth: I suspected not 21:43:33 -!- HG`` [n=HG@xdslez081.osnanet.de] has quit [Client Quit] 21:43:44 Summermute: it improves performance quite noticeably, though 21:43:50 Not that I don't appreciate what I imagine a simple bytecode -> machine code translator can do 21:43:59 -!- attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has quit [Read error: 110 (Connection timed out)] 21:44:01 Sure 21:44:33 Think of all the environment fetches, structure fetches, eq? and = tests and so on 21:45:18 Oh and don't forget the branches with a little simple peephole optimization 21:46:35 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 113 (No route to host)] 21:47:37 So, contracts for objects exist. However, I can't seem to find anything for contracts on classes. Do they exist? 21:48:19 nothere: are you asking about plt scheme? 21:48:34 if so, stevie strickland is working on that, but there's nothing at the moment 21:49:43 smath: yes I am. Thanks, even if that wasn't the answer I was hoping for. 21:49:44 In the docs, I see contracts on just about everything but objects 21:50:05 even structures 21:50:29 There are contracts on objects, just not on classes (see object-contract in the PLT Scheme reference). 21:51:07 annodomini [n=lambda@64.30.3.122] has joined #scheme 21:51:21 hmmm interesting - doesn't show up in a 'contracts' search. odd 22:00:56 Summermute: http://docs.plt-scheme.org/reference/Object_and_Class_Contracts.html 22:01:26 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 22:08:55 Thanks, found it 22:13:09 Blast from the past - 20 years or so ago, I recall that before the C++ STL, Stepanov and Lee did their research (at SGI??) on Scheme. Did anything ever come of the Scheme based work? Code, docs, articles? 22:17:55 -!- pfo [n=pfo@chello084114049188.14.vie.surfer.at] has quit [Read error: 60 (Operation timed out)] 22:20:07 So, expanded version of nothere's question: 22:20:12 dstorrs pasted "Problem requirements " at http://paste.lisp.org/display/87259 22:22:26 any thoughts on the best way to solve this? 22:25:10 -!- samth [n=samth@nomad.ccs.neu.edu] has quit [Read error: 113 (No route to host)] 22:26:27 dstorrs annotated #87259 "untitled" at http://paste.lisp.org/display/87259#1 22:29:30 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 22:31:38 dstorrs: For this question, the mailing list would be much better. 22:32:15 dstorrs: Specifically, a recent addition is the ability to define a region inside a module, where crossing the region's boundaries goes through contract checking. 22:33:01 And another -- possibly better for your needs -- alternative is to use typed Scheme. 22:34:12 eli: when you said 'typed scheme', I immediately googled it, we both looked at the first example and went "Eww". :> 22:34:22 Summermute, the part of CML that Scheme-CML is about -- the rendezvous abstraction (or, what CML calls `events') -- has very minimal dependencies. The rest is just some notion of threads (whether they be on a uniprocessor or multiprocessor system, time-sharing or in parallel). 22:34:38 :> 22:34:48 Arelius`, Scheme-CML is a portable Scheme implementation of Concurrent ML at . 22:34:55 dstorrs: Try another look -- the type system is specifically Scheme-ish. 22:35:35 dstorrs: For example, it allows unions, and it has an `Any' type, and more. The idea is to have a type system that can encode stuff that schemers usually write. 22:36:07 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 22:36:17 I'll look more deeply, absolutely. 22:36:22 dstorrs: Oh, and I should also say how it relates to contracts -- you can write code with some modules being in typed scheme and some in plain scheme, 22:37:27 and the really nice thing there is when some typed code uses other typed code, there is no runtime cost at all (typed scheme doesn't add runtime code) -- but when you use typed code from untyped code, it will keep things consistent by producing contracts that match the types. 22:37:48 eli: woah, that's nice 22:38:58 Yeah, after N attempts at a good combination of static typing and Scheme (most of them were done in PLT or a close neighborhood), I think that this is a very good way of getting it. 22:39:08 copumpkin [n=pumpkin@dhcp-212-249.cs.dartmouth.edu] has joined #scheme 22:41:58 eli: anyway, thanks for the pointers. I'll on list, but at least now we have some starters. 22:44:56 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 22:47:01 -!- jonrafkind [n=jon@155.98.68.48] has quit [Read error: 148 (No route to host)] 22:48:03 -!- hotblack23 [n=jh@p5B056323.dip.t-dialin.net] has quit ["Leaving."] 22:48:45 incubot: heyoo 22:50:49 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 22:52:27 -!- Dark-Star [i=Darkstar@p57B55DA8.dip.t-dialin.net] has quit [] 22:56:13 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 22:56:49 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 22:57:09 nightmode [n=Carbon@194.146.155.70] has joined #scheme 22:59:01 -!- sepult [n=levgue@xdsl-87-78-27-56.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 23:01:54 Types scheme rulez - it's very nice. Found out yesterday that it cannot yet type keyword arguments in functions, but in general it feels like programming in ML with seemless Scheme integration - really nice!!!!! 23:02:09 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 23:03:16 It has this way of type checking variable arity functions like map(f,a,b,c) that is just brilliant, IMHO. 23:13:12 nostrand [n=rickard@h-62-207.A163.priv.bahnhof.se] has joined #scheme 23:13:40 incubot: Knock, knock. 23:13:44 don't knock it until you've tried it 23:14:47 sepult [n=levgue@xdsl-87-78-27-56.netcologne.de] has joined #scheme 23:18:37 -!- RageOfThou [n=RageOfTh@91.191.42.100] has quit [Read error: 145 (Connection timed out)] 23:28:26 Which typed scheme implementation is this? 23:29:34 I think you mean `seamless', Summermute. 23:33:00 I'm not tired to spell right now :-) 23:33:25 Ar: It's typed scheme in PLT Scheme #lang typed-scheme 23:34:02 whoops, "too tired to spell right now" - case in point 23:35:00 There are a few pages of documentation - I found it enough to get going. Actually, the brevity of the docs vs. what it offers is admirable in its own right. 23:37:11 -!- jrtayloriv [n=jrt4@cpe-69-205-162-163.stny.res.rr.com] has quit [Read error: 110 (Connection timed out)] 23:37:30 arcfide [n=arcfide@adsl-99-50-231-131.dsl.bltnin.sbcglobal.net] has joined #scheme 23:42:40 jrtayloriv [n=jrt4@cpe-69-205-162-163.stny.res.rr.com] has joined #scheme 23:45:44 From my understanding of R5RS, (define ...) ( define ...) and (define ... ) are all legal are there any times where the spacing around parentheses makes a difference? i.e. is "( foo", ever invalid syntax, as opposed to "(foo"? 23:46:38 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 23:46:50 Sorry for the bad grammar. s/are all legal are/are all legal. Are/ 23:47:19 No. But we'll hit you with sharp objects (such as our tongues, or, I suppose, keyboards, to modernize the expression) if you write code with spurious whitespace like that. 23:47:37 jao [n=jao@80.31.221.191] has joined #scheme 23:48:00 Riastradh, I wouldn't -- I am writing a Scheme parser and am trying to make sure I understand the whitespace rules precisely. 23:48:08 jrtayloriv: There is only one place where I think doing so will make a difference, and if you ever do that in said context, I will hunt you down, hunt your family down, and teach you how sharp parentheses can be. 23:48:19 I hope your parser is not actually looking for the word `define' or anything. 23:48:36 There is a very clear separation between the lexical syntax of data, and the interpretation of those data as Scheme programs. 23:49:01 The text `(define foo 5)' is an external representation for a three-element list whose first element is the symbol DEFINE, whose second element is the symbol FOO, and whose third element is the exact integer 5. 23:50:04 -!- copumpkin [n=pumpkin@dhcp-212-249.cs.dartmouth.edu] has quit [Read error: 111 (Connection refused)] 23:50:28 Riastradh, right -- I understand. 23:50:37 Interpreted as a part of a Scheme program in the usual environment, that list means a definition of a variable named FOO, initializing it to have the value 5. 23:54:02 alaricsp1 [n=alaricsp@217.205.201.45] has joined #scheme 23:54:14 -!- alaricsp1 [n=alaricsp@217.205.201.45] has quit [Remote closed the connection] 23:59:00 -!- alaricsp [n=alaricsp@217.205.201.45] has quit [Read error: 110 (Connection timed out)]