00:18 (join) bio 00:18 bio: ? 00:19 (quit) bio: Client Quit 00:19 asumu: That was fast. 00:20 (join) Biology 00:32 (join) jeapostrophe 00:57 (quit) Biology: Ping timeout: 265 seconds 01:00 (quit) jeapostrophe: Ping timeout: 246 seconds 01:09 (quit) dented42: Ping timeout: 244 seconds 01:20 (quit) yoklov: Quit: computer sleeping 01:22 (join) yoklov 01:29 (quit) realitygrill: Quit: realitygrill 01:29 (join) realitygrill 01:31 (join) Kaylin 01:42 (quit) lebro: Remote host closed the connection 01:43 (quit) dalaing: Quit: Leaving. 01:44 (join) dented42 01:52 (join) lebro 01:55 (quit) Kaylin: Quit: Leaving. 02:01 (quit) lebro: Read error: Connection reset by peer 02:04 (quit) realitygrill: Quit: realitygrill 02:11 (quit) jonrafkind: Read error: Operation timed out 02:42 (join) djcb` 02:43 (quit) djcb: Ping timeout: 240 seconds 02:49 (quit) yoklov: Quit: computer sleeping 02:56 (quit) Skola: Ping timeout: 252 seconds 03:20 (quit) ssbr_: Ping timeout: 246 seconds 03:22 (quit) dnolen: Ping timeout: 260 seconds 03:32 (join) lewis1711 03:39 (join) hkBst 03:42 (join) ahinki 03:48 (quit) hkBst: Ping timeout: 246 seconds 03:48 (join) hkBst 03:48 (quit) hkBst: Changing host 03:48 (join) hkBst 04:06 (join) gciolli 04:22 (quit) cdidd: Remote host closed the connection 04:32 (join) noelw_away 04:43 (quit) mithos28: Quit: mithos28 04:45 (join) mithos28 04:46 (quit) mithos28: Client Quit 05:06 (join) jao 05:07 (quit) jao: Changing host 05:07 (join) jao 05:08 (quit) gciolli: Ping timeout: 245 seconds 05:09 (join) bas_ 05:09 (nick) bas_ -> Skola 05:13 (join) tim-brown 05:27 (join) bitonic 05:30 (quit) tim-brown: Quit: Leaving 05:32 (nick) noelw_away -> noelw 06:13 (join) gciolli 06:18 (join) Skola_ 06:20 (quit) Skola: Ping timeout: 260 seconds 06:41 (quit) gciolli: Ping timeout: 250 seconds 07:04 (join) mmajchrzak 07:17 (join) gciolli 07:40 (quit) Nisstyre: Ping timeout: 246 seconds 07:45 (join) ahinki_ 07:47 (quit) ahinki: Ping timeout: 245 seconds 07:48 (quit) ahinki_: Client Quit 07:48 (join) ahinki 07:49 (join) samth 08:01 (quit) gciolli: Ping timeout: 276 seconds 08:04 (quit) lewis1711: Ping timeout: 272 seconds 08:53 (join) yoklov 09:09 (quit) samth: Ping timeout: 246 seconds 09:14 (join) jeapostrophe 09:19 (join) kanak 09:20 (join) cdidd 09:42 (quit) yoklov: Quit: computer sleeping 09:43 (join) dous 09:59 (join) asdfhjkl 10:03 (nick) samth_away -> samth 10:03 (join) gciolli 10:03 (quit) Fare: Ping timeout: 246 seconds 10:08 (quit) kanak: Quit: Leaving. 10:08 (join) kanak 10:18 (quit) kanak: Ping timeout: 252 seconds 10:27 (join) kanak 10:27 (join) jonrafkind 10:29 (quit) jeapostrophe: Ping timeout: 260 seconds 10:31 (join) Fare 10:31 (join) mceier 10:45 (quit) ahinki: Quit: ChatZilla 0.9.88.1 [Firefox 12.0/20120321033733] 11:03 (join) anRch 11:04 (quit) jrslepak: Quit: This computer has gone to sleep 11:09 (quit) mmajchrzak: Ping timeout: 246 seconds 11:13 (quit) dented42: Quit: Computer has gone to sleep. 11:14 (join) realitygrill 11:15 (quit) Skola_: Ping timeout: 244 seconds 11:20 (join) jeapostrophe 11:21 (quit) hkBst: Quit: Konversation terminated! 11:36 (quit) gciolli: Quit: Leaving. 11:40 (join) dyoo 11:44 (quit) pauls: Quit: Ignore me! 11:47 (join) dnolen 11:59 (join) jrslepak 12:01 (quit) jrslepak: Remote host closed the connection 12:15 (quit) anRch: Quit: anRch 12:19 (join) dous_ 12:21 (quit) dous: Ping timeout: 246 seconds 12:24 (quit) dnolen: Ping timeout: 265 seconds 12:24 (join) petey 12:25 petey: (apply or lst) doesn't work because or is a macro, not a procedure 12:25 petey: but i can't be the first one to want to do it 12:25 petey: is there an easier way than rolling my own function? 12:25 petey: s/easier/more legible/ 12:26 jonrafkind: (ormap values lst) ? 12:28 petey: i don't understand why you'd want to use values there 12:29 stamourv: It's the identity. 12:29 jonrafkind: (apply or lst) would give you the first non-#f value in lst, right? 12:29 petey: right 12:30 stamourv: As for using `or' in a higher-order way, I've certainly wished for that, especially in a teaching setting. 12:31 stamourv: Maybe there's something we could do with identifier macros, or something, to turn higher-order uses into the η-expansion... 12:31 petey: ah ok that makes sense then 12:31 jonrafkind: like cut 12:36 (join) ChibaPet 12:38 (quit) djcb`: Remote host closed the connection 12:39 (join) djcb 12:40 dyoo: petey: the thing about or is that it isn't a function because of its short-circuiting behavior. It has a finer grain of control over the order of evaluation than a regular function 12:43 stamourv: dyoo: Right, but sometimes, you don't really care about that. 12:44 (quit) dyoo: Ping timeout: 245 seconds 13:04 petey: dyoo: you're referring to the fact that or doesn't compute values once it finds something true, right? 13:16 (join) dyoo 13:17 dyoo: petey: yes. It would be possible to have "or" do something magical if it's used as a higher-order argument, but the main #lang racket doesn't do it 13:18 dyoo: ormap does a "mapping" like thing, but also has the short-circuiting behavior 13:18 (join) bas_ 13:18 (nick) bas_ -> Skola 13:21 (quit) realitygrill: Read error: Connection reset by peer 13:22 (join) realitygrill 13:23 (join) Kaylin 13:26 petey: ok thanks 13:26 petey: stamourv is right; in this case, it doesn't matter to me - but that's a useful feature 13:39 (join) anRch 13:45 (join) dented42 13:52 (join) jtpercon 13:59 (quit) dyoo: Ping timeout: 245 seconds 14:00 (quit) dented42: Quit: Computer has gone to sleep. 14:10 (join) gridaphobe 14:19 (join) dented42 14:19 petey: part 14:19 (part) petey 14:26 (join) masm 14:40 (quit) gridaphobe: Quit: Konversation terminated! 14:41 (join) tommc 14:42 (join) dzhus 14:46 (join) untrusted 14:46 (join) Shvillr_ 14:46 (quit) Shviller: Disconnected by services 14:46 (nick) Shvillr_ -> Shviller 14:52 (quit) rudybot: Ping timeout: 264 seconds 14:53 (join) rudybot 15:08 (quit) anRch: Quit: anRch 15:09 chandler: dyoo: got a minute for some autogrammar questions? 15:09 chandler: Ah, whoops, he's not here. 15:13 (quit) asdfhjkl: Quit: Leaving 15:26 (quit) untrusted: Remote host closed the connection 15:42 (quit) tommc: Read error: Connection reset by peer 15:46 (quit) karswell: Remote host closed the connection 16:02 (join) karswell 16:11 (join) mmajchrzak 16:26 (join) abbe 16:28 (join) asumu_ 16:28 (join) cataska_ 16:30 (join) jamessan` 16:30 (quit) AlbireoX: Ping timeout: 260 seconds 16:30 (quit) cataska: Ping timeout: 260 seconds 16:30 (quit) asumu: Ping timeout: 260 seconds 16:30 (quit) jamessan: Ping timeout: 260 seconds 16:30 (quit) ashish: Ping timeout: 260 seconds 16:32 (join) AlbireoX 16:34 (join) Nisstyre 16:36 (join) RacketCommitBot 16:36 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/5oDKZw 16:36 RacketCommitBot: [racket/master] ffi/unsafe/com: fix custodian and multi-instance problems - Matthew Flatt 16:36 (part) RacketCommitBot 16:37 (join) bitonic_ 16:43 (quit) bitonic: Disconnected by services 16:44 (join) bitonic 16:46 (quit) bitonic_: Quit: WeeChat 0.3.5 16:47 (join) bitonic_ 16:48 (quit) bitonic: Disconnected by services 16:48 (quit) bitonic_: Client Quit 16:49 (join) bitonic 16:49 (quit) bitonic: Disconnected by services 16:52 (quit) PfhorSlayer: Read error: Connection reset by peer 16:52 (join) PfhorSlayer 16:58 (join) dyoo 16:58 dyoo: chandler: sorry, had to go somewhere for a sec. What question about autogrammar? 16:59 (join) bitonic 17:00 chandler: dyoo: I came to the conclusion that I need to play around with it a bit to be able to articulate an intelligent question. 17:00 dyoo: apologies for the lack of documentation 17:00 dyoo: the intent actually is to be a parser-tools tutorial, but I haven't finished the text yet 17:00 chandler: I'm not expecting documentation on something that's in development :-) 17:00 dyoo: Essentially: it's a parser generator generator. :) 17:00 chandler: Yeah, I understand what it is, and I've worked with a similar tool in Common Lisp in the past. 17:01 chandler: My vague "huh?" was more to do with how to write the lexer. 17:01 dyoo: Yeah, I want to simplify so that you use a similar definition to that of the grammar, like how antlr does things 17:01 dyoo: but for the moment, it still expects the lexer to be written using parser-tools/lex 17:02 chandler: That'd be really, really nice. :-) 17:03 dyoo: The other component that's missing is the other backend engine. I want to use another backend based on packrat, so that if yacc hits shift-reduce, just switch language levels and have it "just work" 17:03 chandler: What's the purpose of `adapt-python-tokenizer'? Is this something that's necessary for any lexer? 17:03 dyoo: no, specific for the python example 17:04 dyoo: because the token structure that a parser based on parser-tools/yacc depends on using the particular token structure provided by the grammar 17:05 dyoo: my python tokenizer, on the other hand, just returns tuples. So I needed to do a quick-and-dirty translator to make the pieces fit. 17:05 dyoo: for a simpler example that defines a lexer with parser-tools/lex, see: https://github.com/dyoo/autogrammar/blob/master/examples/test-simple-arithmetic-grammar.rkt 17:05 rudybot: http://tinyurl.com/7muvbgl 17:08 (quit) jonrafkind: Ping timeout: 245 seconds 17:10 chandler: dyoo: I haven't used `parser-tools' before, so I guess I'm trying to bite off too much at once here. 17:11 dyoo: chandler: if you don't want to use parser-tools/lex, you can still use autoparser 17:11 dyoo: I mean autogrammar 17:12 dyoo: ... darn, I need a better name if even I can't remember it. :) 17:13 chandler: So autogrammar is responsible for defining the tokens based on what it sees in the grammar definition, correct? 17:13 dyoo: yes, anything that's all uppercased is assumed to be token 17:13 dyoo: the module then exposes constructors "token-FOO" for each FOO token 17:13 chandler: and one per literal token? 17:14 dyoo: yes, as well 17:15 dyoo: The "parse" function that's generated will expect a thunk that will spit out tokens. Things terminate at a token-EOF 17:15 chandler: Right, that makes sense to me. 17:16 dyoo: The complete set of identifiers exposed include "parse", the token constructors, a hash table called "all-tokens-hash" 17:16 chandler: The handling of the literal tokens feels a little clunky to me, though I guess that could be macro'd over. 17:17 dyoo: I wanted to be able to provide a "partial lexer" that automatically knows how to deal with the literals, and the user gets to just fill in the rest of the details 17:18 dyoo: but it doesn't work right with parser-tools/lex: its lexers don't compose nicely because, as far as I can tell, parser-tools/lex lexers don't allow a "fallthrough" case that leaves the port alone. I haven't found a good workaround yet. 17:20 chandler: I suppose you could provide a syntax like `lexer-src-pos' but with the rules for the literal tokens presupplied. 17:21 dyoo: still need to hit on the right design. I'm leaning toward putting the lexer definition in the same file as the grammar, and provide hardcoded definitions for 17:21 dyoo: token types like IDENTIFIER, STRING, NUMBER 17:23 dyoo: gotta go for the moment; thanks for the feedback 17:27 (join) yoklov 17:27 (quit) dyoo: Ping timeout: 245 seconds 17:49 (nick) jamessan` -> jamessan 18:05 (quit) bitonic: Quit: WeeChat 0.3.5 18:05 (quit) yoklov: Quit: computer sleeping 18:07 (join) yoklov 18:07 (quit) bremner`: Quit: Coyote finally caught me 18:07 (join) bremner` 18:08 (quit) bremner`: Client Quit 18:08 (join) bremner` 18:18 (quit) jeapostrophe: Ping timeout: 265 seconds 18:21 (quit) kanak: Ping timeout: 245 seconds 18:26 (join) bitonic 18:35 (quit) mceier: Quit: leaving 18:41 (quit) bitonic: Quit: WeeChat 0.3.5 18:41 (join) bitonic 18:41 (quit) masm: Quit: Leaving. 18:42 (join) masm 18:43 (quit) masm: Client Quit 18:46 (join) tommc 18:51 (part) jtpercon 18:52 tommc: Hello. A quick question for other racket web-developers: How often do you use continuations in practise? Personally I've only been tempted to use them for 'generating names' of functions to post data to. 18:57 (quit) dous_: Remote host closed the connection 18:58 (join) dous 18:58 (join) jonrafkind 19:03 (quit) dous: Ping timeout: 276 seconds 19:05 (quit) noelw: Quit: noelw 19:22 (join) dous 19:22 (quit) dous: Changing host 19:22 (join) dous 19:27 (quit) bitonic: Quit: WeeChat 0.3.5 19:30 (nick) samth -> samth_away 19:31 (quit) Fare: Ping timeout: 246 seconds 19:34 (join) bitonic 19:36 (quit) dzhus: Remote host closed the connection 19:45 (join) Fare 19:51 (join) epictater 19:51 epictater: hello! anyone home? 19:54 epictater: I have the Ubuntu download for Racket. It is for Karmic and I am on Oneiric. Can anyone help me install this? 19:55 epictater: Or direct me to instructions? 19:56 chandler: That shouldn't matter, but there's actually an easier way to install Racket on Ubuntu and keep it up to date. 19:56 chandler: https://launchpad.net/~plt/+archive/racket 19:57 epictater: Thanks, chandler! I am on the way there now ! 19:57 chandler: If you've used a PPA before, it should be straightforward; otherwise, there's a link to documentation about how to use PPAs on that page. 19:58 (quit) jonrafkind: Ping timeout: 252 seconds 19:58 chandler: One word of warning: there are no pre-populated launcher menu items for DrRacket and friends, so you'll need to run drracket from a run prompt or the shell. 19:58 Shambles_: tommc: I think continuations are used to handle "going back", like pressing the back button. They might be used internally for things like 'generators' to chop big processing jobs into smaller ones that are easier to reason about or that could be interleaved with other work. 19:58 epictater: Thanks, chandler. I will install it and see if I can find it then! 20:00 Shambles_: tommc: This isn't in Racket, but will probably give you an idea how they can be used. http://en.wikipedia.org/wiki/Seaside_%28software%29 It's fairly famous for using continuations a lot. 20:01 epictater: chandler, I did the ppa thing and typed drracket and it tells me to 'sudo apt-get install racket'. Should I be doing that after the ppa setup? 20:02 chandler: Yes, you should. 20:02 epictater: thanks! 20:02 chandler: Installing the PPA makes its packages available to you; you still have to install the package you want. 20:03 tommc: Shambles_: Hi. I'm quite familiar with what they are, and certainly see how they can be used. What I'm curious about, is how frequently racket developers use them. In my own experience, the use case hasn't justified the machinery behind them. 20:03 Shambles_: tommc: Googling for "Seaside continuations" (not quoted) will pull up more. 20:05 (join) Moor 20:05 epictater: chandler ... woooo hoooo! I'm running Dr. Racket! 20:05 Shambles_: tommc: I don't think continuations were 'invented' for web use. You'd likely be more convinced their machinery is justified by thinking about how they'd be used to implement 'odd' control flow, like handling backtracking in various graph search algorithms. 20:05 Shambles_: tommc: But if you want to see what they're 'good for' in web applications, what I pointed you at might help. 20:06 (join) RacketCommitBot 20:06 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/FX5WHQ 20:06 RacketCommitBot: [racket/master] racket/gui: fix `slider%' range checking - Matthew Flatt 20:06 RacketCommitBot: [racket/master] slideshow/pict: sync `text' size limit with `font%' - Matthew Flatt 20:06 (part) RacketCommitBot 20:06 tommc: Shambles_: Agreed about above. I'm talking about the machinery as it applies to use in the racket web server. (Especially stateless continuations) 20:07 epictater: Thanks, chandler! I must go explore now. Thank you so much for the help :-) 20:08 tommc: *stateless servlets. 20:08 (quit) epictater: Quit: Leaving 20:08 Shambles_: tommc: I've not been interested in web applications so I'm probably not much help, but given continuations are a major Scheme feature, and some frameworks like Seaside found them useful, it seems like a natural thing to include. It also doesn't really hurt you if you don't use them. 20:10 tommc: Shambles_: Your last sentence hits the nail on the head for me. I've gone far without requiring them, and simply wondered if that was a common affair. 20:19 (quit) Moor: Quit: Page closed 20:24 (join) jrslepak 20:25 (quit) dented42: Ping timeout: 244 seconds 20:25 Shambles_: tommc: I gather it is. Most web frameworks don't have them, so they can't be considered /vital/. It's more something nice to have, kind of like a macro system that's good for more than obfuscating your code and automatically bloating the binaries. :P 20:28 (join) jeapostrophe 20:47 (quit) Shambles_: Read error: Connection reset by peer 20:49 (join) Shambles_ 20:56 tommc: Shambles_: True. 20:58 (quit) yoklov: Quit: computer sleeping 21:00 (join) yoklov 21:12 (quit) jeapostrophe: Ping timeout: 276 seconds 21:13 (quit) tommc: Remote host closed the connection 21:15 (quit) mmajchrzak: Ping timeout: 272 seconds 21:17 (join) samth 21:19 (join) bmp 21:31 (join) dented42 21:32 (quit) dous: Remote host closed the connection 21:36 (quit) realitygrill: Ping timeout: 246 seconds 21:39 (join) realitygrill 21:49 (quit) samth: Ping timeout: 246 seconds 22:16 (quit) Shvillr: Ping timeout: 276 seconds 22:17 (join) Shvillr 22:58 (quit) realitygrill: Quit: realitygrill 22:59 (join) jonrafkind 23:16 (quit) jao: Ping timeout: 246 seconds 23:20 (join) ssbr_ 23:23 (quit) karswell: Ping timeout: 265 seconds 23:25 (quit) yoklov: Quit: computer sleeping 23:29 (join) karswell 23:33 (join) mithos28 23:52 (join) yoklov