- 19 Sep, 2010 1 commit
-
-
Edward Z. Yang authored
This is patch that adds support for interruptible FFI calls in the form of a new foreign import keyword 'interruptible', which can be used instead of 'safe' or 'unsafe'. Interruptible FFI calls act like safe FFI calls, except that the worker thread they run on may be interrupted. Internally, it replaces BlockedOnCCall_NoUnblockEx with BlockedOnCCall_Interruptible, and changes the behavior of the RTS to not modify the TSO_ flags on the event of an FFI call from a thread that was interruptible. It also modifies the bytecode format for foreign call, adding an extra Word16 to indicate interruptibility. The semantics of interruption vary from platform to platform, but the intent is that any blocking system calls are aborted with an error code. This is most useful for making function calls to system library functions that support interrupting. There is no support for pre-Vista Windows. There is a partner testsuite patch which adds several tests for this functionality.
-
- 02 Oct, 2010 1 commit
-
-
Simon Marlow authored
-
- 18 Sep, 2010 1 commit
-
-
Ian Lynagh authored
and remove the temporary DOpt class workaround.
-
- 15 Sep, 2010 2 commits
-
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
Implements Trac #4299. Documentation to come.
-
- 21 Jul, 2010 1 commit
-
-
Antonio Nikishaev authored
This fixes trac bug #1344
-
- 07 Jul, 2010 2 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 06 Jul, 2010 3 commits
-
-
Ian Lynagh authored
This also means that extsBitmap gets set, whereas is was just being set to 0 before.
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 01 Jul, 2010 1 commit
-
-
Ian Lynagh authored
-
- 05 May, 2010 1 commit
-
-
Simon Marlow authored
-
- 02 Mar, 2010 4 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
Now not only is if/then a bracketting pair, but then/else is too
-
Ian Lynagh authored
If enabled, these accept more layout, but give warnings
-
Ian Lynagh authored
It used to break on let {x = 'a'} in x as the 'in' token would keep closing contexts looking for an implicit 'let' layout.
-
- 10 Feb, 2010 1 commit
-
-
simonpj@microsoft.com authored
After some discussion we decided to make a quasi-quote look like [pads| ...blah... |] rather than [$pads| ...blah... |] as before. The new syntax is quieter, although it does not signal quite as clearly that there is a splice going on.
-
- 16 Jan, 2010 2 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
It thought the ) needed to close something, but the $( hadn't opened anything.
-
- 17 Dec, 2009 1 commit
-
-
Simon Marlow authored
-
- 10 Dec, 2009 1 commit
-
-
Simon Marlow authored
The problem in #3741 was that we had confused column numbers with byte offsets, which fails in the case of UTF-8 (amongst other things). Fortunately we're tracking correct column offsets now, so we didn't have to make a calculation based on a byte offset. I got rid of two fields from the PState (last_line_len and last_offs).and one field from the AI (alex input) constructor.
-
- 05 Dec, 2009 1 commit
-
-
Ian Lynagh authored
-
- 03 Dec, 2009 2 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 29 Nov, 2009 3 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 27 Nov, 2009 2 commits
-
-
Ian Lynagh authored
Also corrected a couple of line 0's to line 1
-
Ian Lynagh authored
-
- 18 Sep, 2009 1 commit
-
-
Simon Marlow authored
-
- 25 Nov, 2009 7 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
And make the code simpler in the process!
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
Caution: Largely untested
-
- 24 Nov, 2009 1 commit
-
-
Ian Lynagh authored
-
- 06 Nov, 2009 1 commit
-
-
Ben.Lippmeier@anu.edu.au authored
The type of the CmmLabel ctor is now CmmLabel :: PackageId -> FastString -> CmmLabelInfo -> CLabel - When you construct a CmmLabel you have to explicitly say what package it is in. Many of these will just use rtsPackageId, but I've left it this way to remind people not to pretend labels are in the RTS package when they're not. - When parsing a Cmm file, labels that are not defined in the current file are assumed to be in the RTS package. Labels imported like import label are assumed to be in a generic "foreign" package, which is different from the current one. Labels imported like import "package-name" label are marked as coming from the named package. This last one is needed for the integer-gmp library as we want to refer to labels that are not in the same compilation unit, but are in the same non-rts package. This should help remove the nasty #ifdef __PIC__ stuff from integer-gmp/cbits/gmp-wrappers.cmm
-