00:05 (quit) mithos28: Quit: mithos28 00:06 (join) paddymahoney 00:06 (join) mithos28 00:09 (quit) mithos28: Client Quit 00:11 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 00:24 (quit) ambrosebs: Remote host closed the connection 00:33 (join) rmathews 00:42 (join) leo2007 00:43 leo2007: any possibility of you racket fellows to offer an advanced course on programming languages on coursera? 00:48 (quit) jonrafkind: Ping timeout: 260 seconds 00:48 (join) jao 00:48 (quit) jao: Changing host 00:48 (join) jao 00:54 (quit) tcsc: Quit: computer sleeping 01:01 (join) jonrafkind 01:16 (join) tcsc 01:18 arbn: leo2007: Brown offered their programming languages course as a MOOC in the Fall of 2012. Hopefully they'll do so again? The Brown PLT group has many racketeers. 01:21 leo2007: arbn: yeah, I have downloaded their videos but I haven't viewed them yet. 01:25 (join) yacks 01:27 arbn: leo2007: Is there something to be desired tin Coursera's PL course from the University of Washington? I haven't looked at it. 01:27 arbn: desired in* 01:27 (quit) mceier: Quit: leaving 01:29 leo2007: arbn: not sure but I looked at CS311 from indianna.edu and it seems deeper. 01:32 arbn: leo2007: Oh, that's interesting. It looks like a Scheme-centric course, but it introduces monads and type inference at the end. Cool stuff. 01:33 leo2007: arbn: cs311, right? 01:33 arbn: leo2007: Yeah. 01:33 leo2007: note the 'advanced' word in my question? 01:34 (join) Fare 01:37 arbn: leo2007: Mm-hm. You're right, the one on Coursera looks like a bit too basic. 01:41 (quit) Fare: Ping timeout: 244 seconds 01:41 (join) mithos28 01:55 (quit) mithos28: Quit: mithos28 01:58 (join) mithos28 01:59 leo2007: arbn: what about the brown one? 02:04 (join) ambrosebs 02:06 (quit) ambrosebs: Remote host closed the connection 02:09 (quit) BeLucid: Ping timeout: 260 seconds 02:10 (join) BeLucid 02:10 (quit) jao: Ping timeout: 252 seconds 02:16 (join) Kaylin 02:17 (join) gridaphobe 02:20 (join) mceier 02:20 (join) ambrosebs 02:57 (quit) sirdancealot: Ping timeout: 252 seconds 03:02 (quit) gridaphobe: Remote host closed the connection 03:03 (quit) jonrafkind: Ping timeout: 245 seconds 03:05 arbn: leo2007: The Brown one is good, but much more focused on implement than theory. The course project is to implement an interpreter for the core Python language, and the class teaches enough for one to be able to do that. But, if you really want to dig into types or something, then it's not for you, probably. 03:06 arbn: on implementation* 03:08 leo2007: thanks alot, arbn. 03:10 (quit) bremner: Ping timeout: 246 seconds 03:12 (join) sirdancealot 03:14 (join) bremner 03:14 (quit) bremner: Changing host 03:14 (join) bremner 03:20 (join) hkBst 03:22 (quit) mithos28: Quit: mithos28 03:25 (join) anonymous97890 03:36 (join) rohni 03:45 (quit) hkBst: Read error: Connection reset by peer 03:46 (join) sw2wolf 03:46 (join) hkBst 03:46 (quit) hkBst: Changing host 03:46 (join) hkBst 03:47 (part) sw2wolf: "ERC Version 5.3 (IRC client for Emacs)" 03:50 (quit) racycle: Quit: racycle 03:52 (join) noelw 04:09 (quit) rohni: Quit: Leaving. 04:21 (quit) yacks: Read error: Connection reset by peer 04:23 (join) asvil 04:23 (join) rohni 04:28 (join) yacks 04:43 (quit) rohni: Quit: Leaving. 04:44 (join) tilde` 04:51 (join) bitonic 04:59 (quit) ambrosebs: Remote host closed the connection 05:00 (quit) yacks: Ping timeout: 244 seconds 05:12 (quit) tcsc: Quit: computer sleeping 05:22 (join) rohni 05:27 (join) yacks 05:53 (quit) rohni: Quit: Leaving. 05:56 (join) rohni 06:07 (quit) yacks: Ping timeout: 245 seconds 06:07 (join) netrino 06:08 (quit) rmathews: Quit: ... 06:09 (join) mye 06:09 (quit) mye: Client Quit 06:09 (join) mye 06:11 (quit) Kaylin: Read error: Connection reset by peer 06:13 (quit) rohni: Quit: Leaving. 06:18 (join) cNoNim 06:18 bremner: asumu: re: rosetta stone, I'm not sure the 101st Y combinator implementation is interesting either. 06:19 cNoNim: can we build racket without C/C++? 06:22 bremner: cNoNim: I don't think so. Is that your actual goal, or you have a platform without a C compiler? 06:24 (quit) bitonic: Ping timeout: 256 seconds 06:24 cNoNim: bremner: i want to lear racket internals, and want to know what minimal part of racket 06:25 cNoNim: where defined '#%kernel? 06:28 bremner: I don't know much about internals, but you can start at collects/racket/kernel 06:38 (join) rohni 06:40 (quit) anonymous97890: Quit: leaving 06:43 (join) ijp` 06:45 (quit) ijp: Ping timeout: 252 seconds 07:03 (quit) bremner: Ping timeout: 260 seconds 07:07 (join) bremner 07:07 (quit) bremner: Changing host 07:07 (join) bremner 07:16 (join) jeapostrophe 07:16 (quit) Nisstyre: Ping timeout: 255 seconds 07:21 (quit) bremner: Ping timeout: 252 seconds 07:22 (join) Aune 07:23 (join) yacks 07:25 (join) didi` 07:25 (join) bremner 07:25 (quit) bremner: Changing host 07:25 (join) bremner 07:25 (join) cdidd 07:26 (nick) didi` -> didi 07:29 (join) Nisstyre 07:37 (nick) ijp` -> ijp 07:45 (quit) vipjun: Ping timeout: 244 seconds 07:45 (quit) leo2007: Quit: rcirc on GNU Emacs 24.2.93.1 07:57 (quit) rohni: Quit: Leaving. 08:05 (join) ambrosebs 08:12 (quit) ambrosebs: Remote host closed the connection 08:12 (join) Fare 08:22 (join) ambrosebs 08:26 (join) mizu_no_oto 08:30 (quit) ambrosebs: Remote host closed the connection 08:35 (join) ambrosebs 08:38 (join) rmathews 08:44 (quit) ambrosebs: Remote host closed the connection 08:45 (join) ambrosebs 08:47 (quit) mye: Quit: mye 08:49 (join) RacketCommitBot 08:49 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/gMF7Xg 08:49 RacketCommitBot: racket/master d113e79 Matthew Flatt: file/untgz: fix race 08:49 (part) RacketCommitBot 08:49 (quit) hkBst: Read error: Connection reset by peer 08:49 (join) vkz 08:50 (join) hkBst 08:50 (quit) hkBst: Changing host 08:50 (join) hkBst 08:51 (quit) ambrosebs: Ping timeout: 246 seconds 08:52 (join) ambrosebs 09:04 (join) mye 09:07 (quit) hkBst: Ping timeout: 256 seconds 09:08 (quit) cNoNim: Ping timeout: 245 seconds 09:12 (join) hkBst 09:12 (quit) hkBst: Changing host 09:12 (join) hkBst 09:18 (quit) hkBst: Remote host closed the connection 09:18 (join) soegaard 09:19 (join) hkBst 09:19 (quit) hkBst: Changing host 09:19 (join) hkBst 09:19 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 09:24 (join) bitonic 09:37 (join) mizu_no_oto 09:44 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 09:45 (join) vipjun 09:53 ozzloy: someone said my name, but my logs don't go far enough back for me to see it 09:55 didi: ozzloy: Maybe someone offered you the secret of Eternal Life, and now it's gone... 10:00 (join) dnolen 10:02 (quit) vkz: Quit: vkz 10:03 (join) anRch 10:23 (join) ARCADIVS 10:23 (join) vkz 10:24 (quit) anRch: Read error: Connection reset by peer 10:25 (join) anRch 10:28 (join) mizu_no_oto 10:30 (quit) vkz: Quit: vkz 10:30 ARCADIVS: I can't make sense of this error message: " procedure application: expected procedure, given: #f (no arguments)" 10:31 (join) rohni 10:31 didi: rudybot: (#f) 10:31 ARCADIVS: This is the line in question: "(check-equal? (ctf 3) (cons 3 4) "should return (3 . 4)")" 10:31 rudybot: didi: your sandbox is ready 10:31 rudybot: didi: error: application: not a procedure; expected a procedure that can be applied to arguments given: #f arguments...: [none] 10:32 ARCADIVS: I guess that means I messed up parentheses somewhere then. 10:34 didi: rudybot: (require rackunit) 10:34 rudybot: didi: Done. 10:34 didi: rudybot: (check-equal? '(foo . bar) (cons 'foo 'bar) "hello, world") 10:34 rudybot: didi: (check-equal? 2 (+ 1 1 1)) 10:34 didi: Oh well. 10:34 ARCADIVS: That's almost the only problem I have when using racket. :| parentheses... 10:34 didi <3 the parentheses 10:35 (join) hash_table 10:39 soegaard: rudybot: eval (#f) 10:39 rudybot: soegaard: your sandbox is ready 10:39 rudybot: soegaard: error: application: not a procedure; expected a procedure that can be applied to arguments given: #f arguments...: [none] 10:39 soegaard: rudybot: eval () 10:39 rudybot: soegaard: error: #:1:0: #%app: missing procedure expression; probably originally (), which is an illegal empty application in: (#%app) 10:40 (join) myx 10:47 (quit) ambrosebs: Remote host closed the connection 10:52 (quit) jeapostrophe: Ping timeout: 252 seconds 10:56 (quit) dnolen: Ping timeout: 264 seconds 11:00 (join) carleastlund 11:01 (quit) rmathews: Quit: ... 11:02 (quit) mceier: Quit: leaving 11:09 (join) RacketCommitBot 11:09 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/KlilnQ 11:09 RacketCommitBot: racket/master 2abcb88 Eli Barzilay: Minor improvements to version-specific download pages. 11:09 RacketCommitBot: racket/master 3175ab2 Eli Barzilay: Improve srfi-std html files.... 11:09 (part) RacketCommitBot 11:10 (join) bjz 11:10 (quit) bjz_: Read error: Connection reset by peer 11:10 (quit) hkBst: Ping timeout: 252 seconds 11:11 (join) hkBst 11:16 (quit) cdidd: Remote host closed the connection 11:16 (quit) anRch: Quit: anRch 11:18 (join) vkz 11:18 (join) anRch 11:19 (quit) hkBst: Ping timeout: 246 seconds 11:20 (join) hkBst 11:23 (quit) vkz: Client Quit 11:24 (join) rmathews 11:27 (quit) anRch: Quit: anRch 11:43 (join) racycle 11:45 (quit) hkBst: Ping timeout: 264 seconds 11:51 (quit) rohni: Quit: Leaving. 11:53 (join) mithos28 11:55 (join) anRch 12:00 (quit) noelw: Quit: noelw 12:01 (join) jeapostrophe 12:09 (quit) tilde`: Quit: ewwwbr 12:10 (quit) sirdancealot: Read error: Connection reset by peer 12:16 (join) mceier 12:21 jaimef hunts for a log parser in racket 12:27 (join) sirdancealot 12:28 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 12:28 (quit) myx: Quit: ушёл 12:29 (join) mizu_no_oto 12:40 (join) vkz 12:41 (quit) ARCADIVS: Quit: WeeChat 0.3.8 12:45 (join) dyoo 12:45 (quit) dyoo: Client Quit 12:45 (join) dyoo 12:47 (quit) anRch: Quit: anRch 12:50 (quit) mye: Quit: mye 12:50 (join) didi 12:58 (quit) mithos28: Quit: mithos28 13:06 (quit) vkz: Quit: vkz 13:08 (quit) netrino: Read error: Operation timed out 13:11 (join) netrino 13:18 (join) tilde` 13:24 (quit) jeapostrophe: Ping timeout: 246 seconds 13:30 (join) rich1 13:31 (quit) rich1: Client Quit 13:31 (join) rich1 13:47 (join) rohni 13:51 (join) vkz 13:52 (join) jonrafkind 13:57 (join) tcsc 14:01 (join) gridaphobe 14:03 (quit) noam: Ping timeout: 276 seconds 14:07 (join) noam 14:10 (quit) asvil: Ping timeout: 252 seconds 14:18 (quit) rohni: Quit: Leaving. 14:18 (part) racycle 14:19 (join) racycle 14:26 (join) RacketCommitBot 14:26 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/7jt-cA 14:26 RacketCommitBot: racket/master 0880064 Vincent St-Amour: Generalize type of curry to functions of arity 3+. 14:26 (part) RacketCommitBot 14:28 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 14:29 (join) mithos28 14:38 (join) jeapostrophe 14:40 (join) jao 14:40 (quit) jao: Changing host 14:40 (join) jao 14:44 (quit) mithos28: Quit: mithos28 14:45 (join) rohni 14:47 (quit) Guest52870: Ping timeout: 276 seconds 14:53 greghendershott: Hi. Any FFI experience? 14:54 greghendershott: The first FFI I'm trying turns out to need a struct of callback functions. o_O 14:54 greghendershott: Trying to wrap the Sundown markdown parsers, FWIW. 14:54 greghendershott: But: https://gist.github.com/greghendershott/5032644 ?? 14:57 dyoo: greghendershott: taking a quick look before lunch... 14:58 dyoo: I've been using synthetic examples I cook up in https://github.com/dyoo/ffi-tutorial/tree/master/ffi/tutorial/examples to help me figure out the ffi 14:59 dyoo: so this structure holds function pointers, is that right? 14:59 (quit) jeapostrophe: Ping timeout: 276 seconds 14:59 greghendershott: Yes, it's this huge struct with a couple dozen function pointers. 15:00 dyoo: give me a sec; let me see if I can cook something up fast. 15:00 greghendershott: Specifically it's from https://github.com/vmg/sundown/blob/master/src/markdown.h#L65-L100 15:01 greghendershott: Obviously not asking you to do all that typing, but if I can understand how to do one right …. 15:01 (join) bender 15:01 dyoo: I'm trying to cook a simple example with a structure with one callback element 15:01 (nick) bender -> Guest89908 15:02 dyoo: the idea behind ffi-tutorial is to do these simple, controlled examples that introduce a few ideas, rather than show a full-blown monster 15:02 dyoo: so I'm writing a small bit of C right now with a struct with callback... 15:02 dyoo: (and plus I don't know the FFI very well, :) So this is really for my own sake too) 15:05 greghendershott: OK well you're going about it the smart, responsible way. Darn you. :) I was hoping not to need to detour on such a deep dive into the FFI at the moment. 15:06 dyoo: I am getting hungry, so if this takes longer than ten more minutes, I'll let you know before I go off for lunch.. :) 15:07 greghendershott: You should probably go to lunch. I should put on my grown-up pants and figure it out the EF Hutton way. 15:08 (quit) rich1: Quit: Leaving. 15:10 dyoo: ok, got something that's working, sorta 15:11 dyoo: greghenderhott: https://github.com/dyoo/ffi-tutorial/tree/master/ffi/tutorial/examples/struct-with-callbacks 15:11 rudybot: http://tinyurl.com/aez7grv 15:12 greghendershott: Oh. that's way simpler than what I was trying. 15:12 dyoo: yup. :) 15:12 greghendershott: Just (_fun …), not (function-ptr (cpointer? (_fun …)) 15:12 greghendershott: BTW what do people do for size_t ? 15:13 dyoo: that's being added in HEAD, if I rememember the discussion 15:13 dyoo: let me see if I can find it... 15:13 greghendershott: ^ Oops I forgot to say thank you for the example. Thanks! 15:14 dyoo: greghendershott: http://lists.racket-lang.org/users/archive/2013-February/thread.html#56313 15:14 dyoo: ok, lunchtime! :) 15:15 greghendershott: dyoo: Awesome. Thank you so much. Enjoy your lunch. 15:15 (quit) gridaphobe: Remote host closed the connection 15:15 (quit) bitonic: Ping timeout: 264 seconds 15:18 (quit) yacks: Quit: Leaving 15:25 (join) Kaylin 15:34 (quit) vkz: Quit: vkz 15:35 (quit) sirdancealot: Quit: KEEP SPARKS. FLAME AWAY. 15:36 (quit) rohni: Quit: Leaving. 15:39 (join) rohni 15:49 (join) jeapostrophe 15:49 (quit) jeapostrophe: Changing host 15:49 (join) jeapostrophe 15:49 (join) yeboot 15:50 yeboot: I know I'm probably missing something terribly obvious, but is there a way to have racket store a cookie 15:51 didi . o O ( mmmm... cookies... ) 15:51 dyoo: yeboot: as a client, or a server? 15:51 dyoo: If you're trying to send a web response as a server, so that the attendant browser saves a cookie, see: http://docs.racket-lang.org/web-server/http.html#%28mod-path._web-server%2Fhttp%2Fcookie%29 15:51 rudybot: http://tinyurl.com/aez2cjg 15:52 yeboot: thank you very much, but I was referring to storing a cookie client-side 15:52 (join) rich1 15:52 yeboot: although I'll definitely have a look at that 15:53 dyoo: so are you trying to do something like a get-pure-port as a client then? 15:53 yeboot: tcp-connect and a POST 15:54 yeboot: I'm trying to use a site's api 15:54 dyoo: oh, so you're doing it raw then... 15:54 dyoo: I suspect http://docs.racket-lang.org/net/cookie.html should help. 15:54 yeboot: tcp-connect is raw? should I use get-pure-port instead? 15:55 dyoo: the "pure" part is not what you want, because you do want to get the headers too. 15:55 yeboot: I'm used to C so I often think low level is the way it is 15:55 dyoo: but yeah, I think you want to use something like post-impure-port 15:55 dyoo: http://docs.racket-lang.org/net/url.html#%28def._%28%28lib._net%2Furl..rkt%29._post-impure-port%29%29 15:55 rudybot: http://tinyurl.com/bcvx8hc 15:55 dyoo: That way, you'll get the headers, and you can use net/cookie to parse out the cookies 15:58 yeboot: thanks :) 15:58 yeboot: I'm finding this stuff on the local (help) thing, though 15:59 yeboot: ever since I figured it out I actually really like the documentation that comes with racket 15:59 didi: Go local help! 15:59 yeboot: I have to apologize because a few days ago I was in here complaining about it 15:59 yeboot: haha 15:59 didi: yeboot++ 15:59 yeboot: I kept ending up in scheme documentation and stuff 16:00 yeboot: I would get very confused 16:00 yeboot: like srfi/13 16:00 (quit) rich1: Quit: Leaving. 16:03 (join) gridaphobe 16:04 (quit) jonrafkind: Read error: Operation timed out 16:05 yeboot: I later found out that all the string functions are located on the string page, so I'm glad I didn't have to use srfi/13 16:05 yeboot: just to wrap that up 16:09 (quit) hash_table: Ping timeout: 240 seconds 16:11 (join) vkz 16:16 (quit) Aune: Quit: Hath Deprated 16:21 (join) anRch 16:31 (quit) paddymahoney: Remote host closed the connection 16:32 (join) jonrafkind 16:37 (quit) rohni: Quit: Leaving. 16:40 yeboot: I know there's no way to have typed objects directly right now 16:40 yeboot: but is there a way to have objects contain typed methods, or would that be weird 16:40 jonrafkind: what is the reigning thought as to where the 'tests' directory should go. into collects/$x/tests or collects/tests/$x 16:40 jonrafkind: i guess if it goes into $x/tests they will be compiled each time the tree is built, and collects/tests is usually skipped 16:40 jonrafkind: but its convenient to put it in $x/tests 16:42 dyoo: jonrafkind: I'm preferring $x/tests personally, but I don't know what the concensus is. 16:42 (quit) dyoo: Quit: dyoo 16:42 jonrafkind: the setup mechanism should be able to skip $x/tests unless some flag is passed. raco setup --tests or whatever 16:42 (quit) vkz: Quit: vkz 16:43 (join) rohni 16:58 (quit) tilde`: Quit: kthxbai 16:58 (join) tilde` 16:59 (quit) tilde`: Client Quit 16:59 (quit) jeapostrophe: Ping timeout: 276 seconds 17:09 stamourv: yeboot: You can have typed functions in a (sub)module, and have your methods call them. 17:09 (quit) anRch: Quit: anRch 17:11 yeboot: stamourv so modules don't have to use the same lang? I realize that I asked that question implicitly, but it's the crux 17:12 asumu: yeboot: a submodule defined with (module ...) can have any language. 17:12 asumu: A submodule with (module* ...) uses the language of its containing module. 17:13 yeboot: I'll have to look at the documentation for module* 17:16 stamourv: Submodules are really cool. 17:17 (join) ijp` 17:17 stamourv: yeboot: For your use case, you'll want to use `module', not `module*', since the enclosing module will want to require it. 17:18 yeboot: can you diagram the higharchy 17:18 yeboot: oh (module* is only for submodules 17:18 yeboot: inside a module 17:19 yeboot: asumu stamourv that totally makes sense now 17:19 yeboot: are module unique to racket? 17:20 stamourv: Racket is not the only language with modules. Some languages (e.g. ML) also have nested modules, like Racket. Racket is the only language with submodules. 17:20 (quit) cipher: Remote host closed the connection 17:20 stamourv: Submodules are more than just nested modules. 17:22 carleastlund: yeboot: Many languages have things called "modules". No other language's modules are quite like Racket's modules. It's a very broad term, and Racket uses a very specific meaning for it. 17:22 yeboot: I meant of the lisp family 17:23 carleastlund: stamourv: Saying "Racket is the only language with submodules" is tricky, unless you can somehow define what "submodules" means in a language with different modules than Racket. 17:24 carleastlund: yeboot: That still depends what you mean by modules, and what you mean by the Lisp family. They're both broad terms. 17:24 yeboot: so would module go before or after lang 17:24 yeboot: I'm derping hard 17:24 carleastlund: (module ...) 17:25 stamourv: carleastlund: By submodule, I mean nested modules that can be selectively loaded. 17:25 stamourv: That is, you can load a file without loading all of its submodules (e.g. load a library, but not its tests, or its docs.). 17:25 carleastlund: stamourv: Ah, yes, that is a particularly tricky combination :) 17:26 stamourv: Yep, which is why submodules are especially interesting. 17:26 yeboot: oh cool, lang shorthand 17:26 carleastlund: I wonder whether the ML folks would argue about uninstantiated functors (e.g. "functor thunks") serving that purpose, depending on one's definition of "loading". 17:27 yeboot: so I can do (module typedMethods typed/racket ... (stuff) ...) 17:27 stamourv: yeboot: Yep. 17:27 carleastlund: yeboot: #lang ... is shorthand for (module /lang/reader ...) 17:27 stamourv: You just need to `provide' the typed methods, and have the top-level module `(require (submod "." typedMethods))'. 17:28 (nick) ijp` -> ijp 17:28 stamourv: Style note: Racketeers don't usually use camelCase (e.g. typedMethods), but instead separate words with dashes (e.g. typed-methods). 17:29 yeboot: is there going to be vim syntax highlighting for racket any time in the future 17:29 yeboot: or is there anything I can load 17:29 yeboot: like a vim script for it 17:30 (join) gcr 17:30 stamourv: yeboot: The guide has a section on using racket with vim. 17:30 stamourv: Towards the end, IIRC. 17:31 gcr: Is there a nice way of making (string->url "http://google.com/search?q=H%E9llo") just convert the %E9 to its code point, instead of throwing an exception because it's not UTF-8? 17:31 yeboot: stamourv it's literally the last thing :) 17:34 (join) mithos28 17:35 (quit) rohni: Quit: Leaving. 17:36 (quit) Kaylin: Quit: Leaving. 17:36 (join) bitonic 17:39 didi: gcr: Hum, a code point is a concept different than UTF-8. And I don't think E9 is UTF-8, although I might be wrong. 17:39 didi: s/is/is valid 17:42 gcr: didi: Put another way, is there a nice way of turning that %E9 into something better? Like turning my URL into the UTF-8-encoded equivalent http://www.google.com/search?q=H%C3%A9llo ? 17:42 didi: gcr: This URL works fine. 17:43 didi: rudybot: (require net/url) 17:43 rudybot: didi: Done. 17:43 didi: rudybot: (string->url "http://www.google.com/search?q=H%C3%A9llo") 17:43 rudybot: didi: ; Value: #(struct:url "http" #f "www.google.com" #f #t (#(struct:path/param "search" ())) ((q . "Héllo")) #f) 17:43 (quit) jao: Ping timeout: 252 seconds 17:43 gcr: rudybot: (require net/url) 17:43 rudybot: gcr: your sandbox is ready 17:43 rudybot: gcr: Done. 17:43 gcr: rudybot: (string->url "http://foo.com/%e9") 17:43 rudybot: gcr: error: bytes->string/utf-8: string is not a well-formed UTF-8 encoding string: #"\351" 17:43 gcr: How can I convert that URL into something that works? 17:43 didi: gcr: You can't use any byte that you like. 17:43 gcr: I have a bunch of such URLs 17:44 didi: gcr: Not every byte sequence is valid UTF-8. 17:44 gcr: I know the difference between bytes and code points, but my web browser displays them properly, in keeping with the "be liberal in what you accept" principle. My issue is that trying to open such a URL in Racket requires a complicated conversion step 17:45 gcr: that I'd like to automate, but isn't currently possible 17:46 bremner: gcr: you need to un-url-encode them, don't you? 17:48 gcr: bremner: Yeah, but in this weird latin-1 encoding instead of UTF-8. As far as I know, net/uri-codec only supports utf-8 17:48 bremner: ah, ok. 18:00 (quit) tcsc: Quit: bye! 18:00 (quit) gridaphobe: Remote host closed the connection 18:03 didi: Yeah, AFAICS, `string->bytes/utf-8' is used to decode the string. 18:03 didi: collects/net/uri-codec.rkt:189 18:06 (quit) gcr: Remote host closed the connection 18:09 (join) gcr 18:20 (join) gridaphobe 18:21 yeboot: how do I use a submodule 18:21 (quit) gridaphobe: Remote host closed the connection 18:21 (join) jeapostrophe 18:22 (join) sirdancealot7 18:22 (quit) soegaard: Ping timeout: 255 seconds 18:23 stamourv: yeboot: It depends, what do you want to do with it? 18:23 yeboot: (submod 18:23 stamourv: To define a submodule, just use `module', or `module*'. 18:23 stamourv: To require it, use the `submod' form in `require'. 18:23 stamourv: rudybot: doc require 18:23 rudybot: stamourv: your sandbox is ready 18:23 rudybot: stamourv: http://docs.racket-lang.org/reference/require.html#(form._((lib._racket%2Fprivate%2Fbase..rkt)._require)) 18:24 yeboot: stamourv well, more to do with that typed module, I'm using submodules to separate different typed procedures to be used as class methods 18:25 (join) kmels 18:26 dented42: does the objective-c ffi have any support for blocks, or is there any support planned? 18:26 (join) soegaard 18:29 yeboot: when trying to set up racket on another machine I get this error http://ix.io/4wH 18:29 stamourv: yeboot: So something like: `(module foo typed/racket (: blah : Type) (define (blah) ...) (provide blah))' should work. 18:30 stamourv: yeboot: Weird error. How much RAM on that machine? 18:30 yeboot: 512 mb 18:30 stamourv: Maybe it's running ou of memory. 18:30 yeboot: probably less, it's running a few daemons 18:30 yeboot: why is it using so much memory setting it up 18:31 stamourv: No sure. 18:31 stamourv: s/No/Not/ 18:32 yeboot: just kinda frustrating, since I'm building from source it takes about an hour to reach that point 18:33 stamourv: Yeah. 18:33 stamourv: Can you use some swap? 18:33 stamourv: A couple years back, I'd sometimes build Racket on my OLPC XO with 256MB of RAM. It would take a lot of swap space (and run for 12h) but it would work. 18:34 yeboot: how do I make a swapfile, then 18:34 yeboot: I can make a gb one just to be safe 18:35 stamourv: Try the mkswap command. 18:37 (join) r4do 18:40 (quit) carleastlund: Quit: carleastlund 18:45 (quit) gcr: Ping timeout: 260 seconds 18:47 (join) gridaphobe 18:48 (join) cipher 18:48 (quit) cipher: Changing host 18:48 (join) cipher 18:54 (join) Kaylin 19:00 yeboot: is there a procedure that returns a list of lines in a file 19:00 yeboot: like python's readlines() method from file objects 19:01 didi: yeboot: `file->lines' 19:01 yeboot: sweet 19:04 yeboot: is it poor form to ask for procedures based on the methods and functions of other languages 19:04 stamourv: That's fine. 19:11 (quit) bjz: Quit: Bye! 19:14 (join) bjz 19:21 (quit) r4do: 19:26 (join) RacketCommitBot 19:26 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/CUExfg 19:26 RacketCommitBot: racket/master 034aaca Vincent St-Amour: Fix TR contracts. 19:26 (part) RacketCommitBot 19:27 (join) dnolen 19:29 (quit) didi: Ping timeout: 255 seconds 19:30 (quit) dnolen: Remote host closed the connection 19:35 (join) ambrosebs 19:40 (quit) bitonic: Ping timeout: 255 seconds 19:41 (quit) Kaylin: Quit: Leaving. 19:44 (join) hash_table 19:44 (quit) cored: Quit: leaving 19:47 (quit) juanfra__: Quit: juanfra__ 19:54 (quit) soegaard: Quit: soegaard 19:55 (quit) jonrafkind: Ping timeout: 252 seconds 19:57 (join) Kaylin 20:00 (quit) netrino: Quit: netrino 20:10 (join) jao 20:10 (quit) jao: Changing host 20:10 (join) jao 20:12 (quit) Kaylin: Quit: Leaving. 20:20 (quit) Shambles_1: Read error: Connection reset by peer 20:45 (join) leo2007 20:52 yeboot: so I've heard racket has internal ports 20:52 yeboot: sockets, or whatever 20:52 yeboot: an abstracted method of doing unix files, maybe, I was wondering if I am recalling incorrectly 20:52 leo2007: search the help desk 20:53 yeboot: I don't knwo what to search beyond 'help 20:53 yeboot: sorry woah, 'socket' 21:04 (join) paddymahoney 21:05 (quit) jeapostrophe: Ping timeout: 248 seconds 21:16 (quit) hash_table: Ping timeout: 276 seconds 21:18 (quit) ambrosebs: Remote host closed the connection 21:20 (quit) gridaphobe: Remote host closed the connection 21:21 (join) RacketCommitBot 21:21 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/g_E8tA 21:21 RacketCommitBot: racket/master 2846c17 Vincent St-Amour: Fix the fix to TR contracts. 21:21 (part) RacketCommitBot 21:24 (join) Kaylin 21:25 (join) gridaphobe 21:29 (join) gcr 21:30 gcr: Hey there! How can I have get-pure-port time out for a bad net connection? 21:31 (quit) gridaphobe: Remote host closed the connection 21:40 yeboot: I think the system programming tutorial has a section on doing socket timeouts 21:41 (quit) rudybot: Remote host closed the connection 21:42 (join) rudybot 21:43 (join) mithos28_ 21:43 (join) yacks 21:44 yeboot: but they have it with just a timeout thread 21:45 gcr: aha, makes sense 21:45 gcr: if i just kill that thread, its file descriptors (the TCP connection) stay open, right? i'd have to put that thread under the management of another custodian 21:47 yeboot: yeah you can do it manually or through a custodian, the system programming section uses a locally-defined custodian for it 21:47 gcr: ah! ok, thanks 21:51 (join) elly 21:51 elly: hello all :) 21:52 elly: is there a way to get the typed/racket typechecker to tell me where the incorrectly-typed call is coming from? 21:53 (join) dyoo 21:53 asumu: elly: if you're in DrRacket, it'll highlight the portion that doesn't typecheck. Or do you mean at the REPL or something? 21:54 dyoo: elly: if you do check syntax, the highlighting isn't as good. Have you pressed Run instead? 21:54 (part) gcr: "ERC Version 5.3 (IRC client for Emacs)" 21:54 elly: I meant from the repl 21:54 elly: I haven't really tried using drracket (no experience with it) 21:54 dyoo: you mean, the text-based racket repl? 21:54 dyoo: oohhhh... 21:55 dyoo: Uh, can you try it in DrRacket? :) 21:55 elly: sure 21:55 dyoo: (sorry, I have less experience with syntax highlighting outside of DrRacket) 21:56 elly: I ran it with 'drracket yaspl.rkt' (the main racket file), and now at the bottom I see the very first line of the typecheck error message 21:56 dyoo: yeah, that should be the background compiler. But try just running it with the Run button 21:57 dyoo: (What's happening is DrRacket does a continuous recompilation as the file is being edited; errors show up on the bottom.) 21:58 asumu: Even at the REPL, it should in theory show you where in the file the type error happened. For example: 21:58 asumu: "; foo.rkt:3:0: Type Checker: No function domains matched in function" 21:58 elly: yep, it shows me that one 21:58 elly: sec, I'll pastebin 21:58 (quit) mithos28_: Quit: mithos28_ 21:58 dyoo: but your original question, about getting good source at the repl: good question. I'll ask on the mailing list. I automatically assumed it should at least get you in the general line and column. 21:59 elly: http://paste.lisp.org/display/135653 22:00 dyoo: so it's saying something about line 128. 22:00 elly: it is, yes 22:00 elly: but line 128 is where the incorrectly-called function is defined, I think 22:01 elly: https://github.com/bhickey/yaspl is the repo I checked out of 22:02 dyoo: ok, investigating. let me check it out and compile as well. so you're getting this error on a clean checkout, right? 22:02 yeboot: so apparently the quick start guide on the first page of the typed racket guide contains code that doesn't run in the interactive racket interpreter 22:02 yeboot: the REPL 22:03 elly: dyoo: yep 22:03 elly: (I bet the code in the repo is busted; I'm just trying to figure out why/where) 22:03 yeboot: (struct: pt ([x : Real] [y : Real])) 22:03 yeboot: stdin::0: dtsi*: expected struct name at: pt in: (dtsi* () pt ((x : Real) (y : Real)) #:maker make-pt) 22:04 asumu: yeboot: unfortunately, `struct:` does not work at the REPL. 22:04 yeboot: :(((((9 22:04 (join) cdidd 22:05 asumu: (hopefully we will fix this sometime, let me check if there's a bug report on it yet) 22:05 dyoo: whoa, it's using my tqueue package?! Cool. 22:05 dyoo: elly: ok, yeah, I'm seeing the type errors tool. 22:05 dyoo: s/tool/too 22:07 elly: dyoo: right - I'm trying to figure out where they are coming from :) 22:07 dyoo: odd. 22:07 dyoo: under 5.3.2 and 5.3.3, I don't get the erorrs about resolved-structures.rkt. 22:08 dyoo: What version are you using? I know there are improvements to TR from version to version. 22:09 dyoo: elly: under Racket 5.3.2, all the type errors I'm seeing so far are all about resolve-module.rkt, rather than what you're seeing with resolved-structures.rkt. 22:09 yeboot: dyoo I'm using 5.3.3 22:09 yeboot: oh nvm you're not talking to me 22:09 dyoo: :) 22:09 dyoo: elly: question to you: what version of Racket are you using? 22:10 elly: 5.3.1, says the repl 22:10 elly: let's see if apt has a newer one for me 22:10 dyoo: elly: ok, cool. In the meantime, I'd better get dinner before I forget to eat again. 22:10 dyoo: Talk to you later! 22:11 (quit) dyoo: Quit: dyoo 22:11 elly: later 22:12 yeboot: how do you redefine variables in REPL with TR 22:19 (join) RacketCommitBot 22:19 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/4fzvZQ 22:19 RacketCommitBot: racket/master a3a98fd chrdimo: support for keyword argumnets + transfer-option, exercise-option and waive-option do not raise an error on values without an option 22:19 (part) RacketCommitBot 22:19 elly: nope, no newer racket... where are you guys getting racket packages? 22:28 offby1: I found mine under the xmas tree 22:30 (quit) mithos28: Quit: mithos28 22:31 elly: heh! 22:31 elly: hi offby1 :) 22:33 offby1 finally upgraded rudybot to 5.3.2 22:33 offby1: the previous two or three minor versions all crashed mysteriously. 22:34 (join) mizu_no_oto 22:37 (join) werd 22:38 (quit) werd: Client Quit 22:38 (join) mithos28 22:39 asumu: elly: there is a Debian-tailored package here http://www.racket-lang.org/download/ but unfortunately not a .deb 22:40 asumu: There's also an Ubuntu PPA that might work for Debian, though I haven't tried https://launchpad.net/~plt/+archive/racket 22:41 mithos28: elly: if you are having any issues with yaspl I can try to help, last time I ran it it worked 22:44 mithos28: dyoo: ping 22:45 (quit) rmathews: Quit: ... 22:51 asumu: Hmm, I wish message% had a click callback. 22:51 elly: mithos28: well, that's the issue I'm having with it :) 22:53 mithos28: elly: Brendan and I both wrote it using racket at HEAD/very recent so old versions of racket may not work 22:55 mithos28: looked at the error, yes that is definitely an old racket issue. That was a known bug in TR for a while that finally got fixed 22:55 mithos28: for/hash: had a bad expansion that was hard to typecheck 22:56 elly: okay, cool 22:56 elly: I shall get a new racket somehow 22:56 elly: (I == ellyjones@, btw) 22:56 mithos28: I guessed 22:57 mithos28: and I'm endobson if you didn't catch it 22:57 elly: I also guessed :) 22:57 elly: excellent 22:58 mithos28: I would just build from head/get a nightly 22:59 (quit) Nisstyre: Ping timeout: 276 seconds 22:59 elly tries the ppa 23:01 (join) ambrosebs 23:04 (quit) kmels: Remote host closed the connection 23:06 elly: there, let's see if 5.3.2 is any better 23:06 mithos28: I doubt it 23:07 elly: > (load "yaspl.rkt") 23:07 elly: > 23:07 elly: woo :) 23:07 mithos28: did it spit out stuff? 23:07 elly: nope 23:07 elly: that's all the output 23:07 mithos28: something is going wrong then 23:08 mithos28: what happens if you (require "yaspl.rkt") 23:08 elly: 25 seconds of CPU time, then a lot of output 23:09 elly: (done-program ...) 23:09 mithos28: great 23:11 elly: alright 23:11 elly: for now, sleep; tomorrow I'll look at this more 23:12 (join) Nisstyre 23:13 (quit) ambrosebs: Ping timeout: 245 seconds 23:15 (join) ambrosebs 23:23 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 23:32 yeboot: stdin::139: Type Checker: Duplicate type annotation of (Real Real -> Void) for h, previous was Error in: h 23:32 mithos28: yeboot: Likely because you already gave a bad annotation for h 23:33 yeboot: yes, how do I unset that 23:33 mithos28: quick easy way, restart racket 23:33 mithos28: harder way, file a bug 23:34 mithos28: hardest way, hack the internal TR data structures 23:35 yeboot: haha 23:36 yeboot: k 23:36 elly: harder hardest way: dd, /proc/pid/mem 23:37 ijp: hard therapeutic way: swear at racket till it changes its mine 23:38 ijp: er, mind 23:43 (quit) yacks: Ping timeout: 240 seconds 23:45 (quit) Kaylin: Quit: Leaving. 23:46 (join) rmathews