- 22 Mar, 2013 2 commits
-
-
ian@well-typed.com authored
-
ian@well-typed.com authored
There's no point splitting objects when we're going to be dynamically linking. Plus it breaks compilation on OSX x86.
-
- 18 Mar, 2013 2 commits
-
-
ian@well-typed.com authored
Without it, when linking the split objects for Language.Haskell.TH.Syntax, the commandline was too long when listing all the files directly.
-
mad.one@gmail.com authored
LLVM supports PIC on ARM from what I can see. Signed-off-by:
Austin Seipp <aseipp@pobox.com>
-
- 17 Mar, 2013 2 commits
-
-
PHO authored
We were previously enabling Opt_PIC on certain OSes namely Windows, Darwin and Linux, but it should always be enabled for the dyn way because it makes no sense to try to generate non-PIC dynamic libraries, which is usually impossible.
-
PHO authored
On OpenBSD and NetBSD, we were accidentally passing "-optl-pthread" to the gcc to build dynamic libraries because of a bitrotted hack for those OSes, which resulted in a weird situation where every dynamic library is named "ptl-pthread" and placed at "$(TOP)". The hack in question were to work around a linkage problem with libHSffi, but we no longer build it and just use libffi these days so the hack can safely be removed.
-
- 16 Mar, 2013 2 commits
-
-
ian@well-typed.com authored
There were some cases where we weren't unsetting it when turning the Dyn way on.
-
ian@well-typed.com authored
-
- 15 Mar, 2013 2 commits
-
-
ian@well-typed.com authored
-
ian@well-typed.com authored
In particular, this means that GHCi will use DLLs, rather than loading object files itself.
-
- 13 Mar, 2013 1 commit
-
-
Simon Peyton Jones authored
This is a slightly refined version of a patch by shachaf, done by Krzysztof Gogolewski <krz.gogolewski@gmail.com>.
-
- 09 Mar, 2013 2 commits
-
-
ian@well-typed.com authored
I'm not sure why it caused problems before, but it's fine now.
-
ian@well-typed.com authored
-
- 08 Mar, 2013 1 commit
-
-
jpm@cs.ox.ac.uk authored
-
- 03 Mar, 2013 1 commit
-
-
ian@well-typed.com authored
We don't need them, but GHC API users might.
-
- 24 Feb, 2013 1 commit
-
-
ian@well-typed.com authored
We only use the unicode characters if the locale supports them.
-
- 14 Feb, 2013 1 commit
-
-
Simon Peyton Jones authored
This work was all done by Achim Krause <achim.t.krause@gmail.com> George Giorgidze <giorgidze@gmail.com> Weijers Jeroen <jeroen.weijers@uni-tuebingen.de> It allows list syntax, such as [a,b], [a..b] and so on, to be overloaded so that it works for a variety of types. The design is described here: http://hackage.haskell.org/trac/ghc/wiki/OverloadedLists Eg. you can use it for maps, so that [(1,"foo"), (4,"bar")] :: Map Int String The main changes * The ExplicitList constructor of HsExpr gets witness field * Ditto ArithSeq constructor * Ditto the ListPat constructor of HsPat Everything else flows from this.
-
- 12 Feb, 2013 1 commit
-
-
jpm@cs.ox.ac.uk authored
This patch makes the Data.Typeable.Typeable class work with arguments of any kind. In particular, this removes the Typeable1..7 class hierarchy, greatly simplyfing the whole Typeable story. Also added is the AutoDeriveTypeable language extension, which will automatically derive Typeable for all types and classes declared in that module. Since there is now no good reason to give handwritten instances of the Typeable class, those are ignored (for backwards compatibility), and a warning is emitted. The old, kind-* Typeable class is now called OldTypeable, and lives in the Data.OldTypeable module. It is deprecated, and should be removed in some future version of GHC.
-
- 08 Feb, 2013 2 commits
-
-
ian@well-typed.com authored
-
Jan Stolarek authored
-
- 05 Feb, 2013 1 commit
-
-
chak@cse.unsw.edu.au. authored
* By default '-fvectorisation-avoidance' is enabled at all optimisation levels (but it only matters in combination with '-fvectorise'). * The new vectoriser always uses vectorisation avoidance, but with '-fno-vectorisation-avoidance' it restricts it to simple scalar applications (and dictionary computations)
-
- 30 Jan, 2013 1 commit
-
-
ian@well-typed.com authored
-
- 29 Jan, 2013 1 commit
-
-
Jan Stolarek authored
Function responsible for parsing the static flags, that were spread across two modules (StaticFlags and StaticFlagParser), are now in one file. This is analogous to dynamic flags parsing, which is also contained within a single module. Signed-off-by:
David Terei <davidterei@gmail.com>
-
- 25 Jan, 2013 1 commit
-
-
Simon Marlow authored
-
- 17 Jan, 2013 3 commits
-
-
tibbe authored
-
tibbe authored
We know have a single flag that takes a version number, instead of one flag per SSE version.
-
mad.one@gmail.com authored
This controls whether or not the compiler warns if we're using an LLVM version that's too old or too new. It's mostly useful when building the compiler knowingly with an unsupported version, so you don't get a lot of warnings in the build process. There's no documentation for this since it's a flag only a few developers would care about anyway. Signed-off-by:
Austin Seipp <mad.one@gmail.com>
-
- 11 Jan, 2013 1 commit
-
-
ian@well-typed.com authored
-
- 10 Jan, 2013 1 commit
-
-
tibbe authored
This will add the following preprocessor defines when Haskell source files are compiled: * __SSE__ - If any version of SSE is enabled * __SSE2__ - If SSE2 or greater is enabled * __SSE4_2_ - If SSE4.2 is enabled Note that SSE2 is enabled by default on x86-64.
-
- 08 Jan, 2013 1 commit
-
-
Simon Peyton Jones authored
Two main changes. First, re-engineer the ambiguity test. Previously TcMType.checkAmbiguity used a rather syntactic test to detect some types that are certainly ambiguous. But a much easier test is available, and it is used for inferred types in TcBinds. Namely <type> is ambiguous iff <type> `TcUnify.isSubType` <type> fails to hold, where "isSubType" means "is provably more polymorphic than". Example: C a => Int is ambiguous, because isSubType instantiates the (C a => Int) to (C alpha => Int) and then tries to deduce (C alpha) from (C a). This is Martin Sulzmann's definition of ambiguity. (Defn 10 of "Understanding functional dependencies via constraint handling rules", JFP.) This change is neat, reduces code, and correctly rejects more programs. However is *is* just possible to have a useful program that would be rejected. For example class C a b f :: C Int b => Int -> Int Here 'f' would be rejected as having an ambiguous type. But it is just possible that, at a *call* site there might be an instance declaration instance C Int b, which does not constrain 'b' at all. This is pretty strange -- why is 'b' overloaded at all? -- but it's possible, so I also added a flag -XAllowAmbiguousTypes that simply removes the ambiguity check. Let's see if anyone cares. Meanwhile the earlier error report will be useful for everyone else. A handful of regression tests had to be adjusted as a result, because they used ambiguous types, somewhat accidentally. Second, split TcMType (already too large) into two * TcMType: a low-level module dealing with monadic operations like zonking, creating new evidence variables, etc * TcValidity: a brand-new higher-level module dealing with validity checking for types: checkValidType, checkValidInstance, checkFamInstPats etc Apart from the fact that TcMType was too big, this allows TcValidity to import TcUnify(tcSubType) without causing a loop.
-
- 04 Jan, 2013 1 commit
-
-
Simon Peyton Jones authored
The main changes are: * Parser accepts empty case alternatives * Renamer checks that -XEmptyCase is on in that case * (Typechecker is pretty much unchanged.) * Desugarer desugars empty case alternatives, esp: - Match.matchWrapper and Match.match now accept empty eqns - New function matchEmpty deals with the empty case - See Note [Empty case alternatives] in Match This patch contains most of the work, but it's a bit mixed up with a refactoring of MatchGroup that I did at the same time (next commit).
-
- 02 Jan, 2013 1 commit
-
-
Simon Peyton Jones authored
This fixes Trac #7541, and is on by default. Use -fno-warn-duplicate-constraints to switch it off.
-
- 24 Dec, 2012 1 commit
-
-
Simon Peyton Jones authored
-
- 19 Dec, 2012 2 commits
-
-
mad.one@gmail.com authored
There's only a single compiler backend now, so the 'z' suffix means nothing. Also, the flags were confusingly named ('cmm-foo' vs 'foo-cmm',) and counter-intuitively, '-ddump-cmm' did not do at all what you expected since the new backend went live. Basically, all of the -ddump-cmmz-* flags are now -ddump-cmm-*. Some were renamed to be more consistent. This doesn't update the manual; it already mentions '-ddump-cmm' and that flag implies all the others anyway, which is probably what you want. Signed-off-by:
Austin Seipp <mad.one@gmail.com>
-
Simon Peyton Jones authored
Nothing big here, just tidying up deetails
-
- 16 Dec, 2012 1 commit
-
-
ian@well-typed.com authored
-
- 14 Dec, 2012 2 commits
-
-
ian@well-typed.com authored
I'm not sure if making an entirely new HscEnv is too large a hammer, but it works for now.
-
Simon Peyton Jones authored
The situation was pretty dire. The way in which data constructors were handled, notably the mapping between their *source* argument types and their *representation* argument types (after seq'ing and unpacking) was scattered in three different places, and hard to keep in sync. Now it is all in one place: * The dcRep field of a DataCon gives its representation, specified by a DataConRep * As well as having the wrapper, the DataConRep has a "boxer" of type DataConBoxer (defined in MkId for loopy reasons). The boxer used at a pattern match to reconstruct the source-level arguments from the rep-level bindings in the pattern match. * The unboxing in the wrapper and the boxing in the boxer are dual, and are now constructed together, by MkId.mkDataConRep. This is the key function of this change. * All the computeBoxingStrategy code in TcTyClsDcls disappears. Much nicer. There is a little bit of refactoring left to do; the strange deepSplitProductType functions are now called only in WwLib, so I moved them there, and I think they could be tidied up further.
-
- 11 Dec, 2012 1 commit
-
-
ian@well-typed.com authored
We don't yet have the slow path, for when we have to fall back to separate compilation. We also only currently handle the case qhere we're compiling Haskell code with the NCG.
-
- 08 Dec, 2012 1 commit
-
-
ian@well-typed.com authored
We need to have WayDyn in the ways in the DynFlags, or the interface loader will fail. -dynamic-too now correctly evaluates whether or not it is possible to build for the dynamic way too, but doesn't actually do so yet.
-