1. 01 Mar, 2006 1 commit
  2. 16 Dec, 2005 1 commit
  3. 13 Sep, 2005 1 commit
    • simonmar's avatar
      [project @ 2005-09-13 12:50:59 by simonmar] · 5971cecb
      simonmar authored
      Never use an installed Cabal package when building GHC (except when
      bootstrapping in stages 2 & 3).  This insulates us from changes the
      user may have made to their Cabal installation.
      5971cecb
  4. 01 Aug, 2005 2 commits
  5. 28 Jul, 2005 1 commit
  6. 27 Jul, 2005 1 commit
  7. 21 Jun, 2005 1 commit
    • ross's avatar
      [project @ 2005-06-21 15:11:38 by ross] · 41fef65c
      ross authored
      split Distribution.Extension between Language.Haskell.Extension (just
      the type, which will also be useful when haskell-src-exts is merged)
      and Distribution.Compiler (mappings to compiler options).
      41fef65c
  8. 16 Jun, 2005 3 commits
  9. 10 May, 2005 1 commit
  10. 22 Apr, 2005 1 commit
  11. 15 Apr, 2005 2 commits
  12. 12 Apr, 2005 1 commit
  13. 24 Mar, 2005 2 commits
  14. 21 Mar, 2005 1 commit
  15. 19 Mar, 2005 1 commit
    • sof's avatar
      [project @ 2005-03-19 02:03:26 by sof] · cbe4c3a7
      sof authored
      [Windows only]
      for System.Directory / Compat.Directory functionality that probes the OS
      for local details re: misc user directories, perform late binding of
      SHGetFolderPath() from shell32.dll, as it may not be present.
      (cf. ghc-6.4's failure to operate on Win9x / NT boxes.) If the API isn't
      there, fail with UnsupportedOperation.
      Packages.readPackageConfigs: gracefully handle excns from getAppUserDataDirectory.
      
      Merge to STABLE.
      cbe4c3a7
  16. 10 Feb, 2005 1 commit
  17. 04 Feb, 2005 1 commit
  18. 02 Feb, 2005 2 commits
  19. 31 Jan, 2005 1 commit
  20. 28 Jan, 2005 1 commit
    • simonmar's avatar
      [project @ 2005-01-28 12:55:17 by simonmar] · 153b9cb9
      simonmar authored
      Rationalise the BUILD,HOST,TARGET defines.
      
      Recall that:
      
        - build is the platform we're building on
        - host is the platform we're running on
        - target is the platform we're generating code for
      
      The change is that now we take these definitions as applying from the
      point of view of the particular source code being built, rather than
      the point of view of the whole build tree.
      
      For example, in RTS and library code, we were previously testing the
      TARGET platform.  But under the new rule, the platform on which this
      code is going to run is the HOST platform.  TARGET only makes sense in
      the compiler sources.
      
      In practical terms, this means that the values of BUILD, HOST & TARGET
      may vary depending on which part of the build tree we are in.
      
      Actual changes:
      
       - new file: includes/ghcplatform.h contains platform defines for
         the RTS and library code.
      
       - new file: includes/ghcautoconf.h contains the autoconf settings
         only (HAVE_BLAH).  This is so that we can get hold of these
         settings independently of the platform defines when necessary
         (eg. in GHC).
      
       - ghcconfig.h now #includes both ghcplatform.h and ghcautoconf.h.
      
       - MachRegs.h, which is included into both the compiler and the RTS,
         now has to cope with the fact that it might need to test either
         _TARGET_ or _HOST_ depending on the context.
      
       - the compiler's Makefile now generates
           stage{1,2,3}/ghc_boot_platform.h
         which contains platform defines for the compiler.  These differ
         depending on the stage, of course: in stage2, the HOST is the
         TARGET of stage1.  This was wrong before.
      
       - The compiler doesn't get platform info from Config.hs any more.
         Previously it did (sometimes), but unless we want to generate
         a new Config.hs for each stage we can't do this.
      
       - GHC now helpfully defines *_{BUILD,HOST}_{OS,ARCH} automatically
         in CPP'd Haskell source.
      
       - ghcplatform.h defines *_TARGET_* for backwards compatibility
         (ghcplatform.h is included by ghcconfig.h, which is included by
         config.h, so code which still #includes config.h will get the TARGET
         settings as before).
      
       - The Users's Guide is updated to mention *_HOST_* rather than
         *_TARGET_*.
      
       - coding-style.html in the commentary now contains a section on
         platform defines.  There are further doc updates to come.
      
      Thanks to Wolfgang Thaller for pointing me in the right direction.
      153b9cb9
  21. 26 Jan, 2005 2 commits
  22. 22 Jan, 2005 1 commit
  23. 21 Jan, 2005 1 commit
  24. 20 Jan, 2005 1 commit
  25. 14 Jan, 2005 1 commit
    • wolfgang's avatar
      [project @ 2005-01-14 08:01:26 by wolfgang] · 4f457f34
      wolfgang authored
      Dynamic Linking, Part 2:
      
      Hack the Makefiles to build dynamic libraries.
      This allows you to actually use dynamic libraries to greatly reduce binary
      sizes on Darwin/PowerPC and on powerpc64-linux (for now).
      
      To use this, add the following to your build.mk
      
      SplitObjs=NO
      GhcBuildDylibs=YES
      GhcStage2HcOpts=-dynamic
      GhcLibHcOpts+=-fPIC -dynamic
      GhcRtsHcOpts+=-fPIC -dynamic
      GHC_CC_OPTS+=-fPIC
      
      (You can leave out the last three lines on powerpc64-linux).
      
      Then, to compile a program using dynamic libraries, pass the -dynamic option to GHC.
      To make GHCi use the dynamic libraries instead of .o files, just delete the HS*.o files.
      
      The dynamic library files are named libHSfoo_dyn.dylib or libHSfoo_dyn.so.
      
      Note that the dynamic and static libraries are build from the same .o files,
      but we really want to build the static libraries with SplitObjs and without
      -fPIC -dynamic to achieve better code size and performance.
      
      ghc/compiler/ghci/Linker.lhs:
          When looking for a library, look for HSfoo.o first (as before),
          then look for libHSfoo_dyn.[so/dylib] before looking for
          libHSfoo.[so/dylib].
      
      ghc/compiler/main/DriverPipeline.hs:
          Main.dll_o and PrelMain.dll_o are dead, at least for now.
      
      ghc/compiler/main/Packages.lhs:
          When -dynamic is specified, add "_dyn" to all libraries specified in
          hs-libraries (not to the extra-libs).
      
      ghc/lib/compat/Makefile:
          Never build libghccompat as a dynamic lib.
      
      mk/package.mk:
          if GhcBuildDylibs is set to YES, build dynamic libraries.
      
      mk/target.mk:
          When installing .dylibs (Darwin only), update the install_name to point
          to the final location.
          (Somebody please read Apple's documentation on what install_names are,
          and then comment on whether this is a useful feature or whether it should
          be done the "normal" unix way).
      4f457f34
  26. 12 Jan, 2005 1 commit
  27. 10 Jan, 2005 1 commit
    • krasimir's avatar
      [project @ 2005-01-10 23:48:07 by krasimir] · 3410e077
      krasimir authored
      createDirectoryIfMissing is added to Compat.Directory and is used in ghc-pkg.
      The mingw32_HOST_OS is replaced with mingw32_TARGET_OS. I don't know why but
      prior the last commit the tool was working with mingw32_HOST_OS fine but not
      it isn't. Maybe I miss something. Simon, could you check whether the patch is
      fine?
      3410e077
  28. 06 Jan, 2005 1 commit
  29. 15 Dec, 2004 1 commit
    • simonpj's avatar
      [project @ 2004-12-15 12:51:15 by simonpj] · ab3e6dba
      simonpj authored
      Make ghc/lib/compat/Compat/Directory.hs use the C function
      	__compat_long_path_size, rather than
      	__hscore_long_path_size, as the libraries/ version does
      And make ghc/lib/compat/cbits/directory.c define it.
      
      In this way we avoid spurious duplicate-symbol errors when we
      compile GHC with ghc6.2.1 etc.
      ab3e6dba
  30. 30 Nov, 2004 1 commit
  31. 26 Nov, 2004 1 commit
    • simonmar's avatar
      [project @ 2004-11-26 16:19:45 by simonmar] · ef5b4b14
      simonmar authored
      Further integration with the new package story.  GHC now supports
      pretty much everything in the package proposal.
      
        - GHC now works in terms of PackageIds (<pkg>-<version>) rather than
          just package names.  You can still specify package names without
          versions on the command line, as long as the name is unambiguous.
      
        - GHC understands hidden/exposed modules in a package, and will refuse
          to import a hidden module.  Also, the hidden/eposed status of packages
          is taken into account.
      
        - I had to remove the old package syntax from ghc-pkg, backwards
          compatibility isn't really practical.
      
        - All the package.conf.in files have been rewritten in the new syntax,
          and contain a complete list of modules in the package.  I've set all
          the versions to 1.0 for now - please check your package(s) and fix the
          version number & other info appropriately.
      
        - New options:
      
      	-hide-package P    sets the expose flag on package P to False
      	-ignore-package P  unregisters P for this compilation
      
      	For comparison, -package P sets the expose flag on package P
              to True, and also causes P to be linked in eagerly.
      
              -package-name is no longer officially supported.  Unofficially, it's
      	a synonym for -ignore-package, which has more or less the same effect
      	as -package-name used to.
      
      	Note that a package may be hidden and yet still be linked into
      	the program, by virtue of being a dependency of some other package.
      	To completely remove a package from the compiler's internal database,
              use -ignore-package.
      
      	The compiler will complain if any two packages in the
              transitive closure of exposed packages contain the same
              module.
      
      	You *must* use -ignore-package P when compiling modules for
              package P, if package P (or an older version of P) is already
              registered.  The compiler will helpfully complain if you don't.
      	The fptools build system does this.
      
         - Note: the Cabal library won't work yet.  It still thinks GHC uses
           the old package config syntax.
      
      Internal changes/cleanups:
      
         - The ModuleName type has gone away.  Modules are now just (a
           newtype of) FastStrings, and don't contain any package information.
           All the package-related knowledge is in DynFlags, which is passed
           down to where it is needed.
      
         - DynFlags manipulation has been cleaned up somewhat: there are no
           global variables holding DynFlags any more, instead the DynFlags
           are passed around properly.
      
         - There are a few less global variables in GHC.  Lots more are
           scheduled for removal.
      
         - -i is now a dynamic flag, as are all the package-related flags (but
           using them in {-# OPTIONS #-} is Officially Not Recommended).
      
         - make -j now appears to work under fptools/libraries/.  Probably
           wouldn't take much to get it working for a whole build.
      ef5b4b14
  32. 17 Nov, 2004 1 commit
  33. 16 Nov, 2004 1 commit