Thanks everyone. Now I see the issue is indeed fixed. That's great.
--Chun
On Sat, Jun 20, 2020 at 6:33 PM Phil Clayton <phil.clayton at veonix.com> wrote:
I've built HOL4 with versions of Poly/ML before and after the fix (c355b21 and 0ad5aa8) on Linux x86_64. I ran the miller example (with fixes for Poly/ML reverted) and it appears that 0ad5aa8 fixes the issue.
Under c355b21:
[pclayton at localhost miller]$ ./selftest.exe Composite test on 91 ... (0.024s) OK Composite test on 123 ... (0.016s) OK Composite test on 4294967297 ... [GC = 3.401] (0.394s) OK Composite test on 18446744073709551617 ... [GC = 186.871] (3.216s) OK Composite test on 340282366920938463463374607431768211457 ... ^C^C
Under 0ad5aa8:
[pclayton at localhost miller]$ ./selftest.exe Composite test on 91 ... [GC = 0.027] (0.023s) OK Composite test on 123 ... (0.018s) OK Composite test on 4294967297 ... (0.360s) OK Composite test on 18446744073709551617 ... (2.540s) OK Composite test on 340282366920938463463374607431768211457 ... (19.700s) OK
Chun - your Poly/ML build commands (make compiler; make install) don't specify "make compiler" after "make" - see https://www.polyml.org/download.html I wonder therefore whether the compiler was rebuilt in your test.
Phil
On 20/06/20 04:32, Chun Tian (binghe) wrote:
Hi David,
no I didn't do "make compiler" in my previous tests... But after I did it (make compiler; make install) and rebuilt HOL, the "miller" selftest result is the same. The whole testing process still need more than 8 minutes to finish.
Regards,
Chun
On Sat, Jun 20, 2020 at 1:23 AM David Matthews <David.Matthews at prolingua.co.uk <mailto:David.Matthews at prolingua.co.uk>>
wrote:
Hi, You did run "make compiler" at least once after running "configure"
and
"make", didn't you? David On 19/06/2020 18:17, Chun Tian (binghe) wrote: > Hi David, > > I rebuilt and installed PolyML 5.8 ('master', up to 0ad5aa8) and ran again > the 'miller' selftests as Michael mentioned, but the results seem unchanged: > > ``` > Composite test on 91 ... > (0.018s) OK > Composite test on 123 ... [GC = 0.037] > (0.013s) OK > Composite test on 4294967297 ... [GC = 3.487] > (0.376s) OK > Composite test on 18446744073709551617 ... [GC = 84.370] > (2.846s) OK > Composite test on 340282366920938463463374607431768211457 ... [GC
=
> 429.267] (21.935s) OK > > real 9m19.723s > user 9m7.408s > sys 0m12.139s > ``` > > I'm on macOS 10.15 (catalina) with 2,3 GHz Intel Core i9 (8 core). The same > tests took less than 30s with PolyML 5.7. > > Hope this helps, > > Chun Tian > > > On Fri, Jun 19, 2020 at 6:54 PM David Matthews < > David.Matthews at prolingua.co.uk <mailto:David.Matthews at prolingua.co.uk>> wrote: > >> Thanks, Phil, for reminding me of this. I've committed a fix (0ad5aa8) >> for that. There was a tail-recursive function in your example
that
>> returned a tuple. Poly/ML puts these on the stack where it can but in >> this case it was causing the function to cease to be
tail-recursive,
>> eating up the stack. The reason for the regression was a change in the >> way tuples on the stack are handled in the 32-in-64 bit version. Your >> example now works as it used to. >> >> Michael, it would be worth trying your code with the latest version to >> see if this has fixed it. If it hasn't then presumably it's a different >> problem and I'll have to investigate further. >> >> David >> >> On 16/06/2020 09:58, Phil Clayton wrote: >>> I also found that 5.8 can consume a huge amount of memory compared to >>> 5.7.1. In my case, it was a very small example doing simple arithmetic >>> operations (demonstrating Fermat's method to find pairs of factors) so >>> it may be related. I have raised an issue for it: >>> https://github.com/polyml/polyml/issues/121 >>> >>> Phil >>> >>> On 16/06/20 02:30, Norrish, Michael (Data61, Acton) wrote: >>>> I have some HOL code that runs to completion in ~24 seconds user time. >>>> >>>> On 5.7.1 it runs in about that much wall clock time too. >>>> (Unfortunately, this test is running on a different machine, >>>> necessarily, but this is an old Linux desktop which is far less >>>> powerful than the new Macbook Pro which is running 5.8.) >>>> >>>> On 5.8 (updated for MacOS Catalina to the SHA above), wall clock time >>>> is 8 minutes. >>>> >>>> The relevant code is the selftest in examples/miller/miller which is a >>>> big arithmetic normalisation. >>>> >>>> On the Mac, memory consumption (as reported by the Activity Monitor) >>>> gets as high as 20GB; on the Linux machine running 5.7.1, the >>>> consumption remains very slight (top reports 3% in its %MEM column; >>>> the machine has 16GB) >>>> >>>> Michael >>>>