[isabelle-dev] Isabelle build only works in certain directories

Max Haslbeck 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 [1]. 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.

[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>>

Gruß
Max 



> 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'
>>  Output:
>> 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
> 
> 
> 	Makarius

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailmanbroy.informatik.tu-muenchen.de/pipermail/isabelle-dev/attachments/20180702/87bd24d4/attachment.html>


More information about the isabelle-dev mailing list