00:02:28 sepult [n=levgue@xdsl-87-78-30-154.netcologne.de] has joined #scheme 00:06:00 -!- Paraselene__ [n=None@79-68-173-7.dynamic.dsl.as9105.com] has quit [Read error: 60 (Operation timed out)] 00:07:51 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 00:08:08 samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has joined #scheme 00:09:13 Paraselene__ [n=None@79-68-173-7.dynamic.dsl.as9105.com] has joined #scheme 00:12:36 -!- bohanlon [n=bohanlon@pool-173-48-104-141.bstnma.fios.verizon.net] has quit [Remote closed the connection] 00:18:17 twopoint718 [n=chris@76.208.67.71] has joined #scheme 00:19:12 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 00:21:21 gnomon [n=gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 00:23:31 Dawgmatix [n=dawgmati@c-76-124-3-89.hsd1.nj.comcast.net] has joined #scheme 00:24:40 pavelludiq [n=quassel@83.222.175.184] has joined #scheme 00:31:13 -!- sstrickl [n=sstrickl@nomad.ccs.neu.edu] has quit [] 00:35:00 -!- npe [n=npe@94-224-251-223.access.telenet.be] has quit [] 00:37:59 sladegen: having a blast with Go? 00:37:59 -!- pavelludiq [n=quassel@83.222.175.184] has quit [Remote closed the connection] 00:40:48 mejja: just checking it out,-) 00:45:34 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 00:46:04 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 00:47:37 -!- samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has quit [Read error: 113 (No route to host)] 00:49:24 ada2358 [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 00:49:39 samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has joined #scheme 00:51:40 -!- ada2358_ [n=ada2358@login-linux.ccs.neu.edu] has quit [Read error: 145 (Connection timed out)] 00:56:12 -!- mrsolo_ [n=mrsolo@nat/yahoo/x-mqnobqzopoytkzih] has quit ["Leaving"] 00:58:41 splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has joined #scheme 01:05:15 clog_ [n=nef@bespin.org] has joined #scheme 01:09:46 -!- splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has quit ["Computer has gone to sleep"] 01:12:11 splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has joined #scheme 01:13:26 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 113 (No route to host)] 01:13:41 -!- samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has quit [Read error: 60 (Operation timed out)] 01:16:54 hadronzoo [n=hadronzo@ppp-70-251-124-156.dsl.rcsntx.swbell.net] has joined #scheme 01:20:13 -!- clog [n=nef@bespin.org] has quit [Read error: 110 (Connection timed out)] 01:20:13 -!- clog_ is now known as clog 01:23:43 -!- florgleborgle [n=nobody@Wb588.w.pppool.de] has quit [Read error: 110 (Connection timed out)] 01:44:12 -!- splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has quit ["Computer has gone to sleep"] 01:46:02 borism [n=boris@213.35.232.215] has joined #scheme 01:47:55 incubot: U.S. arrests and charges two Madoff programmers. They have been charged for their roles in Madoff's epic fraud, and the investigation remains ongoing. 01:47:59 (These are for sending mail-fraud spam to senior citizens, by the way) 01:48:32 Ah. Now it all makes sense. 01:50:21 incubot: Madoff told DiPascali to pay the programmers "whatever they wanted in order to keep them happy." 01:50:24 Lisp's reputation and, as you said, a shortage of Lisp programmers. 01:50:59 Maddoff should be unhappy, and the two programmers happy. 01:51:42 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 01:53:32 if Madoff paid X1 and X2 amount of money to the two programmers, and the programmers say that they received K1 and K2 of money then Maddof did corrupt stoling (X1-K1)+(X2-K2) from the cloud. 01:55:42 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 01:56:49 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 01:57:53 writing code that reports zero * non_zero_val = non_zero_val could be considered a crime ... 01:58:09 especially if its followed by a comment ; wink-wink ; 02:06:28 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 02:06:57 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 02:08:04 you can't say that you did steal X=$0 money because 1/X raises an exception of "division by zero!". 02:08:38 you did steal something that it's not $0 02:14:33 incubot: (let ((/ +)) (/ 1 0)) 02:14:33 1 02:22:51 incubot: (let ((+ /)) (+ 1 0)) 02:22:52 Error: (/) division by zero 02:23:44 -!- xwl [n=user@123.115.124.13] has quit [Remote closed the connection] 02:25:17 incubot: (let ((* /)) (fact 5)) 02:25:18 Error: unbound variable: fact 02:25:22 incubot: (let ((* /)) (factorial 5)) 02:25:23 Error: unbound variable: factorial 02:26:09 Even if `factorial' were defined, why would lexically rebinding the identifier `*' around the call have any effect whatsoever? 02:28:39 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 02:32:04 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 02:34:21 -!- Dawgmatix [n=dawgmati@c-76-124-3-89.hsd1.nj.comcast.net] has quit [] 02:38:40 -!- masm [n=masm@bl7-193-45.dsl.telepac.pt] has quit ["Leaving."] 03:18:16 -!- hadronzoo [n=hadronzo@ppp-70-251-124-156.dsl.rcsntx.swbell.net] has quit [] 03:19:16 sstrickl [n=sstrickl@pool-129-44-182-54.bos.east.verizon.net] has joined #scheme 03:26:57 -!- blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has quit [] 03:52:35 tjaway [n=timj@e176214008.adsl.alicedsl.de] has joined #scheme 03:58:44 yeah what is this, #lisp? 03:59:19 (parameterize ((* (/))) (factorial 5)) 04:04:24 incubot: juffo-wup 04:04:27 juffo-wup fills my fibers 04:08:54 -!- tjafk [n=timj@e176201109.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 04:10:47 incubot: (let* ((* /) (f (lambda (f i) (if (= i 0) 1 (* i (f f (- i 1))))))) (f f 5)) 04:10:47 1.875 04:13:39 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 04:21:56 geckosenator [n=sean@69.226.133.43] has joined #scheme 04:32:50 -!- msw_ [n=msw@75-101-102-192.dsl.static.sonic.net] has quit ["Leaving"] 04:35:39 sepult` [n=levgue@xdsl-87-78-172-227.netcologne.de] has joined #scheme 04:39:35 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 04:42:11 -!- sepult [n=levgue@xdsl-87-78-30-154.netcologne.de] has quit [Nick collision from services.] 04:42:41 -!- sepult` is now known as sepult 04:53:32 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 05:16:51 -!- dysinger [n=dysinger@32.177.18.186] has quit [Remote closed the connection] 05:22:03 hadronzoo [n=hadronzo@gateway.publicvpn.net] has joined #scheme 05:33:18 -!- geckosenator [n=sean@69.226.133.43] has quit ["leaving"] 05:38:50 phax [n=phax@unaffiliated/phax] has joined #scheme 05:42:24 -!- hadronzoo [n=hadronzo@gateway.publicvpn.net] has quit [] 05:43:38 -!- phax [n=phax@unaffiliated/phax] has quit [Client Quit] 05:48:57 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit [] 05:55:08 -!- CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has quit [Remote closed the connection] 05:58:40 samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has joined #scheme 06:11:51 svb [n=svb@94.41.204.191] has joined #scheme 06:25:08 -!- samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has quit [Read error: 60 (Operation timed out)] 06:25:26 bpalmer [n=user@unaffiliated/bpalmer] has joined #scheme 06:40:22 CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has joined #scheme 07:12:12 saccade_ [n=saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 07:14:19 pavelludiq [n=quassel@83.222.175.184] has joined #scheme 07:15:15 -!- svb [n=svb@94.41.204.191] has quit [] 07:32:35 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 08:13:33 dysinger [n=dysinger@32.177.197.94] has joined #scheme 08:31:56 -!- CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has quit [Read error: 60 (Operation timed out)] 08:35:32 -!- araujo [n=araujo@gentoo/developer/araujo] has quit ["Leaving"] 08:37:25 -!- dysinger [n=dysinger@32.177.197.94] has quit [] 08:45:27 -!- borism [n=boris@213.35.232.215] has quit [Read error: 145 (Connection timed out)] 09:00:04 CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has joined #scheme 09:02:24 -!- proq [n=user@unaffiliated/proqesi] has quit [Read error: 110 (Connection timed out)] 09:11:11 npe [n=npe@94-224-251-223.access.telenet.be] has joined #scheme 09:21:11 -!- Paraselene__ [n=None@79-68-173-7.dynamic.dsl.as9105.com] has quit [Connection timed out] 09:29:37 cornucopic [n=r00t@202.3.77.129] has joined #scheme 09:31:30 dysinger [n=dysinger@166.129.64.251] has joined #scheme 09:45:18 borism [n=boris@213.35.232.215] has joined #scheme 09:53:22 hjpark [n=user@116.40.135.21] has joined #scheme 09:58:12 i need to translate functional language to imperative style 09:58:12 intermediate language. any idea? 10:02:53 what language to what language? What issues are you having? 10:05:57 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 10:07:17 -!- untouchable [i=untoucha@dhcp-129-64-166-32.dorm.brandeis.edu] has quit [Read error: 104 (Connection reset by peer)] 10:07:25 untouchable [i=untoucha@dhcp-129-64-166-32.dorm.brandeis.edu] has joined #scheme 10:10:43 -!- nowherman [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has quit [Remote closed the connection] 10:11:03 nowherman [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has joined #scheme 10:11:12 ah 10:11:36 now, I'm translating scheme language to imperative style intermediate language(assembly like). 10:12:03 But, There's big hurdle on that work. 10:13:11 I cannot traslate scheme if expression to intermediate langauge. 10:13:14 hjpark: it depends on which constraints you impose on scheme (whether to implement returining closures, tail calls, continuations) 10:13:31 I just implement no tail call no closure.. 10:13:36 Just simple scheme :) 10:13:53 hjpark: can't you just stalin ? 10:14:17 I have to implement it. :) 10:14:22 ah. 10:31:07 Edico [n=Edico@unaffiliated/edico] has joined #scheme 10:33:01 -!- borism [n=boris@213.35.232.215] has quit [Read error: 145 (Connection timed out)] 10:34:57 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Remote closed the connection] 10:35:08 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 10:38:00 -!- dysinger [n=dysinger@166.129.64.251] has quit [] 10:49:55 borism [n=boris@213.35.232.215] has joined #scheme 11:10:36 -!- cornucopic [n=r00t@202.3.77.129] has quit [Read error: 110 (Connection timed out)] 11:22:14 -!- nowherman [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has quit [Remote closed the connection] 11:23:13 nowherman [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has joined #scheme 11:40:01 -!- yosafbridge [n=yosafbri@li14-39.members.linode.com] has quit ["Coyote finally caught me"] 11:40:12 yosafbridge [n=yosafbri@li14-39.members.linode.com] has joined #scheme 11:41:33 borism_ [n=boris@213.35.232.215] has joined #scheme 11:46:45 Nshag [i=user@Mix-Nantes-117-1-89.w193-250.abo.wanadoo.fr] has joined #scheme 11:52:13 -!- borism_ [n=boris@213.35.232.215] has quit [Read error: 145 (Connection timed out)] 11:53:11 samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has joined #scheme 11:54:07 hotblack23 [n=jh@p5B057713.dip.t-dialin.net] has joined #scheme 11:54:11 -!- CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has quit [Read error: 60 (Operation timed out)] 12:23:40 -!- Nshag [i=user@Mix-Nantes-117-1-89.w193-250.abo.wanadoo.fr] has quit ["Quitte"] 12:35:56 -!- samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has quit [Read error: 110 (Connection timed out)] 12:49:10 attila_lendvai [n=ati@adsl-89-132-5-84.monradsl.monornet.hu] has joined #scheme 12:52:31 dzhus [n=sphinx@95-24-220-253.broadband.corbina.ru] has joined #scheme 12:56:08 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 12:58:00 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 12:58:37 -!- Arelius [n=Indy@208.87.217.194] has quit [] 13:02:46 -!- kilimanjaro [n=kilimanj@cpe-173-172-99-25.austin.res.rr.com] has quit [Remote closed the connection] 13:14:06 choas [n=lars@p5B0DB371.dip.t-dialin.net] has joined #scheme 13:24:37 Lis [n=Lis@92.79.130.87] has joined #scheme 13:24:53 hi all 13:36:42 CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has joined #scheme 13:40:42 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 13:58:05 -!- xwl_ [n=user@192.100.124.218] has quit [Remote closed the connection] 13:58:17 xwl_ [n=user@esprx01x.nokia.com] has joined #scheme 14:01:27 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 14:08:22 hjpark: unless I'm missing something, this should be a piece of cake. Bits and examples to follow. 14:09:14 Assign a name to every expression, including intermediate results. Don't sweat the small stuff - assign a name to constants and scheme variables to. 14:10:26 Make scheme functions C functions that take a list or vector as a single argument and return a list or vector as a single return (if you support multiple returns) 14:11:48 Easier to do than describe, but parse (if test ift iff) with labels and just use compile to C with stupid gotos. 14:12:48 Now you just have to keep track of the "assignment target" (those names you gave to every expression) as you parse through the (if) (begin) and whatever other special forms you might support. 14:12:58 -!- xwl_ [n=user@esprx01x.nokia.com] has quit [Remote closed the connection] 14:13:42 Require a (defin (main)...), run your compiler, run the C compiler on the result and see what comes out. 14:16:08 OH - You'll need to "map" a reasonalbe number of scheme primops to C operators and/or library routines. Check arg types later oncee you get the rest to work. If you need GC, you have a gadzillion options - Boehm comes to mind. With GC, supporting closures (maybe naively) is ALOT easier than you would think. 14:16:21 HAVE FUN!!!! 14:18:35 BOOTSTRAPPING - over on LTU, I solicited stories/lore/papers on "bootstrapping" an programming language. If anyone has any goodies on bootstrapping a Scheme from relatively "primitive components", I would REALLY appreciate hearing about them, any pointers to papers or Web sites, etc. Mucho thanks. 14:20:03 xwl_ [n=user@esprx01x.nokia.com] has joined #scheme 14:20:04 -!- xwl_ [n=user@esprx01x.nokia.com] has quit [Remote closed the connection] 14:20:04 -!- xwl__ [n=user@esprx01x.nokia.com] has quit [Remote closed the connection] 14:21:34 xwl_ [n=user@esprx01x.nokia.com] has joined #scheme 14:21:49 luz [n=davids@189.122.90.116] has joined #scheme 14:22:33 tinyscheme? forth? 14:26:39 Jafet: I have a cool reference to "Jonesforth" which is super minimal and well documented. I don't know about tinyscheme, though. 14:30:42 It's as well documented as it is large... 14:32:53 I'm looking at the page now and see that it evolved from an commercial SQL RDBMS project (!) It makes me wonder: how many small, bootstrapped Scheme-like/Lisp-like languages were cobbled together in various corners of industrial programming, forever to be lost to all except those forced to maintain them :-) 14:33:37 blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has joined #scheme 14:41:11 davazp [n=user@79.153.148.56] has joined #scheme 14:41:35 -!- choas [n=lars@p5B0DB371.dip.t-dialin.net] has quit ["leaving"] 14:41:54 SAFETY - Has anyone implemented a scheme, noteworthy or otherwise, where "safety" was simply ignored? GC memory safety optional, but otherwise no type checks at all, maybe with separate f+, f*, f/ style operators for floating point math? 14:49:10 You can turn off type checks in compiled code in MIT Scheme and use the FLO: procedures for floating-point arithmetic. 14:50:22 hjpark, no proper tail recursion? No closures? How is what you are doing Scheme, then? 14:50:57 Very cool, I was wondering what might be inherently wrong with a Scheme ABEND (crash, blue screen, core dump, what-have-you). Is some degree of runtime safety written into the various rXrs documents? 14:51:22 Not except for the R6RS. 14:51:52 Interesting - seems to me like a flaw of r6rs at first blush. 14:55:43 hjpark: To Riastradh's point, doing simple "self-tail-call" isn't so very hard (not as trivial as some of the other parts). Basically, locate "last calls" and see if they match up to calls defined with (define (my-last-call)....) or named let or letrec (I'm sure I'm missing some cases). Then do the work of translating these "tail calls" into memory-sets (for arguments) and jumps. 14:56:15 I hope you are not confounding a compiler optimization often known as `tail call optimization' with a guarantee in the language about space safety known as `proper tail recursion'. 14:58:02 Also, if you do have GC in your runtime, implementing closures ala (funptr #(enval1, enval2 ...)) isn't very hard. Just cheat and put all the primops into the same format for a uniform "calling convention." 14:59:49 Riastradh: "confound" is one of my middle names, but no, I don't think so. My general strategy is to simply always implement all "last call optimization" uniformly (note, not merely self-tail-call) and have done with it. 15:01:30 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 15:01:46 Proper tail recursion does not require that every invocation in a tail position discard its caller's stack frame, which is what is usually meant by `tail call optimization' or `last call optimization'. The two are really orthogonal. 15:02:19 For my latest opus, the design implements "leaf call status" to the type system for closures. Since I'm stacking up my arguments C/Pascal style, a "last call" can get expensive. So foregoing the "stack frobbing" on a "last call" to a known "leaf call" should speed things up *greatly*, although I won't really know until I measure. 15:04:34 Riastradh: only when it's calling itself (or into a set of mutually recursive functions) ? 15:05:05 Sure, but at some point in the last 20 years or so, I just started designing my program analysis/call conventions with omnibus "last call optimization" implementation - and since it covers the bases, I just haven't thought to deeply about that issue ever since. 15:06:17 ah, no, I guess you might be referring to the "let stack grow until it's almost too late, then clean up" approach. 15:07:52 bpalmer: IIRC, in the standard, the requirement is very carefully worded in terms of memory consumption, rather than terms like "tail call" and the like. 15:08:22 bpalmer, in an implementation in terms of stack frames, for example, a bounded number of active tail calls may occupy nonzero storage. For instance, MIT Scheme's interpreter records a bounded execution history. 15:09:04 As long as there is a bound on the number of stack frames recorded thus, the implementation may still guarantee proper tail recursion. 15:09:34 The R5RS's words are approximately that there can be no bound on the number of active tail calls; it furthermore cites the paper by Will Clinger on the subject. 15:10:10 Riastradh: So are you referrign to what is sometimes called a "stack crunching" or "frame cruching" based implementation? 15:10:27 I have never heard those terms, so I don't know. 15:11:48 stackunderflows 15:11:50 But it sounds like you're leaving N "useless" frames on the stack and then going back and reclaiming the stack space from these "useless" frames when you reach frame N + 1 ???? 15:13:18 No. 15:13:32 Sorry. I'm not following then. 15:16:12 There is a bounded number of activation records that `ought' to have been discarded and replaced because of tail calls. When the bound is exceeded, one of them (usually the oldest one) is discarded. 15:17:20 Riastradh: Starting over, in the MIT scheme interpreter, you refer to "a bounded number of active tail calls may occupy nonzero storage" Then you say "As long as there is a bound on the number of stack frames recorded thus, the implementation may still guarantee proper tail recurssion" I pretty sure this is where I got totally lost. 15:18:29 There can be no bound on the number of active tail calls. Hence, if memory is bounded, at most a bounded number of active tail calls may occupy storage in memory. 15:18:30 Ok, I'm getting a better picture. Regarding "oldest" activation record, are MIT's frames continguous in memory? 15:18:37 No. 15:18:46 Aha! 15:18:46 Specifically, history records aren't. 15:18:52 But that doesn't really matter. 15:18:58 They could just as well be. 15:19:04 Sorry, but what'sa "history record"? 15:19:09 (It wouldn't be a very sensible approach, but it would work.) 15:19:26 Pretend it is just the stack frame of a procedure that has ended in a tail call. 15:20:13 Gotcha. Makes me think of keeping such an item around for debug purposes, although I don't imagine that's what MIT scheme's are for. 15:20:21 (The actual stack frames are contiguous in memory, and the history is recorded elsewhere.) 15:20:25 It is for debugging purposes. 15:20:35 Aha! 15:23:37 -!- nowherman [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has quit [Remote closed the connection] 15:23:50 nowherman [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has joined #scheme 15:24:50 Riastradh: During the "discard the oldest stack frame" procedure, why just discard one and not all of the frames that "ought" to have been discarded? 15:25:29 Why would you discard more of them? 15:27:03 Well, so my little discard procedure happens in a nice tight loop in the instruction cache and then disappears until I need it again. Vs. exec -> discard -> exec -> discard -> ...... 15:27:46 We're talking about a tree interpreter here. The point isn't speed. 15:28:04 Ah, right we're talking about the interpreter. Sorry. 15:30:09 Just a thought if it *were* a compiler: I might also get some milieage on some machines by markign a 4K page read-only somewhere way down the stack and then doing all the frame cleanup essentially while handling this "interupt". 15:30:51 -!- Lis [n=Lis@92.79.130.87] has quit [Client Quit] 15:33:00 Unlike doing the same trick for a generational gc "write barrier" this often expensive "interupt" wouldn't happen very often. 15:33:50 Jafet: Hey, tinyscheme isn't so very tiny!!!! Minus IDE/tools, it's pretty darn feature rich! 15:38:28 masm [n=masm@bl9-113-82.dsl.telepac.pt] has joined #scheme 15:47:42 -!- foof [n=user@FLH1Ahu226.osk.mesh.ad.jp] has quit [Read error: 110 (Connection timed out)] 15:53:16 karme [n=user@188.40.75.179] has joined #scheme 16:02:25 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 16:06:56 dysinger [n=dysinger@32.177.241.14] has joined #scheme 16:13:16 kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has joined #scheme 16:24:13 Nshag [i=user@Mix-Nantes-117-2-49.w193-250.abo.wanadoo.fr] has joined #scheme 16:34:14 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 16:34:28 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 16:36:40 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Read error: 110 (Connection timed out)] 16:51:17 bgs100 [n=ian@unaffiliated/bgs100] has joined #scheme 16:56:29 ski__ [n=md9slj@remote3.student.chalmers.se] has joined #scheme 16:59:47 (match '(foo bar) (((? symbol? parts) ___) parts)) 17:00:07 ... 3. &message: "no matching pattern" ... 17:00:33 (this is using AS-match) shouldn't this work? 17:00:50 (What's wrong with implementations of the R6RS condition system? Does nobody know how to write a meaningful sentence describing the error, so that instead they just dump the gobbledigook inside the condition?) 17:01:09 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 17:13:20 Adrinael_ [n=adrinael@barrel.rolli.org] has joined #scheme 17:14:55 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [Read error: 104 (Connection reset by peer)] 17:15:25 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 148 (No route to host)] 17:17:44 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 17:20:42 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 17:22:16 incubot: flaw caused error, error caused exception, exception caused condition, condition caused message: cause caused no result, rain falls, clauds' smoking. 17:22:20 (What is botched is a bit more black and white to me than for most people, I suppose; I know of only two Scheme module systems that aren't completely botched, by my definition, and one of them has a critical flaw while the other could use some improvement in a couple areas.) 17:22:42 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 17:23:03 svb [n=svb@94.41.204.191] has joined #scheme 17:24:24 -!- sepult [n=levgue@xdsl-87-78-172-227.netcologne.de] has quit [Read error: 54 (Connection reset by peer)] 17:25:01 sepult [n=levgue@xdsl-87-78-173-102.netcologne.de] has joined #scheme 17:26:27 -!- kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has quit ["Leaving"] 17:36:53 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 17:47:20 choas [n=lars@p5B0DB371.dip.t-dialin.net] has joined #scheme 17:52:08 -!- Nshag [i=user@Mix-Nantes-117-2-49.w193-250.abo.wanadoo.fr] has quit [Read error: 110 (Connection timed out)] 17:57:17 -!- kazzmir [n=kazzmir@98.202.86.149] has quit [Read error: 104 (Connection reset by peer)] 18:02:29 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 18:04:26 -!- karme [n=user@188.40.75.179] has left #scheme 18:10:48 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 18:11:22 annodomini [n=lambda@wikipedia/lambda] has joined #scheme 18:14:32 jonrafkind [n=jon@98.202.86.149] has joined #scheme 18:15:46 -!- attila_lendvai [n=ati@adsl-89-132-5-84.monradsl.monornet.hu] has quit ["..."] 18:24:14 -!- svb [n=svb@94.41.204.191] has quit [Connection reset by peer] 18:30:26 -!- dzhus [n=sphinx@95-24-220-253.broadband.corbina.ru] has quit [Remote closed the connection] 18:30:59 -!- jonrafkind [n=jon@98.202.86.149] has quit ["Ex-Chat"] 18:31:20 jonrafkind [n=jon@98.202.86.149] has joined #scheme 18:35:32 -!- snorble [n=none@s83-179-14-105.cust.tele2.se] has left #scheme 18:35:43 -!- george__ [n=george@189.107.176.74] has quit [Remote closed the connection] 18:49:18 snorble [n=none@s83-179-14-105.cust.tele2.se] has joined #scheme 18:59:01 -!- ASau [n=user@83.69.227.32] has quit [Remote closed the connection] 18:59:11 ASau [n=user@83.69.227.32] has joined #scheme 19:00:31 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 19:03:12 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 19:06:26 -!- snorble [n=none@s83-179-14-105.cust.tele2.se] has left #scheme 19:11:49 snorble [n=none@s83-179-14-105.cust.tele2.se] has joined #scheme 19:16:56 -!- snorble [n=none@s83-179-14-105.cust.tele2.se] has left #scheme 19:20:41 -!- pavelludiq [n=quassel@83.222.175.184] has quit [Remote closed the connection] 19:23:02 x2cast [n=alvaro@242.126.222.87.dynamic.jazztel.es] has joined #scheme 19:23:06 hi! 19:23:40 could anyone explain me what means that lisp has macros "in lisp" and scheme uses "hygienic macros" shortly, please? 19:25:02 -!- ASau [n=user@83.69.227.32] has quit [Remote closed the connection] 19:25:23 ASau [n=user@83.69.227.32] has joined #scheme 19:28:10 x2cast, hygiene means identifiers introduced in macros won't get confused with identifiers used outside the macro 19:28:37 basically lexical scope applies to hygienic macros, whereas lisp macros don't respect it 19:29:08 x2cast: you could google variable capture... first hit, here, is "on lisp"... 19:29:37 ...chapitre 10. 19:30:02 9. but _10.html, dooh. 19:31:40 -!- ASau [n=user@83.69.227.32] has quit [Remote closed the connection] 19:32:33 ASau [n=user@83.69.227.32] has joined #scheme 19:41:23 ah, I'm back! 19:42:26 but scheme still is able to do the "code as data" famous feature of lisp? 19:43:04 apparently Common Lisp has macros that allow arbitrary Lisp code to transform code 19:43:05 Arelius [n=Indy@208.87.217.194] has joined #scheme 19:43:11 does scheme have that? 19:43:32 dmpk2k [n=dmpk2k@static-64-115-4-131.isp.broadviewnet.net] has joined #scheme 19:44:46 x2cast, yes, syntax-case can do it 19:44:47 The R5RS does not, x2cast; it has a language for pattern-directed syntax transformation rules. Most Scheme systems, and the R6RS, do. 19:46:03 Note that Common Lisp is a terrible language for reasoning about other Common Lisp programs. For example, if you want to use the reader in your meta-program, you must be prepared for the object-program to edit the data structures used by the meta-program, such as symbols and packages, because these data structures are stored in image-global databases. 19:46:51 This means that, for example, it is non-trivial to write a Common Lisp meta-program that takes a Common Lisp object-program as input and tells you what global variables and functions the object-program needs in order to run, and what it defines. 19:46:53 that can be done in Scheme more easily? 19:47:20 because that is really cool stuff, what I really want to learn 19:47:28 transforming code and such things 19:48:25 Much more so, although more in the sense that Scheme doesn't inhibit isolating object-programs from meta-programs, but doesn't provide as much language facility for interaction between object-programs and meta-programs, whereas Common Lisp provides many facilities for working with object-programs in meta-programs -- all of which fail to isolate the object-program from the meta-program. 19:49:45 I understand 19:50:47 however, that isolation of scheme is not breaking the code-as-data "rule" does it? 19:50:55 "you must be prepared ..." ... nah, you don't need to be prepared, really. 19:51:23 what's the worst that could happen? Zombie apocalypse? 19:51:36 bpalmer, well, yes: it doesn't matter whether you are prepared; any reasoning about object-programs, using the facilities built-in to Common Lisp for doing so, will have effects on image-global databases. 19:52:53 For instance, suppose you want to write a Common Lisp compiler in Common Lisp, and you want to compile it with itself. Well, if the meta-compiler (host compiler) uses packages that happen to have the same names as the object-compiler (target compiler), in this case because they are derived from the same code, you lose. 19:54:00 Hence in SBCL, there is a plethora of hacks to build up the compiler partway using packages named SB!FOO, and then to go through them all and change their names to SB-FOO at the right time. Of course, this screws up, say, C-M-x in Emacs, if it tries to be smart and evaluate the definition in the package it found from the file, which was SB!FOO -- which no longer exists. 19:54:20 :) 19:54:37 -!- Chani [n=chani@twinsen.warpedgames.com] has left #scheme 19:54:48 so, is scheme still respecting that "principle" even thought it isolates the 2 parts? 19:56:16 So the worst that can happen is that lots of apparently random things fail when they shouldn't, because of unintended interactions between object-programs and meta-programs. This is not just a problem with self-hosting compilers; talk with Fare about ITA's build system for another example. In that case, the build system wanted to ask of Lisp files, `What variables/functions/&c. do you define, and what do you use?' Also, EVAL-WHEN 19:57:20 x2cast, standard Scheme doesn't say very much about all this -- you do get a standard reader, but that's all; there is no standard MACROEXPAND procedure, for instance. 19:58:16 Practical Scheme systems are, however, in general much better about this than Common Lisp systems; in particular, while Common Lisp stores a great deal of information in global databases such as packages and symbols, Scheme systems tend not to do this. 19:59:00 ok 19:59:48 Riastradh: thanks for all the explanations 20:00:21 ventonegro [n=alex@189.100.206.142] has joined #scheme 20:03:50 -!- ventonegro [n=alex@189.100.206.142] has quit [Client Quit] 20:24:35 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 20:24:52 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 20:35:30 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 20:35:43 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 20:44:48 snorble [n=snorble@s83-179-14-105.cust.tele2.se] has joined #scheme 20:45:00 emma_ [n=emma@unaffiliated/emma] has joined #scheme 20:45:28 Lis2 [n=Lis@p5B206B4D.dip.t-dialin.net] has joined #scheme 20:45:45 -!- emma [n=emma@unaffiliated/emma] has quit [Success] 20:46:04 grrr 20:46:08 -!- mmc [n=mima@cs27122078.pp.htv.fi] has left #scheme 20:46:51 -!- Lis2 is now known as Lis 20:46:55 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 20:48:13 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit [Operation timed out] 20:51:01 Quick Q: If I write old fashioned CL macros using (1) package qualifiers wherever necessary/possible and (2) use (gensym) generated names for any macro-specific names - what am I missing feature/safety wise vs. Scheme's hygenic macros? 20:52:18 Real question - not just being skeptical. With the sheer volume of papers on hygenic macros, there's got to be more to it, I understand. But I'm not sure I'm getting it. 20:53:25 hellyeah [n=benebiog@hopper.cs.bilgi.edu.tr] has joined #scheme 20:53:27 hey 20:53:36 drscheme has good graphic support 20:53:46 mabes [n=mabes@bmabey.fttp.xmission.com] has joined #scheme 20:53:51 Oh, and let's say I have destructuring bind and stuff as a rough equivalent to Scheme's pattern matching. 20:54:25 hellyeah You mean the macroexpander? Pretty cool, huh? 20:54:50 i need to do graphic work 20:54:55 i dont know exactly 20:55:02 ??? 20:55:29 Summermute, (defmacro foo ... `(... frob:grovel ...)), and then somewhere else: (let ((frob:grovel 5)) (foo)) 20:56:18 hellyeah, look in the extensive documentation at . PLT Scheme is capable of drawing graphics using approximately wxWindows fairly easily; I don't know what you're looking for with `good graphic support'. 20:56:31 (Where do you get the idea that hellyeah was asking about macros, Summermute?) 20:56:54 Ah, you're on a different topic, right. Looking for what GUI stuff? PLT has that nicely packaged up more or less (outdated version of wxWidgets, but still good). You can always talk through a pipe or a socket to GTKServer - works like a charm even from a stupid bash shell!!!!! In between, the options are both limited and infinite :-) 20:58:41 (You have once again used up your quota of exclamation marks.) 20:58:46 Riastradh: I was in "macromode" so I just took his very brief comment to refer to PLT's graphical macro expander. But in general, my mind has flaws which just happen to be the same as its strengths :-) 20:59:09 -!- snorble [n=snorble@s83-179-14-105.cust.tele2.se] has quit [Remote closed the connection] 20:59:34 And problably ??? too :-) 21:01:24 snorble [n=snorble@s83-179-14-105.cust.tele2.se] has joined #scheme 21:02:19 Riastradh: as usual, my mind slows down trying to decipher examples. But here we just have a (let ((frob:gravel)) shadowing the macro's intended package-global binding, right? 21:03:11 Yes. The problem is that the macro definition included only a name, not the binding that the name had when the macro was defined. Hence the name may in a different context have a totally different binding. 21:03:13 i am searching actually 3d plotting 21:03:19 is it possible in drwsscvheme 21:03:25 drscheme sorry 21:04:08 Hmmm, any OpenGL support in PLT? Maybe Planet? 21:04:24 for example 21:04:27 in matlab 21:04:36 you can do easily with plot() function 21:04:57 drscheme offers something to me like that or in a different way, 21:05:18 Riastradh: At this point we're stretching the practical usability of the language, but what if we just happened to bind all the package-global names first (to unique names) and use those in the macro instead? 21:06:00 Oh, if you don't need Scheme, go give a Squeak a looksee. 21:06:21 If you guarantee that each name has a unique binding, by using distinct names for distinct bindings, then sure, that might work. But that requires a global transformation -- and it's not clear even how to design that global transformation. 21:07:12 can i take an answer for my question pls :D 21:07:15 I meant just doing it by hand for all the package-global names used in the macro that then might be shadowed 21:07:24 This is because symbols are data structures in Common Lisp, and are used in ways that bindings are not (partially just because bindings are second-class entities). So any global transformation to the way that programs use symbols is likely to change the semantics of the program. 21:08:36 Sure, not global (ick, I can imagine writing code frobbing lists of packages and their symbols and, blech, maybe even their plists :-( 21:10:31 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 21:11:15 BTW, speaking of symbols. I was coding up a mode in Emacs Lisp and never have I seen such a great use of symbols, 'this and 'that, for nearly everythings!!! I think my 20 year old Lisp foo must have been heavily influenced by all the Scheme foo that rubs off at Cambridge, MA :-) 21:11:31 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 21:12:16 reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 21:12:49 -!- gribozavr [n=grib@2001:470:d4b6:1:215:f2ff:fe65:2d39] has quit [Read error: 110 (Connection timed out)] 21:13:01 gribozavr [n=grib@2001:470:d4b6:1:215:f2ff:fe65:2d39] has joined #scheme 21:13:11 Nshag [i=user@Mix-Nantes-117-4-89.w193-250.abo.wanadoo.fr] has joined #scheme 21:20:03 -!- x2cast [n=alvaro@242.126.222.87.dynamic.jazztel.es] has quit ["Leaving."] 21:20:40 -!- emma_ is now known as emma 21:29:18 neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has joined #scheme 21:45:36 segoe [i=3e164621@gateway/web/freenode/x-anfqbtixnxmqajuk] has joined #scheme 21:45:46 hi 21:50:40 -!- hellyeah [n=benebiog@hopper.cs.bilgi.edu.tr] has quit [Remote closed the connection] 21:59:29 chturne [n=chatzill@host86-168-52-177.range86-168.btcentralplus.com] has joined #scheme 22:01:57 I am trying to output some values as seperate argument to another function, what a good way to do this? 22:03:00 (F (G x)) ? 22:04:34 well, im still left with the problem of G outputting one value for each x.. i want f to have say 10 arguments 22:05:10 (f arg1 arg2 ... argn) 22:05:52 need something to ouput those argn values, but all i can think of is a list, but F is restricted to taking n arguments 22:06:30 splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has joined #scheme 22:06:51 borism_ [n=boris@213-35-232-204-dsl.end.estpak.ee] has joined #scheme 22:10:20 (CALL-WITH-VALUES (LAMBDA () (G X)) F) or (APPLY F (G X)), where in the first g uses (VALUES ...) and in the second (LIST ...) 22:13:20 -!- borism [n=boris@213.35.232.215] has quit [Read error: 145 (Connection timed out)] 22:15:20 i have an internal representation of line segments in a plane, i have a line drawing procedure that takes argument in the form x1 y1 x2 y2, given a segment, i need to ouput the 4 value to my line drawing program 22:15:42 CALL-WITH-VALUES? 22:16:33 so, (lambda (segment) ... now ouput 4 values ...) segments 22:18:56 -!- Nshag [i=user@Mix-Nantes-117-4-89.w193-250.abo.wanadoo.fr] has quit [Read error: 110 (Connection timed out)] 22:21:37 or to put another way.. 22:22:13 yes, so (CALL-WITH-VALUES SEGMENT DRAW-LINE) and (DEFINE (SEGMENT) ..... (VALUES x1 y1 x2 y2)) 22:22:44 no that won't work.. nevermine, I'm not explaining it right 22:23:02 thanks for your time 22:23:04 -!- chturne [n=chatzill@host86-168-52-177.range86-168.btcentralplus.com] has quit ["ChatZilla 0.9.85 [Firefox 3.5.5/20091102152451]"] 22:23:50 charlie314 [i=18ecaaa3@gateway/web/freenode/x-brzkxuzgylbtblpf] has joined #scheme 22:26:42 mabes_ [n=mabes@bmabey.fttp.xmission.com] has joined #scheme 22:30:18 -!- charlie314 [i=18ecaaa3@gateway/web/freenode/x-brzkxuzgylbtblpf] has quit ["Page closed"] 22:37:19 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 22:44:32 -!- mabes [n=mabes@bmabey.fttp.xmission.com] has quit [Read error: 110 (Connection timed out)] 22:45:28 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 22:51:46 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit ["Leaving."] 23:14:18 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 23:23:27 kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has joined #scheme 23:24:59 -!- choas [n=lars@p5B0DB371.dip.t-dialin.net] has quit ["leaving"] 23:27:34 -!- snorble [n=snorble@s83-179-14-105.cust.tele2.se] has quit [Remote closed the connection] 23:31:39 sepult` [n=levgue@xdsl-87-78-173-134.netcologne.de] has joined #scheme 23:34:37 karlw [n=user@adsl-99-157-202-134.dsl.pltn13.sbcglobal.net] has joined #scheme 23:34:38 -!- sepult` [n=levgue@xdsl-87-78-173-134.netcologne.de] has quit [Client Quit] 23:36:07 Gedit needs a Lisp indentation plugin for indoctrinating unsuspecting mortals. 23:37:42 sepult` [n=levgue@xdsl-87-78-173-134.netcologne.de] has joined #scheme 23:38:01 Or, better, embed TinyScheme console with POSIX extensions in gedit. 23:38:01 23:39:15 -!- sepult [n=levgue@xdsl-87-78-173-102.netcologne.de] has quit [Nick collision from services.] 23:39:28 -!- sepult` is now known as sepult 23:41:19 Then, in the gedit documentation, include an ``Easy Programming Tutorial'' in ``Foo Script'' with suspicious resemblance to chapter 1 of SICP. 23:49:44 -!- karlw [n=user@adsl-99-157-202-134.dsl.pltn13.sbcglobal.net] has left #scheme