[racket-dev] test-engine/racket-tests
I've just pushed a renaming of the `test-engine' library to use `racket' instead of `scheme' in the names. The current names are still there for compatibility. If anyone notices any problems with this, let me know. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] scribble tables with centered cells
I'd like to produce, with scribble, output similar to what this latex produces: \begin{tabular}{|c|c|c|} Header1 Header2 Header3 11 17 29 \end{tabular} However, I can't seem to figure out how. First, how can I make the elements centered? There doesn't seem to be a way to control the generated column attributes - putting the 'center style in the `table-columns' style property just wraps the *entries* in \center{}, which produces bizarre latex errors instead. Second, how can I insert the dividers? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Parallel Build of Collects
On Mon, Jul 5, 2010 at 2:13 PM, Kevin Tew t...@cs.utah.edu wrote: Parallel build of collects is now the default option. This breaks for me, with current master (during 'make install'): raco setup: --- parallel build using 4 processor cores --- /home/samth/sw/plt/collects/setup/compiled/parallel-build-worker_rkt.zo::0: read (compiled): code compiled for version 5.0.0.5, not 5.0.0.6 /home/samth/sw/plt/collects/setup/compiled/parallel-build-worker_rkt.zo::0: read (compiled): code compiled for version 5.0.0.5, not 5.0.0.6 KILLING WORKER 0 #(struct:exn:fail:filesystem error writing to stream port (Broken pipe; errno=32) #continuation-mark-set) close-input-port: expects argument of type input-port; given 0 === context === /home/samth/sw/plt/collects/setup/parallel-build.rkt:220:58: with-handlers-handler219 /home/samth/sw/plt/collects/setup/setup-unit.rkt:601:17: thunk /home/samth/sw/plt/collects/setup/setup-go.rkt: [running body] /home/samth/sw/plt/collects/setup/main.rkt: [running body] I was able to fix this by doing 'raco setup -u -l setup' and then rerunning 'make install'. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.0.1
On Fri, Jul 23, 2010 at 8:19 PM, Eli Barzilay e...@barzilay.org wrote: Some suggested items below, if you have items, please mail me text that describes those that you think should be mentioned, and verify that the rest should not. I feel like we should mention items that were released in v5.0, since none of them were mentioned in that release announcement. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Can't Find a Workaround for Bug 11017 in DrRacket
On Sun, Jul 25, 2010 at 8:27 AM, Matthew Flatt mfl...@cs.utah.edu wrote: It's worrying, though, that you're getting a DrRacket backtrace that covers cm.rkt. Files in the main installation normally should not be instrumented for backtraces. Does your installation have any drracket subdirectories of any compiled directories? It's easy to get such a backtrace if Debugging (meaning Errortrace Debugging) is off. This is particularly likely to be what happened here, since every backtrace frame is a function definition, which rarely happens with errortrace, but always happens with the internal Racket backtraces. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.0.1
On Tue, Jul 27, 2010 at 12:14 PM, Kevin Tew t...@cs.utah.edu wrote: On Jul 27, Kevin Tew wrote: Parallel-build is somewhat behind the scenes. I would delay talking about it until the next release which will include -j documentation and parallel rendering of docs. Shouldn't the docs be merged to the release branch? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Typed Racket and importing polymorphic code
On Mon, Aug 2, 2010 at 9:58 AM, Shriram Krishnamurthi s...@cs.brown.edu wrote: 1'. That seems unlikely given that if I instead add insert to the above (#lang racket) source file and run Check Syntax, I get the same error -- so it is indeed a static error. (Well, maybe not static, there are probably three or four times at work here.) This is a different issue - it shouldn't work to use `insert' in an untyped context, since there's no way to generate a contract for its type. This is also what's happening with the REPL, but that shouldn't be treated as a untyped context (that's the bug). Sorry, I misread your initial question, and thought something else was happening. The bug I was referring to is irrelevant here. The reason that you don't get an error until you use `insert' is that the error is only detected when you *use* `insert', not when it's defined. This is intentional - otherwise, typed modules would be much less useful from the untyped side. It's just as safe, since the error is still at expansion time. 2. Why does the same not happen with map? I can use map freely; if I put it in the #lang racket file and Check Syntax, it draws an arrow from map to the required (typed) file. Yet in the typed file: `insert' is defined in typed code, and `map' is not. Depends on how you want to define the term. I imported a language with map and explicitly provided it. I mean defined in the sense of where the original `define-values' form is. BUT: That's beside the point. map has just as much a polymorphic type as insert. You said earlier, it shouldn't work to use `insert' in an untyped context, since there's no way to generate a contract for its type. Why does this statement not apply to map? No contract is needed for `map' at all - it (like all Racket primitives) is known to protect itself. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] status of the new `racket/gui'
On Mon, Aug 2, 2010 at 1:09 PM, Matthew Flatt mfl...@cs.utah.edu wrote: The `racket/gui' re-implementation is starting to come into focus. DrRacket mostly works, although lots and lots of problems remain. It looks very nice on my machine. One question: the open/save file dialogs on Gtk are using the old GRacket dialogs, rather than the Gtk-native ones. Is this planned to change in the future? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Added Sierpinski example to wikipedia page
On Mon, Aug 16, 2010 at 11:38 PM, Matthias Felleisen matth...@ccs.neu.edu wrote: Some minimal surgery done. Note that the best way to make edits like this stick is to put the information we want on our web pages as well, and then cite it from Wikipedia. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] a small Racket success story
On Tue, Aug 17, 2010 at 9:21 PM, Shriram Krishnamurthi s...@cs.brown.edu wrote: we couldn't type the generator code (a bad interaction between mutation and occurrence typing). In almost all cases, when TR rejects your program because of this, your code is incorrect in the presence of threads and/or futures (and sometimes continuations) as well. For example, this program: #lang typed/racket (: x Any) (define x #f) (: f (Any - Void)) (define (f v) (set! x v)) (if (number? x) ;; no call to `f' here (add1 x) 0) won't typecheck, but you might think it should. However, the call to `f' can be in another thread/future, which can happen between the test and the `add1', breaking your program. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] PLaneT Library of Iterations/Comprehensions
On Wed, Aug 18, 2010 at 12:02 PM, Will M. Farr wmf...@gmail.com wrote: Hello all, I've been thinking for a while about putting together a PLaneT library of some iteration/comprehension forms that I often use that are not found in the racket core. Right now, I have a small it-comp.plt local PLaneT package that contains for/vector for/flvector in-flvector Great! The for/... forms have the option of having a first expression that gives the length of the resulting object (similar to srfi-42's vector-of-length-ec form) to allow generating more efficient code: (for/vector ((x (in-range 3))) x) = (vector 0 1 2) (for/vector 3 ((x (in-range 3))) x) = (vector 0 1 2) ; but more efficiently What does this do if the specified length is wrong? Alternately, if you guys want to add these to the core, I'd be happy to contribute code and tests If you prepare a patch (with tests/docs) I'll get it committed. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] RFC: Coding Guidelines
On Tue, Aug 17, 2010 at 3:57 PM, Jay McCarthy jay.mccar...@gmail.com wrote: Please comment. I think that this: Your first task when changing old code is to build an adequate test suite to ensure you do not introduce new mistakes as you attempt to improve it. Thank you for improving the world for future generations! is too demanding. There are enormous areas of our code that don't have a test suite. How comprehensive a test suite do I need before changing slideshow? Or scribble (which has a test suite for the syntax, but not the language)? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] gc vs assignment
On Tue, Aug 24, 2010 at 11:43 AM, Kevin Tew t...@cs.utah.edu wrote: After a garbage collection all non-nursery memory is write-protected. The first write to a page (16kB) , after a garbage collection, incurs the cost of unprotecting the page so it is writable and recording that the page has been written on. All subsequent mutations to objects in a unprotected page do not have a write barrier cost, until the next garbage collection run. Does this means that the GC treats every object in a mutated page as potentially pointing to the nursery? That seems like a very coarse approximation of the remembered set, but it might be worth it to get the OS to do your write barrier for you. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] futures waiting for scheme_make_envunbox
While trying to use futures to parallelize a simple piece of code, I was able to remove all of the waiting except for this: future: 3 waiting for runtime at 1282743524205.783936: [scheme_make_envunbox] which happens continuously. What causes this function to be invoked, and how can I eliminate it? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Problem with GC or with my machine?
I'm pretty sure that this is a bug in `unsafe-set-box*!'. The following version of que.ss doesn't have the problem, but adding the * results in the segfault. On Fri, Sep 3, 2010 at 6:12 PM, Hari Prashanth krh...@ccs.neu.edu wrote: Yes the problem goes away once I turn off the optimizer... I have attached the code. #lang typed/racket (require que.ss) (head (queue 1 2 3 4)) - Original Message - From: Vincent St-Amour stamo...@ccs.neu.edu To: Matthew Flatt mfl...@cs.utah.edu Cc: Hari Prashanth krh...@ccs.neu.edu, dev dev@racket-lang.org Sent: Friday, September 3, 2010 11:39:50 AM GMT -05:00 US/Canada Eastern Subject: Re: [racket-dev] Problem with GC or with my machine? At Fri, 3 Sep 2010 09:34:10 -0600, Matthew Flatt wrote: Thanks for sending the code. I see that it's using Typed Racket with #:optimize. Maybe Vincent and Sam should take a look to make sure that the optimizer isn't generating incorrect unsafe code? Yes, please send us the code. First thing you should try, though, is turn off the optimizer and see if the problem goes away. Vincent _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu que.ss Description: Binary data _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] typed/scheme n00b question
On Tue, Sep 7, 2010 at 8:04 AM, Robby Findler ro...@eecs.northwestern.edu wrote: You can't use that type in `require/typed', though, since the contract library doesn't accept `case-' contracts like that. The like that part is that two different arms of the case- would have the same arity? Right. Of course, even if the contract library accepted such contracts when it could distinguish based on the first-order portions which case to take, that still wouldn't cover all of what TR accepts. More work is needed (on my part) to characterize it precisely, though. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] certificates and phases question
I'm puzzled by the behavior of the below program. In particular, `get' doesn't work, but `get2' does, even though the only difference is the phase at which they're executed. `get' produces the certificate error: compile: access from an uncertified context to unexported variable from module: 'm1 in: x Is there a way around this? Working at phase 1 has become inconvenient for me. #lang racket/load (module m1 racket (define x 1) (define-syntax (m stx) #'(list x)) (provide m)) (module m2 racket (require 'm1 (for-syntax syntax/parse)) (define-syntax (get stx) (syntax-parse stx [(_ nm) (with-syntax ([(app lst val) (local-expand #'(m) 'expression null)]) #'(define nm #'val))])) (define-syntax (get2 stx) (syntax-parse stx [(_ nm) (with-syntax ([(app lst val) (local-expand #'(m) 'expression null)]) #'(define-for-syntax nm #'val))])) (get2 z)) (require 'm2) -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [plt] Push #20898: master branch updated
On Mon, Aug 23, 2010 at 11:02 AM, Will M. Farr wmf...@gmail.com wrote: On Aug 23, 2010, at 7:40 AM, Matthew Flatt wrote: Maybe you want to thread the vector index through using `for/fold' instead of drawing the index from a sequence. The expansion could insert enough `#:when' clauses to compare the index to the length before each nested iteration. This is exactly what I have decided to do. New patches attached. Let me know if you want me to combine them into one. I've now pushed these patches, with a few minor edits. Thanks Will! -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] rename + changes = bad? (was: Fwd: [plt] Push #21110: master branch updated)
On Fri, Sep 17, 2010 at 1:36 PM, John Clements cleme...@brinckerhoff.org wrote: Oof... it looks like doing a rename plus a few changes pretty effectively hides those changes, though I can dig them out with 'git annotate'. Do we have a policy (or should we have) a policy stating that you shouldn't put a rename and modifications to that file in the same commit? I believe that this is an issue with Eli's email formatting script, and not with git itself (the github diff is fine: http://github.com/plt/racket/commit/a095ebc326aa35b5b19f314080855db5d55ed49b ). -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] the racket machine
On Fri, Sep 24, 2010 at 3:48 PM, Robby Findler ro...@eecs.northwestern.edu wrote: I know there are a bunch of people working on things at that level, so if you have a chance to take a look at this, you might find it useful as you muck about down there (there are examples and things :). Cool! Is it too much to ask for this to eventually become part of the documentation? Having the paper on the class system as part of the docs is nice already, and this would be even better, since this part of the system is currently much less documented. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] slideshow not hiding KDE panel
On Thu, Sep 30, 2010 at 6:47 PM, Matthew Flatt mfl...@cs.utah.edu wrote: At Thu, 30 Sep 2010 20:20:07 -0400, Faré wrote: I'm trying to use slideshow on Linux, and I find it annoying that it fails to be on top of the KDE panel. I admit I know next to nothing about the X protocol, and can't help much with this issue, but I hope someone who does can do something about it. For the record, samth says he has the exact same problem with the GNOME panel. I think I could fix this in GRacket2 if I could figure out how to provoke the bad behavior on my machine. I'm running Ubuntu 10, and Slideshow works. I tried installing and running Maximus, but Slideshow still worked. (Robby showed me bad behavior on his netbook, and I thought it had something to do with Maximus, but it's apparently not as simple as that.) Does anyone know what I can do to trigger the problem? This happens for me always in slideshow on my laptop in both GR1 and GR2. I'm running Ubuntu 10.04, screen resolution 1440x1050, with panels on the top and bottom of the screen (as is usual for Gnome). I can provide any other data as desired. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] flonum vs. inexact-real
On Sun, Oct 3, 2010 at 10:49 AM, Robby Findler ro...@eecs.northwestern.edu wrote: Would it make sense for typed scheme to hook up with check syntax to show the type of subexpressions (say when mousing over parens or something)? I'm not sure if that's too late in general, but it seems like we're getting the point where we want to give programmers interactive feedback, at least about numbers. I think this is a good idea (made even better if we eventually have Check Syntax running online). A protocol like 'disappeared-binding would work well for Typed Racket here. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] flonum vs. inexact-real
On Sun, Oct 3, 2010 at 10:42 AM, Matthew Flatt mfl...@cs.utah.edu wrote: The `flonum?' predicate would be the only new predicate for now. The `inexact-integer?' predicate would imply `flonum?', but not vice-versa. I assume you mean `inexact-real?' here. The flonum operators (with names that start `fl' or `unsafe-fl') would require and produce flonums, only. I worry that this is a hazard for existing code. For example, this plain Racket code: (define/contract (f x) (inexact-real? . - . inexact-real?) (unsafe-fl+ x 3.2)) goes from being a safe optimization to potentially segfaulting. Similarly (but less bad), this Typed Racket code: (: f : Any - Float) (define (f x) (if (inexact-real? x) (fl+ x 3.2) 0.0)) which currently typechecks would now be a type error. I don't know how much we should worry about this, but we should probably worry at least a little. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Bug? identifier `make-Int' not included in nested require spec.
This is a known bug with the interaction of `struct' and `require/typed'. `define-struct' should work here. On Mon, Oct 4, 2010 at 7:11 PM, Hari Prashanth krh...@ccs.neu.edu wrote: Am I doing some thing wrong or is it a bug? #lang racket/load (module UNTYPED racket/base (struct Int (elem)) (provide (struct-out Int))) (module TYPED typed/racket (require/typed 'UNTYPED [struct Int ([elem : Integer])])) I get the following error only-in: identifier `make-Int' not included in nested require spec in: (quote UNTYPED) Hari _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] #true and #false
On Sun, Oct 10, 2010 at 9:39 AM, Matthew Flatt mfl...@cs.utah.edu wrote: Any other opinions? Personally, I find #true and #false visually ugly, and I also agree with Eli's feelings on terseness. I don't think I've ever accidentally confused #t and #f personally, so I'm not in favor of changing outside of the student languages. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] fuzz testing the bytecode reader
Earlier today, I wrote a simple fuzz tester for bytecode reading and evaluation. The code is attached. It takes an existing zo file, reads it in as bytes, randomly flips some small portion of the bits (0.1%), and then `read's and `eval's the results. This extremely quickly finds segfaults in Racket. Here's a deterministic segfault with git HEAD: [sa...@hermes:~/tmp] racket fuzz.rkt -s 1046626898 -f ~/sw/plt/collects/redex/tests/compiled/lw-test-util_rkt.zo DrDr Ignore! random-seed 1046626898 name: /home/samth/sw/plt/collects/redex/tests/compiled/lw-test-util_rkt.zo SIGSEGV MAPERR si_code 1 fault on addr 0x616ec898 Aborted Here's how to traverse a bunch of files to find a segfault: racket fuzz.rkt -d ~/sw/plt/collects/redex/ I'll be adding this to the tree in the stress tests soon. Thanks to Robby for advice on the code, and to Lars Hansen for the idea. -- sam th sa...@ccs.neu.edu fuzz.rkt Description: Binary data _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Grr... why can't I pull?
On Tue, Oct 19, 2010 at 2:28 PM, John Clements cleme...@brinckerhoff.org wrote: Am I doing something stupid, here? I'm having the same problem, and I'm at the same conference as John, so I suspect that's the issue. I can pull fine from my machine at Northeastern. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release for v5.0.2 has begun
On Mon, Oct 25, 2010 at 10:06 AM, Doug Williams m.douglas.willi...@gmail.com wrote: (case- (-r ((r random-source?) (a real?) (b (/c a))) real?) (-r ((a real?) (b (/c a))) real?))) I'm not sure that one can be easily rewritten in the current contract system. [I think I would have to move the b a constraint into the code itself in the current contract system. Or, change the argument order and break backward compatibility.] This can be written as a dependent contract, but with worse error messages. (-i ([r/a (or/c random-source? real?)] [a/b real?]) ([b/opt (r/a a/b) (if (random-source? r/a) (/c a/b) none/c)]) [result real?]) -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] building docs, compile collects
On Mon, Oct 25, 2010 at 4:54 PM, Jon Rafkind rafk...@cs.utah.edu wrote: My motivation is to quickly test changes to core libraries (like collects/racket) after doing a 'git pull --rebase'. Given that this is your motivation, why not just use: 'raco setup -D' which skips the documentation altogether? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] building docs, compile collects
On Mon, Oct 25, 2010 at 5:15 PM, Jon Rafkind rafk...@cs.utah.edu wrote: On 10/25/2010 03:06 PM, Sam Tobin-Hochstadt wrote: On Mon, Oct 25, 2010 at 4:54 PM, Jon Rafkind rafk...@cs.utah.edu wrote: My motivation is to quickly test changes to core libraries (like collects/racket) after doing a 'git pull --rebase'. Given that this is your motivation, why not just use: 'raco setup -D' which skips the documentation altogether? The issue is building collects that I don't care about nor do the tests exercise (like algol60, or all of drracket). In the event that there is some subtle issue between my changes and a collect that I don't want to build then DrDr will find it. Try 'raco setup racket' -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Web language
On Tue, Oct 26, 2010 at 10:01 AM, Eli Barzilay e...@barzilay.org wrote: OK, I changed it -- but here are some of the points that made me think that `html' is the right choice: Here's one more (and IMHO more significant) point: XHTML is on the way out as a web technology. In particular, HTML5 is treating the whole HTML-in-XML idea as mostly failed and continuing without paying it much attention. For more details, see: http://dev.w3.org/html5/html4-differences/#syntax and http://wiki.whatwg.org/wiki/HTML_vs._XHTML -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Web language
On Tue, Oct 26, 2010 at 10:49 AM, Eli Barzilay e...@barzilay.org wrote: 5 minutes ago, Sam Tobin-Hochstadt wrote: If you're planning to serve things under the text/html mime type (which racket-lang.org currently does, for example) then it should definitely be called `html'. Do you mean the Content-Type header? I understood at some point that this was a valid, and it sounds like this quote (from the second link you posted): Note that XHTML 1.0 previously defined that documents adhering to the compatibility guidelines were allowed to be served as text/html, but HTML 5 now defines that such documents are HTML, not XHTML. Keeps it valid -- except that the proper label for this is now HTML, and possibly affects parsing in some ways that I'd be insane to rely on. Right? Basically, (a) you should use this mime type, since 'application/xml' is liable to behave badly in some browsers and (b) this means that it's HTML (and always has been), and (c) HTML5 will specify the rendering behavior of your page if you make mistakes like forgetting to close tags. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Pre-Release Checklist for v5.0.2, second call
On Mon, Oct 25, 2010 at 1:46 PM, Ryan Culpepper ry...@ccs.neu.edu wrote: * Sam Tobin-Hochstadt sa...@ccs.neu.edu - Match Tests Done. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [plt] Push #21356: gr2 branch updated
mflatt has updated `gr2' from 5633895cf0 to 2b2de4ece6. http://git.racket-lang.org/plt/5633895cf0..2b2de4ece6 So, I see from this commit that you're planning to move the version number to 5.5. I think this is a mistake. We've been trying to be more conventional in our project managment, and I think we should stick with just incrementing the version. There's no reason that 5.1 can't be a significant improvement over 5.0, and skipping versions just adds potential for confusion. Other than that, yay for GR2! -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [plt] Push #21356: gr2 branch updated
On Wed, Oct 27, 2010 at 4:22 PM, Robby Findler ro...@eecs.northwestern.edu wrote: Is there no conventional precedent for this? There are several numbering schemes in use in projects that I know about: 1. major.minor.patch, as with us. The Linux Kernel, GCC, Subversion, Git, and many many other projects use this. 2. major.minor with no patch revisions. FreeBSD, KDE, Emacs, and other projects do this. 3. major.even-minor. with odd-minor indicating development releases. Gnome and various other projects use this. None of these in my experience have incremented by more than +1 (or +2 in case 3), even for significant changes. For example, GCC 4.5 added whole-program link time optimization and a plugin system (both very significant changes) over version 4.4. An additional thought: what if we make a similarly-significant change after 5.8? What will the new number be? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] 5.0.2 changelog
On Thu, Oct 28, 2010 at 1:40 AM, Jon Rafkind rafk...@cs.utah.edu wrote: Author: Sam Tobin-Hochstadt sa...@racket-lang.org Faster loading of TR files? Not worth mentioning. You do have the optimizer-by-default in the changelog, right? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] 5.0.2 changelog
On Thu, Oct 28, 2010 at 12:29 PM, Eli Barzilay e...@barzilay.org wrote: Three hours ago, Matthias Felleisen wrote: On Oct 28, 2010, at 8:34 AM, Matthew Flatt wrote: None seem especially worth mentioning, but the internal-definition change could be mentioned if we need more to Say: * The `when', `unless', `cond', `case', and `match' forms (in `racket/base' and derived languages) now allow immediate internal definitions. Just for the record: allowing internal definitions all over the place and mixing them properly with expressions has been one of the best small changes of the decade. BTW, there's another one that I think should get the same: `begin0'. That would be weird. What do these do? (begin0 (define x 1) x) (let ([x 0]) (begin0 x (define x 1)) On a different note, is it still important to have `begin0' as a core form? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Scribble Racket Code with Here Strings
On Sat, Oct 30, 2010 at 11:56 AM, Eli Barzilay e...@barzilay.org wrote: That is, the here string has been rendered as a normal string with lots of whitespace after. There's lots of ways to create strings and the documentation system can't tell them apart -- so it rendered it as a string, but then noticed that the other pieces of code are a few lines later. Isn't that a sign that we need a syntax property for here-strings, similar to 'paren-shape? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] A Workshop on Racket
PLT holds annual internal workshops where we synchronize our efforts. Based on discussions with members of the community, we are considering holding an open workshop for our entire user population. Depending on interest, the workshop is likely to feature presentations by: * Matthew Flatt on the future of Racket * Matthias Felleisen on the future of the HtDP Curriculum * Robby Findler on new developments in DrRacket as well as tutorials by: * Ryan Culpepper on creating Domain-Specific Languages * Jay McCarthy on Web Development with Racket * Shriram Krishnamurthi on teaching algorithmic content in an accelerated HtDP/2e course Also we are hoping that some of you might be interested in presenting ideas, requests, experiences, and plans that others may be interested in. Participants will have to pay for their travel, lodging and (most) meals, while we will try to pick up the tab for other workshop expenses. It would greatly help us if anyone interested in attending such a workshop could point your browser to http://www.surveymonkey.com/s/Y8CP8G8 and fill out our quick survey. Please do so even if we have informally polled you before on some of these questions. Filling out the survey doesn't commit you to anything. If you have any other comments, questions, or feedback, please send them to me directly. For the organizers, Sam Tobin-Hochstadt _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] try the GRacket2 branch
On Thu, Oct 28, 2010 at 2:25 AM, Matthew Flatt mfl...@cs.utah.edu wrote: The git repository now includes a gr2 branch for the new implementation of `racket/gui', which we've been informally calling GRacket2. What are the plans for merging between the master and gr2 branches? Right now, I can no longer use gr2 most of the time since it needs fixes to the macro-stepper, but those are only available on 'master'. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Simple loop checking in beginner?
On Wed, Nov 10, 2010 at 10:40 AM, namekuseijin namekusei...@gmail.com wrote: On Wed, Nov 10, 2010 at 12:13 AM, John Clements cleme...@brinckerhoff.org wrote: ;; NOW I'M A STUDENT: ;; only-long-strings : (listof string) - (listof string) ;; return a list containing the strings longer than 2 chars (define/noloop (only-long-strings l) (cond [(empty? l) empty] [else (cond [( 2 (string-length (first l))) (cons (first l) (only-long-strings (rest l)))] [else (only-long-strings l)])])) gosh, students do suck. I guess you teach them to use cond because it's a generalized if. But then they proceed to use it just like if: always two conditions per (verbose) cond! :p I disagree - the outer `cond' has 2 clauses because it it processing a data definition - (listof string) - which has 2 clauses. The second `cond' clause, which processes conses, has a conditional as well, but there's certainly nothing wrong with having the structure of your program match the structure of your data, especially not for HtDP programs. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] OT: stump misunderstands Scheme?
On Tue, Nov 16, 2010 at 5:22 PM, Shriram Krishnamurthi s...@cs.brown.edu wrote: You know, it's not inconceivable such a thing could happen if you had a PURELY syntactic *interpreter*. I remember when I got to Brown, they were using one of those weirdo Scheme interpreters, and had come to conclusions about the semantics of Scheme on the basis of its behavior. Things like you could run ('(lambda (x) x) 3) and it would evaluate to 3 because of the way the interpreter was structured. Now if Aaron ran one of those to test his code... I'm pretty sure that this is also how the original Lisp interpreter from McCarthy's paper worked. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [racket] newbie: foreign C structure definition question
[redirected to d...@] On Tue, Nov 16, 2010 at 11:28 PM, Eli Barzilay e...@barzilay.org wrote: 20 minutes ago, Jay McCarthy wrote: I've complained about this before, which is why I was able to quickly answer your question. I don't endorse the current behavior. (Just a reminder: this is something that libffi doesn't have AFAICT.) Python's 'ctypes' library, which also uses libffi under the hood, has arrays: http://docs.python.org/library/ctypes.html#arrays and also unions, which we don't have: http://docs.python.org/library/ctypes.html#structures-and-unions So it seems like this should be possible, and maybe we can even use their code. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [racket] newbie: foreign C structure definition question
On Wed, Nov 17, 2010 at 2:12 AM, Eli Barzilay e...@barzilay.org wrote: Two hours ago, Sam Tobin-Hochstadt wrote: Python's 'ctypes' library, which also uses libffi under the hood, has arrays: http://docs.python.org/library/ctypes.html#arrays and also unions, which we don't have: http://docs.python.org/library/ctypes.html#structures-and-unions So it seems like this should be possible, and maybe we can even use their code. They guy who did ctypes knows how to deal with the libffi internals. (He did the msvc version of the code.) If you look through the libffi documentation you'll see no mention of arrays, and an explicit mention of no special support for unions. I understand that, but ctypes proves 3 things - it can be done - there is code to read and people to ask to figure out how - Python(!) has a nicer FFI than us for this. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] TR - no source locations?
There are a lot of things you could mean by Typed Racket doesn't preserve source locations. Some of them TR definitely preserves source locations, and some are hard cases where TR tries but doesn't always succeed. So I am also interested in an example. On Sat, Nov 20, 2010 at 1:55 PM, Carl Eastlund c...@ccs.neu.edu wrote: Do you have a sample program where Racket preserves source locations and Typed Racket doesn't? Carl Eastlund On Sat, Nov 20, 2010 at 1:51 PM, John Clements cleme...@brinckerhoff.org wrote: It appears to me that TR does not preserve source locations, which makes testing extremely painful (which test failed? Who knows.) I'm hoping that I'm just missing something obvious, here. I'm also in the market for obvious workarounds. Apologies if this is a FAQ; I did actually google for the answer. John -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] TR - no source locations?
On Fri, Nov 26, 2010 at 5:26 AM, Noel Welsh noelwe...@gmail.com wrote: On Tue, Nov 23, 2010 at 6:18 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: What's happening here is that the typed wrapper in `typed/rackunit' is treating `check-equal?' as a function, but it's really an identifier macro that inserts source locations when used in application position. This makes it easy to write a typed wrapper, but it has the drawbacks you see. Probably the solution is to write a better wrapper in `typed/rackunit', but that might be hard without integrating with the internals of Rackunit. How far along is interop for macros in Typed Racket? Would I have to maintain typed and untyped version of Rackunit to do things 'properly'. The right thing to do for `check-equal?' etc is to have versions that take a syntax object to use as the source location, and then TR could use them. I think that in general it's good to provide such versions for macros where the source location is important to support expanding into those macros. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Hacking on the collects
On Mon, Dec 6, 2010 at 12:04 PM, Jakub Piotr Cłapa jpc...@zenburn.net wrote: I added support for secure websockets to net/websocket/client and now I am wondering how I should make such changes in th future to easily integrate them back into racket? What I have tried: 1. Fork racket on github 2. Make a local copy 3. Compile everything fro scratch 4. Wait and awful lot of time 4. Change the file in collects 5. Run make install 6. Wait another awful lot of time for raco setup to recomplie everything 7. Test the changes 8. I was planning to create a pull request on github Is there a easier/faster way? Or should I just develop in the live collects tree and then endure the raco setup once for final testing? Here are two things that I do: (a) hack on the live collects (b) just rerun 'raco setup' on the relevant collections (it takes collection arguments on the command line) (c) use the -D argument to 'setup' to skip rebuilding the documentation (d) sometime, I don't rerun 'raco setup' at all, I just rely on running from source. This is slower to run, but avoid the setup time. Of course, you should run setup on the whole tree before requesting a pull or submitting a patch, but skipping the intermediate slowness helps a lot. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Hacking on the collects
On Mon, Dec 6, 2010 at 12:16 PM, Jay McCarthy jay.mccar...@gmail.com wrote: If you do a pull request on github, it will not be useful because github is a mirror and I'll just need to get the patch some other way anyways. I'd rather you sent the patch directly to me. This isn't quite right. As Eli explained (I think on this list), it's easy to merge from a separate github repository. I find it easier than fiddling with the git patch management commands. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [plt] Push #21701: master branch updated
On Fri, Dec 10, 2010 at 8:26 AM, Casey Klein clkl...@eecs.northwestern.edu wrote: On Fri, Dec 10, 2010 at 7:00 AM, Eli Barzilay e...@barzilay.org wrote: As for a suggestion, I don't have anything concrete (and I don't have nearly enough contract experience to say something concrete) -- but in general I prefer to see those important bits first, and the vague human text later. This organization was my goal in suggesting that we tack an explanation onto the old message. I was imagining something like this: /Users/clklein/tmp/contract-violator.rkt:9.17: (file /Users/clklein/tmp/contract-violator.rkt) broke the contract (- any/c any/c any/c) on #:equiv argument of test--; expected a procedure that accepts 2 mandatory arguments without any keywords, given: 1. Possible fixes include changing (file /Users/clklein/tmp/contract-violator.rkt) and changing the contract. I like the idea of better error messages, and in that spirit, I suggest: newlines. For example: /Users/clklein/tmp/contract-violator.rkt:9.17: (file /Users/clklein/tmp/contract-violator.rkt) broke the contract (- any/c any/c any/c) on #:equiv argument of test--: Expected: a procedure that accepts 2 mandatory arguments without any keywords. Given: 1. Possible fixes include changing (file /Users/clklein/tmp/contract-violator.rkt) and changing the contract. For an effective use of text formatting in error messages, the GHC type error messages are good examples. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] (round), etc. in Typed Racket
On Sat, Dec 11, 2010 at 9:47 PM, Robby Findler ro...@eecs.northwestern.edu wrote: This seems like an unfortunate naming discrepancy. I agree. I think the solution is to change Racket, however. From the perspective of the type system, inexact integers are useless - they have no closure properties, don't obey various laws we'd like the integers to obey, etc. Changing Racket is tricky, but I think using the `Integer' type for something useless (it's not even currently represented in the TR type system) would be a mistake. Robby On Sat, Dec 11, 2010 at 7:52 PM, Vincent St-Amour stamo...@ccs.neu.edu wrote: At Sat, 11 Dec 2010 18:35:17 -0700, Petey Aldous wrote: I've discovered what may be a bug in the type system of Typed Racket. The functions that round - (round), (truncate), (ceiling), etc. are typed as Real, not Integer; however, the result of (integer? (round (* 10e15 (random is consistently true - and the same holds for the other rounding functions. Typed Racket's Integer type corresponds to racket's exact integers (exact-integer?, not integer?). integer? can return true for floating point numbers: (integer? 1.0) - #t but exact-integer? cannot. The types for round, truncate, etc. take this into account. For instance, if you round an exact rational, the type of the result will be Integer, whereas if you round a floating point number, you get a Float back. Is this intentional? If so, why? If it is (or even if it isn't), how can I transform the result of (random) to an Integer? You can use inexact-exact on the result of round. Vincent _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] (round), etc. in Typed Racket
On Sat, Dec 11, 2010 at 10:53 PM, Robby Findler ro...@eecs.northwestern.edu wrote: Changing Racket is tricky, but I think using the `Integer' type for something useless (it's not even currently represented in the TR type system) would be a mistake. Well, the change to TR would be to change Integer to ExactInteger (or similar) presumably, not to add a useless type. I think not having an `Integer' type would be just as bad. Given that (integer? 3.0) = #t, I think there will be an inevitable discrepancy between what people expect and what the type system does. One of these definitions has to not type check: (: x : Integer) (define x 1) (: f : Integer - Integer) (define (f x) (add1 x)) (: g : Any - Integer) (define (g x) (assert x integer?)) You're suggesting the first one fail, because `Integer' would go away. Right now only `g' fails. Adding an `Integer' type that corresponds to `integer?' would make `f' fail. My feeling is that the fewest people will run into `g', and that it's therefore the right choice, since there will be a FAQ about this regardless. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] spam planet bug reports
On Sat, Dec 18, 2010 at 9:02 AM, Robby Findler ro...@eecs.northwestern.edu wrote: So I'm guessing that this means that they are serious about spamming planet (why?!). PLaneT is result #9 for google (w/ no cookies) for the word planet. Thus I would guess that having links from there to your spam web page greatly increases its google rank, which is what the spammers are after. No one buys Cialis after seeing it on planet -- they want people who search for buy cialis online to find them. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] sudo make install
On Mon, Jan 3, 2011 at 2:51 PM, Robby Findler ro...@eecs.northwestern.edu wrote: Or maybe there is another possible solution that involves changing how the distribution and or the docs build works? I think the conventional solution is for `make install' to do much less work than it current does. In normal Make-built software, `make' does all of the compilation, and `make install' just does the copying. That way, `make install' wouldn't be doing things like reading preferences and creating the '.racket' directory. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] A disassembler for Racket
On Wed, Jan 5, 2011 at 5:39 PM, Neil Van Dyke n...@neilvandyke.org wrote: Sam Tobin-Hochstadt wrote at 01/05/2011 05:28 PM: I've been on-and-off working on a disassembler for jitted x86 functions in Racket, This is great, Sam. Thank you. Your problem now is that, while some CL-type people will like to see assembly dumps, they will grumble about any missed optimizations. :) Well, the first step is seeing the problem ... More seriously, the reason that I'm interested in this is that with things like the TR optimizer, understanding the behavior of Racket at the assembly level is all the more important. Hopefully this will lead to improvements at both the optimizer and the JIT level. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Git
On Fri, Jan 7, 2011 at 10:42 AM, Robby Findler ro...@eecs.northwestern.edu wrote: Another question: what if I commit something just for the purpose of moving to another machine and I don't want that commit to show up in the main repository? Is that possible? (My tree is currently in that state; it is one commit ahead of plt/master but that commit message is a lie-- I've just started to do that job; ordinarily I'd do git commit --amend to add more stuff to it, but now I'm worried about that.) If you commit something to your own private repository, you can then rebase relative to plt/master, and then the bogus commit won't show up (or rather, whatever the result of the rebase is will show up, which can differ arbitrarily). Once you commit to the main repository, though, history-rewriting is disallowed. Does that answer your question? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] JFYI: Apple's Mac App store now online
On Tue, Jan 11, 2011 at 12:52 PM, John Clements cleme...@brinckerhoff.org wrote: Anyhow, I wouldn't be surprised if in the next few years users start asking why DrRacket isn't available through the App store. I expect that, like the iOS App Store, distribution through the App store is incompatible with DrRacket's LGPL license. See, for example: http://www.enternet.org/3543575/vlc-app-removed-from-app-store/ Also, you have to pay Apple $99 a year. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Pre-Release Checklist for v5.1, second call
On Thu, Feb 3, 2011 at 9:08 PM, Ryan Culpepper ry...@ccs.neu.edu wrote: * Sam Tobin-Hochstadt sa...@ccs.neu.edu - Match Tests Done. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] drafting the v5.1 release announcement
On Wed, Feb 9, 2011 at 4:28 PM, Jon Rafkind rafk...@cs.utah.edu wrote: Here are some items I pulled from the commit log I'm not sure how you selected these, but some of them aren't even in the 5.1 release (such as Vincent's changes). -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] drafting the v5.1 release announcement
On Wed, Feb 9, 2011 at 3:37 PM, Matthew Flatt mfl...@cs.utah.edu wrote: Let's get the ball rolling on the release announcement. * Images created with `2htdp/image' now automatically serialize to PNG files when asked. This means that image examples now render automatically when used in Scribble documentation. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Latex files
On Fri, Feb 18, 2011 at 9:42 PM, Robby Findler ro...@eecs.northwestern.edu wrote: It wouldn't hurt to include a little script that downloads the correct versions of the files from racket-lang.org somewhere and puts them where they are currently, tho, no? At least for the JFP file, it's pretty clearly a copyright violation for us to distribute the file at all -- on the web page or elsewhere. We'd have to download it from the CUP site. For the ACM file, I emailed the contact email for the style file about the license. sam th Robby On Fri, Feb 18, 2011 at 7:56 PM, Matthew Flatt mfl...@cs.utah.edu wrote: Sorry. I think we should remove the .cls files and say that users have to put them somewhere that Latex will find them (e.g., set `TEXINPUTS'). _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Packaging
On Fri, Feb 18, 2011 at 8:17 PM, Robby Findler ro...@eecs.northwestern.edu wrote: One more comment: one of PLaneT's design goals what that if you have a working system and you install a new planet package, then you didn't break any of the working parts from before. The new system doesn't seem to have that as a design goal anymore (I noticed automatic upgrades and freezing being an explicit operation but there may be other places). Do you have a rationale for deviating from this seemingly nice property? I think (from my experience working on this problem in the Fortress context) that this property isn't as nice as it seems to start with. It has a few important problems: 1. It can't possible be true in general, since two packages or (especially) two versions of the same package can contend for the same system resource (a file, a database, a network port, a parameter, a bit of Racket global state, etc). 2. It's in conflict with two other important goals -- upgrading packages (to remove bugs, add features, etc) and reducing resource usage (disk, memory, etc). 3. Often, sharing state in a package/library is very important. For example, generative structs have to be generated only once to be properly shared. With the planet policy, it's all to easy to install two packages, both of which require (planet foo/bar), get different instantiations of foo/bar, and have the two packages be subtly incompatible (it's even worse when the incompatibility is in some shared resource other than generative structs, like shared files). We've had this problem with planet libraries, I believe. I believe the right solution is to allow individual library authors to specify that they want the planet policy, or some other policy, to be applied to particular dependencies, without making it the default. Robby On Fri, Feb 18, 2011 at 3:21 PM, Jay McCarthy jay.mccar...@gmail.com wrote: You may recall from the meeting over the summer that I promised a packaging Christmas present to Racket. I'm over a month late, but here it is: http://faculty.cs.byu.edu/~jay/tmp/pkgs/spec.html I lay out some goals for the new packaging system and make a concrete proposal. Please share your feedback so I can direct my efforts better. Jay -- Jay McCarthy j...@cs.byu.edu Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay The glory of God is Intelligence - DC 93 _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Latex files
On Sat, Feb 19, 2011 at 8:22 AM, Matthew Flatt mfl...@cs.utah.edu wrote: At Fri, 18 Feb 2011 22:44:54 -0500, Sam Tobin-Hochstadt wrote: At least for the JFP file, it's pretty clearly a copyright violation for us to distribute the file at all -- on the web page or elsewhere. We'd have to download it from the CUP site. For the ACM file, I emailed the contact email for the style file about the license. Did you e-mail anyone at JFP, yet? I have not, although one of the JFP editors is on this list :) Looking again, I can imagine reading the jfp.cls file Robby's way. The intent of use may be produce a document, and the overall intent might permit redistribution of jfp.cls to others who are producing JFP documents. That's certainly possible, but redistributing the file requires the permission of the copyright holder, and the tone of the notice suggests that they aren't very flexible about these things. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Latex files
On Sat, Feb 19, 2011 at 9:50 AM, Robby Findler ro...@eecs.northwestern.edu wrote: Does it seem okay to provide a script that downloads the .cls file from the jfp website and tuck it into the (already installed) distribution (presumably in a user-specific place)? Yes, this is a well-known workaround in these sorts of situations. It's used for packages that install Flash on lots of Linux distributions, for example. I think it would probably be sufficient to provide a .cls file that errors with a message indicating where to go to get the file, although the script you describe would certainly be a helpful addition. If so, then we can at least set up a drdr test that does that and checks to see if scribble produces exactly the same .pdf file for some well known scribble input file, so we get notified problems when they move the url or make a new version of the file or something. Robby On Sat, Feb 19, 2011 at 8:46 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Sat, Feb 19, 2011 at 8:22 AM, Matthew Flatt mfl...@cs.utah.edu wrote: At Fri, 18 Feb 2011 22:44:54 -0500, Sam Tobin-Hochstadt wrote: At least for the JFP file, it's pretty clearly a copyright violation for us to distribute the file at all -- on the web page or elsewhere. We'd have to download it from the CUP site. For the ACM file, I emailed the contact email for the style file about the license. Did you e-mail anyone at JFP, yet? I have not, although one of the JFP editors is on this list :) Looking again, I can imagine reading the jfp.cls file Robby's way. The intent of use may be produce a document, and the overall intent might permit redistribution of jfp.cls to others who are producing JFP documents. That's certainly possible, but redistributing the file requires the permission of the copyright holder, and the tone of the notice suggests that they aren't very flexible about these things. -- sam th sa...@ccs.neu.edu -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [racket] tests/eli-tester feedback (Was: Racket unit testing)
On Sun, Feb 20, 2011 at 7:08 PM, Ryan Culpepper ry...@ccs.neu.edu wrote: I also generalized the idea of test headers based on a long-standing feature request (the ability to designate tests as expected to fail). Thank you! This is indeed something I've wanted for a long time. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] define-wish and a call for assistance
On Mon, Feb 21, 2011 at 8:04 AM, Kathryn Gray kathryn.g...@cl.cam.ac.uk wrote: I've added a preliminary version of define-wish to the teaching languages and the test-engine Can we please please please not have any new undocumented features added to the languages, *especially* the teaching languages? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] racket/stream
On Thu, Mar 17, 2011 at 3:34 PM, Matthias Felleisen matth...@ccs.neu.edu wrote: 1. I think we should stay away from 'stream' here. If Racket had grown out of the Unix tradition, I'd be fine with it. But we partially grew out the functional community, and they use 'stream' for a narrower concept. I thought that Matthew was proposing to use `stream' to mean just what Scheme/Haskell/etc people mean by streams. Was that not the suggestion? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] jit overflow error during building
On Sun, Mar 20, 2011 at 2:58 PM, Matthew Flatt mfl...@cs.utah.edu wrote: I've pushed an attempt to fix the problem, but I'll also try reproducing the problem on my Ubuntu machine. The build isn't done yet, but this appears to have fixed the problem. Thanks! At Sun, 20 Mar 2011 14:53:20 -0400, Sam Tobin-Hochstadt wrote: Currently, I can't build Racket from Git. I get this error: env XFORM_PRECOMP=yes ../racketcgc -cqu ../../../racket/gc2/xform.rkt --setup . --cpp gcc -E -I./.. -I../../../racket/gc2/../include -pthread -DNEWGC_BTC_ACCOUNT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 --keep-lines -o xsrc/precomp.h ../../../racket/gc2/precomp.c JIT buffer overflow: 0x13f06b [0x13d000,0x13f000] (0)!! This is consistent after a configure and make clean. My machine is running Ubuntu 10.04. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Making --enable -places the default.
On Tue, Mar 29, 2011 at 1:01 AM, Kevin Tew t...@cs.utah.edu wrote: Being able to sync on when they terminate? Thats pretty easy to add, I should do it. Place currently is an event you can sync on, but it becomes ready when a message arrives. Not when it terminates. Oh, in that case I don't see a problem with the current API. I guess it's a little weird that a `place?' is both an appropriate argument to `place-wait' and to `place-recv', but I don't know if it's a good idea to make both of those actions events. In any case, you might want to add places to the big list of primitive things that are events in the event documentation. On 03/28/2011 05:34 PM, Sam Tobin-Hochstadt wrote: Not a bug or crash, but it would be nice if a `place' was an event, in the sense of `evt?'. Come to think of it, this would be good for `future' as well. On Mon, Mar 28, 2011 at 1:08 PM, Kevin Tewt...@cs.utah.edu wrote: I would like to make --enable-places the default in the near future. I would appreciate it, if racket developers could configure and build with --enable-places and report any bugs or crashes. Thanks, Kevin _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Making --enable -places the default.
On Tue, Mar 29, 2011 at 8:42 AM, Robby Findler ro...@eecs.northwestern.edu wrote: On Mon, Mar 28, 2011 at 6:34 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: Not a bug or crash, but it would be nice if a `place' was an event, in the sense of `evt?'. Come to think of it, this would be good for `future' as well. FWIW, this will probably never happen for futures, due to future-safe issues. Using events in a future is currently far far far from being future safe. I wasn't thinking of using events in futures -- that does sound like a ton of work. I just meant that (sync (future (lambda () ...))) should be the same as (touch (future (lambda () ...))) or is that hard for future-safety reasons as well? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Making --enable -places the default.
On Tue, Mar 29, 2011 at 9:38 AM, Matthew Flatt mfl...@cs.utah.edu wrote: At Tue, 29 Mar 2011 08:46:06 -0400, Sam Tobin-Hochstadt wrote: I just meant that (sync (future (lambda () ...))) should be the same as (touch (future (lambda () ...))) or is that hard for future-safety reasons as well? I'm not convinced that it makes sense. When you create a future, there's no guarantee that the future's thunk will run concurrently with the main computation (i.e., a future may provide parallelism, but it's not intended for concurrency). So, if you simply `sync' on the future's completion, it won't necessarily ever complete, because no one is necessarily demanding the result. Spending a little more time with docs for all of the events, I think I was misled by the fact that (sync ch), for some channel `ch', behaves like (channel-get ch). However, none of the other values that are events are like that, so it might not make sense for `future'. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Parametric/c (was Re: [plt] Push #22411: master branch updated)
On Fri, Apr 8, 2011 at 11:38 AM, Robby Findler ro...@eecs.northwestern.edu wrote: On Friday, April 8, 2011, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Fri, Apr 8, 2011 at 10:57 AM, Robby Findler ro...@eecs.northwestern.edu wrote: I think I'm not in favor of the move of parametric/c into the contract library. Sam and I had a discussion about this is Austin, tho, so maybe I'm misremembering the outcome? One of us is definitely misremembering the outcome -- my memory was that we decided that `parametric/c' was important and belonged alongside `new-exists/c'. I thought I had convinced you that my special casing the - way of looking at the world was sensible and that we didn't really have a good answer for what the Right Thing was. Yes, this is my recollection as well, so less misremembering than I thought. I would be happy if this one were renamed to not take this general sounding name. Something like parametric-/c or something (perhaps even with a corresponding restriction that the thing inside be a fn, if that check isn't already there). Is that ok? That sounds good to me. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] exact nonnegative integers as sequences?
On Mon, Apr 18, 2011 at 9:25 AM, Matthew Flatt mfl...@cs.utah.edu wrote: I often write (for ([i (in-range N)]) ...) In cases where the loop overhead is not significant (i.e., I don't care whether the compiler can tell that I'm iterating through integers), Or in cases where you're using Typed Racket, and the compiler can tell exactly what you're doing. :) it would be nice to write just (for ([i N]) ...) which would require that integers are treated as sequences. Would anyone object to making an exact, nonnegative integer `N' a sequence equivalent to `(in-range N)'? I am very strongly in favor of this. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] exact nonnegative integers as sequences?
On Mon, Apr 18, 2011 at 9:58 AM, Robby Findler ro...@eecs.northwestern.edu wrote: I also don't buy Sam's implicit argument for my example. If I had tried to port this to code to typed racket to just read off the types, I would have spent far longer as debugging via TR's error messages is going to be less productive than debugging via tracing the flow of values in the program. While I support this change for basically the reasons Matthew and Matthias point to, I wasn't trying to claim that TR makes this easier to follow, just that TR removes the performance penalty Matthew mentioned. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] lots of new tests pushed
On Mon, Apr 25, 2011 at 9:15 PM, Robby Findler ro...@eecs.northwestern.edu wrote: I thought that they weren't in the normal distribution, only the full one. Sorry, my sentence wasn't clear. The tests/ collection isn't in the normal distribution, but your new tests are. Robby On Mon, Apr 25, 2011 at 8:14 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Mon, Apr 25, 2011 at 8:40 PM, Robby Findler ro...@eecs.northwestern.edu wrote: On Monday, April 25, 2011, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Mon, Apr 25, 2011 at 2:32 PM, Robby Findler ro...@eecs.northwestern.edu wrote: I just pushed tests for all non-racket and non-scheme collections that makes sure that all of the top-level libraries have their exports fully documented. I left out info.rkt and tried to drop obviously bad things from this list, but if you spot problems when drdr complains at you, please just go edit the file to remove libraries that shouldn't be there. Thanks, this is useful. Is there a benefit to have this spread over all the collections, instead of in a directory under collects/tests? I put them where they are to catch the default responsibilities in drdr. But I have no other reason. Ah, makes sense. However, this has the drawback that they're in the distribution. Does that need to be fixed? -- sam th sa...@ccs.neu.edu -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Typed Racket support for Ephemerons
On Tue, Apr 26, 2011 at 2:19 PM, Eric Dobson eric.n.dob...@gmail.com wrote: I have added support for ephemerons to Typed Racket, and submitted a pull request on Github (https://github.com/plt/racket/pull/5). This patch is supposed to fix PR 11633. All of this looks good, except that `EphemeronTop' is unnecessary. Since ephemerons are covariant, (Ephemeronof Any) is a supertype of (Ephemeronof T) for any type T. Vincent says that he'll change that and push the result. Thanks! -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] narrow menus in 5.1
This happens on my system as well, which is Ubuntu 11.04, but it didn't happen until some point after 5.1, I believe. On Tue, Apr 26, 2011 at 6:58 PM, Jon Rafkind rafk...@cs.utah.edu wrote: A user from #scheme on irc said drracket in 5.1 shows narrow menus. His system is ubuntu 10.10, the language is Portuguese. http://www.pasteall.org/pic/show.php?id=11565 _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] Redirecting documentation links
Is it possible to tell Scribble to use the documentation for one binding for another binding? For example, Typed Racket has a binding for `for' which is semantically the same as `for' from `racket/base', but wraps a trivial type annotation around it. Rather than having an entry in the TR docs for this, I'd like the documentation to just go to the docs for the regular `for'. Is this doable? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Redirecting documentation links
On Fri, May 6, 2011 at 10:15 AM, Robby Findler ro...@eecs.northwestern.edu wrote: I think the right way to do this is to use defidthing with a minimal description and a pointer over to the racket for. That's certainly possible, but I don't think it's the right user experience for someone programming in Typed Racket. If they click Check Syntax, I'd like the documentation option to go directly to what they want, rather than through an indirection. Unless it is literally the same binding (re-exported), in which case you can make scribble do that. (Macros can tell the difference, after all.) Macros can tell a lot of differences that we don't reflect in the documentation (such as being the same binding, re-exported). -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] racket vs. scheme vs. clojure (as it appears to others)
The technology Noel is suggesting randomly chooses whether to give the current description, or some new description (which we would have to write). Then it measures which description leads more people to download Racket. On Fri, May 6, 2011 at 10:41 AM, Matthias Felleisen matth...@ccs.neu.edu wrote: For what time period should we leave the description constant to test this conjecture? On May 6, 2011, at 10:33 AM, Noel Welsh wrote: In retrospect I think this post was a bit opaque. So, some exposition: We have a hypothesis: changing the description of Racket will increase adoption. We can measure this and optimise for it. The measure of adoption could be doesn't bounce or downloads Racket, for example. (Bouncing means leaving the page immediately. Yes these measures aren't perfect but the great is the enemy of the good in these situations.) We have various different descriptions we can try. Myna is a system for optimising the choice of description. A/B testing is the current industry standard. It is essentially hypothesis testing. Myna uses better mathematics to achieve better results. HTH, N. On Fri, May 6, 2011 at 9:22 AM, Noel Welsh noelwe...@gmail.com wrote: On Thu, May 5, 2011 at 12:31 AM, Justin Zamora jus...@zamora.com wrote: A sentence like that would be a good replacement for the awful, Racket is a programming language currently on the front page of racket-lang.org We are men of science; untested hypotheses do not become us. Luckily, your buddies at Untyped have recently created a system called Myna for testing these kind of hypotheses: http://mynaapp.com/ We'd *love* to use Racket as a case study. I'm sure you have enough traffic to get some good results fairly quickly, and this problem is a straight-forward application of Myna. If you've heard of A/B testing, this blog post explains why Myna isn't A/B testing: http://untyped.com/untyping/2011/02/11/stop-ab-testing-and-make-out-like-a-bandit/ Cheers, Noel PS: Anyone else reading this who would like to use Myna -- drop me an email at this address or n...@untyped.com. _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] racket vs. scheme vs. clojure (as it appears to others)
Right now, we're already using JS to decide which of the 3 initial code snippets to display. So, why not start with using Noel's tool for that, and go from there? We already have a built-in group of possibilities to measure, and we're already using JavaScript. As an aside, I suspect that non-JavaScript-browsers are more popular among people who complain to Eli than than among the general visitor population. :) On Sat, May 7, 2011 at 9:38 AM, Noel Welsh noelwe...@gmail.com wrote: You have to contact the Myna server somehow to get suggestions. You can do this via the server or via the client, with the usual tradeoffs. I would go with the JS client as it's much faster to set up, and code the HTML in such a way that it still works if JS is disabled. (This is straightforward, and the example in the API docs does this.) N. On Sat, May 7, 2011 at 2:33 PM, Eli Barzilay e...@barzilay.org wrote: Do you mean that it requires JS to work? What about non-JS browsers? (There are some people who find it important -- I've even made some changes to the front page to make it friendlier to text browsers.) _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] syntax/stx vs racket/private/stx
The `syntax/stx' and `racket/private/stx' libraries contain a bunch of duplication. In particular, the following functions seem identical: `stx-null?' `stx-list?' `stx-list' `stx-pair?' `stx-car' `stx-cdr'. Is there any reason not to just have `syntax/stx' reprovide them, instead of defining duplicate versions? -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] syntax/stx vs racket/private/stx
On Mon, May 16, 2011 at 8:36 AM, Robby Findler ro...@eecs.northwestern.edu wrote: On Mon, May 16, 2011 at 7:14 AM, Matthew Flatt mfl...@cs.utah.edu wrote: At Fri, 13 May 2011 17:38:41 -0400, Sam Tobin-Hochstadt wrote: The `syntax/stx' and `racket/private/stx' libraries contain a bunch of duplication. In particular, the following functions seem identical: `stx-null?' `stx-list?' `stx-list' `stx-pair?' `stx-car' `stx-cdr'. Is there any reason not to just have `syntax/stx' reprovide them, instead of defining duplicate versions? Seems fine to me. (Originally, the code in `racket/private/stx' wasn't really accessible from `syntax/stx'.) Were they in different programming languages, by chance? I believe they used to be in `startup.ss', which was in Racket in most senses. Although with an interesting implementation ... -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] gtk too-small menu bar
On Tue, May 17, 2011 at 12:04 PM, Robby Findler ro...@eecs.northwestern.edu wrote: In consultation with Matthew, I've pushed a change that fixes the too small menu bar problem, at least on a VM on my laptop. If you're seeing this problem, can you check and see if the change fixes it for you too? Also, if someone could try it out on a unity setup, that'd be helpful. This works for me on both my machine running Unity, and my machine running Gnome3. On Unity, there's a black bar where the menu bar would be, since Unity puts the menus in the top panel. I'm not sure what the right way to remove that is. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] gtk too-small menu bar
On Tue, May 17, 2011 at 2:58 PM, Robby Findler ro...@eecs.northwestern.edu wrote: On Tue, May 17, 2011 at 1:45 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Tue, May 17, 2011 at 12:04 PM, Robby Findler ro...@eecs.northwestern.edu wrote: In consultation with Matthew, I've pushed a change that fixes the too small menu bar problem, at least on a VM on my laptop. If you're seeing this problem, can you check and see if the change fixes it for you too? Also, if someone could try it out on a unity setup, that'd be helpful. This works for me on both my machine running Unity, and my machine running Gnome3. On Unity, there's a black bar where the menu bar would be, since Unity puts the menus in the top panel. I'm not sure what the right way to remove that is. Wouldn't the right thing be to actually put the menus there instead of removing that bar? (Or am I misunderstanding something?) No, Unity makes a global design choice that menus go in the top panel (like on a Mac). Here's a screenshot that shows what's going on: http://www.linuxuser.co.uk/wp-content/uploads/2010/09/Ubuntu-Ubunity-Screenshot-4.png -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] Fancy application/automatic anonymous functions
Scala has the nice feature that if you write something like this: lst.map(_ - 1) It automatically rewrites to a function like this: lst.map(x = x - 1) This makes writing some higher-order functions much easier. Of course, it's easy to make this using a macro and `#%app'. You can see the result here: github.com/samth/fancy-app I'm planning to put this in `unstable/app', and if there's interest I'll think about incorporating it into the default `#%app', after some experience with it. Lots of people have written similar things (`cut' in SRFI 26, Jay's `super-cut', etc), but I'd like to move towards using it implicitly. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] gtk too-small menu bar
On Tue, May 17, 2011 at 3:08 PM, Robby Findler ro...@eecs.northwestern.edu wrote: On Tue, May 17, 2011 at 2:05 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Tue, May 17, 2011 at 2:58 PM, Robby Findler ro...@eecs.northwestern.edu wrote: On Tue, May 17, 2011 at 1:45 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Tue, May 17, 2011 at 12:04 PM, Robby Findler ro...@eecs.northwestern.edu wrote: In consultation with Matthew, I've pushed a change that fixes the too small menu bar problem, at least on a VM on my laptop. If you're seeing this problem, can you check and see if the change fixes it for you too? Also, if someone could try it out on a unity setup, that'd be helpful. This works for me on both my machine running Unity, and my machine running Gnome3. On Unity, there's a black bar where the menu bar would be, since Unity puts the menus in the top panel. I'm not sure what the right way to remove that is. Wouldn't the right thing be to actually put the menus there instead of removing that bar? (Or am I misunderstanding something?) No, Unity makes a global design choice that menus go in the top panel (like on a Mac). Here's a screenshot that shows what's going on: http://www.linuxuser.co.uk/wp-content/uploads/2010/09/Ubuntu-Ubunity-Screenshot-4.png I understood that. Oh! Are you saying that there is a space at the top of the window (as opposed to the screen)? Right. Did that not used to be there? Previously, that space had the menus in it, I think. Hm. I can see how my change would have done that. But given that the original code didn't work, I don't see how to fix the problem without an explicit test on whether the menu bar is in the window or not. Well, it requires more understanding of gtk than I have, anyways. Oh, the current behavior is a big improvement. I expect that the current problem is a lower-level issue with our GTK bindings. I'll see if I can come up with a smaller test case. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Fancy application/automatic anonymous functions
On Tue, May 17, 2011 at 3:21 PM, Robby Findler ro...@eecs.northwestern.edu wrote: What is the rule for where the lambda goes? If you have an application with one (or more) occurences of `_' as immediate subforms, then that application is rewritten into (lambda args the-original-application). It doesn't attempt to do a deep inspection of the term, or to expand the arguments to `#%app'. Thus: (+ _ 1) = (lambda (x) (+ x 1)) (+ (+ _ 1) 2) = (+ (lambda (x) (+ x 1)) 2) ;; which is a runtime error This rule is (a) simple and (b) the same as what Scala does. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] gtk too-small menu bar
On Tue, May 17, 2011 at 3:20 PM, Robby Findler ro...@eecs.northwestern.edu wrote: On Tue, May 17, 2011 at 2:16 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Tue, May 17, 2011 at 3:08 PM, Robby Findler ro...@eecs.northwestern.edu wrote: On Tue, May 17, 2011 at 2:05 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Tue, May 17, 2011 at 2:58 PM, Robby Findler ro...@eecs.northwestern.edu wrote: On Tue, May 17, 2011 at 1:45 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Tue, May 17, 2011 at 12:04 PM, Robby Findler ro...@eecs.northwestern.edu wrote: In consultation with Matthew, I've pushed a change that fixes the too small menu bar problem, at least on a VM on my laptop. If you're seeing this problem, can you check and see if the change fixes it for you too? Also, if someone could try it out on a unity setup, that'd be helpful. This works for me on both my machine running Unity, and my machine running Gnome3. On Unity, there's a black bar where the menu bar would be, since Unity puts the menus in the top panel. I'm not sure what the right way to remove that is. Wouldn't the right thing be to actually put the menus there instead of removing that bar? (Or am I misunderstanding something?) No, Unity makes a global design choice that menus go in the top panel (like on a Mac). Here's a screenshot that shows what's going on: http://www.linuxuser.co.uk/wp-content/uploads/2010/09/Ubuntu-Ubunity-Screenshot-4.png I understood that. Oh! Are you saying that there is a space at the top of the window (as opposed to the screen)? Right. Did that not used to be there? Previously, that space had the menus in it, I think. Hm. I can see how my change would have done that. But given that the original code didn't work, I don't see how to fix the problem without an explicit test on whether the menu bar is in the window or not. Well, it requires more understanding of gtk than I have, anyways. Oh, the current behavior is a big improvement. I expect that the current problem is a lower-level issue with our GTK bindings. I'll see if I can come up with a smaller test case. I'm confused now and I think a screenshot of drracket would clear things up, but I suspect that someone has to start fiddling around with gtk calls on a unity setup to really make progress. Here are screenshots: Maximized, with menu: http://punge.ccs.neu.edu/~samth/drr-max2.png Maximized, with window title: http://punge.ccs.neu.edu/~samth/drr-maximized.png Not maximized: http://punge.ccs.neu.edu/~samth/drr-small.png -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] gtk too-small menu bar
On Tue, May 17, 2011 at 3:16 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: I'll see if I can come up with a smaller test case. Here's a smaller test case for the problem/bug. Since this doesn't call any of the framework/drracket, I'm assuming it's an issue in the GTK bindings. #lang racket/gui (define f (new frame% [label Test] [width 300] [height 300])) (define m (new menu-bar% [parent f])) (define m1 (new menu% [parent m] [label Menu])) (define m2 (new menu% [parent m1] [label Element])) (send f show #t) -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] crash in DrRacket 5.1.1
This crashes DrRacket (but not command line Racket, or 'raco make') on Linux as well, but *only* if Debugging is off. On Thu, May 19, 2011 at 10:11 AM, Pierpaolo Bernardi olopie...@gmail.com wrote: Hello, attempting to compile the attached file crashes DrRacket. Banner: Welcome to DrRacket, version 5.1.1 [3m]. Environment: windows XP 32 bit. P. _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] `letrec' and continuations
On Fri, May 20, 2011 at 10:53 AM, Matthew Flatt mfl...@cs.utah.edu wrote: I like the idea of adjusting the semantics of internal definitions and leaving `letrec' alone. While this seems like a nice change, how does it interact with internal syntax definitions? If there are internal syntax definitions, do we fall back to `letrec-syntaxes+values'? Do we want `letrec-syntaxes+let*-values' (I hope not)? At Fri, 20 May 2011 09:39:06 -0500, Robby Findler wrote: How about making letrec (or letrec*?) be syntactically illegal if there are no forward references and make the internal definition expander avoid it in that case? (Or maybe just the second half of that.) Robby On Fri, May 20, 2011 at 9:28 AM, Matthew Flatt mfl...@cs.utah.edu wrote: If you run this program in Racket, (let ([restart void]) (letrec ([forward-reference (lambda () maybe-ready)] ; affects compiler [dummy1 (let/cc k (set! restart k))] [dummy2 (displayln maybe-ready)] [maybe-ready 'ready]) (let ([rs restart]) (set! restart void) (rs #f then the output is #undefined ready The second printout is ready because locations for all of the `letrec'-bound variables are allocated before the right-hand sides are evaluated --- which means before the continuation is captured. If you comment out the `forward-reference' binding, however, then the printout is #undefined #undefined That's because the optimizer, seeing no forward references, incorrectly converts the `letrec' to a `let*'. There's some logic in the optimizer to avoid a transformation from `letrec' to `let*' when a continuation might be captured, but it's obviously broken. I could fix it, but before I fix the optimizer for the current semantics, I wonder whether there's some way to specify the semantics of `letrec' so that a conversion to `let*' would be legal. A programmer almost never needs the semantics of `letrec' that `call/cc' exposes, and a programmer often wants `letrec' to be as efficient as `let' or `let*'. This is particularly true now that Racket's syntax lets you use internal definitions in so many places. For example, a quicksort core (define (quicksort! vec n m) (when ( (- m n) 1) (let* ([around-val (vector-ref vec n)] [pos (pivot around-val vec n m)]) (vector-set! vec pos pivot) (quicksort! vec n pos) (quicksort! vec (add1 pos) m is 15% faster (on a vector of 100 random numbers) than (define (quicksort! vec n m) (when ( (- m n) 1) (define around-val (vector-ref vec n)) (define pos (pivot around-val vec n m)) (vector-set! vec pos around-val) (quicksort! vec n pos) (quicksort! vec (add1 pos) m))) With internal definitions, the compiler can't see enough of `pivot' to be sure that it won't capture a continuation, and so it heap-allocates a location for `pos'. R6RS addresses the problem by saying that an expression on the right-hand side of `letrec*' cannot return multiple times. In practice, I expect that means a compiler would convert `letrec*' to `let*' without checking the multiple-return constraint --- exploiting the usual unspecified trap door. Obviously, I'm not in favor of unspecified behavior. I also don't see how to make a single-return check efficient; it seems to require heap allocation. Any ideas? _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] `letrec' and continuations
On Fri, May 20, 2011 at 5:25 PM, John Clements cleme...@brinckerhoff.org wrote: On May 20, 2011, at 1:39 PM, Matthias Felleisen wrote: Let me make my proposals (2 and 3) more precise because your response suggests they were too short. 1. We could make internal define the primary vehicle for definitions, i.e., not compile thru letrec. As far as I am concerned, your change to the language to allow defines in many more places has made letrec superfluous. Perhaps this goes without saying, but I'm hoping that if internal defines don't expand into letrec any more, that they expand into some similar form that has syntactically obvious scoping; I like the fact that the scope of letrec-declared variables is delimited by the syntactic letrec term. Yes, this is very important for Typed Racket and other tools that process expanded syntax. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] RacketCon -- July 23 24
Calling All Racketeers! This is the second announcement of RacketCon (aka Racket Days): 23 24 July 2011 http://con.racket-lang.org/ The meeting will take place at Northeastern University in Boston, MA. It will be an opportunity for developers, researchers, and educators using Racket, DrRacket, Program By Design, and related technologies to come together to share plans, ideas, and enthusiasm. To make it accessible, we will not charge any registration fees; we'll also serve you breakfast and lunch. RacketCon will feature presentations by key members of the development team, including Matthew Flatt on the future of Racket and Matthias Felleisen on the Program By Design curriculum. Most importantly, though, we also want it to feature you. We are interested in presentations of any length on using Racket in industrial software development, academic research, or education -- as well as anything that we haven't thought of. All sorts of presentations are welcome, from extended tutorials to short demos to experience reports. Be creative! To obtain a slot on the program, please send a title and a brief abstract on what you would like to present to the organizers at: racketcon at racket-lang.org Specify how much time you would like for your presentation (anything as short as 5 minutes and as long as 30 minutes works). We will try to accommodate as many presentations as possible. Talk proposals should be sent in by *June 15, 2011*. Additional information can be found on the web page: http://con.racket-lang.org Sam Tobin-Hochstadt _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] type-case + typed racket yet?
On Wed, May 25, 2011 at 12:27 PM, John Clements cleme...@brinckerhoff.org wrote: Is there a best-practice model for type-case-like things in typed racket yet? Obvious choices: - tagged-list style, it's all a big cond but I have to use first, second, etc to refer to fields - struct-union style, feels better but I don't get to use match (IIUC). `match' and unions of structs should work fine together in Typed Racket. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] goofy type hack (was: Re: type-case + typed racket yet?)
On Wed, May 25, 2011 at 1:43 PM, John Clements cleme...@brinckerhoff.org wrote: I see that typed racket doesn't signal an error on a match that doesn't have clauses for all possible inputs, which is entirely reasonable; since that will signal an error, that code should typecheck fine. However, I might *want* typed racket to check that for me. I managed to come up with this grozzz hack: (: g ((U Number False) - Number)) (define (g x) (cond [(number? x) (+ x 4)] [(false? x) 13] ;; type of x is now uninhabitable, so no typechecking error [else (begin (string-append x abc) (error 'foo))])) In this case, when I comment out the 'false?' clause, the bogus clause suddenly is type-checked (because x's type is no longer the empty union), and I get an error. So... I can get what I want, but in a very icky way. Is there a different and more elegant way to force typed racket to check that I'm not failing to match? I've thought about adding a (fail-to-typecheck) form, but haven't yet. Unfortunately, coverage checking isn't always perfect, so that programming style can become painful in Typed Racket. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Please help me to understand the two lines.
On Mon, May 30, 2011 at 10:07 AM, Yingjian Ma yingjian.ma1...@gmail.com wrote: The lines are from http://pre.racket-lang.org/docs/html/reference/booleans.html section 3.1 The lines are: (boolean? v) → boolean? v : any/c Question 1 The result (boolean? v) is a boolean. Why is it not (boolean? v) → boolean instead of (boolean? v) → boolean? ? `boolean?' is a contract, since all predicates are contracts. `boolean' is not a contract; it's not defined at all. Question 2 If v can be anything, why not just use any instead of using any/c? The difference between `any' and `any/c' is explained here: http://docs.racket-lang.org/guide/contract-func.html?q=any#(part._any_and_any_c) Question 3 What does / and c mean? The convention of ending names with /c is a naming convention for contracts. In Racket, / can appear in names just like any other character, such as ? or c. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Racket breaking and exiting
On Thu, Jun 2, 2011 at 12:39 AM, Eduardo Bellani ebell...@gmail.com wrote: I think I understand you, but in that case it should report the undefined reference and stay on the repl, no? The next thing after `a' on the port is end-of-file, so the REPL decides that everything is done, and exits. Thanks everyone of the prompt answers. On 06/01/2011 08:37 PM, John Clements wrote: On Jun 1, 2011, at 4:04 PM, Eduardo Bellani wrote: My racket breaks if the following code is executed: (current-input-port (open-input-string a)) with the following message: reference to undefined identifier: a ? That sounds like the right behavior to me, in an environment with a REPL. That is, you set current-input-port to pull from the string a, then you drop into the REPL, which reads from stdin, producing the string a, which reads as a reference to the variable a. No? John Clements -- Eduardo Bellani omnia mutantur, nihil interit. _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] typed/racket for loops?
No annotations are needed here, even: #lang typed/racket (: p (Listof Integer)) (define p (for/list ([i (in-range 30)]) i)) The other problem is why doesn't it know that `in-range' produces Naturals; I'll look into that. On Tue, Jun 7, 2011 at 12:24 PM, Hari Prashanth krh...@ccs.neu.edu wrote: Its a bad error message I believe. (: p (Listof Fixnum)) (define p (for/list: : (Listof Fixnum) ([i : Fixnum (in-range 30)]) i)) - Original Message - From: John Clements cleme...@brinckerhoff.org To: Sam Tobin-Hochstadt sa...@ccs.neu.edu Cc: dev dev@racket-lang.org Sent: Tuesday, June 7, 2011 3:10:58 PM (GMT-0500) Auto-Detected Subject: [racket-dev] typed/racket for loops? I can't get typed racket to work with for loops, e.g.: #lang typed/racket (: p (Listof Natural)) (define p (for/list: : Natural ([i (in-range 30)]) i)) == Type Checker: Error in macro expansion -- untyped variable: for-loop in: (for/list: : Natural ((i (in-range 30))) i) Am I doing something silly here? I tried annotating the type of the loop variable 'i', with no change in the error message. John _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] more general typed/scheme bafflement...
On Tue, Jun 7, 2011 at 4:57 PM, John Clements cleme...@brinckerhoff.org wrote: On Jun 7, 2011, at 4:26 PM, Carl Eastlund wrote: John, You had an easy time with + because it is monomorphic. You are having trouble applying one polymorphic function (map) to another (list or list2). Instantiate one or both functions explicitly, and Typed Racket won't get confused by the guesswork. Also, T ... i in a type does not mean T ... followed by i. It means T ... *indexed* by i. It's clarifying what the ... ranges over. Awesome! Many thanks. Next question. I'm reading sexps from a file, so typed/racket insists that I check their shape before using them. That's fine, but I find myself unable to define the (Pairof Any (Pairof Any Null)) predicate the way I'd expect it to be defined: What you actually want to use here is `define-predicate', which will automatically define the predicate you want given the type. (: listoflength2? (Any - Boolean : (Pairof Any (Pairof Any Null (define (listoflength2? a) (and (pair? a) (pair? (cdr a)) (null? (cddr a This definition will eventually typecheck, but not yet. :) -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] `take-until' etc
Me too. I like `take-until' as well. 2011/6/8 Jay McCarthy jay.mccar...@gmail.com: I'd really like #:unless as well iPhoneから送信 On 2011/06/08, at 9:21, Eli Barzilay e...@barzilay.org wrote: Anyone seconds this? And if so, then maybe for-loops should have an `#:unless' too? (I know that this was raised, but now there's more experience using it.) Yesterday, Jay McCarthy wrote: I've used them before and I find they read better than using negate. 2011/6/7 Eli Barzilay e...@barzilay.org: Does anyone see a need for `take-until' (and `drop-' and `-right' versions), or is `negate' enough to not have that? -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev