00:05 (quit) flaggy_: Ping timeout: 258 seconds 00:08 (join) RacketCommitBot 00:08 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/HS3frg 00:08 RacketCommitBot: [racket/master] "typed-scheme" -> "typed-racket". - Eli Barzilay 00:08 (part) RacketCommitBot 00:30 (quit) jeapostrophe: Quit: jeapostrophe 00:34 (join) RacketCommitBot 00:34 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/D8td5Q 00:34 RacketCommitBot: [racket/master] Some more "typed-scheme" -> "typed-racket". - Eli Barzilay 00:34 RacketCommitBot: [racket/master] Remove uses of `scheme' in db docs. - Eli Barzilay 00:34 (part) RacketCommitBot 00:42 (quit) realitygrill: Read error: Connection reset by peer 00:46 (join) realitygrill 00:49 (join) yoklov 01:03 (quit) yoklov: Quit: Leaving. 01:05 (join) yoklov 01:22 (quit) yoklov: Quit: Leaving. 01:23 (join) yoklov 01:57 (quit) yoklov: Quit: Leaving. 02:01 (join) MayDaniel 02:06 (quit) MayDaniel: Read error: Connection reset by peer 02:18 (quit) Lajla: Quit: Phallic Illuminatus 02:22 (quit) realitygrill: Quit: realitygrill 02:34 (join) Lajla 02:38 (quit) dwaynecrooks: Ping timeout: 240 seconds 02:51 (join) dwaynecrooks 02:52 (join) hkBst 03:00 (quit) dwaynecrooks: Ping timeout: 260 seconds 03:05 (quit) jonrafkind: Ping timeout: 240 seconds 03:16 (join) bluezenix 03:26 (join) mceier 03:59 (quit) bluezenix: Ping timeout: 240 seconds 04:38 (join) noelw 05:15 (quit) mceier: Ping timeout: 264 seconds 05:21 (quit) eli: Ping timeout: 240 seconds 05:31 (join) mceier 05:53 (join) masm 06:22 (join) Burlingk 07:31 (quit) Lajla: Read error: Connection reset by peer 07:31 (join) Lajla 07:32 (join) JuanDaugherty 07:46 (join) neilv 08:35 (join) jeapostrophe 08:54 (join) mceier_ 08:55 (quit) mceier: Disconnected by services 08:55 (nick) mceier_ -> mceier 08:56 (join) dwaynecrooks 08:58 (join) realitygrill 09:22 (quit) neilv: Quit: Leaving 09:43 (join) tfb 09:47 (join) RacketCommitBot 09:47 RacketCommitBot: [racket] plt pushed 6 new commits to master: http://git.io/5H8L0g 09:47 RacketCommitBot: [racket/master] added a note about the blue dot - Robby Findler 09:47 RacketCommitBot: [racket/master] added a #:dialog-mixin argument to get-file, put-file, get-file-list, and get-directory - Robby Findler 09:47 RacketCommitBot: [racket/master] added a #:dialog-mixin argument to message-box and related functions - Robby Findler 09:47 (part) RacketCommitBot 10:01 (quit) noelw: Quit: noelw 10:04 (join) noelw 10:13 (quit) Burlingk: Quit: Leaving 10:23 (join) neilv 10:26 (nick) samth_away -> samth 10:36 (quit) realitygrill: Ping timeout: 245 seconds 10:37 neilv: i usually like to put an entire module into one file. but messing about with multiple separate phases pushes me to split into multiple files 10:37 samth: neilv: really? 10:37 neilv: er, i mean, split a package into multiple modules 10:37 samth: ah yes 10:37 samth: that is very true 10:37 (quit) hkBst: Remote host closed the connection 10:37 (quit) jao: Remote host closed the connection 10:39 neilv: i has a suspicion that "define-for-syntax" is trying to trick me into doing it the painful way 10:39 samth: `define-for-syntax' is good for small things, but when things get big, you want a separate module 10:42 (join) RacketCommitBot 10:42 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/uKFajg 10:42 RacketCommitBot: [racket/master] add forgotten file - Robby Findler 10:42 (part) RacketCommitBot 10:42 neilv: i have a new idea for a useful programmer's utility. you provide it with a set of source files and some set of tests to run, and it removes unnecessary "require" clauses from the source files 10:43 samth: neilv: fortunately, ryan already implemented that 10:43 neilv: the "check syntax" info alone is enough to remove unnecessary "require" clauses in most of my code, but not in some of it that gets fancy with syntax 10:44 samth: http://docs.racket-lang.org/macro-debugger/index.html#%28part._.Checking_requires%29 10:44 rudybot: http://tinyurl.com/4xnj7eg 10:44 neilv: does he use check-syntax-like info, or do it empirically? 10:44 samth: it instruments the expansion process 10:44 samth: so it's better than what check-syntax does 10:45 samth: if you're using a development version w/ xrepl, then there's a simple command for using it at the repl 10:45 samth: http://pre.racket-lang.org/docs/html/xrepl/index.html?q=xrepl#%28xrepl._check-requires%29 10:45 rudybot: http://tinyurl.com/3uofquj 10:46 neilv: so if you provide test cases as part of the input, then it should be smart enough to recognize requires that are needed only when your library is used and cannot be determined statically? 10:46 samth: neilv: i don't understand 10:50 neilv: it's hard to formulate a concise example in this little irc prompt 10:51 samth: the input is a module path, so it can't include test cases 10:51 samth: in general, i don't see how test cases relate at all 10:53 neilv: say "mymodule" provides a macro, and you want to eliminate unnecessary "require" in "mymodule"'s source. but one of the requires in "mymodule" could actually be used sometimes because input to the macro provided by "mymodule" can result in a reference to an identifier provided by that require 10:54 neilv: that isn't a great example 10:54 neilv: i'm trying to suggest that racket language leaves theoretical and even not-unlikely cases in which you can't determine all the dependencies statically 10:55 (join) anRch 10:56 neilv: i definitely do have a big use for jay's check-requires, however. just not my immediate one 10:56 samth: neilv: yes, it's possible to write a macro like that 10:57 samth: also, requires which are only for effect are missed 10:57 samth: also*2, it's ryan, not jay 10:57 neilv: anyway, that's why i originally said test cases too. because then the tool would put the burden on the user to cover what the tool cannot 10:58 neilv: oops, my bad. i have a jay fixation 10:58 neilv: for the record, thank you for check-requires, ryan. it looks great. 10:58 (quit) jeapostrophe: Quit: jeapostrophe 10:59 samth: almost any macro in the category you describe, though, is a bad idea, i think 10:59 noelw: you scared off jay 10:59 (join) yoklov 11:12 (quit) yoklov: Quit: Leaving. 11:56 neilv: matthew and eli sure did spend a lot of effort on scribble 11:58 (join) jeapostrophe 12:00 (quit) anRch: Read error: Connection reset by peer 12:00 (join) anRch 12:02 (quit) anRch: Client Quit 12:11 (nick) noelw -> noelw_away 12:11 (quit) noelw_away: Quit: noelw_away 12:13 (join) MayDaniel 12:13 samth: neilv: yes, yes they did 12:21 (join) anRch 12:24 (join) bluezenix 12:25 (quit) MayDaniel: Read error: Connection reset by peer 12:32 (quit) tfb: Quit: sleeping 12:35 (join) MayDaniel 12:37 (join) realitygrill 12:44 (join) jonrafkind 12:46 (quit) bluezenix: Quit: Leaving. 12:54 (quit) anRch: Quit: anRch 13:07 (quit) masm: Ping timeout: 240 seconds 13:28 (join) masm 13:32 (join) bluezenix 13:33 (join) fooo 13:36 (quit) jeapostrophe: Quit: jeapostrophe 13:38 (nick) fooo -> eli 13:39 (quit) eli: Remote host closed the connection 13:39 (join) eli 13:39 neilv: in a scribble defproc, is it permissible to use typed racket types rather than contracts? 13:40 offby1: ooh oooh 13:51 (join) yoklov1 13:53 samth: neilv: it's just an arbitrary racket form, so you can use whatever you want 13:54 neilv: that was my plan. just sanity checking on whether that's bad form (no pun) 13:55 (quit) mceier: Quit: leaving 13:57 samth: neilv: i certainly don't think so 13:57 samth: i'm rather a typed racket fan :) 13:58 neilv: ok. but just to be safe, you should probably still wear a red sox cap in some parts of town 13:59 offby1: who knew 14:01 (quit) dwaynecrooks: Ping timeout: 240 seconds 14:04 (join) mceier 14:07 (join) jeapostrophe 14:08 (quit) jeapostrophe: Client Quit 14:13 (join) dwaynecrooks 14:18 (join) RacketCommitBot 14:18 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/LmfRyg 14:18 RacketCommitBot: [racket/master] Actually run the strictness-tests. - Eli Barzilay 14:18 RacketCommitBot: [racket/master] Moved `net/base64' code from unit to module. - Jon Zeppieri 14:18 RacketCommitBot: [racket/master] Moved `net/cgi' code from unit to module. - Jon Zeppieri 14:18 (part) RacketCommitBot 14:35 (join) RacketCommitBot 14:35 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/-JGOTg 14:35 RacketCommitBot: [racket/master] Use better language for lang-info - Sam Tobin-Hochstadt 14:35 RacketCommitBot: [racket/master] Increase time limit. - Sam Tobin-Hochstadt 14:35 (part) RacketCommitBot 14:43 neilv: people really shouldn't use ancient rhel/centos in labs of students who don't run only ancient software 14:48 ohwow: word 14:54 (join) anRch 15:13 neilv: "if" requiring an else clause just helped me out again 15:14 neilv: the change to "if" was worth being non-backward-compatible 15:15 (join) RacketCommitBot 15:15 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/MbO2BQ 15:15 RacketCommitBot: [racket/master] when the filename changes, re-run the "what language are we in" code to - Robby Findler 15:15 RacketCommitBot: [racket/master] more adjustment of the drracket test suites to avoid using os-given focus information - Robby Findler 15:15 (part) RacketCommitBot 15:19 ohwow: :] 15:20 ohwow: the separation of if and when is nice indeed 15:23 (join) RacketCommitBot 15:23 RacketCommitBot: [racket] plt pushed 13 new commits to master: http://git.io/QMCckA 15:23 RacketCommitBot: [racket/master] Moved `net/dns' code from unit to module. - Jon Zeppieri 15:23 RacketCommitBot: [racket/master] Moved `net/ftp' code from unit to module. - Jon Zeppieri 15:23 RacketCommitBot: [racket/master] Moved `net/head' code from unit to module. - Jon Zeppieri 15:23 (part) RacketCommitBot 15:27 (join) cb` 15:32 (join) RacketCommitBot 15:32 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/DOBuOA 15:32 RacketCommitBot: [racket/master] make memory accounting and places work together - Matthew Flatt 15:32 (part) RacketCommitBot 15:34 neilv: ohwow: i think i was the person who originally asked for "when" and "unless", and now i never use them. i use "if", "and", "or" for boolean branching on one expression. sometimes "cond" as well, if i want to use the non-#f value and it's not already in a variable 15:35 ohwow: D8 15:38 offby1: I use when alla time. 15:38 offby1: "Unless" more or less never. 15:40 (join) jeapostrophe 15:42 (quit) jeapostrophe: Client Quit 15:47 neilv: offby1: have you seen these idioms? they are one of several reasons why i don't use "when" anymore. http://paste.org/pastebin/view/38019 15:48 ohwow: hm 15:49 ohwow: yeah but the whole point of (when) is that you don't have an else clause 15:49 neilv: it sometimes beats a (let ((VAR EXPR)) (when VAR CODE ...)) , and you can add more "cond" clauses then 15:49 ohwow: hm 15:49 neilv: you usually have else clauses in functional programming 15:49 ohwow: Yeah (when) is more for side-effects 15:49 ohwow: i think 15:50 offby1: GOD I HATE PASTE SITES 15:50 neilv: i'm not too fond of them either, but they're handy for irc sometimes 15:50 offby1: neilv: sorry, I'm too lazy and distracted to read that paste closely enough to understand it 15:51 offby1: they're quite handy, but I hate that they tart up your data with links, ads, etc. 15:51 offby1: http://ix.io is the only site I know of that doesn't do that by default, but it's slow 15:51 neilv: lisppaste is offline 15:52 (quit) MayDaniel: 15:53 offby1: what ohwow said: "when" is for side-effects. 15:54 (join) tfb 15:55 ohwow: hpaste is good 15:55 ohwow: http://hpaste.org 15:55 ohwow: hm 15:55 ohwow: it doesnt support lisp anymore 15:55 ohwow: strange 15:55 offby1: I don't want _any_ sort of support. 15:55 ohwow: there is also a fpaste.org and http://paste.call-cc.org/ 15:55 offby1: I just want: plain text in, plain text out. 15:56 ohwow: well 15:56 ohwow: i like syntax hilighting 15:56 offby1: I do too, when it's done correctly (namely: by Emacs, or a dedicated IDE) 15:57 ohwow: well 15:57 ohwow: sometimes i am on irc when i am not coding anything/dont have emacs open/chatting from the phone 15:58 ohwow: but you certanly have a point 15:58 offby1: I do. Usually my hat hides it, though 16:07 (quit) anRch: Quit: anRch 16:34 ohwow: what happened to leftparen? 16:38 neilv: there, i'm still not getting procedure type info from tr or contracts, but at least i can get the args from some of the more common patterns http://i.imgur.com/DQZ72.png 16:40 neilv: for api documentation, i'd like to you to only have to give the procedure name, and it supplies the full scribble contracts with arg names for prototype and result 16:40 ohwow: tr? 16:41 neilv: but if you want to specify the scribble contracts, or mcfly can't infer them, then you can 16:41 neilv: typed racket 16:41 ohwow: ah 16:42 neilv: when mcfly knows it's missing information, it will do the best it can to give you a valid manual, and then add another red warning to the end of the document about it 16:44 neilv: so, you are encouraged to use tr or contracts in your planet package, and when you do, adding documentation is a lot easier 16:47 neilv: and the mcfly development tool will be able to generate info.rkt in addition to the .scrbl file. so you just edit one racket file, put in the "doc" forms, run the mcfly tool, and perhaps you then have all the files you need to release a planet package 16:48 offby1: ooh 16:48 offby1: maybe I'll finally make a proper package outta all my misc stuff 16:48 neilv: kinda like how people used to release emacs add-ons. you wrote one .el file, followed some conventions for metadata in the file, and then just posted that file 16:49 neilv: the barrier to releasing a planet package is quite a bit bigger than for emacs package 16:49 offby1: indayd 17:05 (join) jeapostrophe 17:11 (quit) jeapostrophe: Quit: jeapostrophe 17:13 neilv: nice. all that quasisyntax/loc paid off 17:14 neilv: the error has the right source location info. http://i.imgur.com/yfHn3.png 17:15 offby1 <3 neilv 17:15 offby1: how much do we owe you? 17:16 neilv: i think we have to pay the plt people first, before we get to me 17:18 offby1: then the emacs people 17:19 offby1: then I have to feed the cat 17:19 offby1: pay alimony 17:19 offby1: _then_ we'll get to you 17:21 neilv: i have learned that iphone developers can make $200+/hr, and big-city law firm associates can bill close to $1k/hr (plus whatever they make from the firm) 17:21 neilv: i think racket developers should make somewhere in between there 17:21 jonrafkind: i make $2/hr 17:21 jonrafkind: working on racket 17:22 neilv: if you're a grad student, you're supposed to be an indentured servant 17:22 neilv: when you graduate, and learn iphone programming or go to law school, then you make the big bucks 17:23 jonrafkind: i learned android programming last week 17:23 jonrafkind: i should write some stupid apps and make some passive income 17:23 neilv: it's hard to make money on android apps selling them yourself. probably make more as work-for-hire 17:25 offby1: I am clearly not interested in learning Android programming, despite having thought that I was. 17:25 offby1: If I _were_, I'd have done something about it by now. 17:25 neilv: you're waiting for whalesong, and doing web-based mobile thin-client apps 17:25 offby1: yes! that's it. 17:25 offby1 glances around nervously. 17:26 offby1: rudybot-on-android, any day now 17:30 (quit) bluezenix: Quit: Leaving. 17:36 (quit) offby1: Read error: Connection reset by peer 17:39 (join) offby1 17:39 (quit) offby1: Changing host 17:39 (join) offby1 17:45 neilv: @(racketinput (+ 1 2 3) #,(racketresult 6)) 17:45 neilv: is that the right way to use racketinput and racketresult? 17:50 (join) dnolen 17:50 neilv: with the #,(racketresult ...) on a new line, i guess 17:52 samth: @examples[(+ 1 2 3)] is the right way to use them :) 17:53 neilv: heh 17:53 samth: eli: is there any way to change the sort order of the profile? 18:04 neilv: i'm not fond of how scribble wants you to format racket results. i liked texinfo's way, which did not have the ">" and used a double-arrow character between expression and result 18:05 neilv: for one thing, the texinfo lets you line up a series of expressions and their results together tightly, in a columnar format, so you can see how result changes with input, more easily 18:06 (quit) tfb: Quit: gone 18:07 neilv: http://www.neilvandyke.org/soundex-scheme/index.html#(def._((planet._main..ss._(neil._soundex..plt._1._3))._soundex)) 18:07 neilv: that's an example, converted from the texinfo to scribble. normally the "==>" would be a double-arrow character 18:09 (join) jeapostrophe 18:12 samth: jeapostrophe: i assume this: http://drdr.racket-lang.org/23456/collects/tests/planet/run-all.rkt means you should have a drdr step to blow away the planet cache 18:17 (quit) jeapostrophe: Quit: jeapostrophe 18:17 (quit) wtetzner: Remote host closed the connection 18:21 (join) jeapostrophe 18:22 mithos28: samth: how is StructTop different from Struct? 18:23 samth: mithos28: for structs that don't have a subtyping relationship between their instanatiations 18:23 samth: then StructTop is the supertype of all of the instantiations 18:24 mithos28: ah so if they are mutable, or have mutable fields, say? 18:24 (quit) jeapostrophe: Client Quit 18:27 eli: samth: Huh? 18:28 samth: mithos28: that, or they have a type parameter that appears in both co- and contra-variant position 18:28 samth: for example 18:29 samth: eli: i'd like to sort the output of the `text-render' profile renderer by "self" time 18:29 samth: is that possible, or should i write my own renderer? 18:30 eli: Did you look at the docs? 18:30 samth: eli: yes 18:30 eli: Then you probably know more than I do. 18:31 samth: i'll take that as a no 18:31 samth goes to hack text-render 18:32 eli: samth: Looking at the sources too, I think that that's correct. 18:33 eli: But one thing that I do remember is that sorting it like that leads to pretty useless output, as I described in the recent email. 18:33 eli: Something better to do would be to visualize the bad self times so it's easy to find them. 18:33 samth: eli: the reason i want to do it is i have 400+ entries, and very few large self times 18:33 eli: (Well, even more useful are the things I described in that email.) 18:33 samth: so it's hard to find them 18:34 eli: So if you have some visual indication of the large self time, it would be easier to find them. 18:34 samth: yes, that would be nice 18:34 eli: For example some stupid "bar chart" with "###" indicating its size. 18:34 samth: in this case, most of the noticeable self times aren't even that big 18:34 samth: so i want to see them in order 18:34 eli: Then you can search interactively and enter ##s to get to the more interesting bits. 18:35 eli: Can you send me the output? 18:35 eli: (The current one.) 18:35 eli: And BTW, did you try the graphviz renderer too? 18:36 samth: punge.ccs.neu.edu/~samth/prof.out.txt punge.ccs.neu.edu/~samth/prof.out2.txt punge.ccs.neu.edu/~samth/prof.out3.txt 18:36 samth: no, i haven't tried that 18:36 (quit) mceier: Quit: leaving 18:37 samth: annoyingly, the functions that show up with big self times are `map' `andmap' and `ormap' 18:37 neilv: graphviz is often helpful out of the box. getting it to give a really good visual takes many hours of tuning 18:38 samth: eli: more helpful than better visualization would be knowing which core runtime function was on the top of the stack 18:39 samth: but that isn't really your department 18:41 neilv: @(define ==> (larger "\u21d2")) 18:41 neilv: @(racketblock (+ 1 2 3) #,==> #,(racketresult 6)) 18:43 eli: samth: That (the "annoyingly" part) is exactly why sorting by self times is not helpful. 18:43 eli: If `map', `andmap', etc are the big ones, then you want to know who called them the most. 18:44 eli: Or, who they called the most. 18:44 eli: samth: And here's another idea for giving you what you want: 18:44 eli: at the end of the profile report (same as it is now), show a list of function pointers sorted by self times. 18:44 eli: Where pointers are those "[N]" markers. 18:45 eli: (That will probably be easy to add.) 18:47 samth: eli: that would be all that i need 18:49 (join) wtetzner 18:51 eli: samth: Looking at your profile, `subtype*' is the biggest bottleneck, which is probably not surprising. 18:52 eli: And it's called mostly from `ormap' which in turn makes that a bottleneck too. 18:52 samth: yes, in the sense that it's the only thing in *my* code that appears slow 18:53 samth: eli: which profile are you looking at -- they turned out surprisingly different 18:53 samth: even though they're just the same file with more copies of the same code 18:53 eli: There are also `f1333' and `f1555', maybe they're contract checks? 18:53 samth: yeah, i haven 18:53 eli: I'm looking at #2. 18:53 samth: 't figured out which those are 19:05 samth: the other problem is that it's impossible to tell from the profile output what's slow about `subtype*' -- is it called too often, are some of the calls slow, are all the calls slow, etc 19:25 (quit) dwaynecrooks: Quit: Leaving 19:44 mithos28: samth: If I a have a parametric struct type S of one variable X. Is (S Integer) a subtype of (StructTop (S X))? From what you said I think they should be, but that doesn't match the current implementation. 19:45 samth: mithos28: you're right on both counts 19:45 samth: sadly, gotta run now 19:45 (nick) samth -> samth_away 19:45 samth_away: btw, i'll get to your pull req tomorrow 19:45 mithos28: k, hopefully there will be another patch in there by then 19:46 (quit) sethalves: Ping timeout: 252 seconds 19:46 (quit) em: Ping timeout: 264 seconds 19:58 (join) em 20:04 (join) RacketCommitBot 20:04 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/5nabjg 20:04 RacketCommitBot: [racket/master] pr# 12143 raco make -j 2, fix split-path's 'relative to byte-string conversion - Kevin Tew 20:04 (part) RacketCommitBot 20:05 neilv: when inside a codeblock in scribble, what's the right way to escape to a proportional, serifed font? 20:06 neilv: #,(italic ...) works 20:14 (join) jeapostrophe 20:17 (quit) jeapostrophe: Client Quit 20:19 (join) RacketCommitBot 20:19 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/IRYh-w 20:19 RacketCommitBot: [racket/master] Corrections to the guide's places entry - Matthew Flatt 20:19 (part) RacketCommitBot 20:23 (join) darkf 20:26 (join) jeapostrophe 20:44 (quit) jeapostrophe: Quit: jeapostrophe 20:45 (quit) masm: Quit: Leaving. 20:53 (join) sethalves 21:06 neilv: lindenlab, racket is ready to serve :) 21:19 (join) flaggy 21:22 (quit) yoklov1: Quit: Leaving. 21:25 (join) ryanaghdam 21:31 (join) RacketCommitBot 21:31 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/nVl_Iw 21:31 RacketCommitBot: [racket/master] add missing require - Robby Findler 21:31 RacketCommitBot: [racket/master] add yet another dialog-mixin argument to a standard dialog, this time - Robby Findler 21:31 RacketCommitBot: [racket/master] more adjustments to try to get the drracket test suites running in drdr - Robby Findler 21:31 (part) RacketCommitBot 21:52 (quit) jonrafkind: Ping timeout: 252 seconds 22:11 (quit) ryanaghdam: Quit: Lost terminal 22:14 (quit) flaggy: Ping timeout: 276 seconds