Proposal: #CompileTimeDependences: `requires static`

mark.reinhold at mark.reinhold at
Tue Jun 28 23:31:50 UTC 2016

2016/6/28 15:50:52 -0700, Remi Forax <forax at>:
> Apart the fact that 'static' should be spelled 'optional', there is no
> reason to reuse static as it doesn't convey the semantics we want,
> i.e. optional at runtime, i fully agree with this proposal.

In this context `static` is intended to mean "at compile time" or,
equivalently, before the more "dynamic" phases of run time and link
time (the latter of which is more like run time than compile time).

I agree that `static` is potentially confusing since its meaning here
is different from what `static` means when used on a member of a class.

It does, however, fit nicely with its (nearly) dual directive, `exports
dynamic`, proposed for #ReflectiveAccessToNonExportedTypes.

I think `optional` is a non-starter, since `requires optional` reads as
an oxymoron, and it's optional at run time but mandatory at compile
time, so in what sense is it, really, "optional"?

Suggestions of other alternatives are welcome ...

- Mark

More information about the jpms-spec-observers mailing list