1. 15 Mar, 2007 3 commits
    • sven.panne@aedion.de's avatar
      Use update-alternatives for handling generic tool names · 1ee08bbe
      sven.panne@aedion.de authored
      ATTENTION: Packagers should read the following stuff carefully!
      GHC, Hugs and nhc come with various tools like runhaskell or hsc2hs. On the
      one hand this is quite handy, avoiding lots of tiny native packages, but OTOH
      this leads to a few problems:
         * The tools are not always identical in functionality.
         * The tools fight for a global generic name like "/usr/bin/runhaskell".
      These problems are not new and not unique to Haskell implementations, so for
      *nix-based system there is a tool called update-alternatives which handles
      those cases. The idea is as follows:
         * Each program/man page/etc. installs itself with a very specific name
           like /usr/bin/hsc2hs-ghc or /usr/share/man/man1/lua5.1.1.gz, so nothing
         * The (un-)installation scripts call update-alternatives to notify the
           system about new alternatives for a generic tool/manpage/etc.
         * Alternatives can be grouped together ("link groups"), so e.g. switching
           from Sun's Java to Kaffe switches compiler, JRE, manpages etc. together.
           Alas, this doesn't work well with the Haskell implementations yet,
           because they come with different sets of tools (in addition to runFOO):
             GHC:  hsc2hs
             Hugs: hsc2hs, cpphs
             nhc:  cpphs
           Either these tools should be disentangled fromt the Haskell
           implementations or all implementations should offer the same set.
           Opinions and recommendations on this topic are highly welcome.
         * This mechanism can be used to easily switch between several versions of
           the same implementation, too, but we are not yet fully prepared for that.
      As a first step, GHC now installs hsc2hs as 'hsc2hs-ghc' and does *not*
      install runhaskell directly anymore, only runghc. hsc2hs and runhaskell are
      created via update-alternatives now. What is currently missing is a mechanism
      for platforms like Windows and probably Mac OS X.
    • simonpj@microsoft.com's avatar
      Make the type-defaulting in GHCi use () as the first default type · d4b95ea9
      simonpj@microsoft.com authored
      See Trac #1200
      This is a somewhat experimental fix.  I'm not sure we want it in 6.6.1
      The idea is explained in Note [Default unitTy] in TcSimplify.  In
      interative mode (or with -fextended-default-rules) we add () as the
      first type we try when defaulting.  This has very little real impact,
      except in the following case.  Consider:
      	Text.Printf.printf "hello"
      This has type (forall a. IO a); it prints "hello", and returns
      'undefined'.  We don't want the GHCi repl loop to try to print that
      'undefined'.  The neatest thing is to default the 'a' to (), rather
      than to Integer (which is what would otherwise happen; and then GHCi
      doesn't attempt to print the ().  So in interactive mode, we add () to
      the list of defaulting types.  
    • sven.panne@aedion.de's avatar
      Added support for parallel builds · cbb81129
      sven.panne@aedion.de authored
      With this patch, one can define the degree of build parallelism via a 'jobs'
      rpm variable. A comfortable way to use this is having a ~/.rpmmacros file with
      a line like:
         %jobs 2
      Alternatively, one could use a '--define "jobs 2"' command line flag for
      rpmbuild. On a Core 2 Duo using 2 jobs brings down the time for a full build
      including extralibs from 36m to 27m. If 'jobs' is not defined, a normal
      sequential build is done, following the usual conventions on e.g. openSUSE.
  2. 14 Mar, 2007 14 commits
  3. 13 Mar, 2007 2 commits
  4. 14 Mar, 2007 1 commit
  5. 13 Mar, 2007 2 commits
  6. 23 Jan, 2007 1 commit
    • Simon Marlow's avatar
      Fix a bug in the liveness analysis · 79791534
      Simon Marlow authored
      We were being overly conservative, registers that were live only at a
      branch target were not recorded as being dead in the branch-not-taken
  7. 12 Mar, 2007 1 commit
  8. 11 Mar, 2007 1 commit
  9. 09 Mar, 2007 2 commits
  10. 08 Mar, 2007 6 commits
  11. 07 Mar, 2007 1 commit
  12. 06 Mar, 2007 6 commits