Sorry, the "%d" thing was a bug. It looks like the let-binding error was introduced after my last checkout, though, so I guess that's deal with. This all raises the issue, though: what's the accepted replacement for frame-local variables, and why are they deprecated in the first place? My package has rather a few of them, and it's very useful to be able to use them like variables. I want to make them available for user customization, let-bind them, and use them without having to go through lots of manual frame-parameter rigamarole each time. I would rather not break any user customizations using these variables. So what should I do? On Mon, May 17, 2010 at 6:45 AM, Stefan Monnier wrote: > > I've run into a bug with GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, GTK+ > > Version 2.16.1, checked out from the repo a week or so ago). Let-binding > > frame-local variables doesn't work: although the let-bound value is > correct > > within the `let', it doesn't get reset after the `let'. To reproduce, > just > > run http://gist.github.com/403208. > > I definitely cannot reproduce the behavior you show on that page: > The code stops at "(message "Before: %d" foo)" because foo has > value nil at that point which is incompatible with the %d format. > If I get rid of this bug, then I bump into the next error which is that > `let' raises "Frame-local vars cannot be let-bound". > > Note that frame-local variables have been deprecated since Emacs-22.2, > and I definitely intend to remove support for them (tho for Emacs-24.1, > the plan is currently only to remove support for let-binding them). > > > Stefan >