00:41 (quit) danbrown: Remote host closed the connection 00:45 (join) bahrieinn 00:45 bahrieinn: hey can anyone here help with racket install on linux? 00:51 (quit) bahrieinn: Ping timeout: 265 seconds 01:12 (join) jonrafkind 03:00 (quit) jonrafkind: Ping timeout: 240 seconds 03:41 (quit) emma: Ping timeout: 252 seconds 04:29 (quit) Fare: Quit: Leaving 05:33 (join) masm 06:20 (join) hanDerPeder 06:39 (quit) _p4bl0: Read error: Operation timed out 07:29 (nick) Lajla -> binrapt 07:29 (nick) binrapt -> b-ratius 07:30 (nick) b-ratius -> b-ratjus 07:30 (nick) b-ratjus -> bjnrapt 07:48 (join) b-man_ 08:00 (quit) b-man_: Ping timeout: 252 seconds 08:09 (join) b-man_ 08:16 (quit) b-man_: Ping timeout: 240 seconds 08:51 (quit) jao: Ping timeout: 240 seconds 09:10 (join) MayDaniel 09:14 (quit) MayDaniel: Client Quit 09:56 (join) danbrown 09:59 (join) pentra 10:12 (quit) jeapostrophe: *.net *.split 10:18 (quit) danbrown: Remote host closed the connection 10:33 (join) jeapostrophe 10:39 (join) jonrafkind 10:45 (quit) pentra: Quit: Page closed 11:29 clklein: samth: What's the bug? 11:30 samth: i have this pattern: github.com/offby1/rudybot 11:30 samth: sorry, wrong paste 11:30 samth: (error '(side-condition variable_1 (regexp-match #rx"^[a-zA-Z!?-]*$" (symbol->string (term variable_1))))) 11:30 samth: that pattern 11:30 samth: and it generated (error 'F2) 11:31 samth: I haven't been able to get this to happen in a simpler example 11:31 samth: the `redex-check' expression is: (redex-check chaprack 11:31 samth: (side-condition e (null? (term (free-locations () e)))) 11:31 samth: (same-result? (term e)) 11:31 samth: #:attempts 1000) 11:32 samth: clklein, see above 11:38 clklein: samth: OK, I'm looking into it. Thanks for the report! 11:40 (join) carleastlund 11:41 bremner: does Mathew Flatt ever hang out on IRC? 11:42 samth: bremner, no 11:42 bremner: thanks 11:42 samth: nobody here but us chickens 11:42 bremner: wrong scheme variant :) 11:43 samth: :) 11:43 samth: what is this scheme you speak of? 11:43 bremner: oh, just some racket to trick people into using parens 11:44 (join) sstrickl 11:45 (join) danbrown 11:46 clklein: samth: I can't get it to happen with just the pattern. Can you send the whole program? 11:48 samth: clklein, see pltgit:sstrickl/papers/chaperones , model.rkt & test.rkt 11:50 clklein: thanks 12:07 (join) fjl 12:08 samth: another thing, clklein 12:08 samth: it can be very confusing when you've failed to provide a metafunction, and (term (mf x)) just produces '(mf x) 12:09 clklein: I know. I hate that. 12:09 samth: so, i wish something somewhere were different so that was better 12:09 clklein: heh 12:09 samth: how's that for actionable feedback 12:10 clklein: I've considered making you declare all of your keywords. 12:10 clklein: Robby thinks that would be too painful. He might be right. 12:10 samth: yeah, it might be 12:10 samth: but it took me about 15 minute to track down that bug 12:11 carleastlund: I am always wary of systems where identifiers can be references to binders, but do something else silently if there's no binder. Syntax pattern bindings and Redex metafunction bindings both have this unfortunate property. 12:12 clklein: Just yesterday, I was helping someone get started Redex-ifying a part of their dissertation, and we ran into one of these bugs. 12:12 clklein: It took several minutes to track down. 12:13 clklein: It's very embarrassing. 12:13 clklein: That this class of bug exists; not that it took me minutes to track down. 12:13 sstrickl piles on. 12:14 clklein: carleastlund, sstrickl: Do you agree that declaring your keywords would be too much of a burden? 12:14 carleastlund: Clarify for me what this would look like. 12:16 (join) MayDaniel 12:21 clklein: Actually, I'm not sure how to make it work with `term'. I was thinking that there'd be some kind of define-keywords form that declares names like `if', `begin', `:', etc., and every symbol would need to be one of those, a meta-function name, or a reference to a bound pattern variable. 12:21 clklein: But `term' needs to be able to construct expressions that contain symbols representing variables. 12:23 carleastlund: This starts to sound like a job for unquote-style escaping to me when one wants to jump from literal terms to metafunction calls, or have some identifier that signifies metafunction calls so instead of (mf x) you have ($ mf x) or something. But I may be more willing to make these things explicit than other people. 12:25 clklein: That still leaves the problem of binding e in a rule's LHS and using e-oops in the right, though that's probably much less common. 12:26 carleastlund: I think that one is not *quite* so evil to debug, but I could be wrong. 12:26 (quit) bjnrapt: Read error: Connection reset by peer 12:26 (join) Lajla 12:27 clklein: I think it just happen less frequently. I can't remember making that mistake personally, for instance. 12:29 carleastlund: I've definitely done it more than once. 12:29 clklein: samth: BTW, I did reproduce the bug; in fact, I got an even weirder output: (error (quote (loc x1))) 12:32 samth: that is very weird 12:33 samth: clklein, if you declared the list of metafunctions up-front, then variables with those names could be rejected 12:33 samth: part of the problem is that (term x) is valid in the absence of a language 12:34 clklein: Ah, that might be a good compromise. 12:35 samth: and if you didn't declare anything, it would keep the current behavior 12:35 clklein: Matthias already wants the term generate to avoid choosing variables whose names coincide with the names of non-terminals. 12:35 samth: clklein, but that's so great for finding bugs :) 12:36 clklein: that's why I'm reluctant 12:37 clklein: But I can see how the printed form of such a counterexample can easily be mistaken for a non-ground term, where the odd variable name looks like a meta-variable representing any term from that non-terminal 12:42 (quit) jonrafkind: Ping timeout: 255 seconds 12:44 clklein: samth: I think it's actually your reduction relation that's injecting this bogus `error' expression. 12:45 samth: hmm 12:45 samth: well, that would explain why i couldn't find smaller counterexamples 12:45 clklein: I put a contract on the reduction relation, and it blames the `let' rule 12:45 samth: oh, i know what's going on 12:46 samth: substitution is descending inside (quote x) 12:46 samth: and substituting x with a fresh variable 12:46 samth: which may have a new name that has a number in it 12:46 sstrickl: yay for contracts 12:47 clklein: This is both a win and a loss for Redex. 12:47 clklein: It found a bug in something that, arguably, you shouldn't have had to write. 12:51 (join) _ryanc_ 12:52 clklein: (or should have been easier to write) 12:54 (quit) danbrown: Remote host closed the connection 12:54 sstrickl: clklein: Are you talking about the substitution metafunction? 12:54 clklein: sstrickl: yea 12:59 (join) jonrafkind 13:01 jonrafkind: clklein, is there a way to change the default size of the boxes that show up in `traces' ? 13:01 jonrafkind: i want them wider than they are by default 13:07 samth: jonrafkind, your line-number stuff causes a scribble warning 13:08 clklein: jonrafkind: I think you might be able to control by supplying a pretty printer that produces wider lines. I'll check. 13:08 samth: raco setup: WARNING: undefined tag in scribblings/framework/framework.scrbl: 13:08 samth: raco setup: ((lib "framework/main.rkt") text:line-numbers<%>) 13:11 clklein: jonrafkind: Yes, that works. For example, #:pp (λ (x) (format "~s" x)) produces boxes that are all single lines 13:12 samth: _ryanc_, ping 13:16 lisppaste: clklein pasted "`traces' box width" at http://paste.lisp.org/display/116201 13:16 clklein: jonrafkind: ^^^ 13:21 (quit) asumu: Read error: Connection reset by peer 13:29 (quit) hanDerPeder: Quit: hanDerPeder 13:44 (join) hanDerPeder 13:51 (quit) hanDerPeder: Read error: No route to host 13:56 (join) danbrown 14:19 (join) hanDerPeder 14:35 (quit) chturne: Ping timeout: 255 seconds 14:36 (join) asumu 14:38 samth: _ryanc_, ping 14:39 (join) jao 14:58 (join) mceier 15:02 (quit) Lajla: Quit: Phallic Illuminatus 15:03 (quit) sstrickl: Quit: sstrickl 15:10 (join) anRch 15:41 _ryanc_: samth, pong 15:42 samth: _ryanc_, rename-transformers confuse the macro stepper 15:43 _ryanc_: how so? 15:43 samth: also, the idea of the 'not-free-identifier=? property is very broken 15:43 samth: you can look at a module with a rename transformer in it and not see any expansion steps 15:45 _ryanc_: hmm, I have an idea of what might be going on, but can you send me an example with what you expect to see, just in case/ 15:45 samth: working on it 15:46 samth: also, the fact that you can write programs that just behave incorrectly without that syntax property is very bad 15:47 samth: darn, just hung the macro stepper 15:49 _ryanc_: In addition to your bug about text updates, I've still got some work to do to make the macro stepper more responsive and interruptible. 15:50 samth: this program repeatably hangs the macro stepper: 15:51 samth: #lang racket/load 15:51 samth: (module m1 racket 15:51 samth: (define f 1) 15:51 samth: (define-syntax f* (make-rename-transformer #'f)) 15:51 samth: (provide (rename-out [f* f]))) 15:51 samth: (module m2 racket 15:51 samth: (require 'm1) 15:51 samth: f) 15:51 samth: (require 'm2) 15:51 samth: similar programs should show the bug w/ rename transformers 15:51 samth: the bug is that you expand m2, and you don't see any expansions of `f' 15:52 samth: and the syntax properties say that it's just `f', not `f*' 15:52 jonrafkind: oh good catch samth about line-numebrs<%>, i meant to do it but it slipped my mind 15:53 samth: _ryanc_, you should make sure not to do that in a drracket you care about 15:53 samth: as it will be gone for good 15:54 (quit) hanDerPeder: Quit: hanDerPeder 15:57 samth: and now _ryanc_ is gone for good :) 15:57 _ryanc_: well, not entirely 15:58 _ryanc_: my drracket instance, though... 16:08 _ryanc_: samth, anyway, I think I know why it's not showing the step and why it's confusing the binding information 16:08 _ryanc_: not sure why that example hangs drracket, though; I've tried the non-tool version of the macro stepper, and it seems to handle it fine 16:21 (quit) anRch: Quit: anRch 16:31 (quit) MayDaniel: 17:01 (join) Fare 17:17 (quit) jonrafkind: Read error: Connection reset by peer 17:38 (join) jonrafkind 17:40 (nick) samth -> samth_away 17:48 (join) seth 17:51 seth: when my script encounters an error, i get a backtrace === context === etc. is there a way to know the actual line number or sexp? 17:51 jonrafkind: you can try to use errortrace 17:51 jonrafkind: but its not always completely accurate 17:52 jonrafkind: racket -l errortrace -t blah.rkt 17:52 seth: thanks 17:52 jonrafkind: make sure you erase the compiled/ directory if you have one 17:56 seth: if the script has #!/usr/bin/racket on the first line and #lang racket/load on the 2nd, how would I do this? 17:56 seth: i can run racket -l errortrace -t blah.scm, but the script has arguments 17:56 seth: "racket -l errortrace -t blah.scm --something" doesn't seem to work 17:57 seth: nor does "racket -l errortrace -t blah.scm -- --something" 17:59 seth: ah (require errortrace) did it. thanks again 18:11 (join) Lajla 18:27 (quit) danbrown: Remote host closed the connection 19:08 (quit) asumu: Ping timeout: 265 seconds 19:16 (quit) _ryanc_: Quit: Leaving 19:40 (quit) mceier: Quit: leaving 20:06 (quit) jonrafkind: Ping timeout: 264 seconds 20:12 (join) danbrown 20:31 (quit) carleastlund: Quit: carleastlund 20:37 (join) asumu 21:09 (quit) pygospa: Ping timeout: 255 seconds 21:11 (join) pygospa 22:23 (join) emma 22:50 (quit) danbrown: Remote host closed the connection 22:50 (quit) emma: Ping timeout: 276 seconds 23:04 (quit) rudybot: Remote host closed the connection 23:06 (join) rudybot 23:07 (join) danbrown 23:08 (quit) mario-goulart: Ping timeout: 245 seconds 23:23 (join) emma 23:30 (quit) lisppaste: Ping timeout: 255 seconds 23:40 (quit) emma: Read error: Connection reset by peer 23:40 (join) emma_ 23:40 (quit) masm: Ping timeout: 265 seconds 23:41 (nick) emma_ -> emma 23:42 (join) masm 23:42 (quit) masm: Client Quit