Compiling lx (the lexical analyser generator) with -O, everything goes
smoothly until we get to the main file Lx.hs, on which ghc-3.02 panics
and dies. The (long!) -v output is included below. If I compile without
-O, everything is fine.

I don't include the lx source, because I think that's available; I?m
trying to compile lx-0.95 from 10th July, 96, with trivial modifications
(had to change :='s into (,))
 
By the way, does ghc treat static data, such
as the huge literal lists generated by lx, any different from what it does
other code? Can one, say, force it so assume that those lists will be
needed strictly, so that it constructs them right away? 

-- m

-----------------------------------------------------------------------
Mariano Suarez Alvarez                              The introduction of
Departamento de Matematica                       numbers as coordinates
Universidad Nacional de Rosario             [...] is an act of violence
Pellegrini 250                                                  A. Weyl
2000 Rosario - Argentina                                        
e-mail: [EMAIL PROTECTED]
-----------------------------------------------------------------------
 
ghc -H15M -O -v  -c Lx.hs
The Glorious Glasgow Haskell Compilation System, version 3.02, patchlevel 0

Effective command line: -H15M -O -v -c

Ineffective C pre-processor:
        echo '{-# LINE 1 "Lx.hs" -}' > /tmp/ghc687.cpp && cat Lx.hs >> /tmp/ghc687.cpp

real    0m0.002s
user    0m0.010s
sys     0m0.000s
ghc:compile:Output file Lx.o doesn't exist
ghc:compile:Interface file Lx.hi doesn't exist
ghc:recompile:Input file Lx.hs newer than Lx.o

Haskell compiler:
        /home/mariano/lib/ghc-3.02/hsc ,-W ,/tmp/ghc687.cpp  -fdo-eta-reduction 
-fsimplify [  -fkeep-spec-pragma-ids -fmax-simplifier-iterations1 -fpedantic-bottoms ] 
-fspecialise-overloaded  -fspecialise -fsimplify [  -ffloat-lets-exposing-whnf 
-ffloat-primops-
ok -fcase-of-case -fdo-case-elim -fcase-merge -fdo-lambda-eta-expansion -freuse-con 
-fpedantic-bottoms  -fmax-simplifier-iterations4  -fclone-binds ] -ffull-laziness 
-ffloat-inwards -fsimplify [  -ffloat-lets-exposing-whnf -ffloat-primops-ok 
-fcase-of-cas
e -fdo-case-elim -fcase-merge -fdo-eta-reduction -fdo-lambda-eta-expansion -freuse-con 
 -fpedantic-bottoms  -fmax-simplifier-iterations4  ] -fstrictness -fsimplify [  
-ffloat-lets-exposing-whnf -ffloat-primops-ok -fcase-of-case -fdo-case-elim 
-fcase-merge
 -fdo-lambda-eta-expansion -freuse-con -flet-to-case -fpedantic-bottoms  
-fmax-simplifier-iterations4  ] -ffloat-inwards -fsimplify [  
-ffloat-lets-exposing-whnf -ffloat-primops-ok -fcase-of-case -fdo-case-elim 
-fcase-merge -fdo-lambda-eta-expansion -freu
se-con -flet-to-case -fignore-inline-pragma  -fpedantic-bottoms  
-fmax-simplifier-iterations4  ] -flambda-lift   -flet-no-escape 
-fwarn-overlapping-patterns -fwarn-missing-methods -fwarn-duplicate-exports 
-himap=.%.hi:/home/mariano/lib/ghc-3.02/imports/st
d%.hi   -v -hifile=/tmp/ghc687.hi -C=/tmp/ghc687.hc +RTS -H15000000 -K1000000
Glasgow Haskell Compiler, version 3.02, for Haskell 1.4
Lx.hs:849: 
    Pattern match(es) are overlapped
        in the definition of function `copy'
            m x = ...


NOTE: Simplifier still going after 4 iterations; bailing out.

NOTE: Simplifier still going after 4 iterations; bailing out.

Warning: discarding polymorphic case: PrelErr.error{-87-}
                                          _@_ RExp.Set{-rTV-} Map.$ga{-rS7-}

panic! (the `impossible' happened):
        lookupBindC:no info!
 for: x_nm_sx4f
                      (probably: data dependencies broken by an optimisation pass)
                      static binds for:
                      Main.$gn{-gn-}
                      Main.$go{-go-}
                      Main.$gp{-gp-}
                      Main.$gq{-gq-}
                      Main.$gr{-gr-}
                      Main.$gs{-gs-}
                      Main.$g41{-g41-}
                      Main.$g47{-g47-}
                      Main.$g4q{-g4q-}
                      Main.$g4r{-g4r-}
                      Main.$g4s{-g4s-}
                      Main.$g4t{-g4t-}
                      Main.$g4u{-g4u-}
                      Main.$g4v{-g4v-}
                      Main.$g4w{-g4w-}
                      Main.$g4x{-g4x-}
                      Main.$g4y{-g4y-}
                      Main.$g4z{-g4z-}
                      Main.$g4A{-g4A-}
                      Main.$g4B{-g4B-}
                      Main.$g4D{-g4D-}
                      Main.$g4E{-g4E-}
                      Main.$g4K{-g4K-}
                      Main.$g4L{-g4L-}
                      Main.$g4M{-g4M-}
                      Main.$g4N{-g4N-}
                      Main.$g4Y{-g4Y-}
                      Main.$g53{-g53-}
                      Main.$g54{-g54-}
                      Main.$g56{-g56-}
                      Main.$g57{-g57-}
                      Main.$g58{-g58-}
                      Main.$g59{-g59-}
                      Main.$g5a{-g5a-}
                      Main.$g14iu{-g14iu-}
                      Main.$g14iA{-g14iA-}
                      Main.$g14iF{-g14iF-}
                      Main.$g14js{-g14js-}
                      Main.$g14jx{-g14jx-}
                      Main.$g14jI{-g14jI-}
                      Main.MacroLE{-r1C-}
                      Main.SyntaxLE{-r1D-}
                      Main.RMac{-r1E-}
                      Main.SMac{-r1F-}
                      Main.PrdT{-r1G-}
                      Main.BndT{-r1H-}
                      Main.ZerT{-r1I-}
                      Main.IdeT{-r1J-}
                      Main.TknT{-r1K-}
                      Main.SpeT{-r1L-}
                      Main.SMacT{-r1M-}
                      Main.RMacT{-r1N-}
                      Main.ChT{-r1O-}
                      Main.QuoT{-r1P-}
                      Main.ErrT{-r1Q-}
                      Main.EofT{-r1R-}
                      Main.triple{-ryK-}
                      Main.pair{-ryL-}
                      Main.copy{-ryM-}
                      Main.str2int{-ryN-}
                      Main.tok'{-ryO-}
                      Main.?{-ryP-}
                      Main.&#{-ryQ-}
                      Main.#{-ryR-}
                      Main.set_env{-ryS-}
                      Main.get_env{-ryT-}
                      Main.fail_p{-ryU-}
                      Main.return_p{-ryV-}
                      Main.parse{-ryW-}
                      Main.#={-ryX-}
                      Main.=&{-ryY-}
                      Main.&={-ryZ-}
                      Main.&{-rz0-}
                      Main.maybee{-rz1-}
                      Main.many_1{-rz2-}
                      Main.many{-rz3-}
                      Main.tok_p'{-rz4-}
                      Main.tok_p{-rz5-}
                      Main.eof_p{-rz6-}
                      Main.rmac_tok'{-rz7-}
                      Main.rmac_tok{-rz8-}
                      Main.smac_tok'{-rz9-}
                      Main.smac_tok{-rza-}
                      Main.chr_tok{-rzb-}
                      Main.spe{-rzc-}
                      Main.rmacro_p{-rzd-}
                      Main.smacro_p{-rze-}
                      Main.int_p{-rzf-}
                      Main.quot_p{-rzg-}
                      Main.tkn_p{-rzh-}
                      Main.zero_p{-rzi-}
                      Main.ide_p{-rzj-}
                      Main.bnd_p{-rzk-}
                      Main.prd_p{-rzl-}
                      Main.macro_fail_p{-rzm-}
                      Main.add_macro{-rzn-}
                      Main..#{-rzo-}
                      Main..|{-rzp-}
                      Main.complement{-rzq-}
                      Main.fold_mb{-rzr-}
                      Main.repeat_rng{-rzs-}
                      Main.set0_p{-rzt-}
                      Main.set_p{-rzu-}
                      Main.range_p{-rzv-}
                      Main.st_pl_qu_rg{-rzw-}
                      Main.rexp0_p{-rzx-}
                      Main.rexp1_p{-rzy-}
                      Main.rexp2_p{-rzz-}
                      Main.rexp_p{-rzA-}
                      Main.sc_p{-rzB-}
                      Main.ctx_p'{-rzC-}
                      Main.ctx_p{-rzD-}
                      Main.def_p{-rzE-}
                      Main.scanner_p{-rzF-}
                      Main.macdef_p'{-rzG-}
                      Main.macdef_p{-rzH-}
                      Main.macros_p{-rzI-}
                      Main.lx_p'{-rzJ-}
                      Main.lx_p{-rzK-}
                      Main.lx_scan{-rzL-}
                      Main.scan_lx{-rzM-}
                      Main.token_pos{-rzN-}
                      Main.standard_macros{-rzO-}
                      Main.parse_lx{-rzP-}
                      Main.ext_ev{-rzQ-}
                      Main.empty_ev{-rzR-}
                      Main.encode_assocs{-rzT-}
                      Main.encode_start_codes{-rzU-}
                      Main.LP{-rCl-}
                      Main.LEv{-rDf-}
                      Main.LxT{-rFm-}
                      Main.$dEvalLxErr0{-r5Vw-}
                      Main.$dEvalLxEnv0{-r5Vx-}
                      Main.$dEvalMacDef0{-r5Vy-}
                      Main.$dEvalToken0{-r5Vz-}
                      Main.$dEvalLxTkn0{-r5VA-}
                      Main.$dEvalLxScript0{-r5VB-}
                      Main.$g0{-su69-}
                      Main.$g1{-su6g-}
                      Main.$g2{-su6z-}
                      Main.$g3{-su6O-}
                      Main.$g4{-su6V-}
                      Main.$g5{-su72-}
                      Main.$g6{-su79-}
                      Main.$g7{-su7g-}
                      Main.$g8{-su7n-}
                      Main.$g9{-su7u-}
                      Main.$ga{-su7B-}
                      Main.$gb{-su7I-}
                      Main.$gc{-su7P-}
                      Main.$gd{-su7W-}
                      Main.$ge{-su8E-}
                      Main.$gf{-su8T-}
                      Main.$gg{-su90-}
                      Main.$gh{-su97-}
                      Main.$gi{-su9e-}
                      Main.$gj{-su9l-}
                      Main.$gk{-su9s-}
                      Main.$gl{-su9z-}
                      Main.$gm{-su9I-}
                      Main.$gC{-suD7-}
                      Main.$gD{-suHG-}
                      Main.$gF{-suJX-}
                      Main.$gH{-suKG-}
                      Main.$gJ{-suLs-}
                      Main.$gL{-suMc-}
                      Main.$gN{-suMY-}
                      Main.$gP{-suNL-}
                      Main.$gQ{-suOF-}
                      Main.$gR{-suP3-}
                      Main.$gS{-suQ1-}
                      Main.$gT{-suQp-}
                      Main.$gU{-suRb-}
                      Main.$gV{-suS1-}
                      Main.$gW{-suS8-}
                      Main.$gY{-suTw-}
                      Main.$g10{-suUn-}
                      Main.$g11{-suVU-}
                      Main.$g12{-suWI-}
                      Main.$g13{-suYB-}
                      Main.$g14{-suYC-}
                      Main.$g15{-suYV-}
                      Main.$g16{-suZ2-}
                      Main.$g17{-suZg-}
                      Main.$g18{-suZC-}
                      Main.$g19{-sv00-}
                      Main.$g1a{-sv2O-}
                      Main.$g1c{-sv4i-}
                      Main.$g1e{-sv5U-}
                      Main.$g1d{-sv7h-}
                      Main.$g1f{-sv7A-}
                      Main.$g1g{-sv7H-}
                      Main.$g1h{-sv7O-}
                      Main.$g1i{-sv80-}
                      Main.$g1k{-sv8U-}
                      Main.$g1l{-svaE-}
                      Main.$g1m{-svb3-}
                      Main.$g1n{-svbn-}
                      Main.$g1p{-svbs-}
                      Main.$g1o{-svbT-}
                      Main.$g1q{-svcb-}
                      Main.$g1r{-svcg-}
                      Main.$g1s{-svcC-}
                      Main.$g1t{-svcZ-}
                      Main.$g1O{-svd4-}
                      Main.$g1u{-svdn-}
                      Main.$g1P{-svdG-}
                      Main.$g1v{-svdT-}
                      Main.$g1L{-svdY-}
                      Main.$g1w{-sveh-}
                      Main.$g1M{-sveA-}
                      Main.$g1x{-sveN-}
                      Main.$g1I{-sveS-}
                      Main.$g1y{-svfb-}
                      Main.$g1J{-svfu-}
                      Main.$g1z{-svfO-}
                      Main.$g1E{-svfT-}
                      Main.$g1A{-svgg-}
                      Main.$g1F{-svgz-}
                      Main.$g1B{-svgW-}
                      Main.$g1G{-svhf-}
                      Main.$g1C{-svhs-}
                      Main.$g1D{-svhw-}
                      Main.$g1H{-svhB-}
                      Main.$g1K{-svhU-}
                      Main.$g1N{-svic-}
                      Main.$g1Q{-sviQ-}
                      Main.$g1R{-svkb-}
                      Main.$g1T{-svly-}
                      Main.$g1V{-svog-}
                      Main.$g1W{-svpq-}
                      Main.$g2o{-svpu-}
                      Main.$g2p{-svpA-}
                      Main.$g2z{-svpJ-}
                      Main.$g27{-svqq-}
                      Main.$g2g{-svqv-}
                      Main.$g2k{-svqK-}
                      Main.$g2l{-svr2-}
                      Main.$g2m{-svr7-}
                      Main.$g2n{-svrt-}
                      Main.$g26{-svrV-}
                      Main.$g2d{-svs0-}
                      Main.$g25{-svsn-}
                      Main.$g2e{-svsG-}
                      Main.$g2w{-svt3-}
                      Main.$g2x{-svtm-}
                      Main.$g23{-svtx-}
                      Main.$g24{-svtU-}
                      Main.$g2y{-svud-}
                      Main.$g22{-svuw-}
                      Main.$g21{-svuQ-}
                      Main.$g28{-svuV-}
                      Main.$g20{-svva-}
                      Main.$g29{-svvs-}
                      Main.$g2a{-svvx-}
                      Main.$g2b{-svvU-}
                      Main.$g2c{-svwd-}
                      Main.$g1Z{-svwF-}
                      Main.$g1Y{-svwX-}
                      Main.$g2i{-svx2-}
                      Main.$g2h{-svxh-}
                      Main.$g2j{-svxA-}
                      Main.$g2q{-svy8-}
                      Main.$g2r{-svyr-}
                      Main.$g1X{-svyE-}
                      Main.$g2f{-svyI-}
                      Main.$g2s{-svyN-}
                      Main.$g2t{-svz6-}
                      Main.$g2u{-svzp-}
                      Main.$g2v{-svzH-}
                      Main.$g2A{-svAn-}
                      Main.$g2O{-svAr-}
                      Main.$g2P{-svAx-}
                      Main.$g2S{-svAF-}
                      Main.$g32{-svAO-}
                      Main.$g2H{-svBm-}
                      Main.$g2I{-svBI-}
                      Main.$g2Q{-svCr-}
                      Main.$g2R{-svCY-}
                      Main.$g2T{-svDH-}
                      Main.$g2G{-svE1-}
                      Main.$g2N{-svE6-}
                      Main.$g2U{-svEl-}
                      Main.$g2V{-svED-}
                      Main.$g2W{-svF4-}
                      Main.$g2F{-svFp-}
                      Main.$g2J{-svFu-}
                      Main.$g2E{-svFJ-}
                      Main.$g2K{-svG2-}
                      Main.$g2D{-svGl-}
                      Main.$g2C{-svGF-}
                      Main.$g2M{-svGK-}
                      Main.$g2X{-svGZ-}
                      Main.$g2Y{-svHi-}
                      Main.$g2B{-svHv-}
                      Main.$g2L{-svHz-}
                      Main.$g2Z{-svHE-}
                      Main.$g30{-svHX-}
                      Main.$g31{-svIf-}
                      Main.$g33{-svIP-}
                      Main.$g34{-svJ2-}
                      Main.$g3b{-svJ6-}
                      Main.$g3c{-svJb-}
                      Main.$g35{-svJy-}
                      Main.$g3d{-svJR-}
                      Main.$g36{-svKh-}
                      Main.$g38{-svKy-}
                      Main.$g39{-svKD-}
                      Main.$g37{-svL0-}
                      Main.$g3a{-svLi-}
                      Main.$g3g{-svLK-}
                      Main.$g3e{-svLZ-}
                      Main.$g3h{-svMi-}
                      Main.$g3f{-svMz-}
                      Main.$g3i{-svOo-}
                      Main.$g3z{-svOt-}
                      Main.$g3j{-svPw-}
                      Main.$g3k{-svQ9-}
                      Main.$g3v{-svQe-}
                      Main.$g3l{-svQt-}
                      Main.$g3w{-svQL-}
                      Main.$g3x{-svQQ-}
                      Main.$g3y{-svRd-}
                      Main.$g3m{-svRD-}
                      Main.$g3s{-svSh-}
                      Main.$g3n{-svSw-}
                      Main.$g3t{-svSO-}
                      Main.$g3u{-svST-}
                      Main.$g3p{-svU3-}
                      Main.$g3o{-svUi-}
                      Main.$g3q{-svUA-}
                      Main.$g3r{-svUE-}
                      Main.$g3A{-svVf-}
                      Main.$g3C{-svVj-}
                      Main.$g3D{-svVn-}
                      Main.$g3B{-svW0-}
                      Main.$g3E{-svWs-}
                      Main.$g3F{-svWK-}
                      Main.$g3G{-svWP-}
                      Main.$g3H{-svXm-}
                      Main.$g3I{-svXO-}
                      Main.$g3J{-svY7-}
                      Main.$g3M{-svYw-}
                      Main.$g3K{-svYL-}
                      Main.$g3N{-svZ3-}
                      Main.$g3O{-svZ8-}
                      Main.$g3P{-svZv-}
                      Main.$g3Q{-svZN-}
                      Main.$g3R{-svZS-}
                      Main.$g3L{-sw0A-}
                      Main.$g3S{-sw1h-}
                      Main.$g3T{-sw1A-}
                      Main.$g3U{-sw22-}
                      Main.$g3V{-sw33-}
                      Main.$g3W{-sw3S-}
                      Main.$g3X{-sw4j-}
                      Main.$g3Y{-sw4N-}
                      Main.$g42{-sw93-}
                      Main.$g44{-swdt-}
                      Main.$g46{-swfO-}
                      Main.$g48{-swfX-}
                      Main.$g49{-swgo-}
                      Main.$g4a{-swgZ-}
                      Main.$g4b{-swhA-}
                      Main.$g4c{-swip-}
                      Main.$g4d{-swje-}
                      Main.$g4e{-swkn-}
                      Main.$g4f{-swlw-}
                      Main.$g4g{-swml-}
                      Main.$g4h{-swoq-}
                      Main.$g4j{-swpW-}
                      Main.$g4k{-swqL-}
                      Main.$g4l{-swrA-}
                      Main.$g4m{-swrR-}
                      Main.$g4p{-swuS-}
                      Main.$g4n{-swuT-}
                      Main.$g4C{-swvv-}
                      Main.$g4F{-swx7-}
                      Main.$g4G{-swD9-}
                      Main.$g4H{-swEy-}
                      Main.$g4I{-swEF-}
                      Main.$g4J{-swFS-}
                      Main.$g4O{-swJ5-}
                      Main.$g4P{-swKr-}
                      Main.$g4Q{-swKU-}
                      Main.$g4R{-swLu-}
                      Main.$g4S{-swLL-}
                      Main.$g4T{-swLZ-}
                      Main.$g4U{-swMK-}
                      Main.$g4V{-swNk-}
                      Main.$g4W{-swO0-}
                      Main.$g4X{-swOq-}
                      Main.$g4Z{-swPJ-}
                      Main.$g50{-swTq-}
                      Main.$g51{-swTH-}
                      Main.$g52{-sx1W-}
                      Main.$g55{-sx3a-}
                      Main.$gA{-sCJB-}
                      Main.$gz{-sCJC-}
                      Main.$gy{-sCJD-}
                      Main.$gx{-sCJE-}
                      Main.$gB{-sCJF-}
                      Main.$gw{-sCJG-}
                      Main.$gv{-sCJH-}
                      Main.$gu{-sCJI-}
                      Main.$gt{-sCJJ-}
                      Main.$wtok'{-sMBp-}
                      Main.$wtok_p'{-sMBq-}
                      Main.$wext_ev{-sMBr-}
                      Main.$gE{-sMBs-}
                      Main.$gG{-sMBt-}
                      Main.$gI{-sMBu-}
                      Main.$gK{-sMBv-}
                      Main.$gM{-sMBw-}
                      Main.$gO{-sMBx-}
                      Main.$gX{-sMBy-}
                      Main.$gZ{-sMBz-}
                      Main.$wcomplement{-sMBA-}
                      Main.$wcopy{-sMBB-}
                      Main.$g1b{-sMBC-}
                      Main.$wrepeat_rng{-sMDy-}
                      Main.$g1j{-sMDz-}
                      Main.$wspe{-sMDA-}
                      Main.$g1S{-sMDB-}
                      Main.$g1U{-sMDC-}
                      Main.$g3Z{-sMMT-}
                      Main.$g40{-sMMU-}
                      Main.$g43{-sMNT-}
                      Main.$g45{-sMNU-}
                      Main.$g4i{-sMNV-}
                      Main.$g4o{-sMNW-}
                      local binds for:
                      $xj_sxaF

Please report it as a compiler bug to [EMAIL PROTECTED]

deleting... /tmp/ghc687.cpp /tmp/ghc687.hi /tmp/ghc687.hc

rm -f /tmp/ghc687*
make: *** [Lx.o] Error 1



Reply via email to