1. 15 Mar, 2001 4 commits
  2. 14 Mar, 2001 17 commits
    • simonpj's avatar
      [project @ 2001-03-14 23:19:42 by simonpj] · d7296ca1
      simonpj authored
      -------------------------------
      	Fix the dreaded export list bug
      	-------------------------------
      
      With unfailing regularity I manage to get the following wrong:
      
      	module A(f) where 
      	  f = ...
      
      	module B(f) where
      	  import A(f)
      
      We must ensure that if A.f changes its type (etc) then B.hi
      gets changed, so that people who import B will get recompiled.
      
      There's a large comment with RnIfaces.mkImportInfo, and some
      reorganisation in Rename, with a few mainly cosmetic consequences
      in RnEnv.
      
      [Simon: I think this will fix the 'OccurAnal not recompiled' problem.]
      d7296ca1
    • sebc's avatar
      [project @ 2001-03-14 21:22:48 by sebc] · 69b25331
      sebc authored
      When compiling C bits, prefix CC_OPTS with -optc.
      69b25331
    • sewardj's avatar
      [project @ 2001-03-14 17:53:04 by sewardj] · a4932bcb
      sewardj authored
      Don't try and do `take' of a negative number in compMsg.  The Golden
      Lemon award for 2001 goes to <name_deleted_to_protect_the_guilty_party>.
      a4932bcb
    • simonmar's avatar
      [project @ 2001-03-14 17:48:45 by simonmar] · 1627a008
      simonmar authored
      Fix a bug which has been causing all SPECIALISE pragmas to be thrown
      away.
      1627a008
    • simonpj's avatar
      [project @ 2001-03-14 15:26:00 by simonpj] · 506278ab
      simonpj authored
      -------------------------------------
      	Import more rules, and fix usage info
      	-------------------------------------
      
      1. A rule wasn't being slurped in that should have been.
      Reason: wordToWord32# was in the 'TypeEnv', because it's a primop,
      so the renamer thought it was already slurped in, which is true.
      But it forgot to use the TypeEnv as a source of gates when deciding
      which rules to pull in.  Result: a useful rule for the primop wasn't
      making it in.  Thanks to Marcin for isolating this one.
      
      2. RnIfaces.recordTypeEnvSlurp (was recordVSlurp) was blindly adding
      the name to the iVSlurp set, but the iVSlurp set is supposed to contain
      only "big" names (tycons, classes, and Ids that aren't data cons,
      class ops etc).  We need to get the big name from the thing.
      Mildly tiresomely, this means we have to keep the Class inside
      the TyCon derived from that class.   Hence updates to TyCon and Class.
      506278ab
    • simonpj's avatar
      [project @ 2001-03-14 15:25:53 by simonpj] · 6ae5ca0c
      simonpj authored
      Import wibble
      6ae5ca0c
    • simonpj's avatar
      [project @ 2001-03-14 15:21:25 by simonpj] · 65bc483d
      simonpj authored
      Remove dead code, and fix fvs1 -> fvs2 in coreTopBindsToStg
      65bc483d
    • sewardj's avatar
      [project @ 2001-03-14 15:01:04 by sewardj] · 9874c5e7
      sewardj authored
      mut_user_time_during_GC() and mut_user_time(): don't forget to do
      TICK_TO_DBL of the result -- if not done, heap profiling times are
      off by a factor of 100.
      9874c5e7
    • simonmar's avatar
      [project @ 2001-03-14 14:44:34 by simonmar] · 382f3ce4
      simonmar authored
      don't consider SCC annotations in an argument to be trivial.
      382f3ce4
    • rrt's avatar
      [project @ 2001-03-14 12:13:02 by rrt] · bdf94023
      rrt authored
      Add Config.hs generation to Makefile to make TMPDIR work in KludgedSystem.
      bdf94023
    • simonmar's avatar
      [project @ 2001-03-14 12:05:06 by simonmar] · e9d555e5
      simonmar authored
      Fix CAF reference tracking for let-no-escapes.
      e9d555e5
    • sewardj's avatar
      [project @ 2001-03-14 11:18:18 by sewardj] · bc210f7d
      sewardj authored
      Add closure selection for heap profiling.  You can use
      -hc{cc_names}, -hd{descrs}, -hy{types}, -hm{mods} to restrict profiled
      closures to the specified sets.  Multiple restrictions are allowed.
      bc210f7d
    • rrt's avatar
      [project @ 2001-03-14 10:16:19 by rrt] · b797673b
      rrt authored
      Get 'dis /tmp offa ma back, it stops me doin' Windows hack!
      b797673b
    • rrt's avatar
      [project @ 2001-03-14 10:14:13 by rrt] · 55daa695
      rrt authored
      Don't use /tmp.
      55daa695
    • rrt's avatar
      [project @ 2001-03-14 10:13:30 by rrt] · 075f14ca
      rrt authored
      Ban /tmp. TMPDIR r00lz!
      075f14ca
    • rrt's avatar
      [project @ 2001-03-14 10:12:36 by rrt] · ca199137
      rrt authored
      Don't use /tmp. /tmp has bad karma!
      ca199137
    • rrt's avatar
      [project @ 2001-03-14 10:11:16 by rrt] · 6392539e
      rrt authored
      /tmp -> TMPDIR (don't worry dudes, it's just a comment!)
      6392539e
  3. 13 Mar, 2001 18 commits
    • qrczak's avatar
      [project @ 2001-03-13 21:21:27 by qrczak] · 8abcce11
      qrczak authored
      Add 'destruct :: Ptr a -> IO ()' method to class Storable. Thanks
      Wojciech Moczydlowski <khaliff@astercity.net> for the suggestion.
      
      It should free memory associated with the object (except the object
      pointer itself). A default definition does nothing, but will be
      non-trivial for some C structs.
      
      The canonical ForeignPtr finalizer for a malloced data object would be
      'destruct p >> free p'.
      8abcce11
    • rrt's avatar
      [project @ 2001-03-13 17:46:56 by rrt] · 6b04e604
      rrt authored
      Use TMPDIR, not /tmp.
      6b04e604
    • simonmar's avatar
      [project @ 2001-03-13 17:30:57 by simonmar] · f330fee4
      simonmar authored
      update expected output
      f330fee4
    • simonmar's avatar
      [project @ 2001-03-13 17:16:52 by simonmar] · ad719b34
      simonmar authored
      update expected output
      ad719b34
    • simonmar's avatar
      [project @ 2001-03-13 17:12:43 by simonmar] · 33f51ac9
      simonmar authored
      update expected output
      33f51ac9
    • simonmar's avatar
      [project @ 2001-03-13 17:08:36 by simonmar] · e9866166
      simonmar authored
      fix up for GHCi
      e9866166
    • simonpj's avatar
      [project @ 2001-03-13 16:57:34 by simonpj] · 8f7d8614
      simonpj authored
      Add error location for deriving failure errors
      8f7d8614
    • simonpj's avatar
      [project @ 2001-03-13 16:04:07 by simonpj] · ecb42f44
      simonpj authored
      Remove debug print
      ecb42f44
    • simonmar's avatar
      [project @ 2001-03-13 15:53:52 by simonmar] · c8208e89
      simonmar authored
      unused imports
      c8208e89
    • simonpj's avatar
      [project @ 2001-03-13 15:45:26 by simonpj] · 6a183d55
      simonpj authored
      Add beginning of docs for implicit params, and functional deps; I hope formatting is ok
      6a183d55
    • simonpj's avatar
      [project @ 2001-03-13 15:44:58 by simonpj] · ecaf9353
      simonpj authored
      Remove docs for -funfolding-interface-threshold
      ecaf9353
    • simonmar's avatar
      [project @ 2001-03-13 15:37:50 by simonmar] · 9a5fe807
      simonmar authored
      remove -funfolding-interface-threshold flag.
      9a5fe807
    • simonpj's avatar
      [project @ 2001-03-13 15:22:54 by simonpj] · ed2e3ae2
      simonpj authored
      Add 091
      ed2e3ae2
    • simonmar's avatar
      [project @ 2001-03-13 14:59:56 by simonmar] · 762c4156
      simonmar authored
      fix Happy test.
      762c4156
    • simonpj's avatar
      [project @ 2001-03-13 14:58:25 by simonpj] · 788faebb
      simonpj authored
      ----------------
      	Nuke ClassContext
      	----------------
      
      This commit tidies up a long-standing inconsistency in GHC.
      The context of a class or instance decl used to be restricted
      to predicates of the form
      	C t1 .. tn
      with
      	type ClassContext = [(Class,[Type])]
      
      but everywhere else in the compiler we used
      
      	type ThetaType = [PredType]
      where PredType can be any sort of constraint (= predicate).
      
      The inconsistency actually led to a crash, when compiling
      	class (?x::Int) => C a where {}
      
      I've tidied all this up by nuking ClassContext altogether, and using
      PredType throughout.  Lots of modified files, but all in
      more-or-less trivial ways.
      
      I've also added a check that the context of a class or instance
      decl doesn't include a non-inheritable predicate like (?x::Int).
      
      Other things
      
       * rename constructor 'Class' from type TypeRep.Pred to 'ClassP'
         (makes it easier to grep for)
      
       * rename constructor HsPClass  => HsClassP
      		      HsPIParam => HsIParam
      788faebb
    • simonmar's avatar
      [project @ 2001-03-13 14:18:47 by simonmar] · 6a44ce76
      simonmar authored
      re-instate an ASSERT that was temporarily commented out.
      6a44ce76
    • simonmar's avatar
      [project @ 2001-03-13 14:17:16 by simonmar] · 17e8f5c2
      simonmar authored
      Fix let-no-escapes again.
      17e8f5c2
    • simonmar's avatar
      [project @ 2001-03-13 12:50:29 by simonmar] · 10cbc75d
      simonmar authored
      Some rearrangements that Simon & I have been working on recently:
      
          - CoreSat is now CorePrep, and is a general "prepare-for-code-
            generation" pass.  It does cloning, saturation of constructors &
            primops, A-normal form, and a couple of other minor fiddlings.
      
          - CoreTidy no longer does cloning, and minor fiddlings.  It doesn't
            need the unique supply any more, so that's removed.
      
          - CoreToStg now collects CafInfo and the list of CafRefs for each
            binding.  The SRT pass is much simpler now.
      
          - IdInfo now has a CgInfo field for "code generator info".  It currently
            contains arity (the actual code gen arity which affects the calling
            convention as opposed to the ArityInfo which is a measure of how
            many arguments the Id can be applied to before it does any work), and
            CafInfo.
      
            Previously we overloaded the ArityInfo field to contain both
            codegen arity and simplifier arity.  Things are cleaner now.
      
          - CgInfo is collected by CoreToStg, and passed back into CoreTidy in
            a loop.  The compiler will complain rather than going into a black
            hole if the CgInfo is pulled on too early.
      
          - Worker info in an interface file now comes with arity info attached.
            Previously the main arity info was overloaded for this purpose, but
            it lead to a few hacks in the compiler, this tidies things up somewhat.
      
      Bottom line: we removed several fragilities, and tidied up a number of
      things.  Code size should be smaller, but we'll see...
      10cbc75d
  4. 12 Mar, 2001 1 commit