00:07 (quit) Nisstyre: Remote host closed the connection 00:15 (join) RacketCommitBot 00:15 RacketCommitBot: [racket] plt created release from master (+0 new commits): http://git.io/7LCuTQ 00:15 (part) RacketCommitBot 00:15 (quit) dnolen: Ping timeout: 248 seconds 00:17 (join) mye_ 00:19 (join) RacketCommitBot 00:19 RacketCommitBot: [racket] plt pushed 1 new commit to release: http://git.io/SqJfcg 00:19 RacketCommitBot: racket/release b335a3d Ryan Culpepper: Alpha version number for the v5.3.2 release 00:19 (part) RacketCommitBot 00:19 (quit) mye: Ping timeout: 248 seconds 00:19 (nick) mye_ -> mye 00:23 (quit) ambrosebs: Remote host closed the connection 00:33 (quit) myx: Ping timeout: 240 seconds 00:44 (quit) jao: Ping timeout: 248 seconds 00:53 (quit) kofno: Remote host closed the connection 00:58 (quit) mceier: Quit: leaving 00:58 (quit) dsantiago: Quit: Computer has gone to sleep. 01:01 (join) dsantiago 01:07 (join) teslalam` 01:13 (join) mattmight 01:14 (quit) teslalamp: *.net *.split 01:14 (quit) Sgeo: *.net *.split 01:14 (quit) majoh: *.net *.split 01:14 (quit) mattmigh`: *.net *.split 01:17 (join) ambrosebs 01:17 (join) majoh 01:20 (join) bniels 01:20 (join) Sgeo 01:22 (join) Nisstyre 01:22 (quit) Nisstyre: Changing host 01:22 (join) Nisstyre 01:24 (join) kofno 01:33 (join) Sgeo_ 01:34 (quit) kofno: Ping timeout: 248 seconds 01:34 (quit) Sgeo: Ping timeout: 248 seconds 01:41 (quit) Kaylin: Quit: Leaving. 02:02 (join) RacketCommitBot 02:02 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/o59pKA 02:02 RacketCommitBot: racket/master 3e3283a Robby Findler: adjust drracket so check syntax can add its preferences itself... 02:02 (part) RacketCommitBot 02:05 Sgeo_: How does graphical debugging interact with multithreading? 02:12 (join) mhi^ 02:14 (join) mceier 02:16 (quit) ambrosebs: Remote host closed the connection 02:19 (quit) francisl: Quit: francisl 02:26 (quit) Fare: Ping timeout: 264 seconds 02:30 (join) mithos28 02:33 (quit) serhart: Quit: Leaving. 02:48 (join) sw2wolf 02:55 (quit) dsantiago: Ping timeout: 252 seconds 02:56 (join) dsantiago 02:57 (join) Sizur 02:58 Sizur: Greetings racketeers! 03:05 Sgeo_: Hi Sizur 03:13 (quit) mithos28: Quit: mithos28 03:22 (part) sw2wolf: "ERC Version 5.3 (IRC client for Emacs)" 03:30 (join) RacketCommitBot 03:30 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/2DStxQ 03:30 RacketCommitBot: racket/master 3f65f91 Eli Barzilay: New Racket version 5.3.2.1. 03:30 (part) RacketCommitBot 03:43 (join) ambrosebs 03:57 (quit) neilv: Ping timeout: 260 seconds 04:00 (quit) ambrosebs: Remote host closed the connection 04:01 (join) bitonic 04:27 Sgeo_: "The `parameterize' form accepts only parameter procedures 04:27 Sgeo_: created by `make-parameter', not arbitrary procedures that 04:27 Sgeo_: accept 0 or 1 arguments." 04:27 Sgeo_: Hmm, why was that change made? 04:27 Sgeo_: It was made in 3xx 04:29 (join) kofno 04:30 (part) mhi^ 04:33 (quit) kofno: Ping timeout: 248 seconds 04:38 Sgeo_: Is there a paper describing the motivation behind Racket's OO system? 04:38 Sgeo_: Because if it's "make Java programmers comfortable" I will scream 04:45 (join) noelw 05:00 (quit) teslalam`: Quit: ERC Version 5.3 (IRC client for Emacs) 05:07 (join) cdidd 05:55 (join) kvda 06:03 (quit) noelw: Quit: noelw 06:25 (join) ambrosebs 06:37 (join) anonymous 06:42 (join) myx 06:46 (quit) bitonic: Ping timeout: 256 seconds 06:48 (join) bitonic 07:07 (join) jeapostrophe 07:07 (quit) jeapostrophe: Changing host 07:07 (join) jeapostrophe 07:10 asumu: Sgeo_: http://www.ccs.neu.edu/racket/pubs/asplas06-fff.pdf 07:15 (quit) jeapostrophe: Ping timeout: 240 seconds 07:27 (join) jeapostrophe 07:34 (join) serhart 07:35 (quit) kvda: Quit: x___x 07:42 bremner: Is there a way to send a file to a running DrRacket, say to open it in a new tab? 08:04 (quit) jrslepak: Quit: What happened to Systems A through E? 08:06 (quit) anonymous: Quit: Lost terminal 08:09 (quit) serhart: Quit: Leaving. 08:13 (join) Fare 08:18 (join) francisl 08:26 Sgeo_: Racket has both mutable and immutable strings? 08:26 Sgeo_: :/ 08:27 bremner: where are the mutable ones, in some legacy language? 08:27 bremner: hmm. depends on your opinion of r6rs 08:28 Sgeo_: "A string can be mutable or immutable. When an immutable string is provided to a procedure like string-set!, the exn:fail:contract exception is raised. String constants generated by the default reader (see Reading Strings) are immutable, and they are interned in read-syntax mode." 08:28 bremner: just reading that page ;) 08:29 bremner: my attention span wasn't long enough to see what actually mutated them 08:30 (quit) bniels: Remote host closed the connection 08:30 asumu: They're mutable by default, I think, which is a mistake inherited from Scheme. 08:31 asumu: Well, non-literal strings, I mean. 08:32 Sgeo_: I'm trying (hash-ref (hash) 'oops) 08:32 Sgeo_: Which errors, but then the REPL doesn't seem to come back after it 08:32 Sgeo_: Oh hmm, now it is 08:35 (join) jrslepak 08:40 (quit) bitonic: Ping timeout: 240 seconds 08:42 (join) mizu_no_oto 08:42 (join) jao 08:43 (quit) jao: Changing host 08:43 (join) jao 08:43 (join) anonymous 08:46 (join) bitonic 08:54 (quit) bitonic: Ping timeout: 265 seconds 08:56 (join) didi 08:57 (quit) francisl: Quit: francisl 09:04 (join) noelw 09:11 (join) bitonic 09:11 (join) bniels 09:12 (join) mjs2600 09:24 (quit) noelw: Quit: noelw 09:27 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 09:30 (join) Nisstyre-laptop 09:36 (join) kofno 09:37 (quit) Nisstyre-laptop: Quit: Leaving 09:39 (join) mjs2600` 09:41 (quit) mjs2600: Ping timeout: 248 seconds 09:42 (join) mizu_no_oto 09:43 (join) RacketCommitBot 09:43 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/gdemYg 09:43 RacketCommitBot: racket/master b0f3f03 Jay McCarthy: Removing exotic ports for PNRs 09:43 (part) RacketCommitBot 09:44 (join) francisl 09:44 (join) mye 09:44 (join) tilde` 09:50 (join) anRch 09:55 (join) klr_ 09:58 (quit) karswell: Remote host closed the connection 10:00 (quit) francisl: Quit: francisl 10:03 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 10:03 (join) serhart 10:03 (quit) didi: Ping timeout: 246 seconds 10:06 (join) francisl 10:08 (join) karswell 10:13 (quit) bniels: Quit: WeeChat 0.3.8 10:16 (join) dnolen 10:28 (quit) mjs2600`: Read error: Connection reset by peer 10:29 (join) mjs2600` 10:31 (quit) kofno: Read error: Connection reset by peer 10:32 (join) kofno 10:37 Sgeo_: Hrm 10:37 Sgeo_: Can I write my own "pseudo random number generator"? 10:37 Sgeo_: In particular, I want to hook it up to a real random number generator like HotBits 10:38 (quit) mceier: Quit: leaving 10:39 anonymous: Sgeo_: what do you mean? You can redefine even "define" 10:39 Sgeo_: Well, random seems to take an RNG as an argument 10:39 Sgeo_: Can I make something that would be compatible with random 10:45 anonymous: (define (random ignored-argument) (your-own-random)) 10:46 (join) RacketCommitBot 10:46 RacketCommitBot: [racket] plt pushed 1 new commit to release: http://git.io/zTtSqw 10:46 RacketCommitBot: racket/release 1a9d203 Eli Barzilay: New Racket version 5.3.1.900. 10:46 (part) RacketCommitBot 10:46 (quit) jeapostrophe: Ping timeout: 276 seconds 10:46 (join) mizu_no_oto 10:47 anonymous: ? 10:47 anonymous haven't read it all, maybe that's a bad code 10:47 anonymous: s/a/ 10:48 (quit) dented42: Read error: Operation timed out 10:48 Sgeo_: I don't want to redefine random, I want to make my own kind of structure that I can pass to the built-in random 10:51 (quit) Nisstyre: Ping timeout: 260 seconds 10:53 (quit) dnolen: Read error: Operation timed out 10:54 (join) dented42 11:06 (join) jeapostrophe 11:06 (quit) jeapostrophe: Changing host 11:06 (join) jeapostrophe 11:08 samth: Sgeo_: unfortunately, that's not currently possible 11:08 Sgeo_: Ok, thank you 11:08 (join) neilv 11:08 (quit) neilv: Changing host 11:08 (join) neilv 11:09 (quit) neilv: Client Quit 11:10 (quit) francisl: Quit: francisl 11:11 (join) francisl 11:12 (join) mjs2600`` 11:14 (quit) mjs2600`: Ping timeout: 252 seconds 11:16 (quit) jeapostrophe: Ping timeout: 248 seconds 11:25 (quit) jrslepak: Quit: What happened to Systems A through E? 11:30 (join) mithos28 11:31 Sgeo_: One of the most obvious cultural to me between Clojure and Racket is the emphasis in Racket on good error messages 11:31 Sgeo_: Have you ever seen a Clojure stack trace? 11:34 asumu: Sgeo_: yes, and oh the pain. 11:34 asumu once wrote part of a toy compiler in Clojure 11:34 asumu: Also, back then leiningen was pretty painful to use, though I imagine it's gotten better. 11:35 Sgeo_: Leiningen is a pain if you want to use a .jar that's not in a repository 11:35 Sgeo_: The response is usually "don't do that" 11:38 (quit) anRch: Quit: anRch 11:39 greghendershott: hi, Racket build nub question: After a version change, I have stale compiled/ dirs even after make && make install 11:40 mithos28: greghendershott: raco setup -c and then raco setup 11:41 greghendershott: Ah thanks! 11:54 (join) Nisstyre 11:58 bartbes: ugh, that reminds me, when I had to do some jvm stuff, in a very limited environment, though I might take a look at clojure 11:58 bartbes: it couldn't even do java compat correctly 11:58 bartbes: but kawa exists, thankfully 11:59 bartbes: (though I ended up just using java, it was nice to experiment with these things) 12:02 (join) carleastlund_ 12:05 (join) MayDaniel 12:06 (join) jonrafkind 12:07 (quit) francisl: Quit: francisl 12:09 (join) Shviller 12:10 (quit) tilde`: Read error: Connection reset by peer 12:16 Sgeo_: Hmm, /me wonders how include-template works 12:17 anonymous is continuing to study Racket, and has a question after which he will be considered a really slowpoke 12:17 anonymous: ...just for crosscheck 12:18 anonymous has stopped to typing question to not make problems to the Sgeo_'s question 12:18 Sgeo_: anonymous, multiple conversations can occur at once. Don't worry about that 12:19 anonymous: Sgeo_: ok. 12:20 anonymous: (and "true" (if (> 0 3) "true" "false")) 12:20 anonymous: no, not so 12:21 anonymous: (and "a_string" (if (> 0 3) "true" "false")) 12:21 anonymous: is "true" in tail position with respect to (if (> 0 3) "true" "false") 12:21 anonymous: ? 12:21 samth: anonymous: yes 12:22 samth: so is "false" 12:22 anonymous: but the continuation of "if" is "and a string"... 12:23 anonymous: and the continuation of true is not 12:23 samth: anonymous: no, that's not true 12:23 samth: (and A B) => (if A B #false) 12:23 samth: so B is in tail position wrt the overall expression 12:24 (join) jeapostrophe 12:24 (quit) jeapostrophe: Changing host 12:24 (join) jeapostrophe 12:25 anonymous: what is the continuation of "true"? 12:25 anonymous: what is the continuation of "(if (> 0 3) "true" "false")> 12:25 anonymous: ? 12:25 anonymous: * 12:25 samth: anonymous: well, "true" is never executed 12:26 anonymous: ...and what is the continuation of "false"? 12:26 samth: and wrt which larger expression? 12:26 samth: but in (and #t (if #f "true" "false")) 12:26 samth: "false" is evaluated in an empty continuation 12:27 anonymous: so, false - empty continuation, "true" has no continuation, what about (if #f "true" "false") ? 12:28 samth: that's also evaluated in the empty continuation 12:29 anonymous: is it the same in (and "ff" (if #f "true" "false")) and (and (if #f "true" "false") "bar")? 12:30 samth: "ff" is the same as #t from the perspective of `and` 12:30 samth: but in your second expression, they're evaluated in a non-empty continuation, one that returns "bar" 12:31 samth: anonymous: you would probably benefit from trying out the stepper in drracket 12:31 anonymous: what is stepper? 12:31 anonymous: the* 12:31 anonymous is reading "The Racket Reference" 12:31 samth: anonymous: it visualizes the process of evaluating expressions 12:32 anonymous: samth: how to run it? 12:32 samth: anonymous: to use it, start drracket, switch to the `beginning student` language 12:32 samth: and then click the "step" button 12:32 samth: with your program in the definitions window 12:33 anonymous: samth: thank you 12:33 anonymous isn't sure that he has got the term "continuation" 12:34 samth: continuation = "rest of the computation" 12:35 anonymous has got it just as the text... now he is going to interpret it as tokens, maybe... 12:40 anonymous: (and (if (> 0 3) "true" "false") "a_string") 12:40 anonymous: is "true" in tail position with respect to (if (> 0 3) "true" "false")? 12:41 carleastlund_: anonymous: I'll answer that question with a question. Is there anything left for the if-expression to do after computing "true"? 12:43 (join) teslalamp 12:43 anonymous: carleastlund_: I am crosschecking. My answer to my question: no. To yours: no. 12:44 anonymous listening to carleastlund_ very carefully, since he has made many mistakes about it already 12:44 anonymous: is* 12:45 carleastlund_: anonymous: If the answer to my question is "no", then the answer to your question must be "yes". If there's nothing left to do, there is no "rest of the computation". If there is no "rest of the computation", there is no continuation. When there is no continuation, that's tail position. 12:47 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 12:49 Sgeo_: samth, how does the debugger interact with threads? 12:49 (quit) ambrosebs: Ping timeout: 276 seconds 12:50 Sgeo_: Also, these environments I keep trying which are somewhat nice are almost tempting me back into Smalltalk with its nice IDE 12:50 (quit) Shviller: Read error: Connection reset by peer 12:51 (join) ambrosebs 12:54 anonymous: carleastlund_: Thank you very much!!! So, to crosscheck: is "true" in tail position with respect to (and (if (> 0 3) "true" "false") "a_string") . My answer: no. 12:55 anonymous: ...he must transform "a_string" to #t 12:55 carleastlund_: anonymous, spot-on :) 12:56 anonymous: carleastlund_: thank you very much!!! 13:00 (join) mizu_no_oto 13:01 (join) didi 13:22 asumu: http://lanyrd.com/2013/clojurewest/sccbrw/ wooo 13:23 Cryovat: You're sneaky 13:23 Cryovat: Trying to win over the Clojure folks? :D 13:23 asumu: Yes, it's brainwashing. 13:23 asumu: Although it might backfire and Clojure adopts #lang. ;) 13:23 Cryovat: Hehe 13:24 Cryovat: You can offer what they can't though 13:24 Cryovat: Turtles all the way down :D 13:25 chandler: asumu: wouldn't making #lang a universal standard be a Good Thing(TM)? 13:25 Cryovat: Only as long as the implementation is consistant 13:26 asumu: chandler: I was mostly kidding, but yes, it would be nice. Especially if the modules in any #lang implementation could interoperate. 13:27 (join) anRch 13:27 (join) tilde` 13:28 asumu: (that would be the hard part, I think. You might also need a unified macro system?) 13:30 (quit) kofno: Read error: Connection reset by peer 13:32 chandler: asumu: Oh, I was just thinking about it from the point of view of tools that might encounter arbitrary source files, e.g. text editors or code-sharing tools. "#lang foo" is a lot better than Emacs modelines, heuristic detection or file extensions. 13:36 (join) kofno 13:36 didi: chandler: What type of better? I mean, "-*- foo -*-" seems pretty straight forward to me. 13:37 (quit) mjs2600``: Read error: Connection reset by peer 13:39 (join) mjs2600`` 13:42 Sgeo_: The thing that deeply bothers me about Racket from a theoretical perspective is, how does one compose languages 13:43 Sgeo_: I can't just mix the semantics of two languages into one module. I don't see an easy way to do Typed+Lazy Racket 13:43 samth: Sgeo_: i don't think that's a problem with Racket, per se -- it's yet another awesome thing we could do, but that we don't know how to do yet 13:43 bremner: does anyone know how to do it? 13:44 Cryovat: I can't get my head around how it would work 13:45 Sgeo_: It kind of does suggest that all different #langs might be excessive. Typed Racket + web-server/insta = ? 13:45 Cryovat: Isn't web-server/insta just some default imports? 13:45 Sgeo_: When web-server/insta doesn't provide interesting semantics beyond "Oh hey, call a function to run this function automatically" 13:45 samth: not everything has to be useful for large-scale software 13:46 samth: web-server/insta is for quick things 13:46 Sgeo_: I can imagine wanting to write a quick thing with types (say, if I have a heavy Haskell background) 13:46 carleastlund_: Languages don't necessarily combine in one module, but given that modules of different languages can pretty much always interact meaningfully, I'd say we've got a pretty good story for composing languages. They just compose via require & provide rather than via #lang. 13:47 (join) ijp 13:47 Cryovat: Is it possible to have sections in a file with a specific lang? 13:47 stamourv: Cryovat: With submodules, yes. 13:47 didi: Cryovat: I hope not. ;^) 13:47 didi: Aw... 13:48 stamourv: didi: It's not as scary as it sounds. 13:48 samth: stamourv: note that submodules don't provide the full capability of #lang 13:48 carleastlund_: Different bindings, yes. The #lang-style reader, no. We don't yet have "#sublang" or whatever we might call it. 13:48 stamourv: samth: That's right. 13:48 samth: #sublang would be tricky 13:48 samth: what would the delimiter be? 13:49 Sgeo_: samth, the sublanguage decides when it's done parsing? That's what Factor syntax words do 13:49 (join) sstrickl 13:49 (quit) sstrickl: Changing host 13:49 (join) sstrickl 13:49 carleastlund_: We could pick one, or specify one after #sublang, or it could be language-specific. But the _only_ difficulty is picking a delimiter, I'd say that's a pretty easy problem to solve. 13:49 samth: Sgeo_: that wouldn't work for `racket`, for example 13:50 samth: carleastlund_: yes 13:50 Sgeo_: Maybe not every language needs to be sublang-able 13:50 (quit) sstrickl: Read error: Connection reset by peer 13:50 Sgeo_: I can imagine different sorts of languages being sublangs than top-level langs 13:50 Sgeo_: XML literals, for example 13:50 (join) sstrickl_ 13:50 (quit) sstrickl_: Changing host 13:50 (join) sstrickl_ 13:50 didi: Ught, XML. 13:50 didi: :^) 13:50 Sgeo_: (it was just an example. Taken from Factor) 13:50 samth: Sgeo_: that's mostly a read-syntax issue, not a language per se 13:50 asumu: If only submodules could change the reader. 13:50 carleastlund_: That's not a #lang, that's a #reader. #lang specifically means a language with bindings for a module. 13:50 stamourv: Sgeo_: You can already have something like that for reader extensions. 13:50 samth: they don't have to be the same 13:51 (quit) sstrickl_: Read error: Connection reset by peer 13:51 asumu: Why not just delimit by (module foo base ...)? 13:51 (join) sstrickl 13:51 (quit) sstrickl: Changing host 13:51 (join) sstrickl 13:51 stamourv: See `#lang at-exp racket' or `#lang asumu/sweet-exp typed/racket'. 13:51 carleastlund_: asumu: because the language might not have s-expressions to begin with. 13:51 stamourv: (Syntax of the latter is probably wrong.) 13:51 Sgeo_: Oh, I was wondering where I saw "sweet-" before 13:51 didi: I might suggest taking a look at the pains that some people went trying to make a multi-mode for Emacs. 13:52 asumu: Yeah, I suppose you couldn't distinguish an unmatched parenthesis for the (module ...) and the correct thing. 13:52 Sgeo_: (Looked over Adventures of a Pythonista in Schemeland, the person introduced their own macro construct called sweet-macros) 13:53 (quit) anRch: Quit: anRch 13:56 (quit) mjs2600``: Ping timeout: 252 seconds 13:59 (quit) Fare: Ping timeout: 276 seconds 14:00 didi: Speaking of languages, what about that article about syntax transformations? Is it ready? 14:01 asumu: didi: what article? 14:02 Sgeo_: asumu, fun fact about Clojure: There are 0 (or 1 if you count ambrosebs's) good macroexpanders that expand body forms correctly 14:03 asumu: Sgeo_: Not sure what that means. Do you have an example? 14:04 Sgeo_: http://clojuredocs.org/clojure_core/clojure.walk/macroexpand-all is broken. 14:04 Sgeo_: The one used in Clojail is broken 14:04 Sgeo_: asumu, um, the equivalent of expand, I think 14:04 Sgeo_: Is what's not really present in Clojure 14:04 didi: asumu: I remember a while ago, about the time of RacketCon, that someone was writing an article explaining the `syntax-rule' and friends. 14:05 asumu: didi: Ah, yes. You will have to ask ryanc or calvis about that, but I don't think it's complete yet. 14:05 asumu: IIRC they had one chapter complete. 14:05 stamourv: didi: In the meantime, I recommend greghendershott's excellent "Fear of Macros". 14:06 asumu: Sgeo_: oh, that's weird. Weird that they have one but it's broken. 14:06 didi: rudybot: Fetch me that! 14:06 rudybot: didi: elpa ma man, go fetch me this l33t new major mode. ya dig? 14:06 didi: stamourv: I will. Thank you. 14:06 Sgeo_: asumu, I think that walk one was a contribution that is now distributed with Clojure 14:07 didi: asumu: Wow, "one chapter". That will be long then. Cool. 14:07 asumu: Well, maybe "section" is the right word, I don't know. 14:09 (join) jrslepak 14:10 (quit) mye: Ping timeout: 252 seconds 14:13 (quit) teslalamp: Quit: ERC Version 5.3 (IRC client for Emacs) 14:14 (join) mye 14:16 (join) Fare 14:22 (quit) ambrosebs: Remote host closed the connection 14:29 (quit) sstrickl: Quit: sstrickl 14:31 (join) dnolen 14:33 (quit) Nisstyre: Ping timeout: 248 seconds 14:33 Sgeo_: This is offby1's documentation: 14:33 Sgeo_: "Welcome to my documentation: (list 'testing 1 2 3)." 14:34 didi: Classic offby1. 14:35 (join) dyoo 14:36 ijp: does offby1 need documentation? The interface seems pretty intuitive to me 14:36 (quit) karswell: Remote host closed the connection 14:36 didi: rudybot: Do you know how to use offby1? 14:36 rudybot: didi: http://googlereader.blogspot.com/2010/01/follow-changes-to-any-website.html 14:36 Sgeo_: Fun fact, rudybot might not run on Windows 14:37 Sgeo_: It uses offby1's zdate, which calls /bin/date in some circumstances (not sure when) 14:40 carleastlund_: rudybot: You just always have to have the last word, don't you? 14:40 rudybot: carleastlund_: This word, it does not mean what you think it means. 14:41 Cryovat: rudybot: Would you mind getting me a cup of tea? 14:41 rudybot: Cryovat: the octopus picked spain to win the world cup 14:41 (quit) klr_: Quit: Lost terminal 14:41 Cryovat: That... is true 14:42 dyoo: I often get the feeling that rudybot is a Vorlon. I do not understand. 14:42 Cryovat: :D 14:42 carleastlund_: dyoo: Jump. Jump now! 14:43 Cryovat: dyoo: Understanding is a three edged sword anyway 14:44 didi: Did someone eat that octopus though? I wonder if one could gain clairvoyance powers from it. 14:44 dyoo: didi: either that or they can see invisible monsters 14:44 Cryovat: Clairvoyant Calamari 14:44 carleastlund_: I think you have to find whatever experiment exposed the octopus to dangerous radiation. 14:45 Cryovat: I've read Lovecraft, I know how things go 14:45 Cryovat: You enjoy the ability to predict lottery results for a few weeks 14:45 Cryovat: Then you learn what other things you opened your eyes too ;) 14:46 (join) karswell 14:47 Sgeo_: Is it even worth it to try to comprehend Rudybot's code? 14:49 (quit) ijp: Ping timeout: 248 seconds 14:49 didi: Maybe they just tossed it in the trash and now there is a dog somewhere that knows what garbage bag to rip. 14:49 samth: Sgeo_: yes, definitely 14:49 samth: rudybot: source 14:49 rudybot: samth: git clone git://github.com/offby1/rudybot.git 14:51 Sgeo_: This iserver thing does something where command-sym sends to some thread then waits to receive something 14:51 Sgeo_: But what if the thread that calls command-sym receives a message from elsewhere at that moment? 14:52 Sgeo_: Wait, no, I misread it 14:52 Sgeo_: That problem still exists, but it's an anonymous function, not a function called command-sym 14:52 Sgeo_: derp 14:52 Sgeo_: github's hilighting is not helpful here 14:53 Cryovat: Github highlighting for Racket code is pretty icky 14:54 Sgeo_: I guess there is an advantage to defn/defun style over define style for function definitions 14:55 didi: Sgeo_: Aren't them the same? 14:55 didi: s/them/they 14:56 Sgeo_: (define (foo bar baz) ...) vs (defun foo (bar baz)) 14:56 didi: Ow, the syntax. 14:56 stamourv: Sgeo_: For exploring unfamiliar codebases, I highly recommend DrRacket's Check Syntax. 14:57 Sgeo_: In the latter, you don't get the inconsistency with lambda, because with both lambda and defun the first argument is right after ( 14:57 (join) Kaylin 14:57 didi: Sgeo_: It's a very minor difference IMO, but I prefer `define'. 15:00 Sgeo_: Hmm, Racket doesn't come with a named-lambda? 15:00 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 15:01 carleastlund_: Sgeo_, what are you looking for from named-lambda? 15:02 Sgeo_: Easy recursion in an anonymous function, I guess? 15:03 carleastlund_: Personally I use a local define for that in most cases. But it would be very easy to write a one-liner macro to do named lambda. 15:03 (quit) Kaylin: Quit: Leaving. 15:03 stamourv: add1 to local `define'. 15:03 Sgeo_: Oh, another point against define's function syntax: (define foo (lambda args ...)) vs (note: not legal in CL) (defun foo args ...) 15:03 carleastlund_: rudybot: (define-syntax-rule (function (name . args) . body) (letrec {[name (lambda args . body)]} name)) 15:04 rudybot: carleastlund_: your sandbox is ready 15:04 rudybot: carleastlund_: Done. 15:04 carleastlund_: rudybot: ((function (len xs) (if (null? xs) 0 (add1 (len (rest xs))))) '(1 2 3)) 15:04 rudybot: carleastlund_: ; Value: 3 15:04 didi: Sgeo_: Although they both use s-expressions, Racket and Common Lisp are different languages. 15:05 Sgeo_: didi, I'm aware of this, just noting that defun does make some sense over define 15:05 carleastlund_: Sgeo_: How is this a point against? I'm not arguing, I actually don't see what you're saying yet. 15:05 stamourv: Sgeo_: `(lambda args ...)' has a useful semantics. 15:05 stamourv: rudybot: ((lambda lambda lambda) 1 2 3) 15:05 rudybot: stamourv: your typed/racket sandbox is ready 15:05 rudybot: stamourv: ; Value: (1 2 3) 15:05 rudybot: stamourv: ; stdout: "- : (Listof Any)\n" 15:05 (join) ijp 15:05 Sgeo_: carleastlund, because you can usually use define's syntax instead of writing the lambda explicitly, but can't do that when you just want all the args as a list 15:06 asumu: stamourv: perhaps not the most convincing example. ;) 15:06 carleastlund_: rudybot: (define (f . xs) xs) 15:06 rudybot: carleastlund_: Done. 15:06 carleastlund_: rudybot: (f 1 2 3) 15:06 rudybot: carleastlund_: ; Value: (1 2 3) 15:06 carleastlund_: Sgeo_: like that? ;-) 15:06 Sgeo_: carleastlund, ...oh 15:06 Sgeo_: I was going off of lambda not accepting (. x) I think 15:08 carleastlund_: I like (define (f x1 x2 …) body1 body2 …) because to me it reads "define the application (f x1 x2 …) as equal to evaluating body1 body2 …". I like that it contains a template application right there. 15:08 anonymous: rudybot: (print "f") "f" 15:08 rudybot: anonymous: now you have to write the macro to print to pdf :) 15:08 anonymous: rudybot: (print "f") 15:08 rudybot: anonymous: your sandbox is ready 15:08 rudybot: anonymous: ; stdout: "\"f\"" 15:08 carleastlund_: (. x) is just x, although I agree it would be nice if (. x) were actually accepted by the reader. 15:08 (join) RacketCommitBot 15:08 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/WNNSVw 15:08 RacketCommitBot: racket/master 9c0a611 Asumu Takikawa: Disallow duplicate type variable declarations... 15:08 (part) RacketCommitBot 15:08 Sgeo_: I still think that rudybot is broken 15:09 Sgeo_: By using thread mailboxes to communicate in that way 15:09 carleastlund_: Note that this is a reader problem, not a lambda problem. (define f (lambda xs xs)) would be the same as my (define (f . xs) xs) above. 15:09 Sgeo_: I would replace the response mechanism with a channel 15:09 didi: rudybot: Don't listen to them. You're perfect! 15:09 rudybot: didi: really? I should have started to listen beatles, it's shame for me. thanks for giving a reason 15:10 (join) LnL 15:10 carleastlund_: Sgeo_: is rudybot potentially delivering messages out of order or something? 15:11 Sgeo_: carleastlund, as far as I can tell, potentially, trying to send a command to the incubot server could result in getting a reply from something other than the incubot server 15:11 anonymous: is cleverbot a has same parts of cleverbot or something? 15:11 anonymous: the* 15:11 anonymous: or asks cleverbot what to say*... or something 15:12 Sgeo_: carleastlund, would be easy to fix with a channel or async channel 15:12 Sgeo_: Not sure which 15:12 anonymous: rudybot: hi 15:12 rudybot: anonymous: error: reference to an identifier before its definition: hi in module: 'program 15:13 carleastlund_: Sgeo_: Okay, we're in depths of the implementation beyond which I know nothing :) 15:13 Sgeo_: Need to block on reading from it, but probably not block on sending 15:13 Sgeo_: carleastlund, I'm looking at lines 50-52 https://github.com/offby1/rudybot/blob/master/iserver.rkt 15:13 Sgeo_: That looks like an idiom that would be used in Erlang, except in Racket we're not filtering to make sure that we're receiving from who we think we are 15:14 Sgeo_: Ok, just passing an async-channel would do the trick 15:15 anonymous: rudybot: what is version of your racket? 15:15 rudybot: anonymous: VERSION WE WERE DOWN, BUT WE ARE NOT OUT!!! http://www.peoplesprimary.com/ - irc.hardchats.com #gnaa - THIS MESSAGE BROUGHT TO YOU BY INCOG 15:15 asumu: rudybot: (version) 15:15 rudybot: asumu: your sandbox is ready 15:15 rudybot: asumu: ; Value: "5.2.900.1" 15:15 anonymous: thx 15:16 Sgeo_: I don't know though if there's a significant chance of the calling thread actually using its mailbox for other purposes 15:16 (quit) serhart: Quit: Leaving. 15:16 (quit) tilde`: Quit: kthxbai 15:16 Sgeo_: If all communication via its mailbox were in that style, there'd be no reason to worry about it 15:16 Sgeo_: But why risk it, exactly? 15:18 carleastlund_: Hubris! 15:18 (join) serhart 15:19 Sgeo_: I don't exactly have a nice way by which I can test changes 15:19 Sgeo_: Wondering if I should just edit it anyway and note the fact that I haven't done testing 15:19 Sgeo_: ^^real hubris 15:19 carleastlund_: Even worse, it's complex hubris. It has an extra component of imaginary hubris tacked on. 15:21 (join) mjs2600 15:27 Sgeo_: How do I get offby1 to look at my code without implying that e definitely should use it like a pull request? 15:28 (quit) jrslepak: Quit: What happened to Systems A through E? 15:28 (quit) myx: Ping timeout: 246 seconds 15:28 stamourv: Send him a patch? 15:29 Sgeo_ already sent a pull request :/ 15:29 Sgeo_: "PLEASE NOTE THAT I DID NOT TEST THIS CODE AT ALL, EVEN WITH CHECK SYNTAX 15:29 Sgeo_: " 15:29 (quit) bitonic: Ping timeout: 248 seconds 15:29 Sgeo_: https://github.com/Sgeo/rudybot/commit/8f0f5a6f391955e751da88460c0626882d543cf7 15:30 rudybot: http://tinyurl.com/b6gztv4 15:35 stamourv: Sgeo_: AFAIK, incubot is dead, so that part of rudybot may be obsolete anyway. 15:35 Sgeo_: Oh 15:35 Sgeo_: I don't even know what incubot is 15:35 stamourv: Sadly, so is minion. I've been trying to get someone to extend rudybot to cover minion's duties natively. 15:35 stamourv: incubot is a Chicken Scheme bot, written by klutometis. 15:36 Sgeo_: Ah 15:36 stamourv: I think it may have provided evaluation, too. But in Chicken. 15:36 LnL: Is there a way to customize how a lambda is displayed? 15:36 stamourv: If you're interested in rudybot hacking, minion emulation would be nice. The "later tell" feature, especially. 15:37 stamourv: LnL: What do you mean? 15:38 LnL: If you display a lambda you'll see #, I was wondering if it could be changed 15:40 stamourv: rudybot: (procedure-rename (lambda (x) x) 'identity) 15:40 rudybot: stamourv: your typed/racket sandbox is ready 15:40 rudybot: stamourv: error: #:1:1: Type Checker: untyped identifier procedure-rename imported from module in: procedure-rename 15:40 stamourv: rudybot: init racket 15:40 rudybot: stamourv: your sandbox is ready 15:40 stamourv: rudybot: (procedure-rename (lambda (x) x) 'identity) 15:40 rudybot: stamourv: ; Value: # 15:40 stamourv: LnL: ^ 15:40 asumu: (another thing to add to base-env...) 15:40 (quit) Fare: Ping timeout: 265 seconds 15:40 stamourv: Yep. 15:40 stamourv: LnL: If the procedure already has a name, you don't need that. 15:41 (join) bitonic 15:43 Sgeo_: "The word ?indy? is meant to suggest that blame may be assigned to the contract itself, because the contract must be considered an independent component. " 15:43 Sgeo_: Blame the contract, blame the contract, blame the contract, all the blame 15:44 Sgeo_: 15:47 Sgeo_: rudybot, (lambda (_ _) (+ 1 2)) 15:47 rudybot: Sgeo_: your racket/kernel sandbox is ready 15:47 rudybot: Sgeo_: error: #:1:11: lambda: duplicate argument name at: _ in: (lambda (_ _) (+ 1 2)) 15:47 Sgeo_: :( 15:47 LnL: Thanx, that's what I was looking for 15:47 Sgeo_: rudybot, init racket 15:47 rudybot: Sgeo_: your sandbox is ready 15:47 Sgeo_: rudybot, (lambda (_ _) (+ 1 2)) 15:47 rudybot: Sgeo_: error: #:1:11: lambda: duplicate argument name at: _ in: (lambda (_ _) (+ 1 2)) 15:48 Sgeo_: Why was I on racket/kernel :/ 15:48 stamourv: Leftover from a previous experiment? 15:48 stamourv: rudybot: Maybe you shouldn't keep leftovers for that long. 15:48 rudybot: stamourv: (The whole thing is just leftovers anyway, and perhaps it should be removed.) 15:53 (join) rbarraud 15:56 (join) mizu_no_oto 15:56 anonymous: rudybot: (define a 1) 15:56 rudybot: anonymous: Done. 15:57 anonymous: rudybot: a 15:57 rudybot: anonymous: ; Value: 1 15:57 anonymous: rudybot: b 15:57 rudybot: anonymous: error: reference to an identifier before its definition: b in module: 'program 15:57 anonymous: rudybot: (sqrt 3) 15:57 rudybot: anonymous: ; Value: 1.7320508075688772 15:58 anonymous: rudybot: (* 1.7320508075688772 1.7320508075688772) 15:58 rudybot: anonymous: ; Value: 2.9999999999999996 15:59 anonymous: rudybot: are you sure that (sqrt 3) = 1.7320508075688772 and (* 1.7320508075688772 1.7320508075688772) 15:59 rudybot: anonymous: Have you tried the sqrt procedure on small numbers? 15:59 anonymous: rudybot: are you sure that (sqrt 3) = 1.7320508075688772 and (* 1.7320508075688772 1.7320508075688772) = 2.9999999999999996? 15:59 rudybot: anonymous: (map sqrt '(1 4 9 16 25)) => (1 2 3 4 5) 16:00 anonymous: is 0.(9) equal 1? 16:00 anonymous: sorry 16:00 anonymous: it was to rudybot 16:00 anonymous: rudybot: is 0.(9) equal 1? 16:01 rudybot: anonymous: is there an add-to-ordered-list variant using equal ? 16:02 anonymous: rudybot: nevermind 16:02 rudybot: anonymous: error: reference to an identifier before its definition: nevermind in module: 'program 16:02 anonymous: rudybot: 1 + 2? 16:02 rudybot: anonymous: eh? Try "rudybot: help". 16:02 anonymous: rudybot: help 16:02 rudybot: anonymous: bug ..., help [], version, quote, source, url, seen , uptime, t8 ..., init [], eval ..., give ..., apropos ..., desc , doc 16:02 (quit) kofno: Remote host closed the connection 16:02 anonymous: rudybot: help url 16:02 rudybot: anonymous: url: my web page 16:03 anonymous: rudybot: t8 anonymous anonymous "foo bar" 16:03 rudybot: anonymous: Invalid Value 16:03 anonymous: rudybot: t8 anonymous asumu "foo bar" 16:03 rudybot: anonymous: Invalid Value 16:04 anonymous: rudybot: t8 Sgeo_ anonymous "foo bar" 16:04 rudybot: anonymous: Invalid Value 16:04 anonymous: rudybot: help t8 16:04 rudybot: anonymous: t8 ...: translate TEXT from FROM to TO 16:04 anonymous: ah... 16:04 anonymous: rudybot: t8 english japanese "test" 16:04 rudybot: anonymous: Invalid Value 16:05 anonymous: rudybot: t8 en jp "test" 16:05 rudybot: anonymous: Invalid Value 16:05 anonymous: sorry. 16:06 eli: rudybot: t8 he en שקטבבקשה. 16:06 rudybot: eli: Sktbbksh. 16:06 eli: rudybot: t8 he en שקט בבקשה. 16:06 rudybot: eli: Quiet please. 16:13 (quit) mjs2600: Read error: Connection reset by peer 16:14 ijp: rudybot: t8 en ja anonymous: the language code for japan is ja not jp 16:14 rudybot: ijp: 匿名:日本の言語コードはja JPではない 16:17 (quit) jeapostrophe: Ping timeout: 252 seconds 16:20 (join) Fare 16:29 (quit) karswell: Remote host closed the connection 16:32 (quit) mye: Ping timeout: 255 seconds 16:36 (quit) dnolen: Ping timeout: 248 seconds 16:40 (join) karswell 16:43 (join) neilv 16:43 (quit) neilv: Changing host 16:43 (join) neilv 16:44 (join) Nisstyre 16:49 Sgeo_: "Solution : Compile the racket code to c code using Chicken Scheme." 16:49 (quit) mizu_no_oto: Ping timeout: 246 seconds 16:51 didi: Sgeo_: I don't think it's possible. 16:52 Sgeo_: http://csclub.uwaterloo.ca/~s76singh/how-to-compile-your-drracket-code/ 16:52 Sgeo_: didi, I think the person hasn't seen raco distribute 16:52 didi: Sgeo_: Or Racket. 16:53 didi: Racket is not Scheme. 16:54 (join) jrslepak 16:55 Sgeo_: If you limit yourself harshly, you end up with Scheme code 16:55 Sgeo_: Except for the #lang I guess 16:55 didi: Sgeo_: Then it's not Racket. 16:55 didi: Sgeo_: Also, libraries. 16:55 Sgeo_: See: limit yourself harshly 16:56 didi: Sgeo_: But why would you do that? I mean, you use Racket but limit yourself to Scheme. Then you're not using Racket. 16:57 Sgeo_: Oh, I didn't see his note 16:57 didi: Let's use C++ but limit ourselves to C. 16:57 neilv: ignore that blog post. there are a few things wrong with it 16:58 (quit) anonymous: Read error: Operation timed out 16:58 ozzloy: maybe someone should send him a comment 16:58 Sgeo_: I did 16:59 dyoo: It does bring up the question: why do we have both 'raco exe' and 'raco distribute'? 16:59 neilv: didi: there are perfectly valid reasons to use the racket tools for r5rs, but the rare person who would actually need to do that probably doesn't need to ask newbie questions about it :) 16:59 didi: neilv: oic 16:59 Sgeo_: neilv, does "it's already on my system" count as a reason to use the Racket tools for r5rs? 16:59 Sgeo_: Rather than installing another R5RS Scheme? 17:00 neilv: Sgeo_: sure 17:02 ozzloy: can i use raco exe to write code on ubuntu and create an ms windows exe my sister can use on her computer? 17:03 ijp: neilv: except that you can't really do anything within the confines of the r5rs 17:03 didi: My point is, if you limit yourself to Scheme, it's Scheme and not Racket. 17:04 Sgeo_ assumes that miniKanren is written in R5RS Scheme 17:05 asumu: More like Dan Friedman Scheme. :) 17:05 ijp: the testsuite has some chez specific things 17:06 Sgeo_: Hmm, Chicken Scheme has a Kanren egg, and all that's on PLaneT is miniKanren 17:06 Sgeo_: I'm starting to get jealous of Chicken Scheme eggs 17:06 Cryovat: Shouldn't the Kanren egg be rather trivial to port? 17:07 ozzloy: it seems i have to do the raco exe on an ms windows computer. is that the case? 17:07 ijp: why port the egg, when you just package the source directly? 17:07 (quit) Fare: Quit: Leaving 17:08 ijp: I packaged minikanren for guile, and the work was basically all adding module forms 17:08 Sgeo_: Guile has a packaging system? 17:08 ijp: yes 17:09 Sgeo_: ozzloy, that seems likely, although I can't say for sure. I know that a lot of languages do that. Off the top of my head, the only exceptions I can think of are JVM (and probably .NET) languages 17:09 ijp: convincing people to use it is the hard part 17:09 Sgeo_: Although I think there was another, that had a platform-independent bytecode 17:09 asumu: Looking at the kanren CVS tree, it looks pretty easy to package for Racket if you wanted to. 17:09 Sgeo_: Oh, I think various Common Lisps and SWI Prolog basically make executables by prepending a platform-specific file to platform-independent stuff 17:10 ijp: asumu: exactly 17:10 Sgeo_: So by changing the platform-specific file, you compile for the different platform without needing to use that platform 17:10 asumu: The reason it's not in Racket is probably because it already has both datalog and racklog. 17:11 Sgeo_: Wait, the CLs I'm thinking of compile to platform-specific code, so... just SWI Prolog? 17:11 Cryovat: Not that Kanren is obvious either 17:11 ozzloy: Sgeo_, :/ 17:11 Cryovat: But the *log naming is a bit unfortunate 17:11 ozzloy: Sgeo_, thanks 17:11 Cryovat: datalog especially sounds db related 17:11 ijp: it's supposed to 17:12 didi: Hehe, racklog reminds me of /var/log 17:12 asumu: "Kanren" is great for those of us from some parts of the East. ;) 17:12 Sgeo_: Somewhere some days ago I asked about the difference between Clojure core.logic and Racklog, someone said that Racklog doesn't do constraint-based programming 17:13 ijp: asumu: ah, now I get it 17:13 Sgeo_ doesn't get it 17:14 ijp: Sgeo_: kanren literally means 'relation 17:14 Sgeo_: Ah 17:14 ijp: at least if wwwjdic is to be believed 17:15 Cryovat: On a side note 17:15 Cryovat: I just had a peek at core.logic 17:15 Cryovat: 4200 line source file 17:15 Cryovat shakes fist 17:15 (join) clements_ 17:15 Sgeo_: Hm? 17:16 asumu: Modules FTW. 17:16 Cryovat: Yeah 17:16 Cryovat: Maintaining files like that is a nightmare 17:20 didi: Cryovat: You have put some ^P marks and narrow them when hacking time comes. 17:20 Cryovat: Eh? :o 17:21 didi: Cryovat: Page marks. 17:21 Cryovat: Ag 17:21 Cryovat: *Ah 17:21 clements_: eli: ping 17:21 Cryovat: I haven't gotten used to Emacs yet 17:21 didi: Cryovat: :^) 17:30 (quit) serhart: Quit: Leaving. 17:32 (join) netrino 17:41 (quit) LnL: Quit: LnL 17:44 (quit) MayDaniel: Read error: Connection reset by peer 17:45 (join) anonymous 17:47 (quit) anonymous: Client Quit 17:47 (join) anonymous 17:49 (join) Fare 17:50 (join) dnolen 17:50 greghendershott: Cryovat: GitHub highlighting for Racket code will change soon: https://github.com/github/linguist/pull/325 17:51 Cryovat: Awesome :D 17:52 (quit) Nisstyre: Ping timeout: 256 seconds 17:52 (quit) jrslepak: Quit: What happened to Systems A through E? 17:56 (join) anRch 17:57 eli: clements_: pong? 17:57 didi: greghendershott: Nice. 17:58 clements_: eli: silly question: I'm having trouble cloning the plt repo; it downloads about 2 MB, then wedges for a minute, and reports "Write failed: Broken pipe". I recall this being associated with old versions of git, ... 17:58 eli: Possibly, which version do you have? 17:58 clements_: but I'm running 1.8.1, so I can't see how that would be the problem. 17:59 clements_: I have a funny feeling that git is depending on some other package (opens? openssl?) that's out of date. ... 17:59 clements_: To be clear, I'm configuring a new machine, so this is almost certainly my problem. ... 17:59 eli: At least on the server side I can't think of any possible problems. 17:59 bremner: firewalls are often an issue for git:// urils 17:59 clements_: Also, I went to a machine outside (a vps), and it had no problem cloning. So I'm doing something dumb. 17:59 eli: I always keep it with an up to date git 17:59 bremner: clements_: can you clone other things? 18:00 eli: bremner: But he is getting part of it, so it's not a firewall. 18:00 (quit) anonymous: Ping timeout: 248 seconds 18:00 bremner: oh, doh. 18:00 (join) mizu_no_oto 18:00 eli: Also, he should be using ssh for RW access, clements_ -- right? 18:01 clements_: I'm just using git clone git@git.racket.lang.org:clements/a git-clements 18:03 clements_: My personal tree and the plt tree are both getting wedged. It definitely looks like a time thing. I get about ten seconds of data and then it hangs. It's conceivable that it's just Mozilla doing something goofy---I'm inside Mozilla right now. 18:03 eli: If it's exactly ten seconds then it sounds suspicious. 18:04 eli: Do they have any restrictions on SSHing that you know about? 18:06 clements_: no, not that they seem to know of. Maybe I'll try cloning the tree straight from github. 18:08 clements_: looks like it's going through. I've now got 50 meg from github, and it's going fine. 18:09 clements_: okay, got the full tree from racket. Trying pltgit again. 18:11 (quit) anRch: Read error: Connection reset by peer 18:11 (join) anRch 18:13 clements_: Huh… after trying 10 times, I finally got the full plt tree. Now I just need my personal tree. 18:16 asumu: clements_: I had rouble earlier today accessing pltgit. 18:16 asumu: s/rou/trou/ 18:16 clements_: okay, I'm just going to wait a few hours and try again. 18:21 (quit) didi: Ping timeout: 264 seconds 18:26 (join) serhart 18:27 (quit) eli: Ping timeout: 272 seconds 18:28 (join) Nisstyre 18:28 (join) anonymous 18:32 (join) cipher 18:34 (join) eli 18:34 (quit) eli: Changing host 18:34 (join) eli 18:34 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 18:38 (quit) cdidd: Ping timeout: 255 seconds 18:38 (join) mceier 18:38 (quit) stchang: Ping timeout: 276 seconds 18:39 (join) stchang 18:41 (quit) eli: Ping timeout: 252 seconds 18:41 (join) eli 18:41 (quit) eli: Changing host 18:41 (join) eli 18:45 dca: hi. how can i make structures contents printed by default 18:45 dca: instead of # 18:45 dca: ? 18:45 samth: dca: make the structure #:transparent 18:46 dca: that works thanks 18:46 dyoo: dca: see http://docs.racket-lang.org/guide/define-struct.html?q=struct#(part._trans-struct) 18:50 (quit) dyoo: Quit: dyoo 18:50 (quit) Nisstyre: Ping timeout: 260 seconds 18:54 (join) cdidd 19:00 (quit) anRch: Quit: anRch 19:00 (quit) bitonic: Ping timeout: 256 seconds 19:01 (join) Nisstyre 19:13 (join) jrslepak 19:13 bremner: eli: when you have some time, I'm still stuck running your old web.rkt script with 5.3.1; it complains that get-resource-path no longer exists. At the moment I just keep an a copy of racket 5.2 around just to run that script, but I feel a bit silly about that ;). 19:16 (quit) dsantiago: Quit: Computer has gone to sleep. 19:17 (join) dsantiago 19:18 (join) gridaphobe 19:20 (quit) ijp: Quit: The garbage collector got me 19:22 (join) RacketCommitBot 19:22 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/mqLv_w 19:22 RacketCommitBot: racket/master 3e8b6b9 Matthew Flatt: scribble: add `+m' / `++main-xref-in' flag... 19:22 (part) RacketCommitBot 19:30 (join) Kaylin 19:32 (quit) Nisstyre: Ping timeout: 255 seconds 19:53 (join) mizu_no_oto 20:06 (join) RacketCommitBot 20:06 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/Bbk8FA 20:06 RacketCommitBot: racket/master 27d3042 Asumu Takikawa: Use correct contract for Procedure type... 20:06 (part) RacketCommitBot 20:08 (join) quirk 20:16 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 20:19 (join) mizu_no_oto 20:35 (quit) gridaphobe: Ping timeout: 276 seconds 20:48 (quit) karswell: Remote host closed the connection 20:49 (quit) clements_: Ping timeout: 260 seconds 20:49 (quit) cdidd: Read error: Connection reset by peer 20:52 (quit) quirk: Ping timeout: 245 seconds 20:59 (join) karswell 21:05 (quit) rbarraud: Excess Flood 21:06 (join) rbarraud 21:12 (join) francisl 21:12 (quit) karswell: Remote host closed the connection 21:12 (quit) rbarraud: Ping timeout: 240 seconds 21:12 (join) kofno 21:13 (join) rbarraud 21:22 (join) karswell 21:42 (quit) francisl: Quit: francisl 21:51 (join) sw2wolf 21:58 (join) francisl 22:02 offby1: Sgeo_: HAPPY NOW?! 22:03 Sgeo_: offby1, cool 22:04 (quit) kofno: Remote host closed the connection 22:04 Sgeo_: Although may I ask why the caps? 22:04 greghendershott: *gets popcorn* 22:06 Sgeo_: Oh, because of my warnings about me not having tested it? 22:06 bremner: offby1: I'm not especially happy, got anything for me? 22:06 (join) kofno 22:07 offby1: Sgeo_: BECAUSE I'M LOUD 22:07 offby1: bremner: pot roast. I have pot roast for you. 22:07 Sgeo_: OKAY 22:07 Sgeo_ needs sleep 22:07 bremner: yay! 22:08 offby1: It's quite good, by the way. I recommend it. 22:08 bremner: cool. 22:08 offby1: wtf. ./freenode-main.rkt => iserver.rkt:46:32: client-channel: unbound identifier in module in: client-channel 22:08 offby1: although the various tests pass. 22:08 offby1 stares even more blankly than usual 22:10 offby1: ah, I see. It's a real live bug! 22:10 Sgeo_: Oh, I see 22:10 Sgeo_: (list client-thread ...) 22:10 (quit) Kaylin: Quit: Leaving. 22:10 Sgeo_: Change that to client-channel 22:10 Sgeo_: line 44 22:11 (join) rudybot_ 22:11 Sgeo_: Opinion time: If a change means an identifier's name is no longer accurate, does it make sense to change the name even considering the risk of not changing it everywhere? 22:12 offby1: yeah 22:12 offby1: I'd say: change the name, and make sure you change it everywhere :) 22:12 offby1: No excuse not to. 22:12 offby1 whistles innocently 22:12 Sgeo_: Well, it was my bug, not yours 22:12 (quit) rudybot_: Remote host closed the connection 22:12 offby1: yep 22:13 offby1: but I thank you for one surprising thing: turns out rudybot is working fine with 5.3.1. It had been failing mysteriously with 5.3 22:13 offby1: rudybot: (banner) 22:13 rudybot: *offby1: your sandbox is ready 22:13 rudybot: *offby1: ; Value: "Welcome to Racket v5.2.900.1.\n" 22:13 offby1: so I kept him stuck on that version 22:13 offby1: I guess they fixed whatever the problem was with 5.3 22:14 Sgeo_: huh, ok 22:14 offby1 wonders what the new rudybot's nick will be 22:14 (join) rudybot_ 22:14 offby1: rudybot_: begone, impostor 22:14 rudybot_: offby1: eh? Try "rudybot_: help". 22:14 Sgeo_: Also, does it require Linux? Because it seems to use zdate and that uses a /bin/date 22:15 offby1: rudybot_: I say: drop dead! You're not the REAL rudybot. 22:15 rudybot_: offby1: eh? Try "rudybot_: help". 22:15 offby1: hmm 22:15 offby1: rudybot_: (banner) 22:15 rudybot_: offby1: your sandbox is ready 22:15 rudybot_: offby1: ; Value: "Welcome to Racket v5.3.1.\n" 22:15 offby1: \o/ 22:15 offby1: ~ 22:15 offby1: / \ 22:15 (quit) rudybot_: Remote host closed the connection 22:15 offby1: All fixed. 22:16 offby1: rudybot: so, when are you gonna upgrade yourself, hmm? 22:16 rudybot: *offby1: the answer in my version seems to be no ... and I was wondering if there is some flag I need to set or some upgrade that I need to get 22:16 offby1: wuss 22:16 offby1: I wonder if this means I should give 5.3.1 a try on the "production server" (doesn't that phrase sound grand!) 22:18 neilv: or the pre-release branch for 5.3.2 22:19 (join) jeapostrophe 22:19 (quit) jeapostrophe: Changing host 22:19 (join) jeapostrophe 22:19 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 22:20 offby1: neilv: I haven't been keeping up; what grooviness will I find there? 22:21 neilv: i don't know, but so long as you're changing versions, might as well change to something that will keep you on the path to not being out-of-date in a few weeks 22:22 neilv: keeping production servers at recent-ish versions of racket is always an expense 22:25 asumu: offby1: yay yay (on 5.3.1) 22:25 offby1: *grumble* 22:25 asumu: rudybot: eval (require racket/generic) 'party 22:25 rudybot: asumu: your sandbox is ready 22:25 rudybot: asumu: error: default-load-handler: cannot open input file: "/mnt/racket-5.2.900.1/collects/racket/generic.rkt" (No such file or directory; errno=2) 22:25 asumu: Oh huh. 22:26 offby1: and I just spent twelve seconds deducing the URL for the current release 22:26 asumu: rudybot: init racket 22:26 rudybot: asumu: your sandbox is ready 22:26 asumu: rudybot: eval (require racket/generic) 'party 22:26 rudybot: asumu: error: default-load-handler: cannot open input file: "/mnt/racket-5.2.900.1/collects/racket/generic.rkt" (No such file or directory; errno=2) 22:26 offby1: asumu: also, he won't eval two consecutive forms, I don't think 22:26 asumu: rudybot: 'party 22:26 rudybot: asumu: ; Value: party 22:27 Sgeo_: Can a struct be given a property or be made to follow some generic whatever without its co-operation? 22:27 offby1: grr. The various "Download" buttons on Raket's site do different things: one takes you to a page with links; another actually starts the download. 22:28 Sgeo_: Suppose I have library A that exports a struct and library B that exports a thing that would be useful with that struct, could glue code be written? 22:29 carleastlund_: offby1: which one actually starts the download? The only ones I've seen that actually download are the list of mirror links. 22:29 (join) myx 22:30 offby1: carleastlund_: the button on http://pre.racket-lang.org/installers/ actually starts a download 22:32 carleastlund_: Ah, okay, yes. Well, the whole interface for the pre-release installers is different anyway. I've no idea if the mirrors actually host the pre-releases, I doubt it given the haphazard update schedule. 22:34 (quit) netrino: Remote host closed the connection 22:39 (join) grettke 22:41 eli: jeapostrophe: ping 22:41 (part) sw2wolf: "ERC Version 5.3 (IRC client for Emacs)" 22:41 jeapostrophe: eli: pong 22:41 eli: I'm just about done writing you an email about the DNS question. 22:42 eli: Just thought that you might be here too late. 22:42 eli: In any case, I just sent it. 22:42 jeapostrophe: I'm on my way to bed actually... so I'll have to check it out in detail in the morning 22:42 eli: Bah. 22:42 eli: I was hoping to do the change now... 22:43 eli: I'll do it tomorrow then. 22:43 jeapostrophe: k, i'll read it 22:44 jeapostrophe: the ip is very unlikely to change 22:44 jeapostrophe: so the racket-lang.org names can go to the IP 22:44 jeapostrophe: and I'll set up the virtual host server to recognize those names 22:44 jeapostrophe: and then we can change the docs/defaults to use the r-l.o names 22:45 eli: OK, so I'll set up the DNS records soon, and by tomorrow they should be working fine. 22:45 jeapostrophe: great 22:46 eli: BTW, why "pnr", I thought it was supposed to be "pns", no? 22:46 jeapostrophe: email me when you do and i'll setup and test the virtual names on the server in morning 22:46 eli: ok 22:46 jeapostrophe: I thought that Matthew renamed it to PNR in the docs? 22:46 eli: Oh, I'll ask him then. 22:46 jeapostrophe: ya, it is 22:47 jeapostrophe: i just checked 22:47 jeapostrophe: "A package name resolver (PNR) ..." 22:47 eli: What does pnr stand for? 22:47 eli: Ah. 22:47 eli: ok. 22:47 carleastlund_: Anyone know what $ADDONDIR/planet/$VERSION/cache.rktd is for? 22:48 jeapostrophe: k, night night 22:52 offby1: Nuts. 5.3.1 still dumps core on my EC2 box 22:53 (quit) jeapostrophe: Ping timeout: 276 seconds 23:05 asumu: Sgeo_: no (on the generics question). Assuming I understand your question (let me try to repeat it). 23:05 asumu: Basically you want A to define a generic interface, B to some struct, and C to extend B's struct to use A's interface? 23:06 Sgeo_: Yes 23:06 asumu: What you *can* do: define a sub-struct that implements A's interface. 23:06 asumu: What you can't do: back-patch instances of B to implement A. 23:06 Sgeo_: Hrm 23:07 Sgeo_: There are Scheme-y OO systems that would allow for that though, aren't there? 23:07 asumu: Depending on what you mean by Scheme-y, yes. Guile has GOOPs, for example. The generics library was designed not to allow such backpatching. 23:08 asumu: Because it's basically some hidden mutation. 23:12 Sgeo_: Hidden mutation isn't necessarily evil 23:12 Sgeo_: Any Haskell implementation is going to do hidden mutation to turn lazy thunks into values when that thunk is forced 23:12 asumu: That's unobservable mutation. 23:13 asumu: It's an optimization over call-by-name basically. 23:13 asumu: You can definitely observe a mutation of a method table of some object. 23:17 asumu: Finally started to document my random pict/slideshow stuff: http://www.ccs.neu.edu/home/asumu/pict-stuff/pict-util.html 23:19 jonrafkind: ryb.. never heard of that 23:19 jonrafkind: why do you use such a thing? 23:20 asumu: RYB is just the thing you learn in elementary school where you mix paint basically. 23:20 asumu: It can be nice if you want to make a visualization where colors "naturally" blend together. 23:21 asumu hasn't really used it for anything yet 23:21 jonrafkind: i thought hsv was the best colorspace for naturally blending stuff 23:21 jonrafkind: since all you have to modify is h 23:22 (join) vu3rdd 23:22 (quit) vu3rdd: Changing host 23:22 (join) vu3rdd 23:22 asumu: They're probably both useful. Maybe RYB is more useful if you start out with two colors you want to mix. 23:23 jonrafkind: i guess its been too many years using rgb, i can't figure out any color combination in ryb 23:23 jonrafkind: yellow + blue = green?? 23:23 (join) ambrosebs 23:25 asumu: http://en.wikipedia.org/wiki/File:Color_star-en.svg 23:29 carleastlund_: Argh, I wish removing planet packages weren't such an iffy business. Any time I have more than one to remove, it's easier to just blow away my planet directory entirely and start from scratch. 23:30 asumu: carleastlund_: and you have to remove every version individually too... 23:33 neilv: do you have to remove planet packages often? 23:34 carleastlund_: neilv: I don't do much actively with planet any more, but any time I do (or any time I have in the past), it generally comes up once or twice for some reason or another. 23:35 carleastlund_: For instance, if I pull in something with an ancient reference to cce/scheme:4, all my "race setup" runs are going to be filled with build errors, so I eventually want to rip it out. Except then I have to figure out everything that depends on it, and rip that out too. And so on. 23:35 carleastlund_: "raco setup" 23:35 carleastlund_: Apparently I have autocorrect turned on :( 23:37 carleastlund_: And apparently "check spelling as you type" means "pervert your words silently, then send them out to the world". As opposed to friendly and harmless little red underlines or something. 23:37 neilv: i also take the approach of blow away ~/.racket at first sign of planet problems: http://www.neilvandyke.org/dotracket-enema/ 23:37 neilv: i haven't had to use it much lately, though 23:38 carleastlund_: I keep all my stuff in the relevant plt tree, so any time I change version or swap to a different installation, it goes away anyway.