[isabelle-dev] Isabelle build only works in certain directories
max.haslbeck at gmx.de
Mon Jul 2 12:59:03 CEST 2018
So I did some further digging with good ol println in Scala :)
When I’m in one of the "wrong" directories the build process spend most of its time in the function Mercurial.check_files . The problem seems to be that the paths in hg.known_files() are relative to the current working directory. So "hg.root + Path.explode(name)" returns an incorrect path. The filtering of files in the next lines then doesn’t work and it reruns check() for every file.
The build process works in the directory "~/tmp/tmp" because the paths in hg.known_files() start with "../../" and by luck "hg.root + Path.explode(name)" returns a correct path.
The version of my mercurial installation is 4.6.1.
 <https://isabelle.in.tum.de/repos/isabelle/file/1b9462304e1d/src/Pure/General/mercurial.scala#l156 <https://isabelle.in.tum.de/repos/isabelle/file/1b9462304e1d/src/Pure/General/mercurial.scala#l156>>
> Am 28.06.2018 um 15:53 schrieb Makarius <makarius at sketis.net>:
> On 28/06/18 13:25, Max Haslbeck wrote:
>> I have the following curious problem: isabelle build only seems to work when I’m in certain directories.
>> 4. run 'cd /'
>> 5. run '/Users/mhaslbeck/Projects/isabelle/bin/isabelle build -v Pure'
>> 6. The build process now freezes and doesn’t react to keyboard input, can be killed by 'pkill java'
>> OS: macOS High Sierra 10.13.4
>> Isabelle rev: f5ca4c2157a5
> I have made some experiments with this Isabelle version and macOS
> 10.13.5, but did not see any such problems.
> Maybe there is something odd with the local file-system setup
> (encryption, "protections" by Apple etc.). It could be again some fight
> of Oracle (Java) vs. Apple.
>> Is there any way to get more verbose output from the building process?
> Pure is the initial bootstrap: you may get more information if you build
> it from a different directory first, and then repeat the experiment with
> "isabelle build -b FOL".
> An alternative experiment: use "isabelle scala" to build from the
> running Isabelle/Scala process:
> import isabelle._
> val options = Options.init()
> Build.build(options, new Console_Progress, sessions = List("Pure"),
> verbose = true)
> Can you try if some older Isabelle version still works?
> You can use "hg up -r Isabelle2017" (or other tags or revs) and then
> repeat "isabelle components -a && isabelle jedit -bf" + build invocations.
> If you have found a good situation, you can also use hg bisect to narrow
> it down:
> hg bisect --reset #once
> hg up -r f5ca4c2157a5 ; hg bisect --bad
> Then "hg bisect --bad" or "hg bisect --good" to record the changing
> state of that point in history.
> You can also check the particular versions where the underlying JDK
> changes: hg grep --all jdk Admin/components/main
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the isabelle-dev