1. 05 Jun, 2008 4 commits
    • Thomas Heller's avatar
      Backport from py3k: Implement the new buffer interface from pep3118 · 59475e97
      Thomas Heller authored
      for ctypes instances.  Closes issue #2404.
      59475e97
    • Thomas Heller's avatar
      Backport from py3k: Implement the new buffer interface from pep3118 · 2e75c450
      Thomas Heller authored
      for ctypes instances.  Closes issue #2404.
      2e75c450
    • Thomas Heller's avatar
      Fix preprocessor statement. · 259a566a
      Thomas Heller authored
      259a566a
    • Ronald Oussoren's avatar
      MacOS X: Enable 4-way universal builds · 5640ce2f
      Ronald Oussoren authored
      This patch adds a new configure argument on OSX:
              --with-universal-archs=[32-bit|64-bit|all]
      
      When used with the --enable-universalsdk option this controls which
      CPU architectures are includes in the framework. The default is 32-bit,
      meaning i386 and ppc. The most useful alternative is 'all', which includes
      all 4 CPU architectures supported by MacOS X (i386, ppc, x86_64 and ppc64).
      
      This includes limited support for the Carbon bindings in 64-bit mode as well,
      limited because (a) I haven't done extensive testing and (b) a large portion
      of the Carbon API's aren't available in 64-bit mode anyway.
      
      I've also duplicated a feature of Apple's build of python: setting the
      environment variable 'ARCHFLAGS' controls the '-arch' flags used for building
      extensions using distutils.
      5640ce2f
  2. 04 Jun, 2008 6 commits
    • Alexandre Vassalotti's avatar
    • Thomas Heller's avatar
      Revert revisions 63943 and 63942 (Issue #1798: Add ctypes calling · d5bb9215
      Thomas Heller authored
      convention that allows safe access to errno)
      
      This code does not yet work on OS X (__thread storage specifier not
      available), so i needs a configure check plus a more portable
      solution.
      d5bb9215
    • Thomas Heller's avatar
      Fix ctypes.set_errno for gcc. · 8f22b88e
      Thomas Heller authored
      8f22b88e
    • Thomas Heller's avatar
      Issue #1798: Add ctypes calling convention that allows safe access to · e70c3378
      Thomas Heller authored
      errno (and LastError, on Windows).
      
      ctypes maintains a module-global, but thread-local, variable that
      contains an error number; called 'ctypes_errno' for this discussion.
      This variable is a private copy of the systems 'errno' value; the copy
      is swapped with the 'errno' variable on several occasions.
      
      Foreign functions created with CDLL(..., use_errno=True), when called,
      swap the values just before the actual function call, and swapped
      again immediately afterwards.  The 'use_errno' parameter defaults to
      False, in this case 'ctypes_errno' is not touched.
      
      The values are also swapped immeditately before and after ctypes
      callback functions are called, if the callbacks are constructed using
      the new optional use_errno parameter set to True: CFUNCTYPE(..., use_errno=TRUE)
      or WINFUNCTYPE(..., use_errno=True).
      
      Two new ctypes functions are provided to access the 'ctypes_errno'
      value from Python:
      
      - ctypes.set_errno(value) sets ctypes_errno to 'value', the previous
        ctypes_errno value is returned.
      
      - ctypes.get_errno() returns the current ctypes_errno value.
      
      ---
      
      On Windows, the same scheme is implemented for the error value which
      is managed by the GetLastError() and SetLastError() windows api calls.
      
      The ctypes functions are 'ctypes.set_last_error(value)' and
      'ctypes.get_last_error()', the CDLL and WinDLL optional parameter is
      named 'use_last_error', defaults to False.
      
      ---
      
      On Windows, TlsSetValue and TlsGetValue calls are used to provide
      thread local storage for the variables; ctypes compiled with __GNUC__
      uses __thread variables.
      e70c3378
    • Georg Brandl's avatar
      a2b34b87
    • Martin v. Löwis's avatar
      8718459f
  3. 03 Jun, 2008 2 commits
  4. 02 Jun, 2008 5 commits
  5. 01 Jun, 2008 14 commits
  6. 31 May, 2008 6 commits
  7. 30 May, 2008 3 commits