00:02 (join) mithos28_ 00:06 (quit) mithos28_: Client Quit 00:14 (quit) dherman: Quit: dherman 00:27 (quit) rekahsoft: Ping timeout: 258 seconds 00:28 (join) rekahsoft 00:47 (join) offby1_ 00:47 offby1_: So ... Why do we have both thread mailboxes, and asynchronous channels? 01:01 (join) realitygrill_ 01:03 (quit) realitygrill: Ping timeout: 255 seconds 01:03 (nick) realitygrill_ -> realitygrill 01:12 (quit) offby1_: Quit: offby1_ 01:14 (join) JoelMcCracken 01:36 (quit) dnolen: Quit: dnolen 01:53 (nick) elliottcable -> ec|detached 02:00 (quit) realitygrill: Ping timeout: 255 seconds 02:00 (join) realitygrill_ 02:00 (nick) realitygrill_ -> realitygrill 02:06 (quit) jonrafkind: Ping timeout: 240 seconds 02:15 (quit) carleastlund: Quit: carleastlund 02:20 (quit) JoelMcCracken: Ping timeout: 255 seconds 03:03 (join) hkBst 03:05 (join) realitygrill_ 03:06 (quit) realitygrill: Ping timeout: 246 seconds 03:06 (nick) realitygrill_ -> realitygrill 03:27 (quit) realitygrill: Quit: realitygrill 03:40 (join) masm 03:55 (join) tfb 03:59 (quit) tfb: Client Quit 04:26 (nick) ec|detached -> elliottcable 04:45 (join) tfb 05:01 (join) mceier 05:44 (join) misterncw 06:39 (join) MayDaniel 07:02 (quit) misterncw: Remote host closed the connection 07:08 (join) misterncw 07:08 (quit) MayDaniel: Read error: Connection reset by peer 08:11 (quit) Nanakhiel: Quit: Phallic Illuminatus 08:26 (join) wtetzner 08:34 (join) mithos28 08:42 eli: offby1: thread mailboxes are very specific, and therefore a cheaper (IIRC). 08:59 (join) JoelMcCracken 09:14 (join) samth_ 09:19 (quit) mithos28: Quit: mithos28 09:29 (join) martinhex 09:34 (join) Begemotina 09:35 (part) Begemotina 10:14 (quit) mceier: Quit: leaving 10:16 (join) dnolen 10:43 (quit) dnolen: Quit: dnolen 10:44 (join) ckrailo 10:47 (join) MayDaniel 11:07 (quit) samth_: Ping timeout: 255 seconds 11:16 (join) realitygrill 11:21 (quit) realitygrill: Read error: Connection reset by peer 11:21 (join) realitygrill_ 11:22 (quit) ehine1: 11:26 (join) ryandanas 11:27 (join) realitygrill 11:27 (quit) realitygrill_: Read error: Connection reset by peer 11:28 (join) jonrafkind 11:39 (quit) rekahsoft: Ping timeout: 246 seconds 11:40 (join) rekahsoft 11:43 ianj-neu: Has anyone written a #lang that will turn C header files that contain only typedefs and prototypes into an FFI interface? 11:45 jonrafkind: i think possibly jay did that 11:46 ianj-neu: I'll check PLaneT 11:46 jonrafkind: theres these two http://planet.racket-lang.org/display.ss?package=c.plt&owner=dherman 11:46 jonrafkind: http://planet.racket-lang.org/display.ss?package=c.plt&owner=jaymccarthy 11:48 (quit) hkBst: Remote host closed the connection 11:48 ianj-neu: Hmm, Jay's seems to just be a shallow embedding 11:57 jonrafkind: at one point i wrote a script to convert .h files into ffi code 11:57 jonrafkind: in perl or ruby or something 11:57 jonrafkind: i wonder what I did with it.. 12:09 (join) dnolen 12:12 (join) anRch 12:14 (quit) aalix: Quit: Textual IRC Client: http://www.textualapp.com/ 12:18 (quit) gienah: Quit: leaving 12:34 (quit) misterncw: Remote host closed the connection 12:37 (quit) anRch: Ping timeout: 255 seconds 12:39 offby1: eli: so the semantics of thread mailboxes are the same as those of async channels, and I should prefer 'em when they're available? 12:39 offby1: it'd be good if the docs said so 12:42 (quit) realitygrill: Read error: Connection reset by peer 12:45 (join) anRch 12:47 ianj-neu: Damn, yices only provides a statically linkable library, so I can't use the ffi 12:51 offby1: :-( 12:51 offby1: you could rebuild racket, and link the library in; then you tell the FFI to look in the library named #f or something, which means "this very racket executable" 12:53 ianj-neu: Found an .so file. No worries. 12:53 (quit) anRch: Ping timeout: 250 seconds 12:54 ianj-neu: _enum needs an extra parameter to specify the starting number. Had to duplicate code and change two lines :/ 13:07 offby1: I don't think I've ever written FFI code 13:07 offby1: except for HMAC-SHA256, which I "wrote" by copying an existing HMAC-SHA1 and changing "1" to "256" :) 13:11 (quit) tfb: Ping timeout: 260 seconds 13:15 (join) anRch 13:17 (quit) Lajla: Read error: Connection reset by peer 13:17 (join) Lajla 13:27 (quit) MayDaniel: Read error: Connection reset by peer 13:28 (join) ehine1 13:33 (join) carleastlund 13:41 eli: offby1: I'm not sure that they're completely equivalent (when restricted to the case of one async channel to one thread), but raise that (valid) documentation point on the list. 13:44 eli: ianj-neu: (_enum '(a = 1 b = 8)) 13:49 (join) shofetim 13:53 (quit) ryandanas: Read error: Connection reset by peer 13:59 (quit) Lajla: Ping timeout: 276 seconds 14:18 (nick) elliottcable -> ec|detached 14:21 (nick) ec|detached -> elliottcable 14:25 (nick) elliottcable -> ec|detached 14:28 (join) realitygrill 15:04 (quit) rekahsoft: Ping timeout: 260 seconds 15:05 (quit) anRch: Quit: anRch 15:05 (join) rekahsoft 15:22 (quit) lisppaste: Remote host closed the connection 15:23 (join) Demosthenex 15:25 (join) lisppaste 15:25 (quit) Demosthenes: Ping timeout: 252 seconds 16:00 (nick) samth_pldi -> samth 16:06 (join) tauntaun 16:33 (quit) ianj-neu: Ping timeout: 252 seconds 16:45 (quit) dnolen: Ping timeout: 252 seconds 16:51 (join) dnolen 17:03 (join) dherman 17:06 (quit) realitygrill: Read error: Connection reset by peer 17:08 (join) realitygrill 17:09 shofetim: I have an input-port (created via ssl-connect) that doesn't end with an EOF/EOL hence I am having difficulty reading it. read-line just blocks, read or read-char will read it but then block when they reach the end... 17:09 shofetim: http://paste.lisp.org/display/122531 17:10 shofetim: is there a "proper" way to handle this kind of input? 17:14 offby1: I suspect not 17:15 (join) ianj-neu 17:15 offby1: wouldn't you want to put "read" in a loop? 17:15 offby1: reading until you get eof? 17:15 shofetim: yeah... but you never get eof 17:16 shofetim: after a while read just blocks 17:16 ianj-neu: I'm battling this exact same problem. 17:16 offby1: hm 17:16 shofetim: So I'm guessing it would be best to recurse over the input, checking each time if char-ready? says that read-char wouldn't block? 17:16 ianj-neu: I was using (sleep 0.1) and read-bytes-avail! aaaand things get out of phase and screw up my program. 17:16 offby1: I wonder if you need a second CR/LF pair 17:18 offby1: nope 17:18 offby1: OK, I'm seeing what y'all are seeing :) 17:18 shofetim: : ) 17:18 shofetim: offby1: btw how did the hmac stuff go? 17:18 (quit) qha: Quit: Leaving. 17:19 (join) qha 17:19 shofetim: I'm reading the read-bytes-avail! in the manual.... It might be what I need. 17:19 offby1: shofetim: I _finally_ got it 17:19 offby1: shofetim: I think my github repository is up to date; you can see what I'm doing there 17:20 shofetim: cool : ) 17:22 shofetim: Well I have to run... I'm thinking maybe I parse the content length and then read that many bytes... 17:25 offby1: aaah 17:25 offby1: I bet that's right! 17:25 offby1: anyway, there are almost certainly built-in functions to handle HTTP for you. 17:26 offby1: Presumably they can be made to work with SSL 17:26 shofetim: yes, but how? 17:26 shofetim: there is get-pure-port 17:26 shofetim: but it doesn't like SSL 17:31 offby1: yeah, annoying 17:31 offby1: I think eli knows 17:48 shofetim: /? 17:51 offby1: \! 17:59 (join) mceier 18:26 (quit) cipher: Ping timeout: 276 seconds 18:35 (join) CoverSlide 18:36 (part) shofetim: "ERC Version 5.3 (IRC client for Emacs)" 18:38 offby1: say, there's a "listof" contract ... why isn't there a "setof" contract? 18:41 (join) Nafai 18:41 (quit) DT``: Remote host closed the connection 18:42 (join) DT`` 18:42 jonrafkind: maybe you can write that contract yourself? 18:42 jonrafkind: i mean if you write it maybe it can get added to the library 18:48 carleastlund: I believe a higher-order setof contract would require a reimplementation of racket/set, currently. 18:49 carleastlund: And it's a tricky thing in any case. Wrapping objects with contracts would completely change the behavior of, say, an eq?-based set. 18:49 Nafai starts looking at typed racket 18:54 (quit) masm: Quit: Leaving. 18:59 Nafai: hrm, this looks attractive 19:00 (quit) carleastlund: Quit: carleastlund 19:11 (join) masm 19:18 (nick) samth -> samth_away 19:19 (quit) dnolen: Ping timeout: 252 seconds 19:21 Demosthenex: Nafai: woot 19:21 Nafai: Hey Demosthenex 19:21 Nafai: Hey, I like Lisp. 19:21 Nafai: I just happen to like static typing too 19:22 Demosthenex: better than haskell ;] 19:22 Nafai: we'll see 19:22 Nafai: but I'm mostly doing Python and Scala these days 19:26 Demosthenex: i haven't looked closely at typed racket yet. 19:26 Demosthenex: i'm still working on learning contracts 19:27 Nafai: contracts are handy 19:27 Nafai: I assume a la Eiffel, right? 19:29 bremner: not really aiui 19:29 bremner: contracts in racket are more like run time type checking 19:29 Demosthenex: hrm, really, it looks more like contracts were a halfway point to typed racket 19:29 Nafai reads the Racket Guide about Contracts 19:31 rapacity: make sure to read the fine print 19:33 Demosthenex: which is? 19:34 bremner: a pun 19:34 Demosthenex: i was hoping for more than a pun ;] 19:34 Demosthenex: it wasn't very punny 19:37 Nafai: is geiser + quack the best Emacs combo for now? 19:38 Demosthenex: i'm on geiser, but i haven't used quack 19:38 Demosthenex: geiser's cool 19:38 offby1: jonrafkind: http://bugs.racket-lang.org/query/?cmd=view&pr=11969 19:38 Demosthenex: so, any issues reading/writing big hashes, ie: hundreds of megs? 19:39 jonrafkind: no followup.. fail 19:39 jonrafkind: oh its new.. rofl 19:39 offby1: not a pun, exactly; just a joke 19:39 jonrafkind: i thought it was an old issue, sorry 19:40 offby1: I haven't checked the source, but I assume "listof" is pretty much the same thing. 19:40 jonrafkind: well lets see.. 19:40 offby1: modulo something to avoid circularity 19:41 jonrafkind: the actual listof is more involved 19:42 jonrafkind: reading the code is hard because variable names were chosen poorly. FML 19:43 jonrafkind: why even attempt to make up names for variables if they are only place holders? might as well just use 'x1', 'x2', 'x3', etc 19:46 (quit) rekahsoft: Ping timeout: 250 seconds 19:47 (join) rekahsoft 19:48 (join) cipher 19:49 (quit) dherman: Quit: dherman 19:50 (quit) masm: Quit: Leaving. 20:00 offby1: .oO("FML"?) 20:01 jonrafkind: urban dictionary 20:01 offby1: noooo 20:02 offby1: I won't be able to un-read it then 20:03 DT``: (FML may refer to: Face Modeling Language, an XML-based language ...) 20:04 DT``: I guess that FML programmers name their variables particularly bad. 20:06 (join) dnolen 20:13 (quit) ckrailo: Quit: Computer has gone to sleep. 20:36 (quit) jonrafkind: Ping timeout: 255 seconds 20:39 (quit) mceier: Quit: leaving 20:42 (join) samth_ 20:57 (join) gienah 21:07 (join) ckrailo 21:20 (join) aalix 21:47 (join) dherman 22:18 (quit) rekahsoft: Ping timeout: 276 seconds 22:19 (join) theratking862 22:20 (join) rekahsoft 22:23 theratking862: hey guys I have a question, ive been trying to code a simple program (conways game of life) using rackets gui interface. However, I can't really figure out something 22:23 theratking862: that seems like it should be simple: a main loop type system. So far I can only update the program when send a specific event (like keypress or mousepress) 22:24 offby1: theratking862: I think you want to find some sorta timer thing 22:24 offby1: and have it send update events. 22:25 theratking862: so have a function that runs continuously, but sends update events every once in a while? 22:25 offby1: yep 22:26 offby1: dunno if that's the best way, but I suspect it'd work 22:26 theratking862: that seems like...cheating, but ill certainly try it. 22:26 theratking862: im having trouble figuring out how the whole event system works anyways 22:26 theratking862: it seems kinda magical 22:27 (quit) dherman: Quit: dherman 22:28 (quit) shachaf: Remote host closed the connection 22:28 (quit) tauntaun: Quit: Ex-Chat 22:29 offby1: I'm looking at the one GUI thing I've ever done in racket, and I don't have a timer, exactly, but in effect, I do 22:29 offby1: you could just run in a loop, computing successive generations, and redrawing after each computation. 22:30 offby1: Throw in a pause afterwards 22:30 offby1: then you woudln't need a timer. 22:30 offby1: wouldn't 22:41 Demosthenex: recursion rocks 22:42 Demosthenex: hrm, wonder if i can do keyword or optional vars in match sets 22:46 offby1: probably 22:46 theratking862: offby1: but then you couldn't have user input while the program ran, could you? 22:47 offby1: theratking862: I think you could; you just arrange callbacks for keyboard events, menu events, etc 22:47 theratking862: god I wish the docs were more intuitive for me, so far I just have events handled by overriding the canvas class 22:48 theratking862: and just having stuff happen when the canvas detects a keypress or something 22:49 offby1: I think that's how it's s'posed to be done .... 22:49 offby1: ... at least that's how I did it years ago 22:50 offby1: https://github.com/offby1/doodles/tree/master/maze 22:50 offby1: it works; I don't know how illuminating it'll be 22:50 theratking862: thanks, im taking a look now 22:52 offby1: in order to get anything to happen, you have to choose "Do something" from the menu 23:05 (quit) theratking862: Ping timeout: 250 seconds 23:11 (join) theratking862 23:16 (join) dherman 23:20 (quit) theratking862: Quit: theratking862 23:34 (quit) samth_: Ping timeout: 250 seconds 23:37 (join) shachaf 23:56 (join) mithos28