1. 08 Feb, 2001 2 commits
  2. 07 Feb, 2001 18 commits
  3. 06 Feb, 2001 14 commits
    • simonmar's avatar
      [project @ 2001-02-06 17:31:00 by simonmar] · 787f3286
      simonmar authored
      Qualified names on the command line may now refer to any exported
      entity from any module, not just entities from the "original" defining
      module.
      
      eg. "IO.hFlush IO.stdout" now works.
      
      There's still a problem in that home interfaces may be demand-loaded
      if they're aren't already in memory, which is wrong (you can refer to
      a module which isn't loaded, causing things to fall over at link
      time).
      787f3286
    • simonmar's avatar
      [project @ 2001-02-06 16:22:12 by simonmar] · bb14c2af
      simonmar authored
      allow comments on the command line: convenient in scripts
      bb14c2af
    • simonmar's avatar
      [project @ 2001-02-06 14:44:53 by simonmar] · 74b7f537
      simonmar authored
      strdup(), and later free(), the filename passed in via loadObj.
      
      Yet another bug bites the dust.
      74b7f537
    • simonmar's avatar
      [project @ 2001-02-06 14:01:22 by simonmar] · 041211f0
      simonmar authored
      oops, filterNameMap was the wrong way around (or I was using wrong).
      It should *keep* the named modules, not throw them away.
      041211f0
    • simonmar's avatar
      [project @ 2001-02-06 12:27:57 by simonmar] · 4139fc0c
      simonmar authored
      oops, forgot to remove the object from the linked list when we unload it.
      4139fc0c
    • sewardj's avatar
      [project @ 2001-02-06 12:09:42 by sewardj] · 0a49cf2e
      sewardj authored
      Check the context_switch flag and yield if set, so that interpreted
      code behaves properly in a multi(haskell)threaded environment.
      0a49cf2e
    • simonmar's avatar
      [project @ 2001-02-06 12:03:10 by simonmar] · 0ed9d260
      simonmar authored
      Try to get the stable modules story right.  Things now work much
      better: objects aren't unloaded and reloaded unnecessarily, and
      compiling modules from with GHCi works:
      
      	> :! ghc -c A.hs
      	> :r
      	Compiling A ... compilation IS NOT required (using ./A.o)
      	Compiling B ... compilation IS NOT required
      	Compiling C ... compilation IS NOT required
      	Compiling Main ... compilation IS NOT required
      
      Compiled module must not depend on interpreted modules, but we
      currently don't enforce this restriction properly.
      0ed9d260
    • sewardj's avatar
      [project @ 2001-02-06 12:02:05 by sewardj] · 1e57367c
      sewardj authored
      Implement implicit and explicit stack checks.  For details, see recent
      commit message for ghc/compiler/ghci/ByteCodeGen.lhs.
      1e57367c
    • sewardj's avatar
      [project @ 2001-02-06 12:01:00 by sewardj] · ac3eab71
      sewardj authored
      Add bci_STKCHECK and INTERP_STACK_CHECK_THRESH.
      ac3eab71
    • sewardj's avatar
      [project @ 2001-02-06 12:00:17 by sewardj] · 3a8cc90c
      sewardj authored
      Support stack overflow checks in interpreted code.  The deal is:
      * If a BCO is reckoned to need less than iNTERP_STACK_CHECK_THRESH
        words of stack, no stack check insn is added.
      * If a BCO needs >= iNTERP_STACK_CHECK_THRESH words, an explicit
        check insn is added.
      
      The interpreter ensures at least iNTERP_STACK_CHECK_THRESH words of
      stack are available before running each BCO, regardless of whether or
      not the BCO contains an explicit check insn too.
      
      By setting iNTERP_STACK_CHECK_THRESH to a suitably large level
      (currently 50), most BCOs only require the implicit stack check, which
      avoids the overhead of decoding one extra insn per BCO.  BCOs which do
      have a stack check insn then do 2 stack checks rather than 1
      (implicit, then explicit), but this is rare enough that we don't care.
      3a8cc90c
    • simonmar's avatar
      [project @ 2001-02-06 11:57:30 by simonmar] · 86cce087
      simonmar authored
      - CAF reversion:  CAFs are reverted on a load or reload.  They can
        optionally be reverted after every evaluation, with :set +r.
      
      - we now compile the "hFlush stdout/stderr" expressions once and
        for all at startup, and just run them after each evaluation.  This
        has the pleasant side effect of causing the Prelude to be read in
        before any expressions are typed, causing GHCi to seem more
        responsive.
      86cce087
    • simonmar's avatar
      [project @ 2001-02-06 11:42:30 by simonmar] · d1430fb5
      simonmar authored
      urk! when showing a handle, we don't replace the MVar.  For example,
      the following test causes a deadlock:
      
      	main = do
      	  getContents
      	  catch getChar (\e -> print e >> return 'x')
      	  catch getChar (\e -> print e >> return 'x')
      
      To be merged into 4.08.
      d1430fb5
    • rrt's avatar
      [project @ 2001-02-06 11:41:04 by rrt] · 839930a0
      rrt authored
      Corrected comment according to code.
      839930a0
    • sewardj's avatar
      [project @ 2001-02-06 10:37:23 by sewardj] · 6ef1f789
      sewardj authored
      When linking a bytecode module, only add top-level (isGlobalName)
      bindings into the returned augmented closure env.
      6ef1f789
  4. 05 Feb, 2001 6 commits