1. 04 Jan, 2002 1 commit
  2. 05 Dec, 2001 1 commit
    • sof's avatar
      [project @ 2001-12-05 00:08:26 by sof] · 099c2716
      sof authored
      - new option, -keep-ilx-file, for stashing away ILX input.
      - restrict ILX-specific code/defs to only be visible iff ILX is #defined.
      099c2716
  3. 04 Dec, 2001 1 commit
  4. 26 Oct, 2001 2 commits
    • sof's avatar
      [project @ 2001-10-26 05:31:05 by sof] · c2867d09
      sof authored
      pipeLoop: Handle pipelines that end with ineffective
      final stages (e.g., CPP and/or PP) correctly. i.e.,
      need to copy the outcome of the pipeline into the
      expected output file, since the final stage didn't.
      c2867d09
    • 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
  5. 16 Oct, 2001 1 commit
  6. 03 Oct, 2001 1 commit
  7. 01 Oct, 2001 2 commits
  8. 06 Sep, 2001 1 commit
  9. 04 Sep, 2001 1 commit
    • ken's avatar
      [project @ 2001-09-04 18:29:20 by ken] · fb7a723b
      ken authored
      THIS CHANGE AFFECTS ALL OBJECT FILES COMPILED FROM HASKELL.
      Please say "make -C ghc/lib/std clean; make -C hslibs clean".
      
      This commit eliminates spurious warning messages when compiling on
      the Alpha.  There are two kinds of spurious warning messages:
      
      (1) gcc: -noprefix_recognition: linker input file unused since linking not done
      
          This warning is because we pass the flag "-Xlinker -noprefix_recognition"
          to gcc.  We remove this warning by no longer passing the flag to gcc,
          and by removing the reason we were passing the flag in the first place:
          __init_* is now renamed to __stginit_*.
      
      (2) .../includes/Regs.h: warning: call-clobbered register used for global
          register variable
      
          This warning and all other warnings except (1), we eliminate by
          passing the -w flag to gcc.
      
      MERGE TO STABLE BRANCH
      fb7a723b
  10. 30 Aug, 2001 1 commit
  11. 28 Aug, 2001 1 commit
  12. 21 Aug, 2001 2 commits
    • simonmar's avatar
      [project @ 2001-08-21 16:04:43 by simonmar] · 684de20b
      simonmar authored
      Oops, I bungled the -no-recomp fix.  This probably had something to do
      with the fact that -no-recomp is perhaps the worst-named option in the
      history of compilers, and the internal variable used to store the
      value of -no-recomp actually stores (not -no-recomp), perhaps in an
      attempt to reverse the confusion generated by the obsurely named
      option.  In the end I figured I had a 50/50 chance of getting it
      right...
      684de20b
    • simonmar's avatar
      [project @ 2001-08-21 14:34:58 by simonmar] · dd8ab37f
      simonmar authored
      make -no-recomp work with --make
      dd8ab37f
  13. 19 Aug, 2001 1 commit
  14. 17 Aug, 2001 2 commits
    • apt's avatar
      [project @ 2001-08-17 17:18:51 by apt] · 1dfaee31
      apt authored
      How I spent my summer vacation.
      
      Primops
      -------
      
      The format of the primops.txt.pp file has been enhanced to allow
      (latex-style) primop descriptions to be included.  There is a new flag
      to genprimopcode that generates documentation including these
      descriptions. A first cut at descriptions of the more interesting
      primops has been made, and the file has been reordered a bit.
      
      31-bit words
      ------------
      
      The front end now can cope with the possibility of 31-bit (or even 30-bit)
      Int# and Word# types.  The only current use of this is to generate
      external .core files that can be translated into OCAML source files
      (OCAML uses a one-bit tag to distinguish integers from pointers).
      The only way to get this right now is by hand-defining the preprocessor
      symbol WORD_SIZE_IN_BITS, which is normally set automatically from
      the familiar WORD_SIZE_IN_BYTES.
      
      Just in case 31-bit words are used, we now have Int32# and Word32# primitive types
      and an associated family of operators, paralleling the existing 64-bit
      stuff.  Of course, none of the operators actually need to be implemented
      in the absence of a 31-bit backend.
      There has also been some minor re-jigging of the 32 vs. 64 bit stuff.
      See the description at the top of primops.txt.pp file for more details.
      Note that, for the first time, the *type* of a primop can now depend
      on the target word size.
      
      Also, the family of primops intToInt8#, intToInt16#, etc.
      have been renamed narrow8Int#, narrow16Int#, etc., to emphasize
      that they work on Int#'s and don't actually convert between types.
      
      Addresses
      ---------
      
      As another part of coping with the possibility of 31-bit ints,
      the addr2Int# and int2Addr# primops are now thoroughly deprecated
      (and not even defined in the 31-bit case) and all uses
      of them have been removed except from the (deprecated) module
      hslibs/lang/Addr
      
      Addr# should now be treated as a proper abstract type, and has these suitable operators:
      
      nullAddr# : Int# -> Addr# (ignores its argument; nullary primops cause problems at various places)
      plusAddr# :  Addr# -> Int# -> Addr#
      minusAddr : Addr# -> Addr# -> Int#
      remAddr# : Addr# -> Int# -> Int#
      
      Obviously, these don't allow completely arbitrary offsets if 31-bit ints are
      in use, but they should do for all practical purposes.
      
      It is also still possible to generate an address constant, and there is a built-in rule
      that makes use of this to remove the nullAddr# calls.
      
      Misc
      ----
      There is a new compile flag -fno-code that causes GHC to quit after generating .hi files
      and .core files (if requested) but before generating STG.
      
      Z-encoded names for tuples have been rationalized; e.g.,
      Z3H now means an unboxed 3-tuple, rather than an unboxed
      tuple with 3 commas (i.e., a 4-tuple)!
      
      Removed misc. litlits in hslibs/lang
      
      Misc. small changes to external core format.  The external core description
      has also been substantially updated, and incorporates the automatically-generated
      primop documentation; its in the repository at /papers/ext-core/core.tex.
      
      A little make-system addition to allow passing CPP options to compiler and
      library builds.
      1dfaee31
    • sof's avatar
      [project @ 2001-08-17 16:06:30 by sof] · d30f8fc1
      sof authored
      - have SysTools.FileOption take a prefix that is not to be transformed
        (this is to accommodate MS-style cmd-line options of the kind: "/out=foo.obj")
      - have users of Finder.mkHomeModuleLocn catch up with recent change to its type.
      d30f8fc1
  15. 16 Aug, 2001 1 commit
  16. 15 Aug, 2001 3 commits
  17. 10 Aug, 2001 1 commit
    • sof's avatar
      [project @ 2001-08-10 23:08:25 by sof] · 215dad7b
      sof authored
      Added SysTools.Option, which lets you identify what are
      file-path like options to SysTool.run<Foo>.
      
      Using this, we can now precisely control when to transform
      filepaths into a host-compatible format (i.e., we can DOSify
      just the right bits under Win32).
      215dad7b
  18. 03 Aug, 2001 1 commit
    • sof's avatar
      [project @ 2001-08-03 07:44:47 by sof] · 65142ed3
      sof authored
      Make dependency generation work a little bit better
      (stage1 goes through OK; yet to do a stage2, but
      thought I'd commit before I hit the sack).
      65142ed3
  19. 31 Jul, 2001 1 commit
  20. 24 Jul, 2001 1 commit
  21. 23 Jul, 2001 1 commit
  22. 19 Jul, 2001 1 commit
  23. 17 Jul, 2001 1 commit
    • rrt's avatar
      [project @ 2001-07-17 14:48:04 by rrt] · 544179c9
      rrt authored
      1. Make GHC work with paths and filenames containing spaces (hopefully).
      This is done by quoting all arguments sent to the shell. To avoid causing
      problems, this means that each argument in a list had *better* be a single
      argument, hence the next commit to PackageSrc.hs.
      
      2. undosify the path passed as the -h argument to unlit, to make unlit work
      on Windows again.
      
      3. Fix getExecDir for Windows (broken by previous changes to the meaning of
      -B).
      544179c9
  24. 11 Jul, 2001 3 commits
    • 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:50:49 by sof] · 65dda595
      sof authored
      run_phase: added tysig
      65dda595
    • 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
  25. 03 Jul, 2001 1 commit
  26. 29 Jun, 2001 1 commit
    • rrt's avatar
      [project @ 2001-06-29 12:58:20 by rrt] · 045a18db
      rrt authored
      Change the way that IO exceptions are handled and some associated details:
      
      1. In the top-level exception handler, don't treat IO exceptions as a panic,
      just print them out and stop.
      
      2. In the slurping routines SysTools.copy and the fake cpp in
      DriverPipeline, don't catch IO exceptions, just let them propagate.
      045a18db
  27. 27 Jun, 2001 2 commits
    • simonmar's avatar
      [project @ 2001-06-27 16:38:17 by simonmar] · 47108330
      simonmar authored
      When we're in --interactive or --make mode, we don't even *look* for
      interface files in the home package.
      
      This means that cd'ing into fptools/ghc/lib/std and starting up GHCi
      Just Works, which is a good thing.  It also subsumes the previous hack
      about checking whether we're renaming a command-line expression before
      allowing a home interface to be loaded.
      
      The downside is that if you try to use a qualified name for a home
      module that's not loaded, you'll get a slightly less informative error
      message: "interface file not found" rather than "module not loaded",
      but this could be improved.
      47108330
    • simonpj's avatar
      [project @ 2001-06-27 10:35:48 by simonpj] · 567cd49a
      simonpj authored
      Add comment
      567cd49a
  28. 26 Jun, 2001 1 commit
  29. 25 Jun, 2001 1 commit
  30. 15 Jun, 2001 2 commits
    • simonmar's avatar
      [project @ 2001-06-15 15:15:33 by simonmar] · 8878d049
      simonmar authored
      Restore an #ifdef mingw32_TARGET_OS that shouldn't have been removed
      (but do it better this time and don't use an arch-specific #ifdef).
      8878d049
    • simonpj's avatar
      [project @ 2001-06-15 08:29:57 by simonpj] · 972d6442
      simonpj authored
      Some tidying up
      
      * Remove CmStaticInfo
         - GhciMode moves to HscTypes
         - The package stuff moves to new module main/Packages.lhs
      
      [put any package-related stuff in the new module]
      
      * Add Outputable.docToSDoc
      972d6442