- 22 Dec, 2004 2 commits
-
-
simonpj authored
---------------------------------------- New Core invariant: keep case alternatives in sorted order ---------------------------------------- We now keep the alternatives of a Case in the Core language in sorted order. Sorted, that is, by constructor tag for DataAlt by literal for LitAlt The main reason is that it makes matching and equality testing more robust. But in fact some lines of code vanished from SimplUtils.mkAlts. WARNING: no change to interface file formats, but you'll need to recompile your libraries so that they generate interface files that respect the invariant.
-
simonpj authored
-------------------------- Add -fwarn-orphans flag -------------------------- This gives a decent report for modules that contain 'orphan' instance and rule declarations. These are to be avoided, because GHC has to proactively read the interface file every single time, just in case the instance/rule is needed. The flag just gives a convenient way of identifying the culprits.
-
- 21 Dec, 2004 12 commits
-
-
simonpj authored
--------------------------------- Template Haskell: dynamically scoped qualified names --------------------------------- This commit adds a constructor to TH.Name, so that nameBase (mkName "Foo.baz") == "baz" nameModule (MkName "Foo.baz") == "Foo" We always did parse the module name off the front, but it used to be done in hsSyn/Convert, but now it's done in TH.Syntax, which is a better place.
-
simonpj authored
Fix buglet in CSE
-
simonpj authored
An old commit about paths on windows
-
simonpj authored
--------------------------------- Improve handling of lexically scoped type variables --------------------------------- If we have f :: T a -> a f (x :: T b) = ... then the lexically scoped variable 'b' should refer to the rigid type variable 'a', without any intervening wobbliness. Previously the in-scope type variables were always mutable TyVars, which were instantatiated to point to the type they were bound to; but since the advent of GADTs the intervening mutable type variable is a bad thing. Hence * In the type environment, ATyVar now carries a type * The call to refineTyVars in tc_pat on SigPatIn finds the types by matching * Then tcExtendTyVarEnv3 extends the type envt appropriately Rater a lot of huff and puff, but it's quite natural for ATyVar to contain a type. Various other small nomenclature changes along the way.
-
simonpj authored
Comments
-
simonpj authored
Remove debug output
-
simonpj authored
Comments
-
simonpj authored
Add missing NoteTy cases to unify_
-
simonpj authored
Comments only
-
simonpj authored
Fix bogon in type comparison
-
simonpj authored
Comment only
-
simonpj authored
Another wibble to the Panic change; this time on Windows
-
- 20 Dec, 2004 1 commit
-
-
simonpj authored
-------------------------------- Deal properly with dual-renaming -------------------------------- When comparing types and terms, and during matching, we are faced with \x.e1 ~ \y.e2 There are many pitfalls here, and GHC has never done the job properly. Now, at last it does, using a new abstraction VarEnv.RnEnv2. See comments there for how it works. There are lots of consequential changes to use the new stuff, especially in types/Type (type comparison), types/Unify (matching on types) coreSyn/CoreUtils (equality on expressions), specialise/Rules (matching). I'm not 100% certain of that I've covered all the bases, so let me know if something unexpected happens after you update. Maybe wait until a nightly build has worked ok first!
-
- 18 Dec, 2004 1 commit
-
-
panne authored
The documentation breakage continues... >:-( Fixed DocBook. Again: "make html" (or the faster "make validate" in the case of DocBook XML) is your friend! >:-(
-
- 17 Dec, 2004 5 commits
-
-
simonpj authored
Restore a test; fixes rnfail042
-
simonpj authored
Fix breakage in previous commit re signal handling
-
simonmar authored
Add entry about Ctrl-C on Windows
-
simonmar authored
Add comment about Ctrl-C/Ctrl-Break issue
-
simonmar authored
Support for Ctrl-C on Windows. This works fine in a cmd.exe shell, but in a Cygwin bash shell you have to press Ctrl-Break to get an interrupt. There appears to be a long thread on the cygwin mailing list back in 2002 about this, but life is probably too short to investigate further. http://www.cygwin.com/ml/cygwin/2002-01/msg00163.html
-
- 16 Dec, 2004 3 commits
-
-
simonmar authored
Sanity check when configuring for mingw32: make sure that $CC is a mingw gcc before proceeding.
-
simonmar authored
--with-gcc: export the CC environment variable, so the setting gets picked up by sub-configures. Perhaps we should be advising people to use CC=c:/mingw/bin/gcc ./configure because that works for all configure scripts, not just the top level one. Background: - We want --with-gcc to do the right thing, because we don't want to require Cygwin users to put c:/mingw/bin first on their path: that would break their Cygwin environment. - The build system should work with *no* gcc on your PATH, as long as you use --with-gcc (equivalently, CC=... ./configure).
-
simonpj authored
Darn! Forgot this commit, which killed the nightly build
-
- 15 Dec, 2004 4 commits
-
-
simonpj authored
Comments only
-
simonpj authored
Make ghc/lib/compat/Compat/Directory.hs use the C function __compat_long_path_size, rather than __hscore_long_path_size, as the libraries/ version does And make ghc/lib/compat/cbits/directory.c define it. In this way we avoid spurious duplicate-symbol errors when we compile GHC with ghc6.2.1 etc.
-
simonpj authored
Tidy the type of an interactively-bound Id before adding it to the environment. Generally speaking, top level environments are assumed to be in tidied form, so we don't tidy the types before printing.
-
simonpj authored
comment
-
- 13 Dec, 2004 1 commit
-
-
simonpj authored
Comments only
-
- 10 Dec, 2004 1 commit
-
-
simonmar authored
stg_sel_##offset##_upd_entry: the ENTER() here is unnecessary, because we know the closure in R1 will evaluate to a constructor, so we can save some time by just entering it directly.
-
- 08 Dec, 2004 6 commits
-
-
simonpj authored
Undo bogus 1.4 commit
-
simonpj authored
First commit for new Cmm code generation (branch)
-
simonpj authored
Comments and asserts only
-
simonmar authored
Fix bug #1073501: checkProddableBlock: invalid fixup in runtime linker The bug manifested when trying to load an object with debugging info (compiled with gcc -g) into GHCi. The problem was that the object loader was ignoring the sections containing debugging info, but then it was later trying to do relocations for those sections, and its own sanity checking code correctly detected that the relocations were in unknown parts of the object file. The fix is to ignore relocations whose target section isn't one of the sections that we're interested in, using the same test in both cases (the code to test section kind has been extracted). The code could probably benefit from more refactoring: it looks like the list of sections we build up in the first phase isn't even used in the second phase, instead we traverse the section table in the image again. This looks like cruft leftover from when the GC used to check whether an address was in text or data space.
-
simonmar authored
deleteThread: don't attempt to delete threads blocked in foreign calls.
-
simonmar authored
Prevent any intermediate file deletion using .SECONDARY: and remove now-unnecessary .PRECIOUS and .SECONDARY targets. Suggestion from Ashley Yakeley.
-
- 06 Dec, 2004 3 commits
-
-
simonpj authored
--------------------- Bug in specialisation --------------------- Laszlo managed to get a function like this: foo :: Enum a => (# a, Int #) The specialiser specialised it, resulting in an unboxed tuple binding, which Lint objected to. This commit adds a dummy argument to the specialised function, very like the case for strictness analysis. For example, at type Char we'd get foo_char :: State# RealWorld -> (# Char, Int #) foo_char = \_ -> ... We use a State# type because it generates no argument-passing code at runtime. (We should really have some other void type for this purpose, because State# is misleading, but this way avoids extra types.)
-
simonpj authored
------------------------------------ Bug in loop detection in TcSimplify ------------------------------------ The type-class context simplifier has been able to build recursive dictionaries for some time: co-induction. That is, you can build a proof for constraint C by assuming that C holds when proving the preconditions of C. You need to be in -fallow-undecidable-instances land to make use of this: see comments with [RECURSIVE DICTIONARIES] in TcSimplify.lhs. Anyway, this is all fine, but I'd implemented it wrong! You need to be very careful with superclasses, or you can make a bogus loop by mistake. This commit fixes it; tests LoopOfTheDay{1,2,3} will test it (thanks Ralf Laemmel).
-
simonmar authored
Error message fixup
-
- 04 Dec, 2004 1 commit
-
-
panne authored
Moved GTK_CONFIG detection to ghc subdirectory (untested).
-