1. 20 Mar, 2003 4 commits
  2. 19 Mar, 2003 5 commits
  3. 18 Mar, 2003 3 commits
    • simonmar's avatar
      [project @ 2003-03-18 14:36:56 by simonmar] · 428c025e
      simonmar authored
      Fix a profiling crash on Windows.
      fprint_ccs used snprintf() to avoid overflowing a buffer; on mingw32
      where snprintf() doesn't exist we were just using the straight
      sprintf(), which inevitably lead to a crash.  Rewritten to use a
      homegrown non-overflowing string copying function - it actually looks
      nicer now, anwyay.
    • simonmar's avatar
      [project @ 2003-03-18 10:28:15 by simonmar] · c1d0aa93
      simonmar authored
      This should have been committed along with rev. 1.36 of Main.c (and
      others) yesterday, but for some reason it got left out.
      Change the way Main.main is run, so it now doesn't force the return
      value.  Now 'main = return undefined' will run and exit successfully.
      The change affects finalizers too - but since they have type IO (), it
      won't do any harm not to evaluate the ().
    • simonmar's avatar
      [project @ 2003-03-18 10:12:37 by simonmar] · aa448d76
      simonmar authored
      Fix wibble in previous commit (fixes broken bootstrap)
  4. 17 Mar, 2003 2 commits
    • simonmar's avatar
      [project @ 2003-03-17 14:51:00 by simonmar] · 1f6eb553
      simonmar authored
      Fix for lexing of floating point numbers.  '9e2' should be a float.
      Noticed-by: Ross Paterson.
    • simonmar's avatar
      [project @ 2003-03-17 14:47:47 by simonmar] · 74b46a5d
      simonmar authored
      Haskell quiz:  what should this program do?
        main = return undefined
      answer: run to completion and exit successfully.  GHC erroneously
      evaluates the returned value from main, which causes this example to
      fail with an uncaught exception (the evaluation is even done outside
      of the main exception handler!).
  5. 16 Mar, 2003 1 commit
  6. 14 Mar, 2003 1 commit
  7. 11 Mar, 2003 6 commits
  8. 10 Mar, 2003 3 commits
    • simonmar's avatar
      [project @ 2003-03-10 13:27:34 by simonmar] · bda047d0
      simonmar authored
      Use STK_CHK_NP rather than STK_CHK_GEN in the entry code for AP and
      AP_STACK thunks.
      The reason is that if the check fails, on return the closure might
      have been blackholed (perhaps due to lazy blackholing, or even because
      another thread has entered it), so we *must* enter the closure to
      continue, rather than just continuing at the original entry point.
      All compiler-generated thunks do this anyway, I think these are the
      only cases of thunks which don't follow the rule.
      Thanks to Robert Ennals for spotting, and correctly diagnosing, the
    • stolz's avatar
      [project @ 2003-03-10 12:48:10 by stolz] · 4e25c045
      stolz authored
      Fix typo
    • umuta's avatar
      [project @ 2003-03-10 10:30:26 by umuta] · 3c709aa7
      umuta authored
      Fix compilation problem on mingw32
  9. 07 Mar, 2003 4 commits
  10. 06 Mar, 2003 5 commits
  11. 05 Mar, 2003 1 commit
    • simonmar's avatar
      [project @ 2003-03-05 10:22:22 by simonmar] · 9a1114e3
      simonmar authored
      Duh.  hsc2hs should be in $(GhcBinDistShScripts), not
      $(GhcBinDistBins), otherwise it doesn't get the right directories
      tacked on the front at installation time.  Strange that nobody
      complained that hsc2hs wasn't working from a binary dist *shrug*.
  12. 04 Mar, 2003 3 commits
  13. 03 Mar, 2003 2 commits
    • simonmar's avatar
      [project @ 2003-03-03 12:43:31 by simonmar] · 19108ede
      simonmar authored
      A round of space-leak fixing.
        - re-instate zapping of the PersistentCompilerState at various
          points during the compilation cycle in HscMain.  This affects
          one-shot compilation only, since in this mode the information
          collected in the PCS is not required after creating the final
          interface file.
        - Unravel the recursive dependency between MkIface and
          CoreTidy/CoreToStg.  Previously the CafInfo for each binding was
          calculated by CoreToStg, and fed back into the IdInfo of the Ids
          generated by CoreTidy (an earlier pass).  MkIface then took this
          IdInfo and the bindings from CoreTidy to generate the interface;
          but it couldn't do this until *after* CoreToStg, because the CafInfo
          hadn't been calculated yet.  The result was that the CoreTidy
          output lived until after CoreToStg, and at the same time as the
          CorePrep and STG syntax, which is wasted space, not to mention
          the complexity and general ugliness in HscMain.
          So now we calculate CafInfo directly in CoreTidy.  The downside is
          that we have to predict what CorePrep is going to do to the
          bindings so we can tell what will turn into a CAF later, but it's
          no worse than before (it turned out that we were doing this
          prediction before in CoreToStg anyhow).
        - The typechecker lazilly typechecks unfoldings.  It turns out that
          this is a good idea from a performance perspective, but it also
          means that it must hang on to all the information it needs to
          do the typechecking.  Previously this meant holding on to the
          whole of the typechecker's environment, which includes all sorts
          of stuff which isn't necessary to typecheck unfoldings.  By paring
          down the environment captured by the lazy unfoldings, we can
          save quite a bit of space in the phases after typechecking.
    • simonmar's avatar
      [project @ 2003-03-03 12:31:55 by simonmar] · 1b2e253b
      simonmar authored
      Use listArray rather than array in (un)?boxedTupleArr.