- 10 May, 2005 6 commits
-
-
simonmar authored
Two SMP-related changes: - New storage manager interface: bdescr *allocateLocal(StgRegTable *reg, nat words) which allocates from the current thread's nursery (being careful not to clash with the heap pointer). It can do this without taking any locks; the lock only has to be taken if a block needs to be allocated. allocateLocal() is now used instead of allocate() in a few PrimOps. This removes locks from most Integer operations, cutting down the overhead for SMP a bit more. To make this work, we have to be able to grab the current thread's Capability out of thin air (i.e. when called from GMP), so the Capability subsystem needs to keep a hash from thread IDs to Capabilities. - Small MVar optimisation: instead of taking the global storage-manager lock, do our own locking of MVars with a bit of inline assembly (x86 only for now).
-
simonmar authored
Mangler support for GNU/Hurd. From: Thomas Schwinge
-
simonmar authored
Add -I options to SRC_CC_OPTS for bootstrapping From: Thomas Schwinge
-
simonmar authored
Bootstrap fix from GNU/Hurd port From: Thomas Schwinge
-
simonmar authored
GNU/Hurd platform (from Thomas Schwinge <schwinge-list-ghc-users@nic-nac-project.de>)
-
simonmar authored
-ignore-package lang if GHC >= 6.3, fixes build breakage if wxHaskell is installed.
-
- 09 May, 2005 4 commits
-
-
chak authored
More details about type checking.
-
simonmar authored
printAllThreads: handle ThreadRelocated
-
simonmar authored
deleteAllThreads: handle ThreadRelocated
-
simonmar authored
ProjectPatchLevel hack: the STABLE branch versions now look like 6.4.1.20050508 which confuses the compiler which thinks ProjectPatchLevel should be an Int.
-
- 07 May, 2005 2 commits
-
-
wolfgang authored
GCC 4.0 Fix: Do not emit lvalue casts for foreign calls. Note: This fix might break cmm code that directly assigns the result of a foreign call to a "strange type" register (but we don't do that). MERGE TO STABLE
-
josefs authored
Allow unicode in string and character literals when pretty printing external core.
-
- 06 May, 2005 2 commits
-
-
simonpj authored
Rule overlap message should be only in ifdef DEBUG
-
sof authored
[mingw only] Work around bug in win32 Console API which showed up in the GHCi UI: if the user typed in characters prior to the appearance of the prompt, the first of these characters always came out as a 'g'. The GHCi UI does for good reasons one-character reads from 'stdin', which causes the underlying APIs to become confused. A simple repro case is the following piece of C code: /*----------------------*/ #include <stdio.h> #include <windows.h> int main() { char ch1,ch2; HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE); DWORD dw; /* Type in some characters before the prompt appears and be amused.. */ sleep(1000); printf("? "); ReadConsoleA(hStdIn,&ch1,1,&dw,NULL); ReadConsoleA(hStdIn,&ch2,1,&dw,NULL); /* or, if you want to use libc: read(0,&ch1,1); read(0,&ch2,1); */ printf("%c%c\n", ch1,ch2); return 0; } /*----------------------*/ This happens across win32 OSes, and I can't see anything untoward as far as API usage goes (the GHC IO implementation uses read(), but that reduces to ReadConsoleA() calls.) People inside the Behemoth might want to have a closer look at this.. Not much we can do about this except work around the problem by flushing the input buffer prior to reading from stdin. Not ideal, as type-ahead is a useful feature. Flushing is handled by GHC.ConsoleHandler.flushConsole Merge to STABLE.
-
- 05 May, 2005 14 commits
-
-
sof authored
ocResolve_PEi386(): when fixing up REL32 relocations, _add_ displacement to value at the given offset. The existing value has so far been assumed to be zero (which we've asserted for), but curiously wxhaskell-0.9.4's wx.o contains lots of interesting non-zero values. Information / specifications are awfully thin on the ground as to how to precisely handle these relocations, but adding rather than overwriting seems to have a generally healthy effect; unable to crash wxhaskell-0.9.4 with a 6.4 build. Merge to STABLE.
-
simonmar authored
Some fixes to the blackhole garbage collection strategy. conc049 is a great test case.
-
simonpj authored
Report instances correctly in GHCi
-
simonpj authored
Only compare hi-boot iface with mother module if there *is* an hi-boot iface
-
simonpj authored
Be a bit more parsimonious about type-error contexts
-
simonmar authored
Treat the blackhole_queue as a weak list: it shouldn't keep its elements alive, because otherwise we can't detect deadlock using the GC. Fortunately the fix is quite simple.
-
simonmar authored
AP_STACK fix for SMP
-
simonmar authored
Fix the offsets and macros for AP_STACK closures (was wrong for SMP only)
-
simonmar authored
Sanity fix for SMP
-
ross authored
Stop the renamer from barfing on arrow notation outside of proc, since this will be caught by the typechecker (tcfail120).
-
simonmar authored
Make GHC.modInfoPrintUnqualified work for package modules too. Also refactor a bit: move mkExportEnv from TcRnDriver up to GHC which is the only use of it.
-
simonpj authored
Make it so that you can deprecate a data constructor. Previously {-# DEPRECATED T "no" #-} referred only to the type or class T. Now it refers to the data constructor T as well, just like in fixity declarations. There's no way to deprecate the data constructor T without also deprecating the type T, alas. Same problem in fixity decls. Main problem is coming up with a suitable concrete syntax to do so. We could consider merging this to the STABLE branch. NB: Sven, the manual fixes are not XML-valideated! I'm at home.
-
simonpj authored
Two small things a) report duplicate declarations in canonical order b) report deprecations for all uses (a longstanding bug) both MERGE TO STABLE
-
sof authored
[mingw only] Provide (unsatisfying) workaround for pesky Ctrl-C issue, whereby a cygwin-based bash will terminate the 'ghci.exe' wrapper without the wrapper process getting a chance to respond (and shut down its child, if nothing else.) The result instead being that the child (ghc.exe) ends up lingering in the background. To steer users away from such badness, the wrapper checks to see whether it is running in a *nix-like shell, and if it is, issue a warning that it would be better to invoke GHCi using the 'ghcii.sh' shell script instead. Merge to STABLE.
-
- 04 May, 2005 8 commits
-
-
simonmar authored
getModuleInfo now does something reasonable for package modules.
-
simonmar authored
Fix instance-matching issue (affects nofib/real/prolog).
-
simonmar authored
Add lookupGlobalName
-
chak authored
Updated and extended the section about the renamer.
-
josefs authored
Make GHC accept external core files with higher rank types.
-
simonmar authored
Fix porting instructions
-
simonpj authored
Further wibbles to unused-import reporting; merge to stable
-
ross authored
Another go at the handling of -< in arrow notation, continuing and fixing the changes in http://www.haskell.org/pipermail/cvs-all/2005-April/040391.html Now do the same thing in the renamer as we do in the type checker, i.e. return to the environment of the proc when considering the left argument of -<. This is much simpler than the old proc_level stuff, and matches the type rules more clearly. But there is a change in error messages. For the input f :: Int -> Int f = proc x -> (+x) -< 1 GHC 6.4 says test.hs:6: Command-bound variable `x' is not in scope here Reason: it is used in the left argument of (-<) In the second argument of `(+)', namely `x' In the command: (+ x) -< 1 In the definition of `f': f = proc x -> (+ x) -< 1 but now we just get the blunt test.hs:6:16: Not in scope: `x' The beauty is all on the inside. Similarly leakage of existential type variables (arrow1) is detected, but the error message isn't very helpful.
-
- 03 May, 2005 4 commits
-
-
simonpj authored
Check for illegal declarations in hs-boot files
-
simonpj authored
Second stab at the duplicate-import warnings
-
simonpj authored
Improve generation of 'duplicate import' warnings. This involved changing (actually simplifying) the definition of RdrName.ImportSpec. I'm not sure whether this one merits merging or not. Perhaps worth a try.
-
simonpj authored
Fix the test for duplicate local bindings, so that it works with Template Haskell. Pre-TH, all the local bindings came into scope at once, but with TH they come into scope in groups, and we must check for conflict with existing local bindings. MERGE TO STABLE
-