This project is mirrored from https://gitlab.haskell.org/ghc/ghc.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
  1. 14 Mar, 2000 2 commits
    • sewardj's avatar
      [project @ 2000-03-14 14:34:47 by sewardj] · 51464cf3
      sewardj authored
      Update Hugs so as to work with the new way of referencing Prelude
      symbols from the RTS.  The main action is in fixupRTStoPreludeRefs()
      in rts/Prelude.c.
      51464cf3
    • simonmar's avatar
      [project @ 2000-03-14 09:55:05 by simonmar] · 3ddfe34b
      simonmar authored
      Handle references from the RTS to the Prelude in a more consistent
      way.
      
      	- For statically-linked binaries, nothing has changed.
      
      	- For the interpreter, refs from the RTS to the Prelude
      	  are now indirected.  The indirections need to be
      	  filled in at some point during startup by calling
      	  fixupPreludeRefs (in Prelude.c).
      
      	- The CHARLIKE and INTLIKE tables are now handled in
      	  the same way for both Hugs and DLLs.
      
      Hugs will be broken for a short while until Julian sorts out the Hugs
      parts of this change.
      3ddfe34b
  2. 09 Mar, 2000 1 commit
  3. 08 Mar, 2000 1 commit
    • simonmar's avatar
      [project @ 2000-03-08 17:48:24 by simonmar] · de896403
      simonmar authored
      - generalise the per-module initialisation stubs so that we use it
        in normal (non-profiled) code too.  The initialisation stubs are
        now called '__init_<module>' rather than '_reg<module>'.
      
      - Register foreign exported functions as stable pointers in the
        initialisation code for the module.  This fixes the foreign export
        problems reported by several people.
      
      - remove the concept of "module groups" from the profiling subsystem.
      
      - change the profiling semantics slightly; it should be unnecessary
        to use '-caf-all' to get reasonable profiles now.
      de896403
  4. 22 Feb, 2000 1 commit
    • simonmar's avatar
      [project @ 2000-02-22 12:09:23 by simonmar] · b310c854
      simonmar authored
      Ignore SIGPIPE, since our I/O library handles EPIPE properly and
      SIGPIPE tends to cause the Haskell program to exit silently and
      mysteriously.
      
      Found-by: furiously pressing the refresh button in a browser connected
      to my Haskell web server :-)
      b310c854
  5. 17 Feb, 2000 1 commit
  6. 07 Feb, 2000 1 commit
    • simonmar's avatar
      [project @ 2000-02-07 20:57:58 by simonmar] · 4d12e452
      simonmar authored
      I'm utterly bemused, but it seems that someone called simonpj disabled
      the virtual timer in rev 1.25:
      
      	+ #if 0 /* tmp--SDM */
            		initialize_virtual_timer(TICK_MILLISECS);
      	+ #endif
      
      and tried to blame it on me by putting my name in the comment :-)
      
      (Simon - perhaps you copied this file out of my working tree and
      committed it by mistake or something?)
      4d12e452
  7. 14 Jan, 2000 1 commit
  8. 13 Jan, 2000 1 commit
    • hwloidl's avatar
      [project @ 2000-01-13 14:33:57 by hwloidl] · 1b28d4e1
      hwloidl authored
      Merged GUM-4-04 branch into the main trunk. In particular merged GUM and
      SMP code. Most of the GranSim code in GUM-4-04 still has to be carried over.
      1b28d4e1
  9. 20 Dec, 1999 1 commit
    • simonpj's avatar
      [project @ 1999-12-20 10:34:27 by simonpj] · e921b2e3
      simonpj authored
      This commit implements a substantial re-organisation of the Prelude
      It also fixes a couple of small renamer bugs that were reported recently
      	(notably, Sven pointed out that we weren't reporting
      	unused imports properly)
      
      My original goal was to get rid of all "orphan" modules (i.e. ones
      with instance decls that don't belong either to a tycon or a class
      defined in the same module).  This should reduce the number of
      interface files that have to be read when compiling small Haskell
      modules.
      
      But like most expeditions into the Prelude Swamp, it spiraled out
      of control.  The result is quite satisfactory, though.
      
      	GONE AWAY:	PrelCCall, PrelNumExtra
      
      	NEW:		PrelReal, PrelFloat, PrelByteArr, PrelNum.hi-boot
      
      (The extra PrelNum.hi-boot is because of a tiresome thin-air Id, addr2Integer,
      which used to be in PrelBase.)
      
      Quite a lot of types have moved from one module to another,
      which entails some changes to part of the compiler (PrelInfo, PrelMods) etc,
      and there are a few places in the RTS includes and even in the driver
      that know about these home modules (alas).
      
      So the rough structure is as follows, in (linearised) dependency order
      	[this list now appears in PrelBase.lhs]
      
      PrelGHC		Has no implementation.  It defines built-in things, and
      		by importing it you bring them into scope.
      		The source file is PrelGHC.hi-boot, which is just
      		copied to make PrelGHC.hi
      
      		Classes: CCallable, CReturnable
      
      PrelBase	Classes: Eq, Ord, Functor, Monad
      		Types:   list, (), Int, Bool, Ordering, Char, String
      
      PrelTup		Types: tuples, plus instances for PrelBase classes
      
      PrelShow	Class: Show, plus instances for PrelBase/PrelTup types
      
      PrelEnum	Class: Enum,  plus instances for PrelBase/PrelTup types
      
      PrelMaybe	Type: Maybe, plus instances for PrelBase classes
      
      PrelNum		Class: Num, plus instances for Int
      		Type:  Integer, plus instances for all classes so far (Eq, Ord, Num, Show)
      
      		Integer is needed here because it is mentioned in the signature
      		of 'fromInteger' in class Num
      
      PrelReal	Classes: Real, Integral, Fractional, RealFrac
      			 plus instances for Int, Integer
      		Types:  Ratio, Rational
      			plus intances for classes so far
      
      		Rational is needed here because it is mentioned in the signature
      		of 'toRational' in class Real
      
      Ix		Classes: Ix, plus instances for Int, Bool, Char, Integer, Ordering, tuples
      
      PrelArr		Types: Array, MutableArray, MutableVar
      
      		Does *not* contain any ByteArray stuff (see PrelByteArr)
      		Arrays are used by a function in PrelFloat
      
      PrelFloat	Classes: Floating, RealFloat
      		Types:   Float, Double, plus instances of all classes so far
      
      		This module contains everything to do with floating point.
      		It is a big module (900 lines)
      		With a bit of luck, many modules can be compiled without ever reading PrelFloat.hi
      
      PrelByteArr	Types: ByteArray, MutableByteArray
      
      		We want this one to be after PrelFloat, because it defines arrays
      		of unboxed floats.
      
      
      Other Prelude modules are much easier with fewer complex dependencies.
      e921b2e3
  10. 09 Nov, 1999 1 commit
  11. 02 Nov, 1999 2 commits
    • simonmar's avatar
      [project @ 1999-11-02 17:19:15 by simonmar] · c6ff5639
      simonmar authored
      Time the shutdown code as well as the initialisation code.  This
      figure is sometimes significant for SMP, because the tasks are all
      killed by a signal (at the moment) and it might take a while for the
      signal to be delivered.
      c6ff5639
    • simonmar's avatar
      [project @ 1999-11-02 15:05:38 by simonmar] · f6692611
      simonmar authored
      This commit adds in the current state of our SMP support.  Notably,
      this allows the new way 's' to be built, providing support for running
      multiple Haskell threads simultaneously on top of any pthreads
      implementation, the idea being to take advantage of commodity SMP
      boxes.
      
      Don't expect to get much of a speedup yet; due to the excessive
      locking required to synchronise access to mutable heap objects, you'll
      see a slowdown in most cases, even on a UP machine.  The best I've
      seen is a 1.6-1.7 speedup on an example that did no locking (two
      optimised nfibs in parallel).
      
      	- new RTS -N flag specifies how many pthreads to start.
      
      	- new driver -smp flag, tells the driver to use way 's'.
      
      	- new compiler -fsmp option (not for user comsumption)
      	  tells the compiler not to generate direct jumps to
      	  thunk entry code.
      
      	- largely rewritten scheduler
      
      	- _ccall_GC is now done by handing back a "token" to the
      	  RTS before executing the ccall; it should now be possible
      	  to execute blocking ccalls in the current thread while
      	  allowing the RTS to continue running Haskell threads as
      	  normal.
      
      	- you can only call thread-safe C libraries from a way 's'
      	  build, of course.
      
      Pthread support is still incomplete, and weird things (including
      deadlocks) are likely to happen.
      f6692611
  12. 22 Sep, 1999 1 commit
  13. 15 Sep, 1999 1 commit
    • simonmar's avatar
      [project @ 1999-09-15 13:45:14 by simonmar] · 17315bf6
      simonmar authored
      Heap Profiling
      --------------
      
      This commit adds simple hp2ps-style heap profiling.  Just the '-h'
      option is supported so far.
      
      Heap profiles will show the top two cost centres on each cost centre
      stack.
      
      Time/Alloc profiles have been extended to aggregate the costs on a
      per-cost-centre basis and show the table of highest consuming cost
      centres before the full table of cost centre stacks.
      
      Profiles work best if '-caf-all' is used, especially when using
      one of the '-auto' flags.
      17315bf6
  14. 13 Sep, 1999 1 commit
  15. 25 Aug, 1999 1 commit
    • 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
  16. 06 Jul, 1999 1 commit
  17. 03 Jul, 1999 1 commit
    • sof's avatar
      [project @ 1999-07-03 18:39:40 by sof] · d1a47b32
      sof authored
      New RTS entry point, shutdownHaskellAndExit(), which does what the name
      implies - used when you want to exit from within Haskell code (e.g.,
      System.exitWith.)
      d1a47b32
  18. 02 Jul, 1999 1 commit
  19. 29 Jun, 1999 1 commit
    • panne's avatar
      [project @ 1999-06-29 13:04:38 by panne] · 34533246
      panne authored
      Made the compilation of the RTS almost warning-free and improved the
      output of some "barf"s in the garbage collector . This is part of my
      epic crusade against "scavenge_mut_list: strange object?"... :-(
      34533246
  20. 21 May, 1999 1 commit
  21. 10 May, 1999 1 commit
  22. 04 May, 1999 1 commit
  23. 27 Apr, 1999 1 commit
  24. 09 Mar, 1999 1 commit
  25. 03 Mar, 1999 1 commit
    • sof's avatar
      [project @ 1999-03-03 19:10:37 by sof] · 5c089c20
      sof authored
      - moved the Bool closure table to here (don't want to end up accidentally mangling it.)
      - startupHaskell: for Win32 DLLs, initialise the various closure tables now that
        the DLLs have been loaded and the closure addresses are in scope.
      5c089c20
  26. 11 Feb, 1999 1 commit
  27. 05 Feb, 1999 1 commit
  28. 26 Jan, 1999 1 commit
    • simonm's avatar
      [project @ 1999-01-26 11:12:41 by simonm] · ed4cd6d4
      simonm authored
      - Add Stable Names
      
      - Stable pointers and stable names are now both provided by the
        "Stable" module in ghc/lib/exts.  Documentation is updated, and Foriegn
        still exports the stable pointer operations for backwards compatibility.
      ed4cd6d4
  29. 22 Jan, 1999 1 commit
  30. 21 Jan, 1999 1 commit
  31. 02 Dec, 1998 1 commit