00:10 (quit) francisl: Quit: francisl 00:13 (quit) snorble_: Ping timeout: 260 seconds 00:34 (quit) lewis1711: Ping timeout: 255 seconds 00:34 (join) lewis1711 00:39 (join) sw2wolf 00:43 (quit) kofno: Remote host closed the connection 00:47 (join) jonrafkind 00:47 (quit) jonrafkind: Changing host 00:47 (join) jonrafkind 00:53 (quit) mceier: Quit: leaving 01:13 (quit) jackhammer2022: Quit: Textual IRC Client: http://www.textualapp.com/ 01:14 (join) kofno 01:22 (quit) kofno: Ping timeout: 245 seconds 01:22 sw2wolf: how to understand this code snippet: ((or/c string? input-port?) . -> . list?) ? 01:23 sw2wolf: especially . -> . 01:23 (quit) jeapostrophe: Ping timeout: 265 seconds 01:23 lewis1711: ugh 01:23 lewis1711: oh 01:23 lewis1711: it's a function that takes either a string or an input-port, and outputs a list 01:23 lewis1711: I really hate infix -> 01:23 lewis1711: (-> (or/c string? input-port?) list?) 01:24 sw2wolf: thx 01:24 lewis1711: typed racket forces you to use infix -> which is just wrong. 01:25 sw2wolf: infix -> seems strange 01:27 sw2wolf: is the space between . and -> essential in ". -> ." ? 01:28 lewis1711: think so. it works with any racket procedure IIRC 01:28 lewis1711: rudybot: (1 .+. 2) 01:28 rudybot: lewis1711: error: reference to an identifier before its definition: .+. in module: 'program 01:28 lewis1711: rudybot: (1 . + . 2) 01:28 rudybot: lewis1711: ; Value: 3 01:30 sw2wolf: thx 01:31 sw2wolf: rudybot: (cons 'a 'b) 01:31 rudybot: sw2wolf: your sandbox is ready 01:31 rudybot: sw2wolf: ; Value: (a . b) 01:31 sw2wolf: wonderful rudybot ! 01:32 lewis1711: I always found it odd that this didn't work 01:32 lewis1711: rudybot: (rest (cons 'a 'b)) 01:32 rudybot: lewis1711: error: rest: expected argument of type ; given: '(a . b) 01:32 lewis1711: rudybot: (cdr (cons 'a 'b)) 01:32 rudybot: lewis1711: ; Value: b 01:32 (quit) dca: Ping timeout: 244 seconds 01:33 sw2wolf: maybe rudybot is still not a complete REPL ? 01:35 lewis1711: doesn't work on 5.3.1 either 01:36 sw2wolf: hope racketter makes it work 01:38 asumu: `rest` is a list procedure. Intentionally doesn't work on pairs. 01:39 sw2wolf: rudybot: (rest '(1 2 3)) 01:39 rudybot: sw2wolf: ; Value: (2 3) 01:39 sw2wolf: asumu: what does rudybot mean ? 01:40 asumu: I'm not sure what you mean. 01:40 asumu: rudybot's just showing you the value that computes. 01:40 lewis1711: asumu: I guessed it might be intentional. IIRC racket tries to de-emphasies the cons cell stuff 01:41 sw2wolf: i mean what does rudybot stand for ? 01:41 asumu: The name? You should ask offby1. 01:41 sw2wolf: offby1: are you here ? 01:42 asumu: lewis1711: I don't really think it de-emphasizes cons cells. It's just that cons cells have perfectly good accessors already (car, cdr). 01:42 asumu: Although it's not always consistent, so that's not really great. 01:42 asumu: For example, `list-ref` technically works on non-lists... 01:42 asumu: rudybot: (list-ref (cons 1 #f) 1) 01:42 rudybot: asumu: your sandbox is ready 01:42 rudybot: asumu: error: list-ref: index 1 too large for list (not a proper list): '(1 . #f) 01:42 asumu: rudybot: (list-ref (cons 1 #f) 0) 01:42 rudybot: asumu: ; Value: 1 01:43 lewis1711: but first is exactly the same as cons isn't it? 01:43 lewis1711: sorry, as car 01:43 sw2wolf: rudybot: (first (cons 'a 'b)) 01:43 rudybot: sw2wolf: error: first: expected argument of type ; given: '(a . b) 01:44 asumu: It's not. `first` means "get the first element of this list". `car` means "get the first thing in the pair". 01:44 lewis1711: I always thought first/rest car/cdr was just choosing saner names, that's why I was surprised 01:44 lewis1711: (car '(1 2 3)) 01:44 asumu: Just like you wouldn't expect `head` and `fst` to do the same thing in Haskell. 01:44 lewis1711: rudybot: (car '(1 2 3)) 01:44 rudybot: lewis1711: ; Value: 1 01:44 lewis1711: yeah but haskell has tuples 01:45 lewis1711: I never use car or cdr except for pairs. I'm 2 nu skool 01:45 asumu: Pairs are tuples. 01:46 asumu: The only real difference is that in Haskell, lists are not represented with tuples. At least not in a way you can observe. 01:47 sw2wolf: rudybot: (doc 'open-input-string) 01:47 rudybot: sw2wolf: error: reference to an identifier before its definition: doc in module: 'program 01:47 asumu: rudybot: doc open-input-string 01:47 rudybot: asumu: http://docs.racket-lang.org/reference/stringport.html#(def._((quote._~23~25kernel)._open-input-string)) 01:47 asumu: sw2wolf: ^ that's how 01:48 sw2wolf: thx 01:49 sw2wolf: are there any guide to use rudybot ? 01:51 asumu: sw2wolf: private message it and say "help" 01:51 lewis1711: huh, I didn't actually know you could use "pairs" as 3 tuples 01:51 lewis1711: then you have to use the godawful cadr stuff 01:52 sw2wolf: asumu: thx 01:57 lewis1711: woah, this lib uses stuff from "scheme/foreign" 01:58 lewis1711: positively ancient 02:11 (join) mceier 02:21 (join) Kaylin 02:37 (quit) mithos28: Quit: mithos28 02:38 (join) mithos28 02:48 (quit) ambrosebs: Ping timeout: 245 seconds 02:55 (join) dca 02:58 asumu: It appears I just spent several hours trying to figure out why my code wasn't working. Did lots of printf debugging. 02:59 asumu: Then I invoked the nuclear option and just did 'raco setup -c' and rebuilt. 02:59 asumu: Now it works. :\ 02:59 asumu is sometimes very unhappy about how 'raco' chooses to compile things... 03:00 (join) cdidd 03:01 (join) hkBst 03:06 (quit) karswell: Remote host closed the connection 03:10 (quit) ormaaj: Ping timeout: 240 seconds 03:14 (quit) mithos28: Quit: mithos28 03:16 (join) karswell 03:27 jonrafkind: asumu, were you writing a #lang ? 03:27 (join) ormaaj 03:28 jonrafkind: ive found that if you have a lang and you do 'raco setup foo' the edit main.rkt and provide more stuff, the new stuff isn't seen by a user of that lang 03:28 jonrafkind: for honu i never allow it to make the 'compiled' directory while im doing development 03:29 (join) mithos28 03:30 jonrafkind: http://this-plt-life.tumblr.com/ 03:33 (join) ambrosebs 03:42 (join) tilde` 03:45 mithos28: If I have an object, is there a way to get its pointer address? 03:46 (quit) jonrafkind: Ping timeout: 260 seconds 04:02 (topic) -: Racket: http://racket-lang.org -- RacketCon videos: https://www.youtube.com/playlist?list=PLQC7pQ_gNllaY_NFQTwHFZTpjeR_PwKmb -- logs at http://racket-lang.org/irc-logs/ 04:02 (names) -: gabot rapacity didi ozzloy tilde` ambrosebs mithos28 ormaaj hkBst cdidd dca Kaylin mceier sw2wolf lewis1711 mye cataska Shviller spiderweb Shvillr Raynes Nisstyre acarrico elliottcable noelw chrxn jaimef BeLucid em Twey cky m4burns ivan\ Demosthenex bremner sid0 Haffe Shambles_ SeanTAllen noam stchang errstr dsantiago otterdam sizz sirdancealot7 parcha sethalves samth_away jschuster ChibaPet roderic tobi offby1 JStoker SHODAN Draggor antono fasta ohama xian 04:02 (names) -: friscosam majoh asumu epsil pono lusory rudybot jrslepak_neu hyko greghendershott bartbes chandler stamourv mario-goulart danking dsp @ChanServ ivan` gf3 eMBee Cryovat mattmight jamessan bartbes_ blubberdiblub felipe 04:02 (notice) calvino.freenode.net: [freenode-info] channel trolls and no channel staff around to help? please check with freenode support: http://freenode.net/faq.shtml#gettinghelp 04:03 (join) jrslepak 04:04 (quit) tilde`: Ping timeout: 250 seconds 04:09 (quit) ormaaj: Ping timeout: 276 seconds 04:09 (join) karswell 04:16 (part) sw2wolf: "ERC Version 5.3 (IRC client for Emacs)" 04:23 (join) ormaaj 04:27 (join) MightyFoo 04:27 (nick) MightyFoo -> tim-brown 04:28 tim-brown: rudybot: init typed/racket 04:28 rudybot: tim-brown: your typed/racket sandbox is ready 04:29 (join) tilde` 04:29 tim-brown: What more hinting can I provide the type checker with: 04:29 tim-brown: rudybot:(for/first: : Natural ([n : Natural (in-naturals 1)]) n) 04:29 rudybot: tim-brown: error: Type Checker: insufficient type information to typecheck. please add more type annotations in: #%top-interaction 04:30 (quit) ambrosebs: Ping timeout: 244 seconds 04:30 tim-brown: OK, so this works: 04:30 tim-brown: scratch that 04:31 tim-brown: this works: 04:32 tim-brown: rudybot: (cast (for/first: : Natural ([n (in-naturals 1)]) n) Natural) 04:32 rudybot: tim-brown: error: #:1:53: type-check: type name used out of context in: Natural 04:32 tim-brown: rudybot: init typed/racket 04:32 rudybot: tim-brown: your typed/racket sandbox is ready 04:32 tim-brown: rudybot: (cast (for/first: : Natural ([n (in-naturals 1)]) n) Natural) 04:32 rudybot: tim-brown: error: #:1:53: type-check: type name used out of context in: Natural 04:33 tim-brown: rudybot: that works in my drracket -- what's your problem? 04:33 rudybot: tim-brown: yeah I use DrRacket on my mac... 04:38 (join) bitonic 04:46 didi: How do I prevent `response/xexpr' from escaping legit html code? I have a string with html what I would like to be rendered as such. 04:50 (quit) tilde`: Read error: Connection reset by peer 04:51 (join) tilde` 04:59 didi: OK, the trick is to use `make-cdata'. 05:05 (quit) mceier: Ping timeout: 260 seconds 05:06 didi: Aha! `string->xexpr' works too. 05:06 didi: The mailing list never fails me. 05:09 didi: Hum, although `string->xexpr' doesn't seem to like sloppy html that I don't control. Oh well, `make-cdata' will do. 05:26 (join) soegaard 05:30 (quit) hkBst: Ping timeout: 250 seconds 05:31 (quit) soegaard: Quit: soegaard 05:32 (join) hkBst 05:48 (join) tilde`_ 05:51 (quit) tilde`: Ping timeout: 252 seconds 05:58 (quit) karswell: Remote host closed the connection 05:59 (quit) hkBst: Ping timeout: 255 seconds 06:00 (join) hkBst 06:00 (quit) hkBst: Changing host 06:00 (join) hkBst 06:08 (join) karswell 06:11 (join) masm 06:13 (nick) tilde`_ -> tilde` 06:14 (join) tilde`_ 06:18 (join) sw2wolf 06:21 sw2wolf: rudybot, ap regexp 06:21 rudybot: sw2wolf: you want to collect both the evens from the sublist (car l) and from the sublist (cdr l), so you have to call (cons al dl), you have to multiply (* ap dp), and sum (+ as ds). and pass all those values as argument to col. 06:21 sw2wolf: rudybot, doc regexp 06:21 rudybot: sw2wolf: http://docs.racket-lang.org/reference/regexp.html#(def._((quote._~23~25kernel)._regexp)) 06:22 sw2wolf: rudybot, (regexp-match #rx"a|b" "cat") 06:22 rudybot: sw2wolf: ; Value: ("a") 06:24 didi: My algorithm: (unless (regex-work? regex) (type-gibberish! regex)) 06:24 (join) Aune 06:25 (nick) tilde`_ -> tilde` 06:27 (quit) Kaylin: Read error: Connection reset by peer 06:36 (quit) didi: Remote host closed the connection 06:37 (join) didi 06:45 (quit) sw2wolf: Quit: Leaving 06:49 (join) sw2wolf 06:50 (quit) bitonic: Ping timeout: 250 seconds 06:54 lewis1711: dungeon before: '#hash((#(struct:posn 48 48) . #)) 06:54 lewis1711: dungeon after: (hash (posn 49 48) #) 06:54 lewis1711: why are these two printing differently? :/ 06:58 (join) nathanpc 07:02 lewis1711: they're both done with printf 07:07 (quit) sw2wolf: Remote host closed the connection 07:23 (join) bitonic 07:23 (join) tilde` 07:24 (part) lewis1711 07:30 (join) kofno 07:30 (quit) karswell: Remote host closed the connection 07:40 (join) karswell 07:45 (quit) bitonic: Ping timeout: 255 seconds 07:57 (join) dnolen 08:09 (quit) tilde`: Read error: Connection reset by peer 08:09 (join) tilde` 08:13 (quit) hkBst: Ping timeout: 245 seconds 08:13 (quit) tilde`: Read error: Connection reset by peer 08:14 (join) hkBst 08:14 (quit) hkBst: Changing host 08:14 (join) hkBst 08:14 (join) MayDaniel 08:15 (join) tilde` 08:15 (quit) tilde`: Read error: No route to host 08:20 (join) tilde` 08:26 (quit) tilde`: Read error: Connection reset by peer 08:26 (join) tilde` 08:27 (join) bitonic 08:41 (join) ambrosebs 08:44 (quit) karswell: Remote host closed the connection 08:47 (join) jeapostrophe 08:47 (quit) jeapostrophe: Changing host 08:47 (join) jeapostrophe 08:49 (join) zyoung 08:54 (join) karswell 08:55 (join) soegaard 08:57 (quit) masm: Ping timeout: 264 seconds 08:57 (join) masm1 09:11 (quit) zyoung: 09:12 (join) zyoung 09:12 (quit) zyoung: Remote host closed the connection 09:12 (join) zyoung 09:15 (quit) karswell: Remote host closed the connection 09:17 (quit) bitonic: Ping timeout: 255 seconds 09:18 (join) mizu_no_oto 09:24 (join) bitonic 09:25 (join) karswell 09:27 (join) francisl 09:34 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 09:44 (quit) ormaaj: Read error: Connection reset by peer 09:46 (join) ormaaj 09:52 (join) RacketCommitBot 09:52 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/rJBOrQ 09:52 RacketCommitBot: racket/master 4cc287f Chenxiao: Improve ftp client. Add upload, progress monitor and something else. 09:52 RacketCommitBot: racket/master e0de33a Matthew Flatt: net/ftp: make progress proc keyword, change progress protocol... 09:52 (part) RacketCommitBot 09:53 (quit) bitonic: Ping timeout: 244 seconds 09:54 (join) mizu_no_oto 10:00 (join) bitonic 10:04 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 10:07 (join) anRch 10:09 (join) myx 10:10 (join) mceier 10:11 (join) francisl_ 10:13 (quit) francisl_: Client Quit 10:14 (quit) soegaard: Quit: soegaard 10:18 (quit) karswell: Remote host closed the connection 10:23 (quit) jrslepak: Quit: What happened to Systems A through E? 10:28 (join) karswell 10:31 (quit) myx: Ping timeout: 255 seconds 10:35 (quit) dnolen: Ping timeout: 246 seconds 10:36 (join) hkBst_ 10:36 (quit) hkBst_: Changing host 10:36 (join) hkBst_ 10:37 (quit) hkBst: Ping timeout: 248 seconds 10:39 (nick) samth_away -> samth 10:43 (join) mizu_no_oto 10:45 (quit) mizu_no_oto: Client Quit 10:47 (quit) jeapostrophe: Ping timeout: 264 seconds 11:00 (join) mizu_no_oto 11:02 (quit) mizu_no_oto: Client Quit 11:05 (join) masm 11:07 (quit) masm1: Ping timeout: 250 seconds 11:09 (quit) anRch: Quit: anRch 11:15 (join) mizu_no_oto 11:19 (quit) ambrosebs: Ping timeout: 265 seconds 11:29 (join) jrslepak 11:43 (quit) jaimef: Excess Flood 11:44 (join) myx 11:45 (quit) bitonic: Ping timeout: 265 seconds 11:46 (join) jaimef 11:47 (quit) hkBst_: Quit: Konversation terminated! 11:48 (quit) karswell: Remote host closed the connection 11:49 (quit) masm: Quit: Leaving. 11:51 mithos28: My vim is now much more stable, and not crashing. Seems like the tagged part of scheme_malloc_tagged is important 11:53 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 11:55 (quit) kofno: Read error: Connection reset by peer 11:55 (join) kofno_ 11:58 (join) karswell 11:59 (join) mizu_no_oto 12:08 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 12:08 (join) bitonic 12:15 (join) tsion 12:16 (quit) tsion: Changing host 12:16 (join) tsion 12:16 stamourv: tim-brown: Rudybot uses an old version of Racket, that doesn't have `cast'. 12:17 stamourv: tim-brown: Also, `ann' should work there, instead of `cast'. `ann' doesn't have a runtime cost, while `cast' does. 12:17 stamourv: lewis1711: Did you change the printing options in DrRacket? Or change the printing parameters (I forget which one is relevant here.)? 12:21 (quit) bitonic: Ping timeout: 264 seconds 12:26 (join) jeapostrophe 12:26 (quit) jeapostrophe: Changing host 12:26 (join) jeapostrophe 12:26 (join) bitonic 12:29 (join) mizu_no_oto 12:31 (quit) tilde`: Quit: kthxbai 12:38 (quit) bitonic: Ping timeout: 255 seconds 12:42 (quit) francisl: Quit: francisl 12:43 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 12:44 (join) bitonic 12:52 (join) francisl 12:54 (quit) karswell: Remote host closed the connection 13:03 (quit) bitonic: Ping timeout: 248 seconds 13:04 (join) karswell 13:05 (quit) Nisstyre: Ping timeout: 265 seconds 13:09 (quit) Aune: Remote host closed the connection 13:11 (join) mizu_no_oto 13:14 (join) nejucomo 13:19 (join) Nisstyre 13:21 (join) jonrafkind 13:23 (quit) francisl: Quit: francisl 13:28 (join) Kaylin 13:33 (join) bitonic 13:39 (quit) bitonic: Ping timeout: 244 seconds 13:40 (join) dnolen 13:41 (quit) Demosthenex: Ping timeout: 250 seconds 13:43 (join) francisl 13:43 (join) Demosthenex 13:49 (join) dyoo 13:52 (quit) karswell: Remote host closed the connection 13:59 (join) RacketCommitBot 13:59 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/5cucJw 13:59 RacketCommitBot: racket/master 4ff4c67 Danny Yoo: Modernize cfg-parser from mzscheme to Racket libraries. 13:59 (part) RacketCommitBot 14:02 (join) karswell 14:08 (quit) mye: Quit: mye 14:09 (join) mithos28_ 14:11 (quit) karswell: Remote host closed the connection 14:11 (quit) mithos28: Ping timeout: 265 seconds 14:11 (nick) mithos28_ -> mithos28 14:20 (join) soegaard 14:21 (join) karswell 14:22 (join) tilde` 14:43 jonrafkind: jeapostrophe, fist and sound? pretty wierd.. 14:43 jeapostrophe: heh 14:43 (quit) didi: Remote host closed the connection 14:43 jeapostrophe: 1st and 2nd would be cuter 14:43 jonrafkind: hm true 14:44 (join) Blkt 14:44 jonrafkind: i wonder if the tokenizer can be changed to allow numbers to start identifiers 14:45 jonrafkind: oh wait.. you can already do that 14:45 jonrafkind: so use 1st and 2nd! 14:46 jeapostrophe: hit reply :) 14:47 jonrafkind: bikeshedding debates are for irc :p 14:51 (join) RacketCommitBot 14:51 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/XLJrcQ 14:51 RacketCommitBot: racket/master db280d0 Danny Yoo: Add scribble/doclang2 with keyword support for customization, and documentation. 14:51 (part) RacketCommitBot 15:00 (join) RacketCommitBot 15:00 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/beKX5g 15:00 RacketCommitBot: racket/master f374cb1 Danny Yoo: Add separate section to avoid conflict at scribble time. 15:00 (part) RacketCommitBot 15:04 (quit) tilde`: Ping timeout: 276 seconds 15:09 (join) tilde` 15:11 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 15:17 (quit) dyoo: Quit: dyoo 15:23 samth: jeapostrophe: any sense for why this occasionally times out: http://drdr.racket-lang.org/25892/collects/tests/racket/mzq.rktl ? 15:25 jeapostrophe: it looks like it dies in Optimization 15:26 (join) mithos28_ 15:26 jeapostrophe: maybe there's a non-deterministic jit error? 15:34 (quit) karswell: *.net *.split 15:34 (quit) tsion: *.net *.split 15:34 (quit) majoh: *.net *.split 15:34 (nick) mithos28_ -> mithos28 15:35 (join) karswell_ 15:37 greghendershott: Lately I find myself avoiding all of the above (car, cdr, first, rest) in favor of using match. 15:38 greghendershott: It usually seems so much clearer. 15:38 greghendershott: Am I being lazy and is that horribly slow or something? 15:41 (join) tsion 15:41 (quit) tsion: Changing host 15:41 (join) tsion 15:42 (join) dsevilla 15:43 (join) majoh 15:44 (join) friscosa1 15:45 samth: match is usually fast 15:46 (join) ivan`_ 15:46 (quit) tilde`: Read error: No route to host 15:46 (join) tilde` 15:47 (quit) Twey: *.net *.split 15:47 (quit) ChibaPet: *.net *.split 15:47 (quit) friscosam: *.net *.split 15:47 (quit) ivan`: *.net *.split 15:48 (join) ChibaPet 15:48 (quit) ChibaPet: Changing host 15:48 (join) ChibaPet 15:49 (nick) ivan`_ -> ivan` 15:50 (quit) karswell_: Remote host closed the connection 15:51 (join) Twey 15:57 greghendershott: if loving match is wrong, I don't want to be right 15:58 (quit) tsion: Quit: Leaving 15:59 (quit) dnolen: Remote host closed the connection 16:01 (join) karswell_ 16:05 asumu also always uses match when possible 16:17 (join) lewis1711 16:22 samth: greghendershott: more seriously, I put a lot of work into having match generate fast code 16:22 (join) mizu_no_oto 16:22 samth: most likely, it's faster than the code you would hand-write 16:23 greghendershott: maybe match should go in racket/base 16:28 (quit) karswell_: Remote host closed the connection 16:32 samth: greghendershott: `match` is a lot of code, that's why it's not there 16:37 greghendershott: ah. well maybe someday the "loader granularity" (can't think of the right term) could be finer than whole modules 16:38 (join) karswell_ 16:40 samth: greghendershott: i don't understand what you're suggesting 16:42 greghendershott: not loading unused/unreachable code 16:42 greghendershott: "I see you've required racket/string, but you're only using these 3 items out of 100. I will only load the 3." 16:46 greghendershott: I'm sure that's waaaaay easier said than done. although naively it seems like the GC kinda already does something very similar 16:54 samth: greghendershott: it all depends what you mean by "load" 17:00 greghendershott: hmm. In the re-provide idiom (core.rkt requires some modules, but only re-provides a portion of those modules), what happens with the un-re-provided stuff? 17:01 greghendershott: Is it loaded on startup and sitting there in memory, just not accessible? 17:01 greghendershott: Or not loaded (or kept very long — same difference??) at all? 17:06 (quit) karswell_: Remote host closed the connection 17:06 (quit) Demosthenex: Ping timeout: 265 seconds 17:08 (join) Demosthenex 17:10 (join) didi 17:10 (quit) kofno_: Remote host closed the connection 17:10 (join) dyoo 17:13 dyoo: 17:01: it should also be loaded, because you can do things like http://docs.racket-lang.org/reference/Namespaces.html#(def._((quote._~23~25kernel)._module-~3enamespace)) to jump into the context of the module, provided or not 17:13 (join) masm 17:13 dyoo: greghendershott: sorry, forgot to add your name to the above reply 17:16 (join) karswell_ 17:17 greghendershott: dyoo: Ah I see. So require must support some dynamic reflective features like this. Everything in the module is potentially available, could be used. 17:17 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 17:17 (quit) myx: Ping timeout: 265 seconds 17:17 dyoo: greghendershott; yeah. The "demodularizer" project that one of Jay's students is doing is meant to let you strip out unused parts of modules. 17:18 (join) mizu_no_oto 17:18 dyoo: I think Blake Johnson's the person who's spearheading it? 17:18 jeapostrophe: dyoo: "doing" should really be "done", yes it's Blake 17:18 jeapostrophe: but it will be even more useful in 1-2 weeks 17:18 dyoo: Ah, thanks! 17:19 jeapostrophe: because he's about to commit something that can RE-optimize the code once the module boundaries are done 17:19 greghendershott: dyoo: I was vaguely aware of that. That eliminates unneeded requires? 17:19 jeapostrophe: to discover more x-module inlining, etc 17:19 greghendershott: Or you said "unused parts of modules" 17:19 greghendershott: Ah 17:19 (join) francisl_ 17:19 greghendershott: With a tool like that, does racket/base serve a purpose anymore? 17:20 (quit) tilde`: Quit: kthxbai 17:20 jeapostrophe: greghendershott: yes 17:20 greghendershott: *avoided typing "is racket/base required anymore", to avoid a pun* 17:20 greghendershott: oh why? 17:20 dyoo: greghendershott: if I understand it right, it "demodularizes", so it's a whole-program transformation. 17:21 jeapostrophe: because racket uses racket/class, which has top-level code that initializes the class system. the demodularizer can't remove code that is at the top level, because you could depend on its effects 17:21 jeapostrophe: in racket/class's case, you are unlikely to depend on the effects, but demod doesn't know 17:21 (join) jao 17:21 (quit) jao: Changing host 17:21 (join) jao 17:21 jeapostrophe: i consider this an error in racket/class, it should initialize lazily 17:21 jeapostrophe: but there's not much of a reason to fix that now 17:21 jeapostrophe: who knows how many more instances of this there are 17:22 jeapostrophe: but i'd like to fix them as demod/reopt become more used 17:22 dyoo: unrelated question: is there a reason why net/uri-codec's uri-encode doesn't encode paren characters with %28 and %29? I know parens are legal and all, but they play havok with a lot of tools online that don't have the most robust URL parsers. 17:22 dyoo: and %28 and %29 should play more nicely with the outside world. 17:23 jeapostrophe: dyoo: i presume it because uri-codec implements the spec, and others don't 17:23 (quit) francisl: Ping timeout: 260 seconds 17:23 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 17:23 (quit) francisl_: Ping timeout: 260 seconds 17:24 greghendershott: Racket net/uri-codec does RFC 2396 but I needed 3986 for my AWS lib because of some chars in SQL-like queries 17:24 greghendershott: 3986 encodes a few more, like ! ' ( ) * 17:25 jeapostrophe: the two libraries could probably share code 17:25 greghendershott: https://github.com/greghendershott/aws/blob/master/util.rkt#124 17:26 greghendershott: I forgot about this, at the time I meant to suggest that net-uri/codec be enhanced (or add a flag) for 3986 17:26 greghendershott: I could do this up and make a pull request, if you want 17:26 (join) anRch 17:27 dyoo: jeapostrophe: sure, but there are a lot of important apps and sites that are known to be a bit lax. (The IRC client I'm using Colloque, for example), Stack OverFlow, Wikipedia, etc. They aren't going to change for us, so might as well compensate for spec failure. Basically, http://www.codinghorror.com/blog/2008/10/the-problem-with-urls.html 17:29 dyoo: greghendershott: yeah, would be helpful. I keep hitting this pain point whenever including Racket doc links in web sites. 17:32 greghendershott: dyoo: Prefer uri-encode with a new optional flag for 3986, or leave that as-is and add a new function named something like "uri-encode/rfc-3986" — preference either way? 17:33 greghendershott: *tries to get bikeshedding done in the requirements phase* 17:33 greghendershott: :) 17:33 dyoo: greghendershott: looking at the rest of the library, making it a parameter seems the most consistent, similar to how (current-alist-separator-mode) works 17:34 (quit) didi: Remote host closed the connection 17:34 greghendershott: dyoo: Ah, good point. 17:34 dyoo: wait, reading the documentation in http://docs.racket-lang.org/net/uri-codec.html suggests that they may be doing something already with parens. Reading... 17:35 dyoo: Hm. 17:36 dyoo: form-urlencoded-encode may be what I was looking for. 17:36 dyoo: rudybot: (require net/uri-codec) 17:36 rudybot: dyoo: your sandbox is ready 17:36 rudybot: dyoo: Done. 17:36 dyoo: rudybot: (form-urlencoded-encode "(hello world)") 17:36 rudybot: dyoo: ; Value: "%28hello+world%29" 17:36 dyoo: Ha. 17:38 dyoo: Ok, so maybe I should be asking for Scribble to use form-urlencoded-encode rather than uri-encode 17:42 (join) neilv 17:42 (join) bitonic 17:46 (join) RacketCommitBot 17:46 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/JdQK_g 17:46 RacketCommitBot: racket/master 6eef00a Matthew Flatt: raco setup: fix problem with doc index database... 17:46 (part) RacketCommitBot 17:51 (join) dnolen 17:57 dyoo: greghendershott: never mind: it looks like Scribble does its own thing with regards to escaping: it doesn't even use net/uri-codec. I'll propose this patch and see what people think. https://github.com/dyoo/racket/commit/f36c64ed1667cc44fb870d6be37b0b7fcc0418fc 17:57 rudybot: http://tinyurl.com/aj9kelw 18:03 (join) RacketCommitBot 18:03 RacketCommitBot: [racket] plt pushed 7 new commits to master: http://git.io/Qlm04A 18:03 RacketCommitBot: racket/master 5286e50 Asumu Takikawa: Minor doc fix 18:03 RacketCommitBot: racket/master 5c80743 Asumu Takikawa: Refactor to use syntax/id-table 18:03 RacketCommitBot: racket/master 2810888 Asumu Takikawa: Fix tests where type variable scoping is wrong 18:03 (part) RacketCommitBot 18:04 (quit) zyoung: Ping timeout: 250 seconds 18:07 (quit) karswell_: Read error: Connection reset by peer 18:09 (quit) jeapostrophe: Ping timeout: 276 seconds 18:15 (quit) spiderweb: Quit: ERC Version 5.3 (IRC client for Emacs) 18:17 (join) karswell_ 18:22 (join) zyoung 18:26 (join) RacketCommitBot 18:26 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/-SnVXQ 18:26 RacketCommitBot: racket/master 0c11601 Asumu Takikawa: Fix documented name of `unsafe-cons-list` 18:26 (part) RacketCommitBot 18:31 (quit) anRch: Quit: anRch 18:32 (quit) jrslepak: Quit: What happened to Systems A through E? 18:34 (join) kofno 18:34 (quit) soegaard: Quit: soegaard 18:41 lewis1711: crud, I have to resort to C for speed. time brush up on the ffi stuff 18:42 dyoo: lewis1711: what process is expensive? 18:42 (quit) kofno: Ping timeout: 260 seconds 18:42 lewis1711: dyoo: calling a C function multiple times in quick succession :) 18:43 dyoo: Huh. :) 18:43 dyoo: lewis1711: possible to batch the calls together? 18:43 lewis1711: how do you mean? can this be done from racket side? 18:44 lewis1711: the situation is a C lib, that allocates a large 2d structure, then provides a function to mutate it at each index. which means I have to loop over the structure in racket and call "mutate at x, y" loads of times 18:44 lewis1711: and each call of that has some FFI overhead 18:45 lewis1711 wonders if there is a way to declare C arrays from racket 18:47 (quit) MayDaniel: Read error: Connection reset by peer 18:47 dyoo: lewis1711: I believe so. 18:47 dyoo: checking... 18:47 lewis1711: yeah there is 18:48 dyoo: http://docs.racket-lang.org/foreign/C_Array_Types.html 18:48 lewis1711: so I should just be able to write a little helper function in C, that takes the C map, and a C flat array of values it needs, and loops through it all. maybe 18:49 dyoo: I could have sworn I saw something like this on the mailing list a few weeks ago, and that mflatt had patches in devel to make the ffi faster in simple cases like this 18:53 dyoo: potentially commit 42a0342109ae0f55f55ddfd0e505926f92d8ee1e was what I was thinking of. http://git.racket-lang.org/plt/commit/42a0342109ae0f55f55ddfd0e505926f92d8ee1e 18:53 rudybot: http://tinyurl.com/as4ean4 18:53 dyoo: lewis1711: so it might be worthwhile to see if Racket git head is faster for your application, if you're not already using it. 18:56 lewis1711: dyoo: hmm, do you have any idea when this patched racket version will be released? I mean it's not *prohibitively* slow right now, but I can see the writing on the wall, so to speak 18:56 dyoo: dunno 18:56 dyoo: You could always use the pre-release: I believe it's kept up to date with git head 18:56 dyoo: lewis1711: http://pre.racket-lang.org/ 18:57 dyoo: it's a little bit of the cutting edge, but it might be worthwhile just to see if it helps with the slowness 19:01 (join) jeapostrophe 19:01 (quit) jeapostrophe: Changing host 19:01 (join) jeapostrophe 19:03 lewis1711: hmm actually 3 * speedup won't be enough really 19:03 lewis1711: I need order of magnitude - and I know form experience it's super fast in straight C. so I'll have to crack out the ol' K&R 19:09 (quit) zyoung: Remote host closed the connection 19:11 lewis1711: what does it mean for a hash table to "hold its keys weakly?" 19:14 lewis1711: oh it's just about jc 19:16 lewis1711: *gc 19:20 dyoo: lewis1711: yes, it's a gc thing. "Weak references" 19:27 dyoo: lewis1711: the array initialization thing: might want to check on the mailing list too. I think that Neil Toronto (of the math library) ran into something like this as well. I could be wrong, but couldn't hurt to bring up the problem. 19:33 lewis1711: dyoo: I will look into it, I think it may be easier just to do it in C though 19:33 lewis1711: also, is there anyway to return a value from a hash table, and not a reference? 19:34 dyoo: lewis1711: don't understand the question yet 19:34 dyoo: can you explain in more detail? 19:35 lewis1711: dyoo: well, if you get a value from a struct, and mutate it, the struct recognises it 19:35 lewis1711: if you do the same with a hashtable, it does not 19:35 dyoo: ?! 19:35 dyoo: Let me check. 19:35 dyoo: rudybot: (define ht (make-hash)) 19:35 rudybot: dyoo: Done. 19:35 dyoo: rudybot: (define b (box "foo")) 19:35 rudybot: dyoo: Done. 19:36 dyoo: (hash-set! ht 'a-box b) 19:36 lewis1711: forgot to tell rudybot :) 19:36 dyoo: rudybot: (hash-set! ht 'a-box b) 19:36 rudybot: dyoo: Done. 19:36 dyoo: rudybot: (box-set! (hash-ref ht 'a-box) "bar") 19:36 rudybot: dyoo: error: reference to an identifier before its definition: box-set! in module: 'program 19:36 dyoo: dah... 19:36 dyoo: rudybot: (set-box! (hash-ref ht 'a-box) "bar") 19:36 rudybot: dyoo: Done. 19:37 dyoo: rudybot: (unbox b) 19:37 rudybot: dyoo: ; Value: "bar" 19:37 lewis1711: huh. so that's what boxes are for.. 19:37 dyoo: lewis1711: so I still don't quite understand what you're seeing yet. :) 19:37 dyoo: do you have an example? 19:37 lewis1711: I am having an issue when my object system, based around a hashtable. you send it a message, get the value back, mutate it, and the object doesn't care because it just returned a copy 19:38 lewis1711: dyoo: well I didn't know about the box thing :/ 19:38 dyoo: Weird. It shouldn't be returning a copy unless you've done something to explicitly copy 19:38 dyoo: If you can gist.github.com it somewhere, I could take a look 19:39 dyoo: Are you inadvertanly just set!-ing a variable? 19:39 lewis1711: dyoo: https://gist.github.com/4281456 19:39 dyoo: (Rather than mutating structure) 19:40 lewis1711: line 51 is how you get a value out from a message 19:40 lewis1711: I think your box thing will solve it 19:40 dyoo: ok, looking at it now 19:41 (join) mizu_no_oto 19:42 lewis1711: I think I have to make all the values in the hashtable boxed 19:43 dyoo: Alternatively, provide a separate setter! for your slots. 19:43 dyoo: So I see that your object supports several messages, and the last one looks like the lookup one. 19:44 dyoo: It acts as your "getter", so I think similarly you want a "setter", if I'm reading the code right. 19:44 nejucomo: Are boxes the primary way to have mutability in data structures? 19:44 dyoo: normally, structures are marked mutable or not to allow data-structure mutability 19:44 dyoo: example: 19:45 dyoo: rudybot: (struct person (name age) #:mutable) 19:45 rudybot: dyoo: Done. 19:45 lewis1711: dyoo: there is 91, that works. but my issue is not that I can't change what a slot refers to. more that I can't mutate the value that it refers to. if you get what I mean 19:45 dyoo: rudybot: (define p (person "danny" 1)) 19:45 rudybot: dyoo: Done. 19:45 nejucomo looks up (box) 19:45 dyoo: rudybot: (set-person-age! p 33) 19:45 rudybot: dyoo: Done. 19:45 dyoo: rudybot: p 19:45 rudybot: dyoo: ; Value: #(struct:person "danny" 33) 19:46 dyoo: So mutability's off in data structures by default: you turn it on either globally, or you can mark individual fields as mutable or not. 19:46 nejucomo: How can I change the browser executable used by (help) in xrepl? 19:47 dyoo: nejucomo: checking… it's the one mentioned in http://docs.racket-lang.org/net/sendurl.html if I'm not mistaken 19:48 dyoo: nejucomo: you might need to first set the browser in DrRacket preferences, after which xrepl will follow the same preference toward which browser it uses. 19:50 (join) sw2wolf 19:51 dyoo: lewis1711: you may be confusing set! ing a variable binding vs. mutating a value, so I'm trying to make sure that's not what's happening 19:51 (join) zyoung 19:53 lewis1711: dyoo: yes! I want to do the latter 19:54 lewis1711: I am not sure what objects are supposed to do when you ask them about their slots. 19:54 lewis1711: whether they should be boxed.. 19:56 nejucomo: I don't understand the need for boxes. What's your goal lewis1711? 19:57 nejucomo rereads backlog... 19:59 (quit) Kaylin: Read error: Connection reset by peer 19:59 nejucomo: lewis1711: When you say you cannot mutate the *value* a slot refers to, what do you intend? 20:00 lewis1711: if a return a value from the object, it's just a copy 20:00 nejucomo: Do you want to do something like: (let ([x (my-object 'x)]) (mutate! x)) -and have my-object be mutated? 20:00 lewis1711: mutating it does nothing 20:00 nejucomo: It's a reference, I would assume. 20:00 nejucomo: Can you give an example of mutating it? 20:00 lewis1711: something like (set! (myobject 'want-to-change) 3) 20:00 lewis1711: (my-object 'want-to-change) => 3 20:01 nejucomo: Ah, I see. 20:01 lewis1711: right now (my-object 'want-to-change) just returns a fresh value 20:01 nejucomo: You'd have to override set! in that case. 20:01 nejucomo: Can you actually do (set! (myobject 'x) 3) ? 20:01 nejucomo: Doesn't that trigger an exception? (I'm new to racket, so I could be wrong.) 20:02 nejucomo: I assumed set! was a special form whose second parameter is a symbol, and it rebinds the given binding. 20:02 nejucomo: -but now that I think about it, I remember reading about set! macros. 20:02 nejucomo: If you want that to work with set!, I think you need a set! macro. 20:02 dyoo: lewis1711: how about adding to your objects a different message: 20:02 dyoo: something like: 20:02 dyoo: (my-object 'set! 'want-to-change 3) 20:03 lewis1711: yes but how would I do that? 20:03 lewis1711: when it's just getting uboxed values from a hashtable 20:03 lewis1711: you can't mutate a value in a hashtable that I know of 20:04 dyoo: give me a sec 20:04 dyoo: rudybot: (define ht (make-hash)) 20:04 rudybot: dyoo: Done. 20:04 dyoo: rudybot: (hash-set! ht 'name "mal") 20:04 rudybot: dyoo: Done. 20:04 dyoo: rudybot: ht 20:04 rudybot: dyoo: ; Value: #hash((name . "mal")) 20:04 dyoo: rudybot: (hash-set! ht 'name "Castle") 20:04 rudybot: dyoo: Done. 20:04 dyoo: rudybot: ht 20:04 rudybot: dyoo: ; Value: #hash((name . "Castle")) 20:05 (quit) zyoung: Remote host closed the connection 20:05 lewis1711: rudybot: that's just replacing one string with another 20:05 rudybot: lewis1711: If you have no double quotes "" in your bbdb file, then I have at least some certainty that I won't break stuff when replacing all "" with nil ;) 20:06 lewis1711: ugh 20:06 lewis1711: I mean dyoo :D 20:06 dyoo: rudybot: (define s (string-copy "Rei")) 20:06 rudybot: dyoo: Done. 20:06 nejucomo: dyoo's suggestion would be one of the cases on the match in line 47, something like: [(list 'set name value) (hash-set! slots name value)] 20:06 dyoo: (hash-set! ht 'pilot s) 20:06 dyoo: rudybot: (hash-set! ht 'pilot s) 20:06 rudybot: dyoo: Done. 20:06 dyoo: rudybot: ht 20:06 rudybot: dyoo: ; Value: #hash((pilot . "Rei") (name . "Castle")) 20:07 lewis1711: what I mean is you can't do this 20:07 dyoo: rudybot: (begin (string-set! s 0 "e") (string-set! s 1 "v") (string-set! s 1 "a")) 20:07 rudybot: dyoo: error: string-set!: expects type as 3rd argument, given: "e"; other arguments were: "Rei" 0 20:07 dyoo: doh 20:07 lewis1711: rudybot: (define ht (make-hash '((v . (vector 0)))) 20:07 rudybot: lewis1711: if you're talking about logical cpus (HT) not physical cores, you can do 32 cores for 400$ (4x AMD Opteron Quad-core @ 100$ per). Not sure they make quad-CPU boards for those, though. 20:07 dyoo: rudybot: (begin (string-set! s 0 #\e) (string-set! s 1 #\v) (string-set! s 2 #\a)) 20:07 rudybot: dyoo: Done. 20:07 dyoo: rudybot: ht 20:07 rudybot: dyoo: ; Value: #hash((pilot . "eva") (name . "Castle")) 20:08 dyoo: mutable values are mutable 20:08 lewis1711: yeah but you have defined s first 20:08 asumu: Lies. "Eva" was never an Eva pilot! ;) 20:08 lewis1711: I don't know my way around that 20:09 dyoo: asumu: I know, but asuka doesn't fit in three characters 20:09 dyoo: lewis1711: let me try another example: 20:09 lewis1711: rudybot: (define ht (make-hash `((a ,(vector 0)))) 20:09 rudybot: lewis1711: And yeah, the argument that you can warp in a ht with enough energy for a storm immediately after the upgrade while other races have to wait longer is potent, but this is applies to like any protoss unit due to the warpin mechanic. 20:09 lewis1711: why does it keep doing that 20:09 lewis1711: rudybot: (define ht (make-hash `((a . ,(vector 0)))) 20:09 rudybot: lewis1711: i use ht in elisp 20:09 dyoo: no idea, and why the heck is it talking about starcraft?! 20:10 lewis1711: rudybot: (define ht (make-hash `((a . ,(vector 0))))) 20:10 rudybot: lewis1711: your sandbox is ready 20:10 rudybot: lewis1711: Done. 20:10 nejucomo: rudybot: (define ht (make-hash (list (cons 'a (vector 0))))) 20:10 rudybot: nejucomo: your sandbox is ready 20:10 rudybot: nejucomo: Done. 20:10 lewis1711: ok 20:10 lewis1711: rudybot: (vector-set! (hash-ref 'a) 0 42) 20:10 rudybot: lewis1711: error: hash-ref: expects 2 to 3 arguments, given 1: 'a 20:10 nejucomo: rudybot: (define ht (make-hash `((a . ,(vector 0))))) 20:10 rudybot: nejucomo: Done. 20:10 lewis1711: rudybot: (vector-set! (hash-ref ht 'a) 0 42) 20:10 rudybot: lewis1711: Done. 20:10 lewis1711: (hash-ref ht 'a) 20:10 lewis1711: rudybot: (hash-ref ht 'a) 20:10 rudybot: lewis1711: ; Value: #(42) 20:11 lewis1711: what? 20:11 lewis1711: oh I give up 20:11 nejucomo: Weird, the same expression works for me. 20:11 lewis1711: if that works then.. 20:11 nejucomo: lewis1711: Your lookup returned a vector. 20:11 lewis1711: maybe it's because I was trying to mutate C values 20:11 nejucomo: Did you expect that? 20:11 lewis1711: yes 20:11 lewis1711: before I did something like that 20:12 lewis1711: the moral of the story is 1. thanks 2. I have a headache 3. I need to mutate C data in C 20:12 dyoo: Oh.. Ok, context is _very_ important here. The ffi might be doing funny things: right, it's meant to bridge Racket values with C values, so it may be copying things for you. 20:12 nejucomo: But you realize why (vector-set! (hash-ref ht 'key) 0 32) is quite different from (set! (hash-ref 'key) 7) right? 20:12 (join) francisl 20:13 lewis1711: nejucomo: yeah. i was surprised it works 20:13 nejucomo: Yikes... implicit copying of C values sounds scary. ;-) 20:13 lewis1711: that would explain why it's so slow as well.. 20:13 lewis1711: if that's indeed what it's doing 20:14 nejucomo: vector-set! can be a function, and you're passing a vector as the first argument. 20:14 dyoo: lewis1711: in that case, maybe you want *pointers* to C data 20:14 nejucomo: set! cannot be a function. 20:14 dyoo: that might exactly be the problem here. 20:14 nejucomo doesn't know anything about ffi yet. 20:14 (join) Kaylin 20:17 dyoo: lewis1711: I don't have time right now to look at FFI bindings, but maybe someone else here may be able to help. 20:18 (quit) nejucomo: Quit: leaving 20:18 lewis1711: it's the exact bit i need to do in C anyway 20:18 lewis1711: the simpler the FFI bindings are, the better I reckon 20:19 dyoo: lewis1711: yup. Sorry about not knowing FFI so well; I haven't played with that library in a while. Good luck! 20:19 (quit) dyoo: Quit: dyoo 20:22 neilv: the best ffi is often avoiding ffi altogether 20:23 neilv: i finally got all the misc. c code out of one racket app, and it was a big win for performance, as well as eliminating a potential source of impossible-to-debug bizarre bugs 20:24 lewis1711: neilv: yeah that's another option. I could code this myself in racket. 20:24 lewis1711: why not, i already did a 3d bresenham 20:25 neilv: when i want to have c code, i put it in a separate process 20:27 neilv: or, if you do it without c at all, in racket, and get good performance with the "unsafe" numerical procedures (or with typed racket), the core developers will be pleased 20:41 (join) kofno_ 20:41 (quit) jonrafkind: Ping timeout: 250 seconds 20:45 (join) ambrosebs 20:51 (join) spiderweb 20:53 (join) dyoo 20:53 dyoo: asumu: ah, thought about this. "Yui" would be the _perfect_ replacement for "Rei". Or is that the other way around? :) 20:54 (quit) dyoo: Client Quit 20:54 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 20:55 (join) mizu_no_oto 20:57 (join) jonrafkind 20:59 (quit) mizu_no_oto: Client Quit 21:04 neilv: for calling a thunk as a racket gui/base app exits... i see exit;insert-on-callback, but i don't want to use the framework. set the executable-yield-handler value to insert my callback and then call the gui/base one? 21:06 (join) RacketCommitBot 21:06 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/phnfaQ 21:06 RacketCommitBot: racket/master be49c67 Danny Yoo: Documentation example for string-copy. 21:06 (part) RacketCommitBot 21:09 (join) mizu_no_oto 21:12 sw2wolf: rudybot: (set "Foo" "Bar") 21:13 rudybot: sw2wolf: ; Value: # 21:13 (quit) francisl: Quit: francisl 21:14 sw2wolf: rudybot: (string->lowercased-words "hello, world!") 21:14 rudybot: sw2wolf: VERSION Hello from outside ze channel 21:19 (quit) cdidd: Ping timeout: 255 seconds 21:25 (join) jrslepak 21:30 (quit) karswell_: Remote host closed the connection 21:35 (quit) spiderweb: Quit: ERC Version 5.3 (IRC client for Emacs) 21:37 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 21:37 lewis1711: is gensym suitable for a UUID? 21:38 jonrafkind: i suppose you could use the gensym'd value as a starting point to generate a uuid 21:38 jonrafkind: but then you might as well use (random) too 21:38 (join) gcr` 21:38 jonrafkind: actaully gensym might be a bad idea because its deterministic 21:39 gcr`: Quick question: If I (define-cstruct _AVFormatContext (...)), and then I have an _AVFormatContext-pointer, does this behave like a _pointer or a _gcpointer? Or is the distinction even necessary? 21:40 (join) karswell_ 21:41 lewis1711: my other idea was just a function that kept state, and produced numbers starting at 0. 21:41 jonrafkind: gcr`, it depends if you allocate the object from racket or not 21:42 jonrafkind: if you allocate it with (malloc) and don't use 'raw then its allocated by the gc, iirc 21:42 jonrafkind: if its allocated by some library then its a _pointer, not managed by the gc 21:43 gcr`: Hm. That makes sense. Thanks, jonrafkind 21:45 sw2wolf: rudybot: (current-error-port) 21:45 rudybot: sw2wolf: ; Value: # 21:45 neilv: you can /msg rudybot 21:45 asumu: lewis1711: if you want UUIDs, probably using a library made for that is best: http://planet.racket-lang.org/display.ss?package=uuid-v4.plt&owner=zitterbewegung 21:45 rudybot: http://tinyurl.com/6r5o57g 21:46 (join) RacketCommitBot 21:46 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/MvcRXg 21:46 RacketCommitBot: racket/master 5baf63f Matthew Flatt: syntax-local-get-shadower: fix interaction with marked bindings... 21:46 (part) RacketCommitBot 21:47 sw2wolf: neilv: /msg is good, then it canot disturb others 21:47 (quit) lusory: Quit: leaving 21:50 neilv: that uuid library code could be improved 21:52 neilv: but the rfc itself is sloppy with its language 21:54 (quit) dnolen: Ping timeout: 265 seconds 22:00 (quit) bitonic: Ping timeout: 244 seconds 22:03 (quit) kofno_: Remote host closed the connection 22:05 (join) kofno 22:13 gcr`: So another question: If the FFI is responsible for all allocation and deallocation of a struct, and if all communication of this struct is done through pointers, can I have a (define-c-struct (...)) that doesn't list all of the struct's fields? The reason is this library declares some fields at the end of the C struct as "private" and "subject to change", but it's just a convention in the header file :/ 22:13 gcr`: sorry, by "FFI is responsible for all allocation..." I really mean the remote library handles that with its allocate_foo() functions 22:14 gcr`: that return pointers* 22:14 (quit) neilv: Quit: Leaving 22:16 (quit) ambrosebs: Ping timeout: 265 seconds 22:22 (quit) karswell_: Remote host closed the connection 22:29 (join) mizu_no_oto 22:29 (quit) nathanpc: Quit: Computer has gone to sleep. 22:30 (join) francisl 22:32 (join) karswell_ 22:38 lewis1711: damn it I need better stack traces 22:44 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 22:50 (join) dnolen 22:51 (join) mizu_no_oto 22:55 (quit) Shviller: Ping timeout: 260 seconds 22:55 (join) Shviller 22:56 jonrafkind: lewis1711, have you tried errortrace? 22:57 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 22:59 (join) spiderweb 23:03 (quit) masm: Quit: Leaving. 23:04 (quit) francisl: Quit: francisl 23:09 (join) mizu_no_oto 23:09 (quit) mizu_no_oto: Client Quit 23:53 (quit) kofno: Read error: Connection reset by peer 23:55 offby1: sw2wolf: the name "rudybot" came from "rudebot", which came from "fartbot". 23:55 jonrafkind: really? 23:55 jonrafkind: rudybot, are you the grandson of fartbot? 23:55 rudybot: jonrafkind: you made that rule for great grandson which is pretty equivalent to my (grandson) rule 23:58 rudybot: I take no credit for my own name.