Ich möchte libisabelle verwenden, um Isabelle von Scala aufzurufen. In der Standardeinstellung (d. H. Unter Verwendung des Aufrufs wie in tutorial beschrieben) wird libisabelle eine neue Isabelle-Installation herunterladen.libisabelle mit vorhandener Isabelle-Installation
Ich möchte stattdessen eine vorhandene (schreibgeschützte) Isabelle-Konfiguration verwenden. Ich habe versucht, die folgenden:
val path = "/opt/Isabelle2016-1"
val setup = Setup.detect(Platform.genericPlatform(new File(path).toPath), Version.Stable("2016-1")).right.get
val resources = Resources.dumpIsabelleResources().right.get
val environment = Await.result(setup.makeEnvironment(resources), Duration.Inf)
val config = Configuration.simple("Example")
System.build(environment,config)
val system = System.create(environment,config)
Ich bin nicht sicher, ob dies ist, wie ich soll alles einzurichten, aber auf jeden Fall funktioniert es nicht:
java.nio.file.AccessDeniedException: /opt/Isabelle2016-1/.lock
So libisabelle schreiben will zur Isabelle-Installation. Ich möchte, dass der Code auch mit einer schreibgeschützten Installation funktioniert.
Wie kann ich libisabelle in der oben genannten Situation arbeiten?
Es funktioniert für mich mit einem kleinen Fix: 'info.hupel.isabelle.Platform.guess.get' statt' Platform.guess() .get'. ('Platform' wird von' java.lang.Platform' beschattet und die '()' versucht den Rückgabewert von 'guess' aufzurufen) –
Danke, ich habe die' guess() '→' rate' Änderung eingebaut. Das Platform-Problem sollte mit einem Platzhalterimport von 'info.hupel.isabelle._' verschwinden. – larsrh
"Das Platform-Problem sollte mit einem Platzhalterimport von' info.hupel.isabelle._' verschwinden. " Tatsächlich tut es das. Komisch, dass ich früher Probleme hatte, da ich diesen Import in meiner Quelle hatte ... –