00:16 (quit) ivan\: Ping timeout: 265 seconds 00:17 asumu: mithos28: `make-contract` produces an impersonator contract, which is not the same as a chaperone contract. 00:17 asumu: rudybot: (impersonator-contract? (make-contract)) 00:17 rudybot: asumu: ; Value: #t 00:17 mithos28: asumu: What is the use case? 00:20 mithos28: I know that contracts existed before impersonators and thus it might be a relic to support old bad contracts, but I cannot think of a contract that cannot be a chaperone 00:21 mithos28: except the parametric contracts, but I don't believe those are contracts as they break equality 00:21 (join) ivan\ 00:29 asumu: Combinators that take impersonator contracts themselves have to be impersonator contracts too. 00:30 asumu: So in general, most combinators are built so they can be either. 00:30 asumu: (since you might get something like a parametric contract as an argument) 00:31 mithos28: But other than parametric contracts, what other base non-chaperone contracts are there? 00:32 asumu: I don't know of any off the top of my head. 00:32 asumu: Oh, object/c. 00:33 mithos28: why is that not a chaperone contract? 00:36 asumu: Since it uses class/c, which doesn't produce a chaperone, but a new class that has contracts built into the method tables. 00:38 mithos28: why cannot class/c produce a chaperone that adds it to the method tables, I am assuming it is just a field within the struct 00:40 mithos28: I can understand engineering effort as a reason, but that still means to me that impersonator contracts are not needed 00:40 (quit) soegaard: Ping timeout: 245 seconds 00:54 (quit) ssbr_: Ping timeout: 245 seconds 00:55 asumu: Yeah, it might be engineering effort and also efficiency, but not sure. 00:56 (quit) genbattle: Ping timeout: 255 seconds 01:03 (join) jeapostrophe 01:03 eli: samth: ping 01:07 asumu: mithos28: Contracts don't actually guarantee eq?-ness. See http://pre.racket-lang.org/docs/html/guide/contracts-gotchas.html 01:08 mithos28: right they don't guarantee eq?-ness but therefore the do guarantee equal-ness 01:12 asumu: Well, a promise is just checked with eq?, so equal? and eq? are the same in this case. 01:15 mithos28: what do you mean a promise is just checked with eq? 01:16 mithos28: If you use equal? you pass through impersonators and chaperones which is different than eq? 01:21 mithos28: The only way to extract a value from a promise is through the force procedure, which can be redirected through the use of a chaperone on the structure property prop:force 01:22 mithos28: thus promise/c could be implemented as a chaperone maintaining equality 01:27 (quit) jeapostrophe: Ping timeout: 245 seconds 01:30 (join) Kaylin 01:32 (join) kreol[Ukr] 01:45 (quit) hash_table: Ping timeout: 250 seconds 01:46 (quit) getpwnam: Ping timeout: 250 seconds 01:48 (join) hkBst 01:48 (quit) hkBst: Changing host 01:48 (join) hkBst 01:51 (join) veer 01:56 (quit) Kaylin: Quit: Leaving. 01:56 (quit) yoklov: Quit: computer sleeping 02:04 (join) Shviller 02:13 (quit) Fare: Quit: Leaving 02:21 (quit) dented42: Quit: Computer has gone to sleep. 02:29 (quit) veer: Quit: Leaving 02:45 (quit) jonrafkind: Ping timeout: 246 seconds 02:48 (quit) adu: Quit: adu 03:01 (join) djcoin 03:16 (quit) mithos28: Quit: mithos28 03:16 (join) untrusted 03:25 (join) antithesis 03:28 (quit) peeeep: Remote host closed the connection 03:28 (quit) sizz: Quit: No Ping reply in 180 seconds. 03:29 (join) sizz 03:29 (join) peeeep 03:33 (join) RacketCommitBot 03:33 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/BIQp8g 03:33 RacketCommitBot: [racket/master] rackety - John Clements 03:33 (part) RacketCommitBot 03:42 (quit) untrusted: Remote host closed the connection 03:43 (join) mceier 03:50 (join) ssbr_ 04:07 (join) dalaing 04:24 (join) jesyspa 04:28 (join) untrusted 04:29 (join) gciolli 05:11 (quit) dalaing: Quit: Leaving. 05:11 (quit) gciolli: Quit: Leaving. 05:26 (join) tim-brown 05:45 (quit) mceier: Quit: leaving 05:47 (join) snearch 05:48 (join) dalaing 05:57 (join) gciolli 05:58 (quit) gciolli: Client Quit 06:01 (quit) noam: Read error: Connection reset by peer 06:02 (join) noam 06:05 (quit) ssbr_: Ping timeout: 246 seconds 06:17 (part) dalaing 06:28 (join) ssbr_ 06:50 (quit) noam: Read error: Connection reset by peer 06:51 (join) noam 06:55 (quit) noam: Read error: Connection reset by peer 06:56 (join) noam 06:58 (quit) noam: Read error: Connection reset by peer 06:59 (join) noam 06:59 (quit) noam: Read error: Connection reset by peer 06:59 (join) noam 07:00 (quit) noam: Read error: Connection reset by peer 07:01 (join) noam 07:07 tim-brown: just seen a message on racket-users from neil van dyke which mentions the named-let vs. internal-define controversy. what is this controversy? how passionate do feelings run? would i be considered a troll just for mentioning it? 07:10 Cryovat: I've been curious about that myself 07:11 Cryovat: I feel using let is a bit more proper from a FP point of view 07:17 (quit) noam: Read error: Connection reset by peer 07:18 (join) noam 07:18 tim-brown: hence the controversy, i guess -- there must be people who would disagree (?) 07:20 tim-brown: JFGI seems not to unearth much 07:21 (quit) cdidd: Remote host closed the connection 07:24 (join) veer 07:28 Cryovat: The only issue I see with lets is that when you have many items, it looks a bit ugly 07:28 Cryovat: But even with the lexical scope, defines feel like what my Lisp teacher would have described as Java-isms 07:32 tim-brown: you want your program to be one single let* (or even let) 07:32 (quit) noam: Read error: Connection reset by peer 07:32 (join) noam 07:33 (quit) rbarraud: Ping timeout: 240 seconds 07:40 (quit) noam: Read error: Connection reset by peer 07:40 (join) noam 07:45 bremner: Cryovat: I think some people prefer to omit let early in the learning process, since in principle you can get by with only define. 07:47 (quit) Shviller: Disconnected by services 07:47 (nick) Shvillr -> Shviller 07:47 (join) Shvillr 07:52 (quit) antithesis: Remote host closed the connection 07:55 (quit) noam: Read error: Connection reset by peer 07:55 (join) noam 07:56 tim-brown: bremner: is this a difference in teaching approach, rather than coding approach? 07:56 bremner: I guess so. 07:57 bremner: fwiw, I'm not one of these people. 07:57 tim-brown: bremner: you reserve define for toplevel, then? 07:57 bremner: but others have _much_ more experience teaching racket than I do. 07:57 bremner: tim-brown: yes 07:58 tim-brown: let has a nice habit of making lexical scope obvious 07:58 tim-brown: (if you're going to have a language with too many parenthesis, you might as well get value from them) 07:58 tim-brown: :-) 08:08 (join) kanak 08:10 (quit) vu3rdd: Ping timeout: 272 seconds 08:17 (join) jeapostrophe 08:17 (quit) jeapostrophe: Changing host 08:17 (join) jeapostrophe 08:38 samth: tim-brown: bremner is incorrect here 08:38 samth: the preference for internal define is for "professional" programs 08:38 samth: and it's to avoid nesting and rightward drift 08:38 samth: plus to avoid having a myriad of different local binding forms 08:39 samth: you just use the different variants of `define` 08:39 tim-brown: of which there are myriad? 08:39 samth: but some people like `let`, and/or dislike the longer name of `define` 08:39 samth: tim-brown: you already need all the define forms, roughly 08:40 samth: such a `define-values`, and `match-define`, and `define-struct` 08:40 tim-brown: is rightward drift not a trigger for refactoring your code? 08:40 samth: tons of rightward drift is 08:40 samth: but if you use let and let* and let-values you can get a lot of drift on just a few lines 08:41 tim-brown: i don't get much rightward drift with let* 08:41 tim-brown: maybe i'm not indenting "correctly" 08:41 samth: no, it's not that much 08:41 samth: but it adds up 08:42 samth: but regardless, that's the recommended style, although not everyone (such a neil) likes it 08:42 samth: *asd 08:42 samth: *as 08:42 tim-brown: what "that's"... nested-let or inner-define? 08:43 samth: "that" = internal define 08:44 Cryovat: samth: I started wondering 08:44 Cryovat: In terms of performance, is there any difference to let vs define? 08:44 samth: Cryovat: no 08:45 tim-brown: doesn't the compiler/vm boil it all down to lets anyway? 08:45 samth: of course, if you use the recursive binding features of define, then potentially good 08:45 samth: s/good// 08:46 samth: tim-brown: it boils down to let or letrec 08:46 samth: and letrec can be more expensive 08:46 tim-brown: than recursive binding features of define? 08:48 samth: no, than let 08:50 tim-brown: but surely that same expense exists when you compare define with to define without recursive bindings 08:52 samth: yes 08:52 samth: although i believe there may be some cases where you pay the expense of letrec for define even when it isn't needed 08:52 samth: b/c the compiler can't prove that 08:52 samth: those cases are quite rare, though 08:53 tim-brown: i guess the programmer wouldn't type the extra ...rec suffix unless they hadn't done that proof manually 08:54 samth: tim-brown: you can just write the let 08:55 samth: and you get the 'proof' automatically 08:55 samth: because of the different scoping semantics 08:55 tim-brown: are you saying I don't need letrec, cos let will do recursive bindings? 08:57 bremner: samth: I won't argue with you about your own coding standards ;). Iiirc, PLAI uses internal defines as well. 08:58 samth: tim-brown: no, i'm saying that letrec and let have different semantics, and so transforming one into the other in the compiler requires a (conservative) analysis 08:58 samth: and that `define` has (mostly) the semantics of letrec, and so getting it to have the performance of let again requires analysis 08:58 samth: bremner: in the teaching languages, we use `local`, which is a combo of let and internal-define 08:59 bremner: ah, right. That is what confused me. 08:59 tim-brown: the compiler only transforms letrec to let, though? (if it allows itself) 08:59 bremner: I never understood the point of local ;) 09:05 (join) getpwnam 09:06 (join) hash_table 09:13 (join) MayDaniel 09:19 (join) anRch 09:28 (quit) jeapostrophe: Ping timeout: 240 seconds 09:33 (quit) hash_table: Ping timeout: 248 seconds 09:33 (quit) getpwnam: Ping timeout: 248 seconds 09:38 samth: tim-brown: i don't understand your question 09:38 samth: bremner: local re-uses the syntax of define, but it's less complicated semantically than internal define (although i think that may no longer be true) 09:39 tim-brown: samth: i was asking for confirmation that the compiler will not try to transform let into letrec, only letrec into lec 09:39 tim-brown: s/lec/let 09:40 samth: tim-brown: right 09:40 samth: the other way would be silly 09:41 (join) yoklov 09:42 tim-brown: it's worth asking the question - i sometimes find that what i assume to be "silly" behaviour can actually be quite cunning 10:07 (join) gciolli 10:14 (join) mceier 10:18 (quit) noam: Read error: Connection reset by peer 10:18 (join) noam 10:35 (quit) hkBst: Quit: Konversation terminated! 10:42 (join) antithesis 10:50 (join) noam_ 10:50 (quit) noam: Read error: Connection reset by peer 10:52 (quit) anRch: Quit: anRch 10:53 (join) getpwnam 10:54 (join) hash_table 10:57 (join) nilyaK 10:59 (quit) maahes: Ping timeout: 246 seconds 11:00 (join) jeapostrophe 11:00 (quit) jeapostrophe: Changing host 11:00 (join) jeapostrophe 11:02 (join) maahes 11:14 (join) diginet 11:14 diginet: hello 11:15 diginet: does racket have any bindings to SDL? and/or any libraries for game development? 11:16 (join) graspee 11:19 danking: diginet: Probably not what you had in mind, but I've made some pretty sweet games with World and Universe: http://world.cs.brown.edu/1/htdw-v1.pdf 11:19 (quit) MayDaniel: Read error: Connection reset by peer 11:20 (quit) yoklov: Quit: computer sleeping 11:20 asumu: diginet: I think jonrafkind is working on allegro 5 bindings https://github.com/kazzmir/racket-allegro-5 11:21 asumu: (and more libraries on PLaneT: http://planet.racket-lang.org/) 11:23 (quit) gciolli: Ping timeout: 276 seconds 11:23 danking: http://www.ccs.neu.edu/home/matthias/HtDP2e/prologue.html One of the examples under the third bullet under terminology sees od. Why does (cos pi) evaluate to #i#i#i...#i-1.0 ? 11:24 (quit) noam_: Read error: Connection reset by peer 11:24 (join) noam_ 11:27 (join) mithos28 11:28 Shambles_: diginet: Racket comes with double-buffered canvases stock. Unfortunately it comes with absolutely no sound support at all. You'll need the PortAudio and RSound packages off PLaneT, most likely, to make a game. You might also want to get the RacketGL package if you want to do 3-D graphics or hardware accelerated 2-D graphics, since the sgl bindings Racket comes with are for a very old version of OpenGL. 11:44 (join) vu3rdd 11:44 (quit) vu3rdd: Changing host 11:44 (join) vu3rdd 11:48 (quit) noam_: Read error: Connection reset by peer 11:48 (join) noam_ 11:49 (quit) hash_table: Ping timeout: 265 seconds 11:49 (quit) getpwnam: Ping timeout: 265 seconds 11:49 (join) yoklov 11:58 (part) tim-brown: "WeeChat 0.3.8" 12:01 (join) jonrafkind 12:01 (quit) jonrafkind: Changing host 12:01 (join) jonrafkind 12:02 (join) dented42 12:09 (quit) djcoin: Quit: WeeChat 0.3.2 12:25 (quit) BeLucid: Ping timeout: 265 seconds 12:26 (quit) jeapostrophe: Ping timeout: 245 seconds 12:29 (join) MayDaniel 12:33 (join) jeapostrophe 12:33 (quit) jeapostrophe: Changing host 12:33 (join) jeapostrophe 12:41 (join) aidy 12:49 aidy: Is there a way to disable the R5RS' language option 'disallow redefinition of initial bindings' with a #lang directive instead of using drracket? 12:54 (join) wedesoft 12:56 mithos28: aidy: you want to be able to redefine bindings using #lang r5rs? the negations are confusing. 12:56 (join) dyoo 12:57 aidy: mithos28: correct 12:57 mithos28: Because that is not allowed, http://docs.racket-lang.org/r5rs/r5rs-mod.html?q=r5rs 12:57 (quit) bitonic: Ping timeout: 252 seconds 12:57 mithos28: racket prohibts that in the module context, only at the toplevel does it allow it 12:58 (quit) vu3rdd: Remote host closed the connection 12:58 aidy: I know, but when you use the language dialoct in drracket you can set it to allow redefinitions 12:58 (part) wedesoft 12:59 mithos28: I'm not sure what you are trying to do, but I think to get strict conformance to r5rs you need to use load/eval with a namespace made by (namespace-require/copy 'r5rs) 12:59 mithos28: that is because the language dialog is broken, and is being replaced by modules 12:59 mithos28: It is likely doing the toplevel eval of each form 13:00 dyoo: aidy: offhand, I'm not sure how to make redefinition work in a module. Is there anything in particular you're trying to do with it? 13:00 (part) untrusted: "ERC Version 5.3 (IRC client for Emacs)" 13:03 (join) getpwnam 13:04 (join) hash_table 13:07 aidy: I'm trying to run SICP code 13:08 jonrafkind: there should probably be #lang sicp 13:10 (quit) dyoo: Ping timeout: 245 seconds 13:14 (join) gridaphobe 13:15 jonrafkind: how do I use an alternate cls file with scribble? 13:18 (join) BeLucid 13:19 (quit) veer: Quit: Leaving 13:39 samth: jonrafkind: roughly, you re-implement scribble/sigplan for your new cls file 13:43 jonrafkind: has anyone done this for sig-alternate.cls? 13:43 samth: jonrafkind: i don't think so 13:43 samth: what conference is that? 13:44 jonrafkind: gpce, with sig-alternate.cls 13:54 stamourv: aidy, jonrafkind: neilv has a PLaneT package for sicp. 13:54 stamourv: planet.racket-lang.org/display.ss?package=sicp.plt&owner=neil 13:54 samth: jonrafkind: if it's pretty similar to sigplan, then it won't be too hard 13:55 (quit) antithesis: Quit: antithesis 14:00 aidy: stamourv: (define apply-in-underlying-scheme apply) gives 'reference to an identifier before its definition identifier: apply 14:00 aidy: in neil/sicp 14:01 (quit) dented42: Quit: Computer has gone to sleep. 14:02 (join) bitonic 14:05 (quit) kreol[Ukr]: Quit: Leaving 14:06 (join) weirdo 14:06 weirdo: hey 14:06 weirdo: having a problem evaluating a r5rs file in nightly 14:07 weirdo: http://paste.lisp.org/display/130203 14:08 weirdo: am i doing something wrong? 14:14 weirdo: geiser is nigtly, emacs 24.1 14:15 weirdo: will switch to non-nightly. sad panda. 14:17 (quit) jeapostrophe: Ping timeout: 260 seconds 14:19 (join) jeapostrophe 14:19 (quit) jeapostrophe: Changing host 14:19 (join) jeapostrophe 14:25 weirdo: non-nightly racket works 14:37 (quit) getpwnam: Ping timeout: 248 seconds 14:37 (quit) hash_table: Ping timeout: 248 seconds 14:38 (join) getpwnam 14:38 (join) hash_table 14:43 (join) bro_grammer 14:44 (join) random_malice 14:44 (quit) hash_table: Ping timeout: 246 seconds 14:44 (quit) getpwnam: Ping timeout: 246 seconds 14:52 (quit) random_malice: Ping timeout: 246 seconds 14:52 (quit) snearch: Quit: Verlassend 14:52 (quit) bro_grammer: Ping timeout: 246 seconds 15:00 (quit) MayDaniel: Read error: Connection reset by peer 15:06 asumu: weirdo: can you reduce that to a small test case that fails/ 15:06 asumu: *? 15:06 asumu: If it's a bug, a bug report would be appreciated. 15:06 weirdo: asumu, i can show a backtrace, if that helps 15:06 weirdo: oh, i already did 15:06 asumu: Well, what is seaking2/util? Is that code available somewhere? 15:07 weirdo: asumu, #lang r5rs some-random-defun 15:08 asumu: weirdo: some-random-defun being something like (define ...)? 15:08 weirdo: asumu, i'm sorry, but i'm largely unfamiliar with Racket or Geiser innards. i've just chosen this configuration for my r7rs implementation, that's al 15:08 (quit) jonrafkind: Ping timeout: 252 seconds 15:09 asumu: Well, if you want to use Racket the R5RS language is probably unideal. 15:09 weirdo: i know :-( 15:09 asumu: danking: that HtDP thing is weird. It prints correctly in my racket. 15:09 weirdo: but i need to bootstrap somehow. and other impls are far farther from ideal 15:09 asumu: Why not just bootstrap off of Racket? 15:10 asumu: Are you actually trying to extend #lang r5rs (as implemented in Racket) to R7? 15:10 asumu: You might want to look at how the #lang r6rs is implemented if so (for how to do the module system, for example). 15:10 weirdo: asumu, i'd have to spend time learning racket and r5rs differences. also there's a factor of using only standard stuff to ease the switch 15:11 weirdo: the target 'VM' is javascript 15:13 weirdo: another thing is that the only impls geiser supports are racket and guile 15:18 samth: weirdo: you might want to take a look at danny yoo's whalesong system 15:19 samth: which is an implementation of racket in JS 15:19 weirdo: samth, i'm going for r7rs though so it's an effort in itself. also, it's a learning project :-) 15:19 weirdo: not invented here :-) 15:24 stamourv: aidy: I haven't used that package, so I don't know. 15:25 stamourv: Does `(define (apply-in-underlying-scheme . x) (apply apply x))' work? 15:27 aidy: stamourv: it does actually, thanks :) 15:30 (join) anRch 15:34 (join) MayDaniel 15:38 stamourv: No problem. 15:40 (join) jonrafkind 15:48 (part) freakazoid: "Textual IRC Client: http://www.textualapp.com/" 15:53 (join) RacketCommitBot 15:53 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/bCd1Ng 15:53 RacketCommitBot: [racket/master] Added docs for pi.f, corrected pi's contract, added examples - Neil Toronto 15:53 (part) RacketCommitBot 15:56 (quit) ssbr_: Ping timeout: 245 seconds 15:58 (quit) gridaphobe: Remote host closed the connection 16:08 (join) RacketCommitBot 16:08 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/kCLOsQ 16:08 RacketCommitBot: [racket/master] mzlib/class100: deprecation notice - Asumu Takikawa 16:08 RacketCommitBot: [racket/master] racket/control: Racketize & remove trailing whitespace - Asumu Takikawa 16:08 (part) RacketCommitBot 16:13 (join) DanBurton 16:13 (join) untrusted 16:24 (join) genbattle 16:38 (quit) untrusted: Remote host closed the connection 16:39 (quit) anRch: Quit: anRch 16:40 (quit) MayDaniel: Read error: Connection reset by peer 16:44 (join) ynniv 17:02 (join) gciolli 17:08 (quit) nilyaK: Quit: Leaving. 17:17 (quit) jeapostrophe: Ping timeout: 260 seconds 17:17 (join) cdidd 17:17 (join) jeapostrophe 17:17 (quit) jeapostrophe: Changing host 17:17 (join) jeapostrophe 17:29 (join) Nisstyre 17:29 (quit) Myk267: Quit: Myk267 17:30 (quit) Nisstyre: Read error: Connection reset by peer 17:31 (join) getpwnam 17:32 (join) hash_table 17:37 (join) _ 17:37 (nick) _ -> Shviller 17:39 (quit) Shvillr: Ping timeout: 255 seconds 17:39 (join) Shvillr 17:40 (join) Myk267 17:41 (quit) acarrico: Ping timeout: 265 seconds 17:45 (join) acarrico 17:46 (quit) graspee: Quit: leaving 17:48 (quit) noam_: Read error: Connection reset by peer 17:48 (quit) Myk267: Quit: Myk267 17:48 (join) noam_ 17:53 (nick) samth -> samth_away 18:00 (quit) jeapostrophe: Ping timeout: 245 seconds 18:02 (quit) mceier: Quit: leaving 18:03 (join) Myk267 18:10 (quit) PfhorSlayer: 18:16 (join) doomrobo 18:18 doomrobo: Why does this error in typed scheme? (define-type NN (Number -> Number)) (ann (lambda: ((x : Number)) (+ x 1)) NN) 18:18 doomrobo: gives me unbound type name 18:19 asumu: Works for me. 18:19 asumu: (in both 5.2.1 and in my git build) 18:20 asumu: doomrobo: you said "typed scheme". Are you using an old pre-Racket version? 18:21 doomrobo: no, I meant typed/racket 18:21 asumu: What version of Racket? 18:21 (join) gridaphobe 18:21 doomrobo: 5.2.1 18:21 doomrobo: ok, in the text box it works but not in the REPL 18:21 doomrobo: odd... 18:23 asumu: REPL behavior in TR is sometimes different from when you're in a module. 18:23 doomrobo: what do you mean? 18:24 asumu: If you write your program in a file with #lang typed/racket it should always work fine. 18:24 asumu: Unfortunately, some things are hard to get working in the REPL. 18:27 doomrobo: ah, ok 18:27 doomrobo: is it technically compiled when not in the REPL? 18:27 asumu: Racket always compiles your code to bytecode even when in the REPL. 18:28 asumu: There are some optimizations that don't happen in the REPL that can be done in modules, but that's a detail. 18:29 (join) adu 18:31 doomrobo: asumu, so what would be the problem in getting the code working in the REPL? 18:32 doomrobo: I mean, in Python for instance, there are no inconsistencies in running code between the REPL and the actual interpreter 18:40 stamourv: doomrobo: The big difference between a module and the REPL is that in a module, it's possible to see all the definitions at once. In the REPL, it's not. 18:40 stamourv: That means that a lot of things are going to be possible in a module that are not possible at the REPL. 18:41 asumu: Yes, in this regard Python is just less flexible. 18:41 stamourv: The REPL is fundamentally limited in what it can do. 18:41 stamourv: Python just propagates these limitations to the whole language. 18:42 doomrobo: ah, ok 18:42 (quit) Myk267: Quit: Myk267 18:42 stamourv: So in general, the REPL is more for quick experiments and exploration. Modules should be used for the rest. 18:43 stamourv: But since modules are pretty lightweigth, and can you can visit them easily at the REPL, you get the best of both worlds. 18:43 (join) Myk267 18:43 doomrobo: thanks 18:44 (quit) doomrobo: Quit: Leaving 18:44 (join) antithesis 18:45 (quit) acarrico: Ping timeout: 276 seconds 18:48 (join) acarrico 18:50 (quit) antithesis: Quit: antithesis 19:17 (quit) ynniv: Quit: ynniv 19:29 (quit) noam_: Read error: Connection reset by peer 19:30 (join) noam_ 19:35 (quit) acarrico: Ping timeout: 265 seconds 19:45 (join) acarrico 19:50 (quit) yoklov: Quit: bye! 20:03 (join) dented42 20:20 (quit) bitonic: Remote host closed the connection 20:20 (join) bitonic 20:21 (quit) bitonic: Remote host closed the connection 20:24 (join) bitonic 20:25 (quit) bitonic: Remote host closed the connection 20:26 (quit) stchang: Read error: Operation timed out 20:28 (join) stchang 20:29 (join) bitonic 20:30 (quit) bitonic: Remote host closed the connection 20:30 (join) bitonic 20:32 (quit) diginet: Read error: Connection reset by peer 20:37 (join) jimmypk 20:44 (quit) jesyspa: Quit: leaving 20:45 (quit) jonrafkind: Ping timeout: 276 seconds 20:53 (quit) acarrico: Ping timeout: 246 seconds 21:05 (quit) DanBurton: Quit: leaving 21:06 (join) dnolen 21:09 (join) jeapostrophe 21:09 (quit) jeapostrophe: Changing host 21:09 (join) jeapostrophe 21:14 (join) acarrico 21:15 (join) Kaylin 21:28 (quit) dented42: Ping timeout: 265 seconds 21:28 (join) duomo 21:32 (quit) jeapostrophe: Ping timeout: 250 seconds 21:37 (quit) bitonic: Remote host closed the connection 21:45 (join) ynniv 21:46 (quit) ynniv: Client Quit 21:47 (quit) dnolen: Ping timeout: 244 seconds 22:07 (join) RacketCommitBot 22:07 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/TTHNkw 22:07 RacketCommitBot: [racket/master] further error message convention refinements - Matthew Flatt 22:07 RacketCommitBot: [racket/master] ffi/com: allow a `com-object' as an 'iunknown argument - Matthew Flatt 22:07 RacketCommitBot: [racket/master] racket/port: fix `read-bytes-evt' and `read-string-evt' - Matthew Flatt 22:07 (part) RacketCommitBot 22:10 (quit) adu: Quit: adu 22:17 (join) mmalorni 22:24 (join) dented42 22:33 (quit) mmalorni: Remote host closed the connection 22:35 (join) mmalorni 22:36 (quit) mmalorni: Remote host closed the connection 22:37 (join) mmalorni 22:40 (quit) gridaphobe: Remote host closed the connection 22:43 (quit) mmalorni: 22:44 (join) mmalorni 22:45 mithos28: does anyone know why hash/c on immutable hashes makes a copy versus making a chaperone of the hash? 22:49 (quit) dsantiago: Ping timeout: 248 seconds 22:53 (join) dsantiago 23:00 (quit) dsantiago: Ping timeout: 272 seconds 23:03 (quit) hash_table: Ping timeout: 272 seconds 23:03 (quit) getpwnam: Ping timeout: 272 seconds 23:04 (join) dsantiago 23:06 (join) jonrafkind 23:08 asumu: mithos28: immutable hashes aren't kept wrapped since the providing party can't observe any modifications (via hash-set) that the client party makes. 23:10 mithos28: asumu: That is a reason that chaperones are not required, but doesn't answer why copying is chosen over chaperoning. 23:10 asumu: Oh, I see. Maybe it's cheaper. 23:12 mithos28: It requires a copy on every application of the contract versus every access of a field, 23:12 asumu: Well, also the straightforward implementation with a chaperone would do more checking. 23:12 asumu: Since the chaperone retains the redirect functions. 23:12 asumu: So on hash-set, you'd get a new hash that still checks the contract. 23:12 mithos28: Ah, ok 23:19 (join) jeapostrophe 23:19 (quit) jeapostrophe: Changing host 23:19 (join) jeapostrophe 23:20 asumu: Hmm, getting `in-set` to work in TR might be hard. 23:20 (quit) mmalorni: Ping timeout: 276 seconds 23:21 asumu: (its expansion is safe but TR can't figure that out...) 23:21 mithos28: what is the problem with the expansion? 23:21 (join) doomrobo 23:22 doomrobo: I don't understand why the example for implementing Maybe from Haskell is so complicated at http://docs.racket-lang.org/ts-guide/types.html 23:22 doomrobo: This seems to work for me: (struct: None ()) 23:22 doomrobo: (define-type (Maybe a) (U None a)) 23:23 mithos28: doomrobo: What are the elements of the type (Maybe None) 23:23 doomrobo: nothing? 23:24 asumu: in-set does a trick where it checks if it's set?. When it's not, it uses `unless` to run an error case. Unfortunately, occurence typing can't figure out that if the body is executed, the code after the unless is unreachable. 23:25 mithos28: asumu: that just requires fixing the typing rule of begin, to add the correct filters to the following statements 23:25 mithos28: just might be a slight understatement 23:26 doomrobo: mithos28, is what I wrote incorrect? 23:26 asumu: Heh. Right, it's probably do-able. I was just hoping it'd be an easy hack. 23:26 doomrobo: and why do you need an element to the struct if you are just specifying a type? 23:26 mithos28: doomrobo: In haskell it would Be Nothing and Just Nothing 23:26 (quit) jeapostrophe: Ping timeout: 240 seconds 23:26 (join) mmalorni 23:27 doomrobo: mithos28, I don't know any Haskell 23:27 doomrobo: I just realize what Maybe is for 23:27 (join) dnolen 23:27 mithos28: Ah that would explain it, in racket you would define it how you did 23:27 mithos28: in haskell it is slightly different, but the example is true to the haskell origins 23:28 doomrobo: ah 23:28 doomrobo: ok, I wasn't too clear on that. Thanks 23:28 mithos28: Its the difference between true Unions (in racket) versus discriminated unions in other languages (Haskell) 23:29 mithos28: asumu: you could rewrite provide a slightly different in-set from dr racket that would do the right annotations 23:30 (quit) doomrobo: Quit: gn 23:31 (join) veer 23:45 (quit) mmalorni: Remote host closed the connection 23:51 (quit) dented42: Quit: Computer has gone to sleep. 23:53 (join) jacius