1. 20 Sep, 2001 3 commits
    • simonpj's avatar
      [project @ 2001-09-20 12:15:20 by simonpj] · 2705a8d8
      simonpj authored
      Add debug stuff (no need to merge to stable branch)
      2705a8d8
    • simonpj's avatar
      [project @ 2001-09-20 12:14:31 by simonpj] · ab061892
      simonpj authored
      ------------------------------------------------
      	Make code generation ignore isLocalId/isGlobalId
      	------------------------------------------------
      
      	MERGE WITH STABLE BRANCH
      
      CorePrep may introduce some new, top-level LocalIds.  This
      breaks an invariant that the core2stg/code generator passes
      occasionally used, namely that LocalIds are not top-level bound.
      
      This commit fixes that problem.
      
      It also removes an assert from CodeGen.cgTopRhs that asks
      for the CgInfo of such new LocalIds -- but they may (legitimately)
      not have any, so it was a bad ASSERT.  [Showed up in George
      Russel's system.]
      ab061892
    • simonpj's avatar
      [project @ 2001-09-20 08:47:13 by simonpj] · 2c250999
      simonpj authored
      ------------------------------
      	Fix a scoped-type-variable bug
      	------------------------------
      
      	MERGE WITH STABLE BRANCH
      
      The bug caused an incorrect failure when the same type
      variable was used more than once in a collection of patterns:
      
      	f (x :: t) (y :: t) = e
      
      On the way, I eliminated bindNakedTyVarsFVRn, which was only
      called once.
      2c250999
  2. 19 Sep, 2001 2 commits
  3. 18 Sep, 2001 5 commits
  4. 17 Sep, 2001 12 commits
    • ken's avatar
      [project @ 2001-09-17 22:46:59 by ken] · 99f27d09
      ken authored
      The size of a large bitmap is in number of (32- or 64-bit) words,
      not 32-bit words. MERGE TO STABLE
      99f27d09
    • rrt's avatar
      [project @ 2001-09-17 17:40:10 by rrt] · aafccd38
      rrt authored
      Update License not to have a blank line at the start and announce to look
      tidier (but it's still not v5.02).
      
      PLEASE MERGE
      aafccd38
    • sewardj's avatar
      [project @ 2001-09-17 17:23:32 by sewardj] · 2a15c00a
      sewardj authored
      Fix utterly bogus implementation of system on Windoze.
      2a15c00a
    • simonmar's avatar
      [project @ 2001-09-17 16:51:55 by simonmar] · 50cc9c13
      simonmar authored
      More small performance improvements
      50cc9c13
    • simonmar's avatar
      [project @ 2001-09-17 16:21:41 by simonmar] · 14856043
      simonmar authored
      Subvert GHC's full-laziness optimisation by explicitly lambda-lifting
      a local lambda expression to the top level, and exporting it to ensure
      it doesn't get inlined.  Without this hack, full-laziness will float
      out several subexpressions, which turns out to be a pessimisation in
      this case.
      
      This is worth about 20% in hPutStr performance, so we now beat the old
      I/O library on 'cat' ;-)
      
      I'd like to MERGE TO STABLE this, but 5.02 is imminent so it might
      have to wait until 5.02.1.
      14856043
    • simonmar's avatar
      [project @ 2001-09-17 14:58:09 by simonmar] · a3b0f2a6
      simonmar authored
      Fix a couple more cut-n-pastos in the line-buffered version of
      hPutStr.  Also fill in the export list while I'm here.
      
      MERGE TO STABLE
      a3b0f2a6
    • sewardj's avatar
      [project @ 2001-09-17 13:46:26 by sewardj] · f33a892d
      sewardj authored
      Give a fixity declaration for seq.
      f33a892d
    • sewardj's avatar
      [project @ 2001-09-17 12:12:31 by sewardj] · 5e1cb7db
      sewardj authored
      Update for 5.02.
      
      MERGE TO STABLE
      5e1cb7db
    • simonpj's avatar
      [project @ 2001-09-17 10:35:46 by simonpj] · 0240235f
      simonpj authored
      Bogon in defn of seq (caused lint error in PrelIO)
      0240235f
    • rrt's avatar
      [project @ 2001-09-17 09:52:21 by rrt] · 7d0b7002
      rrt authored
      The list of steps to go through when making an InstallShield. This
      forms the basis of what needs to be automated in make install after
      the 5.02 release.
      7d0b7002
    • simonmar's avatar
      [project @ 2001-09-17 09:51:23 by simonmar] · 488d5cc3
      simonmar authored
      Knock the FFI documentation into some sort of shape for the release:
      
      - The blurb about "the FFI is in two/three parts..." was repeated in
        three places.  We also at some point seem to have lost the property
        that the FFI spec is a self-contained document; I don't try to fix
        that here, since we're going to replace it with the new spec at some
        point.
      
      - Replace references to Addr and ForeignObj with Ptr and ForeignPtr.
      
      - Remove mentions of GHC's ByteArray and MutableByteArray types, as
        these are deprecated and will be removed in a couple of versions.
        (mostly subsumed by allocaBytes and friends).
      
      - Catch up with GHC's removal of the library specification from foreign
        import.  Mention that libraries are specified in a compiler-dependent
        way now, and that GHC uses either packages or command-line opts for
        this.
      
      - Fix up some markup.
      488d5cc3
    • sewardj's avatar
      [project @ 2001-09-17 09:28:01 by sewardj] · 349d9b53
      sewardj authored
      primRepToSize: for PrimReps which we don't know how to handle,
      abort compilation and advise user to use -fvia-C, rather than
      continuing with a bogus Size which may silently cause incorrect
      code to be generated.
      
      MERGE TO STABLE
      349d9b53
  5. 15 Sep, 2001 1 commit
  6. 14 Sep, 2001 10 commits
    • qrczak's avatar
      [project @ 2001-09-14 16:54:13 by qrczak] · 1c89aa7f
      qrczak authored
      Make -c actually working (as --cc).
      1c89aa7f
    • sewardj's avatar
      [project @ 2001-09-14 16:01:20 by sewardj] · e4fd7364
      sewardj authored
      Update version to 5.02.
      
      MERGE TO STABLE
      e4fd7364
    • simonmar's avatar
      [project @ 2001-09-14 15:56:40 by simonmar] · 0346ecd9
      simonmar authored
      Document how to use "foreign export" with GHC, including how to call
      startupHaskell()/shutdownHaskell() when providing your own main().
      0346ecd9
    • sewardj's avatar
      [project @ 2001-09-14 15:53:41 by sewardj] · c60660d1
      sewardj authored
      merge rev 1.47.2.1:
      
      * typo ('-help' -> '--help')
      c60660d1
    • simonpj's avatar
      [project @ 2001-09-14 15:51:41 by simonpj] · 5ab261bb
      simonpj authored
      --------------------------
      	Add a rule-check pass
      	(special request by Manuel)
      	--------------------------
      
      	DO NOT merge with stable
      
      The flag
      
      	-frule-check foo
      
      will report all sites at which RULES whose name starts with "foo.."
      might apply, but in fact the arguments don't match so the rule
      doesn't apply.
      
      The pass is run right after all the core-to-core passes.  (Next thing
      to do: make the core-to-core script external, so you can fiddle with
      it.  Meanwhile, the core-to-core script is in
      	DriverState.builCoreToDo
      so you can move the CoreDoRuleCheck line around if you want.
      
      The format of the report is experimental: Manuel, feel free to fiddle
      with it.
      
      Most of the code is in specialise/Rules.lhs
      
      
      Incidental changes
      ~~~~~~~~~~~~~~~~~~
      Change BuiltinRule so that the rule name is accessible
      without actually successfully applying the rule.  This
      change affects quite a few files in a trivial way.
      5ab261bb
    • simonpj's avatar
      [project @ 2001-09-14 15:49:56 by simonpj] · 74a395c2
      simonpj authored
      -----------------
      	Make seq built in
      	-----------------
      
      	DO NOT merge with stable
      
      Until this commit 'seq' used a cunning hack so that it
      seems to be *non-strict* in its second argument:
      
        seq x y = case seq# x of { 0 -> y; other -> error "urk" }
      
      The reason for this is to make sure that x is evaluated before y,
      which is what you want in a parallel setting.
      
      But in a *sequential* settting, this simply destroys strictness
      information about y.  Now that people are starting to use seq more,
      this is becoming painful.  People sometimes use seq to make their
      function strict, and are surprised when it becomes non-strict in other
      arguments!
      
      So this commit changes seq so that it does what you would naively
      expect:
      
      	seq x y = case x of { any -> y }
      
      This is done by making seq built-in, defined along with
      	unsafeCoerce
      	getTag
      
      in MkId.lhs.  (I considered giving their unfoldings in
      PrelGHC.hi-boot.pp, but then there is the matter of making sure they
      are unfolded, since these fns don't have top-level curried defns,
      so I held off and did seq the same way as the other two.)
      
      I renamed PrelConc.seq as PrelConc.pseq; maybe its name will change
      to `then` or `before` or something else.  That's up to the GPH
      folk.
      74a395c2
    • simonpj's avatar
      [project @ 2001-09-14 15:45:53 by simonpj] · fd4b0e84
      simonpj authored
      Add comments
      fd4b0e84
    • simonpj's avatar
      [project @ 2001-09-14 15:44:13 by simonpj] · 3063cb3d
      simonpj authored
      --------------------------
      	Cleanup in DataCon
      	--------------------------
      
      	DO NOT merge with stable
      
      The dataConRepStrictness call used to reuturn a [Demand],
      but that's a bit misleading.  In particular, consider a  strict
      constructor
      
      	data Foo = MkFoo ![Int]
      
      Then the wrapper MkFoo is strict, but the worker $wMkFoo is not.
      
      	MkFoo x = case x of { DEFAULT -> $wMkFoo x }
      
      Nevertheless, when we pattern-match on $wMkFoo we will surely
      find an evaluated component to the data structure, and that is
      what dataConRepStrictness reports, and that's how it is used
      in Simplify.
      
      Solution: make dataConRepStrictness return [StrictnessMark]
      not [Demand]. A small matter really.
      3063cb3d
    • simonmar's avatar
      [project @ 2001-09-14 14:51:06 by simonmar] · 7849c8aa
      simonmar authored
      oops: hPutStr wasn't flushing a line-buffered handle properly at the
      end of a line.
      
      MERGE TO STABLE
      7849c8aa
    • sewardj's avatar
      [project @ 2001-09-14 13:52:21 by sewardj] · 2a9e20e3
      sewardj authored
      Make rotate fns work properly when rotate count is a multiple of the
      word size.  This fixes sparc failures in
      ghc-regress/numeric/should_run/arith011.  Also fix some
      copy-and-paste-o-s.Killed by signal 2.
      
      MERGE TO STABLE
      2a9e20e3
  7. 13 Sep, 2001 2 commits
  8. 12 Sep, 2001 5 commits
    • sewardj's avatar
      [project @ 2001-09-12 15:52:40 by sewardj] · 7a846c96
      sewardj authored
      merge (ghc-5-02-branch --> HEAD):
      
      Bugfix: there was an implicit assumption that the list of slots passed
      to freeStackSlots was already sorted, whereas in fact this wasn't the
      case for at least one call.  Now we explicitly sort the list in
      freeStackSlots, removing the hidden assumption.
      
      The symptoms of this bug include crashes (perhaps the "AsmCodeGen"
      crash), and a tendency to grow the stack a lot when let-no-escapes are
      involved (because the bug caused fragmentation of the stack free list,
      so we weren't re-using free slots properly).
        1.17.2.1  +3 -2      fptools/ghc/compiler/codeGen/CgStackery.lhs
      
      
      ASSERT that the list of stack slots we calculate in buildLivenessMask
      is sorted, because we rely on that property later.
        1.38.2.1  +5 -6      fptools/ghc/compiler/codeGen/CgBindery.lhs
      7a846c96
    • sewardj's avatar
      [project @ 2001-09-12 14:53:39 by sewardj] · 2db150e8
      sewardj authored
      Redo half-arsed hacks to do with BSS symbols on ELF.  Hopefully get it
      right this time.
      
      MERGE TO STABLE
      2db150e8
    • rrt's avatar
      [project @ 2001-09-12 11:52:58 by rrt] · 5d5ed999
      rrt authored
      Do the ifdefery properly so it works on Unix.
      5d5ed999
    • rrt's avatar
      [project @ 2001-09-12 11:24:18 by rrt] · f758b94f
      rrt authored
      Updated to new directory structure (no extra-bin), and with all the right
      binaries in bin.
      f758b94f
    • rrt's avatar
      [project @ 2001-09-12 11:16:05 by rrt] · 7748154b
      rrt authored
      Make hsc2hs find template-hsc.h on Windows. This involves putting Main.hs
      through cpp; to avoid the string gap problem preprocessing
      __GLASGOW_HASKELL__ into its value inside strings, make judicious use of ++
      (hope that's OK, Marcin; there seemed very little point in putting it all in
      KludgedSystem this time).
      7748154b