Timeline


and

Oct 1, 2001:

8:01 PM Ticket #5 (fails if library has main()) created by cwitty
[…]
3:42 PM Changeset in ghc [bc65d813]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonpj <unknown>
[project @ 2001-10-01 15:42:42 by simonpj] ILX ifdefery
2:40 PM Changeset in ghc [3a60e526]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-10-01 14:40:33 by rrt] Various updates to track the state of GHC and ILX.
2:34 PM Changeset in ghc [e6a6f5c1]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-10-01 14:34:51 by rrt] Track reality a bit.
2:28 PM Changeset in ghc [36bdd4d]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-10-01 14:28:37 by rrt] Implement -keep-il-file.
2:01 PM Changeset in ghc [c552bf11]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-10-01 14:01:42 by rrt] Implement -keep-il-file
1:57 PM Changeset in ghc [5442d97c]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-10-01 13:57:13 by rrt] Add -keep-il-file.
1:45 PM Changeset in ghc [2d07102]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-10-01 13:45:43 by rrt] PrelGHC.dll -> PrelGHC.i_o, and a few other corrections to follow changes to ILX.
1:38 PM Changeset in ghc [1a9d0bb]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-10-01 13:38:50 by rrt] Reflect reality ever-so-slightly better.
1:30 PM Changeset in ghc [e813cb94]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-10-01 13:30:27 by rrt] Remove unused import.
1:28 PM Changeset in ghc [0f57319f]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-10-01 13:28:40 by rrt] Removed unused imports.
1:13 PM Changeset in ghc [0635d22f]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-10-01 13:13:38 by rrt] Get rid of \rs at the end of lines in prescripts and postscripts to work around Windows dodginess.
1:10 PM Changeset in ghc [52788cf5]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonmar <unknown>
[project @ 2001-10-01 13:10:53 by simonmar] Export run_queue_hd to the dynamic linker; TkHaskell has a grotesque hack which requires it.
12:23 PM Changeset in nofib [e8ee196]ghc-7.8shakesupercompiler by rrt <unknown>
[project @ 2001-10-01 12:23:42 by rrt] Stop using ANNA_DIR environment variable, which for various sad reasons doesn't work on Windows.
11:36 AM Changeset in ghc [e38fdaa5]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonmar <unknown>
[project @ 2001-10-01 11:36:28 by simonmar] Allow default RTS options to be specified by linking in an object file which defines the symbol `ghc_rts_opts' to point to a string of RTS options. This is preferred to using defaultsHook(), if possible. Perhaps we could remove defaultsHook(). (won't work with DLL's; if we ever ressurrect them we'll have to deal with this somehow).
11:09 AM Changeset in ghc [1b9f74f]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonmar <unknown>
[project @ 2001-10-01 11:09:02 by simonmar] Actually bomb out with an error message if the maximum heap size is smaller than the minimum allocation area size.
10:52 AM Changeset in ghc [3a7e4d98]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonmar <unknown>
[project @ 2001-10-01 10:52:36 by simonmar] Fix a bug in the heap size calculation, where a negative result wasn't noticed because we're working with unsigned types. We now explicitly test that the heap has enough room for the minimum allocation area size, otherwise a heap overflow is reported.
9:59 AM Changeset in ghc [68d5c3f]ghc-7.8wip/Cabal-1.20wip/T8545-ghc-7.8wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/coveritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compat by simonmar <unknown>
[project @ 2001-10-01 09:59:42 by simonmar] Add tests for mixing layout and explicit braces.
9:59 AM Changeset in testsuite [a56f8c6]at-defaultsatomicsdata-kind-syntaxencodingghc-7.2ghc-7.4ghc-7.6ghc-deferghc-new-comonad-compno-pred-tyoverlapping-tyfamspatch-4404patch-5014patch-5084tc-untouchablesth-newtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/nested-cprwip/pattern-synonymswip/th-new by simonmar <unknown>
[project @ 2001-10-01 09:59:42 by simonmar] Add tests for mixing layout and explicit braces.
9:45 AM Changeset in ghc [5d89d8eb]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonpj <unknown>
[project @ 2001-10-01 09:45:38 by simonpj] --------------------------- Match rules before inlining --------------------------- This commit fulfils a long-standing wish by Manuel that RULES matching occurs before inlining. So if a RULE matches, it'll get used, even if the function can also be inlined. It's a bit dodgy to actually rely on this, because maybe the rule doesn't match *yet* but will do after a bit more transformation. But it does help with things like class operations. Class ops are simply selectors which pick a method out of a dictionary, so they are inlined rather vigorously. But we might want a RULE for a class method (e.g. (==) [Char] = eqString), and such rules would practically never fire if inlining took priority.
9:41 AM Changeset in ghc [f49ddc1]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonpj <unknown>
[project @ 2001-10-01 09:41:28 by simonpj] Stuff to make a RULE work for eqString "foo" "foo" = True (etc.) The rule is of course a BuiltinRule in PrelRules
9:40 AM Changeset in ghc [e335258]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonpj <unknown>
[project @ 2001-10-01 09:40:26 by simonpj] Add a rule for equality on strings
9:26 AM Changeset in ghc [c605b86]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonpj <unknown>
[project @ 2001-10-01 09:26:27 by simonpj] Fix a long-standing lossage of rules attached to class operations (A one-line fix to SimplCore.updateBinders.)
8:50 AM Ticket #4 (-fext-core -fno-core behaves funny) created by josefs
[…]

Sep 28, 2001:

11:41 PM Changeset in ghc [0f3a6bb]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by sof <unknown>
[project @ 2001-09-28 23:41:00 by sof] Rename 'doDiscard' to 'lexPragma', and make it EOF-resistant. As was, it would run off the end of a StringBuffer (and SIGSEGV, most likely) if a pragma wasn't properly closed.
11:36 PM Changeset in ghc [53ededd]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by sof <unknown>
[project @ 2001-09-28 23:36:50 by sof] Provide finer-grained control for turning off mk/target.mk's 'all', 'boot' and 'install' rules. i.e., instead of having the variable NO_ALL_TARGETS control the defnition of rules for all three, NO_ALL_TARGET, NO_BOOT_TARGET, and NO_INSTALL_TARGET lets you individually control which ones you don't want. Sub-projects (GC and HDirect, for example) have the need to turn off the 'boot' rule, which is what motivated this change.
10:59 AM Changeset in ghc [ba36feb]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-09-28 10:59:50 by rrt] Tweaks to the 5.02 InstallShield to improve presentation and the range of help files available.

Sep 27, 2001:

11:10 PM Changeset in ghc [b7c424e3]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by sof <unknown>
[project @ 2001-09-27 23:10:52 by sof] Inline BasicTypes.CompilerPhase tysyn to workaround Outputable <--> BasicTypes module loop.
9:49 AM Changeset in ghc [35991146]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-09-27 09:49:46 by rrt] Add note that it's possible to move the Windows GHC tree around if you want to (e.g. to get it on a path without spaces).
1:33 AM Ticket #3 (DiffArray should be instance of Show) created by magunter
[…]

Sep 26, 2001:

4:27 PM Changeset in ghc [575853e3]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonpj <unknown>
[project @ 2001-09-26 16:27:04 by simonpj] Wibble
4:22 PM Changeset in ghc [1b2bd7d]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonpj <unknown>
[project @ 2001-09-26 16:22:04 by simonpj] Specialise reduce
4:19 PM Changeset in ghc [6858f7c]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonpj <unknown>
[project @ 2001-09-26 16:19:28 by simonpj] ------------------ Simon's big commit ------------------ [ These files seem to have been left out for some reason ] This commit, which I don't think I can sensibly do piecemeal, consists of the things I've been doing recently, mainly directed at making Manuel, George, and Marcin happier with RULES. Reogranise the simplifier ~~~~~~~~~~~~~~~~~~~~~~~~~ 1. The simplifier's environment is now an explicit parameter. This makes it a bit easier to figure out where it is going. 2. Constructor arguments can now be arbitrary expressions, except when the application is the RHS of a let(rec). This makes it much easier to match rules like RULES "foo" f (h x, g y) = f' x y In the simplifier, it's Simplify.mkAtomicArgs that ANF-ises a constructor application where necessary. In the occurrence analyser, there's a new piece of context info (OccEncl) to say whether a constructor app is in a place where it should be in ANF. (Unless it knows this it'll give occurrence info which will inline the argument back into the constructor app.) 3. I'm experimenting with doing the "float-past big lambda" transformation in the full laziness pass, rather than mixed in with the simplifier (was tryRhsTyLam). 4. Arrange that case (coerce (S,T) (x,y)) of ... will simplify. Previous it didn't. A local change to CoreUtils.exprIsConApp_maybe. 5. Do a better job in CoreUtils.exprEtaExpandArity when there's an error function in one branch. Phase numbers, RULES, and INLINE pragmas ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Phase numbers decrease from N towards zero (instead of increasing). This makes it easier to add new earlier phases, which is what users want to do. 2. RULES get their own phase number, N, and are disabled in phases before N. e.g. {-# RULES "foo" [2] forall x y. f (x,y) = f' x y #-} Note the [2], which says "only active in phase 2 and later". 3. INLINE and NOINLINE pragmas have a phase number to. This is now treated in just the same way as the phase number on RULE; that is, the Id is not inlined in phases earlier than N. In phase N and later the Id *may* be inlined, and here is where INLINE and NOINLINE differ: INLNE makes the RHS look small, so as soon as it *may* be inlined it probably *will* be inlined. The syntax of the phase number on an INLINE/NOINLINE pragma has changed to be like the RULES case (i.e. in square brackets). This should also make sure you examine all such phase numbers; many will need to change now the numbering is reversed. Inlining Ids is no longer affected at all by whether the Id appears on the LHS of a rule. Now it's up to the programmer to put a suitable INLINE/NOINLINE pragma to stop it being inlined too early. Implementation notes: * A new data type, BasicTypes.Activation says when a rule or inline pragma is active. Functions isAlwaysActive, isNeverActive, isActive, do the obvious thing (all in BasicTypes). * Slight change in the SimplifierSwitch data type, which led to a lot of simplifier-specific code moving from CmdLineOpts to SimplMonad; a Good Thing. * The InlinePragma in the IdInfo of an Id is now simply an Activation saying when the Id can be inlined. (It used to be a rather bizarre pair of a Bool and a (Maybe Phase), so this is much much easier to understand.) * The simplifier has a "mode" environment switch, replacing the old black list. Unfortunately the data type decl has to be in CmdLineOpts, because it's an argument to the CoreDoSimplify switch data SimplifierMode = SimplGently | SimplPhase Int Here "gently" means "no rules, no inlining". All the crucial inlining decisions are now collected together in SimplMonad (preInlineUnconditionally, postInlineUnconditionally, activeInline, activeRule). Specialisation ~~~~~~~~~~~~~~ 1. Only dictionary *functions* are made INLINE, not dictionaries that have no parameters. (This inline-dictionary-function thing is Marcin's idea and I'm still not sure whether it's a good idea. But it's definitely a Bad Idea when there are no arguments.) 2. Be prepared to specialise an INLINE function: an easy fix in Specialise.lhs But there is still a problem, which is that the INLINE wins at the call site, so we don't use the specialised version anyway. I'm still unsure whether it makes sense to SPECIALISE something you want to INLINE. Random smaller things ~~~~~~~~~~~~~~~~~~~~~~ * builtinRules (there was only one, but may be more) in PrelRules are now incorporated. They were being ignored before... * OrdList.foldOL --> OrdList.foldrOL, OrdList.foldlOL * Some tidying up of the tidyOpenTyVar, tidyTyVar functions. I've forgotten exactly what!
3:12 PM Changeset in ghc [e0d750b]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonpj <unknown>
[project @ 2001-09-26 15:12:33 by simonpj] ------------------ Simon's big commit ------------------ This commit, which I don't think I can sensibly do piecemeal, consists of the things I've been doing recently, mainly directed at making Manuel, George, and Marcin happier with RULES. Reogranise the simplifier ~~~~~~~~~~~~~~~~~~~~~~~~~ 1. The simplifier's environment is now an explicit parameter. This makes it a bit easier to figure out where it is going. 2. Constructor arguments can now be arbitrary expressions, except when the application is the RHS of a let(rec). This makes it much easier to match rules like RULES "foo" f (h x, g y) = f' x y In the simplifier, it's Simplify.mkAtomicArgs that ANF-ises a constructor application where necessary. In the occurrence analyser, there's a new piece of context info (OccEncl) to say whether a constructor app is in a place where it should be in ANF. (Unless it knows this it'll give occurrence info which will inline the argument back into the constructor app.) 3. I'm experimenting with doing the "float-past big lambda" transformation in the full laziness pass, rather than mixed in with the simplifier (was tryRhsTyLam). 4. Arrange that case (coerce (S,T) (x,y)) of ... will simplify. Previous it didn't. A local change to CoreUtils.exprIsConApp_maybe. 5. Do a better job in CoreUtils.exprEtaExpandArity when there's an error function in one branch. Phase numbers, RULES, and INLINE pragmas ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Phase numbers decrease from N towards zero (instead of increasing). This makes it easier to add new earlier phases, which is what users want to do. 2. RULES get their own phase number, N, and are disabled in phases before N. e.g. {-# RULES "foo" [2] forall x y. f (x,y) = f' x y #-} Note the [2], which says "only active in phase 2 and later". 3. INLINE and NOINLINE pragmas have a phase number to. This is now treated in just the same way as the phase number on RULE; that is, the Id is not inlined in phases earlier than N. In phase N and later the Id *may* be inlined, and here is where INLINE and NOINLINE differ: INLNE makes the RHS look small, so as soon as it *may* be inlined it probably *will* be inlined. The syntax of the phase number on an INLINE/NOINLINE pragma has changed to be like the RULES case (i.e. in square brackets). This should also make sure you examine all such phase numbers; many will need to change now the numbering is reversed. Inlining Ids is no longer affected at all by whether the Id appears on the LHS of a rule. Now it's up to the programmer to put a suitable INLINE/NOINLINE pragma to stop it being inlined too early. Implementation notes: * A new data type, BasicTypes.Activation says when a rule or inline pragma is active. Functions isAlwaysActive, isNeverActive, isActive, do the obvious thing (all in BasicTypes). * Slight change in the SimplifierSwitch data type, which led to a lot of simplifier-specific code moving from CmdLineOpts to SimplMonad; a Good Thing. * The InlinePragma in the IdInfo of an Id is now simply an Activation saying when the Id can be inlined. (It used to be a rather bizarre pair of a Bool and a (Maybe Phase), so this is much much easier to understand.) * The simplifier has a "mode" environment switch, replacing the old black list. Unfortunately the data type decl has to be in CmdLineOpts, because it's an argument to the CoreDoSimplify switch data SimplifierMode = SimplGently | SimplPhase Int Here "gently" means "no rules, no inlining". All the crucial inlining decisions are now collected together in SimplMonad (preInlineUnconditionally, postInlineUnconditionally, activeInline, activeRule). Specialisation ~~~~~~~~~~~~~~ 1. Only dictionary *functions* are made INLINE, not dictionaries that have no parameters. (This inline-dictionary-function thing is Marcin's idea and I'm still not sure whether it's a good idea. But it's definitely a Bad Idea when there are no arguments.) 2. Be prepared to specialise an INLINE function: an easy fix in Specialise.lhs But there is still a problem, which is that the INLINE wins at the call site, so we don't use the specialised version anyway. I'm still unsure whether it makes sense to SPECIALISE something you want to INLINE. Random smaller things ~~~~~~~~~~~~~~~~~~~~~~ * builtinRules (there was only one, but may be more) in PrelRules are now incorporated. They were being ignored before... * OrdList.foldOL --> OrdList.foldrOL, OrdList.foldlOL * Some tidying up of the tidyOpenTyVar, tidyTyVar functions. I've forgotten exactly what!
3:11 PM Changeset in ghc [5cd3527d]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonpj <unknown>
[project @ 2001-09-26 15:11:50 by simonpj] ------------------------------- Code generation and SRT hygiene ------------------------------- This is a big tidy up commit. I don't think it breaks anything, but it certainly makes the code clearer (to me). I'm not certain that you can use it without sucking in my other big commit... they come from the same tree. Core-to-STG, live variables and Static Reference Tables (SRTs) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I did a big tidy-up of the live-variable computation in CoreToStg. The key idea is that the live variables consist of two parts: dynamic live vars static live vars (CAFs) These two always travel round together, but they were always treated separately by the code until now. Now it's a new data type: type LiveInfo = (StgLiveVars, -- Dynamic live variables; -- i.e. ones with a nested (non-top-level) binding CafSet) -- Static live variables; -- i.e. top-level variables that are CAFs or refer to them There's lots of documentation in CoreToStg. Code generation ~~~~~~~~~~~~~~~ Arising from this, I found that SRT labels were stored in a LambdaFormInfo during code generation, whereas they *ought* to be in the ClosureInfo (which in turn contains a LambdaFormInfo). This led to lots of changes in ClosureInfo, and I took the opportunity to make it into a labelled record. Similarly, I made the data type in AbstractC a bit more explicit: -- C_SRT is what StgSyn.SRT gets translated to... -- we add a label for the table, and expect only the 'offset/length' form data C_SRT = NoC_SRT | C_SRT CLabel !Int{-offset-} !Int{-length-} (Previously there were bottoms lying around.)
1:42 PM Changeset in ghc [03aa2ef6]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by chak <unknown>
[project @ 2001-09-26 13:42:50 by chak] - split documentation off into a separate package - adapt to new docbook setup in RH7.1
1:18 PM Changeset in ghc [f488c31]ghc-7.8wip/Cabal-1.20wip/T8545-ghc-7.8wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/coveritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compat by simonmar <unknown>
[project @ 2001-09-26 13:18:45 by simonmar] add CmdParser.hs to CLEAN_FILES
1:18 PM Changeset in testsuite [aa5264f]at-defaultsatomicsdata-kind-syntaxencodingghc-7.2ghc-7.4ghc-7.6ghc-deferghc-new-comonad-compno-pred-tyoverlapping-tyfamspatch-4404patch-5014patch-5084tc-untouchablesth-newtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/nested-cprwip/pattern-synonymswip/th-new by simonmar <unknown>
[project @ 2001-09-26 13:18:45 by simonmar] add CmdParser.hs to CLEAN_FILES
11:44 AM Changeset in ghc [a355da9a]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by rrt <unknown>
[project @ 2001-09-26 11:44:30 by rrt] Make the print stylesheet generate a TOC for sets (so the PDF manual has a front TOC indicating that it contains both the user's guide and libraries guide). A simple question with a simple answer; how refreshing.
10:38 AM Changeset in ghc [e8ec5846]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonmar <unknown>
[project @ 2001-09-26 10:38:02 by simonmar] ENODEV should really be an UnsupportedOperation, not NoSuchThing.
10:35 AM Changeset in ghc [0ea9ecaf]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonmar <unknown>
[project @ 2001-09-26 10:35:41 by simonmar] A failure while trying to set O_NONBLOCK on a file descriptor should be a non-fatal error. It turns out that on FreeBSD it is an error (ENODEV) to try to set O_NONBLOCK on /dev/null. MERGE TO STABLE
9:42 AM Changeset in ghc [1f3cfb2]ghc-7.8wip/Cabal-1.20wip/T8545-ghc-7.8wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/coveritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compat by simonmar <unknown>
[project @ 2001-09-26 09:42:12 by simonmar] add test for unterminated nested comments
9:42 AM Changeset in testsuite [801852a6]at-defaultsatomicsdata-kind-syntaxencodingghc-7.2ghc-7.4ghc-7.6ghc-deferghc-new-comonad-compno-pred-tyoverlapping-tyfamspatch-4404patch-5014patch-5084tc-untouchablesth-newtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/nested-cprwip/pattern-synonymswip/th-new by simonmar <unknown>
[project @ 2001-09-26 09:42:12 by simonmar] add test for unterminated nested comments
9:41 AM Changeset in ghc [2c91067]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonmar <unknown>
[project @ 2001-09-26 09:41:26 by simonmar] Let's try that last commit again, and get it right this time...
9:16 AM Changeset in ghc [6e554967]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonmar <unknown>
[project @ 2001-09-26 09:16:00 by simonmar] When skipping a nested comment, keep track of the source location of the comment opener, so that we can report it in an error message rather than reporting the line at the end of the file. Also noticed a couple of ineficiencies in the nested comment code, so fixed those too.
8:59 AM Changeset in ghc [159b120]at-defaultsatomicsbetter-ho-cardinalitycardinalitycoerciblecoloured-corecpr-sum-typescrosscross-compiler-alienlessdata-kind-syntaxdecision-procedureencodingghc-7.2ghc-7.4ghc-7.6ghc-7.8ghc-axiomsghc-constraint-solverghc-deferghc-lwc2ghc-new-coghc-new-flavorghc-parmake-gsocghc-spjimp-param-classknown-key-serializationlate-dmdlate-lam-liftlocal-gcmonad-compnew-demand-to-mergenewcgno-pred-tyoverlapping-tyfamsprofilingreal-src-loc-spansdocsilent-sc-argssimdsrclocsupercompilertc-arrowstc-untouchablesth-newth-new-7.6ticky-for-all-letstype-holes-branchtype-natstype-nats-simpleunboxed-tuple-argumentsunboxed-tuple-arguments2wip/Cabal-1.20wip/T4404wip/T5084wip/T7704wip/T8545-ghc-7.8wip/T8592wip/T8776wip/T8995-level-generalisationwip/T9016wip/ampwip/cbv-conv-thunkwip/common-contextwip/coveritywip/cpr-vs-jpwip/exprAritywip/nested-cprwip/orfwip/pattern-synonymswip/recurs-compatwip/simdwip/th-new by simonmar <unknown>
[project @ 2001-09-26 08:59:42 by simonmar] Add the text about ForeignPtr vs. Ptr
Note: See TracTimeline for information about the timeline view.