00:01:58 annodomini [n=lambda@c-75-69-95-99.hsd1.nh.comcast.net] has joined #scheme 00:04:56 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 00:10:14 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Remote closed the connection] 00:15:31 arcfide [n=arcfide@99.14.208.195] has joined #scheme 00:18:58 -!- Axioplase [n=Pied@APuteaux-155-1-100-164.w90-44.abo.wanadoo.fr] has quit ["leaving"] 00:21:27 -!- rdd [n=user@c83-250-142-219.bredband.comhem.se] has quit [Remote closed the connection] 00:22:07 -!- cgo [n=cgoellne@adsl-065-007-140-208.sip.asm.bellsouth.net] has left #scheme 00:23:24 hiyuh [n=hiyuh@ZQ174212.ppp.dion.ne.jp] has joined #scheme 00:23:52 raikov [n=igr@203.181.243.11] has joined #scheme 00:28:09 -!- sm [n=sm@pool-71-104-90-132.lsanca.dsl-w.verizon.net] has quit [] 00:29:16 sm [n=sm@pool-71-104-90-132.lsanca.dsl-w.verizon.net] has joined #scheme 00:30:31 -!- kuribas [i=kristof@d54C43E38.access.telenet.be] has quit [Read error: 104 (Connection reset by peer)] 00:37:42 vorpal [n=rhunter@pdpc/supporter/student/vorpal] has joined #scheme 00:52:05 eli: ping 00:52:34 can I play? 00:52:45 ud :l 00:52:53 Maybe someone else can explain this. 00:52:57 not sure that came out right. 00:53:24 Why does PLT Scheme not support Implicit Phasing for R6RS Libraries? 00:53:38 `Implicit Phasing'? 00:54:26 Riastradh: Implicitly determining the correct import FOR forms that should be used when loading a series of libraries. 00:54:49 -!- a-s [n=user@92.80.114.119] has quit [Remote closed the connection] 00:55:05 Determining how? The programmer's intent is a critical part of that decision. 00:56:01 It appears, at least, from what I have seen, that Mzscheme requires one to use the FOR syntax when working on certain libraries. 00:57:05 Have you an example of a program in which the machine can determine the programmer's intent without the intended phase information supplied? 00:57:40 I believe there was one posted on CLS recently. 00:57:48 00:58:02 (`.sls'?) 00:58:10 It works in Ikarus (Aziz's thesis is all about this topic), but not on PLT Scheme because of this issue. 00:58:13 I don't know, not my code. :-) 00:58:40 404 00:58:54 Eh? Hrm... 00:59:11 Let me see if I can find the general problem. 00:59:31 .oO(And we were just discussing this too...) 01:01:49 arcfide: I don't know what "implicit phasing" is too, and I'd ask you the same quetion Riastradh did. 01:01:54 Leonidas: pong 01:02:04 num1 [n=brian@unaffiliated/num1] has joined #scheme 01:02:11 Alright, let me see if I can formalize or get a precise definition. 01:02:21 -!- num1 [n=brian@unaffiliated/num1] has left #scheme 01:03:06 A clear summary is more important than a formal definition. Probably I shouldn't be too keen on a LaTeX quotation from Mr Aziz's dissertation. 01:03:19 Riastradh: Let me assure you, you wouldn't. 01:03:22 I've seen them. 01:03:25 They are crazy. 01:03:38 arcfide: I suspect that this term, if it's popular, is deceiving -- the different phases are related to when/how you instantiate a module, and that's an important part of the semantics of the code. Definitely not something for a machine to guess somehow. 01:07:14 Let's see...Alright, R6RS defines import and export levels. 01:08:31 If I am remembering correctly R6RS has all exports of phases higher than 0 to be available in 0 as well as the higher phases. I think MzScheme also has the ability to avoid a phase extending "down." However, Ikarus and Chez are both built on an idea which I have termed Implicit Phasing, for lack of any given term. 01:09:16 That is, Ikarus will automatically make certain procedures or transformers available in phases where it is referenced when it is called, even without FOR imports. 01:09:28 Generally, any heuristics for guessing about when code should be loaded easily become foot-oriented holsters. 01:09:49 It's not really doing a whole analysis of picking the right phase. 01:09:55 This isn't possible in general. 01:10:26 But at any given instantiation or vist (or whatever it was called), it will dynamically bump up the phase of procedures if necessary to make the code load and run. 01:10:49 Right. So it masks the errors of confused programmers who don't understand phase separation. 01:11:36 I'm not sure I understand why this is such a bad thing. 01:11:59 Masked errors and confused programmers? 01:12:23 I mean, if I were writing a procedure that needed to be available at expand time for one of my macros, I would rather have this detected and done automatically for me, rather than having to separate them into two separate libraires, and import the procedure into the expand phase. 01:13:13 It is my understanding (wrong?) that R6RS doesn't allow very fine grained phase separation, so it seems to be more of a gain than a loss. 01:13:33 I think that Mzscheme allows you to do a little more fine grained separation, IIRC. 01:13:50 But for something like this, isn't this what Scheme has done for a while already? 01:13:57 Sorry, now I think you're talking about something other than libraries here. 01:14:10 So at least one of us is confused. 01:14:14 Haha, probably me. 01:14:56 What you suggested a moment ago is that you sometimes want to define procedures in order that they be available in macro transformers, and specifically you want to group the definitions of the procedures with the macro transformers in the same unit of code (e.g., `R6RS library'). 01:14:57 When importing a library in Ikarus, if that libraries forms are used in the expand phase, Ikarus and Chez will implicitly make that library available in that phase as well as the run phase. 01:15:19 For example, you want to write 01:15:25 (define (calculate-complex-expansion foobar) ...) 01:15:35 (define-syntax fnord ... (calculate-complex-expansion foobar) ...) 01:15:48 and have Scheme figure out what you intend. Is that accurate? 01:16:31 Well, that was an in library example, but what I am talking about (I wasn't clear) was that this is done at the library import/export point as well as just internally. 01:17:13 So Ikarus and Chez will instantiate libraries at phases needed for the code automatically. 01:17:16 Sorry, I first can't parse that sentence, and second don't want to get R6RS libraries and importation and exportation involved just yet, because they will add overhead. 01:17:24 Okay. 01:17:26 grettke [n=grettke@CPE-65-31-132-59.wi.res.rr.com] has joined #scheme 01:17:41 So, ignoring libraries, isn't it the case that introducing a procedure, and then later in the code using that procedure in a macro should just work? 01:17:51 So, I want a yes or no answer, possibly followed by clarification *if* the answer is `no': Is the example I wrote above illustrative of the concept you are talking about? 01:18:28 I believe that's correct. 01:18:36 OK. 01:18:37 At least, partially. 01:18:53 Now I'm going to expand the example a little bit to show why it is absolutely bonkers. 01:19:16 The first definition actually looks more specifically like this: 01:19:37 (define (calculate-complex-expansion foobar) ... (fnord (zot (mumble) snork) snark snerk snirk) ...) 01:21:13 Okay. 01:21:29 In order for a program such as a compiler to figure out what you even mean in your definition of CALCULATE-COMPLEX-EXPRESSION -- that is, how to interpret your code -- it has to be able to run the macro transformer associated with FNORD. But in order to run the macro transformer associated with FNORD, it also has to be able to run CALCULATE-COMPLEX-EXPRESSION -- whose very definition it does not yet know how to interpret. 01:22:50 arcfide pasted "This works..." at http://paste.lisp.org/display/69274 01:23:20 Sorry... 01:23:23 Hang on. 01:23:25 -!- Mr_Awesome [n=eric@isr5956.urh.uiuc.edu] has quit [Read error: 60 (Operation timed out)] 01:23:27 I know what you mean. 01:23:32 Now change LIST? to TEST-MACRO. It doesn't make a whit of sense, let alone `work'. 01:23:35 Yes, of course, your correct. 01:23:43 s/your/you're/ 01:24:03 Making the modification of wrapping it in a (LET () ...) illustrates your point. 01:25:01 I hope that Chez has ditched any notion of an extra-module `top-level' context or environment, because it, too, is confusing and also useless. 01:25:14 (Extra-`library', sorry.) 01:25:26 I do not know what you mean by this. 01:25:59 Can you write code, outside of a REPL, outside of an R6RS library, and outside of any other entity such as an R6RS library that Chez may accept? 01:26:11 `Code' as in definitions and expressions. 01:27:27 Anyway, it's not important -- if the answer is `yes', then Chez's semantics is just as broken as it formerly was (and as most Schemes outside of PLT and Scheme48 are). 01:27:49 You mean: echo '(define ...) ...' > test.scm | scheme ? 01:28:00 What I illustrated above is nonsense that is partly admissible under the rules of your, or Aziz's, `implicit phasing' doctrine. 01:28:08 Sorry, that's a bad illustration, but, yeah. 01:28:37 This doctrine leads to other vagaries such as the masking of serious programmer errors. 01:29:10 Chez Scheme will load a file of just definitions and expressions. 01:29:13 If that is what you mean. 01:29:19 Suppose a programmer is designing a missile-targetting DSL which is used to expand to various procedures involving PREPARE-THE-MISSLES and LAUNCH-THE-MISSILES and so on. 01:30:05 Because of stinginess from the government, and general apathy toward obliterating the planet (or at least Sarah Palin's back yard^W^W^W^WRussia), his poorly-funded project has only deployment machines to run on, no test machines. 01:31:02 Clarification: This DSL is a macro that expands to calls to procedures such as PREPARE-THE-MISSILES and LAUNCH-THE-MISSILES and so on. 01:31:21 The programmer wants to compile a test program to test just how the DSL is working for him. 01:31:59 do'h, just got bit by the broken lexical scoping rules in python, that of the for loop variable changing out from under me 01:32:33 Unfortunately, in the midst of writing his complex DSL, he omitted a SYNTAX form, as a result of which the transformer procedure for his MISSILE-LAUNCH-DSL macro contained a call to LAUNCH-THE-MISSILES, rather than a SYNTAX form to make an expression for a call to LAUNCH-THE-MISSILES. 01:33:36 jonrafkind: They're not really broken -- it just uses mutation rather than rebinding. 01:33:47 arcfide: is the example you pasted actually working in Chez? 01:34:00 What happens when he just asks Chez to compile his test program so that he can check the output of the DSL? 01:34:29 well something is broken, even if I do foo = loop_variable; and try to use foo, it keeps changing 01:34:40 I tried the foo = [loop_variable] trick as well 01:34:53 eli: It works at the REPL, not in the normal semantics, which is illustrated by wraping it in a (LET () ...). 01:34:59 the only solution is to wrap my code with def hack(foo): ...; hack(loop_variable) 01:35:10 If Chez detects `Aha! He had a reference to the name LAUNCH-THE-MISSILES out of phase, so I'd better bring it into phase by loading the relevant libraries.', then, well...no more foreign policy issues for Sarah Palin. 01:35:15 jonrafkind: can you paste an example? 01:35:19 ok 01:35:31 Riastradh: I think I see what you are getting at. You would expect this to fail, so that he is aware of his error. 01:35:37 -!- Modius_ [n=Modius@ppp-70-244-122-30.dsl.austtx.swbell.net] has quit [SendQ exceeded] 01:36:07 eli annotated #69274 with "What does this do?" at http://paste.lisp.org/display/69274#1 01:36:08 It is much better not to run code at all than to run it at random unintended moments when its consequences are least expected. 01:36:50 *eli* +1s Riastradh three times 01:36:54 arcfide annotated #69274 with "So this shouldn't work?" at http://paste.lisp.org/display/69274#2 01:37:02 Modius_ [n=Modius@ppp-70-244-122-30.dsl.austtx.swbell.net] has joined #scheme 01:37:11 Riastradh: So you would disagree that this should be a valid piece of code? 01:37:59 eli: Same question. 01:38:23 arcfide: What output do you get from my annotation? 01:38:36 Absolutely, arcfide. It should be flagged as an error with flying colours (and maybe flying zeppelins and LED displays, too). 01:38:37 arcfide: and to your question: yes, I'd expect this not to work. 01:38:46 (But no flying missiles.) 01:38:57 eli, http://pastebin.com/m669e7c51 01:39:28 the only reason I have a hashmap in there is because thats what my real code was using, but I could have just used an array too 01:39:31 jonrafkind: Ugh, I wanted some class-size example... 01:39:42 its 3 copies of the same function 01:39:53 jonrafkind, you are being bitten by mutation rather than rebinding. 01:39:57 ah. 01:40:02 yes, eli already told me that 01:40:27 eli: Your annotation (sorry, I did not see it) prints "test defined". 01:40:38 Mr_Awesome [n=eric@c-98-212-143-245.hsd1.il.comcast.net] has joined #scheme 01:40:38 arcfide: only once? 01:40:43 arcfide, try compiling and then running it separately. 01:40:45 eli: yes. 01:41:22 eli: did you want me to run anything or just load the definitions? 01:41:38 jonrafkind, well, not exactly: Python's brain-damaged lexical scope (which is not related its block structure) means that you are mutating your own variable n bound only once in all2. 01:41:39 arcfide: so this means that state can now be shared among the two phases now? 01:42:25 eli: The reason this works is because Chez treats these as things typed at the REPL. 01:42:27 jonrafkind, eli was referring (I suspect) to Python's implicit mutation rather than rebinding of variables in `for x ...'. 01:43:08 ok, but its the same thing 01:43:21 internally python does x = next_value; 01:43:34 jonrafkind, by contrast, Common Lisp's lexical scope is related to its block structure, but CL LOOP has the same problem as Python `for'. 01:43:46 So it's slightly different. Python is by far the worse offender, of course. 01:43:49 eli: the above does not work if you enforce some evaluation other than at the REPL. 01:44:04 Sorry: it is not specified whether CL LOOP has the same problem as Python's `for'; in some implementations it does, and in others it doesn't. 01:44:34 why dont they always rebind instead of mutate? 01:44:40 efficiency? 01:44:44 arcfide: Just a second, I'll post another bit 01:44:56 jonrafkind, confusion; brain damage; cretinism; &c. 01:45:17 :p guido seems like a smart guy 01:46:07 arcfide annotated #69274 with "Epic Fail..." at http://paste.lisp.org/display/69274#3 01:46:27 `Smartness' (whatever that means) is not necessarily related to having a clear grasp of the design and implementation of programming languages. 01:46:59 I am going to have some interesting conversations with Aziz and Kent over this one. :-) 01:47:13 eli annotated #69274 with "And what does this do?" at http://paste.lisp.org/display/69274#4 01:47:18 What phase problem are you guys discussing? 01:47:48 arcfide: So -- what does that version print? 01:47:50 Riastradh, ok, maybe on the planet your from you can be happy with such a loose interpretation of 'smart' 01:48:49 eli: you just want me to load this? 01:49:07 I definitely don't have a precise interpretation of `smart', but surely you must agree that there are plenty of people readily considered `smart' who probably haven't the faintest clue about the design and implementation of programming languages. Take, for example, Isaac Newton. 01:49:17 eli: it prints the same as before. 01:49:30 that is a strawman. guido designed the language himself 01:49:36 Try invoking TEST-MACRO and/or TEST, eli/arcfide. 01:49:41 arcfide: huh? It doesn't print "test called #"? 01:49:52 -!- Mr_Awesome [n=eric@c-98-212-143-245.hsd1.il.comcast.net] has quit [Read error: 60 (Operation timed out)] 01:49:57 Oh, yes, I forgot that... 01:50:10 grettke: Ikarus and Chez are both built on an idea where libraries imported will implicitly be promoted to phases greater than run phase if they are used in that way in the code, assuming that you don't use FOR. 01:50:13 Add a (test 1 2) at the end 01:50:38 jonrafkind, so? John Backus may have designed Fortran himself, but that doesn't mean he was any less confused at the time about programming languages (and fortunately, he came to his senses later on and tried to persuade people not to use the abomination he had unleashed upon the world). 01:51:41 arcfide annotated #69274 with "Results..." at http://paste.lisp.org/display/69274#5 01:51:42 (Of course it wasn't just Backus; there was committee-wide confusion. They had a bit more of an excuse than Guido, though, because they were, after all, pretty much the first to attempt designing a programming language.) 01:51:51 Eli: Sorry, did you mean TEST or TEST-MACRO? 01:52:00 ok so what you're saying is at the time of the design guido had brain damage and then maybe later came to his senses but by then it was too late, and maybe he didnt even come to his senses either 01:52:45 eli annotated #69274 with "Sorry, this is the proper thing to try" at http://paste.lisp.org/display/69274#6 01:52:49 I think that many Python programmers have deluded themselves into believing their approach preferable, because there are fewer errors detected by the language, and so it appears to be easier to use. 01:52:51 jonrafkind: Smart is subjective, I think that is all that he is saying. 01:53:54 The designers of Python, Perl, Ruby, Tcl, &c., pride themselves on masking of legitimate errors, in terms other than those. This is generally not so with Scheme. 01:54:00 eli: this prints out "test defined\ntest called #1\ntestcalled #2\n". 01:54:45 arcfide: OK, so it means that the *same* exact function is used at both levels, which means that there is no phase separation. 01:54:53 eli: No, not for the REPL> 01:55:02 arcfide, what if you compile test.ss and then run it? 01:55:24 arcfide: yes, that would be interesting too. 01:55:50 arcfide: and in any case, this makes me think even more than before that this is broken. 01:56:03 If I compile the file, it gives an error that TEST is not bound. 01:56:22 arcfide: that is, I thought that it might pull some trick like evaluate the code twice, but it doesn't -- which means that you lose on separate compilation. 01:56:34 (As you have just confirmed.) 01:56:59 arcfide: Do you know about the dynamic vs lexical scope thing in old Lisp implementations? 01:57:02 eli: in the case of the REPL, it just evaluates them as if it were seeing them on the REPL, which is different than compilation or treating them in a different context. 01:57:04 I have one more test which I'd like you to conduct, arcfide. 01:57:19 echo-area [n=user@cmdev1.test.cnz.alimama.com] has joined #scheme 01:57:26 eli: For example, this wouldn't work in modules, LETs, or libraries. 01:57:34 Unfortunately, brain damage in the XML-RPC protocol will slow my preparation of the test, so give me a moment. 01:57:53 Riastradh: I feel for you. Take all the time you need. 01:57:59 arcfide: while Riastradh is dealing with his XML problems -- do you know about the dynamic vs lexical scope thing in old Lisp implementations? 01:58:31 eli: As for the implicit phasing, they don't do some kind of phase separation of the two, Ikarus instantiates the library at the highest phase level necessary, making those procedures available for all lower phases as well. 01:58:41 eli: I've heard about it, but not much. 01:59:11 eli: Also, did you expect it to give an unbound error during compilation, does this reaffirm your understanding of how things are working and whether they are broken? 01:59:17 eli, I'm curious: do you teach your students about the history of programming language design (and issues such as the one you are about to beat arcfide over the head with)? 01:59:58 arcfide: the bottom line is that you'd get one semantics if code is evaluated (eg, on the repl), and different semntics for compiled code -- dynamic scope for the first and lexical for the second. 02:00:15 Yes. 02:00:27 Is this bad? 02:00:30 The experiments that you just did basically make it look like that -- compiling code has different semantics than on the repl. 02:00:33 *Riastradh* spews his drink. 02:00:39 LOL 02:00:46 I really hope that you think that it's bad. 02:00:52 (I need to brew some more tea in order to spew it; give me a few more minutes.) 02:00:59 I can see why this would be bad for almost all cases, but I can understand why some people would expect it to be good for the REPL. 02:01:03 (I'd have the same reaction if I was drinking.) 02:01:39 Riastradh: Yes, I do some bits here and there. Not much, because I suspect that it raises the "this course is disconnected from the real world" factor. 02:01:44 For example, if I type some procedure in the REPL. How should I now tell it that it should be available for expand phases as well as run phases on the REPL? 02:02:15 If I write test, now I want to use it in a Macro, would I have to always do something like (META DEFINE ....)? 02:02:16 In Scheme48, you type ,FOR-SYNTAX to run the form one level up in the syntactic tower. 02:02:23 arcfide: at least in mzscheme, there's `define-for-syntax' for that, or `begin-syntax' as a more general facility. 02:02:53 Right, this facility exists in Chez as well. I'm just not sure that I would want to type that every single time I am working. 02:02:55 Mr_Awesome [n=eric@isr5956.urh.uiuc.edu] has joined #scheme 02:03:15 Then again, it's not like I don't see your point. 02:03:22 I'm not sure I want to obliterate Russia, even if I don't care for vodka. 02:03:24 Some people don't like to type `define' every time the define a variable. 02:03:58 Hrm... 02:04:09 The result is letting the language guess where some identifier is implicitly defined when you write `x = 2'; the messes of that should be known to you. 02:04:18 s/messes/resulting messes/ 02:04:28 Riastradh annotated #69274 with "#scheme" at http://paste.lisp.org/display/69274#7 02:04:29 Of course. 02:06:12 There is, by the way, a simpler way to accomplish what you described, without dissertation-level complexity: Set the for-syntax environment to be the REPL environment. So I suspect there's something you're not telling us here, which my last test may illuminate. 02:06:28 (Set the for-syntax environment of the REPL environment to be the REPL environment, that is.) 02:07:12 I hope, by the way, that Chez is capable of loading R6RS libraries into its REPL. 02:07:19 Riastradh, may I adjust for presumed typing errors? 02:07:21 Otherwise that's a pretty useless REPL. 02:07:41 In the library (C), (IMPORT (RNRS) (A)) should be (IMPORT (RNRS) (B)), sorry. 02:07:45 Anything else? 02:08:13 Riastradh, (A) requires (SCHEME). Need an EXPORT form in (C). 02:08:48 Is the (SCHEME) library different from the (RNRS) library? 02:08:58 Riastradh: It provides PRINTF. 02:09:06 Um, okay. 02:09:22 Why is it called `Scheme' and not `non-standard Chez-specific extensions', or at least `Chez', then? 02:09:33 Backwards compatibility. 02:09:42 Backwards compatibility with pre-R6RS uses of R6RS libraries?? 02:09:49 Yes. 02:09:52 *Riastradh* raises several eyebrows. 02:10:10 BRB 02:15:18 arcfide annotated #69274 with "Loaded into REPL" at http://paste.lisp.org/display/69274#8 02:15:59 ! 02:17:25 -!- Nshag [i=user@Mix-Orleans-106-4-196.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 02:17:50 Chez truly baffles me. 02:18:02 I do not understand how it managed that output. 02:18:12 And you can never know. 02:18:18 Hooray for closed source! 02:18:58 Riastradh: It is also not possible to compile the libraries separately without loading the previous ones, I assume this is okay for testing purposes? 02:19:37 Of course, arcfide -- but I expect Chez to figure this one out on its own, without your intervention, unless I thoroughly misunderstand the fuzziness of `implicit phasing'. 02:20:47 arcfide annotated #69274 with "Compiled..." at http://paste.lisp.org/display/69274#9 02:20:50 That is, I expect -- if `implicit phasing' is anything like what I think it is -- that Chez ought to know that it must load (a) when all that you ask of it is to compile (c). 02:21:25 Riastradh: It can compile (C) only if it can find (A) and (B). 02:21:32 Riastradh: I think that what happens is: #1 -- the macro was invoked, #2 -- the C module was visited because it's used, #3 -- the actual use from the repl (test-macro) form 02:21:42 [I'm running a beta version of 7.5 BTW, so bugs are likely.] 02:22:40 eli, what I don't understand is how the count is not left at an even number at the end, because every invocation of TEST-MACRO ought to correspond with one compile-time call to TEST and one run-time call to TEST (with the straightforward control flow in that example). 02:23:07 Riastradh: to answer your question about the (scheme) import, the Module form has had a scheme import for a while, and so it was kept and the same name used for libraries. 02:23:29 eli, so I expected, for instance, to see `test called 2' after arcfide wrote (IMPORT (C)) at the REPL. 02:23:37 Riastradh: Does the compiled version make the same amount of non-sense to you? 02:23:42 FWIW, I agree that "implicit phasing" is a good term for this -- it's just something that I didn't expect so I didn't think that it actually does it. 02:24:08 Hah. 02:24:25 Riastradh: Okay, now that I have run the tests, can you explain where things don't make sense? 02:24:48 (IOW, I took it in the same way as I'd take "a car with square wheels".) 02:25:27 arcfide, can you set a breakpoint on TEST, and find out in what contexts it is actually being called in the first example? The output at the REPL without any incremental compilation, I still truly do not understand. 02:25:35 After having gone through some rather hairy lectures by Aziz, I think that I can explain some parts of it to you. 02:26:09 Unfortunately, REPL semantics are different than compile time semantics, as we have seen. :-) 02:26:25 Why does entering (IMPORT (C)) at the REPL not have the effect of printing `test called 2'? 02:26:40 Riastradh: This is in the loaded code? 02:26:45 (This is in the REPL-only interaction, without explicit compilation.) 02:26:47 arcfide: by "lecture" I hope you mean some seminar, not part of a class... 02:27:01 tizoc_ [n=user@r190-135-3-37.dialup.adsl.anteldata.net.uy] has joined #scheme 02:27:21 eli: It's part of a class I am taking, and no, it's not taught as anything beyond "This is what I am researching, and this is how I implemented Ikarus." 02:27:40 It was actually about four lectures or more. 02:28:19 arcfide: consider me choking on my coffee/tea/whatever. 02:28:55 Riastradh: Okay, so what you expected is for (import (c)) to call TEST? 02:29:01 I think I'm at the point of exploding in a plume of green smoke, leaving nothing but a little trickle of slime on my drummer's throne. 02:29:08 When I LOAD each of those files individually at the REPL? 02:29:17 (Fortunately I have not choked on anybody *else*'s vomit.) 02:29:44 arcfide, yes: I expect (IMPORT (C)) to have the effect of executing the top-level forms of the (C) module, since hitherto Chez had had no reason to do so. 02:30:02 I think this is how things go... 02:30:18 -!- underspecified [n=eric@softbank220043052011.bbtec.net] has quit [] 02:30:24 I load (a), which has the effect of expanding that library code and so on. 02:30:34 Sorry, please tell me what the verb `load' means. 02:30:41 (LOAD "test1.ss") 02:30:43 &c. 02:30:50 OK, what does the procedure LOAD do? 02:30:52 -!- tizoc [n=user@r190-135-6-11.dialup.adsl.anteldata.net.uy] has quit [Nick collision from services.] 02:30:55 -!- tizoc_ is now known as tizoc 02:31:00 (when test1.ss contains an R6RS library form) 02:31:10 At this moment, it just reads the LIBRARY form and expands it. 02:31:22 It also evaluates the procedures inside. 02:31:25 Expands the code within the library form? 02:31:31 And binds their values, &c. 02:31:32 Expands *and* executes the top-level forms inside the library. 02:31:50 No, it will not necessarily execute the expressions in the library. 02:31:55 If I understand Aziz correctly. 02:32:01 Sorry, I'm confused, then. 02:32:10 What does it mean to `evaluate the procedures inside [the library form]'? 02:32:26 Sorry, it binds the definitions to their names. 02:32:43 What is a definition? An association between a name and its syntactic meaning? 02:33:25 Wait, what am I doing, I have his slides right here.... 02:33:27 LOL. 02:33:38 (Usually when I say `definition', I mean a form of the form (DEFINE ...) or (DEFINE-SYNTAX ...), which, when processed by a compiler, has the effect of associating a meaning with the name. What I *suspect* you mean by `definition', I call a `binding'.) 02:33:48 Yes. 02:33:55 It binds all the names to their values. 02:34:02 ...no, that's different! 02:34:04 Sorry. 02:34:08 *Value* is different from *meaning*. 02:34:35 It expands and evaluates the right hand sides of every DEFINE and DEFINE-SYNTAX. 02:34:59 It binds the results of evaluating this to the left-hand names. 02:35:12 Suppose I write (LET ((X 5)) X). The *meaning* of the name X within the body of that LET, assuming that LET is bound to its usual meaning of the standard derived syntax, tells me how to interpret the name X, and where at run-time I can find the value of the variable that the name X means. 02:36:21 In the R5RS, there are three kinds of meanings: primitive syntax, derived syntax, and variable. At run-time, each variable has a unique location in memory where its value is stored. Primitive syntax and derived syntax do not exist at run-time; these meanings of names exist only syntactically in order to drive an analyzer of Scheme code. 02:37:05 An environment is a mapping from names to meanings. 02:37:23 treat variables as keywords 02:37:57 At run-time, the names are immaterial, and all that are left are the meanings relevant to the program; references by name have been resolved by the macro-expander and compiler (and linker and anything else) into their meanings as variables. 02:38:21 Okay. 02:38:39 I think we're using different terminologies. 02:38:53 Riastradh: synthcode.com is back up - there was a power outage 02:39:08 Yes, Captain Obvious. Now, a *value* in a program does not exist at the compilation (or macro expansion) phase of that program. 02:40:15 If I write the Scheme program (BEGIN (DEFINE X (COMPUTE-IT)) (DISPLAY-IT X)), a compiler knows what the name X *means* when the program refers to it in (DISPLAY-IT X), but it hasn't the faintest clue (except by various approximating analyses of the program) what the value of X might be at run-time. 02:40:48 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [] 02:41:01 Okay, I see what you are saying. 02:41:25 So a compiler can generate a program with an equivalent program-meaning in another language -- i.e. a program that yields the same answers for the same initial conditions -- by virtue of its knowing (or at least its pretending to know -- here we get kinda metaphysical) the meaning of the input program. 02:41:37 tizoc_ [n=user@r190-135-3-36.dialup.adsl.anteldata.net.uy] has joined #scheme 02:42:08 -!- tizoc [n=user@r190-135-3-37.dialup.adsl.anteldata.net.uy] has quit [Nick collision from services.] 02:42:27 -!- tizoc_ is now known as tizoc 02:42:34 In order to know the meaning of a Scheme program, though, -- and by `program' here I mean it in the R5RS sense as a collection of definitions and commands (which may be enclosed in and organized among R6RS libraries or similar) -- it must be macro-expanded first. 02:42:45 Riastradh: Okay, I am going over the details of what happens, and I think I can explain a bit more clearly what's going on now. 02:44:00 In order to know the *values* of top-level variables in a Scheme program (and again, this is in the R5RS sense, which may be enclosed in R6RS libraries or Scheme48 packages or what have you), the top-level forms leading up to and including the definitions of the variables -- as well as any subsequent top-level forms if they will change its value and you want to know its value after that time -- must be executed. 02:44:13 So. 02:44:24 When you type `scheme-7.5 test.ss', what does Chez do? 02:44:30 Okay...hahaa. 02:44:34 *phew* 02:44:37 Thanks for the lesson. 02:44:56 Now, there are three stages Aziz defines for Ikarus, and Chez supposedly maps to this pretty closely. 02:45:04 There is expansion, invocation, and visitation. 02:45:32 When loading the only thing that happens is expansion. 02:45:32 AtnNn [n=welcome@modemcable230.56-56-74.mc.videotron.ca] has joined #scheme 02:45:37 Here's what I assumed that it would do (and what PLT does in a similar scenario): It associates the code and other information within the library form with the name of the library form so that later run (import ), it can expand and execute the top-level forms in the library. This, however, is wrong. 02:45:50 (That's what Scheme48 does in a similar scenario as well.) 02:46:46 Yes, I think we covered that a bit. 02:47:25 In Chez and Ikarus, LOADing or compiling a library merely produces the core code of a libraries variable and macro definitions. 02:47:50 Sorry, I don't know what the phrase `core code' means, and I assume you meant to affix an apostrophe to the end of the word `libraries' here. 02:48:02 Yes. 02:48:22 *Please* make your best effort to communicate as clearly as you can, because we are clearly communicating extremely murkily here, and that is a source of problems. 02:48:28 Sorry, the core code is the code expanded/optimized down to the primitives of the implementation. 02:48:49 Sorry, I don't know what `the primitives of the implementation' means, nor `optimized'. 02:49:01 Any "core" form that the implementation is able to use without further expansion or conversion to other forms. 02:49:15 Let's pretend that `compilation' doesn't exist, and that we can execute the output of expansion. 02:49:31 -!- travis|away is now known as travisbemann 02:49:49 so arcfide is saying when you LOAD a library, the library form is expanded? 02:50:46 Riastradh: the core forms would, for example, be the language used by the implementation to describe the rest of the language. I think the microcode defines such a set in MIT. 02:51:09 That's an implementation detail, arcfide. I don't want *any* implementation details in this discussion. 02:51:26 mejja [n=user@c-7d2472d5.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 02:52:43 primop [n=primop@12.31.121.91] has joined #scheme 02:52:44 Hrm, I'll try. 02:53:21 Core code is code written in a set of "primitive" such that the implementation does not have to perform any expansion or other transformation on the code before directly executing it in some implementation specific way. 02:53:24 Does that work? 02:53:26 So. In terms of the words `expand', `execute' (or `invoke' if you prefer and if it appears to be synonymous with `execute' to the best of your understanding), and `visit' (which you have yet to define, but which I think I can guess about), what does Chez do when you run `scheme-7.5 test.ss' at a Unix shell, or when you type (load "test.ss") at the Chez REPL? 02:53:44 what's in test.ss? 02:54:45 Chez Scheme expands each library in turn. When expanding a given library, its dependent libraries are invoked if exports from those dependent libraries are evaluated during expansion by the library that we are expanding. 02:54:57 Invokation happens at most once. 02:55:03 arcfide, if I understand correctly, you are telling me that there is some intermediate computational step between expansion and answer in: program ---expand---> expansion ---execute---> answer. 02:55:33 Yes. 02:55:39 If I understand you correctly. 02:55:44 Riastradh: what does your ---> mean? 02:56:27 OK. I don't care about this extra step, unless you can tell me why it is semantically relevant to the programs I write; I suspect that it is just as irrelevant as are the eighty different passes of Chez's compiler. 02:56:32 -!- travisbemann is now known as travis|brb 02:56:35 Invoking code is evaluating/executing the code that initializes variable definitions and also evaluates the initializing expressions. 02:56:58 So, the expressions you type, like (TEST-MACRO) only occur when a library is invoked. 02:57:02 And they only occur once. 02:57:25 However, a library is not invoked until it is used inside another library or in the REPL, in this case. 02:57:28 primop, read it as a diagram of function composition. It would be commutative if there were more than one path. 02:57:40 arcfide, hang on. 02:57:40 When I say used, I mean that exports of that library are evaluated. 02:57:42 Stop. 02:58:05 s/only occur/only get evaluated/ 02:58:20 Riastradh: you mean expansion and execution are commutative? 02:59:06 Are you telling me that, arcfide, invoking the expansion of a sequence of definitions and commands has the effect of evaluating the right-hand sides of the definitions and storing the resulting values in the locations of the corresponding variables defined by those definitions -- and all this *without* also executing the commands among the definitions? 02:59:21 primop, er, no. Do you know what `commutative diagram' means? 03:00:03 All the definitions have to come together 03:00:08 Riastradh: What do you mean commands among the definitions? 03:00:13 Riastradh: yes I do, and that's why I was surprised when you said expansion and execution are commutative 03:00:22 arcfide, for example, suppose I visit the library derived from the following text: (library (foo) ...whatever imports and exports are necessary... (define x 5) (write 'hello) (define y 3)) 03:00:33 that's not a valid library 03:00:48 arcfide, will this have the effect of storing the value 5 in the location of the variable named x, storing 3 in the location of the variable named y, and writing no output? 03:00:51 Riastradh: R6RS libraries permit only DEFINITIONS ... EXPRS ... 03:01:06 They do not permit the mixing of these. 03:01:08 Riastradh: you need to understand the syntax of R6RS libraries before arguing about semantics 03:01:14 OK, suppose I transpose the write and the second definition. 03:01:32 primop it's after expansion, so it's not exactly just the syntax 03:01:36 Riastradh: Visiting is another ball of wax. Visiting does nothing in this case. 03:02:24 primop, expansion and execution are not commutative, and there is no sense in calling my diagram above `commutative' except pathologically, because there is only one path along the arrows to follow. 03:02:35 Sorry: `expansion and execution do not commute'. 03:02:40 Invoking has the effect of evaluating the core form of 5 and 3, binding the results of these evaluations to the locations set aside for x and y, and evaluating (WRITE 'hello). 03:02:58 OK, arcfide. 03:03:07 Are we on half of the same page? :-) 03:03:20 Visiting has the effect of evaluating the code that initializes the macro definitions. 03:03:30 So far, I believe that we agree on the meanings of the terms `expand' and `invoke', and probably also `visit'. 03:03:35 No, not `visit'. 03:04:47 Riastradh: why did you bring this whole commutatilivity business when the your arrows did not commute to begin with? 03:05:16 A library that is being expanded may "visit" another library for which there is a "visit dependency." That is, if expanding one library uses a macro in another library, this macro definition's right hand side is first evaluated and then used during the expansion of other libraries. 03:05:24 Let me try to confirm my understanding of `visit': The effect of visiting a library L is to associate with the name of each macro exported by the library L a transformer procedure suitable for the expander to apply in the expansion of the forms of library that imports L. 03:05:48 primop, 03:06:09 Riastradh: nice! 03:06:11 primop, `commutative' does not mean that the arrows along a single path are interchangable or reversable. 03:06:30 Riastradh: almost, not just exported macros are expanded, but any that are going to be needed. There is an implicit export of all the necessary code, but yes, other than that, you are right. 03:06:40 primop, it means that given any two paths from the starting point to the ending point, the compositions of the arrows along those paths are equivalent. 03:07:15 Riastradh: but there's only a single path in this example, right? 03:07:18 primop, so vacuously my diagram was commutative, because there was only one path. I suggested `commutative' to hint at how to interpret the diagram, because otherwise `diagram' has many meanings. 03:07:25 you have to expand before you execute 03:08:01 arcfide, yes, sorry: when I said `exported by the library L', I meant `defined in the library L'. 03:08:06 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 03:08:23 Riastradh: Okay, so now that invoke, visit, and so forth are semi-clear.... 03:08:35 Invoke and visits to a given library happen only once. 03:08:44 Riastradh: okay, I think it's better if you don't make vacuous statements since they confuse your intent 03:09:06 arcfide, sorry, I can't parse that. 03:09:36 Please try to use English nouns in contexts where English would require nouns, and likewise verbs. 03:09:50 Did you mean `Invocations and visitations of a given library happen only once.'? 03:10:10 Riastradh: Invocation of a library happens once and only once at the point where its exported variables are referenced. After this, invocation is not done again, and the bindings for the variables are just re-used. Same for visitation at the expansion of libraries. 03:10:12 The gerundive is acceptable, too: `Invoking and visiting a given library happens only once.' 03:10:21 Stop! 03:10:38 `At the point where its exported variables are referenced'? 03:10:53 Suppose I have a library (FOO) which exports a variable named X. 03:11:00 Sorry, that should be defined in library body. 03:11:07 Okay. 03:11:25 (FOO) has the following top-level command: (write 1) 03:11:33 Gotcha. 03:11:37 I also have a library (BAR) which contains the following top-level commands: (write 2) (write x) 03:11:46 Okay. 03:11:53 -!- xz [n=ramana@c-98-228-42-177.hsd1.in.comcast.net] has quit ["leaving"] 03:11:58 Now suppose (FOO) when executed will store the value 3 in the location of the variable named x. 03:11:59 Aaah.... 03:12:10 I think I know where this is going. 03:12:18 And finally suppose that I invoke (BAR). What output am I to see? 03:13:21 Riastradh: When you say store the value...you mean something like (SET! X 3) in the library body? 03:13:30 Let me be more specific, then. 03:13:41 (library (foo) ...export x and import whatever... (define x 3) (write 1)) 03:13:53 (library (bar) ...import (foo) and whatever else... (write 1) (write x)) 03:14:10 Ah, yes... 03:14:15 Let me see... 03:14:18 Now I invoke (bar). What output am I to see? 03:14:21 I'd actually have to try it... 03:14:23 You should be able to tell me this without running Chez. 03:14:44 -!- appletizer [i=user@82-33-193-228.cable.ubr04.hawk.blueyonder.co.uk] has quit [Connection timed out] 03:14:51 Well, I believe from what I read that the invocation will print 2 first, then 1 and then 3. 03:15:05 If not, I am highly suspicious of any claim of understanding the semantics of Chez. 03:15:29 This is one part where I admit I'm not fully sure of the semantics, but I would expect that output. 03:16:04 You meant to say (write 2) in the (bar) definition, right? 03:16:11 Yes, I did; sorry. 03:16:38 hrm.... 03:16:40 *arcfide* thinks. 03:17:06 Okay, wait, no, it's possible during expansion that we would see what values are referenced.... 03:17:49 Invocation either always happens before all the evaluations, or it happens at the point (no, duh, right?), but I am not sure which. 03:18:20 Riastradh: if bar is invoked, you'll get 123 (that is: foo is invoked first, defining x=3 and printing 1, followed by printing 2 and 3 from the body of bar) 03:18:48 Yes, I believe that's correct, rereading the slides. 03:19:57 Yes, of course, duh. 03:20:00 Yeah, no, this is clear. 03:20:20 Invoke, Visit, and Import dependencies are generated during library expansion. 03:20:44 So, all the dependencies are known before invoking a given library, so, all invoke dependencies are performed first. 03:21:19 Riastradh: Does this clarify Chez's behavior? 03:21:32 underspecified [n=eric@isa7-dhcp-116-122.naist.jp] has joined #scheme 03:22:00 Yes, arcfide. 03:22:11 Riastradh: I am guessing that you think it's a pretty weird way to do it? 03:22:18 Would you consider it wrong? 03:22:26 No, you are converging on something more sensible than what you began to describe. 03:22:35 Hahaha. Sorry. 03:22:35 :-) 03:22:48 Forgive my errant imprecision. 03:23:26 So, the only issue now is implicit phasing, and why it's a bad idea. 03:23:37 So: What happens when I type (load "test.ss") at the Chez REPL, and test.ss contains the three library forms I pasted in annotation #7? 03:24:03 Riastradh: forget about the repl which has no sensible meaning under any implementation 03:24:14 Riastradh: with fixes, it will proceed to expand each of the libraries in turn, and visit the other libraries as needed, invoking if needed as well. 03:24:29 quoting matthew: the repl is hopeless (or something like it) 03:24:52 primop, the REPL has *some* meaning, or else it wouldn't give any output at all. 03:24:59 So, expanding (a) will go along without triggering a dependency on (b) and (c). 03:25:16 I'd like to understand exactly how it is broken, because right now I don't understand what bizarre contortions of bogosity lead to the output arcfide pasted. 03:25:23 During expansion of (b), there is an invoke dependency on (a). 03:25:28 Riastradh: yes, but there's no point discussing its semantics. we were talking about libraries, so, forget the repl 03:26:54 primop, there is a point; you may not care about it because you share a widespread preconception about inherent incompatibility between R6RS libraries (and their ilk) and REPLs, whose perpetuation has never ceased to baffle me. 03:26:54 So, (a) will be invoked when (b) is expanded. 03:27:49 There is a visit dependency on (b) when expanding (c), so (b) will be visited, resulting in a call to (test). 03:28:03 Riastradh: you don't need to make any presumptions about my preconceptions 03:28:19 -!- travis|brb is now known as travisbemann 03:28:27 arcfide, sorry, you're going into more detail than I want right now. At the moment I just want to know, generally: What does Chez do when you load a file containing library forms? 03:28:29 If I then import (c), I haven't used it, so nothing will happen. 03:28:37 Oh.... 03:28:58 It just iterates through the file forms (I suspect using something like read) and evaluates each in turn. 03:29:04 Riastradh: Ikarus expands them and sets them aside for future use. 03:29:05 Does it just record the libraries for later reference? Does it expand the libraries? Does it invoke the libraries? 03:29:09 Evaluating a library form is the same as expanding it. 03:29:20 maybe chez does the same 03:29:21 It does not invoke. 03:29:29 primop, yes. 03:29:41 primopo, we are really discussing Ikarus here, which Chez has mostly copied in this case. 03:29:54 arcfide: ooh, okay 03:31:40 Riastradh: Does that satisfy your notion of how the loading works for Chez in the REPL? It's basically just like typing each form individually into the REPL. 03:31:53 It evaluates the forms, and in this case, the libraries are evaluated by expanding them. 03:32:09 Invocation only happens when you use the code defined in the library body somehow. 03:32:18 Either in another library or on the REPL. 03:32:37 and mornin' #scheme 03:32:54 Does this also clarify why Chez behaves the way you don't expect in the example of LOADing test.ss? 03:32:58 *primop* thinks Riastradh fell asleep 03:33:03 So, let me see whether I understand what Chez is doing here: When, in the course of expanding an expression in some library X at some phase level L, it encounters a name whose meaning was imported from another library Y, it implicitly records the dependency that Y must be invoked before phase L in X can be executed. 03:33:23 Excuse me: This is what I understand `implicit phasing' to mean. 03:34:09 Riastradh: close 03:34:19 Unfortunately, I can't speak to the exact semantics too mcuh, since Aziz hasn't been kind enough to share the whole dissertation with me, but I believe that you are near the mark. 03:34:56 Also, is Chez applying the semantics of `implicit phasing' in your output in annotation #8? 03:35:14 In his casual remarks, Aziz basically said that as "we go through the libraries and are expanding, invoking, &c. if we see a value that is needed, we just import into the phase which would make it work." 03:35:59 I believe so. 03:36:11 Yes, sorry: I omitted mention of the environmental relations. ...it implicitly records the dependency that Y must be invoked before phase L in X can be executed, and the name in question at phase L in X will have meaning imported from Y. 03:36:34 Riastradh: Since, normally, (a) is imported into (b) at run phase, then is used during expand phase, I believe Ikarus/Chez examines this and promotes the import of (a) to an expand phase import. 03:36:48 Stop! I haven't gotten there yet. 03:37:02 You've told me what `scheme-7.5 test.ss' at the Unix shell and `(load "test.ss")' at the Chez REPL mean. 03:37:16 Okay. 03:37:17 You haven't told me what `(import (c))' at the Chez REPL means. So: What does it mean? 03:37:56 This just means, make available the exported macros and bindings. 03:37:57 Riastradh: (c) exports nothing, so, importing its empty export set does nothing 03:38:04 It doesn't invoke, or do anything else. 03:38:23 It takes the environment created by the expanded library, and makes those names available to the REPL. 03:38:35 OK. I think I now see what went wrong with my understanding of that REPL interaction. 03:38:38 (c) was never invoked. 03:38:45 primop: Even if we export something it doesn't invoke the library, or visit it, yet. 03:38:52 Yes. 03:39:01 So how do you invoke (c)? 03:39:06 (at the REPL) 03:39:10 If I had later used code from this (I did this by re-exporting test-macro there), you will see this happen. 03:39:14 Riastradh: you don't invoke things manually 03:39:38 (library (c) (export test-macro) (import (rnrs) (b)) (test-macro)) 03:39:38 That's not an answer, primop. 03:39:54 No, that's ridiculous. That's a hoop to jump through which is irrelevant to what I want. 03:39:55 Riastradh: it's not a question either 03:39:55 Then, when you (import (c)) you can follow this with (test-macro) and it will invoke (c). 03:40:18 Riastradh: I know of know way to invoke a library except to use code defined inside of it. 03:40:28 I believe that the REPL interaction breaks down here somewhat. 03:40:39 arcfide: no. because (c) did not define the variable test-macro 03:41:13 Oh, right. 03:41:13 maybe add (define (c-export) (printf "hello C\n")) and export c-export from (c) 03:41:25 Sorry, Riastradh, yes, the above is incorrect. 03:41:34 You can't invoke C. 03:41:40 So Chez's REPL is crippled. 03:41:48 and then (import (c)) from the repl and then call (c-export) 03:41:50 Riastradh: What would you like to see? 03:42:08 yes Riastradh, what would you like to eat? 03:42:16 Riastradh: actually, in any library, unless you export something from a given library, it will not ever have the chance of being invoked. 03:42:17 I'd like to see a way to request that the forms I told Chez about in the library (c) be executed. 03:42:29 I agree that this might be useful. 03:42:40 I'll talk to Kent about this. 03:42:49 I think he would be willing to put in such a feature. 03:42:54 Riastradh: so, you want an explicit (invoke (c))? 03:43:07 Furthermore, I don't immediately see a reason why typing (import (c)) at the REPL shouldn't also invoke (c). 03:43:18 Yes, primop. 03:43:21 eno__ [n=eno@adsl-70-137-141-189.dsl.snfc21.sbcglobal.net] has joined #scheme 03:43:36 Riastradh: because having an (import (c)) in a library does not immediately invoke (c) either 03:43:50 Riastradh: would you also want an explicit (visit (c)) too? 03:44:06 So how do I say in a *library* that in order to execute the top-level forms, the top-level forms of an imported library must have been invoked? 03:45:09 At the moment, I don't know that there is a way. 03:45:13 Not a portable way. 03:45:24 I don't know if there is any way. 03:45:45 Consider, for instance, three libraries (foo), (bar), and (baz). (foo) defines a CLOSsoid generic procedure FROB; (bar) adds a method to FROB; (baz) calls FROB at the top level with an argument for which (bar) defined the method. 03:46:22 It sounds to me as though there is no way for the programmer to tell Chez -- and no way for Chez to infer -- that invoking (baz) requires having invoked (bar). 03:46:31 Riastradh: how would I tell MzScheme *NOT* to invoke a library that I import, use at expand time, but not use at run time? 03:46:49 I believe you may be correct here, without a workaround like defining a procedure INVOKE-BAR in the bar library. 03:47:32 You can choose to visit compiled files...among other things.... 03:47:42 But I don't know that you can explicitly do this, yet. 03:47:51 However, Chez's interface is still in Beta. 03:48:28 I'll talk to Kent, and he might have an answer. If not, I think I wouldn't mind putting in this kind of request. 03:48:36 primop, suppose I have two PLT modules FNORD and VEEBLEFITZER. (These are analogous to R6RS libraries.) FNORD exports a variable named COMPUTE-EXPANSION whose value will be a procedure. VEEBLEFITZER defines a macro in whose transformer procedure I want to call this procedure to compute the expansion. 03:48:58 nonono 03:49:00 STOP! 03:49:00 primop, the invocation of VEEBLEFITZER should not incur invocation of FNORD, however. Does this match the situation you want? 03:49:03 Riastradh: one option is to use modules in Chez. 03:49:12 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 03:49:41 say you have a library that defines a macro M and some variable whose initiaization takes a long time to compute 03:49:48 and I only use M 03:49:50 Riastradh: actually, yes, that's the easiest way to handle it. 03:50:32 how can I import that library so that I can use its macros but not incur the cost of its runtime variable definitions? 03:50:34 primop, if I am a client of your library, do I know that detail? 03:51:14 Maybe you do 03:51:24 maybe it's in the documentation 03:51:27 The dependency you are talking about is a pragmatic one. 03:51:36 The dependency I am talking about is a semantic one. 03:52:22 ohh, okay 03:52:26 You could readily design your code differently so that the semantics is preserved, but with better pragmatics. In fact, more than one person could do so, and we could wind up with three pragmatically different versions of semantically equivalent libraries, between which clients could choose at will without altering their own code. 03:52:59 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit [Read error: 101 (Network is unreachable)] 03:53:41 anyways, nice talking to y'all 03:53:45 time to go to bed 03:53:57 -!- primop [n=primop@12.31.121.91] has quit ["time for bed"] 03:54:41 Riastradh: I think I am going to turn in as well. Are there any other comments or questions that you had. 03:54:45 ? 03:54:54 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 110 (Connection timed out)] 03:55:43 *arcfide* sleeps. 03:55:54 and yet, he still types 03:56:07 Cthulhu fhtagn; typeth Cthulhu? 03:56:21 ¿sllW noq ul no W 03:57:12 Who's Millis? 03:58:17 I duno. 03:59:04 sllm ... m 03:59:12 doesn't do upper-case for some reason 04:03:12 -!- arcfide [n=arcfide@99.14.208.195] has quit ["Leaving"] 04:03:34 unicode is awesome <3 04:07:04 -!- wastrel [n=wastrel@nylug/member/wastrel] has quit ["bye now"] 04:09:10 offby1, got all that about phase separation, by the way? There'll be a quiz on Tuesday. 04:09:48 oh sure 04:09:57 *offby1* picks his teeth with a matchbook cover 04:10:32 Riastradh: Ninety percent of you is composed of germ cells... 04:15:09 Bed-phase for me now! 04:16:33 -!- mejja [n=user@c-7d2472d5.023-82-73746f38.cust.bredbandsbolaget.se] has quit ["http://abcnews.go.com/Health/ColdandFluNews/Story?id=6106018&page=1"] 04:23:34 -!- jonrafkind [n=jon@wireless30.wireless.utah.edu] has quit [Read error: 110 (Connection timed out)] 04:23:38 christ: i'm in that horrible existential aporia where any activity other than studying engenders physiological stress; but the studying itself is wearisome 04:24:14 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 04:25:38 How sad... I looked up the definition of "aporia" in Japanese to learn the meaning... 04:26:39 also: my daughter can induce xterm to change from a 8x9 to an 8x16 font through a stochastic series of keystrokes 04:26:48 any idea what the hell she did? 04:27:55 foof: how do the japanese conceive of aporia? is it different from the greeks? 04:28:42 klutometis: In Japanese it's . 04:28:49 I don't know Greek :/ 04:29:03 i mean, do they understand it in a peculiar way? 04:29:23 No, that literally translates to "internal inconsistency." 04:29:32 bbl... 04:29:49 -!- npe [n=npe@66.112.249.148] has quit [] 04:30:04 interesting 04:30:23 *klutometis* looks for contraindications to sapir-whorf 04:31:26 -!- eno__ [n=eno@adsl-70-137-141-189.dsl.snfc21.sbcglobal.net] has quit ["leaving"] 04:32:42 *klutometis* invokes the power of greyskull 04:34:52 by the power of greyskull, i'll persist studying for this goddamn midterm 04:47:27 -!- foof [n=user@dn157-046.naist.jp] has quit [Read error: 110 (Connection timed out)] 04:51:40 -!- MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has quit ["Leaving."] 04:52:18 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 05:10:11 tjafk1 [n=timj@e176218174.adsl.alicedsl.de] has joined #scheme 05:10:59 -!- benny` [n=benny@i577A0237.versanet.de] has quit [Read error: 113 (No route to host)] 05:13:26 -!- tjafk2 [n=timj@e176205190.adsl.alicedsl.de] has quit [Read error: 60 (Operation timed out)] 05:13:49 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 05:15:44 foof [n=user@clair12.naist.jp] has joined #scheme 05:16:38 geckosenator [n=sean@c-24-8-193-190.hsd1.co.comcast.net] has joined #scheme 05:21:26 -!- CaptainMorgan [n=CaptainM@c-24-61-150-59.hsd1.ma.comcast.net] has quit [Remote closed the connection] 05:27:42 la la la 05:31:04 duncanm: i counter with "me me me", thus resulting in a devil's interval (augmented fourth) 05:31:14 aporia... A figure in which the speaker professes to be at a loss what course to pursue, where to begin to end, what to say, etc. 05:31:20 DUM de dum 05:31:26 Sounds like a beautiful and terrible word. 05:31:56 synx: indeed; most of the socratic dialogs end on an aporia 05:32:03 quite maddeningly, too 05:32:17 klutometis: it's fa ti that's the devil's interval 05:32:30 Yeah Socrates was one helluva bastard. 05:32:33 synx: augmented forth can occur anywhere, though 05:32:40 fourth* 05:33:00 not just on f-b 05:33:24 But only in the mixolydian scale on f-b 05:33:30 *mode 05:33:42 that's only mixolydian c, though 05:34:07 Thus why I said fa ti. 05:34:29 wait: mixolydian has a b-flat 05:34:40 hellues [n=hellues@85.96.7.82] has joined #scheme 05:34:49 that's an unaugmented fourth 05:35:29 No mixolydian starts on the 5th note of the scale... 05:35:50 sure: if you're talking about g mixolydian 05:36:03 but you can have a mixolydian on any tonic, right? 05:36:07 No that would be an F-major mixolydian. Thus the B-flat 05:36:14 Yes, I'd say so. 05:37:37 With everything wrong with PHP, it's surprising some people are using the namespace syntax as a reason to jump ship. 05:37:40 oh, ok: what i refer to as "c mixolydian" you refer to as f mixolydian, because it resembles the f ionian 05:37:58 but this is c mixolydian: http://en.wikipedia.org/wiki/Image:Mixolydian_mode_C.png 05:38:15 Wait... oh you know 05:38:22 I think I was thinking of Ionian. 05:38:27 I'm totally wrong, sorry. 05:38:29 Especially since without namespaces the language is fundamentally broken. 05:38:32 foof: What is the namespace syntax reason? 05:38:34 foof: that's pretty ironic, i agree 05:38:39 grettke: backslash separator 05:38:53 lydian is the 4th, mixolydian is the 5th, and ionian is the 1st on the C-scale. 05:38:54 *Everything* is in one big namespace and there isn't even a way to declare non-exported functions. 05:39:03 synx: right 05:39:12 backslash...separator... 05:39:31 So is everyone moving their code into classes? 05:39:38 klutometis: sorry it's been 7 years since I had the pleasure of studying music. 05:39:40 grettke: Foo\Bar 05:40:02 what is the rationale that you hear regarding the syntax? 05:40:08 they're using a backslash. 05:40:13 synx: heh; been awhile for me, too 05:40:13 *synx* facepalms 05:40:32 grettke: something about the hardest to mistype, or something surreal 05:40:33 Presumably they ran out of special characters. 05:40:53 I discovered a mode the teacher had never seen before. Later learned they call it the "major/minor" mode. Composed a few pieces in it too... 05:41:03 hey, hellues is messaging me because he got banned from #scheme 05:41:06 anyone know the story? 05:41:37 It can produce some really haunting melodies. 05:41:47 synx: flat third with raised sixth degree and leading tone? 05:42:07 klutometis: It would not surprise me if he got banned. 05:42:07 klutometis: Bottom half major, upper half harmonic minor. 05:42:23 He was asking lots of stupid questions without the needed background 05:42:28 So the first 5 notes sound like a major scale, but the 6th and 7th are down a half step. 05:42:29 to even attempt them himself. 05:43:05 synx: that's a nice one, actually; i improvise on it alot: it resembles an abrupt modulation to minor 05:43:22 Lowered 6, lowered 7 and 1 is a really brutal progression. It's almost parallel 5ths 05:43:32 foof: he used to provide me with a dose of daily surreality; or maybe it was just poor command of english 05:43:34 I like it a lot for dramatic emphasis. 05:44:19 synx: so you have no tonic? what sort of cadences can you produce? 05:44:29 christ, hellues is asking me to debug his scheme in private 05:45:02 He also was very, *very* verbose and his language was sloppy and 05:45:05 over-abbreviated. 05:45:33 klutometis: I've never really been a fan of the half step cadence. There are lots of other ways to bring the harmony back around to I 05:45:39 he working on his homework or what? 05:46:03 grettke: It sounds like he's trying to get people to do his homework 05:46:09 Whenever I hear a V-I, it just brings to mind chintzy Italian opera 05:46:12 after slacking off the whole semester. 05:46:28 synx: something like the augmented sixth, then? 05:46:30 foof: :) 05:46:34 I swear all of Puccini's arias used only the V chord 05:47:43 klutometis: what about the augmented 6th? That would be a different mode... in the major/minor mode, it's a minor 7th, not an augmented 6th. 05:48:06 Keep in mind I don't have a piano handy to ear-check this. 05:49:07 tizoc_ [n=user@r190-135-18-246.dialup.adsl.anteldata.net.uy] has joined #scheme 05:49:08 synx: i'm just trying to get a sense of how you would accomplish resolution on the tonic besides, say, a PAC; the german augmented sixth came to mind 05:49:34 klutometis: oh, i did part of his hw earlier today already 05:49:40 foof: #scheme is a diverse mix of people isn't it. 05:50:09 Oh, well I just barrel through from the seventh to one. Depends on the music really. If I start messing around with chromatics, it's really not in the same mode anymore. 05:50:19 Every Fall we get intro-CS slackers in here :) 05:50:24 heh 05:50:31 duncanm: christ; i gave him one hint, have to stop now ;) 05:50:49 I think it's important not to modulate too much when you're doing modal music. Every mode has a certain sound, and the insistence of having certain progressions loses that distinction. 05:51:07 synx: if you have a flattened tonic, wouldn't it just resemble a bizarre mode in say b-natural instead of c? 05:51:11 foof: There was a conversation going on tonight between the group I would call implemeters. I see now, there are slackers trying to get their homework finished. Then there is everyon in between. 05:51:52 *foof* prefers not to be lumped into any of those groups 05:52:09 No the tonic isn't flattened. Just the sixth and seventh are lowered. 05:52:43 synx: oh, i was referring to the "brutal mode" you were talking about, with "Lowered 6, lowered 7 and 1" 05:52:49 i parsed that as "lowered 1" 05:53:05 -!- rmns [n=ramunas@88.222.137.30] has quit ["Leaving."] 05:53:07 all makes sense now 05:53:14 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [] 05:53:19 haha oops sorry 05:54:01 Since there's no raised 7th in that, it is a little bit more brusque to go to I, not delicate like in Ionian or melodic minor. 05:54:47 flattened leading tone is tough, because you don't have the dominant fifth or even diminished second to work with 05:54:54 but you do have a minor plagal 05:56:22 I'm not familiar with plagals... 05:57:48 it's a subdominant->tonic progression; sounds very medieval, especially when you go from a minor IV to a major I 05:57:54 it sounds like a piccardy third 05:57:56 very nice 05:58:25 so f-minor to c-major in the "major-minor" mode you're talking about 05:58:46 Oh neat. That does show up in major/minor yes. 05:58:52 I love piccardy thirds. 05:59:15 Retrograde harmony is fun too. <3 Of course everyone immediately likens it to Pachelbel Canon. 05:59:36 in fact, WP talks about the plagal in their picardy article: http://en.wikipedia.org/wiki/Picardy_third 06:00:28 retrograde harmony? 06:00:45 Wrong word maybe... 06:02:21 It's when you go the reverse direction on the circle of 5ths. 06:02:31 -!- tizoc [n=user@r190-135-3-36.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 06:02:57 foof: what does your username represent? is it related to foof-loop? 06:03:30 synx: nice; yeah, subdominant modulation can be subtle; especially when the dom. is too "obvious" 06:04:27 pchrist|univ [n=spirit@gateway.hpc.cs.teiath.gr] has joined #scheme 06:06:04 Can you play midi files klutometis? 06:06:33 synx: sure; you have one? 06:08:24 -!- grettke [n=grettke@CPE-65-31-132-59.wi.res.rr.com] has quit [] 06:08:34 Yeah I just made one. 06:08:50 got a link? 06:09:05 Do bears poop in the woods? 06:09:19 https://synx.us.to/music/abc/chord42.mid 06:09:34 That's kind of demonstrating what comes to mind for me, what to do with major/minor mode. 06:11:49 The last chord progression is the one with no leading 7th, that sounds like parallel 5ths. 06:12:12 Should take it down an octave... 06:15:23 synx: took it down an octave: http://www.hamienet.com/m2m-11895e4e0ce302e0873571101735f08013253.mp3 06:16:36 haha not the whole thing just that progression 06:16:45 That's nice too though. 06:17:05 you have good patches. I just have the freepats... 06:17:05 -!- echo-area [n=user@cmdev1.test.cnz.alimama.com] has quit [Remote closed the connection] 06:18:13 synx: just using some random online deal; yeah, i hear the pseudo-parallel fifths 06:18:28 some nice moments, though 06:18:39 online dealieboppers are good 06:19:22 I like the second progression... shows some of the complex inner harmonies that mode can take, without any "raised" or "lowered" 06:19:48 synx: write counterpoint? 06:19:56 i could see some fugues in this hybrid mode 06:20:06 maybe a nice five-voicer in 2/2 06:20:13 like the c-sharp minor from WTC book I 06:20:47 echo-area [n=user@cmdev1.test.cnz.alimama.com] has joined #scheme 06:20:52 I wouldn't touch counterpoint with red hot pokers. 06:22:05 That stuff is like higher level mathematics to an illiterate beast far as I can tell. 06:22:30 "Okay you start the melody here, then you start it later in parallel on another note, but you make sure the harmonies at any given point don't clash." That's as far as I can understand counterpoint. 06:22:42 -!- underspecified [n=eric@isa7-dhcp-116-122.naist.jp] has quit [Read error: 104 (Connection reset by peer)] 06:22:48 underspecified [n=eric@isa7-dhcp-116-122.naist.jp] has joined #scheme 06:23:05 there's also zwischenspiel, too, where you can lay down virtuoso riffs 06:23:07 Kind of like ripples in a pond, simulated in music. 06:23:21 neva hoida it 06:23:29 fugue composition and performance is the musical activity that reminds me most of programming: both creative and rigorous 06:23:50 synx: it's the free-written area between statements of the subject; few constraints 06:23:50 -!- underspecified [n=eric@isa7-dhcp-116-122.naist.jp] has quit [Read error: 104 (Connection reset by peer)] 06:23:59 It is really. I just try to make my music sound good, hardly aspire to that kind of rigor. 06:24:20 underspecified [n=eric@isa7-dhcp-116-122.naist.jp] has joined #scheme 06:24:27 my friend and i get together over vodka once and awhile and write fugues: if you fuck up the counterpoint, take a shot ;) 06:24:46 o.O 06:24:47 needless to say, shit gets abstract towards the end 06:25:14 I had a friend like that once... he left me (and alcohol) to go be a Mormon. 06:25:32 -!- hellues [n=hellues@85.96.7.82] has quit [Remote closed the connection] 06:25:45 yikes; that's one way to do it. i always thought i'd marry a mormon; oh well 06:26:02 foof` [n=user@naist-wavenet126-138.naist.jp] has joined #scheme 06:26:10 hellues [n=hellues@85.102.161.242] has joined #scheme 06:26:14 whee 06:26:19 hellues: not banned after all, heh? 06:26:36 I tried reading their book once, but it was just too infantile. 06:27:12 i almost respect joseph smith for taking on the man; takes real courage, hubris, or both 06:27:21 tizoc [n=user@r190-135-16-102.dialup.adsl.anteldata.net.uy] has joined #scheme 06:27:24 but the product is still questionable 06:27:34 taking on...who? 06:27:50 oh, i don't know; yahweh, maybe, or judeo-christianity 06:27:55 it was still dominant at the time 06:28:08 Oh gotcha. 06:28:11 still is, maybe 06:28:16 I liken him to people like L. Ron Hubbard. 06:28:25 heh; that's a classic analogy, actually 06:28:33 charismatic but crazy 06:28:56 Really good at offering people what they desperately need, and then using a bait and switch at the last minute to swap it out for his religion. 06:29:47 reminds me of this latest bail-out, come to think of it; looks like hubbardism has infected washington 06:30:06 heh 06:31:24 The only music programming language in existence is written for clisp. 06:31:37 fascinating; link? 06:32:30 just wrote a little dsl the other day for a project to assign music to the planets; could be generalized, though 06:34:03 http://commonmusic.sourceforge.net/doc/cm.html 06:34:25 It has its problems... doesn't abstract out the instruments or sounds very well. But I made some neat stuff with it. 06:35:57 -!- tizoc_ [n=user@r190-135-18-246.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 06:36:25 -!- geckosenator [n=sean@c-24-8-193-190.hsd1.co.comcast.net] has left #scheme 06:36:31 christ, that's great; i really could have used it the other day before i had to reinvent something poorer 06:36:39 have to try it out 06:37:25 https://synx.us.to/journal/293 06:41:52 -!- foof [n=user@clair12.naist.jp] has quit [Read error: 113 (No route to host)] 06:41:55 synx: wow; not bad. i wonder if it'd be easy to write a lilypond output driver 06:43:12 it's amazing, though; i just spent a week writing panners, faders, mixers, etc. in scheme 06:43:26 wish i'd known about CM 06:45:16 -!- vorpal [n=rhunter@pdpc/supporter/student/vorpal] has quit ["The incensed priests...continued to raise their voices, vituperating each other in bad Latin"] 06:45:27 I...couldn't say really. Lilypond is way too big for me to handle. I just use abc mostly. 06:45:27 Actually mostly I just drift about in an uncreative haze for years :p 06:45:28 aw, too bad! 06:45:30 It won't really compile for scheme I think. Was designed with stupid (funcall) and all. 06:49:45 -!- AshyIsMe [n=User@b415.adsl.ecomtel.com.au] has quit ["Leaving"] 07:01:31 fschwidom [n=fschwido@dslb-088-068-112-155.pools.arcor-ip.net] has joined #scheme 07:01:51 hml [n=x@unaffiliated/hml] has joined #scheme 07:04:22 -!- felipe [n=felipe@my.nada.kth.se] has quit [Remote closed the connection] 07:29:51 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 07:30:52 Adamant [n=Adamant@c-98-244-152-196.hsd1.ga.comcast.net] has joined #scheme 07:32:59 -!- Khisanth [n=Khisanth@68.237.103.31] has quit ["Leaving"] 07:33:42 benny [n=benny@i577A0EC4.versanet.de] has joined #scheme 07:33:42 mmorrow [n=link@c-98-193-60-208.hsd1.il.comcast.net] has joined #scheme 07:35:18 synx: looks like they have scheme bindings for gauche and guile 07:41:57 AshyIsMe [n=User@b415.adsl.ecomtel.com.au] has joined #scheme 07:45:05 Khisanth [n=Khisanth@pool-68-237-103-31.ny325.east.verizon.net] has joined #scheme 07:47:50 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [No route to host] 07:53:34 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["The funniest things in my life are truth and absurdity."] 07:54:54 hotblack23 [n=jh@p5B0569AA.dip.t-dialin.net] has joined #scheme 07:59:37 -!- underspecified [n=eric@isa7-dhcp-116-122.naist.jp] has quit [] 08:03:33 underspecified [n=eric@isa7-dhcp-116-122.naist.jp] has joined #scheme 08:17:14 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 104 (Connection reset by peer)] 08:19:49 -!- synthasee [n=synthase@68.63.20.12] has quit [Read error: 110 (Connection timed out)] 08:20:45 -!- pchrist|univ [n=spirit@gateway.hpc.cs.teiath.gr] has quit [Read error: 60 (Operation timed out)] 08:22:01 ecraven [n=nex@140.78.42.104] has joined #scheme 08:28:46 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 08:29:40 ejs [n=eugen@80.91.178.218] has joined #scheme 08:33:35 -!- hellues [n=hellues@85.102.161.242] has quit [Remote closed the connection] 08:38:36 -!- tabe [n=tabe@210.188.204.133] has quit ["Riece/5.0.0 Emacs/22.2 (berkeley-unix)"] 08:38:51 tabe [n=tabe@210.188.204.133] has joined #scheme 08:46:28 schmalbe [n=bernhard@p549A0768.dip0.t-ipconnect.de] has joined #scheme 08:49:56 -!- hotblack23 [n=jh@p5B0569AA.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 08:51:46 schumaml [i=c19b5f04@gateway/web/ajax/mibbit.com/x-08fdabb199c2ff2f] has joined #scheme 08:54:11 -!- echo-area [n=user@cmdev1.test.cnz.alimama.com] has quit [Remote closed the connection] 08:54:22 Neburg [n=ruben@217.170.42.100] has joined #scheme 08:55:15 sidewinder128 [n=chatzill@nttkyo589168.tkyo.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 08:57:26 -!- sidewinder128 [n=chatzill@nttkyo589168.tkyo.nt.ftth.ppp.infoweb.ne.jp] has left #scheme 09:03:29 mmc1 [n=gvtk86@217.147.104.142] has joined #scheme 09:17:30 appletizer [i=user@82-46-30-39.cable.ubr04.hawk.blueyonder.co.uk] has joined #scheme 09:32:38 rdd [n=user@c83-250-142-219.bredband.comhem.se] has joined #scheme 09:38:35 leppie_work [n=DKK@dsl-243-41-130.telkomadsl.co.za] has joined #scheme 09:40:47 elmex [n=elmex@e180066029.adsl.alicedsl.de] has joined #scheme 09:42:33 -!- leppie_work [n=DKK@dsl-243-41-130.telkomadsl.co.za] has quit [Client Quit] 09:44:31 leppie_work [n=DKK@dsl-243-41-130.telkomadsl.co.za] has joined #scheme 09:45:53 pmatos [n=pmatos@pocm06r.ecs.soton.ac.uk] has joined #scheme 09:46:06 -!- pmatos [n=pmatos@pocm06r.ecs.soton.ac.uk] has quit [Read error: 104 (Connection reset by peer)] 09:54:54 -!- leppie_work [n=DKK@dsl-243-41-130.telkomadsl.co.za] has quit [Read error: 54 (Connection reset by peer)] 09:55:16 leppie_work [n=DKK@dsl-243-41-130.telkomadsl.co.za] has joined #scheme 10:00:04 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 60 (Operation timed out)] 10:00:49 -!- hml [n=x@unaffiliated/hml] has quit ["leaving"] 10:02:05 -!- pjdelport [n=pjd@dsl-243-1-136.telkomadsl.co.za] has quit [Connection timed out] 10:06:45 so quiet... 10:06:58 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 10:07:24 OK, foo.bar should be syntactic sugar for (ref foo 'bar) - discuss! 10:08:12 cracki [n=cracki@44-217.eduroam.RWTH-Aachen.DE] has joined #scheme 10:11:03 Die in a fire. QeD. 10:12:01 foof`: breaks old code ;) 10:12:30 Where's the win, anyhow? 10:13:28 Highly OO code, like a GUI library where you access fields a lot. 10:14:11 use (bar foo) or (foo-bar foo) 10:14:20 Most reasonable alternatives being destructuring with MATCH 10:14:33 or a WITH-SLOTS like construct. 10:15:09 ecraven: foo-bar is especially bad when subclassing 10:15:13 pjdelport [n=pjd@dsl-243-1-136.telkomadsl.co.za] has joined #scheme 10:15:28 It's like Gtk - you have to remember at which point in the class 10:15:29 foof`: so use BAR ;) 10:15:48 hierarchy each slot/method was made available, and use that prefix. 10:17:07 BAR is also problematic, since it puts a lot of restrictions on 10:17:12 what you choose for slot names. 10:17:24 BAR-OF is better, if you want to take that approach. 10:17:31 you shouldn't define slot names, you should define accessors ;) 10:18:42 brb 10:18:44 -!- foof` [n=user@naist-wavenet126-138.naist.jp] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 10:19:07 jewel [n=jewel@dsl-242-166-102.telkomadsl.co.za] has joined #scheme 10:24:24 gigabytes [n=gigabyte@host151-239-dynamic.8-87-r.retail.telecomitalia.it] has joined #scheme 10:24:56 Isn't this exactly the kind of situation where macros shine? You could perform some destructuring based on the symbol name, if you were so inclined; the real trick would be creating macros which compose well, so as to minimize the interpretation overhead of dynamically generated code. 10:26:30 foof [n=user@dn157-046.naist.jp] has joined #scheme 10:27:16 jdijk [i=jdijk@ftth-212-84-159-210.solcon.nl] has joined #scheme 10:38:37 jgracin [n=jgracin@89-172-52-150.adsl.net.t-com.hr] has joined #scheme 10:42:02 -!- gigabytes [n=gigabyte@host151-239-dynamic.8-87-r.retail.telecomitalia.it] has quit [] 10:45:25 hemulen [n=hemulen@cpe-069-134-114-252.nc.res.rr.com] has joined #scheme 10:47:02 -!- jdijk [i=jdijk@ftth-212-84-159-210.solcon.nl] has quit ["(and has gone back to work...)"] 10:47:49 -!- cracki [n=cracki@44-217.eduroam.RWTH-Aachen.DE] has quit [Read error: 110 (Connection timed out)] 10:49:14 -!- schmalbe [n=bernhard@p549A0768.dip0.t-ipconnect.de] has quit [Remote closed the connection] 10:49:29 attila_lendvai [n=ati@catv-89-133-170-239.catv.broadband.hu] has joined #scheme 10:55:44 -!- AtnNn [n=welcome@modemcable230.56-56-74.mc.videotron.ca] has quit ["meep meep"] 10:57:21 elmex_ [n=elmex@e180066029.adsl.alicedsl.de] has joined #scheme 11:09:55 DKK1 [n=DKK@mail.iminafrica.com] has joined #scheme 11:12:14 -!- elmex [n=elmex@e180066029.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 11:12:18 -!- elmex_ is now known as elmex 11:12:29 -!- leppie_work [n=DKK@dsl-243-41-130.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 11:20:36 -!- DKK1 is now known as leppie_work 11:24:24 ali1 [n=ali@sns2-83.york.ac.uk] has joined #scheme 11:24:24 Nshag [i=user@Mix-Orleans-105-2-51.w193-248.abo.wanadoo.fr] has joined #scheme 11:24:50 as a noob, is this the place to ask a question? 11:25:05 ali1: jein 11:25:39 jein? 11:25:45 that is, yes and no; yes, because we love n00bs; no, because it may do violence to your n00bdom (you may no longer be a n00b) 11:25:49 ali1: 42 11:25:56 lol 11:26:51 so here it goes: is there such a function variable-bound? x , where x is any symbol and you find out whether x is defined or not? 11:28:07 that gets asked quite a bit, actually; i've had to implement it myself, but in an implementation-dependent way 11:28:11 what's your general problem? 11:28:56 pmatos [n=pmatos@pocm06r.ecs.soton.ac.uk] has joined #scheme 11:29:07 -!- pmatos [n=pmatos@pocm06r.ecs.soton.ac.uk] has quit [Read error: 104 (Connection reset by peer)] 11:29:10 firstly, i'm a noob, so i want to use a procedure set which either defines or set! s based on variable-bound? 11:29:34 secondly, i'd like to overwrite a symbol, but save the old value if it exists, for later use 11:29:43 which scheme are you running? 11:29:49 plt right now 11:30:19 -!- papermachine [n=ahoman@61.152.106.169] has quit [Read error: 110 (Connection timed out)] 11:31:20 the reason why i'm asking about your general problem, is that there may be a way to solve it without resorting to mutation 11:31:31 for the first, you could do something like this, whether or not x is bound: 11:31:40 rudybot: eval (let ((x 2)) x) 11:31:40 klutometis: ; Value: 2 11:32:11 which may solve the second, because you don't have to overwrite the variable in the general scope 11:33:14 -!- benny [n=benny@i577A0EC4.versanet.de] has quit [Read error: 113 (No route to host)] 11:33:39 well its not a single problem, i'm writing a sort of noob layer, and wanted to make imperative code simpler on the noob 11:34:16 benny [n=benny@i577A0EC4.versanet.de] has joined #scheme 11:34:17 part of learning scheme is unthinking your imperative habits 11:34:23 and i guess that is something you hear a lot 11:34:34 are you learning scheme in a systematic way, or just trying this and that? 11:35:44 i already think in a fairly functional way, i don't know continuations, but that's for later. Basically i feel that if there were one last stepping stone between ruby/python and scheme, the world would be a better place 11:36:08 do yourself a favor, and get through the first chapter of this book: http://mitpress.mit.edu/sicp/full-text/book/book.html 11:36:31 that was my stepping stone from python to scheme 11:36:33 i already saw all the video lectures, but i'll read the book soon 11:36:40 oh, ok 11:36:52 doing and seeing are two different things, though ;) 11:37:04 and i wrote an evaluator 11:37:08 nice 11:37:26 -!- fschwidom [n=fschwido@dslb-088-068-112-155.pools.arcor-ip.net] has quit [Remote closed the connection] 11:37:31 before the lectures, found that their one was quite similar. isn't lisp nice? 11:38:03 -!- hiyuh [n=hiyuh@ZQ174212.ppp.dion.ne.jp] has quit ["|_ e /\ \/ i |/| G"] 11:38:20 the short answer to your original question may be: if you're trying to write variable-bound?, you're probably doing it wrong 11:38:23 but yes, we've seen a progression towards lisp, all i think is maybe lisp can take a small step towards python/ruby to allow people to step across 11:38:52 wrong step 11:38:59 oh, you're thinking lisp -> python? 11:39:06 no! 11:39:07 that's against the power gradient, methinks 11:39:42 just to make the step of python/ruby -> scheme a more fluid one 11:39:59 there is no easy transition Turing Machine -> Lambda Calculus [for imperative people] 11:40:29 so you add a noob layer, and eventually stop using it. they're already using maps now anyway 11:41:23 eventually? 11:42:49 i mean growing out of it. the layer will still be there, people just stop using it and start programming scheme well, once they see its value 11:43:36 i think the road to scheme is one of punctuated equilibrium, though 11:43:45 the imperative inertia is too great for a gradual transition 11:43:48 but anyway, i was only looking to do silly things like (* 3 (lambda () (print "bob"))) anyway 11:44:40 nonsense, i went from php to cl 11:45:05 that's hardly a gradual transition ;) 11:45:42 well i was using array_map a lot. my last bits of php code are indented like lisp otherwise it would hit the margin 11:45:59 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 11:47:06 it may be a personal preference, but i still think the cleanest way to go is sicp: once the concepts are clear, the code flows 11:48:02 there's some activation energy required, sure, but you could say the same thing about linux 11:48:37 eased a lot by ubuntu i would say 11:48:53 you don't go from xp to gentoo 11:49:33 yet i am now using gentoo, where once i used xp 11:50:51 would some kind of error handling mechanism be too evil to bear? ie. try to use the symbol and catch the error 11:53:26 ali1: sure, that'd be one way to do it; another is to examine the environment, if you can, and determine whether the binding exists 11:53:32 i was able to do the latter with MIT scheme 11:53:59 yeah i saw that documentation. maybe i should use mit scheme 11:54:03 but you can do the former wherever, for instance, srfi-34 is supported (or some other exception handling system) 11:54:49 ali1: but not just for variable-bound?; that's a weak argument, because you'll find that it's unnecessary after awhile 11:59:45 ilSignorCarlo [n=Mr_SpOOn@89-97-102-218.ip17.fastwebnet.it] has joined #scheme 12:02:02 well okay, here's the problem: I've written a small defmethod system, and want the user to only use this function defmethod for their overloading. 12:02:02 However, if the symbol they are defmethoding already exists, i want to save it to a (possibly gensymed) place, 12:02:02 overwrite the symbol with a function handling the defmethod call, and add the original function as the 'else part of the defmethod conditional. 12:03:46 -!- underspecified [n=eric@isa7-dhcp-116-122.naist.jp] has quit [] 12:08:07 -!- Mr_SpOOn [n=Mr_SpOOn@abdallo.cs.unibo.it] has quit [Nick collision from services.] 12:08:14 Mr_SpOOn [n=Mr_SpOOn@abdallo.cs.unibo.it] has joined #scheme 12:09:16 -!- Mr_SpOOn [n=Mr_SpOOn@abdallo.cs.unibo.it] has quit [Client Quit] 12:09:47 -!- ilSignorCarlo is now known as Mr_SpOOn 12:10:24 morning 12:18:03 -!- schumaml [i=c19b5f04@gateway/web/ajax/mibbit.com/x-08fdabb199c2ff2f] has quit ["http://www.mibbit.com ajax IRC Client"] 12:20:02 duncanm: christ, i've been up the whole time you've been sleeping 12:24:29 klutometis: yeah 12:29:35 ventonegro [n=user@136.166.1.3] has joined #scheme 12:32:55 kuribas [i=kristof@d54C43E38.access.telenet.be] has joined #scheme 12:34:04 sorry for being a bad noob, thanks 12:34:07 -!- ali1 [n=ali@sns2-83.york.ac.uk] has left #scheme 12:45:47 heh; the ali1's feelings seem to be hurt. but i just can't help thinking that if you need variable-bound?, you're doing it wrong 12:49:13 Axioplase [n=Pied@APuteaux-155-1-100-164.w90-44.abo.wanadoo.fr] has joined #scheme 12:50:00 annodomini [n=lambda@c-75-69-95-99.hsd1.nh.comcast.net] has joined #scheme 12:53:25 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 12:56:21 underspecified [n=eric@softbank220043052011.bbtec.net] has joined #scheme 12:58:59 -!- Axioplase [n=Pied@APuteaux-155-1-100-164.w90-44.abo.wanadoo.fr] has quit ["bbl"] 13:00:37 klutometis: books like scip must be prepended with some category theory info 13:06:30 -!- allnmymind [n=user@bas3-ottawa10-1279680047.dsl.bell.ca] has quit [Remote closed the connection] 13:08:21 allnmymind [n=user@bas3-ottawa10-1279680047.dsl.bell.ca] has joined #scheme 13:09:07 annodomini [n=lambda@64.30.3.122] has joined #scheme 13:11:43 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 13:12:42 -!- benny [n=benny@i577A0EC4.versanet.de] has quit [Read error: 104 (Connection reset by peer)] 13:13:12 -!- underspecified [n=eric@softbank220043052011.bbtec.net] has quit [] 13:13:36 cemerick [n=la_mer@75.147.38.122] has joined #scheme 13:25:24 -!- allnmymind [n=user@bas3-ottawa10-1279680047.dsl.bell.ca] has quit [Remote closed the connection] 13:25:46 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 13:25:54 -!- AshyIsMe [n=User@b415.adsl.ecomtel.com.au] has quit ["Leaving"] 13:31:10 annodomini [n=lambda@130.189.179.215] has joined #scheme 13:39:55 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Read error: 60 (Operation timed out)] 13:42:36 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 13:45:48 GreyLensman [n=ray@c-76-108-235-51.hsd1.fl.comcast.net] has joined #scheme 13:50:50 -!- GreyLensman [n=ray@c-76-108-235-51.hsd1.fl.comcast.net] has left #scheme 13:55:18 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 13:55:36 -!- ttmrichter [n=ttmricht@221.235.57.213] has quit [Read error: 110 (Connection timed out)] 13:55:47 hiyuh [n=hiyuh@KD125054017176.ppp-bb.dion.ne.jp] has joined #scheme 13:59:34 schumaml [i=c19b5f04@gateway/web/ajax/mibbit.com/x-e7862f6a48453a93] has joined #scheme 14:00:21 -!- kuribas [i=kristof@d54C43E38.access.telenet.be] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 14:00:39 benny [n=benny@i577A0EC4.versanet.de] has joined #scheme 14:00:57 Dr_K [n=nobody@199.165.96.203] has joined #scheme 14:03:38 npe [n=npe@32.97.110.64] has joined #scheme 14:03:38 -!- npe [n=npe@32.97.110.64] has quit [Connection reset by peer] 14:04:54 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 14:05:35 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Client Quit] 14:10:29 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 14:12:49 npe [n=npe@32.97.110.64] has joined #scheme 14:12:49 -!- npe [n=npe@32.97.110.64] has quit [Connection reset by peer] 14:15:55 nowhere_man [i=pierre@pthierry.pck.nerim.net] has joined #scheme 14:16:35 -!- jewel [n=jewel@dsl-242-166-102.telkomadsl.co.za] has quit [Connection timed out] 14:17:10 BW^- [i=Miranda@94.191.141.74.bredband.tre.se] has joined #scheme 14:17:39 pixel5 [n=pixel@copei.de] has joined #scheme 14:18:07 aquanaut [n=user@pool-71-191-49-201.washdc.fios.verizon.net] has joined #scheme 14:18:21 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 14:19:59 -!- pjdelport [n=pjd@dsl-243-1-136.telkomadsl.co.za] has quit [Connection timed out] 14:20:37 pjdelport [n=pjd@dsl-243-1-136.telkomadsl.co.za] has joined #scheme 14:20:49 wastrel [n=wastrel@nylug/member/wastrel] has joined #scheme 14:21:13 jewel [n=jewel@dsl-242-166-102.telkomadsl.co.za] has joined #scheme 14:22:01 npe [n=npe@32.97.110.64] has joined #scheme 14:22:01 -!- npe [n=npe@32.97.110.64] has quit [Connection reset by peer] 14:24:09 papermachine [n=ahoman@61.152.106.169] has joined #scheme 14:25:40 sili [n=sili@222.127.65.136] has joined #scheme 14:25:53 hadronzoo [n=hadronzo@ppp-70-247-170-199.dsl.rcsntx.swbell.net] has joined #scheme 14:30:29 -!- pixel5 [n=pixel@copei.de] has quit ["ich kann so nicht arbeiten! :p"] 14:31:13 npe [n=npe@32.97.110.64] has joined #scheme 14:36:53 -!- npe [n=npe@32.97.110.64] has quit [Read error: 60 (Operation timed out)] 14:40:25 npe [n=npe@32.97.110.64] has joined #scheme 14:40:25 -!- npe [n=npe@32.97.110.64] has quit [Read error: 104 (Connection reset by peer)] 14:49:37 npe [n=npe@32.97.110.64] has joined #scheme 14:54:26 -!- pjdelport [n=pjd@dsl-243-1-136.telkomadsl.co.za] has quit [Operation timed out] 14:55:27 pjdelport [n=pjd@dsl-243-1-136.telkomadsl.co.za] has joined #scheme 14:58:52 npe_ [n=npe@32.97.110.64] has joined #scheme 14:58:52 -!- npe_ [n=npe@32.97.110.64] has quit [Read error: 104 (Connection reset by peer)] 15:00:05 ice_man` [n=user@CPE000d6074b550-CM001a66704e52.cpe.net.cable.rogers.com] has joined #scheme 15:00:09 -!- Dr_K [n=nobody@199.165.96.203] has left #scheme 15:03:20 underspecified [n=eric@softbank220043052011.bbtec.net] has joined #scheme 15:05:52 -!- npe [n=npe@32.97.110.64] has quit [Read error: 110 (Connection timed out)] 15:06:19 -!- ice_man` [n=user@CPE000d6074b550-CM001a66704e52.cpe.net.cable.rogers.com] has quit [Remote closed the connection] 15:06:21 ice_man` [n=user@CPE000d6074b550-CM001a66704e52.cpe.net.cable.rogers.com] has joined #scheme 15:08:04 npe [n=npe@32.97.110.64] has joined #scheme 15:08:04 -!- npe [n=npe@32.97.110.64] has quit [Connection reset by peer] 15:08:05 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 15:08:14 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 15:11:02 -!- ecraven [n=nex@140.78.42.104] has quit ["bbl"] 15:12:40 -!- tizoc [n=user@r190-135-16-102.dialup.adsl.anteldata.net.uy] has quit [Read error: 104 (Connection reset by peer)] 15:12:57 tizoc [n=user@r190-135-10-252.dialup.adsl.anteldata.net.uy] has joined #scheme 15:17:16 npe [n=npe@32.97.110.64] has joined #scheme 15:17:16 -!- npe [n=npe@32.97.110.64] has quit [Connection reset by peer] 15:24:21 -!- jgracin [n=jgracin@89-172-52-150.adsl.net.t-com.hr] has quit ["Leaving"] 15:26:28 npe [n=npe@32.97.110.64] has joined #scheme 15:26:28 -!- npe [n=npe@32.97.110.64] has quit [Success] 15:27:20 name [n=name@sburn/devel/name] has joined #scheme 15:31:22 besiria [n=user@ppp083212086149.dsl.uom.gr] has joined #scheme 15:35:40 npe [n=npe@32.97.110.64] has joined #scheme 15:36:33 albacker [i=5c84d5f5@gateway/web/ajax/mibbit.com/x-316271a2eae428b8] has joined #scheme 15:36:53 any webpage with challenges with recursive apps and scheme ?? got an exam after a lilbit =D 15:37:16 Challenges? 15:37:30 proq [n=user@unaffiliated/proqesi] has joined #scheme 15:37:51 schme_: exercises 15:40:14 Oh. 15:40:42 -!- mmc1 [n=gvtk86@217.147.104.142] has quit [Remote closed the connection] 15:40:55 -!- npe [n=npe@32.97.110.64] has quit [Read error: 60 (Operation timed out)] 15:43:05 SIPC has some exercises on recursion IIRC. 15:43:09 SICP even 15:43:35 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["The funniest things in my life are truth and absurdity."] 15:43:51 mmc1 [n=gvtk86@217.147.104.142] has joined #scheme 15:44:52 npe [n=npe@32.97.110.64] has joined #scheme 15:47:59 -!- ejs [n=eugen@80.91.178.218] has quit [Remote closed the connection] 15:49:20 proq` [n=user@38.100.211.40] has joined #scheme 15:54:03 npe_ [n=npe@32.97.110.64] has joined #scheme 15:54:03 -!- npe_ [n=npe@32.97.110.64] has quit [Connection reset by peer] 15:55:04 bombshelter13 [n=bombshel@209-161-229-68.dsl.look.ca] has joined #scheme 15:55:10 Take any book cited in the #topic. Do its exercises. 15:55:23 sidewinder128 [n=chatzill@nttkyo589168.tkyo.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:55:33 -!- sidewinder128 [n=chatzill@nttkyo589168.tkyo.nt.ftth.ppp.infoweb.ne.jp] has left #scheme 15:55:42 bweaver [n=bweaver@75.148.111.133] has joined #scheme 15:56:52 -!- albacker [i=5c84d5f5@gateway/web/ajax/mibbit.com/x-316271a2eae428b8] has quit [Nick collision from services.] 15:59:42 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 16:02:06 -!- npe [n=npe@32.97.110.64] has quit [Connection timed out] 16:03:15 huyslogic [n=Huy@192.206.112.168] has joined #scheme 16:03:15 npe [n=npe@32.97.110.64] has joined #scheme 16:03:15 -!- npe [n=npe@32.97.110.64] has quit [Dead socket] 16:06:56 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Read error: 110 (Connection timed out)] 16:07:18 fridim_ [n=fridim@gar13-5-88-161-23-155.fbx.proxad.net] has joined #scheme 16:10:40 jonrafkind [n=jon@wireless223.wireless.utah.edu] has joined #scheme 16:12:01 besiria` [n=user@ppp083212084063.dsl.uom.gr] has joined #scheme 16:12:29 npe [n=npe@32.97.110.64] has joined #scheme 16:13:50 foof, you have a comment in match.scm's MATCH-CHECK-ELLIPSE stating that the initial rules for pairs and vectors are unnecessary. This is untrue; consider (MATCH-CHECK-ELLIPSE (... FOO) S F), literally. Without the leading two rules, this leads to a syntax error. 16:13:59 -!- error_developer_ [n=errordev@78-86-1-110.zone2.bethere.co.uk] has quit [Connection timed out] 16:15:10 Anyone aware of some good scheme web hosts? 16:20:25 schmalbe [n=bernhard@p549A0768.dip0.t-ipconnect.de] has joined #scheme 16:24:41 eno [n=eno@nslu2-linux/eno] has joined #scheme 16:26:55 -!- name [n=name@sburn/devel/name] has quit ["Lost terminal"] 16:27:01 -!- besiria [n=user@ppp083212086149.dsl.uom.gr] has quit [Read error: 110 (Connection timed out)] 16:30:05 -!- besiria` [n=user@ppp083212084063.dsl.uom.gr] has quit [Read error: 110 (Connection timed out)] 16:38:39 pixel5 [n=pixel@copei.de] has joined #scheme 16:42:39 -!- Neburg [n=ruben@217.170.42.100] has quit ["Download Gaim: http://gaim.sourceforge.net/"] 16:53:09 -!- sm [n=sm@pool-71-104-90-132.lsanca.dsl-w.verizon.net] has quit [] 17:03:54 errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has joined #scheme 17:05:22 mike_ [n=mike@p54A1D69F.dip.t-dialin.net] has joined #scheme 17:07:38 GoNoGo [n=GoNoGo@cro34-3-82-236-93-215.fbx.proxad.net] has joined #scheme 17:08:19 fschwidom [n=fschwido@dslb-088-068-126-143.pools.arcor-ip.net] has joined #scheme 17:09:23 saccade_ [n=saccade@18.83.7.179] has joined #scheme 17:10:21 -!- schumaml [i=c19b5f04@gateway/web/ajax/mibbit.com/x-e7862f6a48453a93] has quit ["http://www.mibbit.com ajax IRC Client"] 17:10:25 -!- saccade_ [n=saccade@18.83.7.179] has quit [Client Quit] 17:10:47 -!- BW^- [i=Miranda@94.191.141.74.bredband.tre.se] has quit ["Miranda IM! Smaller, Faster, Easier. http://miranda-im.org"] 17:24:55 -!- ice_man` [n=user@CPE000d6074b550-CM001a66704e52.cpe.net.cable.rogers.com] has quit [Remote closed the connection] 17:24:57 ice_man` [n=user@CPE000d6074b550-CM001a66704e52.cpe.net.cable.rogers.com] has joined #scheme 17:29:41 -!- pixel5 [n=pixel@copei.de] has quit ["."] 17:32:06 vasa [n=vasa@mm-37-88-84-93.dynamic.pppoe.mgts.by] has joined #scheme 17:38:10 -!- ventonegro [n=user@136.166.1.3] has quit [Read error: 104 (Connection reset by peer)] 17:38:32 sm [n=sm@pool-71-104-90-132.lsanca.dsl-w.verizon.net] has joined #scheme 17:38:53 ventonegro [n=user@136.166.1.3] has joined #scheme 17:39:16 -!- sm [n=sm@pool-71-104-90-132.lsanca.dsl-w.verizon.net] has quit [Remote closed the connection] 17:45:15 langmartin [n=user@75.148.111.133] has joined #scheme 17:45:42 -!- mike_ [n=mike@p54A1D69F.dip.t-dialin.net] has quit ["This computer has gone to sleep"] 17:48:00 melito [n=melito@70.99.250.82] has joined #scheme 17:49:38 sm [n=sm@pool-71-104-90-132.lsanca.dsl-w.verizon.net] has joined #scheme 17:50:01 jgracin [n=jgracin@82.193.208.195] has joined #scheme 17:50:24 mike_ [n=mike@p54A1D69F.dip.t-dialin.net] has joined #scheme 17:55:05 -!- mike_ [n=mike@p54A1D69F.dip.t-dialin.net] has quit [Client Quit] 17:58:45 I'm looking at the plt-scheme web server right now. 18:03:50 Yeah, I was looking at the plt-scheme webserver just now as well 18:06:23 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Connection timed out] 18:10:15 tltstc` [n=nine@192.207.69.1] has joined #scheme 18:14:24 -!- sili [n=sili@222.127.65.136] has quit [Read error: 110 (Connection timed out)] 18:17:54 -!- elmex [n=elmex@e180066029.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 18:19:07 elmex [n=elmex@e180078112.adsl.alicedsl.de] has joined #scheme 18:23:08 pixel5 [n=pixel@copei.de] has joined #scheme 18:23:08 REPLeffect [n=REPLeffe@69.54.115.254] has joined #scheme 18:24:11 CaptainMorgan [n=CaptainM@c-75-68-42-94.hsd1.nh.comcast.net] has joined #scheme 18:26:23 "All uses of letrec are removed and replaced with equivalent uses of let and imperative features." 18:26:34 what's the deal with that? what are imperative features? 18:26:52 The speaker speaks of expanding LETREC to LET & SET!. 18:27:26 oh. I guess that's okay... 18:29:32 I wonder why they do that. 18:30:04 Who is `they'? 18:30:07 http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-Z-H-1.html#node_toc_node_sec_12.7 18:30:09 -rudybot:#scheme- http://tinyurl.com/6agd5r 18:34:46 Some kinda optimization. 18:34:46 Riastradh: The people making the plt web server. 18:35:00 http://docs.plt-scheme.org/web-server/considerations.html 18:35:25 -!- ice_man` [n=user@CPE000d6074b550-CM001a66704e52.cpe.net.cable.rogers.com] has quit [Remote closed the connection] 18:37:02 perhaps for continuations? 18:37:47 that's weird 18:38:00 maybe some PLT low-level stuff 18:38:04 eeek 18:39:32 serializable continuations heh. 18:39:33 saccade_ [n=saccade@MEDICAL-NINETY-SIX.MIT.EDU] has joined #scheme 18:40:08 storing serialized code on the client machine...I can see all sorts of security concerns there. 18:40:17 bashyal [n=bashyal@v-209-98-139-195.mn.visi.com] has joined #scheme 18:40:23 why? 18:40:40 who says it's not encrypted? 18:41:00 and its not code, it's data 18:41:24 Code Is Data 18:41:28 Data Is Code 18:41:28 probably something like session cookie 18:41:55 i beg to differ 18:42:49 only by accepting this duality one can achieve Lisp nature 18:42:56 mu! 18:42:59 evaluate '(+ 1 2) without using eval (or a macro) 18:43:02 igli [n=igli@fu/coder/igli] has joined #scheme 18:43:33 leppie: you know eval is just a procedure, right? 18:43:51 yes 18:44:07 (define (my-eval exp env) ...) 18:44:18 but why do people think data can just execute? 18:44:43 code can't "just" execute either, something runs it 18:44:48 -!- seth [n=seth@76-191-139-155.dsl.static.sonic.net] has quit [Nick collision from services.] 18:44:57 it can be your CPU, or a Scheme interpreter 18:45:00 Code is a special kind of data. 18:45:00 The kind that can be evaluated. 18:45:01 It's a subset of data in general. 18:45:03 code is a subset of information, which is a subset of data. 18:45:23 ok lets agree with synx definition :) 18:45:27 All code is data, but not all data is code. 18:45:41 set1 [n=seth@76-191-139-155.dsl.static.sonic.net] has joined #scheme 18:47:21 too true 18:47:48 -!- langmartin [n=user@75.148.111.133] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 18:48:51 langmartin [n=user@75.148.111.133] has joined #scheme 18:49:16 -!- bashyal [n=bashyal@v-209-98-139-195.mn.visi.com] has quit [] 18:51:51 -!- bombshelter13 [n=bombshel@209-161-229-68.dsl.look.ca] has quit ["Where is the glory in complying with demands?"] 18:54:14 synx: that depends on the compiler 18:55:38 a compiler could exist that can execute any kind of data 18:56:15 bombshelter13 [n=bombshel@209-161-229-68.dsl.look.ca] has joined #scheme 18:56:15 -!- bombshelter13 [n=bombshel@209-161-229-68.dsl.look.ca] has quit [Client Quit] 18:56:49 -!- saccade_ [n=saccade@MEDICAL-NINETY-SIX.MIT.EDU] has quit [Connection timed out] 18:56:49 So we all agree that data is code in some context, and not in some other. 18:56:51 Horray. 18:57:30 we all win! 18:57:34 -!- fschwidom [n=fschwido@dslb-088-068-126-143.pools.arcor-ip.net] has quit [Remote closed the connection] 18:58:13 I'm not looking forward to the day someone executes #scheme though. 18:58:15 I wouldn't call that execution, or evaluation. 18:58:23 (define (eval code) null) 18:58:24 If everyone is special, then nobody is. :( 18:58:38 synx: You're special! Just like everyone :) 18:58:57 you are unique, like everyone else 18:59:19 *pjdelport* mumbles "I'm not." 18:59:31 -!- vasa [n=vasa@mm-37-88-84-93.dynamic.pppoe.mgts.by] has quit ["I am not vasya, i am vasa"] 19:00:11 Reminds me of something a math teacher once told me. 19:00:41 counting on fingers only go to 10? 19:00:42 :p 19:00:58 No, he was talking about uninteresting numbers. 19:01:22 Assuming some numbers are less interesting than others, you can order them from least interesting to most interesting. 19:01:24 and those would be? 19:01:39 And that means there is one number that is less interesting than any other number. 19:01:41 leppie: nonsense; you can count to 1024 with 10 fingers 19:01:48 But hey, that's pretty interesting. 19:01:54 Therefore all numbers are interesting. 19:02:02 well, 1023 19:02:08 but then you would have to snap each finger in half :p 19:02:14 possible :p 19:02:19 possibly :p 19:02:29 snap each finger in half? 19:02:46 well how do you know if a bit is toggled? 19:02:52 I can only count to 0x100 with 10 fingers... 19:03:27 either snap, or do some weird vulcan hand thing 19:03:44 Just bend the finger ? 19:03:49 Just point the hand up or down and you have two more bits 19:03:52 etc 19:04:06 Oh, but you could use thumbs as digits! 19:04:08 Yeah 1024. 19:04:15 Crossing fingers makes for a more challenging estimate 19:05:55 can't lift your ring finger very far independantly though, so there are mechanical difficulties. 19:06:08 synx: ? 19:06:28 synx: Just bend it at that there joint in the middle of the finger. You can do those independantly in any combination no problem. 19:06:34 or the top joint even. 19:06:45 Which requires some muscle control I guess ;) 19:06:49 Tristate fingers 19:07:25 Well who needs quantum computers then! 19:08:31 hmm... 19:08:57 I play a lot of guitar, I have finger control ;) 19:09:36 -!- elias` [n=me@unaffiliated/elias/x-342423] has quit [Read error: 110 (Connection timed out)] 19:09:42 XTL: Balanced ternary finger counting 19:09:59 -!- igli [n=igli@fu/coder/igli] has left #scheme 19:10:53 http://www.youtube.com/watch?v=9Sreih-VWo0 19:10:56 Interesting fact: truncation and rounding are the same operation in balanced ternary 19:27:38 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #scheme 19:33:31 -!- errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has quit [Read error: 110 (Connection timed out)] 19:33:32 -!- CaptainMorgan [n=CaptainM@c-75-68-42-94.hsd1.nh.comcast.net] has quit [Remote closed the connection] 19:33:40 -!- jonrafkind [n=jon@wireless223.wireless.utah.edu] has quit [Read error: 104 (Connection reset by peer)] 19:34:05 jonrafkind [n=jon@wireless223.wireless.utah.edu] has joined #scheme 19:35:41 saccade_ [n=saccade@dhcp-18-188-71-238.dyn.mit.edu] has joined #scheme 19:36:43 -!- mmorrow [n=link@c-98-193-60-208.hsd1.il.comcast.net] has quit [Read error: 110 (Connection timed out)] 19:43:14 -!- benny [n=benny@i577A0EC4.versanet.de] has quit [Read error: 110 (Connection timed out)] 19:48:30 CaptainMorgan [n=CaptainM@c-75-68-42-94.hsd1.nh.comcast.net] has joined #scheme 19:58:19 -!- sm [n=sm@pool-71-104-90-132.lsanca.dsl-w.verizon.net] has left #scheme 19:58:37 sm [n=sm@pool-71-104-90-132.lsanca.dsl-w.verizon.net] has joined #scheme 20:01:34 errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has joined #scheme 20:02:32 benny [n=benny@i577A0EC4.versanet.de] has joined #scheme 20:06:09 gigabytes [n=gigabyte@host167-236-dynamic.14-87-r.retail.telecomitalia.it] has joined #scheme 20:06:17 -!- ventonegro [n=user@136.166.1.3] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 20:06:19 drdo [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 20:08:25 FareWell [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 20:10:51 hotblack23 [n=jh@p5B05468B.dip.t-dialin.net] has joined #scheme 20:19:03 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 20:21:15 -!- Cale [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has quit [Read error: 110 (Connection timed out)] 20:21:51 Cale [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has joined #scheme 20:21:58 -!- saccade_ [n=saccade@dhcp-18-188-71-238.dyn.mit.edu] has quit ["This computer has gone to sleep"] 20:23:08 langmart` [n=user@75.148.111.133] has joined #scheme 20:24:20 jdijk [i=jdijk@ftth-212-84-159-210.solcon.nl] has joined #scheme 20:25:54 -!- p1dzkl [i=p1dzkl@2001:470:d0be:0:0:0:0:13] has quit [Read error: 110 (Connection timed out)] 20:26:24 -!- jdijk [i=jdijk@ftth-212-84-159-210.solcon.nl] has quit [Client Quit] 20:28:52 -!- langmart` is now known as langmartin` 20:29:11 -!- langmartin` [n=user@75.148.111.133] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 20:29:24 langmart` [n=user@75.148.111.133] has joined #scheme 20:29:35 -!- langmart` [n=user@75.148.111.133] has quit [Remote closed the connection] 20:29:46 -!- langmartin [n=user@75.148.111.133] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 20:30:16 langmartin [n=user@75.148.111.133] has joined #scheme 20:31:49 -!- jgracin [n=jgracin@82.193.208.195] has quit [Remote closed the connection] 20:45:36 ug [n=merlin@64.47.164.86] has joined #scheme 20:48:17 -!- jonrafkind [n=jon@wireless223.wireless.utah.edu] has quit [Read error: 60 (Operation timed out)] 20:48:25 fschwidom [n=fschwido@dslb-088-068-112-049.pools.arcor-ip.net] has joined #scheme 20:51:27 -!- schmalbe [n=bernhard@p549A0768.dip0.t-ipconnect.de] has quit [Remote closed the connection] 20:58:15 hellues [n=hellues@85.96.168.182] has joined #scheme 21:01:06 jonrafkind [n=jon@wireless223.wireless.utah.edu] has joined #scheme 21:03:52 -!- cemerick [n=la_mer@75.147.38.122] has quit [] 21:11:01 -!- pixel5 [n=pixel@copei.de] has quit ["frischluft"] 21:12:12 arcfide [n=arcfide@99.14.208.195] has joined #scheme 21:17:35 -!- GoNoGo [n=GoNoGo@cro34-3-82-236-93-215.fbx.proxad.net] has quit ["ChatZilla 0.9.83 [Firefox 3.0.3/2008092417]"] 21:22:14 ice_man` [n=user@CPE000d6074b550-CM001a66704e52.cpe.net.cable.rogers.com] has joined #scheme 21:23:41 -!- npe [n=npe@32.97.110.64] has quit [] 21:29:44 MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has joined #scheme 21:30:47 -!- kniu [n=kniu@LEMON.RES.CMU.EDU] has quit [Read error: 110 (Connection timed out)] 21:32:09 carlf [i=carlf@photocarl.org] has joined #scheme 21:35:33 Ugh...300+ emails to go through today.... 21:36:59 pass them to read 21:37:16 or /dev/null 21:37:28 and answer from /dev/random :) 21:37:40 ug: Heh, well, fortunately, less than 20 of them require responses, but there are probably only 5 - 10 spams in the bunch. 21:37:53 The others all have to be read, but can be read and then dumped. 21:38:01 Wishing for more spam? ;) 21:38:29 Leonidas: No, thanks. Actually, even though I use my real email address everywhere, including newsgroups, spamd is remarkably effective. 21:39:26 arcfide: can confirm this. Spamassassin got me to stop caring for obfuscation. Life got easier a bit, then. 21:39:50 Heh, I don't even bother using spamassassin. 21:40:07 I have come to believe that proper spam filtering is more effective than obfuscation. 21:40:24 And the benefits of having a real address for people to see is usually nicer than the potential troubles it causes. 21:40:30 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 21:40:37 So far... 21:42:45 arcfide: +1, that was what convinced me, too. The only spam that gets through is very recant spam which contains urls not yet in a URLBL and not yet in Pyzor/Razor. 21:44:52 -!- gigabytes [n=gigabyte@host167-236-dynamic.14-87-r.retail.telecomitalia.it] has quit [] 21:47:46 synthasee [n=synthase@68.63.20.12] has joined #scheme 21:54:13 ugh... the nice feeling of getting 16GB off your hard drive... the internetz are wilde open once again! 21:58:56 -!- hemulen [n=hemulen@cpe-069-134-114-252.nc.res.rr.com] has quit [Read error: 110 (Connection timed out)] 22:01:06 AshyIsMe [n=User@b415.adsl.ecomtel.com.au] has joined #scheme 22:01:22 Axioplase [n=Pied@APuteaux-155-1-100-164.w90-44.abo.wanadoo.fr] has joined #scheme 22:02:04 -!- huyslogic [n=Huy@192.206.112.168] has quit ["Leaving."] 22:02:16 -!- ice_man` [n=user@CPE000d6074b550-CM001a66704e52.cpe.net.cable.rogers.com] has quit [Read error: 104 (Connection reset by peer)] 22:16:02 -!- elmex [n=elmex@e180078112.adsl.alicedsl.de] has quit [Remote closed the connection] 22:17:52 -!- fridim_ [n=fridim@gar13-5-88-161-23-155.fbx.proxad.net] has quit [Remote closed the connection] 22:19:08 Jarv2 [n=Jarv@dsl-217-155-101-22.zen.co.uk] has joined #scheme 22:20:40 -!- aquanaut [n=user@pool-71-191-49-201.washdc.fios.verizon.net] has quit [Remote closed the connection] 22:21:11 aquanaut [n=user@pool-71-191-49-201.washdc.fios.verizon.net] has joined #scheme 22:21:56 rvirding [n=chatzill@h235n3c1o1034.bredband.skanova.com] has joined #scheme 22:22:15 -!- langmartin [n=user@75.148.111.133] has quit [Read error: 60 (Operation timed out)] 22:22:44 -!- benny [n=benny@i577A0EC4.versanet.de] has quit [Read error: 54 (Connection reset by peer)] 22:29:50 -!- errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has quit [Connection timed out] 22:31:46 rudybot_ [n=luser@li11-10.members.linode.com] has joined #scheme 22:32:02 -!- rudybot [n=luser@li11-10.members.linode.com] has quit [Remote closed the connection] 22:32:47 alkhdgsa [n=Jarv@dsl-217-155-101-22.zen.co.uk] has joined #scheme 22:34:27 -!- Jarvellis [n=Jarv@dsl-217-155-101-22.zen.co.uk] has quit [Nick collision from services.] 22:35:05 -!- alkhdgsa is now known as Jarvellis 22:39:32 -!- bweaver [n=bweaver@75.148.111.133] has quit [] 22:40:57 Running an email server also really cuts down on spam. 22:41:36 mheld_ [n=mheld@pool-141-154-251-146.bos.east.verizon.net] has joined #scheme 22:41:41 hey y'all 22:41:44 I make myself many email addresses, and when one starts getting bombarded by spam, I can remove it without losing contact with my other sources. 22:41:54 what's the difference between cdr and rest? 22:42:17 normal nothing 22:42:24 normally 22:42:31 Is there even a function called rest? 22:42:43 i think so in HtDP scheme 22:42:46 Wow there is. 22:43:04 my class started using it, and i came from the SICP school of scheme 22:43:09 r5rs rest 22:43:10 Sorry, I couldn't find anything for rest. 22:43:12 so... i got a little angsty 22:43:26 cdr and rest are not equal?, so... can't say for sure. 22:43:56 try it with '(1 . 2) 22:44:08 maybe it ensures the result is a list? 22:44:14 typically, no 22:44:14 Ooh 22:44:17 clhs rest 22:44:17 http://www.lispworks.com/reference/HyperSpec/Body/f_rest.htm 22:44:41 that's the Common Lisp definition, which many Scheme implementations seem to follow 22:45:06 hmm 22:45:11 i guess you find that in srfi1 too 22:45:22 along with first, second, etc 22:45:59 don't guess. 22:46:02 it's not in srfi-1 22:46:12 ok 22:47:34 saccade_ [n=saccade@dhcp-18-188-71-238.dyn.mit.edu] has joined #scheme 22:47:36 ineiros [n=ineiros@kosh.hut.fi] has joined #scheme 22:47:52 so, I should just assume that it's a duck? 22:48:35 mheld_: rest is cdr for those who are offended by the spelling of cdr :-) 22:48:45 heh 22:48:56 its so much more fun to say though 22:49:01 cudder 22:49:06 vs rest 22:49:24 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 22:52:47 -!- Jarv2 [n=Jarv@dsl-217-155-101-22.zen.co.uk] has quit [Success] 22:54:30 -!- rvirding [n=chatzill@h235n3c1o1034.bredband.skanova.com] has quit ["ChatZilla 0.9.83 [Firefox 3.0.3/2008092417]"] 22:55:15 define-struct? 22:55:17 what? 22:55:28 i thought you could define structures with just define 22:55:37 sarahbot: srfi-9? 22:55:38 I've heard srfi-9 is "Defining Record Types" 22:56:14 that's the "standard" way of defining structures 22:56:52 ah 23:01:44 -!- samth is now known as samth_away 23:01:56 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit [Remote closed the connection] 23:02:57 now say caddr out loud 23:03:05 it is even more fun than saying cudder 23:05:07 heh 23:05:20 cad-did-er 23:05:21 nice 23:05:37 alright, back to SICP. thanks for all your help! 23:05:40 -!- mheld_ [n=mheld@pool-141-154-251-146.bos.east.verizon.net] has quit [] 23:06:46 hellues_ [n=hellues@88.235.213.14] has joined #scheme 23:09:09 -!- hellues [n=hellues@85.96.168.182] has quit [Read error: 110 (Connection timed out)] 23:10:41 kniu [n=kniu@LEMON.RES.CMU.EDU] has joined #scheme 23:11:56 Adamant [n=Adamant@c-98-244-152-196.hsd1.ga.comcast.net] has joined #scheme 23:16:31 annodomini [n=lambda@c-75-69-95-99.hsd1.nh.comcast.net] has joined #scheme 23:26:16 maybe the /topic could give a pointer to the bots uses and usages... 23:26:23 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 23:26:29 sarahbot: don't you think so? 23:26:30 Don't you? Yes I think that is what I think. 23:26:54 -!- saccade_ [n=saccade@dhcp-18-188-71-238.dyn.mit.edu] has quit ["This computer has gone to sleep"] 23:28:27 felipe [n=felipe@my.nada.kth.se] has joined #scheme 23:28:30 p 23:28:33 hey 23:28:38 hmm 23:28:49 i have ban for my nick hellues 23:29:03 -!- ChanServ has set mode +o chandler 23:29:06 did you deserve it? 23:29:09 -!- chandler has set mode +b %hellues*!*@* 23:29:12 I guess you did 23:29:12 -!- chandler has set mode -o chandler 23:32:34 dnm [n=dnm@c-68-49-46-251.hsd1.va.comcast.net] has joined #scheme 23:32:44 -!- dnm [n=dnm@c-68-49-46-251.hsd1.va.comcast.net] has quit [Remote closed the connection] 23:35:36 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 23:36:05 what was the final straw? /me /ignored him a moment not too soon it seems. 23:38:27 p1dzkl [i=p1dzkl@2001:470:d0be:0:0:0:0:13] has joined #scheme 23:38:42 -!- hotblack23 [n=jh@p5B05468B.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 23:40:22 that guy was really annoying 23:45:59 npe [n=npe@66.112.249.148] has joined #scheme 23:48:14 cemerick [n=la_mer@c-71-192-208-28.hsd1.ma.comcast.net] has joined #scheme 23:49:56 mheld_ [n=mheld@pool-141-154-251-146.bos.east.verizon.net] has joined #scheme 23:50:12 hey, who wants to give me a task to do in scheme 23:52:06 mheld_: there are plenty of excersizes in SICP I think you haven't done 23:52:17 gweiqi [n=greg@69.120.126.163] has joined #scheme 23:52:19 also look into HTdP, project-euler, and spoz 23:52:25 you're right, i haven't done the sicp stuff yet 23:53:27 spoz? 23:53:36 hey sladegen 23:54:41 mheld_: sorry, meant spoj.pl 23:57:28 mbishop, who? 23:57:36 thanks ug! 23:57:55 jonrafkind: hellues 23:58:03 oh you mean the guy still in the channel 23:58:30 sladegen: how goes? 23:58:42 hey, duncanm, got edwin48 running ;?) 23:58:54 sladegen: still working on it 23:59:10 sladegen: i'm nearly done ripping out bucky bit characters 23:59:21 sladegen: what about you? 23:59:40 -!- hiyuh [n=hiyuh@KD125054017176.ppp-bb.dion.ne.jp] has quit ["|_ e /\ \/ i |/| G"]