1. 23 May, 2000 1 commit
    • simonpj's avatar
      [project @ 2000-05-23 11:35:36 by simonpj] · bb91427f
      simonpj authored
      *** MERGE WITH 4.07 (once I've checked it works) ***
      
      * Fix result type signatures.  Note that a consequential change is that
        an ordinary binding with a variable on the left
      	f = e
        is now treated as a FunMonoBind, not a PatMonoBind.  This makes
        a few things a bit simpler (eg rnMethodBinds)
      
      * Fix warnings for unused imports.  This meant moving where provenances
        are improved in RnNames.  Move mkExportAvails from RnEnv to RnNames.
      
      * Print module names right (small change in Module.lhs and Rename.lhs)
      
      * Remove a few unused bindings
        
      * Add a little hack to let us print info about join points that turn
        out not to be let-no-escaped.  The idea is to call them "$j" and report
        any such variables that are not let-no-escaped.
      
      * Some small things aiming towards -ddump-types (harmless but incomplete)
      bb91427f
  2. 22 May, 2000 7 commits
  3. 19 May, 2000 2 commits
  4. 18 May, 2000 1 commit
    • sewardj's avatar
      [project @ 2000-05-18 13:55:36 by sewardj] · 963cf411
      sewardj authored
      Teach the NCG about the dereferencing and naming conventions to be
      used when compiling for a DLLised world.  Some cleanups on the way
      too.  The scheme is that
      
      * All CLabels which are in different DLLs from the current module
        will, via the renamer, already be such that labelDynamic returns
        True for them.
      
      * Redo the StixPrim/StixMacro stuff so that all references to symbols
        in the RTS are via CLabels.  That means that the usual labelDynamic
        story can be used.
      
      * When a label is printed in PprMach, labelDynamic is consulted, to
        generate the __imp_ prefix if necessary.
      
      * In MachCode.stmt2Instrs, selectively ask derefDLL to walk trees
        before code generation and insert deferencing code around other-DLL
        symbols.
      
      * When generating Stix for SRTs, add 1 to other-DLL refs.
      
      * When generating static closures, insert a zero word before
        the _closure label.
      963cf411
  5. 15 May, 2000 7 commits
  6. 14 May, 2000 1 commit
    • lewie's avatar
      [project @ 2000-05-14 07:16:50 by lewie] · 2558ec22
      lewie authored
      Wobble.  Fine tuning tcSimplifyAndCheck a bit further (wrt implicit params).
      The key is that a method that doesn't constrain a local tyvar, but does has
      implicit params, needs to be reduced further.
      2558ec22
  7. 13 May, 2000 1 commit
    • lewie's avatar
      [project @ 2000-05-13 00:20:57 by lewie] · 6f122ef3
      lewie authored
      A clean-up pass on fundeps and implicit params.  Haven't yet incorporated
      changes from Hugs/GHC meeting yet, tho.
        - Fixed up several places in Type.lhs where IPNotes were probably being
          incorrectly handled.  Strongly suggests a better solution should be
          implemented for marking implicit params than piggybacking on NoteTys.
        - tcSimplifyAndCheck was handling implicit params incorrectly
          (holding on to them when it should have been booting them out to frees).
        - Improved improvement WRT type signatures (the signature is now taken
          into account when improving).
        - Added improvement when matching against local polymorphic types.
      6f122ef3
  8. 12 May, 2000 4 commits
  9. 11 May, 2000 4 commits
    • panne's avatar
      [project @ 2000-05-11 15:11:24 by panne] · 70bad8db
      panne authored
      Added rules for constant folding with the folloging ops:
      WordQuotOp, WordRemOp, AndOp, OrOp, XorOp, Int2AddrOp, Addr2IntOp,
      Float2IntOp, DoubleNegOp, Double2IntOp, Double2FloatOp, Float2DoubleOp
      70bad8db
    • simonmar's avatar
      [project @ 2000-05-11 11:54:56 by simonmar] · 511ec7f3
      simonmar authored
      StablePtrRep is now more like a pointer than an integer, so use the
      correct union tag when assigning one to a register to avoid warnings.
      511ec7f3
    • andy's avatar
      [project @ 2000-05-11 07:20:36 by andy] · 189393d1
      andy authored
      Wibble...
      
      The corrected example is as follows:
      
      myS :: (forall t t1 t2. (t -> t2 -> t1) -> (t -> t2) -> t -> t1)
      [NoDiscard] __AL 3
      myS
        = \ @ t @ t1 @ t2 f :: (t -> t2 -> t1) g :: (t -> t2) x :: t -> f x (g x)
      
      public class myS implements Code {
        public Object ENTER () {
          VM.COLLECT(3, this);
          final Object f = VM.POP();
          final Object g = VM.POP();
          final Object x = VM.POP();
          VM.PUSH(x);
          VM.PUSH(new Thunk(new myS$1(g, x)));
          return f;
        }
      }
      class myS$1 extends Code {
        final Object g;
        final Object x;
        public myS$1 (Object _g_, Object _x_) {
          g = _g_;
          x = _x_;
        }
        public Object ENTER () {
          VM.PUSH(x);
          return g;
        }
      }
      189393d1
    • andy's avatar
      [project @ 2000-05-11 07:10:11 by andy] · 53a7fa7d
      andy authored
      First attempt at at class lifter for the GHC GOO backend.
      
      This included a cleanup of the Java/GOO abstract syntax
        - Name is now a string, not a list of string
        - Type is used instead of name in some places
            (for example, with new)
        - other minor tweeks.
      
      Andy
      
      ---------
      Example for myS f g x = f x (g x)
      
      public class myS implements Code {
        public Object ENTER () {
          VM.COLLECT(3, this);
          final Object f = VM.POP();
          final Object g = VM.POP();
          final Object x = VM.POP();
          VM.PUSH(x);
          VM.PUSH(new Thunk(new Code(g, x)));
          return f;
        }
      }
      class myS$1 {
        final Object g;
        final Object x;
        public myS$1 (Object _g_, Object _x_) {
          g = _g_;
          x = _x_;
        }
        public Object ENTER () {
          VM.PUSH(x);
          return g;
        }
      }
      53a7fa7d
  10. 10 May, 2000 4 commits
  11. 09 May, 2000 1 commit
  12. 08 May, 2000 6 commits
    • panne's avatar
      [project @ 2000-05-08 17:24:10 by panne] · 65fafba5
      panne authored
      Committing the Makefile, too, might be a good idea: Removed ctypes.
      65fafba5
    • panne's avatar
      [project @ 2000-05-08 17:18:02 by panne] · 891e78b3
      panne authored
      * Changed a backslash at EOL to the word "backslash". Using cpp in
        conjunction with Haskell is a real hack...
      
      * Renamed the module Ctypes to Ctype, because CTypes is (soon) a
        module from package lang. I'm not sure if two files differing only
        in their case work under "the" OS. Just to be sure...
      891e78b3
    • panne's avatar
      [project @ 2000-05-08 15:19:48 by panne] · 0588967a
      panne authored
      Replaced last remnants of C in the scanner/parser with carefully tuned
      Haskell. TODO: Test with GHC < 3.03
      0588967a
    • simonmar's avatar
      [project @ 2000-05-08 15:03:24 by simonmar] · 1a1204df
      simonmar authored
      Put the extern declarations *outside* the function body for a
      CCodeBlock.  This will enable us to give "extern" declarations for
      variables that have scope static to the current module.
      1a1204df
    • simonpj's avatar
      [project @ 2000-05-08 08:23:08 by simonpj] · 09845f43
      simonpj authored
      Name qualification
      ~~~~~~~~~~~~~~~~~~
      Yet another wilbble on the recent renamer fix, this
      time to make sure that names are printed unqualified
      if they should be.    Sigh.
      09845f43
    • simonpj's avatar
      [project @ 2000-05-08 07:14:35 by simonpj] · cf58efc1
      simonpj authored
      Interface file reading
      ~~~~~~~~~~~~~~~~~~~~~~
      Make interface files reading more robust.  
        * If the old interface file is unreadable, don't fail. [bug fix]
      
        * If the old interface file mentions interfaces 
          that are unreadable, don't fail. [bug fix]
      
        * When we can't find the interface file, 
          print the directories we are looking in.  [feature]
      cf58efc1
  13. 01 May, 2000 1 commit