1. 29 Nov, 2004 1 commit
  2. 26 Nov, 2004 7 commits
    • simonmar's avatar
      [project @ 2004-11-26 16:50:56 by simonmar] · 51ec1e6e
      simonmar authored
      unregister/describe: allow the package name to be given without the
      version, as long as it is unambiguous.
      
      Strange, I was sure I'd implemented expose/hide in here, but they're
      stubbed out.  Oh well.
      51ec1e6e
    • simonmar's avatar
      [project @ 2004-11-26 16:34:56 by simonmar] · 06e69768
      simonmar authored
      Undo
      06e69768
    • simonmar's avatar
      [project @ 2004-11-26 16:32:44 by simonmar] · 2dc3b476
      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.
      2dc3b476
    • simonmar's avatar
      [project @ 2004-11-26 16:30:12 by simonmar] · 67dae2b1
      simonmar authored
      Add missing .hi-boot files
      67dae2b1
    • 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
    • simonpj's avatar
      [project @ 2004-11-26 13:42:37 by simonpj] · 1f8b341a
      simonpj authored
      Document overlapping instances
      1f8b341a
    • simonpj's avatar
      [project @ 2004-11-26 13:42:21 by simonpj] · 114455e6
      simonpj authored
      More about hi-boot files
      114455e6
  3. 25 Nov, 2004 1 commit
    • simonpj's avatar
      [project @ 2004-11-25 11:36:34 by simonpj] · 1f7da302
      simonpj authored
      ------------------------------------------
      	Keep-alive set and Template Haskell quotes
      	------------------------------------------
      
      a) Template Haskell quotes should be able to mention top-leve
         things without resorting to lifting.  Example
      
      	module Foo( foo ) where
      	  f x = x
      	  foo = [| f 4 |]
      
         Here the reference to 'f' is ok; no need to 'lift' it.
         The relevant changes are in TcExpr.tcId
      
      b) However, we must take care not to discard the binding for f,
         so we add it to the 'keep-alive' set for the module.  I've
         now made this into (another) mutable bucket, tcg_keep, 
         in the TcGblEnv
      
      c) That in turn led me to look at the handling of orphan rules;
         as a result I made IdCoreRule into its own data type, which
         has simle but non-local ramifications
      1f7da302
  4. 24 Nov, 2004 1 commit
    • simonmar's avatar
      [project @ 2004-11-24 13:03:26 by simonmar] · c1a7d1a6
      simonmar authored
      Update s/r conflict total after Ross added four more.  The total
      according to the comment is currently one more than the real number,
      so one of them must have gone away.  At some point we should track
      down which one.
      c1a7d1a6
  5. 23 Nov, 2004 3 commits
  6. 22 Nov, 2004 7 commits
  7. 21 Nov, 2004 4 commits
    • panne's avatar
      [project @ 2004-11-21 22:53:31 by panne] · ee0e16d4
      panne authored
      Pushed down OpenGL/GLUT/OpenAL autoconf stuff to the respective directories.
      All packages are now built automatically if possible and if they are not
      explicitly disabled. NOTE: The "--enable-hopengl" option is now split into
      "--enable-opengl" and "--enable-glut".
      ee0e16d4
    • desrt's avatar
      [project @ 2004-11-21 22:25:23 by desrt] · a1947dc7
      desrt authored
      rtsconfig, smrep: fixes to not put info next to code (like ia64)
      machregs: define registers for powerpc64 - same as ppc32
      tailcalls: for now do tailcalls as normal calls. (ok on powerpc since
                 calls don't grow the stack and we don't care about LR anyway)
      a1947dc7
    • desrt's avatar
      [project @ 2004-11-21 22:18:46 by desrt] · 0181f5b8
      desrt authored
      Added an StgRun for powerpc64/Linux
      Fixed a typo in the code for powerpc32 Linux and Darwin
      0181f5b8
    • panne's avatar
      [project @ 2004-11-21 12:13:23 by panne] · 60f2f165
      panne authored
      Fixed include paths. Thinking about the convoluted dependencies between ghc,
      ghc-pkg and libraries really makes me dizzy... Some cleanup and simplification
      is needed here *urgently*, this stuff is currently beyond my grasp.
      60f2f165
  8. 20 Nov, 2004 2 commits
  9. 19 Nov, 2004 2 commits
  10. 18 Nov, 2004 3 commits
  11. 17 Nov, 2004 2 commits
    • sof's avatar
      [project @ 2004-11-17 19:07:38 by sof] · 900ca61d
      sof authored
      Expose Win32 console event handling to the user.
      
      Added RTS support for registering and delivering console events quite
      a while ago (rts/win32/ConsoleHandler.c), but got bored with it before
      completing the job. Here's the concluding commit; it does the following:
      
      - new module, base/GHC/ConsoleHandler.hs which supports registering of
        console event handlers (the null module on plats other than mingw).
      - special handling of aborted async read()s on 'standard input' in
        rts/win32/IOManager.c (together with GHC.Conc.asyncRead). See comments
        in that IOManager.c as to why this is needed.
        [ Any other code that performs blocking I/O on 'standard input' will
          need to be tweaked too to be console event handler/signal friendly.]
      - for now, disable the delivery of 'close' events (see
        rts/win32/ConsoleHandler.c:generic_handler() for reasons why)
      
      Feel free to hoik GHC/ConsoleHandler.hs around the lib hierarchy to wherever
      is considered more fitting. Unifying functionality between System.Posix.Signals
      and GHC.ConsoleHandler is one (obvious) thing to do.
      
      -- Demonstrating GHC.ConsoleHandler use; win32 only
      module Main(main) where
      
      import GHC.ConsoleHandler
      import System.IO  (hFlush, stdout)
      import GHC.Conc   (threadDelay)
      
      main :: IO ()
      main = do
        installHandler (Catch (\ _ -> putStrLn "Caught console event; ignoring" >> hFlush stdout))
        loop
       where
        loop = do
          threadDelay 100000
          ls <- getLine
          putStrLn ls
          loop
      --
      900ca61d
    • josefs's avatar
      [project @ 2004-11-17 18:31:08 by josefs] · fa9a03c1
      josefs authored
      Needed to include a header file in Compat/Directory on windows
      fa9a03c1
  12. 16 Nov, 2004 2 commits
  13. 15 Nov, 2004 1 commit
  14. 14 Nov, 2004 3 commits
  15. 13 Nov, 2004 1 commit