1. 24 Jul, 2003 3 commits
  2. 23 Jul, 2003 16 commits
  3. 22 Jul, 2003 5 commits
  4. 21 Jul, 2003 9 commits
    • simonmar's avatar
      [project @ 2003-07-21 15:24:42 by simonmar] · 3092faa7
      simonmar authored
      Update the documentation for filenames and related options to reflect
      the new story.  Now we talk about hierarchical modules from the
      outset, and hopefully the whole description is somewhat clearer than
      before.
      3092faa7
    • ross's avatar
      [project @ 2003-07-21 15:14:18 by ross] · 3a223cd2
      ross authored
      Check for unknown flags before (rather than after) checking -o and -ohi
      flags, avoiding confusing behaviour like
      
      % ghc -bad-option -c x.hs
      ghc-6.0: unrecognised flags: -bad-option
      
      % ghc -bad-option -c x.hs -ohi x.hi
      ghc-6.0: -ohi can only be used when compiling a single source file
      Usage: For basic information, try the `--help' option.
      
      % ghc -bad-option -c x.hs -o x.o
      ghc-6.0: can't apply -o to multiple source files
      Usage: For basic information, try the `--help' option.
      
      (looks better with scores of flags)
      
      please merge to STABLE
      3a223cd2
    • simonmar's avatar
      [project @ 2003-07-21 15:05:54 by simonmar] · 665b340a
      simonmar authored
      We use NULL in the headers (at least when -prof is on), so we better
      #include <stdlib.h>.  We normally get it via HsBase.h anyway, but we
      shouldn't rely on that.
      665b340a
    • simonmar's avatar
      [project @ 2003-07-21 14:50:32 by simonmar] · 0d3f3deb
      simonmar authored
      Document that changing directories unloads all modules.
      0d3f3deb
    • simonmar's avatar
      [project @ 2003-07-21 14:33:19 by simonmar] · 95f1b72e
      simonmar authored
      :cd now causes all modules to be unloaded.
      
      This is the easy fix for a problem whereby changing directories will
      cause GHC to try to demand-load objects from the wrong place, because
      it is using relative pathnames.
      
      It's not obvious what the "right" thing to do is if the user changes
      directory with :cd and then does a :reload.  Perhaps the right thing
      to do is to make the search path "sticky", so that it stays relative
      to the original current directory.  This would probably require some
      re-engineering of GHC to only use absolute paths internally.
      95f1b72e
    • simonmar's avatar
      [project @ 2003-07-21 14:28:02 by simonmar] · a38fed41
      simonmar authored
      Comment out the warning about filenames not matching module names.
      a38fed41
    • simonmar's avatar
      [project @ 2003-07-21 11:45:47 by simonmar] · 3087014a
      simonmar authored
      Add support for the new AWAKEN_BQ_CLOSURE macro to the NCG.  Fixes
      broken HEAD builds.
      3087014a
    • simonpj's avatar
      [project @ 2003-07-21 11:06:22 by simonpj] · b8554efd
      simonpj authored
      More on rules and specialisations
      b8554efd
    • simonmar's avatar
      [project @ 2003-07-21 11:01:06 by simonmar] · 16f04e14
      simonmar authored
      When restoring the cost centre in a let-no-escape, don't free the
      stack slot containing it.  We might need the saved cost centre again
      for a recursive call to this let-no-escape.
      
      Should fix profiling a bit more.
      16f04e14
  5. 20 Jul, 2003 2 commits
  6. 18 Jul, 2003 5 commits
    • simonmar's avatar
      [project @ 2003-07-18 16:31:27 by simonmar] · a6e9efb2
      simonmar authored
      Restoring of cost centre in let-no-escape: we need to do this after
      binding the args to stack locations, otherwise we end up grabbing the
      wrong slot.
      
      Should hopefully fix profiling crashes.  We still don't pay any
      attention to the cost centre attached to the let-no-escape binding
      itself, which looks wrong, but I don't intend to do anything about
      that right now.
      a6e9efb2
    • simonmar's avatar
      [project @ 2003-07-18 14:39:05 by simonmar] · 7ede37c9
      simonmar authored
      When doing update-in-place, there is a (small) chance that the thunk
      may have been blackholed and another thread might be waiting on it.
      We can't therefore just splat it with the value; we have to check
      whether it is a blocking queue and awaken any threads that might be
      waiting on it if so.
      
      Should fix the scavenge_mutable_list crash reported recently.  If it
      does, it will be merged to STABLE.
      7ede37c9
    • simonmar's avatar
      [project @ 2003-07-18 13:25:55 by simonmar] · 17b0047a
      simonmar authored
      We don't need hacky filename comparisons in ppFilesFromSummaries now
      that the real bug in SysTools has been fixed.
      17b0047a
    • simonmar's avatar
      [project @ 2003-07-18 13:18:06 by simonmar] · 2d532e45
      simonmar authored
      Revision to the filename policy changes of yesterday.  This fixes the
      broken stage2 and library builds.
      
      The new story is this:
      
        A Haskell source filename should take the form
      
      	<path>/<basename>.<extension>
      
        where
      
      	<path>      is any directory
      	<basename>  is the name of the module, with dots replaced by slashes.
      	<extension> is ".hs" or ".lhs".
      
        given a source filename in this form, GHC will produce object and
        interface files named respectively:
      
              <hidir>/<basename>.<hisuf>
      	<odir>/<basename>.<osuf>
      
        where
      
      	<hidir>   is the value of the -hidir flag, if one was given, or
      		  the value of <path> from the source file otherwise.
      
      	<odir>    the same, for the -odir flag.
      
              <osuf>	  the object suffix (settable with the -osuf flag)
      	<hisuf>   the hi suffix (settable with the -hisuf flag)
      
      For example, if I have a module A.B.C, in source file foo/A/B/C.hs,
      then GHC will create foo/A/B/C.hi and foo/A/B/C.o.
      
      If GHC is given a source filename which is *not* of the form
      <path>/<basename>.<extension>, then it uses a different strategy.
      This happens if the filename does not follow the module name.  In this
      case, GHC will set <path> to be the directory in which the source file
      resides, and <basename> to the module name with dots replaced by
      slashes, and then use the rules above.
      
      For example, if we put module A.B.C in foo/bar/baz.hs, then GHC will
      produce foo/bar/A/B/C.o and foo/bar/A/B/C.hi.
      2d532e45
    • simonmar's avatar
      [project @ 2003-07-18 12:55:06 by simonmar] · 36265a1a
      simonmar authored
      oops, remove excess baggage in previous commit
      36265a1a