summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix #3182: 64 bit FP value returned by C calls was getting trashedBen.Lippmeier@anu.edu.au2009-04-241-1/+1
| | | | | movss instruction was being used to move the result into the destination register instead of movsd
* add missing files (part of #3171 fix)Simon Marlow2009-04-242-0/+105
|
* Tiny optimisation to mkInlineMesimonpj@microsoft.com2009-04-241-2/+3
|
* Add EVENT_CREATE_SPARK_THREAD to replace EVENT_SPARK_TO_THREADSimon Marlow2009-04-233-41/+33
| | | | Also some tidyups and renaming
* add getOrSetSignalHandlerStore, much like getOrSetTypeableStoreSimon Marlow2009-04-234-77/+5
| | | | Part of the fix for #3171
* don't overwrite io_manager_pipe if it is already setSimon Marlow2009-04-231-1/+3
| | | | Part of the fix for #3171
* Simplify the placeholder binding for naughty record selectorssimonpj@microsoft.com2009-04-231-18/+23
|
* Fix Trac #3176: intercept naughty record selectorssimonpj@microsoft.com2009-04-231-0/+9
| | | | | | | | 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.
* Better pretty-printing for IdDetailssimonpj@microsoft.com2009-04-231-3/+5
|
* FIX #3166: include the fixity of classes and type synonyms in their fingerprintsSimon Marlow2009-04-211-6/+12
|
* FIX #2682: banish silly cases of the "module Foo is not loaded" errorSimon Marlow2009-04-213-19/+56
| | | | | | | | | | | | | | | | | | | | | | 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.
* FIX #2500: Don't log warnings in getHeaderSimon Marlow2009-04-211-2/+4
|
* add a DO NOT EDIT commentSimon Marlow2009-04-211-0/+2
|
* FIX #3153: we lost an EOF sentinel in the event of a lexical errorSimon Marlow2009-04-211-2/+3
|
* FIX #2845: Allow breakpoints on expressions with unlifted typeSimon Marlow2009-04-202-7/+24
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* remove now-unused atomic_modify_mutvar_mutexSimon Marlow2009-04-031-6/+0
|
* SPARC NCG: Add a comment explaining why we can't used a pinned reg for gctBen.Lippmeier@anu.edu.au2009-04-201-3/+20
| | | | | 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.
* SPARC NCG: validate fixesBen.Lippmeier@anu.edu.au2009-04-202-4/+12
|
* SPARC NCG: Base freeRegs on includes/MachRegs.h againBen.Lippmeier@anu.edu.au2009-04-205-84/+387
|
* Really fix Trac #2611 this timepepe iborra2009-04-191-10/+22
| | | | | My previous patch didn't completely solve the problem. I believe I got it right this time.
* Fix Trac #2611pepe iborra2009-04-181-15/+26
| | | | | Fix a bug in :print affecting data types with unboxed components
* Fix #3170: Allow coalescing of the same node during register allocation.Ben.Lippmeier@anu.edu.au2009-04-181-3/+3
| | | | | | 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.
* Fix my previous patch about type parsingDavid Waern2009-04-181-19/+0
| | | | I forgot to record some additional changes.
* Simplify the type grammarDavid Waern2009-04-171-16/+18
| | | | | | | | | | | 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.
* Removed unused function postEventTypeID.donnie@darthik.com2009-04-131-3/+0
| | | | | postEventTypeID was used to post event marker IDs, but instead we just call postWord16 directly; thus, this function is unused.
* For consistency, changed access of thread id to be through capability ↵donnie@darthik.com2009-04-131-1/+1
| | | | instead of directly from StgRegTable.
* Added new EventLog event: Spark to Thread.donnie@darthik.com2009-04-133-16/+37
|
* Changed postEvent last argument from "nat from" to "StgWord64 other".donnie@darthik.com2009-04-132-5/+5
| | | | | | | 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.
* Fixed ThreadID to be defined as StgThreadID, not StgWord64. Changed ↵donnie@darthik.com2009-04-132-13/+18
| | | | | | | | | | 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.
* Fixed error in order of EventTypeDescriptions -- seq and par GC come after ↵donnie@darthik.com2009-04-031-2/+2
| | | | | | | | start and finish GC. EventTypeDescriptions order must be synchronized with the event type definitions in includes/EventLogFormat.h for the definitions to correctly index with the matching description.
* Eventlog support for new event type: create spark.donnie@darthik.com2009-04-035-3/+22
|
* Tweak a Show instanceIan Lynagh2009-04-071-1/+1
|
* Fix Trac #3155: better error message when -XRankNTypes is omittedsimonpj@microsoft.com2009-04-096-14/+32
| | | | | | | | | | | | | | | | | | | | | 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 '*'
* Use return instead of returnM, and similar tidy-upssimonpj@microsoft.com2009-04-093-95/+77
|
* Don't use thread local storage on x86/not-LinuxIan Lynagh2009-04-041-2/+2
| | | | | | | With the On x86, use thread-local storage instead of stealing a reg for gct patch, on Windows and OS X: error: thread-local storage not supported for this target
* Make some showSDoc's use OneLineMode rather than PageModeIan Lynagh2009-03-314-7/+18
|
* Make the showSDoc definition more explicitIan Lynagh2009-03-311-1/+1
|
* eliminate warningsdias@eecs.tufts.edu2009-04-032-2/+1
|
* Debugging by Sesame Street:dias@eecs.tufts.edu2009-04-031-1/+1
| | | | | | | | | | | | | | | | One of these things is not like the others: stdPattern :: [LRep] -> Maybe StgHalfWord stdPattern reps = case reps of [] -> Just ARG_NONE -- just void args, probably [N] -> Just ARG_N [P] -> Just ARG_N [F] -> Just ARG_F [D] -> Just ARG_D [L] -> Just ARG_L Today's debugging session was brought to you by the letter P.
* Buggy optimizations caused function-call return to share the function's ↵dias@eecs.tufts.edu2009-03-311-25/+50
| | | | | | | | | entry point - Block concat and branch-chain elimination were allowing a function call to return to the caller's entry point. But that doesn't leave anywhere for the infotable on the stack, since the SP on return must be the same as the SP on entry to the procedure.
* Better handling of node parameter in calling conventionsdias@eecs.tufts.edu2009-03-254-12/+20
| | | | | | - Previously, the node was taken as a parameter, then ignored, for static closures. Goofy. Now, the vestigial node parameters are gone.
* When calling gc, avoid saving node in static closuresdias@eecs.tufts.edu2009-03-232-4/+5
|
* Code simplifications due to call/return separation; some improvements to how ↵dias@eecs.tufts.edu2009-03-235-68/+35
| | | | node argument is managed
* Code simplification due to separate call/return conventionsdias@eecs.tufts.edu2009-03-233-30/+41
|
* Calls with and without passing node arguments more clearly separateddias@eecs.tufts.edu2009-03-237-22/+36
|
* Another small step: call and return conventions specified separately when ↵dias@eecs.tufts.edu2009-03-239-26/+27
| | | | making calls
* Small step toward call-conv improvement: separate out calls and returnsdias@eecs.tufts.edu2009-03-239-27/+35
|
* On x86, use thread-local storage instead of stealing a reg for gctSimon Marlow2009-04-031-1/+6
| | | | | | | | Benchmarks show that using TLS instead of stealing a register is better by a few percent on x86, due to the lack of registers. This only affects -threaded; without -threaded we're (now) using static storage for the GC data.
* in the non-threaded RTS, use a static gc_thread structureSimon Marlow2009-04-032-25/+39
|
* small GC optimisationSimon Marlow2009-04-032-4/+13
|