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.



> Am 28.06.2018 um 15:53 schrieb Makarius <>:
> 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()
>, 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

isabelle-dev mailing list

Reply via email to