Re: [racket-dev] gui responsiveness
As a side note, I remember having stumbled on the same issue some while back, and the way I dealt with it was to refresh based on a random outcome. Not clean, but it works pretty well as long as the refresh calls are still close enough. Laurent On Thu, Apr 17, 2014 at 12:11 AM, David Vanderson david.vander...@gmail.com wrote: Thanks for the great (and quick!) response. It's good to know that the ordering is intentional, and to have some nice ways to work around it if needed. The reason I thought that refreshes were lower priority was because of the scrollbar behavior in the program below. On Unix/X, dragging the scrollbar back and forth does lots of paints, but I only actually see a few of them. Does that sound like a bug to you? #lang racket/gui (define num-on-paint 0) (define frame (new frame% (label Refresh) (width 500) (height 500))) (define (draw-screen canvas dc) (set! num-on-paint (add1 num-on-paint)) (sleep 0.1) ; simulate a longer painting effort (send dc draw-text (~a num-on-paint paints) 400 70)) (define canvas (new canvas% (parent frame) (paint-callback draw-screen) (style '(no-autoclear hscroll (send frame show #t) (send canvas init-auto-scrollbars 700 #f 0.0 0.0) On 04/16/2014 01:56 PM, Matthew Flatt wrote: You're right that it's about event ordering and not refresh coalescing. Since mouse events are handled after refreshes, you won't get the next refresh request until an earlier one is handled, after which the next mouse event can trigger another refresh request. I think the difference between Unix/X and Windows may be that Windows sends fewer mouse events. There are trade-offs here, but my experience is that ordering input events before refresh does not work well in general. To trigger refreshes at a lower priority in this case, you could use Neil's suggestion or change (send this refresh) to (set! needed? #t) (queue-callback (lambda () (when needed? (set! needed? #f) (send this refresh))) #f) ; = low priority where `needed?` is a field that's initially #f. At Wed, 16 Apr 2014 13:33:02 -0400, David Vanderson wrote: (moved to dev) On Linux, the attached program shows terrible responsiveness when dragging points around on the graph. Can anyone else on Linux reproduce this behavior? The patch below dramatically improves the responsiveness by forcing the eventspace to process medium-level events (mouse movement) before refresh events. Without the patch, each mouse drag causes a paint. With it, multiple mouse drags are processed before a paint. I'm unsure about this fix. Windows doesn't show the problem (I don't have a mac to test), so I think it's just a GTK issue. My guess is that the gui layer is relying on the native libraries to coalesce multiple refresh requests (but this is not working with GTK). Can anyone confirm this? Thanks, Dave diff -ru racket-6.0_clean/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt racket-6.0/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt --- racket-6.0_clean/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt 2014-02-18 12:27:43.0 -0500 +++ racket-6.0/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt 2014-04-16 09:41:16.810993955 -0400 @@ -300,8 +300,8 @@ (lambda (_) #f)) (or (first hi peek?) (timer-first-ready timer peek?) - (first refresh peek?) (first med peek?) + (first refresh peek?) (and (not peek?) sync? ;; before going with low-priority events, -- [text/plain graph_ui.rkt] [~/Desktop open] [~/Temp open] _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Fwd: [racket] canonical index of Racket courses? [was: Summer programs learning Racket for a student]
Would someone volunteer please to create and maintain such a page for Racket? Thanks -- Matthias Begin forwarded message: From: j...@math.brown.edu Subject: [racket] canonical index of Racket courses? [was: Summer programs learning Racket for a student] Date: April 16, 2014 4:45:30 PM EDT To: Racket Users us...@racket-lang.org I recently asked here about in-person Racket courses available this summer which I could recommend to a student I've been tutoring. (Thanks again to everyone who let me know about their courses so far.) To make this info easier to find, I'm wondering if the racket-lang.org maintainers would be interested in publishing a canonical index of Racket courses (both online and in-person) linked off the Community or Learning sections on the homepage, and inviting the community to add to it. (Similarly, linking to a canonical index of Racket meetup groups (à la http://clojure.meetup.com/ and https://wiki.python.org/moin/LocalUserGroups) would be great too. Google turned up http://racket.meetup.com/ but 2 of the 3 results there are for racket sports.) Thanks, and looking forward to knowing how to become better plugged into the Racket community! Racket Users list: http://lists.racket-lang.org/users _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] class implementation and make-primitive-class
For a course project I've been working on adding generators to contracts for use with contract-random-generate, and I've been trying to construct classes and objects from simple object/c contracts. When trying to find a way to functionally create a class at runtime, I came across the `make-primitive-class` function in class-internal.rkt. This function is exported, and available at a plain racket repl, but has no documentation that I have been able to find and the comments about it in class-internal.rkt seem to be incorrect. Trying to call it from the repl has problems also, for example (ignoring for a moment that the arguments aren't of the expected types) - (make-primitive-class #f #f 'foo object% null #f null null null null) ; compose-class: arity mismatch; ; the expected number of arguments does not match the given number ; expected: 28 ; given: 27 The definition is in terms of compose-class and is just missing a `null` argument for the abstract-names, but even after fixing that in my local branch there is a discrepancy with the comments regarding it's first argument `make-struct:prim`. ; The `make-struct:prim' function takes prop:object, a class, ; a preparer, a dispatcher function, an unwrap property, ; an unwrapper, and a property assoc list, and produces: ;* a struct constructor (must have prop:object) ;* a struct predicate ;* a struct type for derived classes (mustn't have prop:object) ; ; The supplied preparer takes a symbol and returns a num. ; ; The supplied dispatcher takes an object and a num and returns a method. ; ; The supplied unwrap property is used for adding the unwrapper ; as a property value on new objects. ; ; The supplied unwrapper takes an object and returns the unwrapped ; version (or the original object). ; ; When a primitive class has a superclass, the struct:prim maker ; is responsible for ensuring that the returned struct items match ; the supertype predicate. This suggests that make-struct:prim should take 7 arguments, but passing a function of 7 arguments to it from the repl produces: - (make-primitive-class (lambda (a b c d e f g) (values #f #f #f)) #f 'foo object% null #f null null null null) ; #procedure: arity mismatch; ; the expected number of arguments does not match the given number ; expected: 7 ; given: 5 Also as far as I can tell `make-primitive-class` is never used in the code base, it is defined in class-internal.rkt, but can be commented out without seeming to break anything else. Does anyone know if there is a purpose for this function, or if there is documentation somewhere on the functions I need to pass it in order to construct a class. I think I'm starting to get a better idea of how it might work from reading more of class-internal.rkt and how the class* macro expands, but any guidance would be appreciated. Thanks Dan _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] class implementation and make-primitive-class
The `make-primitive-class` function is a leftover from pre-v5.1 days, where the problem was to turn a C++ object into a Racket object. I'm not surprised that it has rotted away, it should be removed entirely, and I doubt that it's what you would want even if it worked. At Thu, 17 Apr 2014 14:49:40 -0400 (EDT), dfel...@ccs.neu.edu wrote: For a course project I've been working on adding generators to contracts for use with contract-random-generate, and I've been trying to construct classes and objects from simple object/c contracts. When trying to find a way to functionally create a class at runtime, I came across the `make-primitive-class` function in class-internal.rkt. This function is exported, and available at a plain racket repl, but has no documentation that I have been able to find and the comments about it in class-internal.rkt seem to be incorrect. Trying to call it from the repl has problems also, for example (ignoring for a moment that the arguments aren't of the expected types) - (make-primitive-class #f #f 'foo object% null #f null null null null) ; compose-class: arity mismatch; ; the expected number of arguments does not match the given number ; expected: 28 ; given: 27 The definition is in terms of compose-class and is just missing a `null` argument for the abstract-names, but even after fixing that in my local branch there is a discrepancy with the comments regarding it's first argument `make-struct:prim`. ; The `make-struct:prim' function takes prop:object, a class, ; a preparer, a dispatcher function, an unwrap property, ; an unwrapper, and a property assoc list, and produces: ;* a struct constructor (must have prop:object) ;* a struct predicate ;* a struct type for derived classes (mustn't have prop:object) ; ; The supplied preparer takes a symbol and returns a num. ; ; The supplied dispatcher takes an object and a num and returns a method. ; ; The supplied unwrap property is used for adding the unwrapper ; as a property value on new objects. ; ; The supplied unwrapper takes an object and returns the unwrapped ; version (or the original object). ; ; When a primitive class has a superclass, the struct:prim maker ; is responsible for ensuring that the returned struct items match ; the supertype predicate. This suggests that make-struct:prim should take 7 arguments, but passing a function of 7 arguments to it from the repl produces: - (make-primitive-class (lambda (a b c d e f g) (values #f #f #f)) #f 'foo object% null #f null null null null) ; #procedure: arity mismatch; ; the expected number of arguments does not match the given number ; expected: 7 ; given: 5 Also as far as I can tell `make-primitive-class` is never used in the code base, it is defined in class-internal.rkt, but can be commented out without seeming to break anything else. Does anyone know if there is a purpose for this function, or if there is documentation somewhere on the functions I need to pass it in order to construct a class. I think I'm starting to get a better idea of how it might work from reading more of class-internal.rkt and how the class* macro expands, but any guidance would be appreciated. Thanks Dan _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] class implementation and make-primitive-class
For purposes of your course project, couldn't you make your own class-instance object system, atop structs or hashes, that gives you whatever dynamic programming features you want? It's very-very easy to do a basic one (with single inheritance and single dispatch), until you get into speed optimizations. Or, if Swindle has a MOP, you could use that. Neil V. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] class implementation and make-primitive-class
That wouldn't work for this project because I need to be able to generate an object that satisfies a given Racket contract and can be passed to user functions that expect such an object so I need to use Racket's class system. I have a working prototype that builds class syntax then calls eval-syntax on it, I was just trying to figure out if there was an easy way to avoid using eval. Thanks again Dan - Original Message - From: Neil Van Dyke n...@neilvandyke.org To: dfel...@ccs.neu.edu Cc: dev@racket-lang.org Sent: Thursday, April 17, 2014 4:17:54 PM GMT -05:00 US/Canada Eastern Subject: Re: [racket-dev] class implementation and make-primitive-class For purposes of your course project, couldn't you make your own class-instance object system, atop structs or hashes, that gives you whatever dynamic programming features you want? It's very-very easy to do a basic one (with single inheritance and single dispatch), until you get into speed optimizations. Or, if Swindle has a MOP, you could use that. Neil V. _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Pre-Release Checklist for v6.0.1
Checklist items for the v6.0.1 release (using the v6.0.0.900 release candidate build) Search for your name to find relevant items, reply when you finish an item (please indicate which item/s is/are done). Also, if you have any commits that should have been picked, make sure that the changes are in. Important: new builds are created without announcement, usually whenever I pick a few commits. If you need to commit changes, please make sure you tell me to pick it into the release branch. -- Release candidates are at -- http://pre-release.racket-lang.org/ Please use these installers (or source bundles) -- don't test from your own git clone (don't test the `master' branch by mistake!). To get the tests, you can do this: cd ...racket-root... ./bin/raco pkg install -i main-distribution-test -- * Matthew Flatt mfl...@cs.utah.edu - Racket Tests - Languages Tests - GRacket Tests (Also check that `gracket -z' and `gracket-text' still works in Windows and Mac OS X) - mzc --exe tests - .plt-packing Tests - Games Tests - Unit Tests - Syntax Color Tests - R6RS Tests - JPR's test suite - Create an executable from a BSL program - Run COM tests - Try compiling with -funsigned-char - Try compiling with TEST_ALTERNATE_TARGET_REGISTER Updates: - Racket Updates: update HISTORY (updates should show v6.0.1 as the most current version) - Update man pages in racket/man/man1: racket.1, gracket.1, raco.1 Email me to pick the changes when they're done, or tell me if there are no such changes. * Robby Findler ro...@eecs.northwestern.edu - DrRacket Tests - Framework Tests - Contracts Tests - Games Tests - Teachpacks Tests: image tests - PLaneT Tests - Redex Tests Updates: - DrRacket Updates: update HISTORY - Redex Updates: update HISTORY (updates should show v6.0.1 as the most current version) - Ensure that previous version of DrRacket's preference files still starts up with new DrRacket - Update man pages in racket/man/man1: drracket.1 Email me to pick the changes when they're done, or tell me if there are no such changes. * John Clements cleme...@brinckerhoff.org - Stepper Tests Updates: - Stepper Updates: update HISTORY (updates should show v6.0.1 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) * Sam Tobin-Hochstadt sa...@ccs.neu.edu, Vincent St-Amour stamo...@ccs.neu.edu - Match Tests - Typed Racket Tests - Typed Racket Updates: update HISTORY (updates should show v6.0.1 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) * Matthias Felleisen matth...@ccs.neu.edu - Teachpacks Tests: check that new teachpacks are addable - Teachpack Docs: check teachpack docs in the bundles Updates: - Teachpack Updates: update HISTORY (updates should show v6.0.1 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) * Ryan Culpepper r...@cs.utah.edu - Macro Debugger Tests - Syntax Classifier Tests - RackUnit GUI Tests - Data Tests - DB Tests * Jay McCarthy jay.mccar...@gmail.com - Web Server Tests - XML Tests - HTML Tests - PLAI Tests - Racklog tests - Datalog tests * Kathy Gray kathryn.g...@cl.cam.ac.uk - Test Engine Tests * Noel Welsh noelwe...@gmail.com - Rackunit Tests - SRFI Tests - Ensure that all claimed srfi's are in the installer and they all load into racket or drracket (as appropriate) * Stevie Strickland sstri...@ccs.neu.edu - Unit Contract Tests - Contract Region Tests - Class Contract Tests * Stephen Chang stch...@ccs.neu.edu - Lazy Racket Tests - Lazy stepper tests * Eli Barzilay e...@barzilay.org - Swindle Tests - XREPL Tests - Verify PL language - Racket Tree: compare new distribution tree to previous one - Run the unix installer tests - Run zsh completions tests (. .../racket-completion.zsh; _racket --self-test) Version Updates: if a major change has happened, update the version number in: - racket/collects/mzscheme/info.rkt - racket/collects/mred/info.rkt * Stephen Bloch sbl...@adelphi.edu - Picturing Programs Tests * Greg Cooper g...@cs.brown.edu - FrTime Tests * Carl Eastlund c...@ccs.neu.edu - Dracula Tests (confirm that Dracula runs from PLaneT) * Jon Rafkind rafk...@cs.utah.edu Release tests for (one of the) linux releases: - Test that the `racket' and `racket-textual' source releases compile fine (note that they're still called `plt' and `mz' at this stage). - Test that the binary installers for both work, try each one in both normal and unix-style installation modes. (just ubuntu) [Note: get the release candidates from the URL in this email. Use the 'static table' link to see a list of all tar files available] *
[racket-dev] Adding flvector to match
It would be really handy for me right now to be able to match on flvectors, and I think it's useful enough for minimal Racket. I've already tried this option: 1. Export flvector as a match expander from racket/flonum but racket/match depends on racket/flonum somehow. So I looked through the match code and determined that this one would be pretty easy: 2. Change racket/match to recognize patterns with 'flvector head (The code is very clean; kudos to whoever last rewrote it. :D) I think #2 would at worst hijack someone's custom flvector match expander, but probably do the same thing or better (e.g. also handle ellipses). But in case it's worse than I think, I can always go with this: 3. Export flvector as a match expander from math/flonum Question for the match and syntax gurus: would doing #2 be safe enough, or should I do #3? Or have I got it backwards; i.e. is #2 actually safer than #3? Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Adding flvector to match
I think you should do 2': Change racket/match to recognize patterns with #'flvector heads -- ie, use the binding for flvector from `racket/flonum` to determine if something matches. The use of symbolic names in match, rather than bindings, is a leftover rather than something we should keep adding to. Sam On Thu, Apr 17, 2014 at 6:48 PM, Neil Toronto neil.toro...@gmail.com wrote: It would be really handy for me right now to be able to match on flvectors, and I think it's useful enough for minimal Racket. I've already tried this option: 1. Export flvector as a match expander from racket/flonum but racket/match depends on racket/flonum somehow. So I looked through the match code and determined that this one would be pretty easy: 2. Change racket/match to recognize patterns with 'flvector head (The code is very clean; kudos to whoever last rewrote it. :D) I think #2 would at worst hijack someone's custom flvector match expander, but probably do the same thing or better (e.g. also handle ellipses). But in case it's worse than I think, I can always go with this: 3. Export flvector as a match expander from math/flonum Question for the match and syntax gurus: would doing #2 be safe enough, or should I do #3? Or have I got it backwards; i.e. is #2 actually safer than #3? Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Adding flvector to match
Great idea! Neil ⊥ On 04/17/2014 05:00 PM, Sam Tobin-Hochstadt wrote: I think you should do 2': Change racket/match to recognize patterns with #'flvector heads -- ie, use the binding for flvector from `racket/flonum` to determine if something matches. The use of symbolic names in match, rather than bindings, is a leftover rather than something we should keep adding to. Sam On Thu, Apr 17, 2014 at 6:48 PM, Neil Toronto neil.toro...@gmail.com wrote: It would be really handy for me right now to be able to match on flvectors, and I think it's useful enough for minimal Racket. I've already tried this option: 1. Export flvector as a match expander from racket/flonum but racket/match depends on racket/flonum somehow. So I looked through the match code and determined that this one would be pretty easy: 2. Change racket/match to recognize patterns with 'flvector head (The code is very clean; kudos to whoever last rewrote it. :D) I think #2 would at worst hijack someone's custom flvector match expander, but probably do the same thing or better (e.g. also handle ellipses). But in case it's worse than I think, I can always go with this: 3. Export flvector as a match expander from math/flonum Question for the match and syntax gurus: would doing #2 be safe enough, or should I do #3? Or have I got it backwards; i.e. is #2 actually safer than #3? Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v6.0.1
On 4/17/14, 6:44 PM, Ryan Culpepper wrote: * David Van Horn dvanh...@ccs.neu.edu - EoPL Tests Done. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Using `git submodule` vs. `git pull --ff-only upstream master`
For whoever else might find this useful building on OS X. Building HEAD today I got this new error: raco setup: --- creating launchers --- raco setup: launcher: console-bin/raco raco setup: --- installing man pages --- raco setup: --- installing collections --- raco setup: --- post-installing collections --- raco setup: --- checking package dependencies --- make install-common-last make fix-paths if [ != ]; then \ racket/racketcgc -G /Users/greg/src/plt/racket/build/config -u \ ../../collects/setup/unixstyle-install.rkt \ make-install-destdir-fix ../.. \ /Users/greg/src/plt/racket/racket/bin /Users/greg/src/plt/racket/racket/collects /Users/greg/src/plt/racket/racket/doc /Users/greg/src/plt/racket/racket/lib /Users/greg/src/plt/racket/racket/include /Users/greg/src/plt/racket/racket/lib /Users/greg/src/plt/racket/racket/share /Users/greg/src/plt/racket/racket/etc /Users/greg/src/plt/racket/racket/share/applications /Users/greg/src/plt/racket/racket/man yes; \ fi make preserve-raco-pkg-default-scope : cp ../COPYING-libscheme.txt ../COPYING_LESSER.txt ../COPYING.txt /Users/greg/src/plt/racket/racket/share/ if racket/bin/racket -G build/config -I racket/base -e '(case (system-type) [(macosx) (exit 0)] [else (exit 1)])' ; then make native-from-git ; fi if [ ! -d native-pkgs/racket-win32-i386 ]; then make complain-no-submodule ; fi make pkg-links PKGS=main-distribution plt-services LINK_MODE=--save racket/bin/racket -U -G build/config racket/src/link-all.rkt ++dir pkgs ++dir native-pkgs --save main-distribution plt-services racket-lib Linking packages: plt-services racket-lib main-distribution Recording packages choice in racket/etc/link-pkgs.rktd link-all: requested package not available: draw-x86_64-macosx-2 context...: /Users/greg/src/plt/racket/racket/src/link-all.rkt:150:6: for-loop /Users/greg/src/plt/racket/racket/src/link-all.rkt:148:2: loop /Users/greg/src/plt/racket/racket/src/link-all.rkt: [running body] make[2]: *** [pkg-links] Error 1 make[1]: *** [plain-in-place] Error 2 make: *** [in-place] Error 2 Although this is unlike the previous symptoms of stale submodules, draw-x86_64-macosx-2 sounds like something that might be related to native-pkgs. So on a hunch I tried this: $ git submodule update remote: Counting objects: 214, done. remote: Compressing objects: 100% (157/157), done. remote: Total 214 (delta 59), reused 183 (delta 44) Receiving objects: 100% (214/214), 19.84 MiB | 54 KiB/s, done. Resolving deltas: 100% (59/59), done. From https://github.com/plt/libs b698e73..3d8856e master - origin/master Submodule path 'native-pkgs': checked out '3d8856eb987af16ab27cc99d4d24d5f9e7efc33b' Although it was an unusually slow/big fetch, it succeeded. And now the build now. (Well as I type this, my laptop fans are blazing away, as it is still running the raco setup stage. But it proceeded OK past the point it was failing before.) Maybe this is obvious to everyone else, but I wanted to mention it in case it helped anyone else building on OS X. On Tue, Dec 17, 2013 at 4:48 PM, Greg Hendershott greghendersh...@gmail.com wrote: To answer my own question, back in July Matthew had posted here: On Sat, Jul 27, 2013 at 9:10 AM, Matthew Flatt mfl...@cs.utah.edu wrote: Nothing has been split out of the current git repository, but there is now a native-pkgs git submodule for the native-library packages. If you build on Mac OS X or Windows or if you run a snapshot build, then you'll need to use git pull git submodule init git submodule update once on each repository checkout from now on, and git pull git submodule update for updates after the first checkout. If you just `git pull' without the submodule commands, then you'll have an empty native-pkgs directory. That's fine if you're building on, say, Linux. If you're on Mac OS X or Windows, then the makefile should give you a good error message and suggest using `git submodule init' and `git submodule update'. If you use `git submodule update' today and forget to use it in the future, probably things will be fine for a long time, because native-pkgs doesn't change often. If native-pkgs does change and you forget `git submodule update', then (as I understand things) `git status' will tell you that there's a mismatch. The mismatch report might take a form that's not entirely clear, but it should be enough to remind you to run `git submodule update'. It turned out that it wasn't enough to remind _me_. :) Running `git submodule update` resolved this for me. On Fri, Sep 20, 2013 at 2:30 PM, Greg Hendershott greghendersh...@gmail.com wrote: I build Racket while keeping my forked repo's `master` branch an exact, fast-forwardable copy of PLT's remote upstream `master`. [1] This has worked fine building Racket on Linux, and continues to do so. But on OS X, I need to follow these instructions from INSTALL.TXT, wrt the pkg re-org:
Re: [racket-dev] Using `git submodule` vs. `git pull --ff-only upstream master`
stale git submodules show up on a status. What I've found helpful is to add a bit in my prompt that tells me if the current git repository has a non up to date status (And the current branch). If you're running Zsh this is a good place to start for that: git_prompt_info() { ref=$(git symbolic-ref HEAD 2 /dev/null) if [[ -n $ref ]]; then echo -n [%F{red}${ref#refs/heads/}%f st=$(git status -s 2 /dev/null) if [[ -n $st ]]; then echo -n %f*%f fi echo -n ] fi } export PS1='$(git_prompt_info)[%F{green}%m%F{white}:%F{blue}%2c%f] ' Or on Bash: function git_prompt_info() { ref=$(git symbolic-ref HEAD 2 /dev/null | cut -d'/' -f3) if [[ -n $ref ]]; then # Zsh prompt this was based on # echo [%{$fg_bold[green]%}${ref#refs/heads/}%{$reset_color%}] echo [$(tput setaf 2)$ref$(tput sgr0)] fi } export PS1=\$(git_prompt_info)$PS1 On Thu, Apr 17, 2014 at 9:25 PM, Greg Hendershott greghendersh...@gmail.com wrote: For whoever else might find this useful building on OS X. Building HEAD today I got this new error: raco setup: --- creating launchers --- raco setup: launcher: console-bin/raco raco setup: --- installing man pages --- raco setup: --- installing collections --- raco setup: --- post-installing collections --- raco setup: --- checking package dependencies --- make install-common-last make fix-paths if [ != ]; then \ racket/racketcgc -G /Users/greg/src/plt/racket/build/config -u \ ../../collects/setup/unixstyle-install.rkt \ make-install-destdir-fix ../.. \ /Users/greg/src/plt/racket/racket/bin /Users/greg/src/plt/racket/racket/collects /Users/greg/src/plt/racket/racket/doc /Users/greg/src/plt/racket/racket/lib /Users/greg/src/plt/racket/racket/include /Users/greg/src/plt/racket/racket/lib /Users/greg/src/plt/racket/racket/share /Users/greg/src/plt/racket/racket/etc /Users/greg/src/plt/racket/racket/share/applications /Users/greg/src/plt/racket/racket/man yes; \ fi make preserve-raco-pkg-default-scope : cp ../COPYING-libscheme.txt ../COPYING_LESSER.txt ../COPYING.txt /Users/greg/src/plt/racket/racket/share/ if racket/bin/racket -G build/config -I racket/base -e '(case (system-type) [(macosx) (exit 0)] [else (exit 1)])' ; then make native-from-git ; fi if [ ! -d native-pkgs/racket-win32-i386 ]; then make complain-no-submodule ; fi make pkg-links PKGS=main-distribution plt-services LINK_MODE=--save racket/bin/racket -U -G build/config racket/src/link-all.rkt ++dir pkgs ++dir native-pkgs --save main-distribution plt-services racket-lib Linking packages: plt-services racket-lib main-distribution Recording packages choice in racket/etc/link-pkgs.rktd link-all: requested package not available: draw-x86_64-macosx-2 context...: /Users/greg/src/plt/racket/racket/src/link-all.rkt:150:6: for-loop /Users/greg/src/plt/racket/racket/src/link-all.rkt:148:2: loop /Users/greg/src/plt/racket/racket/src/link-all.rkt: [running body] make[2]: *** [pkg-links] Error 1 make[1]: *** [plain-in-place] Error 2 make: *** [in-place] Error 2 Although this is unlike the previous symptoms of stale submodules, draw-x86_64-macosx-2 sounds like something that might be related to native-pkgs. So on a hunch I tried this: $ git submodule update remote: Counting objects: 214, done. remote: Compressing objects: 100% (157/157), done. remote: Total 214 (delta 59), reused 183 (delta 44) Receiving objects: 100% (214/214), 19.84 MiB | 54 KiB/s, done. Resolving deltas: 100% (59/59), done. From https://github.com/plt/libs b698e73..3d8856e master - origin/master Submodule path 'native-pkgs': checked out '3d8856eb987af16ab27cc99d4d24d5f9e7efc33b' Although it was an unusually slow/big fetch, it succeeded. And now the build now. (Well as I type this, my laptop fans are blazing away, as it is still running the raco setup stage. But it proceeded OK past the point it was failing before.) Maybe this is obvious to everyone else, but I wanted to mention it in case it helped anyone else building on OS X. On Tue, Dec 17, 2013 at 4:48 PM, Greg Hendershott greghendersh...@gmail.com wrote: To answer my own question, back in July Matthew had posted here: On Sat, Jul 27, 2013 at 9:10 AM, Matthew Flatt mfl...@cs.utah.edu wrote: Nothing has been split out of the current git repository, but there is now a native-pkgs git submodule for the native-library packages. If you build on Mac OS X or Windows or if you run a snapshot build, then you'll need to use git pull git submodule init git submodule update once on each repository checkout from now on, and git pull git submodule update for updates after the first checkout. If you just `git pull' without the submodule commands, then you'll have an empty native-pkgs directory. That's fine if you're building on, say, Linux. If you're on Mac OS X or Windows, then the
Re: [racket-dev] Pre-Release Checklist for v6.0.1
At Thu, 17 Apr 2014 18:44:20 -0400, Ryan Culpepper wrote: * Matthew Flatt mfl...@cs.utah.edu - Racket Tests - Languages Tests - GRacket Tests (Also check that `gracket -z' and `gracket-text' still works in Windows and Mac OS X) - mzc --exe tests - .plt-packing Tests - Games Tests - Unit Tests - Syntax Color Tests - R6RS Tests - JPR's test suite - Create an executable from a BSL program - Run COM tests - Try compiling with -funsigned-char - Try compiling with TEST_ALTERNATE_TARGET_REGISTER Done. Updates: - Racket Updates: update HISTORY (updates should show v6.0.1 as the most current version) Patch sent. - Update man pages in racket/man/man1: racket.1, gracket.1, raco.1 Email me to pick the changes when they're done, or tell me if there are no such changes. No changes. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Using `git submodule` vs. `git pull --ff-only upstream master`
Yes. FWIW I do: function parse_git_dirty() { [[ $(git status 2 /dev/null | tail -n1) != *working directory clean* ]] echo * } function parse_git_branch() { git branch --no-color 2 /dev/null | sed -e '/^[^*]/d' -e s/* \(.*\)/\1$(parse_git_dirty)/ } Which goes into the the end of: greg@mbp in ~/src/plt/racket on master* $ And now that you mention it, I _did_ see the * in my prompt. I should have paid attention to it, but `git status` showed nothing. I should have done `git diff`. Sorry for the noise here. (My total experience with git submodule updates consists of the 2 or 3 times I've had to do this with Racket -- and at intervals of enough months that I manage to forget in between.) On Thu, Apr 17, 2014 at 9:37 PM, Spencer Florence spen...@florence.io wrote: stale git submodules show up on a status. What I've found helpful is to add a bit in my prompt that tells me if the current git repository has a non up to date status (And the current branch). If you're running Zsh this is a good place to start for that: git_prompt_info() { ref=$(git symbolic-ref HEAD 2 /dev/null) if [[ -n $ref ]]; then echo -n [%F{red}${ref#refs/heads/}%f st=$(git status -s 2 /dev/null) if [[ -n $st ]]; then echo -n %f*%f fi echo -n ] fi } export PS1='$(git_prompt_info)[%F{green}%m%F{white}:%F{blue}%2c%f] ' Or on Bash: function git_prompt_info() { ref=$(git symbolic-ref HEAD 2 /dev/null | cut -d'/' -f3) if [[ -n $ref ]]; then # Zsh prompt this was based on # echo [%{$fg_bold[green]%}${ref#refs/heads/}%{$reset_color%}] echo [$(tput setaf 2)$ref$(tput sgr0)] fi } export PS1=\$(git_prompt_info)$PS1 _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v6.0.1
On Thu, Apr 17, 2014 at 5:44 PM, Ryan Culpepper ry...@ccs.neu.edu wrote: * Robby Findler ro...@eecs.northwestern.edu - DrRacket Tests All but populate-compiled.rkt, which uncovered the need for commit fe2c796c41154. Can you please include it in the release branch? - Framework Tests - Contracts Tests - Games Tests - Teachpacks Tests: image tests - PLaneT Tests - Redex Tests Updates: - DrRacket Updates: update HISTORY - Redex Updates: update HISTORY (updates should show v6.0.1 as the most current version) - Ensure that previous version of DrRacket's preference files still starts up with new DrRacket - Update man pages in racket/man/man1: drracket.1 Email me to pick the changes when they're done, or tell me if there are no such changes. One commit marked for the release notes update. With the exception of the populate-compiled.rkt test (as above), done. Robby _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v6.0.1
* Jon Rafkind rafk...@cs.utah.edu Release tests for (one of the) linux releases: - Test that the `racket' and `racket-textual' source releases compile fine (note that they're still called `plt' and `mz' at this stage). - Test that the binary installers for both work, try each one in both normal and unix-style installation modes. (just ubuntu) [Note: get the release candidates from the URL in this email. Use the 'static table' link to see a list of all tar files available] Done. For the binaries I only tested on 64-bit precise-pangolin. _ Racket Developers list: http://lists.racket-lang.org/dev