1. 21 Feb, 2003 3 commits
    • simonpj's avatar
      [project @ 2003-02-21 12:16:05 by simonpj] · 7e7c296a
      simonpj authored
      Fix a type-error in desugaring TH code
    • sof's avatar
      [project @ 2003-02-21 05:34:12 by sof] · 5b4f5a6a
      sof authored
      Asynchronous / non-blocking I/O for Win32 platforms.
      This commit introduces a Concurrent Haskell friendly view of I/O on
      Win32 platforms. Through the use of a pool of worker Win32 threads, CH
      threads may issue asynchronous I/O requests without blocking the
      progress of other CH threads. The issuing CH thread is blocked until
      the request has been serviced though.
      GHC.Conc exports the primops that take care of issuing the
      asynchronous I/O requests, which the IO implementation now takes
      advantage of. By default, all Handles are non-blocking/asynchronous,
      but should performance become an issue, having a per-Handle flag for
      turning off non-blocking could easily be imagined&introduced.
      [Incidentally, this thread pool-based implementation could easily be
      extended to also allow Haskell code to delegate the execution of
      arbitrary pieces of (potentially blocking) external code to another OS
      thread. Given how relatively gnarly the locking story has turned out
      to be with the 'threaded' RTS, that may not be such a bad idea.]
    • sof's avatar
      [project @ 2003-02-21 04:57:16 by sof] · e4341897
      sof authored
      deja vu all over again
  2. 20 Feb, 2003 14 commits
    • simonpj's avatar
      [project @ 2003-02-20 18:33:50 by simonpj] · 56b5a8b8
      simonpj authored
            Add Core Notes and the {-# CORE #-} pragma
      This is an idea of Hal Daume's. The key point is that Notes in Core
      are augmented thus:
        data Note
          = SCC CostCentre
          | ...
          | CoreNote String     -- NEW
      These notes can be injected via a Haskell-source pragma:
         f x = ({-# CORE "foo" #-} show) ({-# CORE "bar" #-} x)
      This wraps a (Note (CoreNote "foo")) around the 'show' variable,
      and a similar note around the argument to 'show'.
      These notes are basically ignored by GHC, but are emitted into
      External Core, where they may convey useful information.
      Exactly how code involving these notes is munged by the simplifier
      isn't very well defined.  We'll see how it pans out.  Meanwhile
      the impact on the rest of the compiler is minimal.
    • simonpj's avatar
      [project @ 2003-02-20 18:18:55 by simonpj] · 3017b35f
      simonpj authored
      Import pruning
    • simonpj's avatar
      [project @ 2003-02-20 16:02:57 by simonpj] · e83fa2eb
      simonpj authored
      Add comments
    • simonpj's avatar
      [project @ 2003-02-20 16:01:56 by simonpj] · 3194c528
      simonpj authored
      Comments and imports only
    • simonpj's avatar
      [project @ 2003-02-20 13:23:47 by simonpj] · 00227c6a
      simonpj authored
      	   Complete an earlier TH commit
      In this earlier commit:
        3.  Ensure that a declaration quotation [d| ... |] does not have a
            permanent effect on the instance environment. (A TH fix.)
      I had forgotten to do a stage2 compile.  This commit just completes
      the earlier work.  I moved some code from TcExpr (long) to TcSplice
      (shorter) which had the happy effect of bringing related code together.
    • simonpj's avatar
      [project @ 2003-02-20 13:21:15 by simonpj] · 72c98446
      simonpj authored
         Generate correct dependencies when reading External Core
      We have to be more careful than I realised when doing strongly-connected
      component analysis of type/class decls when reading External Core.
      Here's the relevant new comment:
      --		Building edges for SCC analysis
      -- When building the edges, we treat the 'main name' of the declaration as the
      -- key for the node, but when dealing with External Core we may come across
      -- references to one of the implicit names for the declaration.  For example:
      --	class Eq a where ....
      --	data :TSig a = :TSig (:TEq a) ....
      -- The first decl is sucked in from an interface file; the second
      -- is in an External Core file, generated from a class decl for Sig.
      -- We have to recognise that the reference to :TEq represents a
      -- dependency on the class Eq declaration, else the SCC stuff won't work right.
      -- This complication can only happen when consuming an External Core file
      -- Solution: keep an "EdgeMap" (bad name) that maps :TEq -> Eq.
      -- Don't worry about data constructors, because we're only building
      -- SCCs for type and class declarations here.  So the tiresome mapping
      -- is need only to map   [class tycon -> class]
    • simonpj's avatar
      [project @ 2003-02-20 13:18:10 by simonpj] · 97958a39
      simonpj authored
      Part 2 of fix :i in InteractiveUI
    • simonpj's avatar
      [project @ 2003-02-20 13:17:02 by simonpj] · f6176af6
      simonpj authored
      Comments only
    • simonpj's avatar
      [project @ 2003-02-20 13:16:31 by simonpj] · 3251e3ba
      simonpj authored
      Another datacon-naming wibble
    • simonpj's avatar
      [project @ 2003-02-20 13:12:40 by simonpj] · b7e64112
      simonpj authored
      Fix :i in InteractiveUI
    • simonpj's avatar
      [project @ 2003-02-20 13:01:20 by simonpj] · f9853a3e
      simonpj authored
      Eliminate brain-dead outputC pattern-match failure
    • simonpj's avatar
      [project @ 2003-02-20 13:00:24 by simonpj] · 5b7c931a
      simonpj authored
      Eliminate bogus string-literal duplication
    • simonpj's avatar
      [project @ 2003-02-20 12:59:55 by simonpj] · d5aa9c5d
      simonpj authored
      Compile binary stuff with -O always
    • simonmar's avatar
      [project @ 2003-02-20 11:45:24 by simonmar] · 710316df
      simonmar authored
      Add -fvia-C to utils/Panic_HC_OPTS, and remove it from main/Main_HC_OPTS.
  3. 19 Feb, 2003 4 commits
    • sof's avatar
      [project @ 2003-02-19 16:38:35 by sof] · 1e7f4834
      sof authored
      odir-ify prelude/PrimOp.o dependency
    • simonpj's avatar
      [project @ 2003-02-19 15:54:05 by simonpj] · 3355c9d5
      simonpj authored
      	 	Two minor wibbles
      1.  Make the generic toT/fromT Ids for "generic derived classes" into
          proper ImplicitIds, with their own GlobalIdDetails. This makes it
          easier to identify them.  (The lack of this showed up as a bug
          when I made an apparently-innocuous other change.)
      2.  Distinguish ClassOpIds from RecordSelIds in their GlobalIdDetails.
          They are treated differently here and there, so I made this change
          as part of (1)
      3.  Ensure that a declaration quotation [d| ... |] does not have a
          permanent effect on the instance environment. (A TH fix.)
    • simonpj's avatar
      [project @ 2003-02-19 13:05:45 by simonpj] · f761d6d0
      simonpj authored
      Wibbles to the new datacon story; fixes ds002
    • simonmar's avatar
      [project @ 2003-02-19 11:51:35 by simonmar] · 5c9bcb9b
      simonmar authored
      If -no-hs-main is specified in --make mode, attempt linking even when
      there's no Main module.
      Fixes bug #686620
  4. 18 Feb, 2003 6 commits
  5. 17 Feb, 2003 2 commits
  6. 14 Feb, 2003 5 commits
    • panne's avatar
      [project @ 2003-02-14 19:21:57 by panne] · 5ee05a2b
      panne authored
      Not sure if this fix is correct, but at least this module compiles
    • simonpj's avatar
      [project @ 2003-02-14 14:22:24 by simonpj] · 5538aeeb
      simonpj authored
         Do the top-level tcSimpifyTop (to resolve monomorphic constraints)
         once for the whole program, rather than once per splice group
      This change makes the trivial program
      	main = return ()
      work again.  It had stopped working (emitting an error about Monad m
      being unconstrained) because the 'checkMain' stuff (which knows special
      things about 'main' was happening only *after* all the groups of
      decls in the module had been dealt with and zonked (incl tcSimplifyTop).
      Better to postpone.  A little more plumbing, but one fewer unexpected
    • simonpj's avatar
      [project @ 2003-02-14 14:19:29 by simonpj] · 580b4fe6
      simonpj authored
    • simonpj's avatar
      [project @ 2003-02-14 14:19:15 by simonpj] · 9eb59090
      simonpj authored
      A bit more debug info + comments
    • simonpj's avatar
      [project @ 2003-02-14 13:01:32 by simonpj] · 9d3463ad
      simonpj authored
      Fix for deriving of records with leading underscore, and corresponding lex
  7. 13 Feb, 2003 3 commits
  8. 12 Feb, 2003 2 commits
    • simonpj's avatar
      [project @ 2003-02-12 17:57:34 by simonpj] · 0c56ef64
      simonpj authored
      A wibble to the constructor-naming story
    • simonpj's avatar
      [project @ 2003-02-12 15:01:31 by simonpj] · 42b63073
      simonpj authored
        Big upheaval to the way that constructors are named
      This commit enshrines the new story for constructor names.  We could never
      really get External Core to work nicely before, but now it does.
      The story is laid out in detail in the Commentary
      so I will not repeat it here.
      	[Manuel: the commentary isn't being updated, apparently.]
      However, the net effect is that in Core and in External Core, contructors look
      like constructors, and the way things are printed is all consistent.
      It is a fairly pervasive change (which is why it has been so long postponed),
      but I hope the question is now finally closed.
      All the libraries compile etc, and I've run many tests, but doubtless there will
      be some dark corners.
  9. 11 Feb, 2003 1 commit
    • wolfgang's avatar
      [project @ 2003-02-11 11:53:51 by wolfgang] · 5819de0c
      wolfgang authored
      Mac OS X:
      Add support for dynamic linker "symbol stubs". For every function that might
      be imported from a dynamic library, we have to generate a short piece of
      assembly code.
      Extend the NatM monad to keep track of the list of imports (for which stubs
      will be generated later).
      Fix a bug concerning 64 bit ints (hi and low words were swapped in one place).