Re: [isabelle-dev] I don't understand isatest AFP report

2013-05-15 Thread Gerwin Klein

On 15.05.2013, at 8:01 PM, Ondřej Kunčar kun...@in.tum.de wrote:

 Hi!

 This is the last report about AFP from isatest:
 The status of the following AFP entries changed or remains FAIL:
 [Containers] was removed. Last status was ok.
 [Launchbury] is new. Status is ok.

 Full entry status at http://afp.sourceforge.net/status.shtml

 AFP version: development -- hg id 3f56bba4ee3a
 Isabelle version: devel -- hg id e116eb9e5e17
 Test ended on: macbroy2, Tue May 14 12:28:46 CEST 2013.

 

 It says that Containers was removed. But does it actually mean FAIL? Because 
 Containers is currently broken because of my changeset but I didn't learn 
 about it. And this web page doesn't list Containers at all (because it was 
 removed? but it's still in the repository though):
 http://afp.sourceforge.net/status.shtml

What's going on is that the somewhat primitive AFP test doesn't understand the 
output of isabelle build correctly.

It's currently getting its list of sessions by scanning through the output, 
trying to find messages for failed or successful sessions. This worked reliably 
for IsaMakefiles, because there was a separate invocation for each session and 
there was delimiting output before/after each session. Of course, that didn't 
provide any parallelism or other goodies.

In this instance, there was some kind of JVM problem which then caused the scan 
on the AFP test side to miss the Container session entirely and the tool 
therefore concluded that it must have been removed.

We've had other failures before, were build failed globally because a file 
dependency was missing, and the AFP test then concluded that all sessions must 
have been removed.

All of that is pretty unstable communication based on a lot of assumptions on 
my part. I should probably re-think how AFP test determines if a session was 
successful or not.

First cut a this:
- get a list of entries separately, i.e. from the thys/ROOTS file
- try to identify only successful sessions from build output

With that, we'd get correct removed/new messages, and failure messages when 
anything unexpected happens.

Does this sound reasonable?

Cheers,
Gerwin




The information in this e-mail may be confidential and subject to legal 
professional privilege and/or copyright. National ICT Australia Limited accepts 
no liability for any damage caused by this email or its attachments.
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] I don't understand isatest AFP report

2013-05-15 Thread Andreas Lochbihler

Here's a summary of the story with Containers:

AFP/db25a6127308 to AFP/58dc11da7731 add the Containers entry to AFP-devel in the version 
that works with Isabelle2013.


In AFP/664abd899c58, Gerwin dropped the import of Code_Char_ord that Florian removed in 
Isabelle/599ff65b85e2. This implicitly dropped the import of Char_ord, which caused some 
even more errors.


In AFP/599ff65b85e2, Dmitriy dropped the session Containers-Benchmarks to avoid crashes in 
the build tool.


AFP/3f56bba4ee3a contains all the necessary adaptations to run with Isabelle/ae755fd6c883 
and re-activates Containers-Benchmarks.


Unfortunately, this situation lasted only for less than 4 hours. Isabelle/a4d81cdebf8b 
breaks Containers again, but Ondřej did not notice because the AFP test report is strange.


Andreas

On 15/05/13 13:09, Makarius wrote:

On Wed, 15 May 2013, Ondřej Kunčar wrote:


This is the last report about AFP from isatest:
The status of the following AFP entries changed or remains FAIL:
[Containers] was removed. Last status was ok.
[Launchbury] is new. Status is ok.

Full entry status at http://afp.sourceforge.net/status.shtml

AFP version: development -- hg id 3f56bba4ee3a
Isabelle version: devel -- hg id e116eb9e5e17
Test ended on: macbroy2, Tue May 14 12:28:46 CEST 2013.



It says that Containers was removed. But does it actually mean FAIL? Because 
Containers
is currently broken because of my changeset but I didn't learn about it. And 
this web
page doesn't list Containers at all (because it was removed? but it's still in 
the
repository though): http://afp.sourceforge.net/status.shtml


I am also confused, and still trying to catch up with the ups and downs of this 
new
session. Yesterday I had a working situation in Isabelle/ae755fd6c883 and 
AFP/0b521abc0487.

I have also spent some time to robustify the Isabelle build process (leading up 
to
Isabelle/5fdca5bfc0b4) to prevent sessions bombing the JVM by producing tons of 
output.
Here it is via higher-order unification going amiss and producing lots of 
tracing
messages.  I guess that is actually coming from some transfer tools.

We've had several surprises about HO-unification from TUM people recently, but 
I am still
lagging behind to follow-up on all that.  (Basically, fully-general HO is 
rather ambitious
and rarely used systematically in tool implementations these days.)


 Makarius


___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] I don't understand isatest AFP report

2013-05-15 Thread Makarius

On Wed, 15 May 2013, Andreas Lochbihler wrote:

In AFP/599ff65b85e2, Dmitriy dropped the session Containers-Benchmarks to 
avoid crashes in the build tool.


I still have this on my list to look again, if further Isabelle/Scala 
robustification is needed beyond the state in Isabelle/5fdca5bfc0b4.


The general attitude of Isabelle build is to manage Isabelle sessions 
reliably, but it requires some odd measures on the JVM side, and 
possibilities for break down will always remain (despite the old timeout 
and the new process_output_limit.)


BTW, timeout was missing in thys/Containers/ROOT until AFP/0b521abc0487.


Makarius
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] I don't understand isatest AFP report

2013-05-15 Thread Makarius

On Wed, 15 May 2013, Gerwin Klein wrote:

What's going on is that the somewhat primitive AFP test doesn't 
understand the output of isabelle build correctly.


It's currently getting its list of sessions by scanning through the 
output, trying to find messages for failed or successful sessions. This 
worked reliably for IsaMakefiles, because there was a separate 
invocation for each session and there was delimiting output before/after 
each session.


The difference here is that make did not crash in its own right, but in 
exchange had less control over what was run and how it failed.


Doing the management of Isabelle build by a single JVM process gives the 
usual advantages and disadvantages of explicit management: potentially 
more control (e.g. for better scheduling) and more ways of breakdown.


After the bombing of the JVM by tons of tracing messages, I've briefly 
reconsidered the old file-system based approach, but that might then lead 
to bombing of some file-server, which is even worse.


Instead there are now more tight timeouts (AFP/fb808eb615) and a global 
process_output_limit of 100MB -- the JVM can still crash trying to decode 
the resulting log file again (UTF-16 sucks).


Do the AFP test scripts have additional resource limits?


In this instance, there was some kind of JVM problem which then caused 
the scan on the AFP test side to miss the Container session entirely and 
the tool therefore concluded that it must have been removed.


Basically the Isabelle build executable should follow the usual 
conventions of return codes:


  0: all fine
  1: program error, e.g. some sessions failed / remains outdated
  2: systemic failure, e.g. some unexpected exception within the JVM

Apart from that the stdout/stderr have a certain meaning, somewhat 
depending on the return code.



Also note that current Isabelle/ea123790121b allows do give more resources 
to the JVM that is running Isabelle build.  E.g. like this:


  ISABELLE_BUILD_JAVA_OPTIONS=-Xmx4096m -Xss2m

The default is a bit more frugal, to improve chances that it works on 
small machines that users might have.  (The JVM is very inflexible 
concerning resource management; it tends to misbehave for small heap size, 
but fails to start up for too big heaps.)



Makarius

___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] Global build failures of the AFP in the testboard

2013-05-15 Thread Makarius

On Thu, 25 Apr 2013, Dmitriy Traytel wrote:


Hi all,

since Containers are in the AFP mira results in global crashes of the build 
tool 
(http://isabelle.in.tum.de/testboard/Isabelle/report/2cef0644d3d7416f8d7cea92e24fd694). 
By global I mean that no session is built at all due to an outdated (wrt 
Isabelle repository, e.g. 916271d52466) import of 
src/HOL/Library/Efficient_Nat.thy in the session Containers-Benchmarks.


That looks like a normal error reported correctly -- missing file while 
examining session AFP/Containers-Benchmarks -- no crash here.


After failing in this static phase of examining the session 
specifications, there is no attempt to continue with what is left over. 
That would be a bit more complex to do, and such extra complexity then 
leads to more potential for really bad breakdowns.



What is still unclear to me after so many years of testboard is how it 
actually used in practice.  I just do isabelle build -j4 -a -d '$AFP' to 
see immediately how everything works out.  It is also possible to make a 
quick integrity check via isabelle build -n -a -d '$AFP'.



Makarius
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


[isabelle-dev] Java 8 delayed

2013-05-15 Thread Makarius
This is already old news, and in fact a running gag for several years 
already: Java 8 is again delayed by 6 more months at least, as explained 
here http://mreinhold.org/blog/hold-the-train -- see also 
http://openjdk.java.net/projects/jdk8/ for the current milestone 
situation.


Java 8 might (or might not) become available early 2014.

Java 6 was officially declared dead in Feb 2013.

Java 7 is here right now, but needs to be taken as is. Oracle is mainly 
working on security problems (for applets or application servers).  I will 
make some more efforts to work around the many GUI and platform problems 
of Java 7 as we see it today, it is unlikely to change much anytime soon.



Makarius
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] Global build failures of the AFP in the testboard

2013-05-15 Thread Dmitriy Traytel

Am 15.05.2013 15:48, schrieb Makarius:
What is still unclear to me after so many years of testboard is how it 
actually used in practice.  I just do isabelle build -j4 -a -d 
'$AFP' to see immediately how everything works out.  It is also 
possible to make a quick integrity check via isabelle build -n -a -d 
'$AFP'.
Actually, isabelle build -j4 -a -d '$AFP' was almost exactly what I 
did before I ran into this error. Here, I've used the testboard merely 
as a reference.


Another use case is the process making SML/NJ happy. I am aware that it 
is currently (e.g. in 4517ceb545c1) unhappy about BNFs.


But there are also heavier users of the testboard than me.

Dmitriy
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] Global build failures of the AFP in the testboard

2013-05-15 Thread Makarius

On Wed, 15 May 2013, Dmitriy Traytel wrote:


Am 15.05.2013 15:48, schrieb Makarius:
What is still unclear to me after so many years of testboard is how it 
actually used in practice.  I just do isabelle build -j4 -a -d '$AFP' to 
see immediately how everything works out.  It is also possible to make a 
quick integrity check via isabelle build -n -a -d '$AFP'.
Actually, isabelle build -j4 -a -d '$AFP' was almost exactly what I did 
before I ran into this error. Here, I've used the testboard merely as a 
reference.


Another use case is the process making SML/NJ happy. I am aware that it is 
currently (e.g. in 4517ceb545c1) unhappy about BNFs.


I am using the mira results on http://isabelle.in.tum.de/reports/Isabelle
myself a lot to navigate quickly to points where Isabelle and AFP diverge.

Is that already testboard?  I thought that would be a slightly different 
mode of operation to check quasi-interactively if something is ready for 
push.



Makarius
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] Global build failures of the AFP in the testboard

2013-05-15 Thread Dmitriy Traytel

Am 15.05.2013 16:34, schrieb Makarius:

On Wed, 15 May 2013, Dmitriy Traytel wrote:


Am 15.05.2013 15:48, schrieb Makarius:
What is still unclear to me after so many years of testboard is how 
it actually used in practice. I just do isabelle build -j4 -a -d 
'$AFP' to see immediately how everything works out.  It is also 
possible to make a quick integrity check via isabelle build -n -a 
-d '$AFP'.
Actually, isabelle build -j4 -a -d '$AFP' was almost exactly what I 
did before I ran into this error. Here, I've used the testboard 
merely as a reference.


Another use case is the process making SML/NJ happy. I am aware that 
it is currently (e.g. in 4517ceb545c1) unhappy about BNFs.


I am using the mira results on http://isabelle.in.tum.de/reports/Isabelle
myself a lot to navigate quickly to points where Isabelle and AFP 
diverge.


Is that already testboard?  I thought that would be a slightly 
different mode of operation to check quasi-interactively if something 
is ready for push.
Right, I should have referenced reports rather than testboard. From 
that perspective I use the testboard even less.


Dmitriy

___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] Global build failures of the AFP in the testboard

2013-05-15 Thread Lars Noschinski

On 15.05.2013 15:55, Makarius wrote:

On Thu, 25 Apr 2013, Dmitriy Traytel wrote:


http://isabelle.in.tum.de/testboard/Isabelle/report/2cef0644d3d7416f8d7cea92e24fd694


Side-remark about mira configuration: the log says

ML_HOME=/home/polyml/polyml-svn/x86-linux

but that SVN version is often fluctuating, depending on current
experiments with the SVN, and usually lagging behind.

The latest official release version is here: /home/polyml/polyml-5.5.0
or even just what Admin/components/main specifies.



For best performance on hardware with many cores, ML options like this
usually help:

ML_OPTIONS=-H 1000 --gcthreads 4

or

ML_OPTIONS=-H 1000 --gcthreads 8


Where are these mira/testboard options anyway? Normally the entry points
for anything like that is Admin/ within the Isabelle repository, such as
Admin/isatest/.


The basic configuration of the Mira system is at

 ~isatest/testbench/mira/settings/settings.py (for testboard), resp.
 ~isatest/testbench-main/mira/settings/settings.py (for reports)

and includes the configurations from the repositories (e.g. 
Isabelle:Admin/mira.py or AFP:admin/mira.py). The latter overrides the 
ML settings.


@Alex, Gerwin: Is there any reason remaining why the AFP should not use 
the default PolyML version?  I remember Alex and I dropped a similar 
override from the Isabelle tests.


Caveat: The settings (both global and repository-specific) are only 
loaded once when the mira daemon is started. If they change it is 
necessary to restart the daemon.


  -- Lars
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] Global build failures of the AFP in the testboard

2013-05-15 Thread Gerwin Klein

On 16.05.2013, at 1:25 AM, Lars Noschinski nosch...@in.tum.de wrote:

 @Alex, Gerwin: Is there any reason remaining why the AFP should not use the 
 default PolyML version?  I remember Alex and I dropped a similar override 
 from the Isabelle tests.

Not that I am aware of. The main reason there was an explicit version mention 
there was to keep track of what exactly was running and where it came from. We 
have a record of that now with the component system, so that can be dropped.

Cheers,
Gerwin



The information in this e-mail may be confidential and subject to legal 
professional privilege and/or copyright. National ICT Australia Limited accepts 
no liability for any damage caused by this email or its attachments.
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev


Re: [isabelle-dev] I don't understand isatest AFP report

2013-05-15 Thread Gerwin Klein

On 15.05.2013, at 11:33 PM, Makarius makar...@sketis.net wrote:

 On Wed, 15 May 2013, Gerwin Klein wrote:

 What's going on is that the somewhat primitive AFP test doesn't understand 
 the output of isabelle build correctly.

 It's currently getting its list of sessions by scanning through the output, 
 trying to find messages for failed or successful sessions. This worked 
 reliably for IsaMakefiles, because there was a separate invocation for each 
 session and there was delimiting output before/after each session.

 The difference here is that make did not crash in its own right, but in 
 exchange had less control over what was run and how it failed.

Yes, that's basically why this approach worked back then and I haven't really 
renovated it for the new setting.


 Do the AFP test scripts have additional resource limits?

It currently doesn't. We could think of wrapping a global ulimit around the 
test invocation.

We're probably better off if I make the AFP test more aware of global JVM 
crashes and better at interpreting regular output. It's good to try to reduce 
JVM problems, but the JVM being what it is, they will still happen from time to 
time.


 In this instance, there was some kind of JVM problem which then caused the 
 scan on the AFP test side to miss the Container session entirely and the 
 tool therefore concluded that it must have been removed.

 Basically the Isabelle build executable should follow the usual conventions 
 of return codes:

  0: all fine
  1: program error, e.g. some sessions failed / remains outdated
  2: systemic failure, e.g. some unexpected exception within the JVM

I should definitely react better to case 2. Currently this gives just a 
completely confusing everything removed report.

I'll have a look at that over the weekend.

Cheers,
Gerwin



The information in this e-mail may be confidential and subject to legal 
professional privilege and/or copyright. National ICT Australia Limited accepts 
no liability for any damage caused by this email or its attachments.
___
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev