1. 17 Sep, 2001 7 commits
    • 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.
    • sewardj's avatar
      [project @ 2001-09-17 13:46:26 by sewardj] · f33a892d
      sewardj authored
      Give a fixity declaration for seq.
    • sewardj's avatar
      [project @ 2001-09-17 12:12:31 by sewardj] · 5e1cb7db
      sewardj authored
      Update for 5.02.
    • 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)
    • 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.
    • 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
      - 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
      - Fix up some markup.
    • 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.
  2. 15 Sep, 2001 1 commit
  3. 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).
    • sewardj's avatar
      [project @ 2001-09-14 16:01:20 by sewardj] · e4fd7364
      sewardj authored
      Update version to 5.02.
    • 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().
    • sewardj's avatar
      [project @ 2001-09-14 15:53:41 by sewardj] · c60660d1
      sewardj authored
      merge rev
      * typo ('-help' -> '--help')
    • 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
      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.
    • 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
      So this commit changes seq so that it does what you would naively
      	seq x y = case x of { any -> y }
      This is done by making seq built-in, defined along with
      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
    • simonpj's avatar
      [project @ 2001-09-14 15:45:53 by simonpj] · fd4b0e84
      simonpj authored
      Add comments
    • 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
      	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.
    • 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.
    • 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.
  4. 13 Sep, 2001 2 commits
  5. 12 Sep, 2001 8 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).  +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.  +5 -6      fptools/ghc/compiler/codeGen/CgBindery.lhs
    • 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.
    • rrt's avatar
      [project @ 2001-09-12 11:52:58 by rrt] · 5d5ed999
      rrt authored
      Do the ifdefery properly so it works on Unix.
    • 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.
    • 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).
    • qrczak's avatar
      [project @ 2001-09-12 11:05:34 by qrczak] · 0a277a76
      qrczak authored
      Fix comment.
    • qrczak's avatar
      [project @ 2001-09-12 10:22:19 by qrczak] · e4f6c050
      qrczak authored
      Fix creating HSstd.o.
    • qrczak's avatar
      [project @ 2001-09-12 05:52:13 by qrczak] · 2b4f6d6b
      qrczak authored
      Don't exclude PrelMain.o from libHSstd.a.
  6. 11 Sep, 2001 3 commits
    • rje's avatar
      [project @ 2001-09-11 11:13:22 by rje] · 88f53e66
      rje authored
      hasktags is now built as part of the standard build process.
    • simonpj's avatar
      [project @ 2001-09-11 09:02:43 by simonpj] · 630659b5
      simonpj authored
      	Strictness of blockAsynch
      If we're going to supply strictness info for blockAsynchExceptions#,
      it should match its arity (as other State# transformers do).
    • simonpj's avatar
      [project @ 2001-09-11 08:18:16 by simonpj] · 3ea73c48
      simonpj authored
      	More demand-info fixes
      There are a handful of functions in IdInfo that zap the
      demand-info stored in an Id.  Alas, they were zapping the
      *old* demand-info not the new one.  (The old one is still
      there for comparison purposes.)  So we were getting some
      spurious warnings and (more seriously) potentially some
      incorrect strictness.  Easily fixed though.
  7. 10 Sep, 2001 7 commits
    • simonmar's avatar
      [project @ 2001-09-10 16:48:10 by simonmar] · 978840b5
      simonmar authored
      Sync the documentation with the extra-bin removal.
    • simonmar's avatar
      [project @ 2001-09-10 12:57:59 by simonmar] · b3cc4468
      simonmar authored
      oops, revert accidental commit
    • simonmar's avatar
      [project @ 2001-09-10 12:57:25 by simonmar] · 2cfbbcca
      simonmar authored
      good riddance
    • simonmar's avatar
      [project @ 2001-09-10 12:53:21 by simonmar] · ec2ccca2
      simonmar authored
      Remove the "extra-bin" subdirectory from $(libexecdir), since there
      are too many assumptions in the tree that $(libexecdir) == $(libdir)
      (at the moment, binary dists are fairly well broken).
      Reuben has promised to track the change in the Windows distribution.
    • rje's avatar
      [project @ 2001-09-10 10:07:21 by rje] · 8d367f60
      rje authored
      Fixed a bug in TICKY_TICKY profiling.
      Previously, the TICK_ENT_DIRECT event was logged before the heap/stack
      check was done. As a result, if the check failed, the TICK_ENT_DIRECT
      event would be logged a second time, causing TICKY_TICKY to give innacurate
      This patch shouldn't have any affect on non-ticky compilation.
      Also changed the modified bit of code to use "do" notation, and so look a bit
    • simonpj's avatar
      [project @ 2001-09-10 07:25:17 by simonpj] · c51b55b8
      simonpj authored
      Fix ungramatical error message
    • simonpj's avatar
      [project @ 2001-09-10 07:24:09 by simonpj] · 2aa5738f
      simonpj authored
      	Fix a strictness bug in the simplifier
      This one has been there a long time, but hasn't bitten till
      now.  We should never float a let that is marked "sure to be
      evaluated" out of a let.  It shouldn't happen, and there was
      a warning to check, but the warning cried 'wolf' too often, so
      we have generally ignored it. But the wolf called for supper,
      when compiling spectral/expert with profiling on.
      The fix is simple too:
      	* use exprIsValue not exprIsCheap as the test
      	* move the warning, so it doesn't cry wolf
      Documentation with Simplify.simplRhs.
      On the way, I'm going to conmmit a change in the same module,
      which keeps unfolding info on lambda-bound variables.  This
      improves the elimination of cases when the wrapper does the
      'seq' -- then the worker gets to know that the arg is evaluated.
  8. 08 Sep, 2001 2 commits
    • ken's avatar
      [project @ 2001-09-08 22:40:38 by ken] · 8968073e
      ken authored
      Make the binary distribution configure recognize alphaev56-dec-osf5.
    • sof's avatar
      [project @ 2001-09-08 21:42:07 by sof] · ec2e177f
      sof authored
      Remove ugly special casing - if you want to turn off the
      default rule for GHCI_LIBRARY, set DONT_WANT_STD_GHCI_LIB_RULE
      to YES in your Makefile prior to including $(TOP)/mk/target.mk
      ghc/lib/std and hslibs/win32 both do this now on mingw32.