1. 12 Jul, 2001 7 commits
    • simonpj's avatar
      [project @ 2001-07-12 16:21:22 by simonpj] · ab46fd8e
      simonpj authored
      --------------------------------------------
      	Fix another bug in the squash-newtypes story.
      	--------------------------------------------
      
      [This one was spotted by Marcin, and is now enshrined in test tc130.]
      
      The desugarer straddles the boundary between the type checker and
      Core, so it sometimes needs to look through newtypes/implicit parameters
      and sometimes not.  This is really a bit painful, but I can't think of
      a better way to do it.
      
      The only simple way to fix things was to pass a bit more type
      information in the HsExpr type, from the type checker to the desugarer.
      That led to the non-local changes you can see.
      
      On the way I fixed one other thing.  In various HsSyn constructors
      there is a Type that is bogus (bottom) before the type checker, and
      filled in with a real type by the type checker.  In one place it was
      a (Maybe Type) which was Nothing before, and (Just ty) afterwards.
      I've defined a type synonym HsTypes.PostTcType for this, and a named
      bottom value HsTypes.placeHolderType to use when you want the bottom
      value.
      ab46fd8e
    • simonpj's avatar
      [project @ 2001-07-12 14:51:28 by simonpj] · 6d1815b0
      simonpj authored
      Fix the module import story to match what the Revised
      Haskell Report says
      
      1. 	Don't import qualified names of things that aren't imported
      
      2.	Fix a bug that meant
      		import A hiding( D )
      	where D is a data constructor, didn't work.
      	[The fix is to use IEVar not IEThingAbs in the
      	want_hiding case of get_item in RnNames.filterImports
      6d1815b0
    • rrt's avatar
      [project @ 2001-07-12 13:32:25 by rrt] · 9f3b6ad3
      rrt authored
      Rewire so that hsc.c files get built as part of cbits library.
      9f3b6ad3
    • rrt's avatar
      [project @ 2001-07-12 12:59:48 by rrt] · 36d394f3
      rrt authored
      Fix spacing
      36d394f3
    • rrt's avatar
      [project @ 2001-07-12 12:58:39 by rrt] · ce6b5c20
      rrt authored
      Two fixes:
      
      1. Don't emit "native" any more.
      
      2. Add import of mscorlib to the start of every output file.
      ce6b5c20
    • rrt's avatar
      [project @ 2001-07-12 10:37:55 by rrt] · 43ad8a63
      rrt authored
      Change access to errorHdrHook back into a foreign label (this is now
      supported by the NCG, or should be, and in any case, we don't build
      HSstd with the NCG).
      43ad8a63
    • rrt's avatar
      [project @ 2001-07-12 10:34:54 by rrt] · 6cdbb12e
      rrt authored
      Remove addrOf_ErrorHdrHook, as the NCG now can (or should) cope with
      foreign labels, and in any case, we don't use the NCG to build the
      standard library.
      
      The motivation for this fix is preventing HSstd_cbits depending on the
      RTS, so that it can be built as a DLL (for .NET) without needing to
      get the RTS built as a DLL (that way lies madness).
      6cdbb12e
  2. 11 Jul, 2001 11 commits
    • sof's avatar
      [project @ 2001-07-11 22:47:32 by sof] · fa22b47c
      sof authored
      Append final newline to _stub.{c,h} output
      fa22b47c
    • sof's avatar
      [project @ 2001-07-11 19:48:07 by sof] · 17629712
      sof authored
      Prev commit which tried to get rid of the 'ineffective CPP'
      stage broke an invariant/assumption made by DriverPipeline.genPipeline,
      I'm afraid.
      
      The invariant being that from the input filename to a compilation
      pipeline, the start stage/phase can be uniquely determined
      (via DriverPhases.startPhase). run_phase no longer guarantees
      this, its result filename may now be equal to the input filename.
      [This resulted in -M not working properly when -cpp wasn't also used].
      
      Patch this up by having the input filename to a compilation pipeline
      stage be tagged with the assumed suffix of the output. This is
      really just papering over the cracks, the proper way to tidy this
      up is to avoid having to do the two-stage compilation pipeline in
      Main.main.compileFile, i.e., reconsider how OPTIONS pragmas are
      handled. I decided not to try to do this now for fear of destabilising
      HEAD even further.
      17629712
    • sof's avatar
      [project @ 2001-07-11 14:51:49 by sof] · b2c6dceb
      sof authored
      runSomething: don't export it
      b2c6dceb
    • sof's avatar
      [project @ 2001-07-11 14:50:49 by sof] · 65dda595
      sof authored
      run_phase: added tysig
      65dda595
    • rrt's avatar
      [project @ 2001-07-11 13:24:24 by rrt] · ad428ac6
      rrt authored
      Replace GhcLibToolsHcOpts with FptoolsHcOpts, and make it apply to all
      programs in fptools, not just the hslibs tools. Now there's a way of
      controlling compiler flags to all programs in the tree, so
      
      a) by default all utilities should be optimised (before this was only done
      for one or two like hsc2hs)
      
      b) if you're doing development work, you can get everything built quicker by
      setting FptoolsHcOpts appropriately
      ad428ac6
    • rrt's avatar
      [project @ 2001-07-11 13:10:31 by rrt] · f206503f
      rrt authored
      Don't add -O here; should be up to the user
      f206503f
    • rrt's avatar
      [project @ 2001-07-11 11:01:59 by rrt] · 922de753
      rrt authored
      Make ghc-pkg find its path on Windows
      922de753
    • rrt's avatar
      [project @ 2001-07-11 10:20:43 by rrt] · 4fcac006
      rrt authored
      Fix spacing bogon.
      4fcac006
    • rrt's avatar
      [project @ 2001-07-11 10:17:51 by rrt] · e9622e23
      rrt authored
      Rewrite getExecDir to use GetModuleFileName on Windows (thanks, sof),
      and switch unDosifyPath's definitions between Windows and Unix so that
      it actually does something on Windows.
      e9622e23
    • sof's avatar
      [project @ 2001-07-11 01:27:04 by sof] · 2c4b2be6
      sof authored
      Do away with that 'ineffective CPP' malarkey. run_phase now returns
      the FilePath of its output file; in the event CPP isn't required,
      we then just return the input file. (The extra LINE pragma that
      the 'ineffective CPP' inserted was a NOP).
      
      Appears to speed things up a bit; mingw/Win32 builds no longer need to
      do a slow copyFile operation - other plats are saved from doing a
      System.system call.
      
      BTW, there's an opportunity to shorten the critical path for .hs files
      some in the driver: at the moment 'unlit' is run over all input.
      2c4b2be6
    • sof's avatar
      [project @ 2001-07-11 00:13:22 by sof] · d0dc1b03
      sof authored
      Avoid needless redefn of HAVE_ALLOCA
      d0dc1b03
  3. 10 Jul, 2001 6 commits
  4. 09 Jul, 2001 7 commits
    • sof's avatar
      [project @ 2001-07-09 19:45:16 by sof] · 89d038e0
      sof authored
      Hmm..are the Cambridge offices running low on oxygen? Desloppified to make stage2 work again
      89d038e0
    • sof's avatar
      [project @ 2001-07-09 19:09:39 by sof] · ea16f4fd
      sof authored
      Undo prev. commit, it was just plain wrong
      ea16f4fd
    • sof's avatar
      [project @ 2001-07-09 17:44:08 by sof] · f6921f04
      sof authored
      -- 'hybrid' support for DOS-style paths in directory lists.
      --
      -- That is, if "foo:bar:baz" is used, this interpreted as
      -- consisting of three entries, 'foo', 'bar', 'baz'.
      -- However, with "c:/foo:c:\\foo;x:/bar", this is interpreted
      -- as four elts, "c:/foo", "c:\\foo", "x", and "/bar" --
      -- *provided* c:/foo exists and x:/bar doesn't.
      --
      -- Notice that no attempt is made to fully replace the 'standard'
      -- split marker ':' with the Windows / DOS one, ';'. The reason being
      -- that this will cause too much breakage for users & ':' will
      -- work fine even with DOS paths, if you're not insisting on being silly.
      -- So, use either.
      f6921f04
    • sof's avatar
      [project @ 2001-07-09 16:30:50 by sof] · 9ac766cb
      sof authored
      get rid off gcc warning
      9ac766cb
    • sewardj's avatar
      [project @ 2001-07-09 13:21:09 by sewardj] · 4b7aede9
      sewardj authored
      Zap another ghc_411_at_least.
      4b7aede9
    • simonmar's avatar
      [project @ 2001-07-09 10:46:46 by simonmar] · b79ce3aa
      simonmar authored
      Change the test for whether to include GHCi support in the compiler to
      be closer to "are we bootstrapping with the same compiler".
      b79ce3aa
    • simonmar's avatar
      [project @ 2001-07-09 08:24:08 by simonmar] · 07f1e0f9
      simonmar authored
      oops: I changed the names of some of the GC stubs, and didn't realise they
      were mentioned here too.
      07f1e0f9
  5. 08 Jul, 2001 1 commit
  6. 06 Jul, 2001 6 commits
    • rrt's avatar
      [project @ 2001-07-06 15:39:47 by rrt] · 130677d4
      rrt authored
      Fix path for Windows jade
      130677d4
    • simonmar's avatar
      [project @ 2001-07-06 14:18:53 by simonmar] · 96a40531
      simonmar authored
      Add test for broken takeMVar/putMVar in 5.00.2.
      
      Bug reported by Greg Mildenhall <gregm@pc-121.cs.uwa.edu.au> on
      comp.lang.functional..
      96a40531
    • rrt's avatar
      [project @ 2001-07-06 14:15:50 by rrt] · f1c15287
      rrt authored
      lib/gcc-lib -> gcc-lib
      f1c15287
    • simonmar's avatar
      [project @ 2001-07-06 14:11:38 by simonmar] · 1c5d2a15
      simonmar authored
      Fix a couple of nasty bugs in the take/putMVar implementation.
      
      Now we keep the invariant that a full MVar only has blocked putMVars
      on its queue, and an empty MVar only has blocked takeMVars on its
      queue.  It was the absence of this invariant that led to accidental
      deadlock before.
      
      The second bug is that there was a window between a blocked thread
      being restarted and it actually retrying the takeMVar/putMVar
      operation when it could receive an exception, which would also lead to
      deadlock.
      
      The solution to both these problems (as suggested by Simon P.J.) is to
      atomically wake up and perform the next blocked putMVar when we do a
      take, and vice versa.  As a side effect, takeMVar & putMVar should be
      much faster when blocking & restarting, because we now shortcut the
      retrying of the blocked operation and we use a more specialised stack
      layout for the blocked thread.  Unfortunately, things got more
      complicated too, but there are comments explaining what's going on.
      1c5d2a15
    • apt's avatar
      [project @ 2001-07-06 14:05:14 by apt] · 574b218d
      apt authored
      fix eqType bug
      574b218d
    • rrt's avatar
      [project @ 2001-07-06 10:53:04 by rrt] · efeb7db1
      rrt authored
      New version for GHC 5
      efeb7db1
  7. 05 Jul, 2001 2 commits