[racket-dev] Pre-Release Checklist for v5.2.1, second call
Checklist items for the v5.2.1 release (using the v5.2.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.racket-lang.org/release/installers Please use these installers (or source bundles) -- don't test from your own git clone (don't test v5.2.1.1 by mistake!). To get the tests directory in such a directory, you can do this: cd ...racket-root... git archive --remote=git://git.racket-lang.org/plt.git release \ -- collects/tests | tar x -- * Matthew Flatt - mzc --exe tests - Create an executable from a BSL program. * John Clements - Stepper Tests Updates: - Stepper Updates: update HISTORY (updates should show v5.2.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 , Vincent St-Amour - Match Tests - Typed Racket Tests - Typed Racket Updates: update HISTORY (updates should show v5.2.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 - DB Tests * Kathy Gray - Test Engine Tests * Noel Welsh - Rackunit Tests - SRFI Tests - Ensure that all claimed srfi's are in the installer and they all load into racket or drracket (as appropriate) * Eli Barzilay - Racket Tree: compare new distribution tree to previous one _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Strange error with gui and ffi
At Thu, 19 Jan 2012 15:40:07 +0100, Tobias Hammer wrote: > > Even if libVLCore is statically linked to a libjpeg, I think it could > > interact with dynamic loading of another libjpeg, depending on the > > platform and linking options. > > I digged a bit more and found the following line the rackets libffi: > handle = dlopen(name, RTLD_NOW | RTLD_GLOBAL); > If i interpret the manpages correct that means that all symbols from the > lib are loaded and used to resolve references. That may be convenient > for the libraries that the racket core uses but may lead strange > behavior like the one i got whenever name clashes happen. > > Maybe it would be a good idea to make this import all behavior optional. I agree that RTLD_GLOBAL should be removed by default, but it should be made available as an option. Meanwhile, the details of `(ffi-lib #f)' will have to change for backward compatibility. As far as I can tell or remember, RTLD_GLOBAL is mostly there to make `(ffi-lib #f)' work, where the handle produced by `(ffi-lib #f)' finds an export in any previously loaded library. Since Racket keeps a table of all loaded libraries, maybe the right change is to implement `(ffi-lib #f)' by traversing the table in addition to using a global lookup, which means that `(ffi-lib #f)' can work without always loading libraries with RTLD_GLOBAL. Meanwhile, RTLD_GLOBAL could be optional behavior, as you suggest. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v5.2.1
On Tue, Jan 17, 2012 at 6:44 PM, Ryan Culpepper wrote: > * Carl Eastlund > - Dracula Tests (confirm that Dracula runs from PLaneT) > Done. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] problem with require and frtime
At Fri, 20 Jan 2012 13:45:35 +0100, Marijn wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > On 19-01-12 14:13, Matthew Flatt wrote: > > The `frtime' language exports an `=' that isn't the same as `=' in > > `racket', so that's why the pattern doesn't match. (This seems like > > a further weakness of the `frtime' docs to specify the exports > > precisely.) > > > > You could avoid bound names like `=' as literals in the macro. > > Normally, it works best for a form-exporting macro to also export > > bindings for any literals in the form. Otherwise, this kind of > > confusion is common. > > I think I will change the `=' to `!' for now. What kind of binding > should I use for `?' and `!'? There is no sensible meaning to be bound > to them... > What do you use to bind `else'? The `else' from `racket/base' is bound to a macro that always complains that `else' isn't an expression. For the implementation, see "collects/racket/private/cond.rkt". > When cond starts using #:else I might consider this more seriously. For what it's worth, if I were tweaking the language unencumbered by existing code, I really would change `else' to `#:else'. > The reference claims that "A keyword is like an > interned symbol, but ... and a keyword cannot be used as an > identifier" implying that symbols can be used as identifiers. I agree that it doesn't imply the right use of the word "symbol" and "identifier". I'll change it, perhaps to "a keyword cannot be used to form an identifier in the same way as a symbol". > I have in my head from unknown source (maybe from other schemes) that > a keyword is a value which evaluates to itself, like a constant, > whereas symbols are produced by quoting identifiers. In those other contexts I would say "a keyword can be used as an expression that evaluates to itself" or "a keyword is self-quoting". In Racket, however, a keyword is not an expression. The distinction between a keyword and an expression exactly why I prefer a keyword when a syntactic marker is needed. It's especially better in a case like `else', where either the marker or an expression can appear in the same place. (In your macro, expressions cannot appear in the same place as `?' and `!', so the difference is less significant.) See also "Keyword and Optional Arguments in PLT Scheme" Flatt and Barzilay, Scheme'09 http://www.cs.utah.edu/plt/publications/scheme09-fb.pdf _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] problem with require and frtime
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 19-01-12 14:13, Matthew Flatt wrote: > The `frtime' language exports an `=' that isn't the same as `=' in > `racket', so that's why the pattern doesn't match. (This seems like > a further weakness of the `frtime' docs to specify the exports > precisely.) > > You could avoid bound names like `=' as literals in the macro. > Normally, it works best for a form-exporting macro to also export > bindings for any literals in the form. Otherwise, this kind of > confusion is common. I think I will change the `=' to `!' for now. What kind of binding should I use for `?' and `!'? There is no sensible meaning to be bound to them... What do you use to bind `else'? > Alternatively, you may want to match literals in your macro > symbolically instead of by binding. You can't do that easily with > `syntax-rules', but you can use `syntax-case*' and supply `(lambda > (a b) (eq? (syntax-e a) (syntax-e b)))' as the literal-comparison > function. > > If it were me and I decided to go in the direction of symbol > equality, I'd use keywords instead --- `#:?' and `#:=' instead of > `?' and `=' --- which makes clear that there's no question of > binding. When cond starts using #:else I might consider this more seriously. The docs seem now less than clear to me about the difference between a keyword and a symbol. The reference claims that "A keyword is like an interned symbol, but ... and a keyword cannot be used as an identifier" implying that symbols can be used as identifiers. I have in my head from unknown source (maybe from other schemes) that a keyword is a value which evaluates to itself, like a constant, whereas symbols are produced by quoting identifiers. The difference manifesting when multiple-evaluation comes into play: what is the value of the value of ... Marijn -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.18 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk8ZYe8ACgkQp/VmCx0OL2zGjwCfT3PTlGrlicqHKo4ww0TcCicq Ku8An3dTq+bnD+YYM5hCh61n6zadzo3h =ScwW -END PGP SIGNATURE- _ Racket Developers list: http://lists.racket-lang.org/dev