- 19 Mar, 2003 4 commits
- 18 Mar, 2003 3 commits
-
-
simonmar authored
Fix a profiling crash on Windows. fprint_ccs used snprintf() to avoid overflowing a buffer; on mingw32 where snprintf() doesn't exist we were just using the straight sprintf(), which inevitably lead to a crash. Rewritten to use a homegrown non-overflowing string copying function - it actually looks nicer now, anwyay.
-
simonmar authored
This should have been committed along with rev. 1.36 of Main.c (and others) yesterday, but for some reason it got left out. Change the way Main.main is run, so it now doesn't force the return value. Now 'main = return undefined' will run and exit successfully. The change affects finalizers too - but since they have type IO (), it won't do any harm not to evaluate the ().
-
simonmar authored
Fix wibble in previous commit (fixes broken bootstrap)
-
- 17 Mar, 2003 2 commits
-
-
simonmar authored
Fix for lexing of floating point numbers. '9e2' should be a float. Noticed-by: Ross Paterson.
-
simonmar authored
Haskell quiz: what should this program do? main = return undefined answer: run to completion and exit successfully. GHC erroneously evaluates the returned value from main, which causes this example to fail with an uncaught exception (the evaluation is even done outside of the main exception handler!).
-
- 16 Mar, 2003 1 commit
-
-
igloo authored
Support for contexts on data types and records from Derek Elkins.
-
- 14 Mar, 2003 1 commit
-
-
simonmar authored
Fix tryM for GHC 5.00.x and 5.02.x.
-
- 11 Mar, 2003 6 commits
-
-
stolz authored
Add comment about lack of instance-support in .hi-boot
-
simonmar authored
- Remove mention of MutableByteArray and ByteArray - Add section on memory allocation in the FFI, with emphasis on how GHC's implementations of the various kinds of allocation perform.
-
simonpj authored
---------------------------------- Fix a long-standing egregious parser bug ---------------------------------- *** MERGE TO STABLE *** *** NB: the important part of this commit *** got committed by accident with an *** unrelated message. This commit *** should be from rev 1.50 to 1.52 of RdrHsSyn GHC has parsed data T String = T String without complaint, ever since day 1! This led to consequential incomprehensible messages. The fix is easy.
-
simonpj authored
Document external core a bit more
-
simonpj authored
Restructure documentation about undecidable instances
-
simonpj authored
Buglet in external-core parsing
-
- 10 Mar, 2003 3 commits
-
-
simonmar authored
Use STK_CHK_NP rather than STK_CHK_GEN in the entry code for AP and AP_STACK thunks. The reason is that if the check fails, on return the closure might have been blackholed (perhaps due to lazy blackholing, or even because another thread has entered it), so we *must* enter the closure to continue, rather than just continuing at the original entry point. All compiler-generated thunks do this anyway, I think these are the only cases of thunks which don't follow the rule. Thanks to Robert Ennals for spotting, and correctly diagnosing, the bug.
-
stolz authored
Fix typo
-
umuta authored
Fix compilation problem on mingw32
-
- 07 Mar, 2003 4 commits
- 06 Mar, 2003 5 commits
- 05 Mar, 2003 1 commit
-
-
simonmar authored
Duh. hsc2hs should be in $(GhcBinDistShScripts), not $(GhcBinDistBins), otherwise it doesn't get the right directories tacked on the front at installation time. Strange that nobody complained that hsc2hs wasn't working from a binary dist *shrug*.
-
- 04 Mar, 2003 3 commits
-
-
simonmar authored
Make it compile again with 5.04.x
-
simonmar authored
Fix compilation breakage with GHC 4.08.x.
-
sof authored
win32/Ticker.c:startTicker(), win32/IOManager.c:NewIOWorkerThread(): pass in non-NULL pointer to _beginthreadex()'s outgoing thread ID arg. Needed to work with Win9x's impl of CreateThread().
-
- 03 Mar, 2003 5 commits
-
-
simonmar authored
A round of space-leak fixing. - re-instate zapping of the PersistentCompilerState at various points during the compilation cycle in HscMain. This affects one-shot compilation only, since in this mode the information collected in the PCS is not required after creating the final interface file. - Unravel the recursive dependency between MkIface and CoreTidy/CoreToStg. Previously the CafInfo for each binding was calculated by CoreToStg, and fed back into the IdInfo of the Ids generated by CoreTidy (an earlier pass). MkIface then took this IdInfo and the bindings from CoreTidy to generate the interface; but it couldn't do this until *after* CoreToStg, because the CafInfo hadn't been calculated yet. The result was that the CoreTidy output lived until after CoreToStg, and at the same time as the CorePrep and STG syntax, which is wasted space, not to mention the complexity and general ugliness in HscMain. So now we calculate CafInfo directly in CoreTidy. The downside is that we have to predict what CorePrep is going to do to the bindings so we can tell what will turn into a CAF later, but it's no worse than before (it turned out that we were doing this prediction before in CoreToStg anyhow). - The typechecker lazilly typechecks unfoldings. It turns out that this is a good idea from a performance perspective, but it also means that it must hang on to all the information it needs to do the typechecking. Previously this meant holding on to the whole of the typechecker's environment, which includes all sorts of stuff which isn't necessary to typecheck unfoldings. By paring down the environment captured by the lazy unfoldings, we can save quite a bit of space in the phases after typechecking.
-
simonmar authored
Use listArray rather than array in (un)?boxedTupleArr.
-
simonmar authored
Remove unused export.
-
simonmar authored
underscore some variables that aren't used.
-
simonmar authored
Compilation fix after recent addition of environment stuff to System.Posix.
-
- 26 Feb, 2003 1 commit
-
-
simonpj authored
---------------------------------- Improve higher-rank type inference ---------------------------------- Yanling Wang pointed out that if we have f = \ (x :: forall a. a->a). x it would be reasonable to expect that type inference would get the "right" rank-2 type for f. She also found that the plausible definition f :: (forall a. a->a) = \x -> x acutally failed to type check. This commit fixes up TcBinds.tcMonoBinds so that it does a better job. The main idea is that there are three cases to consider in a function binding: a) 'f' has a separate type signature In this case, we know f's type everywhere b) The binding is recursive, and there is no type sig In this case we must give f a monotype in its RHS c) The binding is non-recursive, and there is no type sig Then we do not need to add 'f' to the envt, and can simply infer a type for the RHS, which may be higher ranked.
-
- 24 Feb, 2003 1 commit
-
-
simonmar authored
Remove mention of man pages, which we don't have, and clarify a couple of other things while I'm here.
-