David,
Knowing Phil he will be using some version of Linux, but I see similar results on Mac OS: E.g., on Mac OS High Sierra 10.13.1:
rda]- echo | time /usr/local/poly/5.7-inf/bin/poly Poly/ML 5.7 Release 0.00 real 0.00 user 0.00 sys rda]- echo | time /usr/local/poly/5.7.1-inf/bin/poly Poly/ML 5.7.1 Release (Git version v5.7-290-g44b7b88e) 0.40 real 0.00 user 0.00 sys
Over repeated experiments, I see occasional upwards blips in the real time for 5.7, but 5.7.1 sticks doggedly to about 0.4 seconds.
Regards,
Rob.
On 25 Nov 2017, at 13:08, David Matthews <David.Matthews at prolingua.co.uk> wrote:
That's odd. When I run it it exits immediately. Exactly what platform are you running it on?
When a thread calls OS.Process.exit, which is what happens when end-of-stream is detected by the compiler, it marks all the other threads to exit and then starts a "crow-bar" thread. That waits for 40s (it was 20s in 5.7 and earlier) which forces an process exit if the other threads haven't finished in that time. There were issues with race conditions in earlier versions of Poly/ML which meant that sometimes the main thread would not correctly detect that the threads had exited but I thought all that had been fixed.
Regards, David
On 25/11/2017 09:24, Phil Clayton wrote:
I have just realized what is probably accounting for the delay below. I have noticed recently that there is a slight delay when exiting the poly session. echo | time poly gives 0.49 s elapsed time on my machine. After a build of ProofPower there are 262 SML files and most are processed in separate poly sessions that update the saved the state. That would give an expected delay of at most 262 * 0.49 s = 128 s which is not far off the 117 s extra delay below. I think that explains it. Phil On 23/11/17 19:46, Phil Clayton wrote:
David,
That also fixed the issue for me.
I have been using the latest commit (g44b7b88) without issue. My only observation is that there is a significant increase in the ProofPower build times:
Poly/ML 5.7
real 1m37.832s user 1m33.262s sys 0m15.108s
Poly/ML 5.7.1g44b7b88
real 3m34.839s user 1m38.777s sys 0m19.593s
I have kept all other things equal: the only change is the version of Poly/ML. This suggests that Poly/ML is waiting for something. Unfortunately I haven't had time to investigate this.
Regards, Phil
On 13/11/17 20:47, David Matthews wrote:
Rob, Thank you for putting up with this. We're gradually making progress. I've pushed a further change and this example now seems to work. I didn't actually get that assertion fault but something similar.
Regards, David
On 13/11/2017 16:32, Rob Arthan wrote:
David,
Thanks again, but I've got two ProofPower source files further on and then I get a different assertion failure:
Assertion failed: (val.AsAddress() > descr->originalAddress && val.AsAddress() <= (char*)descr->originalAddress + descr->segmentSize), function RelocateAddressAt, file savestate.cpp, line 929.
I've attached a tarball with the evidence. This time it doesn't seem to be deterministic, sometimes it gets further than others.
Regards,
Rob.
On 13 Nov 2017, at 13:33, David Matthews <David.Matthews at prolingua.co.uk> wrote:
Thanks, both of you for your contributions. I've had another look at it and I've applied another fix. The problem was really that it was reading beyond the end of an array which meant that whether and how it failed depended on the values it found. Hopefully the latest fix (e968c38) will solve it but let me know if there are still problems.
Regards, David
On 13/11/2017 09:12, Phil Clayton wrote: > David, > I also get a failure building ProofPower but not the same as Rob: > pp-ml: savestate.cpp:881: void LoadRelocate::AddTreeRange(SpaceBTree**, unsigned int, uintptr_t, uintptr_t): Assertion `s >= r && s <= 256' failed. > This is on a Linux x86_64 machine and occurs with commit 524fe72 (I haven't tested 04d3c95). Rob's second example (20171112) should reproduce this but doesn't. I modified the example as attached to use a single session and it gives the following error message but I don't know if this error is related: > pp-ml: gc_mark_phase.cpp:743: void CheckMarksOnCodeTask(GCTaskId*, void*, void*): Assertion `obj->ContainsNormalLengthWord()' failed. > Regards, > Phil > On 12/11/17 19:21, Rob Arthan wrote: >> David, >> >> Thanks. Unfortunately, after pulling your fix, I get the same assertion failure 2 files further >> on in the ProofPower build. The attached tarball contains files similar to the ones I sent >> yesterday to exhibit the problem. >> >> Regards, >> >> Rob. >> >>> On 12 Nov 2017, at 15:41, David Matthews <David.Matthews at prolingua.co.uk> wrote: >>> >>> Rob, >>> Thanks for doing that. I've pushed a commit that seems to have fixed it. >>> Regards, >>> David >>> >>> On 11/11/2017 18:47, Rob Arthan wrote: >>>> David, >>>>> On 8 Nov 2017, at 14:10, David Matthews <David.Matthews at prolingua.co.uk> wrote: >>>>> >>>>> We are approaching the point at which the current version of Git master is ready for release as Poly/ML 5.7.1. Version 5.7 introduced a number of significant changes and it has taken quite a bit of work since then to fix various bugs and sort out performance issues. I've been working with Makarius on dealing with those that affect Isabelle and we now seem to have dealt with everything. I'd like to ask everyone to try out the current version and let me know if there is anything that would stand in the way of a release. >>>> The ProofPower build fails with an assertion failure: >>>> Assertion failed: (t->tree[r] == 0), function AddTreeRange, file savestate.cpp, line 896. >>>> This is on Mac OS Sierra 10.12.6 with Poly/ML version v5.7-283-g04d3c95 . >>>> I haven't tried any other OSs. I presume this is happening where my main program calls >>>> PolyML.SaveState.loadState. >>>> I've attached a tarball of a cut-down set of source files that exhibits the problem >>>> together with a shell script that simulates what the ProofPower make file does. >>>> Regards, >>>> Rob. >>> _______________________________________________ >>> polyml mailing list >>> polyml at inf.ed.ac.uk >>> http://lists.inf.ed.ac.uk/mailman/listinfo/polyml >> >> >> >> >> >> >> >> _______________________________________________ >> polyml mailing list >> polyml at inf.ed.ac.uk >> http://lists.inf.ed.ac.uk/mailman/listinfo/polyml >> > _______________________________________________ > polyml mailing list > polyml at inf.ed.ac.uk > http://lists.inf.ed.ac.uk/mailman/listinfo/polyml _______________________________________________ polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml