00:04 sheikra: I'm a little confused by the types. Why is the type of "1" :- One? 00:04 sheikra: and 2 :- Positive-Byte... 00:05 sheikra: and the type of any symbol the symbol itself ... 00:08 (quit) jonrafkind: Ping timeout: 240 seconds 00:20 (join) ckrailo 00:25 (join) mithos28 00:41 eli: sheikra: One is probably a recent addition due to the numeric tower work. 00:42 eli: As for symbols, you can "infer" either Symbol or the value -- it just happens that it's usually more useful to go for the latter. 00:42 eli: Unlike numbers. 00:42 eli: Except for 1, probably. 00:42 eli: Which is why they changed that, probably. 00:43 (nick) elliottcable -> paws 00:47 (nick) paws -> elliottcable 00:49 sheikra: eli: thanks. I just got back from lunch 00:50 sheikra: so is One a subtype of ...? 00:53 eli: sheikra: Of course. It's still a Fixnum, Integer, Number, etc. 00:53 (nick) elliottcable -> everyone 00:53 (nick) everyone -> elliottcable 00:54 sheikra: eli: oh, the type One is "1" itself? 00:54 eli: elliottcable: Re the noise -- just to make sure, I really didn't mean to flame, but to find any kind of weak spots in the web page and documentation, so I really meant to ask those questions. 00:54 sheikra: It has only one element? 00:55 eli: sheikra: Yeah, that's my guess. 00:55 elliottcable: eli: hm? 00:55 elliottcable: eli: what noise? 00:55 eli: sheikra: Given that 1 is in it... 00:55 elliottcable: eli: the mailing list replies? Oh, I’ll get to them, I’m just not usually much of a mailing list person. I think that’s my … fifth mailing-list post *ever*. 00:55 sheikra: eli: hmm.. interesting 00:55 elliottcable: eli: were you one of the repliers? 00:55 eli: sheikra: You can also use `1' as a type (as well as any other literal), but for some types you get a different name, in case there are several options. 00:56 elliottcable: eli: if you want to get ahold of me faster, come hang in ##Paws. I’m usually there. 00:56 eli: sheikra: (BTW, I thought that you were @ brown...) 00:57 eli: elliottcable: Yeah, I had a long reply to your post, which might seem like a flame pile of rhetorical questions -- but no rhetorics intended. 00:57 eli: elliottcable: What's ##Paws? 00:58 elliottcable: eli: I think I might have already read that one. I read one or two replies before realizing there were like 10, and deciding “fuck this, I’ll come back later” :D 00:58 elliottcable: eli: my programming language. :3 00:59 elliottcable: but, honestly, we discuss language design in general (or have flame wars.) more often than anything in there 01:01 eli: elliottcable: What's special about it? 01:02 elliottcable: well, some random crap, like distributed object-space, and a fairly innovative interpreting preprocessor that pretty much leaves the syntax up to the user 01:03 elliottcable: eli: but the flagship feature is inherent asynchronicity via a sexy form of implicit and prevasive CPS 01:03 elliottcable: it was built to do the kinds of things Node.js does well, but better; and without all the damn typing of crazy nested explicit callbacks 01:05 elliottcable: oh, free concurrency. 01:05 (quit) yoklov: Quit: Leaving. 01:10 eli: elliottcable: My last impression of Node.js is a half-assed cover up for a lack of continuations and/or threads and such. (It's a very vague impression.) 01:10 eli: What's with the syntax though? 01:10 eli: (And, any web pages?) 01:11 elliottcable: pretty much true, re: Node.js 01:11 elliottcable: but there’s benefits, primarily (IMO) the application of JavaScript to the problem 01:11 sheikra: eli: it seems that racket doesn't support overloading? 01:11 elliottcable: like I said, the syntax is non-existent. All that we define is a very minimal syntax for declaring scope and sub-expressions; everything else is defined in libspace with homoiconicity APIs available at preprocess-time 01:13 eli: elliottcable: Pointers? 01:13 eli: sheikra: What do you mean by overloading? 01:13 elliottcable: eli: hm? 01:14 sheikra: eli: I mean same-named functions dispatched by the types of their arguments. does typed racket support it? 01:15 eli: sheikra: You mean something like (U (A1 -> A2) (B1 -> B2))? 01:15 eli: elliottcable: ... for web pages that describe that. 01:15 elliottcable: ah, nope 01:16 elliottcable: still under dev. 01:16 elliottcable: Just a metric shitton of old code examples on gist.github, and the codebases in progress, and the knowledgebase of the people in the IRC channel (which is where everything meaningful is) 01:16 elliottcable: waiting to create a website and whatnot for when we have a finished product. 01:17 (join) no-name- 01:18 sheikra: eli: I mean (define f (lambda (x : Int) ...)) (define f (lambda (x : String)) ...) ... then (f 1) and (f "hi") dispatch to them respectively 01:18 (quit) mithos28: Quit: mithos28 01:19 sheikra: eli: I guess we are talking about the same thing.. 01:19 sheikra: but I don't think they are unions 01:20 sheikra: (U (A1 -> A2) (B1 -> B2)) will not type check when applied on something of type A1 01:21 eli: sheikra: Ah. You're talking about something that it will never do, since the very explicit design goal is to by a typed *racket* language, so it won't provide features that racket doesn't have. 01:21 eli: IOW, it doesn't support that, and will very likely continue to not do so... 01:23 eli: I thought that you were talking about making your own definition that dispatches on the type, and wanting that union type that doesn't quite work for reasons related to how a union cannot be a function (IIRC, a `case-lambda' type could be used in some cases). 01:24 (quit) no-name-: Ping timeout: 276 seconds 01:24 (join) no-name- 01:26 eli: elliottcable: Kind of hard to get excited over something like that... (I tried to catch some stuffs, but didn't see anything from your web page or your github page.) 01:28 eli: (BTW, IMO markdown has far worse problems than it's treatment of *...* etc, or quotes...) 01:29 eli: (That's re http://blog.elliottcable.name/posts/markright.xhtml) 01:30 (quit) martinhex: Read error: Operation timed out 01:30 (join) martinhex 01:35 (quit) no-name-: Ping timeout: 276 seconds 01:35 (join) no-name- 01:36 (quit) sheikra: Read error: Connection reset by peer 01:37 elliottcable: eli: I’m interested in hearing them 01:37 elliottcable: eli: let’s not clog up here; come hang in ##Paws 01:38 (join) sheikra_ 01:39 (join) pattern 02:13 (join) neilv 02:26 (join) realitygrill_ 02:29 (quit) realitygrill: Ping timeout: 246 seconds 02:29 (nick) realitygrill_ -> realitygrill 02:31 (quit) realitygrill: Quit: realitygrill 02:32 Sgeo: Argh 02:32 (quit) sheikra_: Ping timeout: 246 seconds 02:33 (join) hkBst 02:58 (quit) neilv: Ping timeout: 240 seconds 02:58 eli: elliottcable: Sounds like it would be off topic there too... 02:59 elliottcable: eli: yeah, but we always are, so meh 02:59 (join) neilv 02:59 (quit) neilv: Changing host 02:59 (join) neilv 03:00 bremner_: make a new channel? ;) 03:00 elliottcable: pff 03:00 elliottcable: it’s too much fun 03:00 elliottcable: I tend to collect intelligent people there, so the off-topic conversations are always … interesting. 03:01 neilv: better than collecting intelligent people in one's basement 03:01 elliottcable: are you sure? 03:01 elliottcable: perhaps you could generate brainpower by osmosis. 03:01 elliottcable: or by, you know, eating brains. 03:01 elliottcable: either way. 03:02 neilv: that research space is pretty well exhausted 03:04 eli: elliottcable: It's not too bad here too, and I prefer to reduce the number of bits that I need to sift through... 03:05 elliottcable: hah 03:05 bremner_ goes to #emacs for offtopic chatter ;) 03:05 eli: The problem of markdown is very visible in wikipedia and such -- as soon as it's used for something moderately important and/or more than some personal blog or random comments, things break down pretty badly. 03:06 eli: In wikipedia, you can see it in the huge amount of ad-hoc templates and a salad of syntaxes that mean all kinds of things. 03:06 eli: SO also breaks too often on all kinds of corner cases that are "not popular enough". 03:07 eli: (I always have problems with our documentation URLS which have parens in them...) 03:19 (quit) no-name-: 03:22 (quit) Demosthenes: Ping timeout: 276 seconds 03:24 (join) no-name- 03:24 (join) Demosthenes 03:25 (quit) cpach: Ping timeout: 240 seconds 03:33 (quit) ckrailo: Quit: Computer has gone to sleep. 04:14 Demosthenes: anyone here using rackunit, know how to make it provide positive acknowledgement of tests? 04:23 (quit) Sgeo: Read error: Connection reset by peer 04:24 (join) Sgeo 04:32 (quit) neilv: Ping timeout: 260 seconds 04:32 (join) sheikra 04:52 (quit) Demosthenes: Ping timeout: 264 seconds 05:00 (join) neilv 05:15 (quit) sheikra: Read error: Connection reset by peer 05:18 (join) sheikra 05:19 (quit) neilv: Ping timeout: 260 seconds 05:20 (join) masm 05:31 (quit) sheikra: Quit: Leaving 05:34 (join) sunnyps 05:52 (part) sunnyps: "Leaving" 06:41 (quit) rekahsoft: Ping timeout: 276 seconds 06:42 (join) rekahsoft 07:00 (quit) martinhex: Read error: Connection reset by peer 07:01 (join) martinhex 07:04 (quit) no-name-: 07:38 (join) MayDaniel 07:51 (join) yoklov 07:51 (join) PLT_Notify 07:51 PLT_Notify: racket: master Robby Findler * 71770ee (1 files in 1 dirs): one more collection-path => collection-file-path in scribble - http://bit.ly/mvHEnt 07:51 (part) PLT_Notify 07:52 (join) yoklov1 07:52 (quit) yoklov: Read error: Connection reset by peer 08:00 (join) lucian 08:10 (join) sstrickl 08:15 (quit) MayDaniel: Read error: Connection reset by peer 08:18 (quit) yoklov1: Quit: Leaving. 08:24 (join) PLT_Notify 08:24 PLT_Notify: racket: master Matthew Flatt * ffbaaa3 (1 files in 1 dirs): kFreeBSD fix from David Bremner - http://bit.ly/jxCeyv 08:24 (part) PLT_Notify 08:46 (join) realitygrill 08:47 (join) yoklov 09:02 (quit) yoklov: Quit: Leaving. 09:05 (join) tfb 09:24 (quit) lucian: Remote host closed the connection 09:25 (quit) realitygrill: Quit: realitygrill 09:51 (join) outworlder 09:51 (part) outworlder 09:54 (join) MayDaniel 09:55 (join) ckrailo 09:59 (join) drewr 10:05 (join) sisi 10:06 sisi: hi :'p 10:08 sisi: omg :'( bande de doupet.. 10:09 sisi: scheme < all .. 10:09 (quit) sisi: Client Quit 10:09 _p4bl0: okaaaay 10:10 (join) dnolen 10:15 (quit) dnolen: Client Quit 10:33 (quit) rekahsoft: Read error: Operation timed out 10:34 (join) rekahsoft 10:37 (join) Qerub 10:39 (quit) ckrailo: Quit: Computer has gone to sleep. 10:43 (quit) MayDaniel: Read error: Connection reset by peer 10:57 (quit) hkBst: Read error: Connection reset by peer 11:04 (join) ckrailo 11:15 (join) realitygrill 11:18 (join) anRch 11:19 (join) mithos28 11:44 (quit) realitygrill: Read error: Connection reset by peer 11:44 (join) dnolen 11:45 (join) realitygrill 11:45 (join) PLT_Notify 11:45 PLT_Notify: racket: master Vincent St-Amour * e64ba22 (1 files in 1 dirs): Have the TR test harness skip emacs unsaved file backups. 11:45 PLT_Notify: racket: master Vincent St-Amour * 4cd0ad4 (2 files in 1 dirs): Coerce reals in float expressions when valid. 11:45 PLT_Notify: racket: master commits ffbaaa3...4cd0ad4 - http://bit.ly/lZkhOc 11:45 (part) PLT_Notify 11:55 (join) jonrafkind 11:58 (quit) anRch: Quit: anRch 12:04 (join) anRch 12:10 ohwow: http://nice.sourceforge.net/visitor.html hmm 12:14 (quit) realitygrill: Read error: Connection reset by peer 12:15 (join) realitygrill 12:17 Qerub: ohwow: Are you enjoying the idea of multimethods? :) 12:20 ohwow: Yes it's nice 12:21 ohwow: Racket doesn't have dynamic dispatch @ core, does it? 12:21 ohwow: I've managed to find http://planet.racket-lang.org/package-source/murphy/multimethod.plt/2/1/planet-docs/main/index.html tho 12:21 rudybot: http://tinyurl.com/3zsn26m 12:22 Qerub: ohwow: Hehe, yes, nice indeed. 12:22 Qerub: ohwow: Actually, it has dynamic dispatch, but only single (not multi). 12:22 ohwow: please elaborate 12:22 Qerub: http://docs.racket-lang.org/reference/mzlib_class.html 12:22 ohwow: what's the difference between single dispatch and multiple distpactch? 12:23 Qerub: Start here: http://en.wikipedia.org/wiki/Multiple_dispatch 12:23 ohwow: I've noticed that method defined by (define-method) accepts.. symbols? 12:23 ohwow: I would assume it accepts structs 12:24 jonrafkind: single dispatch uses the dynamic type of the "first" argument, the foo in foo.blah(...) 12:25 ohwow: Qerub: I know what's multiple dispatch, but what's single dynamic dispatch? 12:25 jonrafkind: multidispatch uses the dynamic type of all arguments, x, y, z, in foo.blah(x, y, z) 12:25 ohwow: ah 12:26 Qerub: ohwow: I'm not familiar with that multimethod-library. Reading the page you linked now. 12:29 (join) lucian 12:29 (quit) tfb: Ping timeout: 264 seconds 12:31 Qerub: ohwow: It seems like the library author wanted something more general than multimethods for structs/classes and added "ad-hoc hierachies of values". 12:31 Qerub: ohwow: Are you familiar with Common Lisp Object System? It has multimethods aswell. 12:32 ohwow: no, not really 12:33 Qerub: I hope I don't get kicked for bringing up CL here ;-) 12:36 Qerub: In the multimethods.plt example, I find this pretty confusing: (define-multimethod (beats? a b) :: (vector-immutable a b)) 12:37 Qerub: What does vector-immutable mean in that context? 12:37 Qerub: (rhetoric question) 12:38 (join) superjudge 12:41 (quit) anRch: Quit: anRch 12:45 (nick) samth_away -> samth 12:45 samth: Qerub, you can check out swindle for CLOS-style programming in racket 12:46 Qerub: Oh, right. 12:46 Qerub: ohwow: Listen to samth :) 13:04 (join) elliott 13:05 elliott: Are the nightly builds stable enough to use day-to-day or are the release builds preferable? 13:06 jonrafkind: nightly is probably ok, they are equivalent to what the developers usually run (i.e, build from HEAD each day or whatever) 13:06 jonrafkind: i mean im usually 3-4 days lagged behind HEAD but i havent had any issues 13:07 elliott: OK, thanks. 13:15 (quit) mithos28: Quit: mithos28 13:17 (join) mithos28 13:18 (quit) realitygrill: Read error: Connection reset by peer 13:19 (join) realitygrill 13:27 (join) MayDaniel 13:28 (join) realitygrill_ 13:29 (quit) realitygrill: Ping timeout: 246 seconds 13:29 (nick) realitygrill_ -> realitygrill 13:37 (quit) realitygrill: Read error: Connection reset by peer 13:37 (join) realitygrill 13:43 (quit) realitygrill: Read error: Connection reset by peer 13:43 (join) realitygrill 13:51 (quit) MayDaniel: Read error: Connection reset by peer 13:55 (quit) realitygrill: Read error: Connection reset by peer 13:56 (join) realitygrill 14:04 (join) anRch 14:21 (quit) pattern: Read error: Connection reset by peer 14:24 (join) PLT_Notify 14:24 PLT_Notify: racket: master Vincent St-Amour * bdf1073 (1 files in 1 dirs): Fix optimizer expected log format. ... - http://bit.ly/m0fI9Q 14:24 (part) PLT_Notify 14:25 (join) Fare 14:32 (join) dnolen_ 14:33 (quit) elliott: Quit: Leaving 14:34 (join) elliott 14:35 (quit) dnolen: Ping timeout: 251 seconds 14:41 (quit) mithos28: Quit: mithos28 14:42 (join) heeki 15:06 (quit) anRch: Quit: anRch 15:35 (join) PLT_Notify 15:35 PLT_Notify: racket: master Sam Tobin-Hochstadt * 18e83f2 (1 files in 1 dirs): Fix result contract of `stx->list'. 15:35 PLT_Notify: racket: master Sam Tobin-Hochstadt * 744d192 (1 files in 1 dirs): Remove duplicate definitions; reprovide from `racket/private/stx' instead. 15:35 PLT_Notify: racket: master Sam Tobin-Hochstadt * c2291e0 (2 files in 1 dirs): Add types for some of `syntax/stx' ... 15:35 PLT_Notify: racket: master commits bdf1073...c2291e0 - https://github.com/plt/racket/compare/bdf1073...c2291e0 15:35 (part) PLT_Notify 15:36 (join) Anchor 15:37 Anchor: Hi, any advices how to install Racket in Ubuntu 11.04? 15:37 Anchor: It looks that I have to build it from the sources 15:38 Anchor: Are there any live persons? 15:38 ohwow: Anchor: http://packages.ubuntu.com/oneiric/racket 15:38 ohwow: I am not sure what is Ubuntu 11.04 15:39 ohwow: if it's an older version, I assume you have some kind of backporting system? 15:39 (join) mithos28 15:39 Anchor: I'm not sure 15:39 samth: Anchor, go here: http://racket-lang.org/download/ 15:39 Anchor: apt-get doesn't know about it 15:39 samth: select Ubuntu 15:40 samth: download, and follow the instructions 15:41 samth: alternatively, go here: https://launchpad.net/~plt/+archive/racket 15:41 Anchor: what about x86-64 - there is i386 only 15:42 Anchor: in downloads list 15:42 samth: i don't think there are prebuilt binaries for x86-64 right now 15:42 Anchor: I see x86-64 only for Fedora-14 15:42 samth: there is: http://pre.racket-lang.org/installers/ 15:42 samth: which has debian installers for 64 bit 15:42 samth: but no ubuntu yet 15:43 Anchor: are there any troubles if I'll try to build it by myself? 15:45 jonrafkind: Anchor, did you realize you can install the ppa for ubuntu as samth suggested? 15:47 Anchor: I'm not sure that Debian's package fits fresh ubuntu 15:49 jonrafkind: what? 15:49 jonrafkind: a ppa is for ubuntu 15:52 (quit) Anchor: Quit: Ухожу я от вас (xchat 2.4.5 или старше) 16:03 (join) elliott_ 16:05 (join) gmarceau 16:07 (quit) elliott: Ping timeout: 240 seconds 16:10 (quit) superjudge: Quit: superjudge 16:16 (quit) Qerub: Quit: Qerub 16:24 (quit) elliott_: Ping timeout: 250 seconds 16:28 (join) Anchor_ 16:31 tonyg: Are .zo files architecture-independent? If I compile on one kind of machine, and transplant the .zo files to another architecture, will things work out OK? 16:31 bremner_: probably. 16:32 bremner_: in principle, racket could compile differently on different architectures 16:32 (quit) Anchor_: Ping timeout: 240 seconds 16:32 bremner_: as far as I know, nothing in collects does that currently. 16:32 jonrafkind: there is (get-platform) or something which returns 'unix or 'win32 16:32 tonyg: cool. I'm about to try it: I'm building Racket for OpenWRT 16:33 bremner_: tonyg: is that a debian like thing? 16:33 tonyg: yep 16:33 tonyg: well no 16:33 tonyg: sorry 16:34 tonyg: it's linux 16:34 (join) Anchor 16:34 bremner_: hah 16:34 tonyg: but it uses "*.ipkg" 16:34 tonyg: a la many other linuxy embedded systems 16:35 bremner_: right. well, I currently build debian packages this way (PLT_SETUP_OPTIONS="--no-zo --no-docs") most architectures. 16:36 tonyg: Interesting! Thanks bremner_, that looks like a useful tip 16:36 jonrafkind: does that mean the collects get built without zo's bremner_ ? 16:36 bremner_: jonrafkind: no, it just means I only build .zo's once 16:37 jonrafkind: im lost 16:37 jonrafkind: in what way do the zos get built multiple times? 16:37 bremner_: because racket gets compiled for 10 architectures 16:38 tonyg: bremner_: so you somehow sleight-of-hand the previously-compiled .zos in when building for most of the 10? 16:38 jonrafkind: oh I see 16:38 bremner_: well, I split into two packages, racket-common has the .zo's and racket is built everywhere. 16:39 tonyg: aha! ok that looks like a sensible choice. On a router w limited memory I may have to subdivide more finely than that eventually even 16:39 bremner_: there is some work underway to make racket more modular, I heard. 16:39 tonyg: bremner_: where should I look for your deb scripts? I'd love to see the details of how you approach this 16:39 tonyg checks the regular tree to see if there's a debian/ directory there :) 16:40 tonyg: (nope, there isn't) 16:40 bremner_: git://git.debian.org/git/collab-maint/racket 16:40 tonyg: thanks, I'll check that out 16:46 tonyg: whoa, ok, it has complete sources in it 16:50 tonyg: ah, perhaps because of dfsg? 16:50 bremner_: ah, more that disk space is cheaper than my time. sorry about the big download. 16:50 tonyg: :) np 16:52 tonyg: bremner_: when you're cross-compiling, does the normal ./configure dance Just Work? I don't see any special code in the control file 16:53 tonyg: I mean rules 16:53 bremner_: I don't cross compile, I (well, debian) have a lot of computers 16:53 tonyg: ah :) ok 16:53 tonyg: hmm 16:53 tonyg predicts pain 16:54 tonyg: pleased to see mips support in there 16:55 (quit) mithos28: Quit: mithos28 16:55 bremner_: I think you will hit the problem of diskspace without some hacking and slashing. 16:55 offby1: Don't suppose anyone has taught the racket profiler to emit output suitable for kcachegrind? 17:06 (join) tauntaun 17:20 (join) yoklov 17:33 (join) lucian_ 17:35 (quit) lucian: Ping timeout: 240 seconds 17:49 (join) PLT_Notify 17:49 PLT_Notify: racket: master Robby Findler * 4d4a94a (3 files in 2 dirs): removed EoPL from the language dialog (and adjust the docs a little ... - http://bit.ly/kO24Ph 17:49 (part) PLT_Notify 18:04 (part) yoklov 18:07 (join) mithos28 18:10 (quit) tauntaun: Quit: Ex-Chat 18:15 (nick) lucian_ -> lucian 18:22 (quit) dnolen_: Ping timeout: 252 seconds 18:26 samth: offby1, we'd love you forever if you did :) 18:28 (quit) sstrickl: Quit: sstrickl 18:29 offby1: Now that I've played with the profiler, I either don't understand it, or it doesn't work well enough for me :-| 18:30 offby1: its call tree seems to be less deep than I'd expected: I have a reasonably complex function which shows up as a leaf node, even though it calls a couple of other functions. 18:31 offby1: I suspect this has to do with how continuation-mark-set->context works, but don't really know 18:32 offby1: so: this particular function is where all my time is going, but I don't understand -why- 18:34 samth: can you up the sampling rate? 18:46 (join) Rodolfo 18:46 Rodolfo: hello 18:47 Rodolfo: could anyone help me figure out what's wrong with a bundled game? 18:47 Rodolfo: I am trying to run "Paint by Numbers" on Racket 5.1.1 18:48 Rodolfo: and I get a dialog box with the following: 18:48 Rodolfo: min-height in area<%>: expected argument of type ; given 26587/128 === context === /opt/racket/collects/racket/private/more-scheme.rkt:265:2: call-with-exception-handler /opt/racket/collects/games/paint-by-numbers/gui.rkt:66:4 do-make-object /opt/racket/collects/games/paint-by-numbers/paint-by-numbers.rkt:211:4 do-make-object /opt/racket/collects/games/paint-by-numbers/paint-by-numbers.rkt:502:4: playe 18:52 offby1: sounds like a simple programming error. 18:52 offby1: Welcome to Free Software! :-) 18:53 jonrafkind: Rodolfo, what os are you on 18:53 jonrafkind: oh linux I guess 18:53 jonrafkind: well it works for me.. 18:54 Rodolfo: yeah, ubuntu 10.10 18:54 Rodolfo: I would like to fix and send a patch 18:54 offby1: jonrafkind: what do I need to do in drracket to run that? 18:54 Rodolfo: but the context info didn't help me much 18:55 jonrafkind: the games? i dunno, i just ran it from the command line. bin/plt-games 18:56 Rodolfo: I opened some of the *.rkt from racket/collects/games/paint... but I don't know how to run them from DrRacket. 18:56 offby1: ah. 18:56 offby1: ooh ooh I see what Rodolfo is seeing 18:57 jonrafkind: looks like you have to instantiate the game@ unit and run (player) 18:59 Rodolfo: which file to open/run on drracket? 18:59 jonrafkind: what 18:59 Rodolfo: main.rkt is not "runnable " out of the box: Module Language: only a module expression is allowed, either #lang or (module ...) 19:00 offby1: I just submitted a bug report; when I get the URL I'll holler 19:00 offby1: http://bugs.racket-lang.org/query/?cmd=view&pr=11924 19:01 Rodolfo: well, is there a link to this bug tracker in the main rack-lang.org pages? I didn't find it before... 19:01 offby1: if you're asking "how would I have submitted a bug like that", the answer is: run drracket, click on the "Help" menu, and choose "Submit bug report" 19:01 jonrafkind: hm thats true, the bugs page isn't linked from anywhere 19:03 Rodolfo: aham! Thanks, now I know (that was indeed my question) 19:04 Rodolfo: So should I try to submit my first bug? "The bug page isn't linked from anywhere" 19:06 jonrafkind: thats probably done on purpose 19:06 jonrafkind: when you use drracket to submit bugs all sorts of information is sent along 19:06 jonrafkind: if you use the web page that information is lost and it makes debugging harder for the developers 19:07 offby1 nods gravely 19:08 jonrafkind: probably assuming people will find the bug report mechanism in drracket is a mistake, since not everyone uses drracket and the whole procedure is highly unique in the software world, but such is life 19:08 Rodolfo: ok, so I will postbug my bug report for later 19:09 Rodolfo: *postpone 19:09 (join) bdamos 19:09 Rodolfo: BTW, I have an announcement to make :) 19:10 Rodolfo: I will introduce Racket to some of my friends from Dojo Rio (http://dojorio.org) this Wednesday 19:10 jonrafkind: is this some sort of famous thing? 19:11 Rodolfo: this is a Coding Dojo in Rio de Janeiro, maybe the most influential in Brazil 19:12 jonrafkind: ive never heard of a coding dojo, sounds like a lug or something 19:12 (nick) samth -> samth_away 19:15 Rodolfo: A Coding Dojo is a place to deliberately practice programming skills 19:17 Rodolfo: we have a short "about" http://dojorio.org/about/ 19:18 Rodolfo: and brian d foy, Perl hacker, visited us last week [http://blogs.perl.org/users/brian_d_foy/2011/05/fun-at-the-dojo-rio.html] 19:19 jonrafkind: a 4 minute timer.. rofl 19:19 Rodolfo: basically we meet every week to solve programming puzzles using TDD, pair programming, ... 19:20 (join) Rolaulten 19:20 Rodolfo: the timer is to turn pair programming into "group programming" 19:20 Rodolfo: if you have never tried something like a dojo, you should give it a shot. 19:20 Rolaulten: Hello everyone - I'm still new to programing in racket/scheme and have a quick question - how do I instantiate and use a new library? 19:21 jonrafkind: (require "some-library.rkt") 19:21 Rodolfo: it is impressing how your typing/coding skills change when you get ten people looking at your face and your code :P 19:21 jonrafkind: or if its a library that comes with racket you dont need the quotes, (require some-library) 19:21 Rolaulten: and it the code must be a .rkt? (its been one of those days for me were my brain is dead...) 19:22 Rodolfo: Rolaulten, it could be something else 19:22 jonrafkind: you can name it anything you want, (require "foo.bar") 19:22 jonrafkind: if you end it with .rkt then the system will do some convenience things for you 19:23 jonrafkind: such as assuming .rkt is there 19:24 Rolaulten: Ok - right now I have (#% require (lib /path/foo.scm)) 19:24 Rolaulten: so just change it to (require foo.scm) and it will work 19:24 jonrafkind: where did you learn about such syntax? 19:25 Rolaulten: poking around the documentation/google 19:25 Rodolfo: (require "/path/foo.scm") 19:25 Rolaulten: kk 19:25 Rodolfo: don't forget the quotes 19:25 jonrafkind: you should probably never use #%, and the (lib ...) is from an older version of racket (the 4.x and before series) 19:26 tonyg: damn. the boehm gc runs C programs to decide how to build. makes cross compilation... tricky. 19:26 Rolaulten: its for a class - we need to use r5rs 19:26 jonrafkind: oh 19:27 jonrafkind: also in case you didn't realize, you should put '#lang r5rs' at the top of your files 19:27 Rolaulten: tis there 19:28 Rodolfo: back to the bug in paint-by-numbers, how to get my hands wet into exterminating that bug? 19:28 Rolaulten: but no - for r5rs the syntax is right or do I have something wrong - cause the error message I get when I add the quotes it a bad path 19:29 jonrafkind: Rodolfo, printf debugging 19:29 jonrafkind: just toss them in randomnly 19:30 jonrafkind: Rolaulten, paste the require line 19:31 Rolaulten: (#%require (lib "file:///home/dorian/.racket/5.0.1/srfi-1.rkt")) 19:31 Rodolfo: is there any page describing how to send a patch? 19:32 Rodolfo: (addressing a given bug) 19:32 (quit) Checkie: Ping timeout: 260 seconds 19:32 Rolaulten: I'm geting the bug "lib: bad module path in: (lib "file:///home/dorian/.racket/5.0.1/srfi-1.rkt") 19:33 tonyg: augh. Does Racket's embedded Boehm GC use Makefile.am at all or is it vestigial? 19:33 jonrafkind: instead of (lib "file:///home/dorian/...") just do "/home/dorian/..." 19:34 Rolaulten: still getting the same error 19:34 jonrafkind: (#%require (lib "srfi/1")) 19:34 jonrafkind: this works better 19:34 jonrafkind: Rodolfo, send a mail to dev@racket-lang.org or just announce your patch here 19:35 Rolaulten: wonderful! thankyou, so now I can just call any of the procedures within the like most any other language? 19:35 jonrafkind: http://docs.racket-lang.org/reference/require.html?q=r5rs#(form._((lib._racket/private/base..rkt)._lib)) 19:35 jonrafkind: yea 19:35 Rodolfo: ok... I just subscribed to it. I noticed I was only in the google groups mirror for the users list 19:36 jonrafkind: technically #%require isn't part of r5rs, so its not clear what your teacher wants when they say to use r5rs 19:37 Rolaulten: the prof is somewhat all over...at one point he frogot that it was not '94 and modern computers can do the Fibonacci sequence to n=20 without crashing 19:38 Rodolfo: ok, thanks jonrafkind, thanks eveyone - i'm leaving for now 19:46 (join) sstrickl 19:53 (part) Rodolfo 19:57 (quit) Rolaulten: Quit: Leaving 19:59 (join) sethalves 19:59 (join) dnolen 20:09 (quit) Fare: Quit: Leaving 20:10 (quit) ckrailo: Ping timeout: 260 seconds 20:44 (join) PLT_Notify 20:44 PLT_Notify: racket: master Matthew Flatt * 11fa781 (1 files in 1 dirs): fix future-scheduling problem related to custodians - http://bit.ly/mGtNEF 20:44 (part) PLT_Notify 20:45 (join) realitygrill_ 20:45 (quit) mithos28: Quit: mithos28 20:46 (part) sstrickl 20:48 (quit) realitygrill: Ping timeout: 246 seconds 20:48 (nick) realitygrill_ -> realitygrill 21:14 (join) bohanlon 21:17 (join) no-name- 21:20 (quit) jonrafkind: Ping timeout: 260 seconds 21:23 (join) mithos28 21:33 (quit) lucian: Remote host closed the connection 21:33 eli: offby1: Missing functions might be a result from inlining. 21:34 eli: offby1: And re that tool -- making a different output from the profiler should be pretty easy, you could start with just thet plain text output and hack it. 21:35 eli: But given that they refer to a bunch of conversion scripts, and given thet the output is basically similar to other profilers, it might be easier to hack such a conversion thing instead. 21:36 (join) ckrailo 21:39 offby1: I'm more interested in getting more-informative profile data than in adapting the output for kcachegrind. 21:40 offby1: I'd be surprised if it was all about inlining. The function in question is "string->utterance", visible at https://github.com/offby1/rudybot/blob/master/log-parser.rkt#L17 21:44 eli: And which function did you expect to see in the call tree but didn't? 21:49 offby1: any of them 21:50 offby1: regexp, read, make-utterance 21:50 offby1: in other words: I know that that function is slow, but I don't know why 21:50 offby1: is it make-utterance? Is it "read"? Is it something else? 21:50 offby1 shrugs 21:51 (join) PLT_Notify 21:51 PLT_Notify: racket: master Asumu Takikawa * 47db06a (1 files in 1 dirs): round -> ceiling in paint-by-numbers - http://bit.ly/lVFBZG 21:51 (part) PLT_Notify 21:53 (join) Demosthenes 22:01 eli: offby1: There is no `regexp' call there -- it's a pattern which `match' expands to some code; the code will use `regexp-match' but you won't see that since it's a primitive function. 22:01 eli: Same goes for `read'. 22:02 eli: My guess is that `make-utterance' is a constructor, therefore it takes a very small amount of time (just the allocation and setting of the results), so that will be hard to catch, and it is likely to be inlined. 22:03 eli: But in all of these, the only possible and likely offender is the regexp matching, so that's where I'd focus my attention if the goal is just to speed it up. 22:05 eli: offby1: Here's an example: 22:05 eli: (let ([s (string-append (make-string 100000000 #\a) "b")]) (time (regexp-match? #rx"a*?b" s))) 22:05 eli: vs 22:05 eli: (let ([s (string-append (make-string 100000000 #\a) "b")]) (time (regexp-match? #rx"a*b" s))) 22:06 eli: The second is about twice faster on my machine. 22:07 eli: The dangerous thing with things like ".*?" is that they'll generate all possible matches until it reaches that "b", whereas ".*" goes for it directly. 22:13 eli: offby1: I was about to say that this: (let ([s (string-append (make-string 100000000 #\a) "b")]) (time (regexp-match? #rx"(a*?)b" s))) 22:13 eli: would be even worse, but I didn't realize how much worse it would be, and took a while before I could even kill the process... 22:28 offby1: eli: thanks! 23:10 Demosthenes: i'm still curious how to enable positive affirmation of passed tests in rackunit ;] 23:13 offby1: well, when I use text-ui (or whatever it's called) it prints the number of successes and failures to current-output-port 23:15 Demosthenes: wonder if that requires run-tests 23:15 Demosthenes: i'm just doing check-X 23:17 offby1: ah, I suspect it does. 23:17 offby1: you'll probably have to make a test suite 23:17 Demosthenes: hrm 23:20 eli: offby1: http://bugs.racket-lang.org/query/?cmd=view&pr=11925 23:21 offby1: oho 23:22 offby1: hmm. How do I get my email address onto that bug, such that I get emailed if it gets edited? 23:23 eli: offby1: you can't do it yourself... 23:24 eli: Are you still using first.last@gmail.com? 23:24 Demosthenes: offby1: ok, so i wrapped it in define-test-suite, and it gives a summary 23:24 offby1: eli: yep, tx 23:24 Demosthenes: i'm still looking for a "test:OK" per check 23:24 offby1: actually, it's alpha.omega@gmail.com 23:25 offby1: Demosthenes: sucker! 23:25 offby1: Demosthenes: I'm kidding. I sympathize. 23:25 eli: offby1: You're on it now. 23:25 Demosthenes: ;] 23:25 offby1: eli: tx^2 23:25 offby1: Demosthenes: Be nice if you could hack rackunit to follow the "test anything protocol". 23:25 offby1: Probably not that hard, actually 23:26 offby1: maybe you can write a custom test-runner -- that'd be the clean way to do it 23:26 Demosthenes: i was looking at the "around" funcs... 23:26 Demosthenes: just surprised it wasn't a builtin 23:27 offby1: eli: I should mention that the racket-lang web docs are so fast that I'm no longer tempted to look at my local copy. This is in contrast to the Python docs, which are always infuriatingly slow 23:27 eli: Demosthenes: You should really ask on the list since the people who are doing rackunit are not here frequently. 23:27 Demosthenes: ah 23:27 Demosthenes: i may do that 23:27 eli: offby1: Yeah, I've argued to go on-line only... 23:28 Demosthenes: actually, i really appreciate my local copy of the docs.... 23:28 offby1: Demosthenes: another idea is just to hack it a little so that the 'verbose argument to run-tests does what you want 23:28 Demosthenes: makes coding on an airplane easier 23:28 offby1: eli: you can say "even offby1, who whines about everything, says they're fast enough!" 23:28 eli: Demosthenes: Well, my full proposal was to make them optional, so you could install them locally if you want to, and default to using them on-line. 23:29 eli: Doing things *only* on-line is impractical since there are schools and labs where that won't work. 23:31 Demosthenes: sure 23:31 Demosthenes: i also like the pdfs 23:31 Demosthenes: i've loaded them in my new ebook reader 23:31 offby1: eww 23:31 offby1: me holds his nose and waves his other hand in front of his face 23:31 offby1: he said "pdf" 23:31 eli agrees with offby1 23:31 eli: But some people like it... 23:31 eli: It became much more tolerable since I started using chrome. 23:31 eli: Turns out acrobat was a large part of why I hated pdfs, 23:31 eli: s/,/./ 23:31 Demosthenes: != acrobat 23:32 Demosthenes: hrm, i like the ebook reader. i don't like the lack of drm-free ebooks 23:32 eli: Demosthenes: I've tried replacing it, but then there's still obnoxiousness left in firing up some other process. 23:32 Demosthenes: i bought a pair of R books for $50, no drm. i want to buy a recent sci-fi title for $9? drm. 23:33 eli: And yeah, the adobe focus on DRM in PDFs is obviously making it as appealing as an ipad. 23:33 Demosthenes: eli: yeah, i'm using xpdf :P 23:33 offby1: some day our grandchildren will mock us for putting up with all this DRM crap 23:33 Demosthenes: otoh PDF is an iso standard now... 23:33 Demosthenes: the drm is an extension they own 23:33 Demosthenes: offby1: i didn't buy a nook or kindle. i refused. 23:33 Demosthenes: i wont buy drm crippled goods 23:34 offby1: I will :-( 23:34 offby1: if they're shiny enough 23:34 Demosthenes: i bought a Pocketbook 902, bigger than the kindle dx ;] 23:34 Demosthenes: awesome screen, and just added a 8 GB microsd 23:35 eli: I certainly hope that our grandchildren will do that, rather than admire us as the last generation of free stuffs roaming the earth. 23:35 Demosthenes: i keep a copy of "The right to read" by Stallman on my ebookreader 23:35 Demosthenes: :P 23:36 eli: Crap as literature, but effective... 23:36 Demosthenes: yep 23:36 offby1 subtly mentions that he re-upped with the FSF a few weeks ago 23:36 Demosthenes: my position in life is simple, no machine is allowed to control human behavior, or tell me no. 23:36 offby1: I used to think I had an admirably low member number, but it turns out their membership has always been tiny 23:37 eli: offby1: ? 23:37 offby1: eli: ! 23:37 eli: "re-upped with the FSF?" 23:37 offby1: renewed my membership, which I'd let lapse years ago 23:37 eli: Demosthenes: Get an ipad -- as someone who never used any isomething, it was absolutely horrifying. 23:37 (quit) masm: Ping timeout: 240 seconds 23:38 eli: offby1: Ah. 23:38 (join) ZachBeta 23:39 Demosthenes: eli: try that again? 23:39 eli: Demosthenes: Huh? 23:39 Demosthenes: i still use a linux laptop, and put up with the hardware issues, because apple likes drm... otherwise i'd have one of those aluminmum macbooks in a heartbeat 23:40 Demosthenes: oh, the pocketbook runs linux, and is easily rootable ;] 23:41 eli: Demosthenes: personally, I'm not using *any* apple stuff (well, since 1988, at lease) -- then we somehow got to own an ipad, and exactly because I've never used anything it was horrifying just how bad apple is. 23:41 Demosthenes: they have some talented people, and some of the new stuff rocks... 23:41 Demosthenes: but the lack of control is disturbing 23:42 (join) masm 23:42 Demosthenes: though if tmobile is bought by at&t, verison is going to have a new iphone subscriber, i refuse to gibve money to at&t 23:42 offby1: what with cloud computing, it's all becoming quite vague 23:42 eli: Demosthenes: *Nothing* justifies such a fascist nightmare. 23:43 Demosthenes: yeah, forget the cloud. no security or control.... 23:43 ZachBeta: but convenience 23:43 offby1: ah, but the convenience and 23:43 Demosthenes: eli: well, i'd argue macos is better than windows ;] 23:43 offby1: curse ZachBeta and his fast fingers 23:43 ZachBeta: huzzah! 23:43 offby1: ZachBeta: get your own brain, willya 23:43 offby1: I'm using mine 23:43 eli: ZachBeta: Especially not any illusion of convenience. 23:43 ZachBeta: eli, illusion? 23:44 eli: Demosthenes: I'd strongly argue differently. 23:44 eli: ZachBeta: Yes. 23:44 ZachBeta: eli, please explain 23:45 eli: ZachBeta: Like any fascist government, things are convenient as long as you're on the same side, but flip around fast once you're not. 23:46 Demosthenes: erm, i'd rank MS higher on the fascist scale 23:46 eli: Demosthenes: Apple is so much worse, it's really surprising. 23:46 offby1: remember, "fascist" is just a metaphor when applied to companies. Companies don't have armies with guns. 23:47 eli: Much due to the inflated ego of the man on top. 23:48 Demosthenes: eh 23:48 ZachBeta: maybe I'm just one of the sheeple... but I like using gmail and gdocs and dropbox and all cloudy stuff 23:48 Demosthenes: jobs is competent. gates left ms in the hands of a dancing chimp 23:49 ZachBeta: Demosthenes, DEVELOPERS DEVELOPERS DEVELOPERS DEVELOPERS 23:49 Demosthenes: omg 23:49 offby1: ZachBeta: me too 23:50 offby1: I don't think Benjamin Franklin ever weighed in on the wisdom of sacrificing a little bit of liberty for rather a whole lot of convenience 23:50 ZachBeta: it's an optimization really... 23:50 ZachBeta: and are you ever really 100% free? 23:51 eli: Chimp or not, I consider that kind of barbaric attempt at getting hackers excited much better than the two-faced speeches of jobs speaking about how peolpe hate DRM while providing one of the most restricted platforms in the history of computers. 23:51 ZachBeta: eli, for the time being he's a benevolent dictator 23:51 eli: Or the speech about how people hate advertisements and then reaching a conclusion that it's somehow good for mankind to have all ipad advertising ... go through apple. 23:51 eli: ZachBeta: I couldn't agree less. 23:52 ZachBeta: eli, I'm not exactly an apple scholar, but my perspective is a company with VERY consistent products 23:52 eli: Or the speeches about how great it is to have a central place to distriobute software from, when it's obvious that the 60% or whatever that is left in apple's pockets is the main reason behind that. 23:53 eli: Or even banning someone from the apple bookstore because he wrote an unflattering biography of jobs. 23:53 eli: Or deleting links to consumerreports right after they publish an unfavorable review of the iphone 4. 23:54 ZachBeta: I'm not going to ask for sources, but I definitely rescind "benevolent" 23:55 eli: Or making people publicly apologize for making jokes about apple. (Like what's her name who made a skit about iphone, and the next morning started with an apology about doing that.) 23:55 (quit) masm: Ping timeout: 240 seconds 23:56 eli: ZachBeta: The funny thing is that I was never some anti-apple zealot, and I'm really not someone who believes conspiracy theories... 23:56 ZachBeta: some of your statements don't all pass my bullshit filter, but enough of them do 23:57 eli: Tell me which one, and I'll tell you where I read about it. 23:57 ZachBeta: they deleted all links to CR and banned people from the bookstore? 23:58 ZachBeta: I've heard the apple store is real strict 23:58 ZachBeta: and I get the impression that they run things pretty tightly, but I can't imagine you can possibly bring a company into fortune 100 without being evil 23:59 eli: Ah -- Ellen DeGeneres. 23:59 ZachBeta: even google 23:59 ZachBeta: eli, you heard that reference on ellen? 23:59 ZachBeta: ?????? 23:59 eli: ZachBeta: I agree, but the piles of crap is overwhelming. 23:59 eli: ZachBeta: No, she's the one that apologized. 23:59 eli: http://news.cnet.com/8301-13579_3-20004186-37.html 23:59 offby1: shame, I kinda like her