1. 31 Jan, 2005 9 commits
    • simonpj's avatar
      [project @ 2005-01-31 15:48:13 by simonpj] · bd0d2652
      simonpj authored
      ---------------------------
      	Some Template Haskell fixes
      	---------------------------
      
      * Tidy up conversion from TH.Name to RdrName.RdrName. It was partly
        duplicated between Convert.thRdrName and TcSplice.lookupThName.
        Now it's all in one place: Convert.thRdrName
      
      * Fix a bug in TH.tupleTypeName/TH.tupleDataName (GHC.Tuple -> Data.Tuple)
      
      * Export appEs from Language.Haskell.TH
      bd0d2652
    • simonpj's avatar
      [project @ 2005-01-31 14:57:36 by simonpj] · 34fa81c4
      simonpj authored
      Compile utilities and lib/compat with GhcHcOpts, in case it is profiled
      34fa81c4
    • simonpj's avatar
      [project @ 2005-01-31 14:53:13 by simonpj] · f5106d93
      simonpj authored
      Compile utilities and lib/compat with GhcHcOpts, in case it is profiled
      f5106d93
    • simonpj's avatar
      [project @ 2005-01-31 13:53:29 by simonpj] · c269f662
      simonpj authored
      Wibble to hoistForAllTys
      c269f662
    • simonpj's avatar
      [project @ 2005-01-31 13:25:33 by simonpj] · f25b9225
      simonpj authored
      ---------------------------
      	Types and evaluated-ness in
      	  CoreTidy and CorePrep
      	---------------------------
      
      This commmit fixes two problems.
      
      1.  DataToTagOp requires its argument to be evaluated, otherwise it silently
          gives the wrong answer.  This was not happening because we had
      	case (tag2Enum x) of y -> ...(dataToTag y)...
          and the tag2Enum was being inlined (it's non-speculative), giving
      	...(dataToTag (tag2Enum x))...
      
          Rather than relying on a somewhat-delicate global invariant, CorePrep
          now establishes the invariant that DataToTagOp's argument is evaluated.
          It does so by putting up-to-date is-evaluated information into each
          binder's UnfoldingInfo; not a full unfolding, just the (OtherCon [])
          for evaluated binders.
      
          Then there's a special case for DataToTag where applications are dealt with.
      
          Finally, we make DataToTagOp strict, which it really is.
      
      
      2.  CoreTidy now does GADT refinement as it goes. This is important to ensure that
          each variable occurrence has informative type information, which in turn is
          essential to make exprType work (otherwise it can simply crash).
          [This happened in test gadt/tdpe]
      
          CorePrep has the same problem, but the solution is a little different:
          when looking up in the cloning environment, use the type at the occurrence
          site if we're inside a GADT.  It might be cleaner to use the same story as
          CoreTidy, but then we'd need to keep an in-scope set for type variables.
          No big deal either way.
      f25b9225
    • simonpj's avatar
      [project @ 2005-01-31 13:22:57 by simonpj] · 04612d54
      simonpj authored
      Rename mkTvSubst to mkOpenTvSubst; add new mkTvSubst
      04612d54
    • simonpj's avatar
      [project @ 2005-01-31 13:21:01 by simonpj] · 94df1013
      simonpj authored
      Name evaldUnfolding = OtherCon [], and use it
      94df1013
    • simonmar's avatar
      [project @ 2005-01-31 12:55:50 by simonmar] · 4078a5cf
      simonmar authored
      Move signal prototypes into RtsExternal.h
      4078a5cf
    • wolfgang's avatar
      [project @ 2005-01-31 05:27:14 by wolfgang] · c560ae86
      wolfgang authored
      Reorganise handling of -fPIC flags passed to C compiler.
      The flags expected by gcc differ only slightly per platform
      (basically depending whether you are on a Mac or not), we don't need
      separate cases for every processor.
      
      TODO: Display an error message for platforms where -fPIC -fvia-C is not
            supported.
      c560ae86
  2. 29 Jan, 2005 2 commits
  3. 28 Jan, 2005 11 commits
    • krasimir's avatar
      [project @ 2005-01-28 23:33:51 by krasimir] · 6317d554
      krasimir authored
      - The output from uncaught exceptions handler is redirected to RTS's errorBelch.
      - The output from Debug.Trace is redirected to RTS's debugBelch
      - Usually errorBelch and debugBelch messages go to stderr except for
      Windows GUI applications. For GUI applications the Debug.Trace output is
      redirected to debug console and the exceptions message is displayed in message box.
      6317d554
    • ross's avatar
      [project @ 2005-01-28 18:50:25 by ross] · 5500fa8f
      ross authored
      add missing underscores
      5500fa8f
    • simonpj's avatar
      [project @ 2005-01-28 17:44:55 by simonpj] · c51fdf44
      simonpj authored
      Arrange that when seeking instance decls in GHCi, in response
      to a :info command, we only print ones whose types are in scope
      unqualified.  This eliminates an alarmingly long list when
      simply typing ':info Show', say.
      
      On the way, I reorganised a bit.  GHCi printing happens by
      converting a TyThing to an IfaceDecl, and printing that.
      I now arrange to generate unqualifed IfaceExtNames directly
      during this conversion, based on what is in scope.  Previously
      it was done during the pretty-printing part via the UserStyle.
      But this is nicer.
      c51fdf44
    • ross's avatar
      [project @ 2005-01-28 16:28:56 by ross] · 550efe6e
      ross authored
      from 6.3, generate INCLUDE instead of OPTIONS -#include and GHC_OPTIONS
      instead of OPTIONS.
      550efe6e
    • simonmar's avatar
      [project @ 2005-01-28 14:41:23 by simonmar] · b220cc67
      simonmar authored
      x-ref INCLUDE pragmas
      b220cc67
    • simonmar's avatar
      [project @ 2005-01-28 14:41:09 by simonmar] · da6eff29
      simonmar authored
      Document {-# INCLUDE #-}
      da6eff29
    • simonmar's avatar
      [project @ 2005-01-28 14:27:00 by simonmar] · b4b792b5
      simonmar authored
      add an INCLUDE pragma, as a compiler-independent alternative to
      -#include.
      b4b792b5
    • simonmar's avatar
      [project @ 2005-01-28 14:21:12 by simonmar] · a02314bd
      simonmar authored
      Fix -no-recomp
      a02314bd
    • simonmar's avatar
      [project @ 2005-01-28 14:01:08 by simonmar] · 81066717
      simonmar authored
      Here's a file I forgot to add.
      
      NB. ghcconfig.h is now a *source file*.  If you're using a linked
      build tree, please remove it from ghc/includes and re-link (in fact,
      you probabaly need a make clean in ghc/includes at least).
      81066717
    • simonmar's avatar
      [project @ 2005-01-28 12:57:00 by simonmar] · a277751c
      simonmar authored
      Comment updates only (platform-related)
      a277751c
    • simonmar's avatar
      [project @ 2005-01-28 12:55:17 by simonmar] · 153b9cb9
      simonmar authored
      Rationalise the BUILD,HOST,TARGET defines.
      
      Recall that:
      
        - build is the platform we're building on
        - host is the platform we're running on
        - target is the platform we're generating code for
      
      The change is that now we take these definitions as applying from the
      point of view of the particular source code being built, rather than
      the point of view of the whole build tree.
      
      For example, in RTS and library code, we were previously testing the
      TARGET platform.  But under the new rule, the platform on which this
      code is going to run is the HOST platform.  TARGET only makes sense in
      the compiler sources.
      
      In practical terms, this means that the values of BUILD, HOST & TARGET
      may vary depending on which part of the build tree we are in.
      
      Actual changes:
      
       - new file: includes/ghcplatform.h contains platform defines for
         the RTS and library code.
      
       - new file: includes/ghcautoconf.h contains the autoconf settings
         only (HAVE_BLAH).  This is so that we can get hold of these
         settings independently of the platform defines when necessary
         (eg. in GHC).
      
       - ghcconfig.h now #includes both ghcplatform.h and ghcautoconf.h.
      
       - MachRegs.h, which is included into both the compiler and the RTS,
         now has to cope with the fact that it might need to test either
         _TARGET_ or _HOST_ depending on the context.
      
       - the compiler's Makefile now generates
           stage{1,2,3}/ghc_boot_platform.h
         which contains platform defines for the compiler.  These differ
         depending on the stage, of course: in stage2, the HOST is the
         TARGET of stage1.  This was wrong before.
      
       - The compiler doesn't get platform info from Config.hs any more.
         Previously it did (sometimes), but unless we want to generate
         a new Config.hs for each stage we can't do this.
      
       - GHC now helpfully defines *_{BUILD,HOST}_{OS,ARCH} automatically
         in CPP'd Haskell source.
      
       - ghcplatform.h defines *_TARGET_* for backwards compatibility
         (ghcplatform.h is included by ghcconfig.h, which is included by
         config.h, so code which still #includes config.h will get the TARGET
         settings as before).
      
       - The Users's Guide is updated to mention *_HOST_* rather than
         *_TARGET_*.
      
       - coding-style.html in the commentary now contains a section on
         platform defines.  There are further doc updates to come.
      
      Thanks to Wolfgang Thaller for pointing me in the right direction.
      153b9cb9
  4. 27 Jan, 2005 18 commits