00:00 asumu: yoklov: I don't think the namespace thing solves referential transparency with macros. 00:00 asumu: But I could be wrong. 00:01 mithos28: What is the easiest way for patches? github pull requests? 00:01 asumu: mithos28: Yeah. 00:01 yoklov: asumu: there might be edge cases where it doesn't work, but it works extremely well in practice 00:02 asumu: I don't see why that's better than the well-understood hygiene algorithm from the 80s though. 00:02 yoklov: simplicity? 00:02 asumu: It's not actually any simpler. 00:02 asumu: Note that the hygiene algorithm is orthogonal to syntax-case or rules. 00:03 asumu: Or do you mean simple to implement? 00:04 yoklov: i'm not familiar with the algorithm 00:04 (quit) jyc: Ping timeout: 240 seconds 00:04 yoklov: i mean simple to understand 00:04 asumu: Well, you don't need to understand the algorithm to use it. 00:04 asumu: Since the macro system will just rename whatever needs to be renamed. 00:04 yoklov: using it limits what you can accomplish though, does it not? 00:05 sizz_: Fare: yes 00:05 Fare: cool 00:05 mithos28: asumu: what algorithm are you talking about? 00:05 asumu: mithos28: Dybvig algorithm. 00:06 asumu: (from the syntax-case paper) 00:06 sizz_: Fare: and there's a new edition of How to Design Programs in the works too. 00:06 yoklov: asamu: when you backquote something in clojure, it always namespace resolves the symbol, e.g. `foo becomes 'user/foo (if your namespace is user), there's no special behavior in macros 00:06 yoklov: the only difference is when it runs, which seems simpler 00:06 Fare: did they finish 2htdp or is that the new thing you're talking about? 00:06 yoklov: or at least, to me 00:06 mithos28: That is just the marking and how marks cancel, correct? 00:07 asumu: mithos28: Yeah, that's right. But the point is that works no matter how you decide to implement the transformers. 00:07 asumu: (as long as your syntax objects can store the mark information) 00:07 sizz_: Fare: no, that's what i'm talking about; its online here http://www.ccs.neu.edu/home/matthias/HtDP2e/index.html 00:08 asumu: yoklov: Yeah, but in Scheme, identifiers in macros are renamed completely automatically. How is that harder to use? 00:08 mithos28: It seems weird to call that an algorithm though as that is sort of the definition of hygiene. 00:09 asumu: mithos28: That's true and I think everyone agrees on that. It's just that it's really hard to formally define hygiene. 00:09 asumu: (at least, that's what I hear from my colleagues who know way more about this than I do :)) 00:10 mithos28: I have only read the papers, so you probably know more 00:10 yoklov: asumu: because a clojure macro is just a function which manipulates lists. there's much less magic going on 00:10 asumu: yoklov: a Racket macro is also just a function. It operates on syntax and produces syntax. 00:11 yoklov: if you can understand a function that rearranges lists, you can understand clojure/cl macros without much difficulty 00:11 yoklov: personally, i can't understand most of the racket macros i see, and have spent time trying to 00:11 asumu: rudybot: (define-syntax (foo stx) (if (free-identifier=? (stx-car stx) #'car) #'(displayln "hi") #'(displayln "hi"))) 00:11 rudybot: asumu: your sandbox is ready 00:11 rudybot: asumu: Done. 00:12 asumu: rudybot: (foo car) 00:12 rudybot: asumu: error: reference to an identifier before its definition: stx-car in module: 'program phase: 1 00:13 asumu: rudybot: (require (for-syntax syntax/stx)) 00:13 rudybot: asumu: Done. 00:14 asumu: rudybot: (define-syntax (foo stx) (if (free-identifier=? (stx-car stx) #'car) #'(displayln "hi") #'(displayln "nope"))) 00:14 rudybot: asumu: Done. 00:14 asumu: rudybot: (foo car) 00:14 rudybot: asumu: ; stdout: "nope\n" 00:14 asumu: rudybot: (foo other) 00:14 rudybot: asumu: ; stdout: "nope\n" 00:14 asumu: Ah, I wanted the cadr instead. 00:15 asumu: But yeah, you can just deconstruct syntax objects kinda like lists if you want. 00:15 asumu: (this is obviously a stupid macro, but it shows you do not need to use syntax-* at all) 00:15 yoklov: i wasn't aware of that, but there's still a lot of baggage 00:16 mithos28: yoklov: and with it comes a lot of power 00:16 yoklov: as much power as being able to freely transform the source code as a list? 00:17 asumu: Yes, just like how Lisp macros are more powerful than C macros that can freely transform lexemes. 00:17 (join) jeapostrophe 00:17 (quit) jeapostrophe: Changing host 00:17 (join) jeapostrophe 00:17 mithos28: that isn't power that is just convinence 00:17 mithos28: how does clojure handle line numbers in macros? 00:18 yoklov: clojure debugging is messy in general, and a lot of that comes from java. the line numbers seem to be right almost always though (no column information) 00:19 yoklov: that's something that racket does well, but its a pain to use 00:19 yoklov: adding the srclocs and stuff is very repetitive 00:20 asumu: Shambles_: the DrRacket bug re: aborts has been fixed (since I don't think you got the bug closure e-mail) 00:20 asumu: (by Robby) 00:21 Shambles_: asumu: Wow! That was really fast, at least compared to what I'm used to. Heck, I'm used to bug reports being ignored indefinitely. Thanks. :) 00:23 (quit) zyoung: Remote host closed the connection 00:24 yoklov: asumu: that doesn't really make sense, because C's preprocessor isn't turing complete (or even close, for that matter.), but i'm assembling the code in a language that is 00:28 mithos28: yoklov: what do you want, just that syntax-pairs work exactly like pairs with regards to car and cdr? Because that is very separate from the namespace of symbols versus marks. 00:30 yoklov: mithos28: yeah, you're right 00:30 asumu: yoklov: Yes, but a macro system that was turing complete and let you have control over all lexemes would also be pretty unfortunate. 00:30 asumu: Just like CPP is. 00:30 asumu: Point is: if your language is given too much freedom to do what it wants, you're not necessarily getting the most out of it. 00:31 asumu: Because as a programmer you cannot reason about it. 00:31 mithos28: I think you are arguing that syntax-pairs should work just like pairs, but racket is fairly strict on the standard operations not being generic and providing specialized generic versions 00:32 yoklov: mithos28: i'm in general arguing that scheme macros are overly complex 00:32 yoklov: i guess 00:32 (quit) jeapostrophe: Ping timeout: 260 seconds 00:33 yoklov: and that namespacing symbols solves that problem in a much simpler way 00:36 (join) Kaylin 00:55 (quit) yoklov: Quit: bye! 00:56 (join) jeapostrophe 00:56 (quit) jeapostrophe: Changing host 00:56 (join) jeapostrophe 01:06 (join) didi 01:06 (quit) axe_wielder: Ping timeout: 256 seconds 01:06 (quit) hash_table: Ping timeout: 256 seconds 01:06 mithos28: asumu: do you know anything about TR? I'd ask samth or stamourv but they are never on this late. 01:07 didi: Is it possible to flip the a canvas% vertically, so the bottom left becomes (0, 0)? 01:17 didi: Hum. Maybe applying a transformation to dc%? 01:17 didi: Nah, doesn't seem to be correct. 01:20 (join) jyc 01:24 (quit) surrounder: Ping timeout: 246 seconds 01:24 (join) surrounder_ 01:33 (quit) didi: Quit: ERC Version 5.3 (IRC client for Emacs) 01:50 (join) veer 02:01 (quit) Fare: Quit: Leaving 02:09 (quit) mithos28: Quit: mithos28 02:11 veer: So when I use a lexer with input-string : 02:11 veer: (a-lexer (open-input-string "\"\n\"")) 02:11 veer: I get #(struct:token tok-string "\"\n\"") 02:11 veer: which is fine. 02:11 veer: But when I use lexer with a file containg only "\n" with quotes included: 02:12 veer: (call-with-input-file "somefile" (lambda (in) (position-token-token (alexer in)))) 02:12 veer: I get #(struct:token tok-string "\"\\n\"") 02:12 veer: note the double \\ in output. 02:12 veer: Any idea why different output assuming "\n" written in a file 02:13 veer: is equivalent to "\"\n\"" in repl. 02:13 jonrafkind: the "\n" in your string is a literal newline 02:13 jonrafkind: but in a file its the two characters \ and n 02:16 veer: so open-input-string interpret \n as newline ? 02:17 jonrafkind: no, "\n" in racket makes a newline 02:17 jonrafkind: you know what i mean? when you write a string in racket you are letting the racket parser interpret the string 02:17 jonrafkind: rudybot: (eval "\n") 02:17 rudybot: jonrafkind: your sandbox is ready 02:17 rudybot: jonrafkind: ; Value: "\n" 02:18 jonrafkind: rudybot: (eval (string-ref "\n" 0)) 02:18 rudybot: jonrafkind: ; Value: #\newline 02:18 jonrafkind: if you want a literal slash followed by a newline *in racket* then you must escape it 02:18 jonrafkind: "\\n" 02:19 jonrafkind: and thats why you get an escaped backslash followed by an n when you parse a file, because racket is showing you how it knows to represent characters 02:24 veer: allright I got it , thanks jonrafkind 02:24 jonrafkind: ok 02:31 (quit) jeapostrophe: Ping timeout: 248 seconds 02:31 (join) plobzik 02:33 (quit) plobzik: Read error: Connection reset by peer 02:43 (quit) jonrafkind: Ping timeout: 246 seconds 02:46 jyc: are there any well-written open sourced racket applications I could study? 02:48 Kaylin: lots of drracket is written in racket I think http://racket-lang.org/download/ 02:50 jyc: Kaylin, should have thought of that - thanks! 02:50 Kaylin: also prob simpler would be some of the little libraries on planet 02:55 (join) hkBst 02:55 (quit) hkBst: Changing host 02:55 (join) hkBst 03:04 (nick) surrounder_ -> surrounder 03:09 (join) rahul_ 03:10 (join) __rahul__ 03:14 (join) antithesis 03:26 (quit) Kaylin: Quit: Leaving. 03:26 (join) nilyaK 03:38 (quit) kvda: Quit: Computer has gone to sleep. 03:41 (quit) rahul_: Ping timeout: 245 seconds 03:42 (quit) __rahul__: Ping timeout: 260 seconds 03:42 (join) noelw 03:49 (join) surrounder 04:00 (join) kvda 04:03 (join) __rahul__ 04:03 (join) rahul_ 04:22 (quit) kvda: Quit: Computer has gone to sleep. 04:22 (quit) surrounder: Ping timeout: 246 seconds 04:23 (join) surrounder_ 04:23 (quit) veer: Ping timeout: 260 seconds 04:31 (nick) surrounder_ -> surrounder 04:33 (quit) jyc: Read error: Connection reset by peer 04:53 (join) veer 04:59 (join) dzhus 05:00 (quit) dzhus: Remote host closed the connection 05:00 (join) dzhus 05:33 (join) kvda 05:46 (join) jesyspa 05:51 (quit) cdidd: Remote host closed the connection 05:53 (quit) kvda: Quit: Computer has gone to sleep. 05:55 (join) surrounder_ 05:56 (nick) surrounder_ -> surrounder 06:04 (join) surrounder_ 06:09 (join) mceier 06:19 (quit) surrounder_: Ping timeout: 246 seconds 06:20 (join) surrounder 06:24 (join) bitonic 06:31 (quit) nilyaK: Quit: Leaving. 07:03 (quit) dzhus: Remote host closed the connection 07:06 (quit) surrounder: Ping timeout: 246 seconds 07:06 (join) surrounder_ 07:08 (quit) antithesis: Quit: antithesis 07:19 (quit) surrounder_: Ping timeout: 246 seconds 07:19 (join) surrounder 07:31 (quit) surrounder: Ping timeout: 246 seconds 07:31 (join) surrounder 07:38 (quit) jesyspa: Quit: Lost terminal 07:38 (join) jesyspa 07:39 (quit) SHODAN: Remote host closed the connection 07:40 (quit) surrounder: Ping timeout: 246 seconds 07:40 (join) SHODAN 07:40 (join) antithesis 07:56 (join) RacketCommitBot 07:56 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/peHcLA 07:56 RacketCommitBot: [racket/master] racket/gui: fix `canvas%' implementation `on-paint' - Matthew Flatt 07:56 (part) RacketCommitBot 08:05 (quit) Shviller: Ping timeout: 248 seconds 08:05 (quit) rahul_: Ping timeout: 245 seconds 08:06 (join) Shviller 08:06 (quit) __rahul__: Ping timeout: 240 seconds 08:09 (join) kanak 08:18 (join) rahul_ 08:20 (join) __rahul__ 08:26 (join) surrounder 08:37 (quit) surrounder: Ping timeout: 246 seconds 08:38 (join) surrounder_ 08:46 (nick) surrounder_ -> surrounder 08:47 (join) getpwnam 08:48 (join) hash_table 08:49 (join) zyoung 08:53 (join) aidy 09:02 (join) snearch 09:02 (join) dnolen 09:13 (quit) antithesis: Ping timeout: 246 seconds 09:18 (join) surrounder_ 09:25 (join) plobzik 09:26 (join) netrino 09:27 (quit) plobzik: Read error: Connection reset by peer 09:29 (quit) hash_table: Ping timeout: 246 seconds 09:29 (quit) getpwnam: Ping timeout: 246 seconds 09:29 (join) antithesis 09:47 (quit) surrounder_: Ping timeout: 246 seconds 09:48 (join) surrounder 09:52 (join) noam__ 09:54 (quit) noam: Ping timeout: 260 seconds 09:54 (quit) noam__: Read error: Connection reset by peer 09:54 (join) noam__ 09:55 (quit) noam__: Read error: Connection reset by peer 09:55 (join) noam__ 09:58 (quit) noam__: Read error: Connection reset by peer 09:58 (join) noam__ 09:59 (quit) noam__: Read error: Connection reset by peer 09:59 (part) aidy 09:59 (join) noam__ 10:01 (quit) veer: Quit: Leaving 10:07 (quit) surrounder: Ping timeout: 246 seconds 10:07 (join) masm 10:08 (quit) acarrico: Ping timeout: 245 seconds 10:08 (join) surrounder 10:11 (quit) snearch: Quit: Verlassend 10:11 (join) jrslepak 10:12 (join) mithos28 10:13 samth: mithos28: merging your pull req now 10:15 mithos28: samth: thanks, I'll have another one for the polymorphic struct problem soon as well, just need to add test cases and test it 10:15 samth: mithos28: wonderful 10:16 (join) RacketCommitBot 10:16 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/8O1qLg 10:16 RacketCommitBot: [racket/master] Add support for multiple provides of the same identifier in TR. - Eric Dobson 10:16 (part) RacketCommitBot 10:16 (join) GrayMatterComput 10:16 mithos28: with regards to rename-transfromers, I originally thought it would be possible because you can examine the rename transformer and instead export a rename-transformer to a safe identifier 10:16 samth: mithos28: right, you could do that 10:17 samth: you'd have to treat the targets of rename-transformers as exporte 10:17 samth: d 10:17 samth: but there's a more general solution that i know how to do 10:17 samth: just haven't done it yet 10:17 samth: that will support arbitrary macros 10:18 mithos28: great, then I think that pr can be folded into that 10:18 GrayMatterComput: Hi all, does anyone know how to use _list or equivilent with ffi in Racket v5.1.3 or should I just upgrade my package to 5.2.1 (using Ubuntu 12.04) 10:20 (join) acarrico 10:21 (join) gridaphobe 10:24 (join) anRch 10:26 GrayMatterComput: Anyone? Basically, I finally realized that 5.2.1 has support for _list, _vector, etc but 5.1.3 does not. How can you send a list as a parameter to a C method in this version (without _list)? 10:27 mithos28: Upgrading seems like an easy method, is there a reason it is not? 10:28 GrayMatterComput: I would like to stick to the default packages from Ubuntu 12.04, which is currently Racket 5.1.3. 10:30 GrayMatterComput: This is for xpilot-ai (xpilot-ai.org) btw :) 10:30 mithos28: In that you don't want to install it manually or that you only want packages from the main repo? There is a ppa with newer versions that should make it painless. 10:32 mithos28: or are you trying to release something that the will work with the default packages? 10:33 GrayMatterComput: We were hoping the release would only be based on the main repo 10:34 GrayMatterComput: it isn't a huge deal to install the ppa, but I was curious as to how lists were passed before _list 10:34 samth: GrayMatterComput: you should ask on the mailing list 10:34 mithos28: _list is in 5.1.3, is there a problem with the version that is there? 10:34 mithos28: http://download.racket-lang.org/docs/5.1.3/html/foreign/foreign_procedures.html?q=ffi#(form._((lib._ffi/unsafe..rkt).__list)) 10:34 rudybot: http://tinyurl.com/bmosltf 10:36 GrayMatterComput: I get _list: bad syntax in: _list 10:36 mithos28: are you using it inside a _fun 10:36 GrayMatterComput: all my other ffi stuff works great though 10:36 GrayMatterComput: yep 10:36 GrayMatterComput: is this right? (get-ffi-obj "start" ai (_fun _int _list -> _int) 10:37 mithos28: no 10:37 mithos28: you need (_list o _int) or something similar 10:38 mithos28: the o is for output saying that you are only passing in values with that argument, and the _int is saying what values are in the list 10:39 (join) getpwnam 10:39 (join) hash_table 10:40 GrayMatterComput: alright, then I still get _list: bad syntax in: (_list o _string) for (get-ffi-obj "start" ai (_fun _int (_list o _string) -> _int) 10:41 GrayMatterComput: with an i instead of o, it segfaults 10:41 mithos28: at that point, or at calling it point? 10:42 mithos28: I would expect when you call the function 10:42 mithos28: I messed up i and o, you want i 10:43 mithos28: and o requires the length which explains why it was bad syntax 10:43 mithos28: Are you sure you are calling the c function with the correct arguments? 10:45 GrayMatterComput: the arguments are correct (I wrote the function), it's basically argv and argc 10:46 mithos28: and it doesn't segfault when called from the command line? 10:46 GrayMatterComput: the segfault is from tying to use the value i get, because instead of reading "xpilot-ng-x11" (or w/e) when it gets to C, it reads ���� 10:47 mithos28: you are returning an int but that sounds like you are returning a string 10:47 mithos28: can you paste the c and racket code somewhere 10:48 GrayMatterComput: the symbols are from printf(argv[0]) in C, argv being the list that I passed from scheme 10:49 (quit) antithesis: Remote host closed the connection 10:49 GrayMatterComput: sure, I can upload the code in a minute 10:51 GrayMatterComput: http://xpilot-ai.org/downloads/RACKET/ 10:52 (quit) asumu: Ping timeout: 248 seconds 10:52 GrayMatterComput: the method start is at the bottom of the .c file 10:52 (join) aidy 10:52 mithos28: where do you call the ffi function 10:53 GrayMatterComput: the user would call it in their bot, so at the end of Spinner.rkt 10:53 mithos28: found it, on another note you should try using modules instead of include 10:54 GrayMatterComput: yeah, that was my next thing to look into after I get this working ><; 10:54 (join) asumu 10:54 mithos28: why are you passing in the function loop to an int value? 10:54 GrayMatterComput: I'm not 10:55 mithos28: it looks like you are. you define the function loop (define (loop) (turnLeft 1)) and then call (start loop ...) 10:56 GrayMatterComput: if you look at rktAI.rkt, start (for racket) takes a function and a list, start (for c) takes an int and list 10:56 (quit) anRch: Read error: Connection reset by peer 10:56 mithos28: ah, missed that 10:56 (join) anRch 10:56 GrayMatterComput: np, the naming is a bit confusing 10:57 mithos28: and the first print statement is what is corrupted? 10:57 GrayMatterComput: yes 10:58 GrayMatterComput: ARGC: 3 ARGV[0]: ���� 10:58 (join) tim-brown 10:59 GrayMatterComput: right at the beginning of start in C 10:59 mithos28: can you try casting the pointers to ints and printing those 11:00 mithos28: that would confirm that sane values are getting passed through 11:00 GrayMatterComput: so, like printf("ARGC: %d\nARGV[0]: %s\d",argc,(int)argv[0]); ? 11:01 mithos28: need to change the %s to a %d but yes 11:01 mithos28: and can you add argv[1] and 2 11:01 mithos28: as the values should all look similar 11:01 GrayMatterComput: yep (and yeh, I changed n by accident 11:01 (quit) elliottcable: Remote host closed the connection 11:02 (join) elliottcable 11:03 GrayMatterComput: OH, WAIT. It might work now >.> I will send you cookies 11:03 mithos28: did you forget to recompile the C? 11:05 (join) jeapostrophe 11:05 (quit) jeapostrophe: Changing host 11:05 (join) jeapostrophe 11:05 GrayMatterComput: no, it must have been something in Racket I fouled up trying to fix it, but now I get ARGC: 3 ARGV[0]: xpilot-ng-x11 ARGV[1]: -name ARGV[2]: Spinner and the bot is named correctly 11:06 mithos28: ok, glad to help. C is annoying to debug 11:08 GrayMatterComput: honestly, I have the most difficult time with Racket ><; I typically program in C and Python (then Java and all those silly web languages and then Scheme/Racket) 11:08 GrayMatterComput: It's all those parentheses... anyway, many thanks, for what it's worth, I shall credit you in our final rkt file 11:14 (part) GrayMatterComput 11:21 (join) RacketCommitBot 11:21 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/RRFmGg 11:21 RacketCommitBot: [racket/master] further correction to tests/gracket/blits prop - Matthew Flatt 11:21 RacketCommitBot: [racket/master] configure: use installed `libtool' by default - Matthew Flatt 11:21 RacketCommitBot: [racket/master] ffi/unsafe: fix arithmetic overflow and representation - Matthew Flatt 11:21 (part) RacketCommitBot 11:36 (quit) netrino: Ping timeout: 240 seconds 11:44 (quit) jeapostrophe: Ping timeout: 245 seconds 11:45 (join) aalix 11:46 (quit) acarrico: Ping timeout: 252 seconds 11:49 (join) netrino 11:49 (quit) sstrickl: Quit: sstrickl 11:51 mithos28: samth: pull request sent, tests are still running 11:51 samth: mithos28: great 11:52 (quit) dnolen: Ping timeout: 250 seconds 11:56 (join) RacketCommitBot 11:56 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/4KoCBA 11:56 RacketCommitBot: [racket/master] adjust the timeouts to two drracket tests and add a little syncronization help in a third - Robby Findler 11:56 RacketCommitBot: [racket/master] adjust redex error message tests to match singular/plural fixes in - Robby Findler 11:56 (part) RacketCommitBot 11:58 (join) cdidd 11:59 (join) acarrico 12:08 (quit) anRch: Quit: anRch 12:21 (quit) noelw: Quit: noelw 12:25 (quit) noam__: Read error: Connection reset by peer 12:25 (join) noam__ 12:25 mithos28: samth: tests passed 12:26 (quit) noam__: Read error: Connection reset by peer 12:26 (join) noam__ 12:27 (quit) noam__: Read error: Connection reset by peer 12:27 (join) noam__ 12:28 (quit) noam__: Read error: Connection reset by peer 12:28 (join) noam__ 12:31 (quit) noam__: Read error: Connection reset by peer 12:32 (join) noam__ 12:33 (quit) noam__: Read error: Connection reset by peer 12:33 (join) noam__ 12:42 (quit) hkBst: Quit: Konversation terminated! 13:03 samth: mithos28: that was a silly oversight on my part, apparently 13:07 (quit) tim-brown: Remote host closed the connection 13:16 (quit) noam__: Read error: Connection reset by peer 13:16 (join) noam__ 13:17 (quit) noam__: Read error: Connection reset by peer 13:17 (join) snearch 13:18 (join) noam__ 13:18 (join) antithesis 13:18 (quit) noam__: Read error: Connection reset by peer 13:19 (join) noam__ 13:20 (join) jonrafkind 13:25 (quit) surrounder: Ping timeout: 246 seconds 13:26 (join) surrounder 13:27 (join) RacketCommitBot 13:27 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/V0YDOw 13:27 RacketCommitBot: [racket/master] Attach struct info to constructor for polymorphic TR structs. - Eric Dobson 13:27 (part) RacketCommitBot 13:27 samth: eli: please close pull req 105 and 106 13:50 (join) jacius 14:09 (quit) rahul_: Ping timeout: 250 seconds 14:10 (quit) __rahul__: Ping timeout: 265 seconds 14:22 (join) anRch 14:22 (quit) snearch: Quit: Verlassend 14:22 (join) __rahul__ 14:22 (join) rahul__ 14:23 (quit) surrounder: Ping timeout: 246 seconds 14:24 (join) wtetzner 14:25 (join) surrounder 14:29 (quit) jrslepak: Quit: This computer has gone to sleep 14:54 (join) dnolen 15:10 (quit) netrino: Ping timeout: 250 seconds 15:16 (quit) anRch: Quit: anRch 15:18 (join) netrino 16:20 (join) yoklov 16:32 (join) ynniv 16:33 (quit) yoklov: Quit: bye! 16:34 (join) Fare 16:40 (join) jeapostrophe 16:40 (quit) jeapostrophe: Changing host 16:40 (join) jeapostrophe 16:43 (quit) acarrico: Ping timeout: 244 seconds 16:47 (join) acarrico 17:09 (join) zyoung_ 17:11 (quit) zyoung: Read error: Operation timed out 17:14 (quit) hash_table: Ping timeout: 244 seconds 17:14 (quit) getpwnam: Ping timeout: 244 seconds 17:24 (quit) netrino: Quit: Ave! 17:29 (quit) antithesis: Quit: antithesis 17:35 (quit) Fare: Quit: Leaving 17:37 (quit) ynniv: Quit: ynniv 17:41 (join) yoklov 17:41 (join) yoklov_ 17:42 (part) yoklov_ 17:47 (quit) mceier: Quit: leaving 17:51 (quit) zyoung_: Remote host closed the connection 17:51 (join) kreol[Ukr] 17:52 (join) zyoung 17:54 (quit) dnolen: Ping timeout: 250 seconds 17:54 (quit) gridaphobe: Remote host closed the connection 17:56 (quit) rahul__: Ping timeout: 244 seconds 17:56 (quit) __rahul__: Ping timeout: 245 seconds 17:59 (join) nilyaK 18:09 (join) zyoung_ 18:09 jeapostrophe: samth_away: stamourv: ping 18:12 (quit) zyoung: Ping timeout: 244 seconds 18:13 (quit) zyoung_: Ping timeout: 256 seconds 18:14 (quit) nilyaK: Ping timeout: 252 seconds 18:16 stamourv: jeapostrophe: pong 18:16 stamourv: (But leaving in ~15 mins) 18:16 jeapostrophe: I'm sending you an email... probably better form anyways :) 18:16 jeapostrophe: it can wait till tomorrow/whenever you can respond 18:16 jeapostrophe: thanks tho 18:16 stamourv: Ok. 18:17 (join) jyc 18:19 (join) getpwnam 18:20 (join) hash_table 18:24 (quit) jyc: Read error: Connection reset by peer 18:24 (join) Kaylin 18:35 (quit) Kaylin: Quit: Leaving. 18:38 (join) zyoung 19:02 friscosam: is there a stream match expander already in racket? 19:13 jeapostrophe: friscosam: not to my knowledge 19:18 (join) antono 19:23 (quit) masm: Quit: Leaving. 19:24 (join) masm 19:25 (quit) jonrafkind: Ping timeout: 260 seconds 20:04 (join) dnolen 20:05 (quit) jacius: Remote host closed the connection 20:18 (join) kvda 20:19 (quit) jeapostrophe: Ping timeout: 252 seconds 20:26 Shambles_: friscosam: What is a stream match expander? 20:28 Shambles_: I'm sort of worried that I seem to be in the extreme minority that /likes/ the very minimal and regular syntax in Lisp- and Forth-likes. Also a bit surprised to see people complaining about the parens here. 20:29 (join) jrslepak 20:31 ChibaPet: No, that's what draws in most people I think. 20:32 ChibaPet: Simplicity, uniformity. 20:32 Shambles_: So far when they're brought up in this channel about all I hear are the complaints, not people saying they like it. 20:34 bremner: I think most people think saying I like lisp in a lisp channel is a bit pointless. 20:34 Shambles_: I absolutely adore knowing "this will happen, and then this will happen" without looking up some godforsaken table of operator priorities (for anything outside basic mathematics), or having to be very careful about how I write things, because the syntax is a minefield. Heck, in Racket, and Common Lisp, even the order of evaluation of arguments is documented. Can't say that for most languages, and might be bad taste to depen 20:35 ChibaPet: Saying I like Perl in a Lisp channel, now... :P 20:35 Shambles_: XD 20:35 bremner: I like perl. 20:36 ChibaPet: Same here, although some of the syntax for nested indirection makes me twitch. 20:36 Shambles_: I like that Perl looks somewhat less like opening a executable in a text editor than APL. :) 20:36 bremner: yeah, true enough. 20:36 bremner: (about the indirection) 20:36 (quit) Shvillr: Ping timeout: 244 seconds 20:36 (join) Shvillr 20:37 Shambles_: Thoug APL and J do at least have a nice, simple, defined evaluation order. 20:37 bremner: the J source code is kindof sad 20:38 Shambles_: bremner: Howso? 20:38 bremner: just awful coding style IMHO. and remember, I like perl. 20:38 Shambles_: :D 20:43 Shambles_: Is there much interest in other back-ends for Racket, like Whalesong? I can think of a few applications that embed Perl (Pidgin) or Python (Blender, Gimp (though there is Guile as a option there), Inkscape, Scribus...) that it might be nice to run Racket in. 20:44 bremner: Shambles_: you can embed "real" racket, as well 20:45 Shambles_: bremner: I suppose so, if they'd accept the patches. Pidgin has become hostile to embedding anything else. They want everybody to just use Perl or D-BUS. Of course D-BUS doesn't exist on Windows. I'm not sure if it exists/works on Mac OS X either. 20:46 jrslepak: Shambles_: download the J source code and take a look at it 20:47 bremner: jrslepak: heh, you've been scarred by it too? 20:47 bremner: I remember thinking oh, maybe I should package that for Debian 20:47 jrslepak: bremner: I was looking through it this morning... can't remember what I was looking for 20:48 jrslepak: not sure I _want_ to remember 20:49 Shambles_: I notice a intense hatred of whitespace and meaningful names, and a love of the C preprocessor. None of this surprises me given the typical APL programming style. 20:50 Shambles_: I was more expecting all of the code to be formatted into different orgami animals or something else suitable for the IOCCC. 20:50 jrslepak: and the "hatred of … meaningful names" even carries into the file names 20:53 Shambles_: Yes. Thou shalt not use names longer than 2 characters. :P 20:53 Shambles_: I'm quite impressed with some of the preprocessor abuse. I didn't know some of this would even work. 20:53 Shambles_: And here I thought I was clever for knowing you could put things between the 'then' block and the 'else'. 20:54 Shambles_: Imagine what they could have done with C++ template metaprogramming! 20:55 ChibaPet: The worst source code I've ever seen was ... well, proprietary. The worst publically available source I've ever seen was procmail. 20:55 jrslepak: "typedef A (*AF)(); 20:57 Shambles_: When I last looked a lot of X Window source was ... really gross. 20:57 Shambles_: I last looked in the late 90's though. 20:57 jrslepak: and then, a few lines later, "typedef A X;" 20:58 Shambles_: Well, hey, if you're not going to use names longer than two characters, you have to reuse them eventually! ;) 20:58 jrslepak: typedef struct {I k,flag,m,t,c,n,r,s[1];}* A; 21:00 Shambles_: Funny thing is, some bad source isn't obvious. I had never run into bad source code that /appeared/ to be well written until I worked on that last C++ project. Everything had nice easy to read comments, and meaningful variable names. 21:01 Shambles_: On the downside, one class was over 8,500 lines, they decided to avoid multithreading by making everything one huge state machine, and it wasn't so much designed as random bits glued together until it more or less did what you wanted. 21:02 Shambles_: The FSM aspect made it super fun to work on. The place where something was being fiddled or freed might be a *huge* distance (entire other module (i.e. directory of other files)) from where it was. allocated. 21:03 (join) jyc 21:03 Shambles_: It linked to both wxWindow and Qt, but didn't use either one for a GUI. It used its own GUI toolkit. It also linked to DirectX, but used OpenGL for graphics. It used FMOD for sound. 21:03 Shambles_: I can't tell you what it used those libraries for. I never could figure it out, except that it wouldn't build without them. 21:03 jrslepak: oh... well, that's what I was about to ask 21:05 Shambles_: I'm not sure what situation could produce code like this. My best guess was somebody in management had some brains and decided to make and enforce a coding style. That could explain the surface seeming to be good, while it was all nasty inside. 21:05 Shambles_: Following the word, but not the spirit, of the law. :P 21:08 (quit) dnolen: Ping timeout: 246 seconds 21:49 (join) jacius 22:02 (quit) cky: Quit: WeeChat 0.3.6 22:02 (join) Fare 22:05 (join) cky 22:13 (quit) bitonic: Ping timeout: 252 seconds 22:13 (quit) cky: Quit: WeeChat 0.3.6 22:14 (join) cky 22:14 (join) bitonic 22:24 (quit) masm: Quit: Leaving. 22:27 (quit) jesyspa: Quit: leaving 22:30 (join) jonrafkind 22:37 (quit) bitonic: Ping timeout: 252 seconds 22:38 (join) bitonic 22:48 friscosam: Shambles_: for the match form you can make new 'matchers' using define-match-expander. I was asking if someone had already written a 'matcher' for streams 22:48 friscosam: I'm converting some code that uses lists to uses streams, and it would be convenient 22:49 Shambles_: friscosam: I see. You went from lists to streams to make it more general? 23:03 friscosam: I was actually trying to introduce some laziness 23:03 (part) aidy 23:08 (quit) Fare: Ping timeout: 246 seconds 23:15 (join) jeapostrophe 23:15 (quit) jeapostrophe: Changing host 23:15 (join) jeapostrophe 23:16 (join) antithesis 23:18 (quit) yoklov: Quit: computer sleeping 23:20 (join) vu3rdd 23:20 (quit) vu3rdd: Changing host 23:20 (join) vu3rdd 23:22 (join) Fare 23:30 (quit) jeapostrophe: Ping timeout: 252 seconds 23:33 (quit) aalix: 23:39 (join) Kaylin 23:40 mithos28: Can anyone give me an example of in which TypedValue is needed in TR to maintain safety? 23:42 (quit) jyc: Read error: Connection reset by peer