This project is mirrored from https://gitlab.haskell.org/ghc/ghc.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
  1. 29 Apr, 2005 2 commits
  2. 28 Apr, 2005 8 commits
    • simonpj's avatar
      [project @ 2005-04-28 23:37:53 by simonpj] · fd46e216
      simonpj authored
      Further stage-2 wibbles
      fd46e216
    • simonpj's avatar
      [project @ 2005-04-28 23:11:45 by simonpj] · 8d16c87c
      simonpj authored
      Missing import
      8d16c87c
    • simonpj's avatar
      [project @ 2005-04-28 23:09:24 by simonpj] · ed60e5f8
      simonpj authored
      A couple of hs-boot files
      ed60e5f8
    • simonpj's avatar
      [project @ 2005-04-28 23:00:52 by simonpj] · c24011d1
      simonpj authored
      Further wibbles to the new tidying plumbing
      c24011d1
    • simonpj's avatar
      [project @ 2005-04-28 16:05:54 by simonpj] · 91944423
      simonpj authored
      Re-plumb the connections between TidyPgm and the various
      code generators.  There's a new type, CgGuts, to mediate this,
      which has the happy effect that ModGuts can die earlier.
      
      The non-O route still isn't quite right, because default methods
      are being lost.  I'm working on it.
      91944423
    • simonmar's avatar
      [project @ 2005-04-28 15:28:05 by simonmar] · c84e392e
      simonmar authored
      Small code-size optimisation: I forgot to add a specialised case for
      functions with no argument words (which might happen if the function
      takes a void argument, for example).
      c84e392e
    • simonpj's avatar
      [project @ 2005-04-28 13:13:27 by simonpj] · 344d961b
      simonpj authored
      Instance for wired-in tycons wibble
      344d961b
    • simonpj's avatar
      [project @ 2005-04-28 10:09:41 by simonpj] · dd313897
      simonpj authored
      This big commit does several things at once (aeroplane hacking)
      which change the format of interface files.  
      
      	So you'll need to recompile your libraries!
      
      1. The "stupid theta" of a newtype declaration
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Retain the "stupid theta" in a newtype declaration.
      For some reason this was being discarded, and putting it
      back in meant changing TyCon and IfaceSyn slightly.
         
      
      2. Overlap flags travel with the instance
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Arrange that the ability to support overlap and incoherence
      is a property of the *instance declaration* rather than the
      module that imports the instance decl.  This allows a library
      writer to define overlapping instance decls without the
      library client having to know.  
      
      The implementation is that in an Instance we store the
      overlap flag, and preseve that across interface files
      
      
      3. Nuke the "instnce pool" and "rule pool"
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      A major tidy-up and simplification of the way that instances
      and rules are sucked in from interface files.  Up till now
      an instance decl has been held in a "pool" until its "gates" 
      (a set of Names) are in play, when the instance is typechecked
      and added to the InstEnv in the ExternalPackageState.  
      This is complicated and error-prone; it's easy to suck in 
      too few (and miss an instance) or too many (and thereby be
      forced to suck in its type constructors, etc).
      
      Now, as we load an instance from an interface files, we 
      put it straight in the InstEnv... but the Instance we put in
      the InstEnv has some Names (the "rough-match" names) that 
      can be used on lookup to say "this Instance can't match".
      The detailed dfun is only read lazily, and the rough-match
      thing meansn it is'nt poked on until it has a chance of
      being needed.
      
      This simply continues the successful idea for Ids, whereby
      they are loaded straightaway into the TypeEnv, but their
      TyThing is a lazy thunk, not poked on until the thing is looked
      up.
      
      Just the same idea applies to Rules.
      
      On the way, I made CoreRule and Instance into full-blown records
      with lots of info, with the same kind of key status as TyCon or 
      DataCon or Class.  And got rid of IdCoreRule altogether.   
      It's all much more solid and uniform, but it meant touching
      a *lot* of modules.
      
      
      4. Allow instance decls in hs-boot files
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Allowing instance decls in hs-boot files is jolly useful, becuase
      in a big mutually-recursive bunch of data types, you want to give
      the instances with the data type declarations.  To achieve this
      
      * The hs-boot file makes a provisional name for the dict-fun, something
        like $fx9.
      
      * When checking the "mother module", we check that the instance
        declarations line up (by type) and generate bindings for the 
        boot dfuns, such as
      	$fx9 = $f2
        where $f2 is the dfun generated by the mother module
      
      * In doing this I decided that it's cleaner to have DFunIds get their
        final External Name at birth.  To do that they need a stable OccName,
        so I have an integer-valued dfun-name-supply in the TcM monad.
        That keeps it simple.
      
      This feature is hardly tested yet.
      
      
      5. Tidy up tidying, and Iface file generation
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      main/TidyPgm now has two entry points:
      
        simpleTidyPgm is for hi-boot files, when typechecking only
        (not yet implemented), and potentially when compiling without -O.
        It ignores the bindings, and generates a nice small TypeEnv.
      
        optTidyPgm is the normal case: compiling with -O.  It generates a
        TypeEnv rich in IdInfo
      
      MkIface.mkIface now only generates a ModIface.  A separate
      procedure, MkIface.writeIfaceFile, writes the file out to disk.
      dd313897
  3. 27 Apr, 2005 7 commits
  4. 26 Apr, 2005 3 commits
    • simonmar's avatar
      [project @ 2005-04-26 15:08:16 by simonmar] · f6aa7ddc
      simonmar authored
      When chasing explicit imports, we now look for the module in both the
      home package and external packages, and complain if it is found in
      both:
      
      Chasing modules from: Overlap
      Cannot import `List':
        it was found in both overlap/List.hs and package haskell98-1.0.
        Possible fix: -ignore-package haskell98-1.0
        (imported from overlap/Overlap.hs)
      
      Previously the home module would have been ignored in favour of the
      package module.  It means we're doing a bit more searching, but the
      behaviour is less obscure.
      f6aa7ddc
    • simonmar's avatar
      [project @ 2005-04-26 14:43:31 by simonmar] · ff75ee77
      simonmar authored
      Back out previous revision.
      
      It appears that passing -g to the assembly phase of C compilation
      results in an object file with broken debug info, that gdb can't
      read.  This is probably a bug in gcc and/or binutils, but this change
      means that I can't avoid it (unless we were to hack the pipeline to
      do .c->.s->.o in one stage instead of two).
      ff75ee77
    • sof's avatar
      [project @ 2005-04-26 00:08:17 by sof] · 136861d1
      sof authored
      runSomething: 'rawSystem' might raise an exception to indicate that
      'pgm' couldn't be executed, so catch this here & report.
      
      Merge to STABLE.
      136861d1
  5. 25 Apr, 2005 1 commit
    • simonmar's avatar
      [project @ 2005-04-25 13:02:31 by simonmar] · 50b971bd
      simonmar authored
      Requested by Duncan Coutts: -optc flags get passed to the assembler
      phase too.  It's not obvious, when using GHC to compile a .c file,
      that options need to be passed both with -optc and -opta - gcc doesn't
      need this, for example.
      
      This is an experimental change - if it breaks anything we can back it
      out.  If anyone needs to pass flags to the .c->.s phase *only*, then
      we will need to add another flag for that purpose.  It seems unlikely,
      though (there aren't many flags that affect the assembler only, and
      those that do don't conflict with flags for the C phase).
      50b971bd
  6. 23 Apr, 2005 2 commits
  7. 22 Apr, 2005 6 commits
    • simonmar's avatar
      [project @ 2005-04-22 21:54:37 by simonmar] · 395f4b28
      simonmar authored
      enable splitting on x86_64
      395f4b28
    • sof's avatar
      [project @ 2005-04-22 17:00:48 by sof] · ecb1a539
      sof authored
      [mingw only]
      Better handling of I/O request abortions upon throwing an exception
      to a Haskell thread. As was, a thread blocked on an I/O request was
      simply unblocked, but its corresponding worker thread wasn't notified
      that the request had been abandoned.
      
      This manifested itself in GHCi upon Ctrl-C being hit at the prompt -- the
      worker thread blocked waiting for input on stdin prior to Ctrl-C would
      stick around even though its corresponding Haskell thread had been
      thrown an Interrupted exception. The upshot was that the worker would
      consume the next character typed in after Ctrl-C, but then just dropping
      it. Dealing with this turned out to be even more interesting due to
      Win32 aborting any console reads when Ctrl-C/Break events are delivered.
      
      The story could be improved upon (at the cost of portability) by making
      the Scheduler able to abort worker thread system calls; as is, requests
      are cooperatively abandoned. Maybe later.
      
      Also included are other minor tidyups to Ctrl-C handling under mingw.
      
      Merge to STABLE.
      ecb1a539
    • sof's avatar
      [project @ 2005-04-22 16:01:53 by sof] · a584b4ff
      sof authored
      Until the GHCi linker is made capable of handling .ctors sections in
      PEi object files, stick with __stginits. Being a bit sloppy by
      using 'mingw32_HOST_OS' to test for this.
      a584b4ff
    • simonmar's avatar
      [project @ 2005-04-22 10:21:10 by simonmar] · b0cfcc18
      simonmar authored
      pprLit: when printing a CLabel, prefix it with '&'.  This ensures we
      get the address rather than the value, in the case when the C label
      refers to a variable (as might be the case if it is from a foreign
      import, for example).
      b0cfcc18
    • simonmar's avatar
      [project @ 2005-04-22 10:01:20 by simonmar] · 9b7a97d8
      simonmar authored
      Remove bogus cut-n-pasted comment
      9b7a97d8
    • simonpj's avatar
      [project @ 2005-04-22 02:10:10 by simonpj] · def40b89
      simonpj authored
      Fix hi-boot interface-finding code
      def40b89
  8. 21 Apr, 2005 1 commit
    • simonmar's avatar
      [project @ 2005-04-21 15:28:20 by simonmar] · effd3425
      simonmar authored
      SMP: thunks get an extra header word so that the payload doesn't
      occupy the same space as the updated value.  This is the sum total of
      the changes to compiler/, which are pleasingly few.
      effd3425
  9. 20 Apr, 2005 1 commit
  10. 19 Apr, 2005 1 commit
    • simonmar's avatar
      [project @ 2005-04-19 15:28:35 by simonmar] · 44eaf25c
      simonmar authored
      - DriverPipeline.compile: report errors in GHC_OPTIONS pragmas using the
        Message callback, and give them a proper line number.
      
      - GHC.checkModule: read the GHC_OPTIONS pragma, and report errors
        appropriately.
      44eaf25c
  11. 17 Apr, 2005 2 commits
  12. 16 Apr, 2005 4 commits
    • simonpj's avatar
      [project @ 2005-04-16 22:47:23 by simonpj] · 9d2575d7
      simonpj authored
      Significant clean-up of the handling of hi-boot files. 
      Previously, when compling A.hs, we loaded A.hi-boot, and
      it went into the External Package Table.  It was strange
      but it worked.  This tidy up stops it going anywhere;
      it's just read in, and typechecked into a ModDetails.
      
      All this was on the way to improving the handling of
      instances in hs-boot files, something Chris Ryder wanted.
      I think they work quite sensibly now.  
      
      If I've got all this right (have not had a chance to
      fully test it) we can merge it into STABLE.
      9d2575d7
    • simonpj's avatar
      [project @ 2005-04-16 22:46:01 by simonpj] · f857ebdc
      simonpj authored
      Improve kind error msg; may make some tests change their output
      f857ebdc
    • simonpj's avatar
      [project @ 2005-04-16 22:45:17 by simonpj] · bb551326
      simonpj authored
      Improve location info for kind errors; may make some tests change their output
      bb551326
    • ross's avatar
      [project @ 2005-04-16 16:05:52 by ross] · 872f7e82
      ross authored
      Rejig handling of environments in arrow notation: instead of the
      proc_level stuff, we just record the environment of the proc, and
      use that on the left side of -< and the head of (|...|).
      
      This also makes the arrow1 test yield a compile error, as it should,
      but the error message is uninformative.
      872f7e82
  13. 15 Apr, 2005 2 commits