1. 21 Mar, 2001 2 commits
    • sewardj's avatar
      [project @ 2001-03-21 11:17:00 by sewardj] · 7c98178c
      sewardj authored
      Implement tagToEnum# for the bytecode system.  Blargh.  We spot tail-calls
         tagToEnum# <type> arg
      and emit code to push the arg, then do a bytecode test-sequence to
      determine what value it is, push the relevant constructor, and merge
      control flow again, at a label which does the normal tail-call
      sequence: slide the constructor down to the sequel and enter it.
      Blargyle, or as some would say, barferama.
    • sewardj's avatar
      [project @ 2001-03-21 10:56:04 by sewardj] · 44f0f21f
      sewardj authored
      RTS support for the ugly tagToEnum# hack.  Actually a very general
      thing -- just a bytecode unconditional jump, so we can do more general
      control-flow in BCOs.
  2. 20 Mar, 2001 18 commits
  3. 19 Mar, 2001 13 commits
    • sewardj's avatar
      [project @ 2001-03-19 18:23:45 by sewardj] · 3f3e085e
      sewardj authored
      Don't create an installation-time Makefile (target binary-dist).
    • sewardj's avatar
      [project @ 2001-03-19 18:15:59 by sewardj] · 8102db86
      sewardj authored
      Basic support for the simplified installation story.
    • simonpj's avatar
      [project @ 2001-03-19 16:26:09 by simonpj] · e9c3ce32
      simonpj authored
      Comments only
    • simonpj's avatar
      [project @ 2001-03-19 16:24:37 by simonpj] · 33aac1f9
      simonpj authored
      	Be more eager to inline for an applied coerce
      Given this:
      	(coerce T f) x y
      SimplUtils.interestingCallContext was returning False (uninteresting
      call context).  This is wrong: it's a very intersting context.  
      Darn those coerces!  They are scheduled for destruction, but meanwhile,
      this makes matters a bit better.
    • simonpj's avatar
      [project @ 2001-03-19 16:22:51 by simonpj] · a7dff32d
      simonpj authored
      	Be more careful about floating out from  INLINE pragmas
      Given this:
      	x = __inline__ (f (g y))
      we were floating the (g y) out as a MFE, thus:
      	lvl = g y
      	x = __inline__ (f lvl)
      This is bad.  The (g y) redex gets outside the __inline__ envelope, 
      and may never get inlined. 
      The solution involved a bit of fiddling in SetLevels.
    • simonmar's avatar
      [project @ 2001-03-19 16:22:00 by simonmar] · dd4bc7ed
      simonmar authored
      Fix a problem with the 'it' variable in GHCi.  New bindings for 'it'
      were getting confused with old bindings, because we always used the
      same 'it' name.
      Now, we generate a new unique for 'it' each time around.
      Also, make sure that any existing variables shadowed by new
      command-line bindings are correctly removed from the environments to
      avoid space leaks.
    • simonpj's avatar
      [project @ 2001-03-19 16:20:44 by simonpj] · 4fb9c8aa
      simonpj authored
      	Be more gung-ho about INLINE pragmas
      When we see 
      	{-# INLINE f #-}
      	f = g $ h
      should we inline f inside a lambda?  Previously we said 'no'
      because f looks like a redex, but that's a great mistake sometimes.
      So this commit is more gung-ho: if you say INLINE that's what you get.
      The changes are to exprIsDupable and exprIsCheap.
    • simonmar's avatar
      [project @ 2001-03-19 16:17:44 by simonmar] · ff39a56b
      simonmar authored
      exprIsAtom shouldn't return True for an SCC.
    • simonpj's avatar
      [project @ 2001-03-19 16:17:27 by simonpj] · 82d808ba
      simonpj authored
      PS to:	Improve orphan-module resolution
      {This comment got missed out of the previous commit.}
      I also moved mkFinalIface from HscMain to MkIface, where it is much tidier.
      (This is related, because it's mkFinalIface that now sets mi_orphan.)
    • simonpj's avatar
      [project @ 2001-03-19 16:15:29 by simonpj] · eb29a057
      simonpj authored
      Reorder the calls to
      in TcModule.  We must to tcCheckMain first, else we get a bogus 
      complaint when compiling
      	main = return ()
      (Something about ambiguous monad.)
    • simonpj's avatar
      [project @ 2001-03-19 16:13:22 by simonpj] · 17d765ce
      simonpj authored
      	Improve orphan-module resolution
      Consider the following rule (and there are lots of these in
      the Prelude):
      	fromIntegral T = fromIntegral_T
      where T is defined in the module being compiled.
      is an orphan.  Of course it isn't, an declaring it an orphan would
      make the whole module an orphan module, which is bad.
      This commit arranges to determine orphan rules, and the orphan-hood
      of a module, much later than before.  (Before mi_orphan was set by
      the renamer, now it is set by MkIface.)
    • simonpj's avatar
      [project @ 2001-03-19 16:08:37 by simonpj] · bc83a34d
      simonpj authored
      Update NOTES
    • simonmar's avatar
      [project @ 2001-03-19 10:23:45 by simonmar] · 01a245f8
      simonmar authored
      PutFullMVar went away
  4. 16 Mar, 2001 7 commits