00:20 (join) Fare 00:27 (quit) DT`: Read error: Connection reset by peer 00:27 (join) DT` 00:32 (quit) hash_table: Ping timeout: 272 seconds 00:39 (quit) jackhammer2022: Quit: Textual IRC Client: http://www.textualapp.com/ 00:44 (quit) Fare: Ping timeout: 246 seconds 00:57 (join) Fare 01:00 (quit) dnolen: Remote host closed the connection 01:04 asumu: I'm using macros to generate syntax classes for syntax-parse, which seems to require phase 2 requires. Question: is using phase 2 requires here a sign of bad design or does it make sense? 01:04 mithos28: Seems fine. Why would phase 2 requires be a bad sign? 01:07 asumu: ISTR someone telling me that high phase (i.e., 1+) requires means you should re-organize your code. Or at least think hard that you need it. 01:07 mithos28: You could move it to a separate module, and require that module at phase 1 01:08 asumu: Yeah, and I suppose I could use a submodule in this case, which is pretty nice actually. 01:08 mithos28: But unless that actually makes your use case cleaner, I wouldn't 01:09 mithos28: ugh, I hate that racket doesn't have different namespaces for bindings 01:09 (quit) mceier: Quit: leaving 01:10 mithos28: static struct info on the same binding as the constructor of structs is annoying 01:11 mithos28: especially once you add type bindings to the constructor, and a type name on the same binding 01:12 asumu: Yeah, it is annoying. Especially since I've wanted to define my own alternate constructor with the same name, but also have the static info. 01:13 mithos28: oh and I need different things attached to the binding depending on if its a typed universe or not 01:29 (join) scott__ 01:33 (join) gridaphobe 01:34 (join) RacketCommitBot 01:34 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/_UHFgg 01:34 RacketCommitBot: [racket/master] Add Guide pointers to Refs on exceptions & control - Asumu Takikawa 01:34 (part) RacketCommitBot 01:35 (quit) gridaphobe: Read error: Connection reset by peer 01:46 (quit) Fare: Ping timeout: 272 seconds 01:48 (join) jonrafkind 01:49 (join) bob_ 01:49 (quit) bob_: Client Quit 01:58 (quit) cdidd: Ping timeout: 246 seconds 01:58 (join) mye 02:17 (join) mceier 02:47 (quit) mithos28: Quit: mithos28 02:51 (quit) sizz: Ping timeout: 240 seconds 02:52 (join) sizz 02:58 (join) mithos28 03:00 (join) sizz_ 03:00 (quit) sizz: Ping timeout: 246 seconds 03:01 (quit) scott__: Quit: Leaving 03:07 (join) none___ 03:08 (join) vkz 03:15 (join) hkBst 03:15 (quit) hkBst: Changing host 03:15 (join) hkBst 03:18 (quit) mithos28: Quit: mithos28 03:28 (join) bitonic 03:33 (join) gciolli 03:37 (quit) bitonic: Ping timeout: 252 seconds 03:43 (quit) mye: Ping timeout: 252 seconds 03:50 (quit) noam: Read error: Connection reset by peer 03:50 (join) noam 04:01 (quit) jonrafkind: Ping timeout: 255 seconds 04:20 (quit) didi: Ping timeout: 246 seconds 04:32 (quit) mceier: Ping timeout: 246 seconds 04:33 (join) mceier 05:06 (join) bitonic 05:55 (quit) mceier: Ping timeout: 272 seconds 05:55 (join) mceier 06:03 (quit) bitonic: Ping timeout: 246 seconds 06:08 (join) cdidd 06:08 (join) jesyspa 06:28 (quit) snorble_: Ping timeout: 256 seconds 06:29 (join) snorble_ 06:32 (join) masm 06:42 (quit) none___: Ping timeout: 245 seconds 07:13 (join) bitonic 07:20 (quit) bitonic: Remote host closed the connection 07:51 (join) mizu_no_oto 08:07 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 08:12 (join) jeapostrophe 08:12 (quit) jeapostrophe: Changing host 08:12 (join) jeapostrophe 08:16 (quit) Shvillr: Ping timeout: 255 seconds 08:19 (join) Shvillr 08:21 (quit) DT`: Read error: Connection reset by peer 08:21 (join) DT` 08:38 (join) jao 08:39 (quit) jao: Changing host 08:39 (join) jao 08:52 (join) bitonic 08:57 (join) mizu_no_oto 09:00 (join) hash_table 09:02 (quit) mizu_no_oto: Ping timeout: 260 seconds 09:03 (join) mizu_no_oto 09:15 (join) __rahul__ 09:34 (join) anRch 09:39 (quit) BeLucid: Remote host closed the connection 09:44 (quit) hash_table: Ping timeout: 245 seconds 09:45 (join) masm1 09:46 (join) mye 09:47 (quit) masm: Ping timeout: 276 seconds 09:48 (quit) jeapostrophe: Ping timeout: 246 seconds 09:53 (quit) mye: Read error: Connection reset by peer 09:56 (join) carleastlund 09:59 SamB_MacG5: If anyone can find a browser that fails to render a glyph in http://jsbin.com/okizeb/2/edit please tell me -- though most likely they'll fail in pairs ... 10:00 ianjneu: no problems in FF16 10:02 SamB_MacG5: of course, that mostly depends on available/configured fonts 10:06 SamB_MacG5: hmm, emacs-w3m in the emacsformacosx build of Emacs 24.1 with the default font set to Monaco 12 only shows the NFC of HTML 4.1 and Scribble glyphs... 10:20 SamB_MacG5: and elinks running under `ansi-term' renders only the HTML 4.1, scribble, and Your Browser glyphs, and not by using the real characters 10:22 SamB_MacG5: gah, why do I keep trying to use the Mac menubar in ELinks ;-) 10:22 jschuster: SamB_MacG5: Chrome 22.0.1229.94, Firefox 15.0.1, and Safari 6.0.1 all look good under OS X 10.7.5 10:22 SamB_MacG5: oh, I forgot to mention I'm on 10.5.8 ... 10:24 (quit) Shvillr: Read error: Connection reset by peer 10:25 (join) Shvillr 10:40 SamB_MacG5: hmm, thats with elinks 0.11.7 10:44 (join) hash_table 10:50 (quit) anRch: Quit: anRch 10:56 (quit) mceier: Quit: leaving 10:59 (quit) bitonic: Ping timeout: 260 seconds 11:03 (quit) __rahul__: Ping timeout: 245 seconds 11:03 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 11:05 (quit) chandler: Ping timeout: 240 seconds 11:06 (join) chandler 11:06 (nick) chandler -> Guest1107 11:12 (quit) jrslepak: Quit: What happened to Systems A through E? 11:18 (join) samth_ 11:31 (quit) samth_: Ping timeout: 245 seconds 11:33 (join) MayDaniel 11:36 (quit) hkBst: Quit: Konversation terminated! 11:52 (join) RacketCommitBot 11:52 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/JDDx4g 11:52 RacketCommitBot: [racket/master] add get-token-range to color:text<%> (it was already documented - Robby Findler 11:52 RacketCommitBot: [racket/master] add examples to redex-match and redex-match? - Robby Findler 11:52 (part) RacketCommitBot 11:53 (join) mithos28 11:55 (join) jeapostrophe 11:55 (quit) jeapostrophe: Changing host 11:55 (join) jeapostrophe 11:58 (join) __rahul__ 12:00 (join) grettke 12:10 (join) mceier 12:18 (join) RacketCommitBot 12:18 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/hDEIcQ 12:18 RacketCommitBot: [racket/master] make `chaperone-of?' accept `prop:equal+hash' - Matthew Flatt 12:18 (part) RacketCommitBot 12:25 soegaard: rudybot: ((curryr list 2) 1) 12:25 rudybot: soegaard: your sandbox is ready 12:25 rudybot: soegaard: ; Value: (1 2) 12:34 (quit) __rahul__: Ping timeout: 245 seconds 12:39 (quit) mithos28: Quit: mithos28 12:40 (join) nathanpc 12:42 nathanpc: Hi everyone :) 12:42 nathanpc is back 12:43 (join) jrslepak 12:46 (join) mithos28 12:52 jrslepak: rudybot: (make-directory "testdir") 12:52 rudybot: jrslepak: your sandbox is ready 12:52 rudybot: jrslepak: error: make-directory: `write' access denied for testdir 12:52 samth: mithos28: what is the problem you were having with type bindings for identifiers? 12:53 mithos28: I'm trying to fix struct-out also exporting make- prefixed constructors 12:54 mithos28: this requires removing the hack in struct: that makes the constructor a different binding than the static type info 12:54 mithos28: after fixing a couple of other bugs, I am now at the point where it exports the correct binding and it works in a typed client 12:55 mithos28: but if the client is untyped it goes into an infinite loop during expansion 12:56 mithos28: I need to make the target of the rename-transformer that is that constructor/static-info not the external contracted constructor because that is the rename-transformer 12:56 mithos28: mostly it is just very complicated 12:57 samth: mithos28: perhaps i'm missing something, but why can't we just change this line: 12:57 samth: [cname (datum->syntax #f (format-symbol "make-~a" (syntax-e #'nm.name)))]) 12:57 carleastlund: mithos28: What do you mean by "hack that makes the constructor a different binding than the static type info"? 12:57 mithos28: the line that samth pointed out 12:57 samth: to [cname (generate-temporary (format-symbol "make-~a" (syntax-e #'nm.name)))] 12:58 mithos28: because struct-out is unhygenic 12:58 samth: oh, that would still export it 12:58 samth: because it would be in the static struct info 12:58 samth: grr 12:59 mithos28: The other issue I ran into was that it expands out into an untyped identifer with the syntax-property 'constructor-for that points to the original constructor 13:00 mithos28: the problem is that this identifier is the exported identifier which is a not-free-identifier=? rename transformer to the typed identifier 13:00 samth: yeah 13:00 mithos28: so I had to add that check to lookup-type/lexical, and fixed it for kw functions aswell 13:01 samth: i really hate struct-out 13:01 (join) __rahul__ 13:02 mithos28: I think I just need to figure out how to protect the constructor as a value binding instead of as syntax and then it should work 13:02 (join) jonrafkind 13:03 mithos28: It will probably just be adding that information on to TRs binding datatype for struct static info bindings 13:08 samth: the implementation of struct-out makes no sense 13:09 samth: why does it need to perform this ridiculous check if the identifiers are available? 13:10 carleastlund: samth: I'm going to go way out on a limb and guess it's because they might not be? 13:10 carleastlund: ;p 13:12 samth: also, why would we want to reject this program: 13:12 samth: #lang racket 13:12 samth: (require (prefix-in r: (only-in racket exn:fail?))) 13:12 samth: (provide (struct-out exn:fail)) 13:13 carleastlund: Why would you want to accept it? 13:13 carleastlund: It's equivalent to "#lang racket (provide (struct-out i:never:defined:this))", isn't it? 13:13 samth: no, it isn't 13:13 mithos28: My issue with struct-out is it has to guess at the symbolic names for the exports, which means that you need to define the identifiers in the static struct info with the correct symbolic names 13:13 samth: take out the require line 13:14 samth: mithos28: i don't see where it's guessing 13:14 carleastlund: Ah, I see. Okay, why is it rejected, then? 13:14 samth: because (free-id=? #'r:exn:fail? #'exn:fail?) 13:14 samth: so it can't decide which symbolic name to export under 13:15 mithos28: samth: it uses the symbolic name of the identifier that is the binding 13:15 samth: mithos28: it only uses that to choose the export name 13:16 mithos28: right thats what I meant by 'symbolic name for the export' 13:16 mithos28: its unhygenic 13:17 mithos28: Anyways I have to go to the differently confusing world of python now, I'll be back to tackling racket issues tonight 13:17 samth: mithos28: a better solution might be a #:hidden-extra-constructor-name 13:17 samth: which picks the name but doesn't put it in the static info 13:18 samth: then TR wouldn't really have to do anything 13:27 (join) didi 13:27 (quit) mithos28: Quit: mithos28 13:29 (quit) CoverSlide: Ping timeout: 256 seconds 13:31 (join) uselpa 13:54 (part) grettke 13:54 (quit) jeapostrophe: Ping timeout: 246 seconds 13:54 (join) jeapostrophe 13:54 (quit) jeapostrophe: Changing host 13:54 (join) jeapostrophe 14:23 (quit) carleastlund: Quit: carleastlund 14:28 (join) mizu_no_oto 14:28 (join) mye 14:32 (quit) didi: Read error: Connection reset by peer 14:32 (quit) acarrico: Ping timeout: 252 seconds 14:40 (quit) mye: Quit: mye 14:48 (join) acarrico 14:49 (quit) uselpa: Remote host closed the connection 14:50 (join) RacketCommitBot 14:50 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/8ztlyw 14:50 RacketCommitBot: [racket/master] Add examples for `code` macro in slideshow - Asumu Takikawa 14:50 (part) RacketCommitBot 14:53 (join) didi 15:02 asumu: Hmm, sometimes online check syntax gets stuck in bad states. 15:03 asumu: But I can't reproduce it reliably. 15:07 gf3: Hey all, is there a way to programmatically get a list of modules and functions per module? 15:08 (join) chturne 15:08 jonrafkind: you can use module->exports to see all the provided things 15:10 gf3: jonrafkind: Oh this is an excellent start, thank you 15:10 (quit) jeapostrophe: Ping timeout: 260 seconds 15:10 gf3: The vim racket plugin is woefully incomplete and I'd like to keep it up to date programatically 15:11 jonrafkind: oh cool 15:11 jonrafkind: it would be nice if you could extract bindings from files that don't fully parse 15:12 gf3: jonrafkind: So, perhaps traversing the source would be a better option? 15:12 jonrafkind: well maybe, but it can be difficult to see bindings because you have to do macro expansion 15:13 (join) Guest1107 15:14 (nick) Guest1107 -> chandler 15:15 didi smells Code Walking 15:22 (join) jeapostrophe 15:22 (quit) jeapostrophe: Changing host 15:22 (join) jeapostrophe 15:28 (join) RacketCommitBot 15:28 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/uvMMSg 15:28 RacketCommitBot: [racket/master] add an argument to `{chaperone,impersonate}-prompt-tag' - Matthew Flatt 15:28 (part) RacketCommitBot 15:28 (quit) didi: Ping timeout: 255 seconds 15:30 (quit) cdidd: Remote host closed the connection 15:37 ianjneu: How can I get this to work? (let () (define-for-syntax (foo x) x) 0) 15:37 ianjneu: Currently let does not create a definition context for phase 1 15:42 (join) bitonic 15:44 (join) neilv 15:52 (quit) gciolli: Ping timeout: 260 seconds 15:53 (join) didi 15:56 (quit) bitonic: Read error: Connection reset by peer 15:56 (join) bitonic 16:13 (join) living_fallacy 16:22 living_fallacy: In Racket, is there a function I can use that will convert anything to a string, whether it's an integer, a string already, and so on? 16:22 jrslepak: you could probably use `format' 16:23 living_fallacy: Tried it out, works perfectly! Thank you so much! 16:26 didi: Strings are very attractive, but when in Lisp I try to use symbols as much as possible. 16:26 (join) gciolli 16:27 living_fallacy: I am formatting data into a sql query, so I need to pack everything into a string 16:27 didi: living_fallacy: I understand. I'm only thinking out loud. 16:28 living_fallacy: Actually, as a budding Lisper, I'd really like to hear your rationale. Why do you try to use symbols? 16:28 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 16:28 didi: living_fallacy: It's a very natural way to format code and lists. 16:29 didi: In Lisp, I mean. 16:31 didi: living_fallacy: Sometimes I wish to split symbols and that's unfortunate. You can do converting them to strings and then interning them back, but I tend to change my algorithm so I don't have to. 16:32 jrslepak would probably interpret a desire to do something with just a piece of a symbol as a sign that he shouldn't be using a symbol 16:33 didi: jrslepak: Agreed. 16:35 jrslepak: living_fallacy: so going the other direction, if it's just to represent one of a small set of possibilities (everyone seems to like traffic light colors as an example), a symbol is usually appropriate 16:37 didi: I use alists a lot too, and symbols are my go to key solution. 16:39 didi: Message passing. 16:39 didi: The list go on. 16:39 didi: s/go/goes 16:41 living_fallacy: OK, now on to my real problem. I am trying to make a macro that will accept an arbitrary number of arguments. If it gets a symbol, it evaluates it, then makes it a string. If it gets a non-symbol, it quotes it and makes it a string, then it joins together all the arguments by spaces into a big string 16:42 living_fallacy: I can make a macro that takes a single argument, and if it's a symbol, evals it and then strings it, and if it is a non-symbol, quotes it and strings it 16:42 living_fallacy: that macro is here: 16:42 living_fallacy: http://pastebin.com/Cba3eRTP 16:42 living_fallacy: But I cannot figure out how to make a similar macro that works on an arbitrary number of arguments 16:43 jrslepak: ... 16:43 jrslepak: ^ serious answer 16:43 living_fallacy: Oh yes, I know how to accept the actual arguments in the macro. But how to I go through all of them and check if it's a symbol or not? I can't map a macro afterall 16:44 jrslepak: oh I see 16:44 living_fallacy: Here is how the macro would look if called: 16:44 living_fallacy: (let ((example-arg 1)) (example-macro example-arg 'example-arg foo)) 16:44 living_fallacy: would return the following: 16:44 ianjneu: (syntax-parse input-stx [(_ some-ids:id ...) blaah])) 16:45 living_fallacy: "example-arg 1 foo" 16:45 stamourv: living_fallacy: You can build a second macro that would use `...' to map `eval-to-string'. 16:45 stamourv: Or you cna write a recursive macro. 16:49 living_fallacy: If I have, say, arg ..., is there a way to get the first item in the sequence without converting it to a list first? 16:50 stamourv: rudybot: (define-syntax eval-to-string (syntax-rules () ((eval-to-string 'symbol) (format "~a" symbol)) ((eval-to-string symbol) (symbol->string 'symbol)))) 16:50 rudybot: stamourv: your sandbox is ready 16:50 rudybot: stamourv: Done. 16:51 stamourv: rudybot: (define-syntax-rule (eval-to-string* x ...) (list (eval-to-string x) ...)) 16:51 rudybot: stamourv: Done. 16:51 stamourv: rudybot: (eval-to-string* 'a "b" 3) 16:51 rudybot: stamourv: error: reference to an identifier before its definition: a in module: 'program 16:51 stamourv: You get the idea. 16:52 neilv: living_fallacy: what you're trying to do seems non-idiomatic. however, if you really want to do it, you'll have an easier time if you use syntax-case, rather than syntax-rules 16:53 neilv: living_fallacy: for one reason, in syntax-rules, testing whether something is a symbol is pretty much impossible 16:57 (quit) hash_table: Ping timeout: 260 seconds 17:08 stamourv: rudybot: (require syntax/parse) 17:08 rudybot: stamourv: Done. 17:09 stamourv: rudybot: (define-syntax (eval-to-string stx) (syntax-parse stx [(_ s:identifier) #'(symbol->string s)] [(_ e) #'(format "~a" e)])) 17:09 rudybot: stamourv: error: #:1:55: _: wildcard not allowed as an expression in: (_ s:identifier) 17:10 stamourv: rudybot: (require (for-syntax syntax/parse)) 17:10 rudybot: stamourv: Done. 17:10 stamourv: rudybot: (define-syntax (eval-to-string stx) (syntax-parse stx [(_ s:identifier) #'(symbol->string s)] [(_ e) #'(format "~a" e)])) 17:10 rudybot: stamourv: Done. 17:10 stamourv: (eval-to-string a) 17:10 stamourv: rudybot: (eval-to-string a) 17:10 rudybot: stamourv: error: reference to an identifier before its definition: a in module: 'program 17:11 stamourv: rudybot: (eval-to-string 'a) 17:11 rudybot: stamourv: ; Value: "a" 17:11 stamourv: rudybot: (eval-to-string 3) 17:11 rudybot: stamourv: ; Value: "3" 17:13 neilv: stamourv: two reasons i'm reluctant to point newbies at syntax-parse: (1) i'm afraid it makes learning syntax objects harder, but you still need to work with syntax objects despite syntax-parse's features; (2) the syntax-parse documentation is big 17:14 stamourv: neilv: What do you mean by "makes learning syntax objects harder"? 17:14 stamourv: As for the docs, I agree. 17:14 neilv: my pedagogic plan: (1) introduce syntax-case; (2) introduce some low-level syntax object manipulation in conjunction with syntax-case; (3) segue to syntax-parse when we want to show macros with keyword arguments, and then tell people they are now allowed to use syntax-parse for everything if they want to; (4) don't bother talking about syntax-rules or the simpler forms 17:15 stamourv: That specific example, though, is really easy with syntax classes. 17:15 stamourv: ryanc, calvis and cky were writing a macro tutorial at the hackfest. 17:16 friscosam: define-syntax-rule is awful handy though when you have a quick replacement task 17:16 stamourv: I don't know which order they decided to introduce things in. 17:16 (quit) bitonic: Remote host closed the connection 17:16 (join) bitonic 17:16 (quit) living_fallacy: Ping timeout: 256 seconds 17:18 neilv: the last tutorial i saw introduced way too many different languages for talking about syntax transformation 17:18 asumu: I'd almost rather skip (1) and just do (2), though possibly after (3). You can even write macros purely using syntax objects. 17:18 asumu: No need for this syntax-case thing (which I, for example, never use unless I have to due to bootstrapping reasons) 17:23 (quit) bitonic: Remote host closed the connection 17:23 neilv: asumu: i guess, if you control the entire tutorial process, starting with syntax-parse could work 17:24 (join) darkf 17:28 (join) cdidd 17:31 didi: From a newbie perspective, this whole syntax thing is pretty complex. 17:32 (quit) chturne: Quit: Leaving 17:32 didi: <= newbie 17:33 (join) dyoo 17:37 asumu: didi: hopefully we'll have a better macro tutorial soon 17:40 (quit) jesyspa: Quit: leaving 17:41 didi: asumu: \o/ awesome. 17:49 (join) living_fallacy 17:50 living_fallacy: Sorry, network problems. Alright, so if I have args ... 17:51 living_fallacy: is there a way to get the first item in that sequence without converting it into a list? 17:53 stamourv: You can look at the logs, rudybot and I showed you. 17:53 stamourv: living_fallacy: http://racket-lang.org/irc-logs/ 17:57 living_fallacy: AH. YOU GUYS ROCK. What an excellent community. Thanks guys, macros have been really confusing for me so far, I would have never figured this out without your help 17:58 stamourv: As asumu said, a better macro tutorial is on the way. 17:58 stamourv: ryanc, calvis and cky started one at the hackfest last weekend. 17:59 stamourv: Also, Matthew gave an excellent macro tutorial talk at RacketCon on saturday. The video should be up soon. 18:01 (quit) jeapostrophe: Ping timeout: 244 seconds 18:01 jschuster: stamourv: I'm not sure I'd call Matthew's talk a macro tutorial so much as a "creating a language" tutorial. I think at least some macro knowledge was required from the start 18:01 jschuster: but it was certainly a good talk for what it was 18:04 (quit) living_fallacy: Quit: Leaving 18:13 (join) RacketCommitBot 18:13 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/X6MIkQ 18:13 RacketCommitBot: [racket/master] fix define-for-syntax within splicing-syntax-parameterize - Ryan Culpepper 18:13 (part) RacketCommitBot 18:15 (join) hash_table 18:24 (join) chturne 18:27 (quit) nathanpc: Quit: Linkinus - http://linkinus.com 18:28 neilv: i don't know what match-define is, but it seems to be causing a lot of trouble 18:29 jonrafkind: its funny because if you know what match-let is then match-define is a natural companion 18:29 jonrafkind: but even so I don't know what define/match does 18:33 (quit) dyoo: Quit: dyoo 18:35 (quit) MayDaniel: Read error: Connection reset by peer 18:40 (quit) chturne: Read error: Operation timed out 18:42 (quit) __rahul__: Ping timeout: 245 seconds 18:49 asumu: The thing is, define/match is not at all related to the functionality of match-define. 18:49 asumu: So it's a feature that they don't look alike. 18:49 asumu: (note: define/match is basically ML/Haskell-style function definitions, but more powerful) 18:52 (quit) gciolli: Quit: Leaving. 18:54 didi: asumu: Uh, really? You can do stuff like `fun member (x, e) = false | member (s, t(_, a, y, b)) = ...'? I mean, like define+if+destructuring. 18:55 stamourv: didi: Yep, that's what the new `define/match' does. 18:55 didi: stamourv: Awesome. 18:55 stamourv: Yeah, I really like it. 18:55 didi: This Racket thingy is really awesome. 18:55 stamourv: :D 18:55 stamourv: didi: By the way, jrslepak's using your code to add Mac OS screenshots to the widget gallery. 18:56 didi: Yay! 18:56 didi helped 18:56 didi: :^) 18:56 stamourv: We should have all 3 platforms soon. 19:00 jrslepak: oh, I didn't realize who didi was! 19:01 didi looks nervous 19:01 jrslepak: heh 19:02 (quit) masm1: Quit: Leaving. 19:04 (quit) soegaard: Quit: soegaard 19:05 (quit) jrslepak: Quit: What happened to Systems A through E? 19:13 danl-ndi: anyone know where I can find the rkt code for raco make? 19:13 (join) dyoo 19:14 (join) jeapostrophe 19:14 (quit) jeapostrophe: Changing host 19:14 (join) jeapostrophe 19:33 dyoo: danl-ndi: check compiler/commands 19:33 dyoo: let me see if I can get a url... 19:34 dyoo: danl-ndi: ah, here's one. http://git.racket-lang.org/plt/blob/67d901ccc4c69e2b6ba3038d7ee61d4c23a9ee9d:/collects/compiler/commands/make.rkt 19:34 rudybot: http://tinyurl.com/8urmh85 19:35 dyoo: The raco commands register themselves by having a 'raco-commands in their info.rkt metadata 19:35 dyoo: (http://git.racket-lang.org/plt/blob/67d901ccc4c69e2b6ba3038d7ee61d4c23a9ee9d:/collects/compiler/commands/info.rkt) 19:35 rudybot: http://tinyurl.com/8p4bzsn 19:51 asumu: Wow, Greg's new API discovery package is really cool: http://planet.racket-lang.org/display.ss?package=gapi.plt&owner=gh 19:51 asumu: 40+ web services in one. :o 19:53 dyoo: sweet! 19:53 jaaso: https://www.googleapis.com/discovery/v1/apis 19:55 (quit) dyoo: Quit: dyoo 20:00 (join) jrslepak 20:04 (join) mizu_no_oto 20:48 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 21:20 (join) jackhammer2022 21:20 (quit) cky: *.net *.split 21:21 (join) danking 21:21 (join) cky 21:47 (quit) acarrico: Read error: Operation timed out 22:01 (join) mizu_no_oto 22:05 (join) acarrico 22:20 (quit) neilv: Quit: Leaving 22:32 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 22:47 cky: stamourv: Just to avoid taking credit for things I didn't contribute to, I didn't contribute to the macro tutorial at all. :-) 22:50 cky: stamourv: I do want to work on the FFI tutorial once I get my FFI stuff straightened out (I've fixed the major crashing bug, at any rate). 22:51 (join) mizu_no_oto 22:54 (quit) mizu_no_oto: Client Quit 23:01 asumu: cky: I look forward to an FFI tutorial :) (and congrats on the non-crashing) 23:01 cky: asumu: Thanks! Yes, I look forward to getting one going. :-) 23:24 (join) mithos28 23:27 (quit) Shviller: Ping timeout: 265 seconds 23:27 (join) Shviller 23:41 (quit) jao: Ping timeout: 246 seconds 23:59 (quit) cdidd: Ping timeout: 244 seconds