- 26 Apr, 2009 1 commit
-
-
Ian Lynagh authored
-
- 25 Apr, 2009 1 commit
-
-
Ben.Lippmeier@anu.edu.au authored
-
- 24 Apr, 2009 8 commits
-
-
Ian Lynagh authored
This showed up when converting ds057 to follow the new bang pattern rules, in #2806.
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
For now we only get a warning, rather than an error, because the alex and happy templates don't follow the new rules yet.
-
simonpj@microsoft.com authored
The top-level indirection-shorting, done in SimplCore.shortOutIndirections, was accidentally nuking a NOINLINE pragma. This patch adopts a slightly more conservative approach to indirection-shorting, only doing so if we do not thereby overwrite or lose some user-supplied pragmas.
-
Ben.Lippmeier@anu.edu.au authored
movss instruction was being used to move the result into the destination register instead of movsd
-
Simon Marlow authored
-
simonpj@microsoft.com authored
-
- 23 Apr, 2009 6 commits
-
-
Simon Marlow authored
Also some tidyups and renaming
-
Simon Marlow authored
Part of the fix for #3171
-
Simon Marlow authored
Part of the fix for #3171
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
When making record selectors into ordinary functions (rather than magial implicit Ids) I forgot that they could therefore show up in the *local* TcEnv, not the global one. This fixes that problem, and thereby Trac #3176.
-
simonpj@microsoft.com authored
-
- 21 Apr, 2009 5 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
In GHCi if you say 'import Foo' meaning to load a package module Foo, and Foo.hs is found on the search path, then GHCi replies "module Foo is not loaded", because it knows Foo refers to the source file rather than the package module, and you haven't loaded that module with :load. This is consistent with the usual module-finding semantics. However, it isn't particularly useful. And it leads to silly problems like not being able to start GHCi when you happen to be sitting in libraries/base, because GHCi thinks the Prelude hasn't been loaded. So now I've made a slight change to the way that 'import M' works: if M is loaded, then it refers to the loaded module, otherwise it looks for a package module M. This does what the reporter of #2682 wanted, and since it turns an error condition into meaningful behaviour it can't break anything. The only undesirable consequence is that 'import M' might refer to a different M than ':load M'. Hopefully that won't lead to confusion.
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
- 20 Apr, 2009 1 commit
-
-
Simon Marlow authored
It turns out we can easily support breakpoints on expressions with unlifted types, by translating case tick# of _ -> e into let f = \s . case tick# of _ -> e in f realWorld# instead of just a plain let-binding. This is the same trick that GHC uses for abstracting join points of unlifted type. In #2845, GHC has eta-expanded the tick expression, changing the result type from IO a to (# State#, a #), which was the reason the tick was suddenly being ignored. By supporting ticks on unlifted expressions we can make it work again, although some confusion might arise because _result will no longer be available (it now has unboxed-tuple type, so we can't bind it in the environment). The underlying problem here is that GHC does transformations like eta-expanding the tick expressions, and there's nothing we can do to prevent that.
-
- 03 Apr, 2009 1 commit
-
-
Simon Marlow authored
-
- 20 Apr, 2009 3 commits
-
-
Ben.Lippmeier@anu.edu.au authored
Can't use windowed regs because the window moves during a function call. Can't use the global regs because they're reserved for other purposes.
-
Ben.Lippmeier@anu.edu.au authored
-
Ben.Lippmeier@anu.edu.au authored
-
- 19 Apr, 2009 1 commit
-
-
mnislaih authored
My previous patch didn't completely solve the problem. I believe I got it right this time.
-
- 18 Apr, 2009 3 commits
-
-
mnislaih authored
Fix a bug in :print affecting data types with unboxed components
-
Ben.Lippmeier@anu.edu.au authored
The x86 code generator sometimes generates nop moves like movl %vI_a %vI_a, but we'll just ignore them for coalescing purposes instead of emitting an error. It shouldn't hurt anything.
-
waern authored
I forgot to record some additional changes.
-
- 17 Apr, 2009 1 commit
-
-
waern authored
Simon P-J suggested the following simplifications in #3097: * Allow nested foralls in `ctype` just like in `ctypedoc`. * Use `gentype` rather than `type` in the LHS of type declarations. * Inline `type` in `ctype`. * Rename `gentype` to `type`. This patch does this. Also, the equivalent thing is done for documented types.
-
- 13 Apr, 2009 5 commits
-
-
donnie@darthik.com authored
postEventTypeID was used to post event marker IDs, but instead we just call postWord16 directly; thus, this function is unused.
-
donnie@darthik.com authored
For consistency, changed access of thread id to be through capability instead of directly from StgRegTable.
-
donnie@darthik.com authored
-
donnie@darthik.com authored
StgWord64 other better represents this argument since it can be used as any particular data, thus "other" and not the "from" capability as it was previously strictly used. Also, StgWord64 is normally larger than type nat to allow for larger data to be passed through the "other" argument.
-
donnie@darthik.com authored
Fixed ThreadID to be defined as StgThreadID, not StgWord64. Changed CapabilityNum to CapNo. Added helper functions postCapNo() and postThreadID(). ThreadID was StgWord64, but should have been StgThreadID, which is currently StgWord32. Changed name from CapabilityNum to CapNo to better reflect naming in Capability struct where "no" is the capability number. Modified EventLog.c to use the helper functions postCapNo() and postThreadID () for CapNo and ThreadID.
-
- 03 Apr, 2009 2 commits
-
-
donnie@darthik.com authored
EventTypeDescriptions order must be synchronized with the event type definitions in includes/EventLogFormat.h for the definitions to correctly index with the matching description.
-
donnie@darthik.com authored
-
- 07 Apr, 2009 1 commit
-
-
Ian Lynagh authored
-
- 09 Apr, 2009 1 commit
-
-
simonpj@microsoft.com authored
This patch sligtly re-adjusts the way in which the syntax of types is handled: * In the lexer, '.' and '*' are always accepted in types (previously it was conditional). This things can't mean anything else in H98, which is the only reason for doing things conditionally in the lexer. * As a result '.' in types is never treated as an operator. Instead, lacking a 'forall' keyword, it turns into a plain parse error. * Test for -XKindSignatures in the renamer when processing a) type variable bindings b) types with sigs (ty :: kind-sig) * Make -XKindSignatures be implied by -XTypeFamilies Previously this was buried in the conditonal lexing of '*'
-