1. 10 Mar, 2005 4 commits
  2. 09 Mar, 2005 11 commits
    • simonpj's avatar
      [project @ 2005-03-09 17:54:59 by simonpj] · fe44e471
      simonpj authored
      Fix indirection-shorting problem
      fe44e471
    • simonpj's avatar
      [project @ 2005-03-09 17:51:03 by simonpj] · 95daf246
      simonpj authored
      Comments
      95daf246
    • simonpj's avatar
      [project @ 2005-03-09 17:47:09 by simonpj] · 79eedc76
      simonpj authored
      Document infix type operators
      79eedc76
    • simonpj's avatar
      [project @ 2005-03-09 16:58:15 by simonpj] · f1fd0522
      simonpj authored
      Add parser support for infix type-variable operators
      f1fd0522
    • simonpj's avatar
      [project @ 2005-03-09 14:26:56 by simonpj] · aca101dd
      simonpj authored
      Fix the superclass translation for instance decls
      			Merge to STABLE
      
      There is a long-standing difficulty whereby it's surprisingly easy 
      to accidentally generate an entirely-bogus recursive dictionary when 
      generating the definitions for the superclasses of an instance decl.
      
      The problem arises because the default story is that whenever we
      add a constraint to our pile of solved constraints, we automatically
      add all its superclasses.  But that is simply wrong when we are trying
      to generate superclasses. 
      
      Solution: do no auto-superclass addition when solving the superclass
      constraints of an instance declaration.  I think should fix it once and
      for all.  
      
      	tcrun021, tcrun033 are test cases
      
      tcrun033 showed up the bug; thanks to Simon Foster and Ralf Laemmel.
      aca101dd
    • simonpj's avatar
      [project @ 2005-03-09 10:56:09 by simonpj] · 0d197643
      simonpj authored
      Add missing provenance for mfix; pls merge
      0d197643
    • simonpj's avatar
      [project @ 2005-03-09 10:54:57 by simonpj] · 44644ebe
      simonpj authored
      Add notes about implicit parameters; pls merge
      44644ebe
    • simonmar's avatar
      [project @ 2005-03-09 10:38:17 by simonmar] · d04c4288
      simonmar authored
      Use a different magic number (0x1face64) for 64-bit interface files.
      This will prevent us trying to read the dictionary out of a 32-bit
      interface file on a 64-bit machine.
      d04c4288
    • simonmar's avatar
      [project @ 2005-03-09 10:36:38 by simonmar] · 1c63991c
      simonmar authored
      revert previous change, it didn't work
      1c63991c
    • wolfgang's avatar
      [project @ 2005-03-09 08:51:31 by wolfgang] · abde5fdf
      wolfgang authored
      Retain all CAFs when dynamic Haskell libraries are used from GHCi.
      The Linker usually replaces references to newCAF with references to newDynCAF,
      but the system dynamic linker won't do that for us.
      
      Also, the situation is slightly different - we never want CAFs from dylibs
      to be reverted, because the dylibs might be used both by the interpreted
      program and by GHCi itself.
      
      So instead of just caf_list, there's now both caf_list and revertible_caf_list.
      newDynCAF adds a CAF to revertible_caf_list, and newCAF either adds the CAF
      to caf_list or to the mutable list, depending on whether we are in GHCi.
      
      This hack is only active when Linker.c has loaded libHSbase_dyn.[so|dylib],
      but for now, it applies to all CAFs, not just dynamically-linked ones.
      If that is worth fixing, we could do that by checking whether the the CAF
      closure or it's info pointer is in the main executable's address range.
      
      MERGE TO STABLE
      abde5fdf
    • wolfgang's avatar
      [project @ 2005-03-09 04:13:13 by wolfgang] · f733edf2
      wolfgang authored
      Some minimalistic documentation for -fPIC and -dynamic.
      
      MERGE TO STABLE
      f733edf2
  3. 08 Mar, 2005 21 commits
  4. 07 Mar, 2005 4 commits
    • simonpj's avatar
      [project @ 2005-03-07 17:46:24 by simonpj] · a1636622
      simonpj authored
      -----------------------------------------
             Make sure that LiberateCase only binds Internal Names
      	-----------------------------------------
      
      	Merge to STABLE
      
      The nested bindings generated by LiberateCase should be Internal as
      well as not-exported.  Otherwise an External Name can float to top level,
      where it might name-clash with another one.
      a1636622
    • simonpj's avatar
      [project @ 2005-03-07 16:46:08 by simonpj] · 36d22a1c
      simonpj authored
      -----------------------------------------
             Fix a long-standing indirection-zapping bug
      	-----------------------------------------
      
      	Merge to STABLE
      
      Up to now we zap indirections as part of the occurence analyser.
      But this is bogus.  The indirection zapper does the following:
      
      	x_local = <expression>
      	...bindings...
      	x_exported = x_local
      
      where x_exported is exported, and x_local is not, then we
      replace it with this:
      
      	x_exported = <expression>
      	x_local = x_exported
      	...bindings...
      
      But this is plain wrong if x_exported has a RULE that mentions
      something (f, say) in ...bindings.., because 'f' will then die.
      
      After hacking a few solutions, I've eventually simply made the indirection
      zapping into a separate pass (which is cleaner anyway), which wraps the
      entire program back into a single Rec if the bad thing can happen.
      
      On the way I've made indirection-zapping work in Recs too, which wasn't the
      case before.
      
      * Move the zapper from OccurAnal into SimplCore
      * Tidy up the printing of pragmas (PprCore and friends)
      * Add a new function Rules.addRules
      * Merge rules in the indirection zapper (previously one set was discarded)
      36d22a1c
    • simonmar's avatar
      [project @ 2005-03-07 15:59:27 by simonmar] · 30d8d383
      simonmar authored
      Include WORD_SIZE_IN_BITS in the interface header, and test it when
      reading.  Fixes a problem whereby GHC on a 64-bit platform will crash
      if it tries to read an interface file generated by the same version of
      GHC on a 32-bit platform.
      30d8d383
    • simonpj's avatar
      [project @ 2005-03-07 15:16:58 by simonpj] · bcacf0b7
      simonpj authored
      -----------------------------------------
             Fix scoping bug for quantified type variables
      	-----------------------------------------
      
      	Merge to STABLE
      
      When instantiating a declaration type signature, make sure to instantiate
      fresh names for non-scoped type variables, else they may be spuriously shared.
      Turns out that the test lib/Generics/reify tests this, which is good.
      
      Comments are with TcMType.tcInstSigType
      bcacf0b7