- 28 Sep, 2003 1 commit
-
-
wolfgang authored
More Mac OS X-specific gcc 3.3 fixes merge to stable
-
- 26 Sep, 2003 6 commits
-
-
panne authored
Warning police
-
panne authored
Warning police
-
panne authored
Added prototypes for __hscore_[gs]et_saved_termios to make Linker.c happy and avoid warnings in RtsStartup.c
-
panne authored
Saving/restoring termios is only done for GHC
-
simonmar authored
Update Linker following changes to saved_termios.
-
simonpj authored
Better error trace when cat_evals crashes
-
- 25 Sep, 2003 2 commits
- 24 Sep, 2003 4 commits
-
-
simonmar authored
remove docs for -fwith option
-
simonmar authored
The concensus seems to be that 'with' should go away now, after its customary period of deprecation. Hugs has already removed it, so we're following suit.
-
simonmar authored
Move forkOS_createThread into the RTS so its implementation can be dependent on RTS_SUPPORTS_THREADS, which means we can provide a stub implementation in the !RTS_SUPPORTS_THREADS case, and hence not depend on pthread_create, which requires -lpthread. The upshot is that GHCi now works again when !RTS_SUPPORTS_THREADS.
-
simonmar authored
If we change the terminal settings as a result of hSetBuffering or hSetEcho, then restore them again in hs_exit(). This is just good citizenship on Unixy platforms. We *don't* just automatically save the terminal settings and restore them at the end, because that would prevent implementing stty-like programs in Haskell. This scheme is a compromise that hopefully DTRT in most cases.
-
- 23 Sep, 2003 16 commits
-
-
sof authored
wibble
-
sof authored
If the user explicitly did an instances-only import, i.e., "import Foo ()", don't emit an unused-import warning.
-
wolfgang authored
Mac OS X uses .dylib instead of .so, recognize that properly.
-
simonmar authored
Change some statics to dynamics, and remove a couple of obsolete options.
-
simonmar authored
Some wibbles to the optimisation section.
-
simonmar authored
Add a BF_PINNED block flag, and attach it to blocks containing pinned objects (in addition to the usual BF_LARGE). In heapCensus, we now ignore blocks containing pinned objects, because they might contain gaps, and in any case it isn't clear that we want to include the whole block in a heap census, because much of it might well be dead. Ignoring it isn't right either, though, so this patch just fixes the crash and leaves a ToDo.
-
simonmar authored
Fix for clearing the evacuated flag on a block: don't throw away other flag settings in the process.
-
simonpj authored
-------------------------- Much grunting about let-floating -------------------------- We want to avoid putting bindings between the '=' of a defn and a '\': let { f = let ... in \y-> ... } in ... Reason: float-in often follows float-out, and it may then add yte more bindings there, some of which may be strict. But f may by not be marked as not-demanded (for other reasons: see the call to zapDemandInfo in Simplify.completeLazyBind); and now the strict binding may not be able to float out again. (Well, it triggers the ASSERT in simplLazyBind.) So this commit adds FloatOut.floatNonRecRhs (to complement floatRhs) which is a big more vigorous about floating out. But that in turn showed up a pile of gore to do with unlifted bindings. We can't have them showing up at top level. After thrashing in the swamp for a while, I eventually arranged that let x# = e in b (where x# has an unlifted type) is treated exactly like case e of x# -> b That is, it is never floated. Yes, we lose opportunities to float some (very cheap! unlifted let-bindings are always cheap) out of a lambda, but we're missing much bigger opportunities already. For example: \x -> f (h y) where h :: Int -> Int# is expensive. We'd like to float the (h y) outside the \x, but we don't because it's unboxed. Possible solution: box it. Anyway, that's for the future.
-
simonpj authored
-------------------------- Move demand-zapping code to where it belongs -------------------------- A rather subtle point in the simplifier concerns the zapping of demand-info when the RHS of a binding is a value. This used to be tucked away inside IdInfo where it was hard to find. This commit moves the code to Simplify, so it occurs where you'd look for it. Along with copious comments. See the zapDemandInfo in Simplify.completeLazyBind
-
simonpj authored
Add more informative assertion
-
simonpj authored
Comment only
-
simonpj authored
Remove redundant where
-
simonpj authored
-------------------------- Make MachString literals a bit bigger -------------------------- Up to now, unboxed string literals of up to 3 characters had size 1, which means they are inlined in place of a variable. That seems over-eager (duplication), so I've upped their size a bit.
-
simonmar authored
Fixes for the DEBUG case.
-
simonmar authored
- Convert many of the optimisation options into dynamic options (that is, they can be mentioned in {-# OPTIONS #-} pragmas). - Add a new way to specify constructor-field unboxing on a selective basis. To tell the compiler to unbox a constructor field, do this: data T = T !!Int and GHC will store that field unboxed if possible. If it isn't possible (say, because the field has a sum type) then the annotation is ignored. The -funbox-strict-fields flag is now a dynamic flag, and has the same effect as replacing all the '!' annotations with '!!'.
-
simonmar authored
Allow .so or .dll libraries to be named explicitly on the command line.
-
- 21 Sep, 2003 5 commits
-
-
wolfgang authored
Bound Threads ============= Introduce a way to use foreign libraries that rely on thread local state from multiple threads (mainly affects the threaded RTS). See the file threads.tex in CVS at haskell-report/ffi/threads.tex (not entirely finished yet) for a definition of this extension. A less formal description is also found in the documentation of Control.Concurrent. The changes mostly affect the THREADED_RTS (./configure --enable-threaded-rts), except for saving & restoring errno on a per-TSO basis, which is also necessary for the non-threaded RTS (a bugfix). Detailed list of changes ------------------------ - errno is saved in the TSO object and restored when necessary: ghc/includes/TSO.h, ghc/rts/Interpreter.c, ghc/rts/Schedule.c - rts_mainLazyIO is no longer needed, main is no special case anymore ghc/includes/RtsAPI.h, ghc/rts/RtsAPI.c, ghc/rts/Main.c, ghc/rts/Weak.c - passCapability: a new function that releases the capability and "passes" it to a specific OS thread: ghc/rts/Capability.h ghc/rts/Capability.c - waitThread(), scheduleWaitThread() and schedule() get an optional Capability *initialCapability passed as an argument: ghc/includes/SchedAPI.h, ghc/rts/Schedule.c, ghc/rts/RtsAPI.c - Bound Thread scheduling (that's what this is all about): ghc/rts/Schedule.h, ghc/rts/Schedule.c - new Primop isCurrentThreadBound#: ghc/compiler/prelude/primops.txt.pp, ghc/includes/PrimOps.h, ghc/rts/PrimOps.hc, ghc/rts/Schedule.h, ghc/rts/Schedule.c - a simple function, rtsSupportsBoundThreads, that returns true if THREADED_RTS is defined: ghc/rts/Schedule.h, ghc/rts/Schedule.c - a new implementation of forkProcess (the old implementation stays in place for the non-threaded case). Partially broken; works for the standard fork-and-exec case, but not for much else. A proper forkProcess is really next to impossible to implement: ghc/rts/Schedule.c - Library support for bound threads: Control.Concurrent. rtsSupportsBoundThreads, isCurrentThreadBound, forkOS, runInBoundThread, runInUnboundThread libraries/base/Control/Concurrent.hs, libraries/base/Makefile, libraries/base/include/HsBase.h, libraries/base/cbits/forkOS.c (new file)
-
igloo authored
Generalise the x86-64 hack to all 64-bit arches.
-
igloo authored
Alpha fixes.
-
igloo authored
Change IF_OS_darwin to IF_ARCH_powerpc so addImportNat is imported in exactly the case in which it is used.
-
igloo authored
Add cases for: arm-unknown-linux hppa-unknown-linux m68k-unknown-linux mips-unknown-linux s390-ibm-linux
-
- 20 Sep, 2003 2 commits
-
-
ross authored
Re-arrange the interface to TcMatches to allow typechecking of case commands (part of arrow notation): * replace the export of the internal tcGRHSs with a more specific tcGRHSsPat for checking PatMonoBinds. * generalize match contexts in the same way as stmt contexts, to include a typechecker for the bodies of alts. This should probably be reviewed, but I hope it can make it into STABLE after a while.
-
ross authored
fixes to desugaring of arrow notation: * fix free variable calculation for if's * various fixes for case please merge to STABLE
-
- 19 Sep, 2003 4 commits
-
-
wolfgang authored
POSIX threads should be pthread_detach-ed after they are created. Otherwise they'll stick around waiting for a pthread_join. (This wasn't really a problem because our worker threads never exit anyway).
-
simonmar authored
The whole family of index<blah>OffForeignPtr# primops has been broken for some time now. This commit fixes them. I'm tempted to get rid of them altogether, since arguably the withForeignPtr interface subsumes all this. But if you want to index off a ForeignPtr in pure code, you have to use unsafePerformIO, which is hard to optimise away (GHC doesn't do it), so these primops still have their uses.
-
simonmar authored
Be a bit more honest about how easy it is to port the linker.
-
simonmar authored
Add irix_TARGET_OS support.
-