I was THIS close to running Ceylon modules with Java 9:

atlantis stephane 18:04 compiler-java $
$HOME/no-backup/src/jdk1.9.0-jigsaw/bin/java -modulepath mlib -m
com.redhat.ceylon.compiler.java.test.interop.java9.user
Error occurred during initialization of VM
java.lang.module.ResolutionException: Cycle detected: ceylon.language ->
com.redhat.ceylon.compiler.java -> ceylon.language
    at java.lang.module.Resolver.visit(java.base@9.0/Resolver.java:693)
    at java.lang.module.Resolver.visit(java.base@9.0/Resolver.java:702)
    at java.lang.module.Resolver.visit(java.base@9.0/Resolver.java:702)
    at
java.lang.module.Resolver.detectCycles(java.base@9.0/Resolver.java:678)
    at java.lang.module.Resolver.resolve(java.base@9.0/Resolver.java:209)
    at java.lang.module.Resolver.resolve(java.base@9.0/Resolver.java:173)
    at
java.lang.module.Configuration.resolve(java.base@9.0/Configuration.java:229)
    at
jdk.internal.module.ModuleBootstrap.boot(java.base@9.0/ModuleBootstrap.java:180)
    at java.lang.System.initPhase2(java.base@9.0/System.java:1263)

So yeah, we support cyclic modules, and in particular our language
module (equivalent of java.base) depends on the compiler which depends
on the language module.

Any plans to relax this, or is there a command-line switch to disable
this check?

PS: for the curious, yes Ceylon modules now generate a module-info.class
and we retrofitted our distrib jars with them too, for the experiment
(this has not been tested at compile-time though, so they might be
incomplete module descriptors so far).

Cheers.

Reply via email to