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 .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
- 28 Apr, 2005 10 commits
-
-
simonpj authored
Missing import
-
simonpj authored
A couple of hs-boot files
-
simonpj authored
Further wibbles to the new tidying plumbing
-
simonmar authored
StgFunInfoExtra_slow_apply(): convert the slow_apply_offset to a W_ before arithmetic.
-
simonpj authored
Re-plumb the connections between TidyPgm and the various code generators. There's a new type, CgGuts, to mediate this, which has the happy effect that ModGuts can die earlier. The non-O route still isn't quite right, because default methods are being lost. I'm working on it.
-
simonmar authored
calcAllocated: fix small mis-calculation in the SMP case
-
simonmar authored
Small code-size optimisation: I forgot to add a specialised case for functions with no argument words (which might happen if the function takes a void argument, for example).
-
simonpj authored
Instance for wired-in tycons wibble
-
simonpj authored
This big commit does several things at once (aeroplane hacking) which change the format of interface files. So you'll need to recompile your libraries! 1. The "stupid theta" of a newtype declaration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Retain the "stupid theta" in a newtype declaration. For some reason this was being discarded, and putting it back in meant changing TyCon and IfaceSyn slightly. 2. Overlap flags travel with the instance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Arrange that the ability to support overlap and incoherence is a property of the *instance declaration* rather than the module that imports the instance decl. This allows a library writer to define overlapping instance decls without the library client having to know. The implementation is that in an Instance we store the overlap flag, and preseve that across interface files 3. Nuke the "instnce pool" and "rule pool" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A major tidy-up and simplification of the way that instances and rules are sucked in from interface files. Up till now an instance decl has been held in a "pool" until its "gates" (a set of Names) are in play, when the instance is typechecked and added to the InstEnv in the ExternalPackageState. This is complicated and error-prone; it's easy to suck in too few (and miss an instance) or too many (and thereby be forced to suck in its type constructors, etc). Now, as we load an instance from an interface files, we put it straight in the InstEnv... but the Instance we put in the InstEnv has some Names (the "rough-match" names) that can be used on lookup to say "this Instance can't match". The detailed dfun is only read lazily, and the rough-match thing meansn it is'nt poked on until it has a chance of being needed. This simply continues the successful idea for Ids, whereby they are loaded straightaway into the TypeEnv, but their TyThing is a lazy thunk, not poked on until the thing is looked up. Just the same idea applies to Rules. On the way, I made CoreRule and Instance into full-blown records with lots of info, with the same kind of key status as TyCon or DataCon or Class. And got rid of IdCoreRule altogether. It's all much more solid and uniform, but it meant touching a *lot* of modules. 4. Allow instance decls in hs-boot files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Allowing instance decls in hs-boot files is jolly useful, becuase in a big mutually-recursive bunch of data types, you want to give the instances with the data type declarations. To achieve this * The hs-boot file makes a provisional name for the dict-fun, something like $fx9. * When checking the "mother module", we check that the instance declarations line up (by type) and generate bindings for the boot dfuns, such as $fx9 = $f2 where $f2 is the dfun generated by the mother module * In doing this I decided that it's cleaner to have DFunIds get their final External Name at birth. To do that they need a stable OccName, so I have an integer-valued dfun-name-supply in the TcM monad. That keeps it simple. This feature is hardly tested yet. 5. Tidy up tidying, and Iface file generation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ main/TidyPgm now has two entry points: simpleTidyPgm is for hi-boot files, when typechecking only (not yet implemented), and potentially when compiling without -O. It ignores the bindings, and generates a nice small TypeEnv. optTidyPgm is the normal case: compiling with -O. It generates a TypeEnv rich in IdInfo MkIface.mkIface now only generates a ModIface. A separate procedure, MkIface.writeIfaceFile, writes the file out to disk.
-
simonmar authored
Run each nofib program multiple times, tunable by the $(NoFibRuns) variable. nofib-analyse already knows how to average the times from multiple runs.
-
- 27 Apr, 2005 15 commits
-
-
sof authored
comment wibble; switch from Italian to English spelling of 'compatible'
-
simonmar authored
When using -H<size> in SMP mode, divide the total nursery size amongst the various nurseries. -H<size> now does something reasonable with SMP.
-
simonmar authored
Hold the sm_mutex around access to the mutable list. The SMP RTS now seems quite stable, I've run my simple test program with 64 threads without crashes.
-
simonmar authored
fprintf(stderr,..) --> debugBelch(...)
-
simonmar authored
Some extra sanity checking
-
simonmar authored
initCapability: initialise the rInHaskell field (found by Valgrind)
-
simonmar authored
expandTaskTable: we need to update the hash table too (found by: Valgrind :-) initTaskManager: take into account -N flag when sizing the initial task table.
-
simonmar authored
i386 wibble
-
simonmar authored
Support for returning the renamed syntax from checkModule (untested).
-
simonmar authored
x86_64: hang register parameters off the call instruction, like powerpc does. This gives the register allocator better information.
-
simonmar authored
showReg(x86_64): fix callerSaves: fix
-
simonmar authored
Fix the volatile regs to the suspendThread call
-
simonmar authored
Remove uses of stderr from .cmm code. We can't reliably refer to stdin/stdout/stderr from .cmm, because the C standard doesn't specify whether stderr is a variable or a macro.
-
simonmar authored
Add comment
-
simonmar authored
newTempName: instead of bumping the processId until we find a name that isn't used, add an integer suffix to the processId. This should prevent temp-file conflicts that appear to have been affecting our nightly builds and occasionally make -j. The right way to allocate a temporary file is to create it straight away, but I'm not sure of the implications of passing existing temporary files to the various sub-processes that GHC executes, hence this fix instead.
-
- 26 Apr, 2005 5 commits
-
-
simonmar authored
resetStaticObjectForRetainerProfiling: catch up changes in ClosureMacros.h
-
simonmar authored
When chasing explicit imports, we now look for the module in both the home package and external packages, and complain if it is found in both: Chasing modules from: Overlap Cannot import `List': it was found in both overlap/List.hs and package haskell98-1.0. Possible fix: -ignore-package haskell98-1.0 (imported from overlap/Overlap.hs) Previously the home module would have been ignored in favour of the package module. It means we're doing a bit more searching, but the behaviour is less obscure.
-
simonmar authored
Back out previous revision. It appears that passing -g to the assembly phase of C compilation results in an object file with broken debug info, that gdb can't read. This is probably a bug in gcc and/or binutils, but this change means that I can't avoid it (unless we were to hack the pipeline to do .c->.s->.o in one stage instead of two).
-
simonmar authored
Add entry about non-blocking stdin and System.Cmd.{system,rawSystem}.
-
sof authored
runSomething: 'rawSystem' might raise an exception to indicate that 'pgm' couldn't be executed, so catch this here & report. Merge to STABLE.
-
- 25 Apr, 2005 8 commits
-
-
simonmar authored
scavenge_one: fix reversed PAP/AP cases
-
simonmar authored
Partial support for deadlock detection in the threaded/SMP RTS. The idea is to wait until a complete time slice has gone by without running any Haskell code, and then try doing a GC to detect deadlocked threads. This kind of works: but we can only wake up a worker thread from the signal handler if there's another worker running - we can't wake up the current thread, it seems.
-
simonmar authored
interruptStgRts: call threadRunnable(). This might not work properly from a signal handler, but it's all we can do (and seems to do something reasonable on Linux).
-
simonmar authored
atomicModifyMutVarzh_fast: move the sm_mutex acquisition *after* the heap check
-
simonmar authored
Yet another StgClosure that should be StgThunk
-
simonmar authored
stg_raise: we should by using StgThunk_payload(), not StgClosure_payload()
-
simonmar authored
Requested by Duncan Coutts: -optc flags get passed to the assembler phase too. It's not obvious, when using GHC to compile a .c file, that options need to be passed both with -optc and -opta - gcc doesn't need this, for example. This is an experimental change - if it breaks anything we can back it out. If anyone needs to pass flags to the .c->.s phase *only*, then we will need to add another flag for that purpose. It seems unlikely, though (there aren't many flags that affect the assembler only, and those that do don't conflict with flags for the C phase).
-
simonmar authored
daVinci is now called uDraw(Graph)
-
- 24 Apr, 2005 2 commits