1. 04 Jan, 2002 1 commit
  2. 29 Oct, 2001 1 commit
  3. 26 Oct, 2001 1 commit
    • sof's avatar
      [project @ 2001-10-26 00:53:27 by sof] · 11447047
      sof authored
      Added support for a custom pre-processor pass:
      
        ghc -F -pgmF/path/to/a/pre/processor ...
      
      will now run /path/to/a/pre/processor over Haskell
      input sources. It is positioned in the compilation
      pipeline just before the compiler proper, but after
      unlit'ing and CPP'ing. The pre-processor is passed
      the following command-line when invoked:
      
         /path/to/a/pre/processor orig_input_source_file_path
         			    input_source_file
      			    output_source_file
      			    <other options>
      
      Additionally options can be fed directly to the
      pre-processor via -optF<option> options.
      
      The -F option causes the pre-processor to run _iff_ one
      has been specified via -pgmF (there's some redundancy
      here, but I went for this cmd-line interface as it's
      consistent with the general -pgm<Foo> story).
      
      Motivation:
      
       * hooking in a pre-processor is occasionally useful;
         e.g., cheap&cheerful way to integrate language
         extensions with GHC, compile-time syntax/style
         checking etc.
      
       * Artfully re-using the CPP phase (by specifying your
         own via -pgmP) doesn't really work as the driver
         really assumes that GNU cpp is what's being invoked
         (and path mangling is also performed on Win32 platforms).
      
         Additionally, there are cases when you want to be
         able to run CPP _and_ a pre-processor.
      
       * The alternative of running the pre-processor as a
         separate program in a Makefile (say) doesn't work
         in interpreted mode, and this approach also forces
         you to give up on recompilation checking when in
         batch mode.
      11447047
  4. 15 Aug, 2001 1 commit
  5. 22 Jun, 2001 1 commit
  6. 14 Jun, 2001 1 commit
  7. 08 May, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-05-08 10:58:48 by simonmar] · b8b47abe
      simonmar authored
      Add
      
      	DriverPhases.haskellish_src_suffix :: String -> Bool
      	DriverPhases.haskellish_src_file   :: String -> Bool
      
      which return True for suffixes of Haskell source files only.  The
      existing haskellish_suffix and haskellish_file return True also for
      .raw_s and .hc files.
      
      We use these instead of haskellish_file in Main.main when deciding
      whether to preprocess a file.
      
      Fixes: compilation of .raw_s files, and potential bugs with
      compilation of .hc files.
      b8b47abe
  8. 04 May, 2001 1 commit
  9. 13 Mar, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-03-13 12:50:29 by simonmar] · 10cbc75d
      simonmar authored
      Some rearrangements that Simon & I have been working on recently:
      
          - CoreSat is now CorePrep, and is a general "prepare-for-code-
            generation" pass.  It does cloning, saturation of constructors &
            primops, A-normal form, and a couple of other minor fiddlings.
      
          - CoreTidy no longer does cloning, and minor fiddlings.  It doesn't
            need the unique supply any more, so that's removed.
      
          - CoreToStg now collects CafInfo and the list of CafRefs for each
            binding.  The SRT pass is much simpler now.
      
          - IdInfo now has a CgInfo field for "code generator info".  It currently
            contains arity (the actual code gen arity which affects the calling
            convention as opposed to the ArityInfo which is a measure of how
            many arguments the Id can be applied to before it does any work), and
            CafInfo.
      
            Previously we overloaded the ArityInfo field to contain both
            codegen arity and simplifier arity.  Things are cleaner now.
      
          - CgInfo is collected by CoreToStg, and passed back into CoreTidy in
            a loop.  The compiler will complain rather than going into a black
            hole if the CgInfo is pulled on too early.
      
          - Worker info in an interface file now comes with arity info attached.
            Previously the main arity info was overloaded for this purpose, but
            it lead to a few hacks in the compiler, this tidies things up somewhat.
      
      Bottom line: we removed several fragilities, and tidied up a number of
      things.  Code size should be smaller, but we'll see...
      10cbc75d
  10. 27 Feb, 2001 2 commits
    • simonmar's avatar
      [project @ 2001-02-27 15:25:18 by simonmar] · 8a097699
      simonmar authored
      - clean up recognising of objects on the ghci command line
      - recognise objects on the ghc --make command line, and link them in (untested)
      8a097699
    • rrt's avatar
      [project @ 2001-02-27 12:36:36 by rrt] · ec46629d
      rrt authored
      Add ILX support (all #ifdefed on ILX for now) and tidied up some
      indentation. We now support --mk-dll, so remove the comment about adding
      that.
      ec46629d
  11. 03 Jan, 2001 1 commit
  12. 16 Nov, 2000 1 commit
    • sewardj's avatar
      [project @ 2000-11-16 16:23:03 by sewardj] · 2829e3a6
      sewardj authored
      * Move along the source-changed checkery.
      * Make the driver put object files in the right place when using CM.
      * Don't do hscNoRecomp in one-shot mode.
      2829e3a6
  13. 13 Nov, 2000 1 commit
  14. 16 Oct, 2000 1 commit
    • simonmar's avatar
      [project @ 2000-10-16 15:16:59 by simonmar] · 90fecc3b
      simonmar authored
      re-implement the finder using information from the driver.  The Finder
      now has type
      
      	ModuleName -> IO (Maybe (Module, ModuleLocation)
      
      where
      	data ModuleLocation  = ModuleLocation {
      				hs_file  :: FilePath,
      				hi_file  :: FilePath,
      				obj_file :: FilePath
      			      }
      
      For a module in another package, the hs_file and obj_file components
      are undefined.
      90fecc3b