[racket-dev] `#%declare' and cross-phase persistent modules
I'm seeing that in a fresh build. (Didn't see it before, because I had
mangled my build.)
I'll push a repair shortly.
At Mon, 22 Jul 2013 17:14:49 -0400, Stephen Chang wrote:
> When compiling a fresh git head clone, I still get some cross-phase
> persistence errors (see below). Is this my fault, or are some packages
> still missing the declaration?
>
>
> raco setup: --- checking package dependencies ---
> raco setup:
> raco setup: error: during making for
> <pkgs>/errortrace-doc/errortrace/scribblings
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/errortrace-lib/errortrace
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/errortrace-lib/errortrace
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/errortrace-lib/errortrace
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/errortrace-lib/errortrace
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/errortrace-lib/errortrace
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/errortrace-lib/errortrace/lang
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/algol60
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/drracket/drscheme
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/drracket/drracket
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/drracket/drracket/private
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/drracket/scribble/tools
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/drracket/scribblings/tools
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/drracket/scribblings/tools
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/drracket/scribblings/tools
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/drracket/scribblings/drracket
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/drracket/drracket/private
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/drracket/scribblings/drracket
> raco setup: module: does not satisfy cross-phase persistent grammar
> raco setup:
> raco setup: error: during making for <pkgs>/drracket/drracket/private
> raco setup: module: does not satisfy cross-phase persistent grammar
>
> On Mon, Jul 22, 2013 at 12:18 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> > As of v5.90.0.2 (pending), to declare a cross-phase persistent module,
> > the module body must include
> >
> > (#%declare #:cross-phase-persistent)
> >
> > If the module declaration fails to meet the syntactic and import
> > constraints of a cross-phase persistent module, then a syntax error is
> > reported.
> >
> > This change is backward-incompatible in two ways:
> >
> > * Module declarations that are intended as cross-phase persistent
> > won't be, anymore, until a `#%declare' form is added.
> >
> > I think cross-phase persistence is new enough --- and the old, quiet
> > inference of persistence is sufficiently distressing --- that this
> > won't be much of an issue.
> >
> > * The grammar of fully-expanded modules now includes `#%declare'
> > forms.
> >
> > Programs that process fully-expanded modules are not common, but I
> > expect that they exist outside of the main distribution. Those
> > programs will need to be updated. Meanwhile, they won't break until
> > they see a module that has a `#%declare' form, which won't happen
> > often (at least for the near future).
> >
> > Although `#:cross-phase-persistent' is the only keyword recognized by
> > `#%declare' initially, we'll add more. One possibility is a declaration
> > that corresponds to `compile-enforce-module-constants'.
> >
> > I named the form `#%declare' instead of `declare' to avoid conflicts,
> > and also because I expect the form to be used more often in macro
> > expansions than directly, so it seems like a "#%" kind of form.
> >
> > _________________________
> > Racket Developers list:
> > http://lists.racket-lang.org/dev