00:05:43 minion: you've passed the turing test in my heart 00:05:43 what's up? 00:06:58 -!- hadronzoo [n=hadronzo@ppp-70-251-98-238.dsl.rcsntx.swbell.net] has left #scheme 00:13:00 The bots here are cute! 00:13:29 I can't figure out what incubot is up to, though. 00:15:42 incubot just spits out things that people said once upon a time here. 00:15:47 incubot: it's been said that you're unoriginal. 00:15:50 CL - the unoriginal Lisp 00:27:31 Ah, so it tries for the closest keyword match, or perhaps random if it can't find one? 00:27:54 incubot: gnhanlkwenf bnjakgnj najkgnewakf. 00:28:11 Heh, got it. 00:28:17 incubot: minion? 00:28:20 yayks, only half a minute to answer, guess i took you by surprise, minion 00:28:27 heh 00:28:34 incubot: the and so but for 00:28:35 incubot: minion: 00:28:38 Who runs the minion bot? 00:28:52 I guess it didn't like "the and so but for" either. 00:29:05 incubot, you are a plagiarist, like Canadian copyright bureaucrats! 00:29:08 gotcha ... is it like Canadian vs Texan english or Kantenese vs Mandarin? 00:29:59 Kantenese? 00:30:25 Alternate spelling (or mispelling) of Cantonese, but I don't know which. 00:30:42 The language from which Immanuel Kant first transcribed the golden tablets of _A Critique of Pure Reason_ when he received them from divine inspiration. 00:30:49 Everyone knows that! 00:31:07 right! which is directly comparable to Mandarin! 00:32:22 Well, he was taking a trip through China, and was kind of high on opium at the time. 00:32:31 Riastradh: Mm-hm. And I bet you believe that Joseph Smith translated the Book of Mormon from golden plates, too. 00:32:40 -!- duper` [n=duper@innu.org] has quit [Read error: 104 (Connection reset by peer)] 00:32:51 duper` [n=duper@innu.org] has joined #scheme 00:32:53 No, Joseph Smith plagiarized those from Immanual Kant. 00:33:05 Ah, right. 00:33:34 Well, I'm glad we've put that historical controversy to bed! 00:34:02 Riastradh: Thanks that seems to have solved my issue, but I'm wondering what PARSER:BACKTRACKABLE does. 00:34:57 arcfide, that enables the parser to backtrack after consuming the carriage return but failing to consume a line feed. 00:35:12 Riastradh: In what contexts does it work? 00:35:24 -!- grnman [n=grnman@shell.thehostbusters.com] has quit ["leaving"] 00:35:40 Riastradh: I understand that it sets up a return point, but except for things that are built in, like PARSER:REPEATED-UNTIL, how can I take advantage of it? 00:35:42 Any parser can be made backtrackable. By default, however, after consuming a token, all other choices are discarded. 00:36:30 For example, suppose you want to match either of the strings `TRUE' or `FALSE', without consuming anything else even if some prefix of the two words is in the input stream. 00:36:45 Then you would have to use: (parser:backtrackable (parser:choice (parser:string= "TRUE") (parser:string= "FALSE"] 00:37:49 So in the case where I want to write a parser for: := *text [CRLF LWSP-char field-body], would I need to use this? I would need to wrap a PARSER:SEQUENCE in a PARSER:BACKTRACKABLE inside of an optional parser? 00:38:17 Riastradh: so if either choice isn't available, the backtracking is automatically invoked and the parser returns back to the previous state? 00:38:27 To your second question: yes. 00:39:40 (Note that if TRUE or FALSE shared a common prefix, it would also be necessary to use PARSER:DEEP-CHOICE rather than PARSER:CHOICE. This is probably a mistake in the design of PARSER:DEEP-CHOICE; it probably ought to have been that PARSER:DEEP-CHOICE is the composition of PARSER:CHOICE and (MAP PARSER:BACKTRACKABLE ...).) 00:40:16 (The last clause in that parenthesis also ought to have been in the subjunctive mood, not in the indicative mood. I apologize for any confusion.) 00:40:50 Riastradh: I think I follow you. 00:42:12 PARSER:OPTIONAL has an implicit backtracking in it, doesn't it? So that if the parser passed to it fails, it rewinds and just returns the default value? 00:42:27 No. 00:42:30 Or is this one of those things that needs rewinding as well, manually, using PARSER:BACKTRACKABLE?. 00:42:32 Bah, okay. :-) 00:42:51 Let's see if I can rewrite this then. 00:43:27 Nothing but PARSER:DEEP-CHOICE implicitly uses PARSER:BACKTRACKABLE. 00:44:21 Oh, by the way, I forgot: you can use PARSER:STRING:REPEATED-UNTIL rather than PARSER:LIST->STRING and PARSER:LIST:REPEATED-UNTIL. 00:45:27 Oh! 00:45:39 Haha, I totally missed those, even though they are right there in the export list. Thanks. 00:45:57 Have you ever tested the performance of these parser-combinators? 00:46:03 I'm trying to remember why I defined PARSER:DEEP-CHOICE the way I did. 00:46:07 No. They're slow. 00:46:10 Very slow. 00:46:33 That's too bad. 00:46:47 I don't think they'll end up being a bottleneck, though. 00:47:20 Are they slow by their very nature, or is it just that you haven't bothered to make them fast? 00:47:44 There are two reasons to use this library: it supports incremental development of parsers very well, and it is space-safe by default; only PARSER:BACKTRACKABLE and PARSER:DEEP-CHOICE will screw that up. 00:48:11 Riastradh: There's another reason: it makes writing parsers a whole lot easier. 00:48:51 I like the incremental part a lot though, because I can reuse parsers elsewhere when I don't want the whole thing parsed, and they all have a consistent interface. 00:55:56 Oh, by the way, the space safety is predicated upon the compiler's use of a flat closure representation (or any representation in which no closure has references to variables it does not use). 00:58:19 Riastradh: are recursive parsers okay? 00:58:28 Excepting the obvious dangers such as left recursion. 00:58:31 By the way, here's something I've had sitting around my local Darcs repository for a while, without having done anything to it: 00:58:50 Riastradh pasted "parser-cond" at http://paste.lisp.org/display/80996 00:59:45 I don't know exactly what you mean by recursive parsers, but the answer is probably `yes'. 01:00:22 arcfide: i thought right recursion was pathological, not left 01:00:48 arcfide pasted "field-body parsing attempt" at http://paste.lisp.org/display/80997 01:00:52 -!- sepult [n=levgue@xdsl-87-78-26-55.netcologne.de] has quit [Read error: 104 (Connection reset by peer)] 01:01:11 Riastradh: brilliant kant/smith satire, by the way 01:01:13 arcfide annotated #80997 "Failure..." at http://paste.lisp.org/display/80997#1 01:02:19 Riastradh: "Test: this\r\n test" Should parse into "Test: this test". 01:02:22 *Riastradh* bows. 01:03:07 arcfide, RFC822-PARSER:TEXT will consume the CRLF. 01:03:28 Eh??? 01:03:31 Bug. 01:03:46 Use (PARSER:PEEK RFC822-PARSER:CRLF) if you want it not to. 01:03:49 Heheh, I thought that was what the whole backtracking thing was for...okay. :-) How to I get it to *not* consume the CRLF. 01:03:54 Ah, okay. 01:04:22 The reason for backtracking is that if you encounter a carriage return but *not* a line feed, you will want to put the carriage return back into the input stream and then try parsing a character in the RFC 822 set. 01:06:32 Bah, okay. :-) 01:06:39 PARSER:BACKTRACKABLE lets you consume some input and then decide that you didn't want to consume it after all. 01:06:58 But if it does successfully consume, then it stays consumed. 01:07:02 Right. 01:07:12 So if I just want to verify its existence, PARSER:PEEK becomes important. 01:07:22 Right. 01:07:26 *arcfide* sighs. 01:07:33 Righty-o. 01:08:00 If you use PARSER:PEEK, by the way, you don't need to use PARSER:BACKTRACKABLE, becaus PARSER:PEEK will also backtrack (no matter what happens). 01:08:26 So it should suffice to write: (parser:string:repeated-until (parser:choice (parser:peek rfc822-parser:crlf) (parser:end)) ...) 01:08:52 hadronzoo [n=hadronzo@gateway.publicvpn.net] has joined #scheme 01:09:16 Ah, okay. 01:11:22 `publicvpn'? 01:11:38 Hmm, wouldn't that be a `virtual public network', like...the internet? 01:18:18 -!- elias` [n=me@unaffiliated/elias/x-342423] has quit [Read error: 145 (Connection timed out)] 01:19:36 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 01:22:40 -!- alaricsp [n=alaricsp@217.205.201.45] has quit [] 01:23:56 -!- hadronzoo [n=hadronzo@gateway.publicvpn.net] has left #scheme 01:24:01 hadronzoo [n=hadronzo@gateway.publicvpn.net] has joined #scheme 01:32:38 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 01:33:16 Gosh, Googling `scheme parser combinators' yields pretty dismal results. 01:34:19 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 01:46:11 -!- blackened`_ [n=blackene@ip-89-102-208-138.karneval.cz] has quit [] 01:46:13 drdo [n=psykon@78.130.77.70.rev.optimus.pt] has joined #scheme 01:48:55 (Why does the Descot web site insist on a particular font family and pixel-based widths for everything?) 01:49:43 (It still looks much nicer if I just strip off the stylesheet, and it is also displayable in smaller windows.) 02:05:14 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 02:15:41 xwl [n=user@114.245.139.203] has joined #scheme 03:08:33 -!- tjafk2 [n=timj@e176211105.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:12:06 When you google anything the results are dismal. 03:12:26 The internet is a cesspool, and we are in the dark ages of computer science. 03:13:01 -!- arcfide [n=arcfide@adsl-99-137-200-55.dsl.bltnin.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 03:13:16 satiety ... arrogance ... 03:13:16 offby1, memo from rudybot: zbigniew told me to tell you: klutometis has nominated you the wizard of oz, please prepare your acceptance speech; as for me, I call you http://heroeswiki.com/Puppet_master 03:13:26 *gasp* 03:13:36 I'd like to thank my parents, the Academy, my lovely wife ... 03:14:23 ? 03:17:19 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 03:18:47 ice_man` [n=user@CPE000d6074b550-CM001a66704e52.cpe.net.cable.rogers.com] has joined #scheme 03:20:00 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 03:21:17 Was satiey & arrogance referring to the internet or to me? 03:21:25 ... or to the lollipop guild? 03:21:41 dysinger [n=tim@32.177.49.175] has joined #scheme 03:23:17 I am comfortable with syntax-rules, could someone explain syntax-case and with-syntax to me? Specifically, I am interested in some examples of what I can do with either syntax-case or with-syntax that I can't do with syntax-rules. I know that there must be many, but it is hard for me to grasp something for which I have not yet had the need. 03:24:59 Alternatively, if someone could simply point me to a place on the net where I could find a decent explanation, that would do just as well, I think. 03:25:13 There are countably infinite more things you can do with syntax-case than syntax-rules. 03:26:33 foof: Alright, could you possibly elaborate on some classes of things that can be done? 03:27:23 foof: As I mentioned, I know there must be many, I just don't know what they are yet. 03:28:10 -!- geckosenator [n=sean@71.237.94.78] has quit ["leaving"] 03:28:13 Construct new identifiers (e.g. a define-record macro that automatically provides field setters&getters). 03:29:29 foof: Interesting... perhaps a better question may be, what is the restriction that syntax-rules imposes that syntax-case does not? 03:30:35 syntax-rules is turing complete within itself, but has no access to the host language or primitives thereof. 03:31:58 So you can't compute the sum of two numbers (or determine if a literal is a number, for that matter), though you can expand to a form (+ a b) for Scheme to compile (and constant-fold if a and b are literals). 03:32:28 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 03:32:40 And you can't destructure or construct strings, though you can generate (string-append ...) forms. 03:33:53 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 03:34:08 The real killer, though, is that you can't construct symbols, and whereas similar to other primitives you can expand to (string->symbol ...) forms, the primitive forms that expect symbols like define and lambda won't accept these - they need a real symbol. 03:35:19 arcfide [n=arcfide@adsl-99-186-237-210.dsl.bltnin.sbcglobal.net] has joined #scheme 03:35:30 Which sums up to not being able to construct new identifiers. 03:35:57 Which is why SRFI-9 makes you manually specify the names of all field accessors. 03:36:34 That's not the only reason. 03:36:55 SRFI 9 could just as well have specified something that required more than SYNTAX-RULES. 03:36:56 Well, that and hygiene. 03:38:04 ice_man`: You may want to look at Chapter 10 of the Chez Scheme User's Guide, or the equivalent sections in another Scheme that uses SYNTAX-CASE. 03:38:09 03:38:26 SRFI 9's design also avoided making any decisions about naming conventions. 03:38:47 foof, arcfide: thanks fellas 03:39:15 foof, arcfide: (assuming you are both men, which is statistically probable) 03:39:26 -!- arcfide [n=arcfide@adsl-99-186-237-210.dsl.bltnin.sbcglobal.net] has quit [Nick collision from services.] 03:39:35 arcfide [n=arcfide@adsl-99-186-236-27.dsl.bltnin.sbcglobal.net] has joined #scheme 03:39:38 Bah, what's going on? 03:39:40 :-/ 03:40:07 Riastradh: Thanks for the feedback on the Descot site. 03:41:03 Riastradh: Are you saying that you prefer the default style sheet for web pages available through (presumably) Firefox, or merely that said stylesheet is superior to the one I have up there right now? 03:41:18 geckosenator [n=sean@c-71-237-94-78.hsd1.co.comcast.net] has joined #scheme 03:41:23 bombshelter13_ [n=bombshel@209-161-236-169.dsl.look.ca] has joined #scheme 03:41:36 I'm saying mostly that the stylesheet makes superfluous decisions. 03:42:19 Such as...styling and layout? 03:42:21 The stylesheet should not dictate how wide a user's viewing window must be in order to read the text without scrolling horizontally. 03:43:10 *arcfide* chuckles. 03:43:24 -!- bombshelter13_ [n=bombshel@209-161-236-169.dsl.look.ca] has quit [Client Quit] 03:44:14 Heh, you must love my new layout :) 03:44:18 The stylesheet should not dictate a particular choice of type face. (I think it is also silly for it to dictate even a particular family.) 03:44:53 Riastradh: Any other things a stylesheet shouldn't do? 03:45:13 Well, I think choosing a colour scheme is pretty silly, too. 03:45:39 And I think making random layout choices is pretty silly as well. 03:45:45 Riastradh: So, really, you just don't like styles at all, especially provided styles? 03:45:45 But what I think is silly is different from what I was complaining about. 03:45:48 You'd prefer to run with your own stylesheet, no? 03:46:03 There are browser extensions for that, and also Lynx. 03:46:38 Riastradh: it appeared that you were complaining about a fixed page width for the content. 03:47:05 Well, fixed widths for several things, but yes. 03:48:09 That is probably the most popular complaint, and it's on my list of things to consider changing. :-) 03:48:18 This means that in my default browser window size, I have to scroll horizontally to read the text, which is more than twice as wide as it should be in order to be easy to read according to conventional typographical wisdom (and according to my own experience). 03:48:35 Really? 03:49:22 In the first line of the Overview first paragraph, what are the last three words on that line? 03:49:26 On the Info page, that is. 03:49:40 `and the principle' 03:49:49 Woah. :-) 03:49:52 Yes, that's a problem. 03:49:57 A bug, for sure. 03:50:25 Thank you for pointing that out. 03:52:08 Riastradh: When feeding a parser seed into PARSER:REPEATED, can I pass any parser? Could I use that SEED place to do some "initial" parsing before I begin repeating over the other parser? 03:52:30 Yes. 03:52:56 Perfect, I was hoping that was the behavior. 03:52:56 *arcfide* really ought to start documenting this stuff. 03:56:36 -!- luz [n=davids@189.122.121.232] has quit ["Client exiting"] 03:58:40 davidad [n=me@dhcp-18-111-6-158.dyn.mit.edu] has joined #scheme 03:59:51 -!- drdo [n=psykon@78.130.77.70.rev.optimus.pt] has quit [Connection timed out] 04:03:41 rudybot: eval (let-syntax (( (syntax-rules () (( a b0 b1 ...) (lambda a b0 b1 ...))))) (( () ( )) ( () ( )))) 04:03:45 zbigniew: error: with-limit: out of time 04:06:03 xwl` [n=user@114.246.82.16] has joined #scheme 04:14:06 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 04:20:06 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Read error: 113 (No route to host)] 04:23:38 -!- xwl [n=user@114.245.139.203] has quit [Read error: 110 (Connection timed out)] 04:25:39 -!- minion [n=minion@common-lisp.net] has quit [brown.freenode.net irc.freenode.net] 04:25:39 -!- underspecified [n=eric-n@leopard175.naist.jp] has quit [brown.freenode.net irc.freenode.net] 04:28:42 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 60 (Operation timed out)] 04:31:49 underspecified [n=eric-n@leopard175.naist.jp] has joined #scheme 04:32:12 hydo [n=hydo@98.232.32.50] has joined #scheme 04:32:39 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:33:38 jlongster [n=user@68.59.187.95] has joined #scheme 04:37:54 Rivelli` [n=tesla@adsl-75-16-94-29.dsl.irvnca.sbcglobal.net] has joined #scheme 04:37:56 0_o 04:38:22 *offby1* 's bot-abuse detector says "whoop whoop whoop" 04:40:15 it only finished now? :p 04:46:34 -!- hadronzoo [n=hadronzo@gateway.publicvpn.net] has quit ["Leaving."] 04:47:12 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 04:47:27 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 60 (Operation timed out)] 04:53:04 What is that, a lowercase lambda? 04:54:43 Emacs thinks it 333426 (#o1213162, #x51672), which is well outside of Unicode. 04:54:57 ... though that may just be how Emacs maps Unicode into mule. 04:57:34 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 60 (Operation timed out)] 05:03:31 my emacs says (1490, #o2722, #x5d2) 05:03:43 HEBREW LETTER GIMEL 05:04:24 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 05:04:44 -!- ice_man` [n=user@CPE000d6074b550-CM001a66704e52.cpe.net.cable.rogers.com] has left #scheme 05:04:56 Ah... it looks funny san-serif. 05:05:45 -!- dysinger [n=tim@32.177.49.175] has quit [Connection timed out] 05:07:38 Heh, aleph is just a reversed mathematical letter "x" in sans-serif. 05:07:57 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 05:08:12 Lilarcor [n=Lilarcor@208-58-210-118.c3-0.161-ubr1.lnh-161.md.cable.rcn.com] has joined #scheme 05:08:13 -!- arcfide [n=arcfide@adsl-99-186-236-27.dsl.bltnin.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 05:08:23 -!- Lilarcor [n=Lilarcor@208-58-210-118.c3-0.161-ubr1.lnh-161.md.cable.rcn.com] has quit [Read error: 54 (Connection reset by peer)] 05:09:29 Tankado [n=Woodruff@bzq-79-176-13-35.red.bezeqint.net] has joined #scheme 05:11:48 -!- Rivelli` [n=tesla@adsl-75-16-94-29.dsl.irvnca.sbcglobal.net] has left #scheme 05:13:23 shh 05:13:30 don't tell anyone 05:23:02 Lemonator [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 05:23:38 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 104 (Connection reset by peer)] 05:31:06 Aleph should not look anywhere close to an "x" no matter what font is used. 05:31:45 Should gimel look like lambda? 05:32:46 Kind of, except that the tail on the righ is much lower. 05:32:52 s/righ/right/ 05:33:34 Well, look at the sans-serif version of aleph at http://en.wikipedia.org/wiki/Aleph 05:34:17 Oh wait... those aren't images :) 05:35:10 Yeah, it's text so whatever font you have installed. 05:35:58 In any case, the structure is a top-left to bottom-right diagonal, with two lines coming from the other corners somewhat towards the center, 05:36:19 but I don't know of any font that makes them actually meet in the center, so the result is always different from an `x'. 05:37:25 [The aramaic version on that page is might be close, but that's a different alphabet anyway.] 05:38:42 I think I wrote it as basically a diagonal line separating two elongated dots when doing set theory. 05:39:49 neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has joined #scheme 05:40:18 That would be wrong -- but the serif version usually has very thin connections compared to the huge tips, so printed pages might easily look like a line with two dots. 05:40:58 FareWell [n=Fare@cpe-72-224-57-255.nycap.res.rr.com] has joined #scheme 05:40:59 And I think that the serif version is always used in math. 05:42:17 yes 05:54:53 hadronzoo [n=hadronzo@ppp-70-251-98-238.dsl.rcsntx.swbell.net] has joined #scheme 06:00:14 -!- xwl` [n=user@114.246.82.16] has quit [Remote closed the connection] 06:04:54 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 06:05:14 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 06:09:28 pants1 [n=hkarau@CPE0013f7c49feb-CM0013f7c49fe7.cpe.net.cable.rogers.com] has joined #scheme 06:11:19 hotblack23 [n=jh@p5B0574CB.dip.t-dialin.net] has joined #scheme 06:15:46 metasynt1x|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has joined #scheme 06:20:24 -!- geckosenator [n=sean@c-71-237-94-78.hsd1.co.comcast.net] has quit [Read error: 110 (Connection timed out)] 06:20:36 -!- brandelune [n=suzume@pl710.nas982.takamatsu.nttpc.ne.jp] has quit [] 06:29:34 -!- metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has quit [Read error: 110 (Connection timed out)] 06:33:51 mmmm 06:34:01 is this a bug in petite chez or a bug in my code? 06:34:17 (define (get-divs number) 06:34:17 (let loop ((num number) (divisors '(0)) (div 2) (last 2)) 06:34:22 ... some code here ... 06:34:38 the code has set-car! on the divisors variable 06:34:48 and for some reason... 06:34:59 the result of get-divs changes between different invocations 06:35:00 -!- ASau [n=user@193.138.70.52] has quit ["off"] 06:35:03 with the same parameter 06:35:13 if i instead do this... 06:35:18 (define (get-divs number) 06:35:19 (let loop ((num number) (divisors (make-list 1 0)) (div 2) (last 2)) 06:35:24 the code executes correctly 06:35:29 but i don't get why 06:40:58 presumably in chez, '(0) makes a single list that is referenced by the code in which it appears. (list 0) , on the other hand, creates a list during each evaluation 06:41:23 maybe it has an internal pool of lists used 06:41:42 and that's why it changes even while i'm declaring it's value there 06:41:45 you could try quasiquote 06:41:55 nah, i have to change the algorithm anyway 06:41:58 it's slow 06:42:09 but that thing puzzled me 06:43:57 i meant, if you were curious 06:44:21 i'll try as a test :) 06:45:07 quasiquote gives the same result as quote 06:45:30 but (list 0) works 06:46:04 i mean tricking quasiquote 06:46:21 uhm, how? 06:46:29 like, `(,x), where x comes from a string that has been fed through the "read" procedure :) 06:46:41 mmmm 06:46:45 good idea 06:46:45 they could still optimize that, but you could find a way to defeat them 06:46:47 *cel* tries 06:47:30 arcfide [n=arcfide@adsl-99-14-208-30.dsl.bltnin.sbcglobal.net] has joined #scheme 06:47:42 -!- hotblack23 [n=jh@p5B0574CB.dip.t-dialin.net] has quit ["Leaving."] 06:49:50 cel: That's a common behavior, the other popular alternative is to throw an error because your code is changing itself. 06:50:14 ikaros [n=ikaros@e179058215.adsl.alicedsl.de] has joined #scheme 06:50:23 And IIUC, even something simple like `(,0) should be the same as using (make-list 1 0) or (list 0) 06:50:36 it works with the quasiquote trick 06:50:42 as well as the (list 0) thing 06:51:02 unfortunately, is slow and i'll have to redo it anyway :P 06:51:28 It's also bad karma. 06:52:04 or switch to plt, which make using mutable lists practically impossible 06:52:17 -!- jlongster [n=user@68.59.187.95] has quit [Read error: 113 (No route to host)] 06:52:35 mike [n=m@dslb-088-067-041-155.pools.arcor-ip.net] has joined #scheme 06:53:03 -!- mike is now known as Guest77937 06:53:57 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 06:55:21 mmc [n=mima@esprx02x.nokia.com] has joined #scheme 06:55:24 neilv, uh? you can't use mcons ? 06:56:13 FareWell: you can, but they are not treated as pairs 06:56:30 should they? 06:57:11 i would have strongly preferred that they were considered a subtype of pair 06:59:54 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["The funniest things in my life are truth and absurdity."] 07:00:49 neilv: It's a question whether it's a subtype that you want or a supertype. 07:01:03 [But I'm not going into that argument.] 07:01:37 i would settle for pair being an abstract supertype :) 07:01:57 then you don't have to say which is the specialization of which 07:13:09 "something that can be read as a pair" is a super(type|interface) of both mutable pairs and immutable pairs. 07:17:34 anyone have a favorite sexp-based sql syntax? 07:18:38 http://planet.plt-scheme.org/package-source/untyped/snooze.plt/2/6/planet-docs/snooze/query.html 07:18:39 -rudybot:#scheme- http://tinyurl.com/llp647 07:18:41 that's a subset of sql 07:19:04 whatsisname years ago had a different sql syntax 07:20:25 -!- arcfide [n=arcfide@adsl-99-14-208-30.dsl.bltnin.sbcglobal.net] has quit [Read error: 60 (Operation timed out)] 07:22:22 neilv, ask the question on #lisp when it's full 07:22:33 -!- FareWell [n=Fare@cpe-72-224-57-255.nycap.res.rr.com] has quit ["Leaving"] 07:26:33 -!- ikaros [n=ikaros@e179058215.adsl.alicedsl.de] has quit ["Leave the magic to Houdini"] 07:33:09 -!- Guest77937 [n=m@dslb-088-067-041-155.pools.arcor-ip.net] has quit ["This computer has gone to sleep"] 07:36:12 cracki [n=cracki@46-030.eduroam.RWTH-Aachen.DE] has joined #scheme 07:37:49 -!- hydo [n=hydo@98.232.32.50] has quit [Remote closed the connection] 07:56:36 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit [Read error: 104 (Connection reset by peer)] 07:57:52 tjafk [n=timj@e176199070.adsl.alicedsl.de] has joined #scheme 07:59:09 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 08:08:26 npe [n=npe@195.207.5.2] has joined #scheme 08:15:03 -!- tjafk [n=timj@e176199070.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 08:22:38 `Antonio` [n=kvirc@92.6.187.78] has joined #scheme 08:23:00 *`Antonio`* good morning 08:30:21 -!- `Antonio` [n=kvirc@92.6.187.78] has quit ["KVIrc 3.4.0 Virgo http://www.kvirc.net/"] 08:38:33 mmm this is quite strange 08:38:49 usually petite chez is somewhat faster here than mzscheme 08:39:11 but when using procedures with more than 4 arguments 08:39:23 the things change completely 08:39:26 plt scheme also has a jit now 08:39:33 the same algorithm takes 4.6 seconds on mzscheme 08:39:37 and 12 on petite 08:39:44 and i'm talking about mzscheme 352 08:40:08 perhaps petite has 4 registers to play with, and then gets dumb :) 08:40:08 just because it has a procedure with 5 arguments 08:40:29 probably that's it or it specializes <4 args procedures 08:40:40 and then falls back to a very-slow-you-know-what-method 08:41:03 i suggest installing plt 4.1.5. it's nice 08:41:09 qebab [n=finnrobi@unicorn.nnordmark.com] has joined #scheme 08:41:38 i would 08:41:49 but i can't get the "if" needs two arguments thing 08:41:58 i mean, three 08:42:16 it's not a big deal 08:42:40 what to put in the third if it will never execute? 08:42:44 just '() ? 08:43:03 emacs M-% to replace "(if" with "(and" 08:43:18 uhm 08:43:59 they are just trying to avoid common errors of someone forgetting to give one of the clauses to "if" 08:45:03 wingo_ [n=wingo@ATuileries-152-1-19-119.w82-123.abo.wanadoo.fr] has joined #scheme 08:45:10 i understand but... i just don't like their choices 08:45:26 specially that "if" things and the take on mutable pairs 08:50:21 i'm a big fan of immutable pairs. i just don't use mutable ones anymore 08:50:35 the "if" thing is a brief annoyance to fix your code 08:51:33 neither do i if i can avoid it, but the if syntax is a littler problematic 08:53:15 i suposse in the end i'll be using another interpreter anyway 08:53:23 because petite hash tables suck 08:53:29 and it has no regex 08:55:15 Nshag [i=user@Mix-Orleans-106-1-251.w193-248.abo.wanadoo.fr] has joined #scheme 08:55:44 rjack [n=rjack@adsl-ull-6-39.51-151.net24.it] has joined #scheme 08:55:58 you can always define your own scheme dialect in plt, which makes "if" behave as you want it 08:56:57 but saying (and A B) instead of (if A B) is not a big deal, and arguably a better way 08:57:03 cel: 352 is *ancient* -- specifically, the jit was very new at the time and much improved since then. 08:57:24 *wingo_* tried building larceny yesterday with plt, and ran into the one-armed if thing. 08:57:59 re the `if' issue -- the right thing is to change `if' to `when', which is better for both writing code and reading it. 08:58:05 cel: plt 4.x has some very nice toys, too 08:58:16 If you want to still stick with `if' you can use (void) for the else branch. 08:59:00 "when" is not scheme-y 08:59:08 Huh? 08:59:09 schemey 08:59:12 Why? 08:59:24 gratuitous syntax 08:59:36 i would use when, but then the code would not work on other schemes without it 08:59:57 unless i write a macro that works like when 09:00:19 "and" is your friend. the pain can be over 09:00:29 use "and" and get on with your life 09:00:35 :) 09:00:35 offby1` [n=user@q-static-138-125.avvanta.com] has joined #scheme 09:00:39 then install plt 4.1.5 and marvel at the macro stepper 09:00:57 neilv: I can make two very strong points against that: (a) you should also get rid of `cond' (or `if') and `case'; (b) one-armed-if is also not scheme-y as a language that leans towards functional solutions. 09:01:22 i don't really need a lot of things, IDEs, debuggers and such 09:01:23 eli: r5rs has several impurities in it, for reasons that are unclear to me 09:01:27 -!- offby1 [n=user@q-static-138-125.avvanta.com] has quit [Read error: 60 (Operation timed out)] 09:01:33 i mean, i use scheme to solve simple euler problems 09:01:35 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 09:01:38 eli: that's no reason to add more :) 09:01:52 neilv: And yet another point from a different angle is that it's very schemy to extend your language to match your intention with macros. 09:01:56 i'm confortable with vim and and a console interpreter 09:02:22 but i need hash tables and regex, and consistency 09:02:40 just beeing a ton slower because you use two more parameters sucks 09:02:44 rudybot_ [n=luser@q-static-138-125.avvanta.com] has joined #scheme 09:02:46 when gambit or plt are much faster 09:02:55 (in exactly that case) 09:03:01 cel: But in any case, if portability is important, then you don't have a bunch of stuff anyway, and the choice of plt or anything else is irrelevant. 09:03:28 will be relevant when instead of 20 small programs i have 100 :P 09:04:04 Personally, I've never seen any point in portability -- it's as bogus as the idea that scheme is "a language" rather than "a core definition for a family of languages". 09:04:20 (And I held this opinion in my pre-plt days too.) 09:04:29 probably true 09:05:12 i know how to write portable scheme code, and i am using plt exclusively while being aware of what i'd have to do to retarget to another scheme 09:05:22 i don't know, i'll test some interpreters, see wich one i like and use it from now on 09:05:34 If speed is really that important to you, you can go with stalin -- which is very different than most other schemes in its complete lack of dynamism. 09:06:02 the rule of thumb for picking a scheme implementation: use plt, unless you know you need something else 09:06:59 -!- 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"] 09:07:45 my problem with plt is... well, they take choices like the "if" syntax or the mutable pairs thing, but on the other hand... their libraries and in general the implementation is amazing, however it's like... ¿what if the next version makes another change that breaks what i wrote before? 09:09:26 arcfide [n=arcfide@adsl-99-137-202-73.dsl.bltnin.sbcglobal.net] has joined #scheme 09:09:42 cel: it's unlikely to back off of these, and it should be pretty stable with the way things look now. 09:09:55 cel: i think what happened is someone decided "hey, we don't have to be an r5rs superset, after all. let's change the things we really want to" 09:10:19 cel: one major part of the v4 changes was making it easy to do things like compatibility languages -- as is done for the `mzscheme' language. 09:11:17 mmmm, talking about mzscheme... 09:11:40 is it possible to make the IDE behave exactly as mzscheme? the same loaded libraries? 09:11:47 neilv: Both of these are issues that many schemers agree on -- with the only issue being backward-compatible code; so in a sense "plt" (whatever that may mean) is trying to just go ahead with the plan. 09:12:29 (This was made very explicit in the mutable cons cell thing.) 09:12:38 cel: If by "IDE" you mean DrScheme -- what are the differences that bother you? 09:13:19 when i start it... it let's me choose from a list of languages 09:13:30 what i would like is the same language mzscheme starts on the commandline 09:14:06 cel: you can set the language to "Module". then, almost every source file will start with a "#lang" line, which says what language it is in. then you have "require" forms for what libraries you wish to use 09:14:30 almost all of my libraries now start with "#lang scheme/base" 09:14:31 cel: Its best to always use the module language, and have `#lang scheme' at the top of files. 09:14:48 `scheme/base' is the more minimal language. 09:14:56 ah, nice 09:15:17 then if i need hashtables something like (require scheme/name) should work 09:15:20 The intention is that `scheme' is the "convenient with lots of stuff in", and `scheme/base' is the more robust language to use in proper code. 09:15:45 IOW, `scheme/base' gets new functions in at a lower pace than `scheme'. 09:15:59 Hash tables are part of `scheme/base'. 09:16:13 And regexps too. 09:16:17 i'll try to adapt the code i have now to plt and use it from now on 09:16:27 good idea 09:16:30 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Read error: 110 (Connection timed out)] 09:16:31 let's see how it works 09:16:56 thanks for the help too :) 09:17:48 don't thank us; thank you. matthias pays us a kickback for every convert we enlist 09:18:17 heh 09:18:38 (In my case it's a salary, which is why I avoid recommendations...) 09:18:42 it's well paid, i'll beg for help on plt here, specially at the start 09:18:43 :P 09:23:33 amca [n=amca@CPE-121-208-82-97.qld.bigpond.net.au] has joined #scheme 09:24:52 -!- wingo_ [n=wingo@ATuileries-152-1-19-119.w82-123.abo.wanadoo.fr] has quit [Read error: 110 (Connection timed out)] 09:25:51 wingo_ [n=wingo@ATuileries-152-1-19-119.w82-123.abo.wanadoo.fr] has joined #scheme 09:28:35 someday, there will be a "define/provide" 09:29:01 JohnnyL [i=crashcar@ool-182f0b98.dyn.optonline.net] has joined #scheme 09:30:13 npe_ [n=npe@195.207.5.2] has joined #scheme 09:31:19 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 09:31:59 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 09:33:21 neilv: Is your sicp language changing the printer? 09:33:48 as i said in the post, it changes those parameters 09:34:09 I didn't see any mention of it specifically... 09:34:38 you didn't see that in the email or in the code? 09:34:51 In the email. 09:34:53 In any case, it is probably a better idea to redefine `#%top' to use a printer that will set the parameter locally. 09:35:33 Unrelated to the fact that it's better to fix the scribble rendering to be more robust. 09:36:02 Setting a language-specific printer is still a missing link, btw. It should be easy to do it in the future. 09:36:09 i will look at #%top later. in the middle of postgresql right now 09:37:40 When you get there, you can see how the `scheme/base' language is using it. 09:38:11 (It also defines `#%module-begin' to get values of non-definition expressions printed.) 09:38:36 dzhus [n=sphinx@95-24-66-62.broadband.corbina.ru] has joined #scheme 09:42:44 ok, i just made the database connection argument in all these procedures be an optional keyword argument, defaulting to a parameter 09:42:49 so simple, and so convenient 09:43:02 -!- rstandy [n=rastandy@net-93-144-17-177.t2.dsl.vodafone.it] has quit [Read error: 110 (Connection timed out)] 09:44:10 it obscures the fact that cursor objects capture the database connection on which they were created, but in practice that should almost never be a problem 09:44:36 wingo__ [n=wingo@ATuileries-152-1-19-119.w82-123.abo.wanadoo.fr] has joined #scheme 09:44:43 only 1% of programmers will use multiple database connections 09:45:28 -!- npe [n=npe@195.207.5.2] has quit [No route to host] 09:46:06 -!- wingo_ [n=wingo@ATuileries-152-1-19-119.w82-123.abo.wanadoo.fr] has quit [Read error: 110 (Connection timed out)] 09:51:23 Mr-Cat [n=Miranda@195.26.167.6] has joined #scheme 09:52:37 -!- leppie [n=lolcow@dsl-243-24-152.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 09:53:18 leppie [n=lolcow@41.243.24.152] has joined #scheme 09:54:22 -!- cel [n=cel@105.Red-79-150-207.dynamicIP.rima-tde.net] has quit [Read error: 101 (Network is unreachable)] 09:55:45 -!- wingo__ is now known as wingo 09:56:11 elias` [n=me@resnet-pat-254.ucs.ed.ac.uk] has joined #scheme 09:56:26 neilv: Is this entirely PLT-specific? 09:56:51 foof: mostly, due to ffi 09:58:06 i can always abstract out the ffi stuff in the future, tho, and keep things like the api and cursors. and whatever sql language i use 09:58:22 People are working on new chicken postgres bindings, it would be nice if there was some vague compatibility or cohesion of design between the two. 09:59:00 i should release my stuff soon. otherwise it will sit unreleased, like so many other libraries of mine 10:00:05 -!- 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"] 10:00:44 foof: does chicken have extensions to the printer? 10:00:56 yes 10:01:15 a cursor object in my bindings prints like: # 10:01:30 showing the cursor name and the query 10:02:08 (bbl, need food) 10:03:10 --f00f 10:07:45 -!- wingo [n=wingo@ATuileries-152-1-19-119.w82-123.abo.wanadoo.fr] has quit [Read error: 60 (Operation timed out)] 10:07:48 alaricsp [n=alaricsp@217.205.201.45] has joined #scheme 10:09:35 jao [n=jao@210.Red-83-36-222.dynamicIP.rima-tde.net] has joined #scheme 10:12:32 wingo [n=wingo@ATuileries-152-1-16-81.w82-123.abo.wanadoo.fr] has joined #scheme 10:22:49 -!- Axioplase is now known as Axioplase_ 10:33:57 Edico [n=Edico@unaffiliated/edico] has joined #scheme 10:34:06 MrFahrenheit [n=RageOfTh@92.36.139.109] has joined #scheme 10:37:35 -!- jao [n=jao@210.Red-83-36-222.dynamicIP.rima-tde.net] has quit [Read error: 54 (Connection reset by peer)] 10:41:01 vaasu [n=vaasu@67.23.25.178] has joined #scheme 10:45:42 -!- vaasu [n=vaasu@67.23.25.178] has left #scheme 10:45:47 jao [n=jao@61.Red-81-32-186.dynamicIP.rima-tde.net] has joined #scheme 10:47:08 athos [n=philipp@92.250.250.68] has joined #scheme 10:47:21 LunohoD_ [n=alex@e180067029.adsl.alicedsl.de] has joined #scheme 10:48:41 is there a way in PLT to define syntax-object->datum to be an alias of syntax->datum? 10:49:30 does `define' not work? 10:49:37 syntax->datum is a procedure 10:56:57 indeed that seems to work sometimes 11:04:09 $ guile -e "(use-modules (ice-9 syncase))" -s macro1.scm ==> ERROR: Unbound variable: define-syntax 11:04:13 wingo: ^^ 11:04:30 -!- LunohoD [n=alex@e180076050.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 11:04:31 -!- LunohoD_ is now known as LunohoD 11:06:03 hkBst: It should work all the time. 11:06:37 any of you create web apps with scheme? 11:06:40 hkBst: Another option is to (require (rename-in scheme/base [syntax->datum syntax-object->datum])) 11:07:01 lisppaste: url 11:07:01 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 11:07:55 -!- neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has quit ["Leaving"] 11:08:14 ejs [n=eugen@nat.ironport.com] has joined #scheme 11:09:15 hkBst pasted "not always eli" at http://paste.lisp.org/display/81017 11:12:05 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 11:12:23 eli: that rename thingy works nicely though 11:13:24 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 11:13:39 hkBst: what is macro1.scm? and what guile is that? 11:14:00 hkBst: Of course that wouldn't work -- you need it at the syntax level. 11:14:20 hkBst: So you need to change it to (define-for-syntax ...) or wrap it in (begin-for-syntax ...) 11:15:13 hkBst: perhaps your use-modules runs in the (guile) module, not (guile-user) -- dunno. in any case that will be moot as soon as savannah comes back up, i'm merging syncase-in-boot-9 to master 11:15:23 wingo: guile-1.8.6 and macro1 is some file that defines a macro, any macro. 11:16:05 eli: is there also a define-syntax-for-syntax? 11:16:09 hkBst: in that case perhaps try guile -e "(begin (use-modules (ice-9 syncase)) (load \"macro1.scm\"))" 11:17:43 wingo: does guile master recognize #` #' and #, ? 11:18:14 hkBst: No -- for that you use the wrapper, or put it in a separate module. But you should be aware that the bindings that the syntax definition uses come from the second level up. 11:18:41 eli: can you tell me why I get ``make-vector: expects argument of type ; given (DIM)'' 11:19:52 hkBst: I don't know. The first argument is the size, in case that wasn't clear. 11:20:27 yes, that was clear 11:21:38 -!- thesnowdog [i=thesnowd@67.147.220.203.dial.dynamic.acc01-aubu-gou.comindico.com.au] has quit [Read error: 110 (Connection timed out)] 11:24:12 hkBst: syncase-in-boot-9 does 11:24:23 but savannah's down, so you can't pull atm... 11:28:17 eli: what is ``the wrapper''? 11:28:36 hkBst: (begin-for-syntax ...definitions-at-syntax-level-here...) 11:28:51 oh ok 11:30:08 but you cannot put syntax definitions in that 11:30:38 so how would a local macro use a global macro? 11:31:41 eli: ^^ 11:33:43 -!- davidad [n=me@dhcp-18-111-6-158.dyn.mit.edu] has quit [Read error: 60 (Operation timed out)] 11:33:58 hkBst: Oh right, I forgot. 11:34:08 hkBst: Use a separate module then. 11:34:27 hkBst: But are you sure that you want to use a macro inside the body of a macro? 11:35:12 eli: ideally I would specify the DIM macro on the command line and use it the body of the local macro. 11:36:16 +in 11:36:57 hkBst: I have no idea what "the DIM macro" is, or why you need to define a macro in a command line (which sounds mildly insane). 11:38:29 -!- dzhus [n=sphinx@95-24-66-62.broadband.corbina.ru] has quit [Success] 11:38:41 eli: it would be 2 or 3 11:39:20 the dimensionality of the grid to walk in 11:41:13 hkBst: That makes it "the DIM macro would be 2 or 3", which still doesn't make any sense. 11:41:20 (To me.) 11:42:33 eli: do the specifics really matter? (DIM) should be macro-defined to be either 2 or 3 (as you can see in my paste) 11:43:00 it's an integer macro-constant 11:43:15 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [Read error: 60 (Operation timed out)] 11:43:20 Adrinael [n=adrinael@barrel.rolli.org] has joined #scheme 11:43:44 hkBst: It only matters if you want to make sense to me. 11:44:09 eli: I'm trying to :) 11:44:24 hkBst: For example, if what you want is just a value, then I don't see how a macro gets into the picture. 11:46:59 eli: yes, I want just a value. There are three possibilities for that: a variable, a function or a macro. 11:48:55 a macro is not less efficient than the others... 11:51:31 hkBst: I'm sorry, but "not less efficient" doesn't make sense either. This goes also for the notion of specifying macros at the command line -- which command line would that be? The imaginary one used to compile the code, or the one used to run it? 11:52:08 The summary is that it sounds like you're doing something wrong, and that you should really find a different way to do whatever you're trying to do. 11:53:35 eli: that depends on how you choose to run the code, if you have a separate compile step than you need it there... 11:54:13 eli: not less efficient means that you do not have to rely on the compiler to do constant folding 11:55:17 eli: I don't understand why you don't understand; all this is quite straightforward. 11:56:16 what is the reason that the producer in call-with-values has to be a zero-argument procedure, meaning that you have to wrap `values' or other procedures in a lambda to make it a suitable producer? 11:57:05 hkBst: I need what where? I don't see anything straightforward: what you're describing is some way to control macro expansion through a command-line argument, but command-line arguments are things that live at runtime. Maybe you can restart by describing more exactly the problem you're trying to solve. 11:57:36 (And if you do so, please try to avoid terms like "that" and "it" and "there".) 11:58:32 stepnem: It has to be a function because you can't have a multiple-values value to pass as an argument to `call-with-values'. 11:58:41 eli: gambit has a feature to put code at the beginning and end of your source files before compiling/running them. That command line switch can be used to define macros at the command line. 11:59:32 -!- Judofyr [n=Judofyr@c2391BF51.dhcp.bluecom.no] has quit [Remote closed the connection] 12:01:09 hkBst: I don't know what that "feature" is supposed to do, but even just the "compiling/running" part sounds like a fishy hack. 12:01:57 anyway, all of this is not germain to using a global macro in a local macro, but I mentioned it to explain that I do not want to define an entire module. 12:02:20 eli: ah, thank you... I guess I still have to wrap my head around it, :) 12:03:56 hkBst: Still doesn't make sense. Can you please restart the description of the problem you're trying to solve? (To clarify, I'm not usually picky about a precise specification of problems as others are, but I really can't make any sense of what you said so far.) 12:04:41 eli: alright, sure 12:08:05 eli: How do you make a large e-commerce site with scheme? 12:08:43 eli: I'm trying to implement a function that will calculate the total end-to-end lengths of all random walks of depth d on a square grid of dimension 2 or 3. I want to specify the dimension in a macro at the top of my source file and have the correct function generated. That function is `walk-f' at the bottom of my paste. 12:10:04 [hkBst: I'll be back shortly.] 12:10:13 That sounds computable without actually doing the walks. 12:10:24 eli: this is an exponential algorithm and I want the generated function to be specialized to eliminate any inefficiencies. 12:11:06 foof: it is. But I will need to add self-avoidance. 12:11:27 "Self-avoidance?" 12:11:42 foof: that the random walk does not cross itself. 12:12:29 Anyone look at google wave? 12:15:25 http://chrishecker.com/Kurt_G%C3%B6del_is_Laughing_His_Ass_Off_Right_Now 12:16:07 blackened` [n=blackene@ip-89-102-208-138.karneval.cz] has joined #scheme 12:16:44 http://chrishecker.com/Kurt_Gödel_is_Laughing_His_Ass_Off_Right_Now 12:21:25 $ sudo gem install god 12:30:21 ASau [n=user@193.138.70.52] has joined #scheme 12:33:50 foof: That's a wonderful takedown of Alpha! 12:39:19 -!- npe_ [n=npe@195.207.5.2] has quit [Read error: 60 (Operation timed out)] 12:43:43 npe [n=npe@195.207.5.2] has joined #scheme 12:48:06 -!- jao [n=jao@61.Red-81-32-186.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 13:06:00 Axioplase [n=Pied@p5130-ipbf305aobadori.miyagi.ocn.ne.jp] has joined #scheme 13:07:05 Hi. 13:07:26 Is there a paper/url/intuition to implement arbitrary precision arithmetic? 13:10:34 GMP? 13:12:12 That's "use" more than "implement" 13:13:14 I'm wondering how to guess that value is not going to fit in a C integer, and when it's necessary to use another representation. 13:14:03 But maybe just my concept is bad and that all schemes handle the number 1 the same way as a bignum (on the heap (but yet, I doubt it)). 13:14:12 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 13:16:31 No, implementations always represent anything they can as a fixnum. But that's the easy part of implementing bignums. 13:17:02 -!- npe [n=npe@195.207.5.2] has quit [Read error: 54 (Connection reset by peer)] 13:17:42 npe [n=npe@195.207.5.2] has joined #scheme 13:18:08 So, each (* a b) of fixnums contains an overflow test? 13:20:46 yes 13:22:13 -!- Mr-Cat [n=Miranda@195.26.167.6] has quit [Read error: 104 (Connection reset by peer)] 13:22:26 If the implementation is really good it's just a single JOF (jump on overflow) which can be branch predicted as false and cost almost zero overhead. 13:23:16 -!- blackened` [n=blackene@ip-89-102-208-138.karneval.cz] has quit [Remote closed the connection] 13:24:12 -!- leppie [n=lolcow@41.243.24.152] has quit [Remote closed the connection] 13:25:48 -!- amca [n=amca@CPE-121-208-82-97.qld.bigpond.net.au] has quit ["Farewell"] 13:26:57 blackened` [n=blackene@ip-89-102-208-138.karneval.cz] has joined #scheme 13:27:51 hkBst: ping 13:35:27 leppie [n=lolcow@dsl-243-24-152.telkomadsl.co.za] has joined #scheme 13:37:04 -!- Lemonator [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 13:38:21 I dunno why, but it's always fun when you actually need to topologically sort something. 13:41:03 foof: agreed! 13:41:39 jao [n=jao@209.Red-83-36-223.dynamicIP.rima-tde.net] has joined #scheme 13:42:13 foof: What are you sorting? 13:42:52 [Just amuzing that I'm in the middle of revising a very close cousin of a topological sort function.] 13:45:57 I've used for a lot of things. I think I first wrote it for my version of rename(1), the standard version of which will happily clobber file names. 13:46:29 Then I used it for some assembly macros for register allocation, and of course my compiler needs it. 13:47:10 You mean make rename do the renames in the right order? That a nice idea. 13:47:51 But right now I need it to implement a dynamic programming algorithm on a graph, where I can't visit a graph node until all its dependencies have been computed (ensuring it has the optimal value for all incoming nodes). 13:48:33 Yep, it renames in the right order. 13:48:36 Why not hash? 13:48:46 (memoize, that is.) 13:48:50 Because speed is *crucial*. 13:49:01 This is something where optimized C programs take days to run. 13:49:56 I'd expect hashing to be faster than a topological sort. 13:50:36 And by storing the cache directly in the nodes, and precomputing the traversal order once (it's a learning algorithm, so I traverse several times), I can make sure all the inner loops run without any consing and without any need to hash. 13:50:55 The algorithm itself is O(n^3). A toposort preprocessing step is nothing. 13:51:46 sounds like fun 13:53:04 I also pre-cache feature indexes to avoid any hashing in the inner loops. 13:53:44 That was a 20x speedup. 13:54:22 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [Read error: 60 (Operation timed out)] 13:54:27 -!- p1dzkl [i=p1dzkl@cl-88.cph-01.dk.sixxs.net] has quit [Read error: 60 (Operation timed out)] 13:54:37 p1dzkl [n=p1dzkl@1505ds1-str.0.fullrate.dk] has joined #scheme 13:55:03 It's would be fun if it were finished or if I didn't have to present it next week... 13:55:58 Adrinael [n=adrinael@barrel.rolli.org] has joined #scheme 13:57:06 geckosenator [n=sean@c-71-237-94-78.hsd1.co.comcast.net] has joined #scheme 13:58:01 luz [n=davids@189.122.121.232] has joined #scheme 13:58:31 (poll "#scheme" "Do you use a bucket sort when sorting a fairly dense distribution of numbers?") 14:02:28 The only time I ever used a bucket sort was for a calendar application - the buckets were the year/months. 14:02:34 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [Read error: 60 (Operation timed out)] 14:05:46 Mr-Cat [n=Miranda@hermes.lanit.ru] has joined #scheme 14:05:47 Adrinael [i=adrinael@rid7.kyla.fi] has joined #scheme 14:08:38 -!- Prestoco [n=user@a88-115-8-123.elisa-laajakaista.fi] has quit [Read error: 110 (Connection timed out)] 14:13:23 dzhus [n=sphinx@95-24-191-87.broadband.corbina.ru] has joined #scheme 14:13:42 foof: Yeah, that makes sense then. 14:16:34 -!- jao [n=jao@209.Red-83-36-223.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 14:17:47 Prestoco [n=user@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 14:20:51 eli: pong 14:21:09 -!- npe [n=npe@195.207.5.2] has quit [Read error: 113 (No route to host)] 14:21:51 npe [n=npe@195.207.5.2] has joined #scheme 14:24:44 hkBst: Sorry, not much time, but quick question: is the issue limited to only 2 or 3 dimensions? 14:26:57 eli: practically yes 14:28:01 hkBst: In that case the obvious solution is to write one function-defining macro with a parameter for the dimension, then use that in two functions for the two dimensions. (Possibly in two separate modules.) 14:36:05 -!- wingo [n=wingo@ATuileries-152-1-16-81.w82-123.abo.wanadoo.fr] has quit [Read error: 113 (No route to host)] 14:43:12 xwl [n=user@114.246.65.78] has joined #scheme 14:48:23 -!- npe [n=npe@195.207.5.2] has quit [Read error: 113 (No route to host)] 14:48:36 npe [n=npe@195.207.5.2] has joined #scheme 14:48:54 -!- cracki [n=cracki@46-030.eduroam.RWTH-Aachen.DE] has quit ["The funniest things in my life are truth and absurdity."] 14:50:37 -!- Prestoco [n=user@a88-115-8-123.elisa-laajakaista.fi] has quit [Remote closed the connection] 15:03:47 -!- metasynt1x|work is now known as metasyntax|work 15:04:09 ikaros [n=ikaros@e179058215.adsl.alicedsl.de] has joined #scheme 15:04:35 -!- ejs [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 15:06:56 rotty pasted "What would you call this macro?" at http://paste.lisp.org/display/81030 15:08:25 compile :) 15:09:34 import-expr perhaps? 15:10:40 depends what you use it for I guess 15:10:52 (the point being that `expr' must evaluate to a procedure, and it's only evaluated (in the specified environment) upon the first call) 15:11:11 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 15:11:35 so import-procedure ? 15:12:09 the fact that it is 'delayed' should not matter, right? 15:12:14 define-with-environment ? 15:14:20 euhm, I mean, lambda-with-env 15:17:05 leppie: the point is delaying "import" of the libraries specified 15:17:07 -!- foof [n=user@dn157-046.naist.jp] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 15:18:08 eval/delay ? 15:18:31 This is for use in conjure (build system), so I can do stuff to make these libraries available (or work) as long as I manage to do so before running the procedure produced by the macro 15:21:42 eval/delay is good, but ideally I'd like to convey that the expression must evaluate to a procedure 15:22:14 eval-procedure-in-delayed-environment 15:22:16 rotty: do you have an example call to that macro? 15:22:21 it's cumbersome, but what else is dabbrev-exapnd for? :-) 15:23:41 (delayed-eval (typelib-fetcher) (sbank support conjure)) 15:25:09 this is used as a build procedure for a task; the task depends on another one that set's up things so `(environment '(sbank support conjure))' works. 15:27:27 *rotty* thinks he'll name it `eval/lazy-proc' 15:27:51 -!- npe [n=npe@195.207.5.2] has quit [Read error: 104 (Connection reset by peer)] 15:28:09 that doesn't quite fit my sense of what "/" usually means in a name 15:28:22 how about "lazy-eval/environment" or "delayed-eval/environment"? 15:28:42 npe [n=npe@195.207.5.2] has joined #scheme 15:29:06 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 15:29:18 return-procedure-from 15:30:04 lazy-return-procedure-from-environment 15:30:07 -!- TimMc [n=timmc@aurail.ccs.neu.edu] has left #scheme 15:30:57 I guess that's very close to what chandler already proposed 15:34:44 annodomini [n=lambda@130.189.179.215] has joined #scheme 15:34:47 procedure-from-environment/lazy sounds best yet. thanks for suggestions! 15:35:34 chandler: what does "/" usually mean in names? I'm a bit confused about that, actually. 15:35:46 I usually read it as "with" 15:36:24 I used it most often like "*/lazy" -> lazy variant of * 15:36:54 That seems reasonable to me too. 15:38:09 -!- xwl [n=user@114.246.65.78] has quit [Remote closed the connection] 15:39:13 foof [n=user@dn157-046.naist.jp] has joined #scheme 15:41:28 -!- npe [n=npe@195.207.5.2] has quit [Read error: 54 (Connection reset by peer)] 15:41:33 npe [n=npe@195.207.5.2] has joined #scheme 15:45:27 -!- npe [n=npe@195.207.5.2] has quit [Read error: 60 (Operation timed out)] 16:01:05 -!- ASau [n=user@193.138.70.52] has quit [Remote closed the connection] 16:01:12 ASau [n=user@193.138.70.52] has joined #scheme 16:03:34 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 16:04:43 -!- offby1` is now known as offby1 16:05:10 -!- tabe [n=tabe@adel.fixedpoint.jp] has quit [Remote closed the connection] 16:06:03 rotty: I use the '/' character in names often when I want to define a set of constants within a class. 16:06:41 rotty: Such as SOCKET-DOMAIN/INTERNET or SOCKET-DOMAIN/LOCAL, &c. 16:07:17 tabe [n=tabe@adel.fixedpoint.jp] has joined #scheme 16:08:57 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 16:19:36 -!- rudybot_ is now known as rudybot 16:21:09 tjafk [n=timj@e176206117.adsl.alicedsl.de] has joined #scheme 16:26:37 -!- Deformative [n=joe@c-71-238-45-45.hsd1.mi.comcast.net] has quit [Remote closed the connection] 16:28:53 -!- duper` [n=duper@innu.org] has quit [Read error: 110 (Connection timed out)] 16:30:36 Deformative [n=joe@c-71-238-45-45.hsd1.mi.comcast.net] has joined #scheme 16:31:18 Cowmoo [n=Cowmoo@static-70-108-241-27.res.east.verizon.net] has joined #scheme 16:32:49 melgray [n=melgray@70.99.250.82] has joined #scheme 16:35:44 -!- Mr-Cat [n=Miranda@hermes.lanit.ru] has quit [Read error: 54 (Connection reset by peer)] 16:35:58 -!- leppie [n=lolcow@dsl-243-24-152.telkomadsl.co.za] has quit [] 16:46:33 -!- arcfide [n=arcfide@adsl-99-137-202-73.dsl.bltnin.sbcglobal.net] has quit ["Leaving"] 16:48:17 -!- krat3r [n=krat@81.84.156.91] has quit [Read error: 110 (Connection timed out)] 16:56:20 rstandy [n=rastandy@host89-142-static.5-79-b.business.telecomitalia.it] has joined #scheme 16:59:30 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 17:04:19 mejja [n=user@c-87bae555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 17:11:31 -!- Edico [n=Edico@unaffiliated/edico] has quit [Connection timed out] 17:12:23 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Connection timed out] 17:16:59 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has left #scheme 17:17:03 sepult [n=levgue@xdsl-87-78-129-72.netcologne.de] has joined #scheme 17:17:20 leppie [n=lolcow@dsl-243-24-152.telkomadsl.co.za] has joined #scheme 17:17:27 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 17:23:53 Judofyr [n=Judofyr@ti0056a380-0643.bb.online.no] has joined #scheme 17:36:18 mrscheme [n=user@67.110.140.180.ptr.us.xo.net] has joined #scheme 17:36:59 -!- rstandy [n=rastandy@host89-142-static.5-79-b.business.telecomitalia.it] has quit [Read error: 110 (Connection timed out)] 17:37:29 rjack_ [n=rjack@adsl-ull-207-60.51-151.net24.it] has joined #scheme 17:37:36 rioniac [i=naitsabe@SNGDBX.WIFI.WPI.EDU] has joined #scheme 17:40:49 -!- rioniac [i=naitsabe@SNGDBX.WIFI.WPI.EDU] has left #scheme 17:43:51 Edico [n=Edico@unaffiliated/edico] has joined #scheme 17:48:29 -!- rjack [n=rjack@adsl-ull-6-39.51-151.net24.it] has quit [Read error: 110 (Connection timed out)] 17:51:08 -!- sepult [n=levgue@xdsl-87-78-129-72.netcologne.de] has quit [Remote closed the connection] 17:53:29 sepult [n=sepult@xdsl-87-78-129-72.netcologne.de] has joined #scheme 17:53:31 npe [n=npe@91.179.89.225] has joined #scheme 17:57:22 -!- foof [n=user@dn157-046.naist.jp] has quit [Remote closed the connection] 17:57:26 foof [n=user@dn157-046.naist.jp] has joined #scheme 18:01:15 -!- mmc [n=mima@esprx02x.nokia.com] has quit ["Leaving."] 18:13:30 duper` [n=duper@innu.org] has joined #scheme 18:16:56 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 18:22:35 npe_ [i=npe@94-224-248-176.access.telenet.be] has joined #scheme 18:22:51 -!- jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 18:30:38 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Client Quit] 18:33:59 exexex [n=chatzill@88.235.176.68] has joined #scheme 18:39:20 jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has joined #scheme 18:39:35 -!- npe [n=npe@91.179.89.225] has quit [Read error: 110 (Connection timed out)] 18:46:01 hotblack23 [n=jh@p5B0574CB.dip.t-dialin.net] has joined #scheme 18:49:06 eli: on line? 18:55:48 saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has joined #scheme 18:57:15 -!- copumpkin [n=pumpkin@Aeropuerto.Kiewit.Dartmouth.EDU] has quit [Client Quit] 19:05:14 peterwang [n=peterwan@58.207.128.80] has joined #scheme 19:09:20 -!- peterwang [n=peterwan@58.207.128.80] has left #scheme 19:09:50 -!- rjack_ [n=rjack@adsl-ull-207-60.51-151.net24.it] has quit ["leaving"] 19:17:07 rstandy [n=rastandy@net-93-144-190-50.t2.dsl.vodafone.it] has joined #scheme 19:22:26 duper`` [n=duper@innu.org] has joined #scheme 19:25:04 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 19:27:09 npe [n=npe@91.179.89.225] has joined #scheme 19:28:12 kuribas [i=kristof@d54C433EB.access.telenet.be] has joined #scheme 19:29:10 Ragnaroek [i=54a640e7@gateway/web/ajax/mibbit.com/x-52400da327df304c] has joined #scheme 19:32:26 -!- Axioplase [n=Pied@p5130-ipbf305aobadori.miyagi.ocn.ne.jp] has quit [Read error: 110 (Connection timed out)] 19:35:48 aack [n=user@a83-161-214-179.adsl.xs4all.nl] has joined #scheme 19:39:56 -!- duper` [n=duper@innu.org] has quit [Read error: 110 (Connection timed out)] 19:42:02 -!- ikaros [n=ikaros@e179058215.adsl.alicedsl.de] has quit ["Leave the magic to Houdini"] 19:44:44 -!- Tankado [n=Woodruff@bzq-79-176-13-35.red.bezeqint.net] has left #scheme 19:48:17 -!- npe_ [i=npe@94-224-248-176.access.telenet.be] has quit [Read error: 110 (Connection timed out)] 19:48:27 Mr-Cat [n=Mr-Cat@78-106-87-52.broadband.corbina.ru] has joined #scheme 20:04:59 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["The funniest things in my life are truth and absurdity."] 20:06:24 -!- metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has quit [""Nichts mehr.""] 20:14:38 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 20:27:07 npe_ [i=npe@94-224-248-176.access.telenet.be] has joined #scheme 20:27:27 -!- Cowmoo [n=Cowmoo@static-70-108-241-27.res.east.verizon.net] has left #scheme 20:34:46 -!- lisppaste [n=lisppast@common-lisp.net] has quit [Remote closed the connection] 20:34:46 -!- specbot [n=specbot@common-lisp.net] has quit [Remote closed the connection] 20:35:32 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 20:37:33 -!- alaricsp [n=alaricsp@217.205.201.45] has quit [Read error: 110 (Connection timed out)] 20:41:53 lisppaste [n=lisppast@common-lisp.net] has joined #scheme 20:43:19 -!- npe [n=npe@91.179.89.225] has quit [Read error: 110 (Connection timed out)] 20:43:32 minion [n=minion@common-lisp.net] has joined #scheme 20:43:34 specbot [n=specbot@common-lisp.net] has joined #scheme 20:44:58 -!- mrscheme [n=user@67.110.140.180.ptr.us.xo.net] has quit [Remote closed the connection] 20:47:02 cel [n=cel@193.Red-79-148-50.dynamicIP.rima-tde.net] has joined #scheme 20:47:08 hi :) 20:52:37 reprore [n=reprore@EM114-48-28-242.pool.e-mobile.ne.jp] has joined #scheme 20:52:40 hi 20:52:42 Is there a way to check out chicken scheme trunk (1)Without entering username/password by hand (2)Without using --username and --password? 20:53:01 ejs [n=eugen@3-233-124-91.pool.ukrtel.net] has joined #scheme 20:53:05 subversion should store your password in ~/.subversion after entering it once 20:53:59 Well, even entering once is not an option 20:54:06 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [Remote closed the connection] 20:54:20 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 20:54:57 How come? 20:56:50 I'm going to make an archlinux PKGBUILD. Unfortunately package-building scripts in archlinux do some queries to svn repo internally and I have not found a way to pass them username and password still. 20:56:56 -!- wrldpc [n=worldpea@pool-173-48-214-204.bstnma.fios.verizon.net] has quit [Read error: 104 (Connection reset by peer)] 20:57:12 Mr-Cat: create the anonymous user on your local machine; echo |svn --blah svn://blah.org/blah 20:57:19 works for em 20:57:43 me*; oh, never mind; you're doing some sort of packaging 20:58:08 yeah 20:58:26 I think someone set up a git mirror on github 20:58:30 Perhaps that requires no auth 20:59:08 In fact there should be a way to pass username and password to packaging system, but I haven't found it yet 20:59:31 is there something like... (require srfi/1/iota) ? 20:59:35 (in mzscheme) 20:59:38 Tried asking in a relevant channel? 20:59:44 or do i need to import the whole srfi/1 lib? 21:00:10 cel: R6RS has a syntax that allows you to say something like (import (only srfi-1 iota)) 21:00:49 let's check the documentation 21:03:11 What a great idea! 21:06:19 -!- pfo [n=pfo@chello084114049188.14.vie.surfer.at] has quit [Connection timed out] 21:08:22 incubot: RTFM! 21:08:25 RTFM 21:08:37 incubot: RTFM, too! 21:08:40 RTFM RTFM 21:08:52 minion: chant! 21:08:52 MORE CODE 21:08:55 incubot: stfu, newb! 21:08:58 sorry for being a newb 21:09:08 incubot, don't apologize to sladegen! 21:09:08 incubot: good boy! 21:09:11 i mistakenly typed least common.. for that i apologize 21:09:14 never mind, just enjoy all the things that are going to be just fine for you! Life is good here in Scheme land. 21:09:50 pfo [n=pfo@chello084114049188.14.vie.surfer.at] has joined #scheme 21:10:01 schemelanders, clear for take off! 21:16:23 meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has joined #scheme 21:16:52 -!- pfo [n=pfo@chello084114049188.14.vie.surfer.at] has quit [Remote closed the connection] 21:17:05 -!- Ragnaroek [i=54a640e7@gateway/web/ajax/mibbit.com/x-52400da327df304c] has quit ["http://www.mibbit.com ajax IRC Client"] 21:17:16 pfo [n=pfo@chello084114049188.14.vie.surfer.at] has joined #scheme 21:18:43 Adamant [n=Adamant@c-76-29-188-22.hsd1.ga.comcast.net] has joined #scheme 21:19:35 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [Read error: 104 (Connection reset by peer)] 21:20:14 Adamant [n=Adamant@c-76-29-188-22.hsd1.ga.comcast.net] has joined #scheme 21:21:35 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [Client Quit] 21:22:57 Adamant [n=Adamant@c-76-29-188-22.hsd1.ga.comcast.net] has joined #scheme 21:24:18 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [Client Quit] 21:26:11 -!- kuribas [i=kristof@d54C433EB.access.telenet.be] has left #scheme 21:27:08 wy_ [n=wy@66.194.68.210] has joined #scheme 21:27:17 -!- wy_ [n=wy@66.194.68.210] has quit [Client Quit] 21:28:36 -!- ejs [n=eugen@3-233-124-91.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 21:33:31 mmc [n=mima@cs168106.pp.htv.fi] has joined #scheme 21:35:46 -!- reprore [n=reprore@EM114-48-28-242.pool.e-mobile.ne.jp] has quit [Client Quit] 21:35:48 -!- pfo [n=pfo@chello084114049188.14.vie.surfer.at] has quit [Read error: 110 (Connection timed out)] 21:36:54 -!- sepult [n=sepult@xdsl-87-78-129-72.netcologne.de] has quit ["leaving"] 21:38:16 dnm_ [n=dnm@70-100-231-82.dr04.glvv.ny.frontiernet.net] has joined #scheme 21:38:17 -!- hotblack23 [n=jh@p5B0574CB.dip.t-dialin.net] has quit [Read error: 60 (Operation timed out)] 21:39:29 Oh. Archlinux packaging system does not like svn repos with blank passwords 21:39:36 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 21:40:26 Seems, that I'll have to make a package from a tar.gz snapshot. 21:40:49 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 21:44:52 projections [n=projecti@88.235.101.2] has joined #scheme 21:50:28 -!- npe_ [i=npe@94-224-248-176.access.telenet.be] has quit [] 21:51:18 bombshelter13_ [n=bombshel@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has joined #scheme 21:58:19 Mr-Cat pasted "Chicken4 readline error" at http://paste.lisp.org/display/81049 21:58:30 Any ideas ^^^ 21:58:33 ? 21:59:28 Ah, sorry 21:59:40 Forgot to install termcap 22:02:17 -!- JohnnyL [i=crashcar@ool-182f0b98.dyn.optonline.net] has quit [brown.freenode.net irc.freenode.net] 22:02:17 -!- Axioplase_ [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has quit [brown.freenode.net irc.freenode.net] 22:03:27 JohnnyL [i=crashcar@ool-182f0b98.dyn.optonline.net] has joined #scheme 22:03:27 Axioplase_ [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has joined #scheme 22:04:07 neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has joined #scheme 22:05:08 *Mr-Cat* is going to try porting cairo egg 22:06:05 -!- mmc [n=mima@cs168106.pp.htv.fi] has quit ["Leaving."] 22:11:46 Mr-Cat porting to what? 22:12:27 *sjamaan* guesses Chicken 4 22:13:03 -!- luz [n=davids@189.122.121.232] has quit [Read error: 110 (Connection timed out)] 22:13:06 aha 22:15:21 Does chicken4 support define-macro? 22:16:09 -!- projections [n=projecti@88.235.101.2] has quit [Read error: 104 (Connection reset by peer)] 22:16:44 No 22:17:04 It has explicit renaming, if you need low-level macros 22:18:44 sjamaan: Unfortunately cairo egg for chicken3 uses define-macro. 22:18:54 That's pretty trivial to rewrite 22:18:57 This egg seems quite weird to me 22:20:43 And the list of functions seems to be incomplete... Hm... swig supports chicken, doesn't it? 22:20:52 I don't really understand what this cairo-flags macro is supposed to do. Why does it prefix all these constants with a - sign? 22:20:59 projections [n=projecti@88.235.101.2] has joined #scheme 22:22:03 mmm, probably an stupid question 22:22:08 why is this faster... 22:22:09 sjaaman: Seems, that it just gets rid of all those define-foreign-variable 22:22:15 cel: (require (only-in srfi/1 iota)) 22:22:19 (let loop ((4 bindings)) 22:22:19 huh? 22:22:22 (loop ...) 22:22:25 than this... 22:22:32 (define (func 4 bindings) 22:22:34 (func ...) 22:22:35 sjamaan: Ah, sorry, misspelled your nick 22:22:44 (there is a lot more code, but that's the thing) 22:22:56 eli thanks a lot :) 22:23:29 cel: Are you putting your code in a module? 22:23:38 eli: no, should i? 22:23:54 it feels overkill to make a module for each if such small programs 22:24:00 And I assume that in both cases this is a loop, right? 22:24:21 mmmm, wait, i'll pastebin it 22:25:06 Mr-Cat: What it's doing is for example with (--cairo-flags "CAIRO_FORMAT_ARGB32" "CAIRO_FORMAT_RGB24" ...), it expands to (begin (define-foreign-variable -CAIRO_FORMAT_ARGB32 unsigned-integer "CAIRO_FORMAT_ARGB32") (define CAIRO_FORMAT_ARGB32 -CAIRO_FORMAT_ARGB32) (define-foreign-variable -CAIRO_FORMAT_RGB24 unsigned-integer "CAIRO_FORMAT_RGB24") (define CAIRO_FORMAT_RGB24 -CAIRO_FORMAT_RGB24) ...) 22:25:10 cel: The reason I'm asking about working in a module is that it would make a significant difference between the two. 22:25:12 Great 22:25:14 That's unreadable ;) 22:25:28 I think it's doing this double-renaming thingy to make it work properly in the exports list 22:25:35 (you cannot directly export foreign variables) 22:25:55 I think you can change that to a syntax-rules macro easily 22:25:57 cel: For example, with a (let loop (...) ...), any calls to `loop' inside are guaranteed to be going back to the loop -- so the compiler can turn the whole thing to a simple loop. 22:26:47 cel: But with a global function, calling it back must consuly the global namespace -- since they binding might change at any moment. This lookup is not too expensive, but the main cost would be in not turning it into a loop. 22:27:08 no, sorry, that's not quite possible 22:27:32 cel: This is why I mentioned modules -- putting the function definition in a module allows the compiler to assume that it will not be modified, which allows the same kind of optimization, and the speend should be roughly equivalent. 22:27:35 eli this is the code http://pastebin.ca/raw/1440237 22:27:47 i'll test again putting it into a module 22:27:52 :) 22:29:35 cel: You have some bad indentation in `get-divis'. 22:30:06 i have a lot of bad indentation everywhere :\ 22:30:13 but it's easier for me if i indent that way 22:31:16 Mr-Cat_ [n=Mr-Cat@78-106-86-253.broadband.corbina.ru] has joined #scheme 22:31:32 -!- elias` [n=me@unaffiliated/elias/x-342423] has quit [Read error: 145 (Connection timed out)] 22:32:01 -!- saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has quit ["This computer has gone to sleep"] 22:32:19 cel: You mean you intentionally broke indentation? 22:32:40 Mr-Cat_: Did you read my explanation of the macro? 22:32:51 eli : ah wait, by bad you mean, it's completely wrong and does not execute correctly? 22:32:57 or aesthetically bad? 22:33:02 sjamaan: aha 22:33:22 Does it make sense? 22:33:25 sjamaan: thanks 22:33:26 -!- Judofyr [n=Judofyr@ti0056a380-0643.bb.online.no] has quit [Remote closed the connection] 22:33:45 sjamaan: It seems to have 22:34:01 -!- dzhus [n=sphinx@95-24-191-87.broadband.corbina.ru] has quit ["-_-"] 22:34:04 RageOfThou [n=RageOfTh@92.36.188.150] has joined #scheme 22:34:18 cel: I'm talking about the "(if (zero? (remainder num div))" line near the top -- it's inside the surrounding if. 22:34:34 Modius_ [n=Modius@adsl-69-149-24-158.dsl.rcsntx.swbell.net] has joined #scheme 22:35:38 it should, i mean, that's the "else" part of the above if 22:36:35 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has left #scheme 22:36:37 but yes, it's indented at the same level as the surrounding if 22:36:48 (i know, it's messy( 22:37:05 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 22:37:07 cel: That's not "the way" to write a nested `if'. 22:37:10 -!- fishey [n=fisheyss@ool-4573344b.dyn.optonline.net] has quit [Read error: 110 (Connection timed out)] 22:37:22 eli: should bug reports against 4.1.900 go to the plt-scheme list or to the bug-tracking system? 22:37:37 eli: how should i do it? 22:37:43 fishey [n=fisheyss@ool-4573344b.dyn.optonline.net] has joined #scheme 22:37:48 cel: The idea is that indentation is always directly related to the structure -- 22:37:56 (because i have quite some nested ifs that way) 22:38:14 nevermind. i'll use the bug system 22:38:27 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 22:38:34 -!- Modius [n=Modius@adsl-69-149-24-158.dsl.rcsntx.swbell.net] has quit [Read error: 60 (Operation timed out)] 22:38:35 cel: The thing is that popular to common belief, scheme doesn't have any visible parentheses -- you just use the indentation structure. 22:38:40 neilv: Either way will work. 22:39:00 cel: If you do have a nested sequence of conditionals, you use `cond'. 22:39:29 mmmm, didn't thought of it 22:39:33 Modius__ [n=Modius@adsl-69-149-24-158.dsl.rcsntx.swbell.net] has joined #scheme 22:39:35 but yes, that would be better 22:39:57 `Antonio` [n=kvirc@92.6.187.78] has joined #scheme 22:40:15 nice tips :) 22:40:36 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 22:40:47 -!- `Antonio` [n=kvirc@92.6.187.78] has quit [Client Quit] 22:41:00 -!- Modius_ [n=Modius@adsl-69-149-24-158.dsl.rcsntx.swbell.net] has quit [Read error: 54 (Connection reset by peer)] 22:41:16 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 54 (Connection reset by peer)] 22:41:30 -!- Modius__ [n=Modius@adsl-69-149-24-158.dsl.rcsntx.swbell.net] has quit [Read error: 104 (Connection reset by peer)] 22:41:34 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 22:41:43 cel: And re re-indenting code: in drscheme you select a region and hit tab to reindent, in Emacs there's `indent-region' which should be bound to some key. 22:43:39 *cel* uses vim, but there is also something for that 22:44:01 Generally I just use indent-sexp 22:44:18 It's quicker than select region followed by indent-region 22:44:42 (and it's bound to C-M-q) 22:45:31 cel: nobody's perfect... 22:45:41 The first step to recovery and all that. 22:45:51 i generally indent the code as i write it and modify the way it's clearer for me 22:46:01 but it happens to be a messy way 22:46:11 because i refactor it continuosly 22:46:27 -!- Mr-Cat [n=Mr-Cat@78-106-87-52.broadband.corbina.ru] has quit [Read error: 113 (No route to host)] 22:48:04 Modius [n=Modius@adsl-69-150-56-88.dsl.austtx.swbell.net] has joined #scheme 22:48:24 i suposse it is about practice and getting used to not making mistakes every line :) 22:49:16 davidad [n=me@dhcp-18-111-6-158.dyn.mit.edu] has joined #scheme 22:51:10 -!- MrFahrenheit [n=RageOfTh@92.36.139.109] has quit [Read error: 101 (Network is unreachable)] 23:01:33 reprore__ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 23:01:54 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 113 (No route to host)] 23:03:24 Modius_ [n=Modius@ppp-70-243-81-204.dsl.austtx.swbell.net] has joined #scheme 23:04:00 -!- ASau [n=user@193.138.70.52] has quit [Remote closed the connection] 23:06:30 -!- neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has quit ["Leaving"] 23:15:16 -!- Modius [n=Modius@adsl-69-150-56-88.dsl.austtx.swbell.net] has quit [Read error: 110 (Connection timed out)] 23:16:02 Modius [n=Modius@adsl-70-240-12-191.dsl.austtx.swbell.net] has joined #scheme 23:16:23 -!- Modius [n=Modius@adsl-70-240-12-191.dsl.austtx.swbell.net] has quit [Read error: 104 (Connection reset by peer)] 23:16:50 Modius [n=Modius@adsl-70-240-12-191.dsl.austtx.swbell.net] has joined #scheme 23:21:14 -!- Modius_ [n=Modius@ppp-70-243-81-204.dsl.austtx.swbell.net] has quit [Read error: 110 (Connection timed out)] 23:22:09 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 23:23:53 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 23:27:51 Lectus [n=Frederic@189.105.107.32] has joined #scheme 23:30:33 -!- aack [n=user@a83-161-214-179.adsl.xs4all.nl] has quit [Remote closed the connection] 23:31:57 Modius_ [n=Modius@ppp-70-244-120-158.dsl.austtx.swbell.net] has joined #scheme 23:33:51 -!- reprore__ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 23:38:56 I wonder whether the existing cairo egg was coded by hand 23:43:05 luz [n=davids@189.122.121.232] has joined #scheme 23:43:36 -!- Modius [n=Modius@adsl-70-240-12-191.dsl.austtx.swbell.net] has quit [Read error: 110 (Connection timed out)] 23:45:01 Adamant [n=Adamant@c-76-29-188-22.hsd1.ga.comcast.net] has joined #scheme 23:49:52 -!- Modius_ [n=Modius@ppp-70-244-120-158.dsl.austtx.swbell.net] has quit [Connection timed out] 23:56:14 -!- annodomini [n=lambda@wikipedia/lambda] has quit []