00:00 yeboot: rudybot: (deefine launch-fireworks (lambda (n) (cond [(= n 0)] [else (thread firework) (launch-fireworks (- n 1))]))) 00:00 rudybot: yeboot: error: deefine: undefined; cannot reference an identifier before its definition in module: 'program 00:00 yeboot: damnit 00:00 yeboot: rudybot: (define launch-fireworks (lambda (n) (cond [(= n 0)] [else (thread firework) (launch-fireworks (- n 1))]))) 00:00 rudybot: yeboot: Done. 00:00 mithos28: Its much better when I convince TR that a number is a list, because then you can read arbitrary memory 00:00 offby1 hides under the bed 00:00 (quit) jao: Ping timeout: 240 seconds 00:01 offby1: mithos28: hey, no peekin' 00:01 offby1 hides the pr0n 00:01 mithos28: rudybot: (exit) 00:01 rudybot: mithos28: error: evaluator: terminated (exited) 00:01 yeboot: rudybot: (define (firework-launcher) (launch-fireworks (random 5))) 00:01 rudybot: yeboot: Done. 00:01 yeboot: rudybot: (firework-launcher) 00:01 rudybot: yeboot: ; Value: #t 00:01 offby1 covers his children's heads 00:02 yeboot: uhhh.... 00:02 offby1 twiddles thumbs 00:02 asumu: Maybe the sandbox shouldn't let you access TR in optimize mode. ;) 00:02 offby1: not sure threads work in sandboxes actually 00:02 mithos28: asumu: Maybe TR shouldn't do unsafe optimizations 00:02 asumu: rudybot: (for ([i 5]) (thread (lambda () (displayln i)))) 00:02 rudybot: asumu: ; stdout: "3\n" 00:02 yeboot: rudybot: (firework) 00:02 offby1 rubs chin 00:02 rudybot: yeboot: error: with-limit: out of time 00:03 yeboot: out of time!? 00:03 mithos28: and by that I mean have a typesystem which doesn't have errors in it 00:03 (quit) rmathews: Quit: ... 00:03 yeboot: rudybot: (firework) 00:03 asumu: mithos28: well, that would be all of them unless it's made sound... and you beat me to it. 00:03 rudybot: yeboot: ; stdout: "BANG\nBANG\n" 00:03 yeboot: wait what the 00:03 offby1: WHAT WAS THAT?! 00:03 offby1 dials 911 00:03 asumu: (for another trick, struct: is unsound) 00:03 mithos28: asumu: How? 00:04 yeboot: rudybot: (displayln "yo") 00:04 rudybot: yeboot: ; stdout: "yo\n" 00:04 rudybot: yeboot: ; stdout: "KISS\nKISS\n" 00:04 yeboot: wat 00:04 asumu: mithos28: struct: doesn't check various keyword arguments, like #:property or #:methods. 00:04 yeboot: this bot is messing with me 00:04 offby1 whistles innocently 00:04 mithos28: oh, is there a bug filed for that? 00:04 yeboot: rudybot: (firework) 00:04 rudybot: yeboot: error: with-limit: out of time 00:05 asumu: mithos28: Not sure, but I don't think so. 00:05 yeboot: rudybot: (define (firework) (sleep (random 10)) (displayln "BANG")) 00:05 rudybot: yeboot: Done. 00:05 yeboot: (firework) 00:05 yeboot: derp 00:05 yeboot: rudybot: (firework) 00:05 rudybot: yeboot: ; stdout: "BANG\n" 00:06 rudybot: yeboot: ; stdout: "INCOMING!!\n" 00:06 yeboot: rudybot: (define (firework) (sleep (random 10)) (output "BANG")) 00:06 rudybot: yeboot: Done. 00:06 yeboot: rudybot: (define output displayln) ;for now 00:06 rudybot: yeboot: Done. 00:06 mithos28: can you file an example with how it breaks stuff? 00:06 offby1 stealthily pulls strings 00:06 (part) sw2wolf: "ERC Version 5.3 (IRC client for Emacs)" 00:07 asumu: mithos28: sure. 00:09 yeboot: rudybot: (define (output str) (printf (current-output-port) (string-append str "~n")) 00:09 rudybot: yeboot: If the current output port is connected to your local notion of `standard output', then passing the value of (CURRENT-OUTPUT-PORT) to DISPLAY will send output to standard output. The second argument to DISPLAY is actually optional -- its default value is the current output port. 00:09 yeboot: rudybot: (define (output str) (printf (current-output-port) (string-append str "~n"))) 00:09 rudybot: yeboot: Done. 00:09 yeboot: rudybot: (output "hello world") 00:09 rudybot: yeboot: error: printf: contract violation expected: string? given: # argument position: 1st other arguments...: "hello world~n" 00:10 yeboot: oh effing derp 00:10 yeboot: rudybot: (define (output str) (fprintf (current-output-port) (string-append str "~n"))) 00:10 rudybot: yeboot: Done. 00:10 yeboot: rudybot: (output "hello world") 00:10 rudybot: yeboot: ; stdout: "hello world\n" 00:10 yeboot: rudybot: (firework) 00:10 rudybot: yeboot: ; stdout: "BANG\n" 00:10 ijp: rudybot: should we convince o'reilly to let us write a book about you? 00:10 rudybot: ijp: I think Beck and O'reilly are the funniest guys in the US. 00:11 yeboot: rudybot: (firework-launcher) 00:11 rudybot: yeboot: ; Value: #t 00:11 rudybot: yeboot: ; stdout: "BANG\n" 00:11 yeboot: wewt! 00:12 yeboot: I'm not going about this the functional way, which I should 00:14 (quit) ambrosebs: Remote host closed the connection 00:15 asumu: rudybot: init typed/racket 00:15 rudybot: asumu: your typed/racket sandbox is ready 00:15 asumu: rudybot: apply 00:15 rudybot: asumu: ; Value: # 00:15 rudybot: asumu: ; stdout: "- : (All (a b) ((a * -> b) (Listof a) -> b))\n" 00:16 yeboot: rudybot: (define (thing-launcher procedure-thing output-port number) (cond [(= number 0)] [else (thread launch-thing procedure-thing output-port) (thing-launcher procedure-thing output-port (sub1 number))])) 00:16 rudybot: yeboot: ; stdout: "BANG\nBANG\nBANG\n" 00:16 yeboot: I like how the output of the last one is still going 00:16 yeboot: rudybot: (define (thing-launcher procedure-thing output-port number) (cond [(= number 0)] [else (thread launch-thing procedure-thing output-port) (thing-launcher procedure-thing output-port (sub1 number))])) 00:16 rudybot: yeboot: Done. 00:19 yeboot: rudybot: (define (launch-thing procedure-thing output-port) (fprintf output-port (string-append (procedure-thing) "~n"))) 00:19 rudybot: yeboot: Done. 00:19 asumu: I wonder if it'd be worth generalizing the type of apply to have a ((a * -> b) a (Listof a) -> b) case (maybe up to 2 non-list args or so). 00:20 yeboot: rudybot: (define (firework) (sleep (random 10)) "BANG") 00:20 rudybot: yeboot: Done. 00:20 mithos28: asumu: it depends on how people use apply 00:20 mithos28: also TR is dumb: Type Checker: Expected (Symbol String -> (List Symbol String)), but got (All (a ...) (a ... a -> (List a ... a))) 00:21 asumu likes the fact that `apply` can take non-list args quite a bit 00:21 (join) ambrosebs 00:21 asumu: but I'm pretty sure I don't use more than about one extra argument typically. 00:22 yeboot: (define (firework-launcher) (thing-launcher firework (current-output-port) (random 10))) 00:22 mithos28: asumu: Also TR has special rules for apply when it is used in a first order setting with the right binding 00:22 yeboot: rudybot: (define (firework-launcher) (thing-launcher firework (current-output-port) (random 10))) 00:22 rudybot: yeboot: Done. 00:23 yeboot: rudybot: (firework-launcher) 00:23 rudybot: yeboot: error: thread: arity mismatch; the expected number of arguments does not match the given number expected: 1 given: 3 arguments...: # # # 00:23 yeboot: oh god there is blood everywhere I didn't build this firework launcher correctly 00:23 mithos28: If you can come up with something that can confuse it, I can try and take a look 00:23 yeboot: thousands of people re dying in the stands 00:28 mithos28: why would you write a function with an argument that it doesn't use? (and no it doesn't need to meet some interface) 00:33 yeboot: mithos28: are you talking to me? 00:33 (quit) dnolen: Ping timeout: 248 seconds 00:33 mithos28: no, that was a complaint about some code I am working on 00:34 asumu: mithos28: do you get bug notifications now? 00:34 mithos28: asumu: yep 00:34 asumu: ok, you should see a report about struct: soon 00:35 yeboot: ah 00:36 (quit) cdidd: Ping timeout: 240 seconds 00:39 yeboot: are zo files elf binaries 00:39 mithos28: yeboot: No they are bytecode 00:40 yeboot: so like jvm compiled code? 00:40 mithos28: sorta, yeah 00:42 yeboot: cool 00:44 yeboot: I like how active the racket development is 00:51 (join) cdidd 00:51 Nisstyre: yeboot: protip: often you can make your code nicer looking with ``match'' than ``cond'' 00:52 (join) dnolen 00:52 yeboot: Nisstyre I'll have to look into that, thanks 00:52 (join) asvil 00:53 (join) cnonim 00:54 yeboot: Nisstyre that looks really cool, actually 00:54 (quit) cnonim: Read error: Connection reset by peer 00:55 (join) rmathews 00:55 (join) cnonim 00:56 yeboot: rudybot: (define (ciao str) (match str ["hi" (displayln "hello")] ["bye 00:56 rudybot: yeboot: while (test-begin (check-true #f) (displayln "passed")) won't print the string. 00:56 yeboot: finger slipped 00:56 yeboot: rudybot: (define (ciao str) (match str ["hi" (displayln "hello")] ["bye" (displayln "goodbye")])) 00:56 rudybot: yeboot: Done. 00:56 yeboot: (ciao "hi") 00:56 yeboot: derp 00:56 yeboot: rudybot: (ciao "hi") 00:56 rudybot: yeboot: ; stdout: "hello\n" 00:57 yeboot: rudybot: (ciao "test") 00:57 rudybot: yeboot: error: match: no matching clause for "test" 00:58 asumu: rudybot: (define/match (ciao str) [("hi") (displayln "hello")] [("bye") (displayln "goodbye")]) 00:58 rudybot: asumu: Done. 00:58 asumu: rudybot: (ciao "hi") 00:58 rudybot: asumu: ; stdout: "hello\n" 00:58 asumu: ^ slightly shorter version 00:58 yeboot: leet hax 00:58 cnonim: bot have per user session? :) 00:59 cnonim: rudybot: (ciao "bye") 00:59 rudybot: cnonim: your sandbox is ready 00:59 rudybot: cnonim: error: ciao: undefined; cannot reference an identifier before its definition in module: 'program 00:59 yeboot: the syntax implies that (define/Public (foo) is shorthand for (define foo (Public lambda () 00:59 yeboot: man it'd be cool if we could share procedures 01:00 asumu: rudybot: give yeboot ciao 01:00 rudybot: yeboot: asumu has given you a value, say "rudybot: eval (GRAB)" to get it (case sensitive) 01:00 rudybot: asumu: ; stdout: "- : (Any -> Void)\n" 01:00 yeboot: something like rudybot: (require asumu/ciao) or rudybot: learn asumu's ciao 01:00 yeboot: oh shiiit 01:00 yeboot: sorry language 01:00 yeboot: firecracker 01:01 cnonim: rudybot: (exit) 01:01 rudybot: cnonim: error: evaluator: terminated (exited) 01:01 yeboot: (define (bomb timer) (sleep timer) (exit)) 01:01 yeboot: rudybot: (define (bomb timer) (sleep timer) (exit)) 01:01 rudybot: yeboot: Done. 01:01 yeboot: rudybot: give asumu bomb 01:01 rudybot: asumu: yeboot has given you a value, say "rudybot: eval (GRAB)" 01:02 yeboot: rudybot: eval (GRAB) 01:02 rudybot: yeboot: ; Value: # 01:02 ijp: yeboot: one thing you should have learned by now, is that, whatever idea you come up with, someone probably beat you to it 01:02 yeboot: ijp if I really believed that I wouldn't be learning new programming languages 01:03 yeboot: I'd be a depressed nihilist 01:03 ijp: I'm not a depressed nihilist 01:03 cnonim: rudybot: (require typed/racket) 01:03 rudybot: cnonim: your sandbox is ready 01:03 rudybot: cnonim: Done. 01:03 cnonim: rudybot: (:print-type 'hello) 01:03 rudybot: cnonim: ; stdout: "'hello\n" 01:03 cnonim: rudybot: (:print-type '()) 01:03 rudybot: cnonim: ; stdout: "Null\n" 01:03 cnonim: rudybot: (:type 'hello) 01:03 rudybot: cnonim: ; stdout: "'hello\n" 01:04 cnonim: rudybot: (:type #:hello) 01:04 rudybot: cnonim: error: :type is only valid at the top-level of an interaction 01:04 cnonim: rudybot: (:print0type #:hello) 01:04 rudybot: cnonim: error: #:1:13: application: missing argument expression after keyword at: #:hello in: (#%app :print0type #:hello) 01:04 cnonim: rudybot: (:print-type #:hello) 01:04 rudybot: cnonim: error: :print-type is only valid at the top-level of an interaction 01:04 cnonim: rudybot: (:print-type :print-type) 01:04 rudybot: cnonim: error: :print-type is only valid at the top-level of an interaction 01:05 (quit) sirdancealot7: Remote host closed the connection 01:05 yeboot: rudybot: (launch-fireworks) 01:05 rudybot: yeboot: error: launch-fireworks: arity mismatch; the expected number of arguments does not match the given number expected: 1 given: 0 01:05 yeboot: wat 01:05 yeboot: rudybot: (firework-launcher) 01:05 rudybot: yeboot: error: thread: arity mismatch; the expected number of arguments does not match the given number expected: 1 given: 3 arguments...: # # # 01:07 yeboot: Nisstyre asumu how do I do { if n > 0 a; else b } with (match 01:07 yeboot: oh nvm there's an example in the docs 01:09 yeboot: rudybot: (define/match (fact n) [(0) 1] [(n) (* n (fact (sub1 n)))]) 01:09 rudybot: yeboot: Done. 01:09 yeboot: rudybot: (fact 4) 01:09 rudybot: yeboot: ; Value: 24 01:10 cnonim: yeboot: '_' match anything 01:20 yeboot: thanks 01:24 Nisstyre: yeboot: yeah it's cool right? 01:24 Nisstyre: yeboot: you can even match against your own custom data types 01:24 Nisstyre: (that you would make with struct) 01:25 Nisstyre: yeboot: also no need to include the parentheses around 0 and n there 01:27 Nisstyre: er, actually I might be wrong 01:27 (join) kvda 01:30 (quit) mceier: Quit: leaving 01:33 (quit) gridaphobe: Remote host closed the connection 01:39 cnonim: how i can download source code of planet package? 01:39 (quit) ambrosebs: Remote host closed the connection 01:40 (join) ambrosebs 01:53 yeboot: Nisstyre it's still a really handy shorthand 01:57 (quit) jonrafkind: Read error: Operation timed out 01:58 (quit) dnolen: Remote host closed the connection 02:03 (join) gridaphobe 02:05 (join) ambroseb_ 02:06 (quit) kvda: Quit: z____z 02:08 cnonim: why asumu use racket/unit as #lang in asumu/sweet? 02:08 (quit) ambrosebs: Ping timeout: 255 seconds 02:08 mithos28: cnonim: Because he need to use units 02:09 mithos28: units are a different method of organizing code compared to modules 02:09 (join) jao 02:09 mithos28: units allow mutual recursion 02:09 (quit) jao: Changing host 02:09 (join) jao 02:12 (quit) gridaphobe: Ping timeout: 252 seconds 02:13 cnonim: what is mutual recursion? where i can find some example? 02:14 mithos28: http://en.wikipedia.org/wiki/Mutual_recursion 02:14 mithos28: http://docs.racket-lang.org/guide/units.html?q=unit 02:27 (join) mceier 02:36 cnonim: racket lang defined like #lang s-exp syntax/module-reader racket 02:37 cnonim: racket link to racket/main.rkt 02:37 cnonim: where i can find definition of read and read-syntax function? 02:46 (join) hkBst 02:46 (quit) hkBst: Changing host 02:46 (join) hkBst 02:52 (quit) yacks: Ping timeout: 264 seconds 02:56 (join) sirdancealot 02:57 (join) yacks 03:16 (join) tilde` 03:30 (quit) jao: Ping timeout: 248 seconds 03:30 (join) RacketCommitBot 03:30 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/3gkSyg 03:30 RacketCommitBot: racket/master 5ca93be Eli Barzilay: New Racket version 5.3.3.6. 03:30 (part) RacketCommitBot 03:30 (join) rmathews_ 03:33 (quit) rmathews: Ping timeout: 252 seconds 03:33 (nick) rmathews_ -> rmathews 03:34 (quit) racycle: Quit: racycle 03:41 (quit) Fare: Ping timeout: 252 seconds 03:46 (quit) ambroseb_: Remote host closed the connection 04:16 (join) bitonic 04:24 (quit) asvil: Remote host closed the connection 04:24 (join) asvil 04:28 (join) vkz 04:31 cnonim: I understand correctly that syntax-parse it's more powerful construction than syntax-case? 04:34 (join) didi` 04:35 (nick) didi` -> didi 04:47 (join) mye 04:49 (quit) eMBee: Remote host closed the connection 04:56 (join) eMBee 05:11 (nick) tilde` -> codice_scimmia 05:27 (join) mye_ 05:28 (quit) mye: Ping timeout: 252 seconds 05:28 (nick) mye_ -> mye 05:35 (quit) dca: Ping timeout: 252 seconds 05:40 (join) dca 05:49 (join) basdirks 05:51 cky: Hmm, does the srfi/61 module not work at all? I decided to test out my solution (http://stackoverflow.com/a/15109732/13) in Racket after posting it, and it keeps wanting to use the old cond form. But if I cut and paste the definition from SRFI 61, and use my-cond instead of cond, it does work. 05:51 cky: (I did have to replace an "if" with "when" instead, in the cond definition. But it worked well after that.) 05:52 cky: (Tested on Racket 5.2.1. Maybe the current version fixes it. Lemme build the current version and see.) 05:56 cky: *cut and paste the definition from collects/srfi/61/cond.rkt 05:57 cky: (The latest Debian racket package is 5.3.1, so that's what I'm building now.) 05:59 (quit) vkz: Quit: vkz 06:06 (join) rohni 06:09 (quit) rohni: Client Quit 06:11 (quit) Kaylin: Read error: Connection reset by peer 06:11 (join) cajetnaus 06:21 (join) vkz 06:21 (join) rohni 06:25 cky: My only conclusion is that srfi/61/cond is using different bindings for => and else than what racket/private/cond provides. 06:25 cky: So I'm trying to get srfi/61/cond to import those bindings from racket/private/cond. But whenever I try that, I just get this: 06:25 cky: ../../usr/share/racket/collects/srfi/61/cond.rkt:5:11: only-in: bad module path in: (only-in racket/private/cond => else) 06:26 cky: (This require form does work in the REPL. I tested it. But it doesn't work inside the srfi/61/cond module.) 06:30 cky: Hah, once I convert the module to the new-style (#lang racket/base) module, it magically works. 06:34 cky: The Real Question is, what's better: having srfi/61/cond import bindings from racket/private/cond (which of course is already done by default if you convert the module to use #lang racket/base), or directly creating and exporting bindings for => and else? 06:42 (join) ambrosebs 06:42 (quit) vipjun: Ping timeout: 244 seconds 06:56 (quit) haiwei: Ping timeout: 244 seconds 06:58 cky: I mean, from the comments in racket/private/cond, it's obvious that people want both cond (with => and else bound) and old-cond (with => and else unbound). Is there a way to make a srfi/61 that supports both cases, so that both old-style and new-style programs can use it safely? 07:20 (join) jeapostrophe 07:20 (quit) jeapostrophe: Changing host 07:20 (join) jeapostrophe 07:26 (quit) cnonim: Read error: Connection reset by peer 07:26 (join) cnonim 07:29 (join) Fare 07:34 (quit) eMBee: Quit: leaving 07:34 (join) eMBee 07:49 (join) rmathews 07:53 (quit) rmathews: Client Quit 07:58 (join) tilde` 08:02 (quit) rohni: Quit: Leaving. 08:09 (join) rohni 08:24 (quit) tilde`: Read error: No route to host 08:24 (join) tilde` 08:24 (quit) tilde`: Read error: Connection reset by peer 08:29 (join) tilde` 08:29 (join) mizu_no_oto 08:32 (join) tilde`_ 08:39 (quit) rohni: Quit: Leaving. 08:50 (nick) fasta_ -> fasta 08:58 (quit) tilde`: Ping timeout: 252 seconds 08:58 (nick) tilde`_ -> tilde` 09:08 (quit) cnonim: Read error: Connection reset by peer 09:09 (quit) lusory: Quit: leaving 09:12 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 09:12 (join) rohni 09:13 (join) lusory 09:13 (join) rndnick42 09:24 (quit) rohni: Quit: Leaving. 09:25 (join) mizu_no_oto 09:31 (quit) cajetnaus: Quit: Page closed 09:31 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 09:36 asumu: cky: yeah, the mzscheme language uses old-style requires. The syntax is like #%require. 09:37 (join) anRch 09:38 asumu: cky: shouldn't it "just work" if you convert it to #lang racket/base and use the default => and else bindings? 09:40 (quit) ambrosebs: Ping timeout: 264 seconds 09:41 (join) ambrosebs 09:45 (quit) yacks: Quit: Leaving 09:45 (join) rohni 10:16 (quit) bitonic: Ping timeout: 248 seconds 10:19 (quit) yeboot: Ping timeout: 244 seconds 10:24 (quit) rohni: Quit: Leaving. 10:31 (join) RacketCommitBot 10:31 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/_fFxwQ 10:31 RacketCommitBot: racket/master ee69dc5 Eli Barzilay: Allow "*" directories in distribution specs.... 10:31 (part) RacketCommitBot 10:33 (join) mizu_no_oto 10:34 (join) gtoast 10:35 (join) Kaylin 10:35 cky: asumu: It does "just work" if I do that, but then it won't work for old-style code any more. 10:36 cky: asumu: Do we care about old-style code? If not, let's just convert that module over to the new style, in-tree. 10:38 (join) Aune 10:41 (join) gridaphobe 10:42 (quit) samth_away: Remote host closed the connection 10:42 (join) samth 10:42 (quit) samth: Changing host 10:42 (join) samth 10:45 (part) bdmst: "ERC Version 5.3 (IRC client for Emacs)" 10:48 (quit) jeapostrophe: Ping timeout: 246 seconds 10:49 (join) bitonic 10:51 mithos28: samth: ping 11:00 (quit) hkBst: Quit: Konversation terminated! 11:00 (quit) mceier: Quit: leaving 11:01 (quit) basdirks: Ping timeout: 255 seconds 11:04 (join) rohni 11:07 (quit) ambrosebs: Remote host closed the connection 11:09 (quit) rohni: Quit: Leaving. 11:11 (quit) rndnick42: Remote host closed the connection 11:11 (join) ambroseb_ 11:12 asumu: cky: oh, I see what you mean. You mean existing users of srfi/61 won't work. 11:13 (quit) anRch: Quit: anRch 11:15 (join) basdirks 11:16 asumu: Is that true actually? Shouldn't they have the right binding of => and else anyway? 11:19 (join) RacketCommitBot 11:19 RacketCommitBot: [racket] plt pushed 6 new commits to master: http://git.io/S7AlwA 11:19 RacketCommitBot: racket/master a46849f Matthew Flatt: minor decompiler tweak 11:19 RacketCommitBot: racket/master c1469b9 Matthew Flatt: fix a test 11:19 RacketCommitBot: racket/master 88a36a0 Matthew Flatt: terminology change again: "cross-phases persistent" modules 11:19 (part) RacketCommitBot 11:20 (quit) ambroseb_: Remote host closed the connection 11:20 mithos28: ah, bikesheds. Anyone got a new suggestion for these special new modules? 11:21 asumu: mithos28: bikeshed modules. 11:22 (join) soegaard 11:22 asumu: Phase-less is confusing though. Turns out the grammar of `require` has a notion of phaseless-requires. 11:22 (join) racycle 11:23 mithos28: asumu: You mean label? 11:24 asumu: mithos28: sorry I mean #%require 11:25 mithos28: isn't that just the inner one without the phase specified 11:29 (quit) asvil: Ping timeout: 248 seconds 11:32 (join) jonrafkind 11:38 (quit) soegaard: Quit: soegaard 11:39 (join) cnonim 11:40 cky: asumu: I thought that the reason there's old-cond, and that mzscheme exports old-cond as cond, is that stuff would break if they worked with the assumption that => and else were unbound. 11:40 (join) didi 11:40 cky: Having srfi/61/cond use #lang racket/base would commit it to using the bindings of => and else specificed in racket/private/cond. 11:41 cky: And for old code that doesn't import racket/base or anything that would otherwise import racket/private/cond, those bindings would not be in scope. 11:41 (join) soegaard 11:41 cky: Well, I guess srfi/61/cond could actually directly export => and else. 11:41 cky: That's one solution. 11:42 (part) spanner: ".... do you expect me to talk?" 11:42 (quit) basdirks: Ping timeout: 244 seconds 11:42 (quit) gridaphobe: Remote host closed the connection 11:44 cky: asumu: I think I'll run with that. Not sure how you guys receive patches---whether as emails or pull requests or whatever, but I'll get something sorted. :-) 11:44 mithos28: cky: I usually do pull requests 11:44 cky: mithos28: Sounds good, then. 11:44 mithos28: but they got annoyed at that, and just gave me commit access 11:44 cky: Lol. 11:45 cky: mithos28: I have commit access to Guile for much of similar reasons. :-P 11:57 cky: asumu: Excellent, I now have a formulation that will work with both #lang racket and #lang mzscheme. :-D 11:57 cky: (Tested.) 12:00 (quit) bitonic: Ping timeout: 260 seconds 12:01 cnonim: https://gist.github.com/cNoNim/c5f09e33e30f7db4f8a9 what's wrong? 12:02 (join) jeapostrophe 12:02 (quit) jeapostrophe: Changing host 12:02 (join) jeapostrophe 12:05 cnonim: i update gist there was wrong syntax parameter name, but error still occurs 12:06 cnonim: how i can use syntax parameter correctly? 12:07 (quit) gtoast: Quit: gtoast 12:15 asumu: cnonim: you can't access the syntax-parameter-value from within the template. 12:15 asumu: cnonim: more generally though, do you really need a syntax parameter here? 12:15 asumu: Seems to me that you just want an ordinary parameter. 12:15 (join) gtoast 12:17 mithos28: Is this program working correctly, https://gist.github.com/shekari/5049679 12:17 mithos28: I don't see this behavior of attributes documented anywhere 12:17 (join) mceier 12:19 (quit) cnonim: Ping timeout: 264 seconds 12:20 samth: mithos28: yes, that's as expected 12:20 samth: although perhaps undocumented 12:20 mithos28: samth: Ok, filing a doc bug 12:20 (join) anRch 12:21 (join) basdirks 12:21 (quit) gtoast: Quit: gtoast 12:24 (join) gtoast 12:30 (join) gridaphobe 12:33 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 12:34 (join) dyoo 12:39 (join) dauterive 12:39 (quit) gtoast: Quit: gtoast 12:40 (quit) gridaphobe: Remote host closed the connection 12:40 (quit) sirdancealot: Read error: Connection reset by peer 12:40 (quit) basdirks: Ping timeout: 246 seconds 12:48 (join) basdirks 12:52 (join) jbclements 12:53 (quit) anRch: Quit: anRch 12:56 (join) sirdancealot 12:57 (join) yacks 12:58 (quit) jeapostrophe: Read error: Operation timed out 12:59 (quit) Aune: Quit: Hath Deprated 13:07 (join) gridaphobe 13:08 (join) mizu_no_oto 13:08 (join) arrdem 13:11 (quit) vkz: Ping timeout: 248 seconds 13:11 (join) vkz 13:12 (join) cnonim 13:13 (quit) soegaard: Quit: soegaard 13:17 (quit) gridaphobe: Remote host closed the connection 13:21 (quit) Fare: Ping timeout: 248 seconds 13:24 (join) soegaard 13:24 (join) ijp` 13:32 (quit) dented42: Ping timeout: 252 seconds 13:32 (quit) ijp`: Ping timeout: 264 seconds 13:36 (quit) yacks: Quit: Leaving 13:40 (quit) mithos28: Quit: mithos28 13:41 (quit) dca: Ping timeout: 264 seconds 13:43 cnonim: quasisyntax and with-syntax it's about same thing? 13:44 cky: cnonim: They can be used to achieve similar ends, but they are not the same thing. 13:44 (join) mye 13:44 cky: with-syntax creates syntax variables. quasisyntax allows you to splice in syntax expressions. 13:45 cnonim: if variable used once have difference? 13:46 cky: In that case, you should just use whatever is more readable. 13:46 cnonim: best practice? 13:46 cky: I tend to prefer with-syntax, but sometimes quasisyntax is more readable. 13:49 (join) dca 13:49 cnonim: thx, will try 13:51 (join) mithos28 13:51 (quit) mithos28: Client Quit 14:04 basdirks: heya 14:04 basdirks: what vim plugins and settings are useful for working with racket? 14:05 (join) jeapostrophe 14:05 basdirks: I've already looked at guide/Vim.html 14:05 bremner: does installing emacs count as a vim plugin? ;) 14:05 (quit) soegaard: Quit: soegaard 14:05 didi: You can run it inside M-x term 14:06 basdirks: what makes emacs so awesome for racket other than being written in a lisp? 14:06 bremner: it has geiser 14:07 didi: It's Emacs! 14:07 didi: rudybot: Is it a tautology? 14:07 rudybot: didi: heh...lol "The first rule of tautology club is the first rule of tautology club." Now I want to join the tautology club :) 14:08 basdirks: yes you've convinced me 14:08 didi: rudybot: High five! 14:08 rudybot: didi: A filesystem that is written entirely in elisp. The documentation says it's pure magic but it takes five hours to configure and then it is dog slow and hangs randomally. 14:09 basdirks: to stick with vim 14:09 didi: basdirks: Seriously though, apart from being the *awesome* Emacs, it has geiser and parendit. 14:09 didi: paredit* 14:09 (join) soegaard 14:10 basdirks: k I'll look those up 14:12 (join) netrino 14:13 (quit) Kaylin: Read error: Connection reset by peer 14:13 asumu: basdirks: I just use vim in emacs via evil-mode. 14:14 (join) RacketCommitBot 14:14 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/C-Ul9Q 14:14 RacketCommitBot: racket/master f5e85a6 Danny Yoo: Modify exn:test:check to support prop:exn:srclocs to produce good error messages even without debugging enabled.... 14:14 (part) RacketCommitBot 14:16 jbclements: rudybot: when do you eval and when do you just produce a random quote? 14:16 rudybot: jbclements: the company isn't making the hardware anymore, but has been giving the information out to other people who may produce a new version in the future 14:16 (join) gridaphobe 14:16 jbclements: rudybot: '(when do you eval and when do you just produce a random quote?) 14:16 rudybot: jbclements: your sandbox is ready 14:16 rudybot: jbclements: ; Value: (when do you eval and when do you just produce a random quote?) 14:17 jbclements: rudybot: unbound-identifier 14:17 rudybot: jbclements: error: unbound-identifier: undefined; cannot reference an identifier before its definition in module: 'program 14:17 dyoo: muhahaha. Fixed rackunit so it stops blaming itself when a test goes bad. :) 14:17 (join) jao 14:17 (quit) jao: Changing host 14:17 (join) jao 14:18 jbclements: rudybot: unbound identifier 14:18 rudybot: jbclements: The language that you're fantasizing on has a default value "x" for unbound identifiers that are called x. That's a valid choice, but no language that I know of does that. 14:20 basdirks: is there something like lint for racket? 14:21 (quit) gridaphobe: Remote host closed the connection 14:21 bremner: e.g. contracts or typed-racket 14:23 dyoo: basdirks: I think there's a project or two on PLaneT that does some kind of style checking, such as no-brainer: http://planet.racket-lang.org/display.ss?package=no-brainer.plt&owner=clements 14:23 rudybot: http://tinyurl.com/72nbau5 14:25 basdirks: dyoo: thanks 14:25 dyoo: basdirks: but for a lot more static checks, Typed Racket is one of the more mature systems. Is there anything particular in lint that you're looking for? 14:25 basdirks: no just style issues mostly 14:26 (quit) cnonim: Read error: Operation timed out 14:27 dyoo: DrRacket does automatic indentation, so usually a pass of "highlight the whole buffer, press TAB" fixes indentation issues. For style guidelines, see: http://www.ccs.neu.edu/home/matthias/Style/style/index.html 14:28 dyoo: basdirks: but I don't think anyone's yet written a linter to check compliance with the Style Guide. 14:30 basdirks: okay 14:40 (join) Fare 14:46 (quit) Fare: Ping timeout: 272 seconds 14:49 (quit) bremner: Ping timeout: 260 seconds 14:52 (join) bremner 14:52 (quit) bremner: Changing host 14:52 (join) bremner 14:54 (join) gridaphobe 15:07 (quit) jonrafkind: Ping timeout: 252 seconds 15:08 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 15:09 (join) mizu_no_oto 15:11 (join) rohni 15:13 (quit) sirdancealot: Remote host closed the connection 15:28 (join) ASau 15:33 (quit) cdidd: Remote host closed the connection 15:34 (quit) mye: Quit: mye 15:40 (join) ryan_c 15:41 stamourv: basdirks: http://tmp.barzilay.org/code-ayatollah.rkt 15:42 stamourv: I think it may be aimed at students, though. 15:42 (join) sirdancealot 15:51 bremner: heh, nice name. 15:59 soegaard: cky: This is up your alley: http://barzilay.org/misc/mines.ss 16:03 (join) ijp 16:04 (quit) whoops: Quit: Farewell 16:05 (join) mye 16:08 (join) crundar 16:19 (join) whoops 16:23 (quit) jao: Ping timeout: 240 seconds 16:26 (join) vipjun 16:31 (quit) mye: Quit: mye 16:41 (join) neilv 16:45 (quit) rohni: Quit: Leaving. 16:46 (join) bitonic 16:47 (quit) netrino: Remote host closed the connection 16:55 (quit) dyoo: Quit: dyoo 17:01 neilv: how do i disable the optimizer from inlining at run time? i have tried "--no-jit", the enviroment variable, and "eval-jit-enabled" (for just evals) 17:05 (join) jonrafkind 17:07 stamourv: neilv: AFAIK, inlining only happens in the byte-compiler. 17:09 soegaard: Is there a faster way of computing logarithms with base 2 than using (/ (log x) (log 2)) ? 17:09 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 17:09 (join) mizu_no_oto 17:10 neilv: i am getting debug messages at runtime from mzc optimizer about inlining. this code does evals and dynamic requires. i want to disable the inlining, for debugging purposes 17:14 stamourv: neilv: Ah, yes. Eval and dynamic-require would do that. 17:14 stamourv: Do you want to disable inlining, or just disable the logging? 17:15 neilv: disabling inlining. it might be buggy 17:15 neilv: or there might be a bug related to inlining, such as with identity tests 17:17 stamourv: raco make has the --disable-inlining flag. Would compiling the files that you dynamic-require work? 17:17 stamourv: s/compiling/compiling with that flag/ 17:18 neilv: strange that didn't show up when i searched for it 17:18 stamourv: I see it in `raco help make'. 17:19 neilv: i see it too. it's just hiding form search 17:19 stamourv: Would that do what you want? 17:20 stamourv: There may be a parameter that governs inlining, and that raco make would set when it sees that flag, but if that's the case, I can't find it. 17:21 (nick) JStoker -> JStoker2 17:23 (quit) jeapostrophe: Ping timeout: 255 seconds 17:28 (join) anRch 17:32 (quit) soegaard: Quit: soegaard 17:36 (join) Fare 17:50 (quit) mizu_no_oto: Read error: Operation timed out 17:53 asumu: Hmm, I find myself wanting a in-sorted/sequence-sort. 17:58 neilv: i'm also looking at the changes to collects/db between 5.2.1 and 5.3 18:02 neilv: the db changes that affect us look like only contract-related. so i'm back to looking at optimizer 18:03 (quit) bitonic: Ping timeout: 255 seconds 18:09 (join) bitonic 18:11 (quit) vkz: Quit: vkz 18:14 (join) dyoo 18:14 (join) brum 18:21 (quit) basdirks: Ping timeout: 255 seconds 18:23 dyoo: neilv: compile-context-preservation-enabled controls inlining 18:23 dyoo: whalesong has to turn off inlining as well since I need to reduce code expansion 18:27 neilv: dyoo: thanks. will look at that 18:36 (quit) anRch: Quit: anRch 18:40 (join) ASau` 18:44 (quit) ASau: Ping timeout: 272 seconds 18:53 (quit) ASau`: Ping timeout: 272 seconds 18:58 (quit) dyoo: Quit: dyoo 18:58 (quit) ryan_c: Quit: Ex-Chat 19:00 cky: rudybot: later tell soegaard You could use something like (define log2 (let ((invlog2 (/ (log 2)))) (lambda (x) (* (log x) invlog2))), but I don't think there's anything offering access to the x87 instruction for doing log2. 19:00 rudybot: cky: thanks soegaard 19:00 cky: (Also thanks for the Minesweeper link. :-)) 19:08 ijp: depending on your needs, you may be able to get away with (define lg (compose sub1 integer-length)) 19:09 (join) dyoo 19:12 (quit) racycle: Quit: racycle 19:13 (quit) gridaphobe: Read error: Connection reset by peer 19:13 (join) gridaphobe 19:15 (join) ambrosebs 19:19 (quit) dyoo: Quit: dyoo 19:22 (quit) didi: Ping timeout: 240 seconds 19:25 cky: ijp: Indeed, if you're dealing with integers at both ends. 19:39 (join) yacks 19:42 (join) kvda 19:44 (quit) vipjun: Ping timeout: 255 seconds 19:46 (quit) ambrosebs: Remote host closed the connection 19:51 (join) dnolen 19:53 (quit) jonrafkind: Ping timeout: 255 seconds 20:07 (quit) Twey: Excess Flood 20:09 (quit) bitonic: Remote host closed the connection 20:09 (join) racycle 20:09 (join) bitonic 20:11 (join) Twey 20:14 (join) jao 20:14 (quit) jao: Changing host 20:14 (join) jao 20:21 (join) RacketCommitBot 20:21 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/MDYaNQ 20:21 RacketCommitBot: racket/master 727d11d Robby Findler: adjust plai's test facility to print test failures to stderr... 20:21 RacketCommitBot: racket/master 03751b8 Robby Findler: Rackety... 20:21 RacketCommitBot: racket/master 48b2410 Robby Findler: fix a bug in ->i parsing 20:21 (part) RacketCommitBot 20:23 (quit) jbclements: Quit: jbclements 20:33 (quit) dauterive: Ping timeout: 264 seconds 20:35 (join) jeapostrophe 20:35 (quit) jeapostrophe: Changing host 20:35 (join) jeapostrophe 20:36 (quit) Fare: Ping timeout: 272 seconds 20:49 (join) ndqf 20:50 (quit) dnolen: Ping timeout: 276 seconds 20:51 ndqf: Can anyone link me to a GUI application built in Racket that is a little less complex than DrRacket? 20:51 ndqf: I've gone through the Racket Guide, but I haven't seen any full-blown applications. 20:55 jaimef: that would be a phd project thesis 21:00 (quit) bitonic: Ping timeout: 255 seconds 21:02 (join) didi 21:03 (join) ambrosebs 21:12 asumu: ndqf: there is Sirmail https://github.com/mflatt/sirmail 21:12 asumu: (mail client, as the name implies) 21:12 (quit) ambrosebs: Remote host closed the connection 21:15 ndqf: thanks sirmail 21:15 ndqf: oops, I meant asumu 21:20 (quit) gridaphobe: Remote host closed the connection 21:26 (quit) jeapostrophe: Ping timeout: 264 seconds 21:26 (join) gridaphobe 21:41 (join) Fare 21:44 (quit) gridaphobe: Remote host closed the connection 21:46 (join) mizu_no_oto 21:46 ndqf: Another question, is there a way to right-align text in a text-field? 21:52 (join) fourOfTwelve 21:56 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 21:57 (nick) fourOfTwelve -> dented42 21:58 (join) mizu_no_oto 22:00 (join) gridaphobe 22:06 (quit) gridaphobe: Remote host closed the connection 22:25 (join) jonrafkind 22:26 (quit) Fare: Ping timeout: 244 seconds 22:31 (join) RacketCommitBot 22:31 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/X3ohtw 22:31 RacketCommitBot: racket/master b0ed3b4 Robby Findler: adjust plai test & co. to print only failing tests to stderr,... 22:31 RacketCommitBot: racket/master 0d3fc7d Robby Findler: adjust test case for improved ->i handling in check syntax 22:31 (part) RacketCommitBot 22:32 (join) vipjun 22:48 (join) mithos28 22:50 (join) rmathews 22:55 (quit) kvda: Quit: x___x 22:56 (join) kvda 23:03 (quit) mithos28: Quit: mithos28 23:05 (quit) eMBee: Ping timeout: 246 seconds 23:07 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 23:15 (join) ambrosebs 23:15 (join) mizu_no_oto 23:15 (quit) mizu_no_oto: Client Quit 23:15 (join) Fare 23:17 (part) ndqf 23:19 (quit) ambrosebs: Ping timeout: 272 seconds 23:20 (join) eMBee 23:22 (quit) rmathews: Ping timeout: 272 seconds 23:29 (quit) didi: Ping timeout: 244 seconds 23:33 (join) mithos28 23:36 (join) RacketCommitBot 23:36 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/oNvzjg 23:36 RacketCommitBot: racket/master 27d79aa Robby Findler: don't try to re-use the active frame when it isn't shown... 23:36 (part) RacketCommitBot 23:39 (join) gridaphobe 23:42 (quit) kvda: Quit: z____z