Skip to content
Snippets Groups Projects
  1. Mar 04, 2013
    • Simon Peyton Jones's avatar
      Rearrange the typechecking of arrows, especially arrow "forms" · c3ad38d7
      Simon Peyton Jones authored
      The typechecking of arrow forms (in GHC 7.6) is known to be bogus, as
      described in Trac #5609, because it marches down tuple types that may
      not yet be fully worked out, depending on when constraint solving
      happens.  Moreover, coercions are generated and simply discarded.  The
      fact that it works at all is a miracle.
      
      This refactoring is based on a conversation with Ross, where we
      rearranged the typing of the argument stack, so that the arrows
      have the form
         a (env, (arg1, (arg2, ...(argn, ())))) res
      rather than
         a (arg1, (arg2, ...(argn, env))) res
      as it was before.
      
      This is vastly simpler to typecheck; just look at the beautiful,
      simple type checking of arrow forms now!
      
      We need a new HsCmdCast to capture the coercions generated from
      the argument stack.
      
      This leaves us in a better position to tackle the open arrow tickets
       * Trac #5777 still fails.  (I was hoping this patch would cure it.)
       * Trac #5609 is too complicated for me to grok.  Ross?
       * Trac #344
       * Trac #5333
      c3ad38d7
  2. Mar 01, 2013
  3. Feb 28, 2013
  4. Feb 27, 2013
  5. Feb 26, 2013
  6. Feb 25, 2013
    • Ian Lynagh's avatar
      Change how unboxed tuples are lexed; fixes #7627 · 20b98f35
      Ian Lynagh authored
      (# is now always a lexeme, even if followed by a symbol.
      20b98f35
    • Gabor Greif's avatar
      Split SettingsCCompilerFlags into non-link and link portions · 890f4657
      Gabor Greif authored
      This fixes certain older GCCs which do not accept link options when assembling or compiling:
      
        ppc_85xx-gcc: --hash-size=31: linker input file unused because linking not done
        ppc_85xx-gcc: --reduce-memory-overheads: linker input file unused because linking not done
      
      and diagnose this to stderr.
      890f4657
    • Geoffrey Mainland's avatar
      Fix autoconf code to find LLVM tools. · cdae6654
      Geoffrey Mainland authored
      The loop exit condition was testing ${LLC} instead of $1, which was
      incorrect. While I'm here, quote the path being tested since it may contain
      spaces (e.g. on Windows), and don't search paths that don't exist, which
      eliminates un-useful error messages from find.
      cdae6654
  7. Feb 24, 2013
  8. Feb 23, 2013
  9. Feb 22, 2013
    • Ian Lynagh's avatar
      Add another chapter to the hi-rule novel · 8a6b5654
      Ian Lynagh authored
      8a6b5654
    • Ian Lynagh's avatar
    • Ian Lynagh's avatar
      Add separate rules for all .hi files, rather than using %.hi style · a49e9cf3
      Ian Lynagh authored
      If a file is created by a %.hi rule, and the actual filename isn't
      mentioned in the makefiles, then make will treat it as an 'intermediate
      file' and delete it when it is finished.
      
      We'd been lucky so far that .hi files weren't actually being built due
      to our rules (but rather, as side-effects of the .o rules). However,
      when using -dynamic-too to build, we had a rule
          $1/$2/build/%.$$(dyn_osuf): $1/$2/build/%.$$(v_hisuf)
      which meant that building a .dyn_o could cause the rule for the
      corresponding .hi to be used, and the .hi may then be deleted later on.
      This was exacerbated by a bug in GNU make 3.81 which caused make to
      enter an infinite loop if running in parallel mode:
          http://lists.gnu.org/archive/html/bug-make/2013-02/msg00020.html
      
      Adding
          .SECONDARY:
      would stop make from deleting the intermediate files. However, this
      caused make to take a pathologically long time (it appeared to be
      live-locked for 2 hours before I killed it) with our build system.
      
      This patch instead creates lines like
          $(eval $(call hi-rule,libraries/base/dist-install/build/Unsafe/Coerce.dyn_hi libraries/base/dist-install/build/Unsafe/Coerce.hi  : %hi: %o  libraries/base/Unsafe/Coerce.hs))
      in the .depend files, which results in a rule like
          libraries/base/dist-install/build/Unsafe/Coerce.dyn_hi libraries/base/dist-install/build/Unsafe/Coerce.hi  : %hi: %o  libraries/base/Unsafe/Coerce.hs ;
      which, as the files are now all named in the makefiles, means they are
      no longer intermediate files so do not get deleted.
      a49e9cf3
    • Gabor Greif's avatar
      Fix displayed string · 1abfa870
      Gabor Greif authored
      1abfa870
    • Geoffrey Mainland's avatar
      Always quote arguments to removeFiles (fixes Windows install). · 1a3247f6
      Geoffrey Mainland authored
      Thanks to Daniel Pratt <colorblinddad@gmail.com> for pointing out the failure
      and fix.
      1a3247f6
  10. Feb 21, 2013
Loading