00:05 (join) jeapostrophe 00:05 (quit) jeapostrophe: Client Quit 00:28 (part) ice_man: "ERC Version 5.3 (IRC client for Emacs)" 00:32 (join) jeapostrophe 00:35 (quit) dnolen: Quit: dnolen 00:37 (quit) jeapostrophe: Client Quit 01:49 (join) dsrguru 01:52 (join) RacketCommitBot 01:52 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://bit.ly/oaAUlV 01:52 RacketCommitBot: [racket/master] updated Lazy Racket to use racket/base - Stephen Chang 01:52 (part) RacketCommitBot 02:08 (join) RacketCommitBot 02:08 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://bit.ly/nKRaYq 02:08 RacketCommitBot: [racket/master] fix lazy.scrbl so it compiles properly - Stephen Chang 02:08 (part) RacketCommitBot 02:27 (quit) dsrguru: Quit: leaving 02:29 (quit) jonrafkind: Ping timeout: 260 seconds 02:43 (join) realitygrill 03:14 (join) hkBst 03:20 (join) lewis1711 04:00 (join) mceier 04:06 (quit) Lajla: Quit: Phallic Illuminatus 04:08 (join) Lajla 04:28 (join) tfb 04:36 (quit) noelw_: Read error: No route to host 04:37 (join) noelw 05:00 (join) masm 05:30 (join) MayDaniel 06:00 lewis1711: https://gist.github.com/1151241 hmm so my vector-foldl does the same thing as sequence-fold which does a different thing from foldl.... 06:22 (quit) bmp: Quit: Leaving... 06:25 lewis1711: ohh I had it round the wrong way. yay for my probably horribly inefficient vector-fold 06:26 (join) si14 06:59 (join) sstrickl 07:06 (join) RacketCommitBot 07:06 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://bit.ly/qiJLQ5 07:06 RacketCommitBot: [racket/master] add more info to try to debug planet failure - Robby Findler 07:06 (part) RacketCommitBot 07:08 (quit) DGASAU: Ping timeout: 260 seconds 07:12 (join) DGASAU 07:20 (join) RacketCommitBot 07:20 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://bit.ly/qPN7uI 07:20 RacketCommitBot: [racket/master] move some helper files into the private/ directory for drracket tests - Robby Findler 07:20 (part) RacketCommitBot 07:50 (join) dnolen 08:23 (join) RacketCommitBot 08:23 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://bit.ly/qEIudW 08:23 RacketCommitBot: [racket/master] adjust sandbox to give S-expression input "original" status - Matthew Flatt 08:23 (part) RacketCommitBot 08:25 (quit) MayDaniel: Read error: Connection reset by peer 09:05 (join) chturne 09:08 (join) jeapostrophe 09:21 (part) lewis1711 09:33 (join) lucian 09:36 (join) ChibaPet 09:38 (quit) noelw: Quit: noelw 09:43 (quit) dnolen: Quit: dnolen 10:01 (join) RacketCommitBot 10:01 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://bit.ly/nHoZEH 10:01 RacketCommitBot: [racket/master] Fix a scribble test for plural "Examples" - Eli Barzilay 10:01 RacketCommitBot: [racket/master] Typo in error message. - Eli Barzilay 10:01 RacketCommitBot: [racket/master] When a file is missing the ftp client throws an error, catch it. - Eli Barzilay 10:01 (part) RacketCommitBot 10:06 (join) anRch 10:06 (quit) realitygrill: Quit: realitygrill 10:35 (quit) hkBst: Read error: Connection reset by peer 10:40 (quit) ChibaPet: Quit: Leaving. 10:41 (join) ChibaPet 10:53 (quit) chturne: Quit: Leaving 10:54 (quit) jeapostrophe: Quit: jeapostrophe 11:04 (join) dnolen 11:07 ChibaPet: same 11:14 (quit) stride: Ping timeout: 264 seconds 11:14 (join) stride 11:26 (join) RacketCommitBot 11:26 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://bit.ly/oQlrDS 11:26 RacketCommitBot: [racket/master] Use a temporary directory to eliminate DrDr races in running benchmarks. - Sam Tobin-Hochstadt 11:26 (part) RacketCommitBot 11:29 (quit) anRch: Quit: anRch 11:39 (join) RacketCommitBot 11:39 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://bit.ly/poOjHc 11:39 RacketCommitBot: [racket/master] Move the "other editors" section later in the guide. - Vincent St-Amour 11:39 (part) RacketCommitBot 11:47 danking: So this is a macro stumbling block I've ran into a few times. I have a pattern variable which was matched as (foo ...) and I'd like to use the elipses to produce a series of expressions where each foo has been modified a bit. 11:48 danking: Specifically, I want to write a DEFINE-USTRUCT form which will expand into a normal (struct ...) expression and a series of (define (structname-update-fieldname s fld) ...) 11:49 danking: The bodies of the update procedures is fairly trivial, it's just a call to `struct-copy' 11:49 (join) jeapostrophe 11:49 danking: My attempt is here: https://gist.github.com/1151824 . The error is "missing ellipses with pattern variable in template in: fields" 11:49 danking: I'm not sure how this should be done. 11:50 stamourv: danking: Line 12, you're using `fields' without ellipses. The ellipses on line 14 don't count, since they're in the outer #`. 11:51 stamourv: You could map over the list (either `syntax-map' from `unstable/syntax', or `map') 11:51 stamourv: (over 'syntax->list'). 11:52 danking: I was hoping to not use map :/ 11:53 stamourv: Why? `map' is nice. 11:59 danking: The pattern matching stuff seems more elegant. The output of my macro looks like how I'd write it if I was explaining it to someone. 12:00 stamourv: Pure templating is nice, but sometimes you do need the expressiveness of an actual programming language. 12:01 stamourv: Also, you may want to look at `syntax-parse'. I never use `syntax-case' anymore, `syntax-case' is much nicer for most things. 12:02 stamourv: For simple cases, you use it pretty much exactly like `syntax-case', but if you need more flexibility, you don't have to rewrite. 12:04 danking: stamourv: Ok, I've got a second attempt, but I don't have any idea what this error means: https://gist.github.com/1151824 12:05 (join) mattmight 12:06 stamourv: danking: You can have multiple fields, right? 12:07 danking: Yeah. 12:07 danking: stamourv: I think it was a repl thing, it seems to be working after I restarted the repl. 12:07 stamourv: Ok. 12:08 danking: Ah excelent, it works now. 12:08 danking: thanks stamourv 12:21 (join) RacketCommitBot 12:21 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://bit.ly/r6Vpr9 12:21 RacketCommitBot: [racket/master] Fix DrRacket tests. - Vincent St-Amour 12:21 (part) RacketCommitBot 12:29 (quit) tfb: Quit: sleeping 12:29 samth: jeapostrophe: is it possible to get the drdr data somewhere? 12:30 jeapostrophe: what data_? 12:30 (join) shofetim 12:30 jeapostrophe: the timing data is linked from each file 12:30 samth: yeah, i'm thinking of the failed/stderr/etc data 12:31 samth: also, we should try to use some JS graphing library to do the timing graphs 12:31 samth: take the load off of the server 12:31 jeapostrophe: do you want it per-file or a big thing of a whole version? 12:31 samth: the big thing 12:31 samth: i'd like to figure out which files consistently fail 12:31 samth: so that we can disable them 12:34 jeapostrophe: well, in that case, the best thing to do is give you access to the machine so you can write a script using the files directly 12:34 samth: ok 12:34 jeapostrophe: all the data right now is 12G 12:34 samth: how big a single push worth of data? 12:34 jeapostrophe: about 80M 12:35 jeapostrophe: but it gets compressed once it isn't in the top 150 pushes 12:35 jeapostrophe: and then is just 30M 12:37 jeapostrophe: so if you want to use the machine, email me a pub key 12:43 (join) MayDaniel 12:55 (quit) martinhex: Read error: Connection reset by peer 12:58 (quit) Demosthenes: Quit: Lost terminal 13:05 (quit) MayDaniel: Read error: Connection reset by peer 13:07 (join) RacketCommitBot 13:07 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://bit.ly/nVwlMj 13:07 RacketCommitBot: [racket/master] Fixes indentation - Casey Klein 13:07 RacketCommitBot: [racket/master] Adds a syncheck:add-arrow example to the docs - Casey Klein 13:07 (part) RacketCommitBot 13:22 (join) jonrafkind 13:33 (join) weirdo 13:34 weirdo: hello, can i make mpairs display exactly as pairs in the pretty printer? 13:34 weirdo: please, please, please, i need this for my r5rs endeavors 13:37 weirdo: or make it possible to disable 'mcons' printing no matter what 13:41 weirdo: esp. with print-as-expression 13:54 (join) realitygrill 14:03 (quit) lucian: Read error: Operation timed out 14:09 (join) martinhex 14:24 samth: weirdo: see the `print-mpair-curly-braces' parameter 14:24 samth: rudybot: doc print-mpair-curly-braces 14:24 rudybot: samth: your sandbox is ready 14:24 rudybot: samth: http://docs.racket-lang.org/reference/Writing.html#(def._((quote._~23~25kernel)._print-mpair-curly-braces)) 14:24 weirdo: samth, but it prints as (mcons a b) 14:24 weirdo: when print-as-expression is true 14:25 samth: then turn off print-as-expression 14:26 weirdo: rudybot, doc print-as-expression 14:26 rudybot: weirdo: your r5rs sandbox is ready 14:26 rudybot: weirdo: no docs for a current binding, but provided by: racket/base, racket 14:27 samth: rudybot: doc print-as-expression 14:27 rudybot: samth: your sandbox is ready 14:27 rudybot: samth: http://docs.racket-lang.org/reference/Writing.html#(def._((quote._~23~25kernel)._print-as-expression)) 14:27 weirdo: thanks 14:27 samth: however, using r5rs shouldn't do any of this 14:27 samth: rudybot: init r5rs 14:27 rudybot: samth: your r5rs sandbox is ready 14:28 samth: rudybot: eval (display (cons 1 2)) 14:28 rudybot: samth: ; stdout: "(1 . 2)" 14:28 samth: weirdo: look, no curly braces or mcons 14:28 weirdo: samth, i'm using geiser-mode in emacs, which is written in racket 14:29 weirdo: but my program is in r5rs 14:29 samth: (a) geiser is written in elisp, but it's *for* racket 14:29 samth: (b) what program are you running, and what output are you seeing? 14:29 weirdo: geiser has a 'server' running on Racket 14:30 weirdo: samth, expression '(1 2 3), i see something along the lines of (mcons 1 (mcons 2 (mcons 3 ())) 14:31 weirdo: after doing ,enter mylib in geiser 14:31 weirdo: doesn't print-as-expression give prettier output? 14:32 samth: then geiser is using racket's `print' function, not the r5rs `print' function 14:33 weirdo: oh. so current-print needs to be bound to r5rs-print, right? 14:34 weirdo: thank you, it's very enlightening :-) 14:35 samth: that might be the right thing to do 14:35 samth: alternately, you could change the settings of `print-as-expression' 14:35 samth: and `print-mcons-curly-braces' 14:37 (join) prototrout 14:39 (join) lucian 14:47 weirdo: thank you. it all works now 14:47 (quit) masm: Quit: Leaving. 14:53 (quit) si14: Ping timeout: 250 seconds 15:00 (join) lucian_ 15:02 (quit) lucian: Ping timeout: 264 seconds 15:16 (part) prototrout 15:23 (join) MayDaniel 15:26 (join) soegaard 15:32 (quit) soegaard: Ping timeout: 252 seconds 15:43 (quit) MayDaniel: Read error: Connection reset by peer 15:47 (join) hussaibi 16:04 ohwow_: what's algebraic stepper? 16:16 (join) RacketCommitBot 16:16 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://bit.ly/q9aqM6 16:16 RacketCommitBot: [racket/master] [honu] handle unary operators. add some common functions and binary operators - Jon Rafkind 16:16 RacketCommitBot: [racket/master] [honu] dont remove syntaxes that end expressions from the stream so macros can consume them. add a simple cond macro - Jon Rafkind 16:16 (part) RacketCommitBot 16:19 (join) dsrguru 16:23 samth: ohwow_: a debugger that represents the algebraic transformations of the language semantics directly as reduction steps 16:23 dsrguru: I want to write a macro (for/text ([id lst] ...) body) that duplicates body (length lst) many times, replacing occurrences of id in body with elements of lst 16:23 dsrguru: without executing body 16:24 samth: dsrguru: I'm confused -- can you give an example and what it should expand to? 16:24 dsrguru: sure 16:25 dsrguru: (map somefunc (for/text ([str '("one" "two" "three")]) (format "number ~a" str))) 16:25 dsrguru: should become 16:25 dsrguru: (map somefunc (format "number ~a" "one") (format "number ~a" "two") (format "number ~a" "three")) 16:26 samth: dsrguru: that's not possible -- you can't expand into multiple forms 16:27 samth: also, how will you know how long `lst' is? 16:27 stamourv: dsrguru: Should the 3 `format' be in a list? 16:27 samth: (at macro-expansion time, that is) 16:27 dsrguru: I was planning to recursively call the macro 16:27 dsrguru: until lst was null 16:27 samth: but `lst' is an expression, right? 16:27 dsrguru: stamourv: no, I was hoping there was a way to produce multiple forms 16:27 dsrguru: samth: yes 16:28 samth: then how could it possibly know at expansion time how long `lst' is? 16:28 samth: what about: (for/text ([str (read)]) ...) 16:28 dsrguru: I guess that wouldn't be possible :) 16:28 dsrguru: I'm new to the lisp way of doing things 16:28 dsrguru: and macros seem magically powerful 16:29 samth: what larger goal are you trying to accomplish? 16:29 dsrguru: I have a map call 16:29 dsrguru: where the procedure takes many arguments 16:29 dsrguru: and each list that I pass to map 16:29 dsrguru: is a very similar function call 16:29 dsrguru: but with one parameter different 16:29 samth: how about this: 16:29 dsrguru: as in the above map example 16:30 samth: rudybot: eval (apply map string-append (for/list ([str '("one" "two" "three")]) (list (format "number ~a" str))))) 16:30 rudybot: samth: error: eval:1:36: read: illegal use of open square bracket 16:30 dsrguru: (I considered applying map to the appended form) 16:30 samth: rudybot: init racket 16:30 rudybot: samth: your sandbox is ready 16:30 samth: rudybot: eval (apply map string-append (for/list ([str '("one" "two" "three")]) (list (format "number ~a" str))))) 16:30 rudybot: samth: error: eval:1:99: read: unexpected `)' 16:30 samth: rudybot: eval (apply map string-append (for/list ([str '("one" "two" "three")]) (list (format "number ~a" str)))) 16:30 rudybot: samth: ; Value: ("number onenumber twonumber three") 16:31 samth: dsrguru: does that work? 16:31 dsrguru: no 16:31 dsrguru: in this example 16:31 dsrguru: I'd need 16:31 dsrguru: : 16:31 dsrguru: (map somefunc "number one" "number two" "number three") 16:31 dsrguru: so instead of string-append 16:31 samth: that is what you got 16:31 dsrguru: regular append 16:32 dsrguru: wait 16:32 dsrguru: oh 16:32 samth: map takes lists as arguments -- not strings 16:32 dsrguru: you mean string-append was just the func 16:32 dsrguru: you chose 16:32 samth: yes 16:32 dsrguru: ok 16:32 dsrguru: so the problem in my example 16:32 dsrguru: is that 16:32 dsrguru: not all of the lists 16:32 samth: rudybot: eval (apply map list (for/list ([str '("one" "two" "three")]) (list (format "number ~a" str)))) 16:32 rudybot: samth: ; Value: (("number one" "number two" "number three")) 16:32 dsrguru: are to be generated 16:32 dsrguru: by the for comprehension 16:32 dsrguru: so 16:32 dsrguru: I forgot to mention that 16:32 samth: rudybot: eval (apply map list (list 'the-first-element) (for/list ([str '("one" "two" "three")]) (list (format "number ~a" str)))) 16:33 rudybot: samth: ; Value: ((the-first-element "number one" "number two" "number three")) 16:33 dsrguru: oh 16:34 dsrguru: thanks 16:35 dsrguru: samth: yeah that's exactly what I want 16:36 dsrguru: I didn't realize apply worked that way; I thought I'd have to append the lists I already had to the result of for/list and pass that whole newly computed list to apply 16:37 dsrguru: oh I misread that 16:37 dsrguru: you're essentially doing that by mapping the output of for/list back into a new list 16:38 dsrguru: I guess mapping the list is more readable 16:44 dsrguru: samth: so the main thing for me to take away from this is that macros, like functions, produce a single expression, not arbitrary text 16:44 (quit) dnolen: Ping timeout: 252 seconds 16:48 jonrafkind: yes, you replace one expression with another 16:48 jonrafkind: but of course you can have subexpressions 16:49 (join) soegaard 16:54 samth: dsrguru: yes, that's correct -- you can use `begin' to do multiple things, but you can't produce more than one form 16:56 dsrguru: all right thanks 16:57 (quit) dsrguru: Quit: leaving 16:57 (join) dnolen 17:12 samth: rudybot: init typed/racket 17:12 rudybot: samth: your typed/racket sandbox is ready 17:12 samth: rudybot: eval (apply (λ: ([x : String] [y : String]) "") (list "foo" "bar")) 17:12 rudybot: samth: error: evaluator: terminated (out-of-memory) 17:13 samth: offby1: i think your memory limit is too low 17:14 ohwow_: hm 17:14 ohwow_: this looks like a simple program, why would it use much memory? 17:16 samth: the typechecker uses a bunch of memory 17:16 samth: rudybot: help 17:16 rudybot: samth: help [], version, quote, source, seen , uptime, t8 ..., init [], eval ..., give ..., apropos ..., desc , doc , later "tell" ... 17:28 (part) ChibaPet 17:35 (quit) mceier: Quit: leaving 17:35 (join) RacketCommitBot 17:35 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://bit.ly/rcXLt7 17:35 RacketCommitBot: [racket/master] Fix DrRacket test. - Vincent St-Amour 17:35 (part) RacketCommitBot 17:47 (quit) hussaibi: Ping timeout: 260 seconds 17:51 offby1: samth: tell me about it; I can never remember anything :) 17:52 samth: offby1: have you considered a career doing standup? 17:53 offby1: isn't that what I _am_ doing? 17:53 offby1: it's 20 megabytes 17:55 samth: offby1: i expect that's too small for TR at all 17:55 samth: rudybot: eval 1 17:55 rudybot: samth: your typed/racket sandbox is ready 17:55 rudybot: samth: ; Value: 1 17:56 samth: rudybot: eval (+ 1 2) 17:56 rudybot: samth: ; Value: 3 17:56 samth: rudybot: eval (lambda (x) x) 17:56 rudybot: samth: ; Value: # 17:56 (join) Demosthenes 17:56 samth: offby1: i thought it included the results of stdout? 17:56 samth: eval (apply (λ: ([x : String] [y : String]) "") (list "foo" "bar")) 17:56 samth: rudybot: eval (apply (λ: ([x : String] [y : String]) "") (list "foo" "bar")) 17:56 rudybot: samth: error: eval:1:0: Type Checker: Bad arguments to function in apply: Domain: String String Arguments: (List String String) * in: (#%app apply (lambda (x y) (quote "")) (#%app list (quote "foo") (quote "bar"))) 17:57 samth: ah, there it goes 17:59 offby1: the box in which it runs (an ec2 "micro" instance) has only about 150 Mb free, and no swap 17:59 (join) anRch 17:59 samth: that is pretty micro 17:59 samth: any idea why it failed the first time, and ran the second time? 18:02 (quit) jeapostrophe: Quit: jeapostrophe 18:06 (quit) sstrickl: Quit: sstrickl 18:06 (quit) dnolen: Quit: Page closed 18:08 offby1: noe wahtever 18:09 (join) rekahsoft 18:09 rekahsoft: hi all...was wondering how i would go about using provide/contract with a struct that uses auto values.. 18:13 rekahsoft: for example with a struct define like so: (struct posn ([x #:auto] [y #:auto]) #:auto 0 #:transparent) how would the provide/contract look? 18:15 rekahsoft: nvm i found the issue.. 18:16 rekahsoft: lol taken back..don;t think anyone is there tho :( 18:17 samth: rekahsoft: we're here, but you can't expect an instant answer 18:17 samth: also, i don't think you found the answer -- it doesn't work for me 18:20 (join) RacketCommitBot 18:20 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://bit.ly/quEqcE 18:20 RacketCommitBot: [racket/master] Handle apply for functions with no rest arguments. - Sam Tobin-Hochstadt 18:20 (part) RacketCommitBot 18:24 rekahsoft: samth: i just stated that ^ 18:24 rekahsoft: and what doesn't work for you? 18:24 (quit) soegaard: Quit: Page closed 18:26 samth: what did you write in `provide/contract', rekahsoft? 18:26 samth: this always fails for me: (provide/contract (struct posn ([x integer?] [y integer?])))\ 18:27 samth: because the `posn' constructor takes 0 arguemtns, so the contract errors 18:27 (nick) samth -> samth_away 18:27 samth_away: have to run 18:29 rekahsoft: samth_away: alright :( and i have the same thing as my provide/contract..i just don't know how to get around this auto-values issue 18:53 (quit) anRch: Quit: anRch 19:04 (join) masm 19:05 (join) jeapostrophe 19:29 (nick) Lajla -> Geisteskrankh 19:37 (quit) masm: Quit: Leaving. 19:50 (quit) DGASAU: Remote host closed the connection 19:53 (join) DGASAU 19:59 (join) bmp 20:00 (quit) realitygrill: Quit: realitygrill 20:25 (join) lewis1711 20:28 (quit) bmp: Remote host closed the connection 20:28 (join) bmp 21:23 (quit) jonrafkind: Ping timeout: 260 seconds 21:45 (quit) jeapostrophe: Quit: jeapostrophe 21:45 (join) hussaibi 22:44 (join) WarWeasle 22:45 WarWeasle: Hello. I've been trying to compile a simple racket/gui app (based on the examples) but when I complile and run them on windows, I get a console window as well. What am I doing wrong? 22:51 eli: samth_away: the memory accounting that custodians provide can be unpredictable. 22:51 eli: offby1: I'd second Sam's career suggestion... 22:52 (join) jeapostrophe 22:53 WarWeasle: Am I connected? 22:54 eli: WarWeasle: Yes. 22:54 WarWeasle: eli: Thank you. I spent over an hour once before nickserv oked me. 22:54 (quit) jeapostrophe: Client Quit 22:56 eli: WarWeasle: registering with it should avoid that, but I've never heard of problems with random nicks. Maybe they'd gotten more strict though. 22:57 WarWeasle: eli: It was a chanel that required registered nicks, and I had just reinstalled emacs so I didn't have auto-register working yet. 22:57 lewis1711: is there a way to generate a large list like iota in srfi1, or [m..n] in haskell? 22:58 WarWeasle: Any Windows users around? 23:00 eli: WarWeasle: Ah; no, we don't require that -- we even have this thing: http://racket-lang.org/irc-chat.html 23:00 ohwow_: (Sorry for offtopic, but this might be interesting http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1773169 for some people here ) 23:00 eli: rudybot: (length (for/list ([x (in-range 10000)]) x)) 23:00 rudybot: eli: your sandbox is ready 23:00 rudybot: eli: ; Value: 10000 23:00 eli: lewis1711: ^ 23:01 eli: rudybot: (length (sequence->list (in-range 10000)) x) 23:01 rudybot: eli: error: reference to an identifier before its definition: x in module: 'program 23:01 eli: rudybot: (require racket/list) 23:01 rudybot: eli: Done. 23:01 eli: rudybot: (length (sequence->list (in-range 10000)) x) 23:01 rudybot: eli: error: reference to an identifier before its definition: x in module: 'program 23:01 eli: rudybot: (length (sequence->list (in-range 10000))) 23:01 rudybot: eli: ; Value: 10000 23:01 eli: lewis1711: That too. 23:02 lewis1711: eli: aha, I came across in-range but didn't figure it out. thanks 23:04 WarWeasle: ohwow_: That IS interesting. I'll have to read it later. 23:04 (join) RacketCommitBot 23:04 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://bit.ly/peyoBH 23:04 RacketCommitBot: [racket/master] fix plurality of `examples' label - Matthew Flatt 23:04 RacketCommitBot: [racket/master] Revert "Fix a scribble test for plural "Examples"" - Matthew Flatt 23:04 (part) RacketCommitBot 23:09 WarWeasle: Does anyone use Racket for Windows GUI development? I'd like to try it, but I'm getting a console window along with my GUI when I compile the examples to exe. Any ideas what I'm doing wrong? 23:09 (join) asurai 23:10 ohwow_: WarWeasle: have you added --gui option? 23:10 ohwow_: raco exe --gui test.rkt 23:11 eli: WarWeasle: Yes, you need the gui option. 23:11 WarWeasle: ohwow_: No, I was using DrRacket and selecting all the permutations. 23:11 WarWeasle: Of compile. 23:11 ohwow_: eh 23:12 ohwow_: i am not really familiar with DrRacket, let me open it up first 23:12 eli: WarWeasle: Note that there's racket.exe and gracket.exe -- the latter is not really needed, since racket.exe can do everything, but an executable on windows need to identify itself as a gui or a console app, which is the only difference between the two. 23:12 eli: There should be an option in the drracket menu thing too. 23:14 WarWeasle: eli: But I can simply use raco if there isn't? 23:14 (quit) bmp: Ping timeout: 258 seconds 23:16 WarWeasle: Also, what is the proper way to use multiple files to create a project. 23:16 lewis1711: https://gist.github.com/1153214 there's probably stuff wrong with this, but using comprehensions for fold seems to be consistently faster than the built in list function. and generic to boot! 23:17 (quit) asurai: Quit: Bye! 23:29 (quit) blomqvist: Ping timeout: 260 seconds 23:30 (quit) hyko: Read error: Connection reset by peer 23:30 (join) hyko 23:30 eli: lewis1711: no, I get a slightly faster time for the first time. 23:30 eli: lewis1711: no, I get a slightly faster time for the first `time'. 23:31 eli: WarWeasle: Yes. (But there should be.) 23:31 (quit) WarWeasle: Remote host closed the connection 23:33 lewis1711: eli: I get consistently slightly faster for the last time, unless I add another 0 to the list generator thing. I think I'll just keep it for vector folding (since sequence-fold gives different results) 23:33 eli: lewis1711: It should be pretty similar, usually. 23:34 lewis1711: what should be? 23:34 eli: The thing is that the list form is kind of like inlining the body of `foldl', since it expands to roughly the same code. 23:34 eli: (The first and the last should be roughly the same.) 23:34 lewis1711: ah 23:35 eli: So the differences are possibly all in the noise, and can fluctuate on different list sizes, whether the GC happens to kick in in one of them or not, etc. 23:35 lewis1711: out of curiosity, do you know why sequence-fold gives different results than foldl? I think someone expained it before to me here (possibly even you) but I forgot the rationale 23:36 (join) blomqvist 23:38 (join) jonrafkind 23:40 (join) realitygrill 23:45 eli: lewis1711: it's similar to the difference that you'll see between 23:46 eli: (for ([x (in-range 1000)]) blah) 23:46 eli: and 23:46 eli: (let ([r (in-range 1000)]) (for ([x r]) blah)) 23:46 eli: In the first case, the `for' recognizes `in-range' and generates code, but in the second case it generates a value that the for loop needs to work with. 23:48 (quit) hussaibi: Ping timeout: 252 seconds 23:49 lewis1711: hmm, that's beyond me :( 23:50 eli: lewis1711: Think about it this way. 23:50 eli: When `for' sees `in-range', as in (for ([x (in-range 1000)]) blah) 23:50 eli: it knows the kind of code that it needs to generate. 23:50 eli: You can actually use the macro stepper and see how it constructs a named-let loop that is roughly similar to what you'd write. 23:51 eli: But if you first do (define r (in-range 1000)), then r is bound to a value. 23:51 eli: Now, when you do (for ([x r]) blah), the `for' loop has no idea what the range is. 23:51 eli: All it knows, is that it's a "sequence". 23:51 eli: So it uses generic sequence operations to iterate over it. 23:52 eli: And that's very different from the near-hand-written loop in the previous case. 23:52 lewis1711: hmmm. that sort of makes sense 23:52 eli: You can try both with the macro stepper, and see that the two `for' forms expand to very different code. 23:53 lewis1711: I will. didn't even know about the macro-stepper, looks handy 23:56 lewis1711: it's not being picked up by the macro stepper