1. 19 Sep, 2010 1 commit
    • Edward Z. Yang's avatar
      Interruptible FFI calls with pthread_kill and CancelSynchronousIO. v4 · 83d563cb
      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.
      83d563cb
  2. 02 Oct, 2010 1 commit
  3. 18 Sep, 2010 1 commit
  4. 15 Sep, 2010 2 commits
  5. 21 Jul, 2010 1 commit
  6. 07 Jul, 2010 2 commits
  7. 06 Jul, 2010 3 commits
  8. 01 Jul, 2010 1 commit
  9. 05 May, 2010 1 commit
  10. 02 Mar, 2010 4 commits
  11. 10 Feb, 2010 1 commit
    • simonpj@microsoft.com's avatar
      Simplify syntax for quasi-quotation · 26f164e5
      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.
      26f164e5
  12. 16 Jan, 2010 2 commits
  13. 17 Dec, 2009 1 commit
  14. 10 Dec, 2009 1 commit
    • Simon Marlow's avatar
      Fix #3741, simplifying things in the process · f4b72748
      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.
      f4b72748
  15. 05 Dec, 2009 1 commit
  16. 03 Dec, 2009 2 commits
  17. 29 Nov, 2009 3 commits
  18. 27 Nov, 2009 2 commits
  19. 18 Sep, 2009 1 commit
  20. 25 Nov, 2009 7 commits
  21. 24 Nov, 2009 1 commit
  22. 06 Nov, 2009 1 commit
    • Ben.Lippmeier@anu.edu.au's avatar
      * Refactor CLabel.RtsLabel to CLabel.CmmLabel · a02e7f40
      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
         
      a02e7f40