1. 07 Nov, 2001 1 commit
  2. 25 Oct, 2001 1 commit
  3. 04 Oct, 2001 1 commit
  4. 01 Oct, 2001 1 commit
  5. 24 Sep, 2001 1 commit
  6. 23 Sep, 2001 1 commit
  7. 12 Sep, 2001 2 commits
  8. 08 Sep, 2001 1 commit
    • sof's avatar
      [project @ 2001-09-08 21:42:07 by sof] · ec2e177f
      sof authored
      Remove ugly special casing - if you want to turn off the
      default rule for GHCI_LIBRARY, set DONT_WANT_STD_GHCI_LIB_RULE
      to YES in your Makefile prior to including $(TOP)/mk/target.mk
      ghc/lib/std and hslibs/win32 both do this now on mingw32.
  9. 17 Aug, 2001 3 commits
    • apt's avatar
      [project @ 2001-08-17 17:18:51 by apt] · 1dfaee31
      apt authored
      How I spent my summer vacation.
      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.
      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
      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.
      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.
    • rrt's avatar
      [project @ 2001-08-17 11:14:28 by rrt] · 85778bb4
      rrt authored
      std.dll now gets made by target.mk rules
    • rrt's avatar
      [project @ 2001-08-17 08:35:24 by rrt] · 88f81848
      rrt authored
      Make sure std is compiled with -fvia-C (NCG can't cope)
  10. 16 Aug, 2001 2 commits
    • sof's avatar
      [project @ 2001-08-16 22:54:24 by sof] · 48e7208b
      sof authored
      Death to GHC_INCLUDE_DIR (well, almost).
      - mk/target.mk: get rid off the abomination of having SRC_CC_OPTS include
        GHC_INCLUDE_DIR and GHC_RUNTIME_DIR for all fptools/ projects.
      - mk/suffix.mk: %.pp suffix rule no longer hardwires in the use of GHC_INCLUDE_DIR;
        just $(CPP_OPTS). ==> If you want GHC_INCLUDE_DIR on the include path, better
        add it to SRC_CPP_OPTS (say) at the point where you need it (ghc/compiler/Makefile
        and ghc/lib/std/Makefile do this now).
      - wipe out the use of -I$(GHC_INCLUDE_DIR) in HC_OPTS in hslibs/; not needed.
      - hslibs/mk/boilerplate.mk still define GHC_{IO_}INCLUDE_DIR for the purpose
        of using it when compiling .c files. It should be possible to get rid off it
        by having CC=$(HC), but I haven't imposed that change (yet).
    • rrt's avatar
      [project @ 2001-08-16 14:41:40 by rrt] · 8b1d1b8b
      rrt authored
      Remove spurious duplicate rule for PrelGHC.$(way)hi.
      Improve rule for std.vlb, thanks to a fix to mkvlb.
      Add -DILX to SRC_HC_OPTS (needed for PrelTopHandler).
  11. 15 Aug, 2001 3 commits
  12. 08 Aug, 2001 1 commit
  13. 04 Aug, 2001 1 commit
    • ken's avatar
      [project @ 2001-08-04 06:19:54 by ken] · ea138284
      ken authored
      NB: This commit renames some files.  In each of your build directories,
          you will need to:
      	rm -f ghc/compiler/prelude/primops.txt
      	rm -f ghc/compiler/prelude/primops.i
      	rm -f ghc/lib/std/PrelGHC.hi-boot
      	lndir ../fptools	# or wherever your CVS working directory is
      The change:
      Run PrelGHC.hi-boot through the preprocesor, as we already do primops.txt.
      This commit introduces a new prefix, ".pp", which means "run through
      preprocesor".  In a previous commit, I changed ghc/compiler/Makefile
      to preprocess primops.txt into primops.i.  That is gone now.  We now
      preprocess primops.txt.pp (a file in the CVS repository) into primops.txt
      (a platform-dependent file, created at build time).  We also preprocess
      PrelGHC.hi-boot.pp (a file in the CVS repository) into PrelGHC.hi-boot
      (a platform-dependent file, created at build time).
      The reason for using the preprocessor is because fewer primops are defined
      if SUPPORT_LONG_LONGS is undefined.  SUPPORT_LONG_LONGS is undefined on
      64-bit architectures such as the Alpha.
  14. 01 Aug, 2001 1 commit
  15. 26 Jul, 2001 1 commit
    • ken's avatar
      [project @ 2001-07-26 03:08:38 by ken] · 47774449
      ken authored
      Run prelude/primops.txt through the preprocessor, to weed out
      primitives that don't (need to) exist on 64-bit architectures.
  16. 24 Jul, 2001 3 commits
  17. 13 Jul, 2001 1 commit
  18. 05 Jul, 2001 2 commits
  19. 28 Jun, 2001 1 commit
  20. 13 Jun, 2001 1 commit
  21. 12 Jun, 2001 1 commit
  22. 11 Jun, 2001 2 commits
  23. 18 May, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-05-18 16:54:04 by simonmar] · d9af408e
      simonmar authored
      I/O library rewrite
      This commit replaces the old C/Haskell I/O implementation with a new
      Haskell-only one using the new FFI & hsc2hs.
      main points:
         - lots of code deleted: we're about 3000 lines of C lighter,
           but the amount of Haskell code is about the same.
         - performance is ok: some operations are faster, others are
           slower.  There's still some tuning to do, though.
         - the new library is designed to handle read/write streams
           much better: a read/write stream gets a special kind of
           handle internally called a "DuplexHandle", which actually
           contains two separate handles, one for writing and one for
           reading.  The upshot is that you can do simultaneous reading
           and writing to/from a socket or FIFO without any locking
           problems.  The effect is similar to calling socketToHandle
           twice, except that finalization works properly (creating
           two separate Handles could lead to the socket being closed
           too early when one of the Handles is GC'd).
         - hConnectTo and withHandleFor are gone (no one responded to
           my mail on GHC users, but we can always bring 'em back if
         - I made a half-hearted attempt at keeping the system-specific
           code in one place: see PrelPosix.hsc.
         - I've rearranged the I/O tests and added lots more.
           ghc/tests/lib/IO now contains Haskell 98-only IO tests,
           ghc/test/lib/{IOExts, Directory, Time} now contain tests for
           the relevant libraries.  I haven't quite finished in here yet,
           the IO tests work but the others don't yet.
         - I haven't done anything about Unicode yet, but now we can
           start to discuss what needs doing here.  The new library
           is using MutableByteArrays for its buffers because that
           turned out to be a *lot* easier (and quicker) than malloc'd
           buffers - I hope this won't cause trouble for unicode
           translations though.
      WARNING: Windows users refrain from updating until we've had a chance
      to fix any issues that arise.
      Testing: the basic H98 stuff has been pretty thoroughly tested, but
      the new duplex handle stuff is still a little green.
  24. 30 Mar, 2001 1 commit
  25. 29 Mar, 2001 2 commits
  26. 26 Mar, 2001 1 commit
  27. 23 Mar, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-03-23 16:36:20 by simonmar] · 50027272
      simonmar authored
      Changes to support bootstrapping the compiler from .hc files.  It's
      not quite working yet, but it's not far off.
        - the biggest change is that any injected #includes are now placed in
          the .hc file at generation time, rather than compilation time.  I
          can't see any reason not to do this - it makes it clear by looking at
          the .hc file which files are being #included, it means one less
          temporary file at compilation time, and it means the .hc file is more
        - all the gruesomeness is in mk/bootstrap.mk, which handles building
          .hc files without a ghc driver.
  28. 04 Mar, 2001 1 commit
  29. 22 Feb, 2001 1 commit