1. 23 May, 2009 1 commit
  2. 05 Sep, 2008 2 commits
  3. 24 Jun, 2008 2 commits
  4. 23 Jun, 2008 1 commit
  5. 16 Jun, 2008 1 commit
    • Ian Lynagh's avatar
      More commandline flag improvements · 0f5e104c
      Ian Lynagh authored
      * Allow -ffoo flags to be deprecated
      * Mark some -ffoo flags as deprecated
      * Avoid using deprecated flags in error messages, in the build system, etc
      * Add a flag to en/disable the deprecated flag warning
  6. 14 May, 2008 1 commit
    • chevalier@alum.wellesley.edu's avatar
      Cabalize ext-core tools · b84b5969
      chevalier@alum.wellesley.edu authored
      I cabalized the ext-core tools, so now they can be built as
      a library. The driver program has to be built separately.
      Also updated genprimopcode to reflect the new module hierarchy
      for the Core tools.
  7. 12 Apr, 2008 1 commit
  8. 14 Apr, 2008 1 commit
  9. 10 Apr, 2008 1 commit
    • chevalier@alum.wellesley.edu's avatar
      Extend genprimopcode to print primop types for ext-core · 07d1b116
      chevalier@alum.wellesley.edu authored
      I added a new flag, --make-ext-core-source, to genprimopcode. It prints out the
      type information for primops that the External Core typechecker needs. This
      replaces the old mechanism where the ext-core tools had a hard-wired Prims
      module that could get out of sync with the old primops.txt. Now, that won't happen.
  10. 29 Mar, 2008 2 commits
  11. 10 May, 2007 1 commit
  12. 10 Apr, 2007 1 commit
  13. 14 Mar, 2007 6 commits
  14. 28 Feb, 2007 1 commit
  15. 07 Apr, 2006 1 commit
    • Simon Marlow's avatar
      Reorganisation of the source tree · 0065d5ab
      Simon Marlow authored
      Most of the other users of the fptools build system have migrated to
      Cabal, and with the move to darcs we can now flatten the source tree
      without losing history, so here goes.
      The main change is that the ghc/ subdir is gone, and most of what it
      contained is now at the top level.  The build system now makes no
      pretense at being multi-project, it is just the GHC build system.
      No doubt this will break many things, and there will be a period of
      instability while we fix the dependencies.  A straightforward build
      should work, but I haven't yet fixed binary/source distributions.
      Changes to the Building Guide will follow, too.
  16. 22 Jan, 2006 1 commit
  17. 18 Nov, 2004 1 commit
  18. 01 Sep, 2003 1 commit
  19. 04 Feb, 2003 1 commit
    • simonpj's avatar
      [project @ 2003-02-04 12:40:00 by simonpj] · 74775c6b
      simonpj authored
      Make utils/genprimopcode recognise the type ().
          It was previously written 'Unit', which is easily
          confused with the type 'Unit' (used for generic
          derived instances).
  20. 09 Sep, 2002 1 commit
  21. 29 Apr, 2002 1 commit
  22. 13 Feb, 2002 1 commit
  23. 12 Feb, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-02-12 15:17:13 by simonmar] · 2cc5b907
      simonmar authored
      Switch over to the new hierarchical libraries
      This commit reorganises our libraries to use the new hierarchical
      module namespace extension.
      The basic story is this:
         - fptools/libraries contains the new hierarchical libraries.
           Everything in here is "clean", i.e. most deprecated stuff has
           been removed.
      	- fptools/libraries/base is the new base package
      	  (replacing "std") and contains roughly what was previously
      	  in std, lang, and concurrent, minus deprecated stuff.
      	  Things that are *not allowed* in libraries/base include:
      		Addr, ForeignObj, ByteArray, MutableByteArray,
      		_casm_, _ccall_, ``'', PrimIO
      	  For ByteArrays and MutableByteArrays we use UArray and
      	  STUArray/IOUArray respectively now.
      	  Modules previously called PrelFoo are now under
      	  fptools/libraries/GHC.  eg. PrelBase is now GHC.Base.
      	- fptools/libraries/haskell98 provides the Haskell 98 std.
      	  libraries (Char, IO, Numeric etc.) as a package.  This
      	  package is enabled by default.
      	- fptools/libraries/network is a rearranged version of
      	  the existing net package (the old package net is still
      	  available; see below).
      	- Other packages will migrate to fptools/libraries in
      	  due course.
           NB. you need to checkout fptools/libraries as well as
           fptools/hslibs now.  The nightly build scripts will need to be
         - fptools/hslibs still contains (almost) the same stuff as before.
           Where libraries have moved into the new hierarchy, the hslibs
           version contains a "stub" that just re-exports the new version.
           The idea is that code will gradually migrate from fptools/hslibs
           into fptools/libraries as it gets cleaned up, and in a version or
           two we can remove the old packages altogether.
         - I've taken the opportunity to make some changes to the build
           system, ripping out the old hslibs Makefile stuff from
           mk/target.mk; the new package building Makefile code is in
           mk/package.mk (auto-included from mk/target.mk).
           The main improvement is that packages now register themselves at
           make boot time using ghc-pkg, and the monolithic package.conf
           in ghc/driver is gone.
           I've updated the standard packages but haven't tested win32,
           graphics, xlib, object-io, or OpenGL yet.  The Makefiles in
           these packages may need some further tweaks, and they'll need
           pkg.conf.in files added.
         - Unfortunately all this rearrangement meant I had to bump the
           interface-file version and create a bunch of .hi-boot-6 files :-(
  24. 17 Aug, 2001 1 commit
    • 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.
  25. 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.
  26. 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.
  27. 01 Jun, 2001 1 commit
  28. 26 Jan, 2001 1 commit
  29. 15 Jan, 2001 1 commit
  30. 12 Oct, 2000 1 commit
  31. 07 Aug, 2000 1 commit