ANNOUNCE: GHC 6.8.3 Release Candidate

Serge D. Mechveliani mechvel at botik.ru
Thu May 29 07:48:36 EDT 2008


On Thu, May 29, 2008 at 10:44:40AM +0100, Ian Lynagh wrote:
> 
> Hi Serge,
> 
> On Wed, May 28, 2008 at 10:28:58PM +0400, Serge D. Mechveliani wrote:
> > No,  ghc-6.8.2.20080527-src.tar.bz2  (`made' on Debian Linux, i686)
> > does not work.
> > See  DoCon-2.11.
> > It compiles  DoCon-2.11  with taking too much memory (> 300 Mb) and 
> > 3-4 times more of time than ghc-6.8.2.
> > And then, the test fails.
> 
> Thanks for the feedback! Can you please send us complete instructions
> for reproducing the problem, along with the output that you are seeing?


Take the public  docon-2.11  (for example, from  www.haskell/ghc/docon/)
and follow its instruction  install.txt.

Let us call  ghc-6.8.2.20080527  may27.

1) In  ghc-6.8.2,  it suffices  -M300m  to build, 
   and   may27  needs more -- change it to  -M700m -K99m  
   in  source/docon.cabal.
2) 6.8.2 builds DoCon 3 times faster.
3) The size of  libHSdocon-2.11.a  in 6.8.2 is about    14.2 Mb,
                                   in may27 it is about 16.7 Mb.
4) The module  RsePol_.hs  (close to the end of `make') takes 
   particularly long to compile.
5) Build and run  source/demotest/Main  as it is described in 
   install.txt
   ( cd source/demotest
     ghc $doconCpOpt --make Main
     ./Main  +RTS -M60m -RTS   
   )
   ghc-6.8.2  runs it all right, and  may27  reports


-------------------------------------------------
Permutation group S = S(n)  

===============
List all permutations p from S and test each p as follows
cG     = cyclicGroup(p)  in S(n)                         
cycles = [cl(1)..cl(k)] = decomposition of p to cycles   
Verify                                          
  0 < card cG <= card S,                        
  cG is free of repetitions and contains unity, 
  composition of cycles   == p,                 
  lcM (map length cycles) == card cG.           
And for  n,  test  osetCard S == n!             
Do this all for  n <- [1..nN].   Here  nN = 7.  
--- RESULT: 
[[True,True],[True,True],[True,True],[True,True],[True,True],
[True,True],[True,True]]

Integer factorization and List of primes test - sieve and other
--- RESULT: 
[True,True]

Properties and division in a residue ring  Z/(b)  
- modelled as ResidueE Z:                             
--- RESULT: 
[True,True]

Arithmetic in  P = Z[z,y,x]  and in  Z[x][y][z]. 
The isomorphism test for these domains:  verify      
(^n) == fromP .(^n) .toP                             
--- RESULT: 
Main: fromInteger   to (Pol ..):   use  fromi 
--------------------------------------------------------------------


It breaks in the first half of the test.
The reason may be, for example, in different treatment of overlapping
instances.
As to the DoCon message    fromInteger   to (Pol ..):   use  fromi 
,
it means a run-time error: 
the code tries to make a polynomial :: (Pol _)  from an Integer value 
by applying  fromInteger,  while DoCon allows for this only the 
operation `fromi'.
Here  (^n)  in  fromP .(^n) .toP  
(in one of the test modules in  demotest/) is powering a polynomial to 
the degree  n :: Integer.  I am not sure, but the impression is that 
the code tries to convert  n  to the type (Pol _), which it must not 
do.
6.8.2 is correct here, and  may27  maybe, confuses types or instances,
I do not know.

Regards, 

-----------------
Serge Mechveliani
mechvel at botik.ru

 


More information about the Glasgow-haskell-users mailing list