1. 27 Aug, 1999 2 commits
  2. 25 Aug, 1999 2 commits
    • simonmar's avatar
      [project @ 1999-08-25 16:11:43 by simonmar] · c6ab4bfa
      simonmar authored
      Support for thread{WaitRead,WaitWrite,Delay}.  These should behave
      identically to the 3.02 implementations.
      
      We now have the virtual timer on during all program runs, which ticks
      at 50Hz by default.  This is used to implement threadDelay, so you
      won't get any better granularity than the tick frequency
      unfortunately.  It remains to be seen whether using the virtual timer
      will have a measurable impact on performance for non-threadDelaying
      programs.
      
      All operations in the I/O subsystem should now be non-blocking with
      respect to other running Haskell threads.  It remains to be seen
      whether this will have a measurable performance impact on
      non-concurrent programs (probably not).
      c6ab4bfa
    • simonmar's avatar
      [project @ 1999-08-25 10:23:51 by simonmar] · 68146c5b
      simonmar authored
      Eq and Ord instances for ThreadId.
      68146c5b
  3. 06 Jul, 1999 1 commit
    • simonpj's avatar
      [project @ 1999-07-06 16:45:31 by simonpj] · 9d38678e
      simonpj authored
      All Simon's recent tuning changes.  Rough summary follows:
      
      * Fix Kevin Atkinson's cant-find-instance bug.  Turns out that Rename.slurpSourceRefs
        needs to repeatedly call getImportedInstDecls, and then go back to slurping
        source-refs.  Comments with Rename.slurpSourceRefs.
      
      * Add a case to Simplify.mkDupableAlt for the quite-common case where there's
        a very simple alternative, in which case there's no point in creating a
        join-point binding.
      
      * Fix CoreUtils.exprOkForSpeculation so that it returns True of (==# a# b#).
        This lack meant that
      	case ==# a# b# of { True -> x; False -> x }
        was not simplifying
      
      * Make float-out dump bindings at the top of a function argument, as
        at the top of a let(rec) rhs.  See notes with FloatOut.floatRhs
      
      * Make the ArgOf case of mkDupableAlt generate a OneShot lambda.
        This gave a noticeable boost to spectral/boyer2
      
      
      * Reduce the number of coerces, using worker/wrapper stuff.
        The main idea is in WwLib.mkWWcoerce.  The gloss is that we must do
        the w/w split even for small non-recursive things.  See notes with
        WorkWrap.tryWw.
      
      * This further complicated getWorkerId, so I finally bit the bullet and
        make the workerInfo field of the IdInfo work properly, including
        under substitutions.  Death to getWorkerId.  Kevin Glynn will be happy.
      
      * Make all lambdas over realWorldStatePrimTy
        into one-shot lambdas.  This is a GROSS HACK.
      
      * Also make the occurrence analyser aware of one-shot lambdas.
      
      * Make various Prelude things into INLINE, so that foldr doesn't
        get inlined in their body, so that the caller gets the benefit
        of fusion.  Notably in PrelArr.lhs.
      9d38678e
  4. 14 May, 1999 1 commit
  5. 05 May, 1999 1 commit
  6. 28 Apr, 1999 1 commit
  7. 27 Apr, 1999 1 commit
  8. 25 Mar, 1999 1 commit
  9. 20 Feb, 1999 1 commit
  10. 05 Feb, 1999 1 commit
  11. 25 Jan, 1999 1 commit
  12. 14 Jan, 1999 1 commit
  13. 26 May, 1998 1 commit
  14. 05 May, 1998 1 commit
  15. 16 Apr, 1998 1 commit
  16. 25 Feb, 1998 1 commit
  17. 20 Feb, 1998 1 commit
  18. 02 Feb, 1998 1 commit
    • simonm's avatar
      [project @ 1998-02-02 17:27:26 by simonm] · 28139aea
      simonm authored
      Library re-organisation:
      
      All libraries now live under ghc/lib, which has the following structure:
      
      	ghc/lib/std    		--  all prelude files 		(libHS.a)
      	ghc/lib/std/cbits
      
      	ghc/lib/exts		-- standard Hugs/GHC extensions (libHSexts.a)
      				-- available with '-fglasgow-exts'
      
      	ghc/lib/posix		-- POSIX library                (libHSposix.a)
      	ghc/lib/posix/cbits     -- available with '-syslib posix'
      
      	ghc/lib/misc		-- used to be hslibs/ghc	(libHSmisc.a)
      	ghc/lib/misc/cbits	-- available with '-syslib misc'
      
      	ghc/lib/concurrent	-- Concurrent libraries		(libHSconc.a)
      				-- available with '-concurrent'
      
      Also, several non-standard prelude modules had their names changed to begin
      with 'Prel' to reduce namespace pollution.
      
      	Addr      ==> PrelAddr     (Addr interface available in 'exts')
      	ArrBase   ==> PrelArr
      	CCall     ==> PrelCCall    (CCall interface available in 'exts')
      	ConcBase  ==> PrelConc
      	GHCerr    ==> PrelErr
      	Foreign   ==> PrelForeign  (Foreign interface available in 'exts')
      	GHC       ==> PrelGHC
      	IOHandle  ==> PrelHandle
      	IOBase    ==> PrelIOBase
      	GHCmain   ==> PrelMain
      	STBase    ==> PrelST
      	Unsafe    ==> PrelUnsafe
      	UnsafeST  ==> PrelUnsafeST
      28139aea
  19. 22 Jan, 1998 1 commit
    • sof's avatar
      [project @ 1998-01-22 11:11:46 by sof] · 333f0f37
      sof authored
      * renamed putList2Chan to writeList2Chan.
      * renamed readChanContents to getChanContents
      * Use do notation throughout.
      333f0f37
  20. 29 Nov, 1997 1 commit
  21. 11 Nov, 1997 1 commit
    • simonm's avatar
      [project @ 1997-11-11 14:32:34 by simonm] · a138ab7b
      simonm authored
      Library changes to:
      
      	* remove PrimIO
      	* change type of _ccall_ to IO
      	* incorporate Alastair Reid's new library interfaces for
      	  compatibility with Hugs.
      a138ab7b
  22. 21 Oct, 1997 1 commit
  23. 13 Oct, 1997 1 commit
    • simonm's avatar
      [project @ 1997-10-13 16:12:54 by simonm] · df10403c
      simonm authored
      Changes to unbox the state in the ST and IO monads.
      
      ST now has type
      
      	newtype ST s a = ST (State# s -> STret s a)
      	data STret s a = STret (State# s) a
      
      IO now has type
      
      	newtype IO a = IO (State# RealWorld -> IOResult a)
      	data IOResult a = IOok   (State# RealWorld) a
      	                | IOfail (State# RealWorld) IOError
      
      So ST should be slightly more efficient, and IO should be nearly as
      efficient as ST.
      df10403c
  24. 05 Jul, 1997 1 commit
  25. 18 May, 1997 1 commit
  26. 14 Mar, 1997 1 commit
  27. 18 Jan, 1997 1 commit
  28. 19 Dec, 1996 1 commit
  29. 25 Jul, 1996 1 commit
  30. 27 Jun, 1996 1 commit