00:28 (quit) francisl: Ping timeout: 252 seconds 00:51 (quit) jeapostrophe: Quit: jeapostrophe 01:03 (join) jonrafkind 01:03 (quit) gabot: Ping timeout: 240 seconds 01:05 (topic) -: Racket -- http://racket-lang.org -- logs @ http://racket-lang.org/irc-logs 01:05 (names) -: gabot stamourv` jonrafkind ve wtetzner si14 Lajla jao shofetim mithos28 carleastlund Demosthenes Twey MaXim_ em tunes dsp_ bfulgham Utkarsh cb` samth_away sethalves offby1 karljoh hyko tewk ozzloy janne abbe asumu jamessan mattmight askhader _p4bl0 Fade tomku shachaf svk_ spewn mario-goulart zakwilson ohwow clklein tauntaun cky gf3 @ChanServ rapacity rudybot 01:06 (join) ada2358 01:13 (join) elliottcable 01:27 (quit) mithos28: Quit: mithos28 01:34 (join) eli 02:13 (quit) jonrafkind: Ping timeout: 245 seconds 02:14 (join) snorble 02:18 (join) hkBst 03:09 (quit) bfulgham: Ping timeout: 264 seconds 03:12 (join) MayDaniel 03:14 (quit) MayDaniel: Client Quit 03:28 (join) Burlingk 03:49 (join) noelw 03:52 (join) bfulgham 03:53 (join) noelw_ 03:55 (quit) noelw: Ping timeout: 264 seconds 03:55 (nick) noelw_ -> noelw 04:51 (quit) shofetim: Ping timeout: 240 seconds 05:40 (nick) Lajla -> VonLajlastein 06:04 MaXim_: hm 06:04 MaXim_: i have a stream that generates quite a large list 06:05 MaXim_: how do i get racket to forget the old elements when it runs out of memory? 06:06 noelw: Don't maintain a reference to them 06:06 noelw: Our maintain only a weak reference to them 06:06 MaXim_: ah 06:06 noelw: If there are no references to a value it can be garbage collected 06:06 MaXim_: so it'll be "garbage collected" sooner or later 06:07 noelw: Yeah 06:07 MaXim_: cool 06:07 MaXim_: ill keep that in mind 06:07 MaXim_: is that how it would be in say, mit-scheme? 06:07 noelw: Yes. 06:08 noelw: All GC works by this method 06:08 MaXim_: well i mean, all schemes do GC? 06:08 noelw: I think all schemes use garbage collection 06:08 MaXim_: ic 06:08 noelw: and all GC works by following references 06:08 noelw: from some "root set" 06:09 MaXim_: i guess gc must have first appeared on functional languages or something 06:10 ohwow: If I am not mistaking GC first appeared as a concept of original LISP language 06:10 MaXim_: ah well there we go ;) 06:13 (join) JuanDaugherty 06:25 (join) haruki_zaemon 06:35 MaXim_: quick question 06:35 MaXim_: ive got a function that invokes a stream-map on a stream 06:36 MaXim_: how do i get it to iterate to the end of the stream (there is an end) 06:36 haruki_zaemon: Do most people just use the Racket lang? 06:36 MaXim_: im using pretty big :P 06:37 haruki_zaemon: ? 06:39 noelw: haruki: racket or racket/base 06:39 noelw: pretty big is legacy 06:39 MaXim_: not my choice i guess 06:39 MaXim_: but for my own code id use racket 06:40 noelw: maxim: do you want stream->list 06:40 noelw: ? 06:40 MaXim_: yea 06:40 noelw: stream-map creates a stream, IIRC 06:40 MaXim_: that's right 06:40 MaXim_: uhuh 06:41 MaXim_: ive just read the documentation and thats what it says 06:41 MaXim_: hmm 06:41 haruki_zaemon: so I guess I don't really understand #lang then I eventually want to serve stuff over HTTP/s. Can I just (require web-server/servlet-env) and do it manually? 06:41 haruki_zaemon: The example uses #lang web-server/insta 06:41 haruki_zaemon: but that feels odd 06:41 haruki_zaemon: seems like the wrong level of abstraction to me 06:42 noelw: Yes you can require web-server etc. 06:42 haruki_zaemon: ahh ok, *phew* 06:42 noelw: Building languages is moderately common in Racket 06:43 haruki_zaemon: I can see how building a DSL would be very useful at a business level 06:43 haruki_zaemon: but not really at an infrastructure level unless you're business is infrastructure, of course 06:45 noelw: In this case, web-server/insta does very little 06:45 haruki_zaemon: hence my surprise at seeing a webserver language 06:45 haruki_zaemon: but I guess for education its fine 06:46 haruki_zaemon: sure 06:46 haruki_zaemon: but languages are mutually exclusive 06:46 noelw: The stateless web language does more 06:46 noelw: Sure, they don't compose 06:46 noelw: which can be a problem 06:46 MaXim_: cool 06:46 haruki_zaemon: right so if I HAD to depend on it I'd be concerned 06:46 haruki_zaemon: if I can require and use 06:46 MaXim_: i guess i needed to write a simple procedure 06:46 haruki_zaemon: then I'm not 06:46 MaXim_: to cons the stream heads 06:48 MaXim_: guys i have to say 06:48 MaXim_: i find this procedural stuff strangely addictive 06:48 (join) mceier 06:48 MaXim_: er 06:49 MaXim_: functional 06:49 noelw: :) 06:51 MaXim_: reminds me of that alyssa p hacker comic i saw 06:51 MaXim_: xD 06:51 noelw: heh. I haven't seen the comic, but alyssa p hacker is the name of one of the students in SICP 06:53 MaXim_: http://the-tech.mit.edu/Projects/Firehose/firehose.date.gif 06:53 MaXim_: http://the-tech.mit.edu/Projects/Firehose/firehose.kurazy.gif 06:56 ohwow: idgi 06:59 haruki_zaemon: ok whats the preferred method for running files from the command line and seeing the output? 06:59 haruki_zaemon: if I use racket -f it swallows the output 07:00 rapacity: doesn't "racket filename" work ? 07:02 haruki_zaemon: well blow me down 07:02 haruki_zaemon: I didnt even try that! 07:02 haruki_zaemon: LOL 07:02 MaXim_: haha 07:02 haruki_zaemon: Too used to unix pipey tools 07:03 haruki_zaemon: I tried racket <; racket -f; racket -e '...' 07:03 haruki_zaemon: cat .. | racket 07:03 haruki_zaemon: LOL 07:03 rapacity: :p 07:04 MaXim_: i have a habit of entering vim macros in non-vi editors 07:04 haruki_zaemon: I have to say, even now looking at the output of racket --help, it's not clear that uou can even run it tha way 07:05 ohwow: haha 07:06 ohwow: haruki_zaemon: you can try http://docs.racket-lang.org/guide/scripts.html 07:06 ohwow: it's kinda UNIX-y i guess 07:07 haruki_zaemon: actually that's what I ended up resorting to :/ 07:08 MaXim_: racket's help is refreshing compared to the help of some popular gnu programs 07:09 haruki_zaemon: agreed 07:09 rapacity: http://docs.racket-lang.org/guide/racket.html#(part._start-module-mode) 07:09 haruki_zaemon: it's VERY thorough 07:11 ohwow: Racket documentation system is immensly good 07:17 haruki_zaemon: yeah true 07:17 haruki_zaemon: seeing as Im on day 2, and by that I mean after work spare time day 2 07:17 haruki_zaemon: it's helpful and overwhelming at the same time 07:21 (join) jeapostrophe 07:33 MaXim_: i wrote some code that finds magic squares via brute force 07:33 MaXim_: racket is using 1.2GB of memory xD 07:33 haruki_zaemon: I suspect the phrase "brute force" may have something to do with it :) 07:34 MaXim_: hehe 07:38 MaXim_: the next step would be to devise a genetic algorithm 07:53 noelw: You could do magic squares with backtracking search. should take too much memory 07:53 noelw: Shouldn't take too much memory 07:53 noelw: I mean 07:54 MaXim_: ah 07:54 MaXim_: hmm 07:54 MaXim_: is there any way to know if i've generated every single possible one using that method? 07:55 MaXim_: wait that's a silly question 08:00 (quit) noelw: Remote host closed the connection 08:00 (join) noelw 08:32 (join) RacketCommitBot 08:32 RacketCommitBot: [racket] plt pushed 1 new commit to master: https://github.com/plt/racket/commit/b08f2704eadb9569a14a98ac6e560ae2b022afdc 08:32 RacketCommitBot: [racket/master] Up ssax timeout even more. - Sam Tobin-Hochstadt 08:32 (part) RacketCommitBot 08:53 (join) anRch 08:54 (join) masm 09:08 (quit) snorble: *.net *.split 09:08 (quit) bfulgham: *.net *.split 09:08 (quit) Twey: *.net *.split 09:08 (quit) sethalves: *.net *.split 09:08 (join) sethalves 09:10 (join) Twey 09:53 (quit) jeapostrophe: Quit: jeapostrophe 10:14 (join) RacketCommitBot 10:14 RacketCommitBot: [racket] plt pushed 5 new commits to master: https://github.com/plt/racket/compare/b08f270...634f5c9 10:14 RacketCommitBot: [racket/master] Replaces use of `define-syntax-set' - Casey Klein 10:14 RacketCommitBot: [racket/master] Moves metafunction construction to later expansion step - Casey Klein 10:14 RacketCommitBot: [racket/master] Adds support for `judgment-holds' clauses in metafunctions - Casey Klein 10:14 (part) RacketCommitBot 10:14 (join) RacketCommitBot 10:14 RacketCommitBot: [racket] plt tagged v4.2.5 at e14a1a2: https://github.com/plt/racket/compare/f2d2fca^...a91c5a6 10:14 RacketCommitBot: [racket/v4.2.5] update version numbers for the v4.2.5 release - Eli Barzilay 10:14 RacketCommitBot: [racket/v4.2.5] Welcome to a new PLT day. - Eli Barzilay 10:14 RacketCommitBot: [racket/v4.2.5] merged revisions -c18563,18568,18569 - Eli Barzilay 10:14 (part) RacketCommitBot 10:14 (join) RacketCommitBot 10:14 RacketCommitBot: [racket] plt tagged v5.0 at 98bddfb: https://github.com/plt/racket/compare/7dc1207^...0954877 10:14 RacketCommitBot: [racket/v5.0] Alpha version number for the v5.0 release - Eli Barzilay 10:14 RacketCommitBot: [racket/v5.0] New Racket version. - Eli Barzilay 10:14 RacketCommitBot: [racket/v5.0] Adjustment for release checklist. - Eli Barzilay 10:14 (part) RacketCommitBot 10:39 (join) panda 10:40 panda: hi guys 10:40 (nick) panda -> Guest95385 10:40 (part) Guest95385 10:41 noelw: hi 10:41 noelw: oh. bye 10:41 (join) flying_rhino 10:41 flying_rhino: hello 10:43 noelw: hi 10:43 flying_rhino: I am beginner with racket and have a few questions 10:44 offby1: rudybot knows all 10:46 flying_rhino: I am wondering about runtime flexibility of racket apps 10:47 flying_rhino: like, how hard is to build aplication with command line so you can alter how things work at runtime? 10:49 flying_rhino: what do you say? 10:50 flying_rhino: I know common lisp has some impressive possibilities in that regard (advice) but I don't know about this one 10:51 (quit) anRch: Read error: Connection reset by peer 10:51 (join) anRch_ 10:52 (quit) anRch_: Client Quit 10:53 noelw: You can open a REPL (see, e.g., net-repl on planet.racket-lang.org) and mess around with things 10:53 (join) jeapostrophe 10:53 noelw: Racket discourages messing around at runtime in an uncontrolled manner 10:53 flying_rhino: yeah I know about repl, but I am wondering if I can build aplication with command line 10:53 flying_rhino: well, I don't exactly mean uncontrolled 10:54 noelw: What do you mean by a command line if not a REPL? 10:54 flying_rhino: well, I mean repl 10:54 flying_rhino: but I want to be able to modify some things in app at runtime 10:54 flying_rhino: I don't mean being able to change everything 10:54 noelw: You can write code that reads input and does stuff. 10:54 noelw: But there's nothing special about that 10:55 flying_rhino: well you can do that in any language, of course 10:55 flying_rhino: but some languages, like common lisp, have 'hooks' that you can use to switch functions at runtime 10:55 flying_rhino: in java they call that aspect oriented programming 10:56 flying_rhino: basicaly 'before' and 'after' hooks so you can alter app behaivor more easily 10:56 flying_rhino: how good is racket there? 10:56 flying_rhino: in that regard 10:57 eli: flying_rhino: The advice hooks are basically like (set! f (let ([old-f f]) (λ (x) (do-stuff) (old-f x) (more-stuff)))) 10:58 eli: But since there's not much point in actually doing application developement, there's no organized way to do that. 10:58 flying_rhino: well, I can make it organized in my app if I want, right? 10:59 eli: For some value of "can make" in which you evaluate stuff on the repl only... 10:59 eli: BTW, such things made more sense with older lisps where you'd just hack the running image and then dump a new one. 11:00 eli: Those habits mostly died though. 11:00 flying_rhino: well, I don't need all that stuff 11:00 flying_rhino: but I want to have aplication with flexible plug in system and a high degree of scriptability (is that a word?) 11:00 flying_rhino: I don't need to be able to alter all 11:01 flying_rhino: but I should be able to create 'hooks' that I can use later 11:01 flying_rhino: I want to develop app with extensive plug-in system 11:01 eli: That seems like you don't know exactly what you want, or at least didn't specify it enough. 11:01 eli: Do *you* want to develop *your* application dynamically, or do you want *users* of your application to be able to modify how it runs dynamically? 11:02 (nick) stamourv` -> stamourv 11:02 flying_rhino: latter, mostly. Former is attractive, too but I am not that radical 11:03 flying_rhino: I want users to be able to modify some (but not all) stuff dynamically 11:03 eli: Then that's possible in a bunch of ways. Using `eval' at runtime (or some equivalent) is the most extreme of that. 11:03 eli: The usual thing is that nothing prevents you from doing something like 11:04 (quit) hkBst: Excess Flood 11:04 (quit) Utkarsh: Excess Flood 11:04 eli: (define (f x) ...) (define (set-f! new-f) (set! f new-f)) 11:04 eli: and provide the two bindings from your module. 11:05 (join) hkBst 11:06 (quit) hkBst: Excess Flood 11:08 (join) lisp_panda 11:10 (join) tfb 11:12 (nick) samth_away -> samth 11:13 (join) Utkarsh 11:17 (join) snorble 11:18 (quit) flying_rhino: *.net *.split 11:18 (quit) Utkarsh: Excess Flood 11:19 (join) Utkarsh 11:21 (quit) Utkarsh: Excess Flood 11:23 (join) Utkarsh 11:25 (join) hkBst 11:27 (quit) hkBst: Read error: Connection reset by peer 11:29 (join) hkBst 11:29 (quit) hkBst: Changing host 11:29 (join) hkBst 11:31 (quit) Utkarsh: Ping timeout: 260 seconds 11:37 (quit) hkBst: Remote host closed the connection 11:44 (join) RacketCommitBot 11:44 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/6yPu-A 11:44 RacketCommitBot: [racket/master] Adds missing test image - Casey Klein 11:44 (part) RacketCommitBot 11:44 (join) RacketCommitBot 11:44 RacketCommitBot: [racket] plt tagged v4.2.5 at e14a1a2: http://git.io/8pxq_Q 11:44 RacketCommitBot: [racket/v4.2.5] update version numbers for the v4.2.5 release - Eli Barzilay 11:44 RacketCommitBot: [racket/v4.2.5] Welcome to a new PLT day. - Eli Barzilay 11:44 RacketCommitBot: [racket/v4.2.5] merged revisions -c18563,18568,18569 - Eli Barzilay 11:44 (part) RacketCommitBot 11:44 (join) RacketCommitBot 11:44 RacketCommitBot: [racket] plt tagged v5.0 at 98bddfb: http://git.io/YTUVDw 11:44 RacketCommitBot: [racket/v5.0] Alpha version number for the v5.0 release - Eli Barzilay 11:44 RacketCommitBot: [racket/v5.0] New Racket version. - Eli Barzilay 11:44 RacketCommitBot: [racket/v5.0] Adjustment for release checklist. - Eli Barzilay 11:44 (part) RacketCommitBot 11:45 eli sighs 11:54 ohwow: http://metacircus.com/hacking/2011/09/07/lispy-abuse-of-ruby-syntax.html 11:54 ohwow: how are you doing guys? 11:56 noelw: I <3 () too 12:09 asumu: That would make a good t-shirt. 12:09 noelw: Do it! 12:12 (quit) noelw: Quit: noelw 12:20 (quit) cb`: Ping timeout: 260 seconds 12:26 ohwow: Is there a way to embed a set builder notation in Racket? Kinda something like this : http://upload.wikimedia.org/math/f/d/5/fd5368aa0fcc3e536072a96e0274d30a.png 12:26 rudybot: http://tinyurl.com/454huvg 12:26 ohwow: ? 12:32 (join) RacketCommitBot 12:32 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/eixUDQ 12:32 RacketCommitBot: [racket/master] Make the back button work. - Sam Tobin-Hochstadt 12:32 (part) RacketCommitBot 12:46 (join) bfulgham 12:49 jeapostrophe: samth: updated 12:57 (join) MayDaniel 12:59 (quit) tfb: Quit: sleeping 12:59 samth: jeapostrophe: thanks 13:07 (join) RacketCommitBot 13:07 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/8y9OEQ 13:07 RacketCommitBot: [racket/master] Save hidden serieses as well. - Sam Tobin-Hochstadt 13:07 (part) RacketCommitBot 13:07 samth: jeapostrophe: sorry, just changed again 13:14 jeapostrophe: updated 13:24 samth: eli: looking at it now 13:32 (join) anRch 13:36 eli: samth: So how about that color change? That very faded yellow on white make me twitch every time I see it. 13:37 samth: eli: personally, i like the colors, and i worry that changing them will make it work poorly with 3 or 4 or 5 or 20 data sets 13:37 samth: but if you have suggestions, I'll try them out 13:38 eli: Anything more visible. 13:38 samth: specific suggestions 13:38 samth: preferably as 6 hexadecimal digits :) 13:38 eli: Plain red. #ff0000. 13:39 eli: Or switch to darkish colors: #800000 13:49 (quit) sethalves: Ping timeout: 252 seconds 13:51 (join) sethalves 13:55 samth: eli: how does this look: http://punge.ccs.neu.edu/~samth/basic.html 13:57 eli: samth: Much better. (Mostly because I'm not interested in the yellow dots...) 13:57 eli: But it's a little too noisy, so maybe #804040? 13:57 eli: (Looks like you did the full #ff0000) 13:57 samth: yes 13:58 samth: annoyingly, i can't figure out how to make CSS accept hex 13:59 samth: how about now? 14:00 samth: eli: ^ 14:00 eli: Looks fine. I'd make it a bit redder, but that's shavings that you can ignore. 14:01 eli: What do you mean it doesn't accept hex? 14:01 samth: i have to specify it as rgb(123,111,000) or such 14:04 eli: In all CSS that I know of, `rgb(N,N,N)' is equivalent to `#HHHHHH'. 14:06 samth: ah, ok 14:06 samth: my problem was that previously it wasn't a string 14:10 (join) dnolen 14:10 (quit) snorble: Read error: Connection reset by peer 14:10 (join) cb` 14:11 (quit) MayDaniel: Read error: Connection reset by peer 14:14 (join) RacketCommitBot 14:14 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/sjL4gA 14:14 RacketCommitBot: [racket/master] Color fixes, show lines for dense data. - Sam Tobin-Hochstadt 14:14 (part) RacketCommitBot 14:14 samth: eli: there you go 14:15 samth: jeapostrophe: ping 14:15 jeapostrophe: update it? 14:16 samth: yes, but another question too 14:16 jeapostrophe: done and shoot 14:16 samth: it would be really nice to have some way to know at what time in the run a file printed something in drdr 14:16 samth: for example, the ssax.rktl benchmark 14:16 samth: i'd like to know where in the planet process it's timing out 14:17 samth: is it just that everything takes forever, or that there's a hang at the end 14:17 samth: for example 14:18 samth: eli: hope you like the new color 14:23 jeapostrophe: that's a good idea 14:25 (join) blake_johnson 14:29 (join) flying_rhino 14:29 flying_rhino: hello 14:35 samth: hello 14:38 (join) snorble 14:58 ohwow: :) 15:10 rapacity: how do I see the full version of the racket build I'm on?, I'm compiling from the git source, when I do a racket -V it only shows v5.1.3.6 15:16 eli: samth: Looks fine to me. 15:17 eli: rapacity: (require repo-time-stamp/stamp) and then `stamp' will have more accurate information. 15:18 rapacity: thanks 15:18 (quit) anRch: Quit: anRch 15:19 (join) tfb 15:23 (join) jonrafkind 15:23 (quit) snorble: Read error: Connection reset by peer 15:24 (join) snorble 15:45 (join) RacketCommitBot 15:45 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/Kx986w 15:45 RacketCommitBot: [racket/master] add tooltips for the module level imports in check syntax - Robby Findler 15:45 (part) RacketCommitBot 15:49 (join) john___ 15:49 (nick) john___ -> sir_lewk 15:49 (quit) tfb: Ping timeout: 276 seconds 15:49 sir_lewk: is there a prefered way of re-sourcing ~/.racketrc ? 15:57 samth: (load "~/.racketrc") should work 16:12 (join) petey-away 16:30 (quit) em: Ping timeout: 252 seconds 16:32 (join) em 16:41 flying_rhino: hello guys 16:41 stamourv: Hello. 16:43 flying_rhino: I asked this before, but my internet connection died before I got full response: If I want to build aplication that can be extended on runtime (via plug-in system and via command line scripting), what are my options? 16:43 flying_rhino: obviously I can let end user modify stuff via eval 16:44 flying_rhino: basically I am exploring ways for building aplications that can be easily extended by end user 16:45 flying_rhino: now, ofcourse I can create my ovn scripting mini-language and roll with it (I can do that in Java or C++), but since Racket is Lisp it should be more flexible 16:45 flying_rhino: what do you think? 16:46 stamourv: DrRacket's plugin system is based on units. 16:46 stamourv: Units are first-class modules. 16:46 stamourv: rudybot doc unit 16:46 stamourv: rudybot: doc unit 16:46 rudybot: stamourv: your sandbox is ready 16:46 rudybot: stamourv: http://docs.racket-lang.org/reference/creatingunits.html#(form._((lib._mzlib%2Funit..rkt)._unit)) 16:47 stamourv: Although you probably want to read what the guide has to say about them first: http://docs.racket-lang.org/guide/units.html?q=unit 16:47 flying_rhino: thank you 16:51 flying_rhino: if I want highly flexible app, is racket right for me generally? I picked it because it is rather fast, fairly complete, and because it is lisp. 16:52 stamourv: Racket should work great for that! 16:52 stamourv: You may also be interested by the sandbox facilities. 16:52 stamourv: rudybot: doc sandbox 16:52 rudybot: stamourv: not found in any library's documentation: sandbox 16:52 stamourv: rudybot: doc make-evaluator 16:52 rudybot: stamourv: no docs for a current binding, but provided by: mzlib/sandbox, scheme/sandbox, racket/sandbox 16:52 stamourv: rudybot: (require racket/sandbox) 16:52 rudybot: stamourv: Done. 16:52 stamourv: rudybot: doc make-evaluator 16:52 rudybot: stamourv: http://docs.racket-lang.org/reference/Sandboxed_Evaluation.html#(def._((lib._racket%2Fsandbox..rkt)._make-evaluator)) 16:53 stamourv: flying_rhino: Again, the guide is probably a good place to start. 16:53 (join) RacketCommitBot 16:53 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/PoG5aA 16:53 RacketCommitBot: [racket/master] generalized `begin-for-syntax' - Matthew Flatt 16:53 (part) RacketCommitBot 16:55 samth: is that what i think it is? 16:55 flying_rhino: I am reading about sandbox 16:55 flying_rhino: and it looks impressive 16:56 flying_rhino: it even restricts access to filesystem and stuff 16:56 flying_rhino: thanks 16:56 stamourv: samth: Dunno. It changes the base-env in ways I'm not sure are correct. 16:57 stamourv: flying_rhino: Yep, the sandbox library is awesome. 16:57 stamourv: That's what rudybot uses. 16:57 stamourv: rudybot: (+ 2 2e) 16:57 rudybot: stamourv: error: reference to an identifier before its definition: 2e in module: 'program 16:57 stamourv: rudybot: (+ 2 2) 16:57 rudybot: stamourv: ; Value: 4 16:57 stamourv: rudybot: (let loop () (loop)) 16:57 rudybot: stamourv: error: with-limit: out of time 16:57 stamourv: rudybot: (open-input-file "/etc/passwd") 16:57 rudybot: stamourv: error: open-input-file: `read' access denied for /etc/passwd 16:58 samth: stamourv: that's not what i was referring to 16:58 samth: i meant the change matthew just made 16:58 stamourv: samth: Yeah, that's what I was talking about. 16:58 stamourv: Look at the diff. 16:59 samth: i'll look at it, but i'm excited anyway 16:59 stamourv: Sadly, the commit message doesn't say much. 16:59 samth: i've been waiting for this feature for a while 16:59 stamourv: Nevermind, Matthew just emailed the list about it. 17:00 stamourv: Whoa, this is indeed as awesome as it sounds. 17:03 (quit) petey-away: Quit: Coyote finally caught me 17:07 flying_rhino: I am also a little confused about static vs dynamic typing here. Can you have both dynamic and static variables in one code? 17:07 flying_rhino: ti seems to me that you have to say in the beginning what you want in code file 17:10 samth: flying_rhino: that's correct 17:10 samth: stamourv: only one very minor change to the base-env 17:10 samth: which i'm fixing now 17:10 stamourv: It doesn't look right. 17:11 samth: he only changed 2 lines, i think 17:11 flying_rhino: well it is probably noy a big deal, If I want performance and dynamic features all I need to do is use hash tables (or dicionares or whatever are they called) whan I need flexibility 17:11 samth: at least, that's what git log tells me 17:11 samth: flying_rhino: it's easy to work with multiple different modules in one big program 17:12 samth: also, dictionaries are an interface, which hash-tables implement 17:12 samth: stamourv: what doesn't look right to you? 17:14 (quit) Burlingk: Quit: Leaving 17:14 flying_rhino: it seems a bit strange not to allow both in one module, thought. You can always implement them as hash-tables or something. In fact considering lisp has macros, it should be possible to implement somehow. 17:15 flying_rhino: not that it is a big deal 17:15 samth: flying_rhino: the entire type system is implemented via macros 17:16 samth: however, racket fundamentally provides control of the language at the module level 17:16 (quit) blake_johnson: Ping timeout: 260 seconds 17:16 flying_rhino: yeah but you get speed improvements when you have static typing? I hope it is not just for type checking. 17:16 samth: there are a bunch of different mechanisms that work together to enable this at the module level, that aren't available at the runtime level 17:16 samth: flying_rhino: yes, you do 17:17 samth: in fact, the optimizer using type information was implemented by stamourv 17:17 samth: you can see our paper w/ benchmarks here: http://bit.ly/lang-lib 17:17 (quit) cb`: Quit: ERC Version 5.3 (IRC client for Emacs) 17:17 (quit) dnolen: Quit: dnolen 17:17 flying_rhino: it is rather fast language 17:18 flying_rhino: not as fast as java but rather fast 17:18 flying_rhino: much better than python 17:18 samth: well, we're working on that (catching java, that is) :) 17:18 flying_rhino: I still think you should mix static and dynamic 17:19 samth: we *do* mix static and dynamic 17:19 flying_rhino: not that you can't get dynamism via hash-tables and other stuff but it would improve things 17:19 flying_rhino: I mean in one module 17:19 samth: you shouldn't be scared of having one module in typed/racket and another module in racket 17:19 flying_rhino: actionscript 3 does that 17:20 samth: the actionscript 3 type system doesn't really guarantee anything 17:20 (join) petey 17:21 flying_rhino: okay I am just asking stuff 17:21 flying_rhino: hope you'll catch Java :) 17:22 stamourv: samth: It looks like the new type is wrong. 17:22 stamourv: flying_rhino: You can mix typed and untyped in the same module with typed regions. 17:22 samth: stamourv: what's wrong w/ it 17:23 samth: it should be (-val #f) instead of B, but other than that it's right 17:23 stamourv: Oh wait, I thought the arrow was malformed. 17:23 stamourv: Nevermind. 17:28 (part) lisp_panda 17:29 flying_rhino: and about C++ interop? 17:29 flying_rhino: can it play nice with C++? I know it can with C 17:29 flying_rhino: but C++ is different beast 17:30 jonrafkind: whats different except for name mangling? 17:31 flying_rhino: so it should pretty much work? 17:31 jonrafkind: in theory.. i've never tried it 17:37 flying_rhino: also this site http://programming-puzzler.blogspot.com/2010/08/racket-vs-clojure.html guy seems to dislike racket data structures 17:39 stamourv: Most of the problems he observes can be solved nicely with comprehensions. Especially wrt moving code from lists to vectors. 17:39 stamourv: rudybot: doc for 17:39 rudybot: stamourv: http://docs.racket-lang.org/reference/for.html#(form._((lib._racket%2Fprivate%2Fbase..rkt)._for)) 17:41 stamourv: Also, some of the operations he says doesn't exist (stream operations, some hash table operations, etc.) actually do. 17:41 flying_rhino: okay 17:41 stamourv: And if the built-in data structures are not enough, there are plenty of packages on PLaneT with more ;). 17:41 flying_rhino: I am just cautious.. because I plan to commit to this thing somewhat. 17:43 samth: stamourv: note that a bunch of that stuff has been added in the past year since that blog post 17:44 flying_rhino: okay good to hear 17:44 stamourv: samth: Oh, that's right, it's a year old. 17:44 stamourv: But most of the things I talk about have been here for a while. 17:45 samth: it's still not as nice as in clojure, though for some of the data structures 17:46 samth: we need a better functional vector lib in the core, and more generic operations 17:46 samth: but that's basically the difference 17:46 samth: if you write everything with for/blah, it's just as good 17:47 flying_rhino: how hard is to create my own data structure? If I want new data structure in C/C++, say double linked list, all I need is create struct (or class) with two pointers (prev/next) and some code to manage it. With java I would use references instead of pointers but it is same difference. What about racket ? 17:48 samth: flying_rhino: it's easy -- see `struct' 17:48 samth: rudybot: doc struct 17:48 rudybot: samth: your racket/init sandbox is ready 17:48 rudybot: samth: http://docs.racket-lang.org/reference/define-struct.html#(form._((lib._racket%2Fprivate%2Fbase..rkt)._struct)) 17:48 stamourv: flying_rhino: And there's also a class system. 17:49 flying_rhino: I don't really need oop. Structs are fine 17:49 flying_rhino: but thanks :) 17:50 stamourv: Racket structs also support inheritance, so you can get some of the benefits of OOP anyway. 17:51 flying_rhino: good to know :) 17:54 flying_rhino: but clojure data structures suck too... it isists on immutability, which (while cool for some forms of mutithreading) is just not suited for some things 17:55 stamourv: Racket gives you both. 17:55 flying_rhino: I know 17:55 stamourv: With Racket, _you_ are in control :). 17:56 flying_rhino: yeah... it sucks when lisp language tries to control your life. I thought I escaped java when I tried clojure... but it is just different kind of dictatorship 17:56 flying_rhino: functional is cool for some things but it is not THE WAY 17:56 flying_rhino: same with OOP... same with everything 17:57 flying_rhino: one more thing. How about rainbow parentheses? I know vim supports them. WHat about racket IDE ? 17:58 stamourv: I don't know if DrRacket supports them. 17:58 stamourv: I usually use emacs, which does have rainbow parens. 17:58 stamourv: samth: The test failures are indeed due to quote printing. 17:58 stamourv: But no amount of fiddling with the printer parameters fixes it... 17:59 flying_rhino: yeah I should switch to emacs or something like that probably 17:59 stamourv: flying_rhino: DrRacket is really nice, and some of its plugins are incredible. 17:59 stamourv: Check syntax, especially, is great for debugging. 17:59 stamourv: And so is the macro stepper. 17:59 stamourv: I'm just an old emacs hand :). 18:01 jonrafkind: With assembly, _you_ are in control \o/ 18:01 stamourv: jonrafkind: Meh, modern hardware does a _lot_ behind your back. 18:01 jonrafkind: you are *mostly* in control \o/ 18:02 (quit) jeapostrophe: Quit: jeapostrophe 18:02 stamourv: I find it refreshing to code for older/more limited systems. You _really_ are in control there. 18:02 stamourv: No OS, no OoO execution, no branch prediciton... 18:03 jonrafkind: i imagine that refreshed state wears off rather quickly.. 18:03 stamourv: s/prediciton/prediction/ 18:03 jonrafkind: who needs a TLB :p 18:03 stamourv: Well, I don't do that full time, and I don't write the same programs either. 18:04 jonrafkind: let me tell you the fun i had porting a game that depended on threads to the psp which doesn't support pre-emptive multitasking.. 18:04 stamourv: I would still qualify a PSP as modern hardware. 18:05 stamourv: What does it run, an ARM or something? 18:05 jonrafkind: mips 18:05 jonrafkind: r4000 says wikipedia 18:05 stamourv: Right. Pretty modern. 18:07 (join) RacketCommitBot 18:07 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/tdC2tA 18:07 RacketCommitBot: [racket/master] Fix Performance Report message in the absence of irritants. - Vincent St-Amour 18:07 RacketCommitBot: [racket/master] Make Performance Report highlighting high priority. - Vincent St-Amour 18:07 RacketCommitBot: [racket/master] Reduce priority of paren matching highlighting. - Vincent St-Amour 18:07 (part) RacketCommitBot 18:09 samth: eli: ping 18:09 samth: stamourv: which parameters did you try? 18:10 stamourv: samth: print-reader-abbreviations same-thing-for-pretty-print-but-with-a-different-enough-name-that-I-can-t-remember-it. 18:10 stamourv: The relevant printing is done with `write', so the former should do it. 18:10 samth: stamourv: you probably need to change some `construct-style-printing'-esq parameter 18:11 stamourv: s/esq/esque/ 18:11 stamourv: The French love their silent letters ;). 18:11 stamourv: I'll try that one. 18:11 stamourv: Oh wait, this is in mzlib. 18:11 stamourv: Is that even used? I'm not using pconvert. 18:12 stamourv: One more data point: dynamic-requiring the test suite from a racket/base REPL works, but not from a racket REPL, also quote printing issues. 18:12 samth: ugh 18:13 stamourv: Agreed. 18:13 samth: an actual 'racket -l racket' repl, or just 'racket' 18:13 samth: ? 18:13 stamourv: Oh, right. Just 'racket'. 18:13 stamourv: Lemme try the other one. 18:14 stamourv: And I use -I, not -l. 18:15 samth: yeah 18:15 stamourv: Running. 18:17 (quit) jonrafkind: Ping timeout: 240 seconds 18:18 stamourv: It works. 18:18 stamourv: So, racket/base REPL works, racket REPL works, racket/init (or whatever 'racket' does on its own) doesn't work. 18:19 samth: 'racket' is basically 'racket -I racket/init' 18:20 stamourv: Right. 18:20 stamourv: Does it change any parameters? 18:21 rapacity: ] 18:21 stamourv: According to the docs, it sets `current-print' to `pretty-print'. But given that I use `write', that shouldn't affect me. 18:22 samth: rapacity: [ 18:22 rapacity: sorry :p 18:22 samth: :) 18:22 samth: are you sure you're using write in the logger? 18:23 stamourv: I'm using ~s in format. 18:23 stamourv: Once I have the string, it should be irrelevant how it's actually printed. 18:24 stamourv: Oh, wait a minute. The part that's wrong is not in the logging, it's in the printing of the results. 18:26 stamourv: Trying with the pretty-print parameter on. 18:30 stamourv: Argh, still not. 18:30 (nick) ada2358 -> adzuci 18:32 (quit) adzuci: Changing host 18:32 (join) adzuci 18:39 (join) cb` 18:39 eli: samth: ? 18:39 (quit) tunes: Quit: Leaving 18:40 cb`: hi, very basic question. I have a file with a bunch of definitions. After I (load "thatfile.rkt") at the REPL I was expecting to be able to make use of the defitions but it doesn't seem to be the case. What am I missing? 18:41 eli: cb`: Does the file start with `#lang'? 18:41 cb`: it does 18:41 (join) neilv 18:41 eli: In that case you shouldn't use `load'. 18:41 eli: Instead, use (require "the-file.rkt") 18:41 cb`: ah, ok 18:42 eli: And then you can use definitions that were `provide'd from it. 18:44 neilv: the "Evaluation and Compilation" section of the reference manual should have a big warning, "WARNING: YOU PROBABLY DON'T WANT TO USE ANYTHING IN THIS SECTION, UNLESS YOU REALLY KNOW WHAT YOU'RE DOING" 18:44 cb`: `require' gives me "require: bad module-path string" for the same string that did not give an error for `load' 18:44 neilv: and the defproc for "load" should have a pointer to "require", for people reading old scheme books 18:45 cb`: in both cases my lang is actually #lang planet neil/sicp because I am indeed reading an old scheme book 18:45 (quit) snorble: Read error: Connection reset by peer 18:46 neilv: cb`: is "load" needed for sicp? 18:47 neilv: cb`: there might be a bug in "neil/sicp". i don't know whether anyone has gone all the way through sicp using it 18:48 neilv: there have been over 2,000 downloads of "neil/sicp", but i have only heard from a few people using it 18:48 (join) snorble 18:49 cb`: neilv: I don't think you'll see `load' written directly in the sicp text - at least I don't recall it but it is needed in certain places. For instance the various different evaluators (I'm on the reg machine evaluator now) require definitions from the meta circular evaluator 18:50 cb`: so some of the code at: http://mitpress.mit.edu/sicp/code/index.html does use `load' 18:50 cb`: oh, nice, well I have made some good use of it. Thanks! 18:50 neilv: cb`: if you need "load" for sicp, but it doesn't work, please email me an example, and i will try to fix it tonight 18:58 cb`: what's your email? 18:59 neilv: (i just sent private message, to keep it out of spam harvesting of the logs) 18:59 samth: eli: i've now forgotten 19:00 samth: but i hate the printer 19:00 samth: the test failure is a difference between (quote foo) and 'foo 19:02 eli: samth: Heh. "Obviously", probably. 19:02 samth: well, except that we can't figure out how to change it 19:02 samth: something causes it to print as (quote foo) 19:02 samth: but we don't know why or what 19:02 eli: samth: can't you set the parameter before starting everything? 19:03 samth: stamourv already tried setting all the relevant parameters at all times 19:03 samth: also note that it only happens under maybe 3 layers of dynamic-require 19:03 eli: cb`: The plain string form works with only relative filenames. If you have an absolute name, you should use (require (file "/some/file.rkt")) 19:15 (join) bmp 19:21 cb`: thanks eli 19:22 eli: cb`: Which version are you using, btw? 19:26 jamessan: I've been poking around with 3m Racket builds on the architectures I had switched to cgc for Debian's packages. it looks like, at least on mips(el) and maybe ia64, part of the problem is unaligned memory access. 19:29 jamessan: reordering some of the structs, I've been able to get a bit further (no more segfaults), but now I'm getting errors/tracebacks from the racket code being run during raco setup 19:31 cb`: eli: Am using Racket 5.1 with Geiser in Emacs 19:32 eli: cb`: In that case you could use geiser to make likfe easier for you. (I don't know the details of using it, but I know that the functionality exists.) 19:34 samth: jamessan: you should definitely post on the users@ or dev@ mailing list about that 19:34 (join) flaggy 19:34 samth: matthew is really the person to talk to about this 19:34 samth: but what errors are you getting? 19:34 samth: eli: it turns out that the problem is your fault 19:39 jamessan: samth: http://vpaste.net/OeAig?raw 19:39 eli: samth: ? 19:39 samth: jamessan: that's pretty strange 19:39 samth: definitely bring that up on the mailing list 19:40 samth: eli: the problem is that the racket/quiet test changes some parameter that breaks the typed racket test printing 19:40 samth: if you take out the first (test ...) form in run-automated-tests, the TR tests pass 19:41 (quit) masm: Quit: Leaving. 19:42 samth: which means that something you're doing in the tests isn't sufficently isolating them from each other 19:43 eli: samth: It wasn't intended to be isolating things -- specifically, the racket tests cannot work in a sandbox. 19:44 eli: But I can add some parameter protection if you tell me which one it is. 19:44 samth: eli: then they should probably go last 19:44 eli: I don't think that that worked either. 19:44 samth: ugh 19:45 eli: I'll try grabbing the parameterization. 19:45 eli: (later) 19:47 samth: the change that seems important is changing (current-print) to be pretty-print 19:49 samth: eli: have you looked through the debian bugs for Racket? 19:50 (quit) mceier: Quit: leaving 20:00 (quit) jao: Ping timeout: 245 seconds 20:11 (join) bremner 20:19 (quit) cb`: Quit: ERC Version 5.3 (IRC client for Emacs) 20:26 (join) dnolen 20:30 (join) RacketCommitBot 20:30 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/o0gE2A 20:30 RacketCommitBot: [racket/master] fix place-unfriendly static in ffi - Matthew Flatt 20:30 (part) RacketCommitBot 20:35 flying_rhino: hello I have one question on future of Racket 20:37 samth: the future is awesome! 20:37 samth: flying_rhino: ask away 20:43 samth: flying_rhino: ? 20:49 neilv: huh. i did not know about the "planet/scribble" module 20:49 flying_rhino: the question is: will development continue? 20:49 (part) haruki_zaemon: "Laterz" 20:49 flying_rhino: will it continue to grow 20:50 flying_rhino: since I am thinking of using it for some intensive work, I would like it to grow 20:50 flying_rhino: since I like language 20:50 neilv: flying_rhino: it's been growing steadily for 10 years, and picking up even more 20:51 samth: flying_rhino: Matthew (the main developer) said at RacketCon this year that he would keep working on it as long as he can keep typing :) 20:51 neilv: we might see a hockey stick growth curve for industry adoption within next 12 months 20:51 flying_rhino: that sounds lovely 20:51 samth: neilv: we shall see -- i've learned not be over-optimistic 20:51 neilv: flying_rhino: http://racket-lang.org/people.html 20:52 flying_rhino: well, lisp is growing in popularity now which is good 20:52 samth: but regardless, we're committed to racket, and to continuing to improve it 20:53 neilv: flying_rhino: in addition to the people there, i have a consultancy that deals almost exclusively in racket right now 20:53 (nick) samth -> samth_away 20:53 flying_rhino: I have rather ambitious project in mind 20:54 neilv: web-based? 20:54 flying_rhino: which might take several years of hobby work. I am trying to find best lang for it, because I am afraid that if I try java I'll get suffocated in bloat and buerocracy 20:54 (join) jao 20:55 flying_rhino: not web based 20:55 flying_rhino: I am trying to create extremely moddable RPG 20:55 neilv: mmo? 20:56 flying_rhino: I did some non professional game development work before (one half finished 2d real time strategy) so I know what I am doing (I think) 20:56 flying_rhino: no not mmo 20:56 flying_rhino: but I will try to get multiplayer 20:57 flying_rhino: the focus is not in mutiplayer, the focus is on moddability and on AI 20:57 flying_rhino: trying to get critters a little bit smarter 20:57 neilv: racket has a few key facilities that would support extensibility 20:58 flying_rhino: I know 20:58 flying_rhino: Critters should have decent AI 20:58 neilv: my suggestion is to start playing with the racket features 20:58 neilv: and post questions to the email list as they come up 20:58 flying_rhino: players and critters should leave trail so hunting will be semi-realistic 20:59 flying_rhino: that's probably good suggetion, neilv 21:01 flying_rhino: the point is if I play around with racket, and if I start liking it (and I already do), then I am making plenty of commitment here 21:01 flying_rhino: so I want this lang to continue growing (I might lend a hand in a few months) 21:02 neilv: it's safe to assume it will continue growing. though i suspect that everything you need is already available 21:03 flying_rhino: and what about licence? LGPL means I can sell my stuff, right? No need to show everyone source of game (just of racket libs if I alter those?) 21:04 neilv: correct 21:04 flying_rhino: not that I plan to sell it 21:04 neilv: they want it to be used commercially, and it is 21:07 flying_rhino: well wish me luck :) 21:08 neilv: you don't need luck. you just need the racket manuals and drracket :) 21:08 flying_rhino: you guys are pure awesome 21:10 neilv: oh, and you need the email list. you get first-rate support from the actual developers 21:11 flying_rhino: yeah 21:11 flying_rhino: why don't you guys set up forums ? 21:12 bremner: some people don't like em very much 21:12 bremner: but actually, I think there are racket forums 21:12 neilv: the users@racket-lang.org email list is the best forum. it's mirrored on several sites, if you don't like email 21:12 flying_rhino: setting up phpbb board is piece of cake (not sure about hosting costs) so you should have those 21:13 bremner: it's not about setting them up, its about using them 21:13 flying_rhino: it is more natural to me than mailing lists 21:13 flying_rhino: but that's me 21:13 neilv: http://groups.google.com/group/racket-users/ 21:13 neilv: there you go 21:14 bremner: flying_rhino: yeah, I know some people like forums better. 21:14 bremner: but in my experience, developers tend not to 21:15 flying_rhino: guess I have some flaw in DNA 21:15 eli: flying_rhino: Yes, those are the reasons for not using a forum, mainly that they interact badly with email -- and having one very intense medium flowing in is enough that having to track multiple ones would be much more inefficient. 21:15 eli: But you can use a forum-like interface -- the best one I know about is gmane, which we mirror our mailing lists to: http://blog.gmane.org/gmane.comp.lang.racket.user 21:16 flying_rhino: thanks, eli 21:16 eli: You can subscribe to the mailing list just so you can post without your messages being held for approval (there's an option for that), and read it exclusively there. 21:17 (join) Mrow 21:17 Mrow: Hello all 21:19 flying_rhino: thanks, eli 21:20 (join) RacketCommitBot 21:20 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/fIIVow 21:20 RacketCommitBot: [racket/master] fix a formerly overlooked `kernel-syntax-case' - Matthew Flatt 21:20 RacketCommitBot: [racket/master] partially fix Check Syntax for `begin-for-syntax' - Matthew Flatt 21:20 RacketCommitBot: [racket/master] fix demod for `begin-for-syntax' changes - Matthew Flatt 21:20 (part) RacketCommitBot 21:20 (join) realitygrill 21:21 (quit) dnolen: Quit: dnolen 21:21 (quit) Mrow: Client Quit 21:25 (quit) bmp: Quit: Leaving... 21:30 (join) bmp 21:33 (quit) bmp: Client Quit 21:46 (quit) wtetzner: Remote host closed the connection 21:55 (join) bmp 21:55 (join) dnolen 21:59 (join) mithos28 22:09 (join) CIA-48 22:31 (quit) dnolen: Quit: dnolen 22:37 (join) asurai 22:42 (quit) bmp: Ping timeout: 276 seconds 22:45 (quit) asurai: Quit: Bye! 22:52 (join) jonrafkind 23:07 (join) jeapostrophe 23:09 (quit) flaggy: Ping timeout: 260 seconds 23:15 (join) flaggy 23:20 (quit) flaggy: Ping timeout: 252 seconds 23:22 (join) flaggy 23:23 (quit) mithos28: Quit: mithos28 23:24 (join) mithos28 23:27 (join) wtetzner 23:38 (quit) jao: Ping timeout: 260 seconds 23:47 (join) RacketCommitBot 23:47 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/0sCZwg 23:47 RacketCommitBot: [racket/master] adjust the error display to highlight in the margin instead of on top of the text - Robby Findler 23:47 (part) RacketCommitBot 23:47 CIA-48: racket: Robby Findler master * rdb2e3ab / collects/drracket/private/module-language.rkt : adjust the error display to highlight in the margin instead of on top of the text - http://git.io/0sCZwg