Commits

Ronald Oussoren committed 10acb9e

- Enable more warnings during compilation, and fix the resulting messages
- Add wrappers for decoding of plain ObjC types (NSCoding)
- Add NS{Mutable,}Dictionary.items()
- Regenerate Doc/*.html
- Add a document that will contain information about how the Cocoa API's
as exposed by PyObjC are different from the Objective-C API's.
- Add script to run all tests in 1 python session, this is a script by
Dinu Gherman with minor updates by me.

  • Participants
  • Parent commits 7cd3301
  • Branches pyobjc-ancient

Comments (0)

Files changed (63)

 objects that lazily lookup class objects. This is needed to speed up application
 loading. Just importing everything negates the usefullness of this change.
 
-
-Check/Fix consistency of method calling
-.......................................
-
-There are currently 3 ways for calling from Objective-C into Python:
-
-* The methods stubs (in register.m and libffi_support.m)
-
-* forwardInvocation in class-builder.m
-
-* forwardInvocation in OC_PythonObject.m
-
-These should be consistent with each other, and the first two should be
-equivalent (but aren't as the latter doesn't support pass-by-reference 
-arguments). Hmm, might as well try to merge the two forwardInvocation
-implementations if at all possible...
-
-The 'data-flow' for calling into Python from Objective-C should be the 
-reverse of calling into Objective-C from Python (e.g. 
-``libffi_support.m:method_stub`` should be the reverse of 
-``libffi_support.m:ObjC_FFICaller``)
-
 Better documentation
 ....................
 
 There should be more developer documentation and end-user documentation is
 virtually non-existant. Related to this is the website: This should be filled.
 
-We should also merge ../BUGS and ../FIXME into one file, possibly even into
-this file.
-
 We should also add scripts to convert documentation to a format that is 
 useable on the website.
 
+Also needed: document listing the differences between Objective-C Cocoa and
+Python Cocoa: which functions/methods are not available, list differences
+in arguments (e.g. NSBeginAlertSheet has a variable number of arguments in
+Objective-C, the format-arguments are not present in Python).
+
 Multi-threading support
 .......................
 
   raise a python exception if the conversion fails, instead of returning an
   error-string.
 
+NOTE: If we don't mind doing this only for Python 2.3 we can use the interface
+defined by PEP 311
+
 
 Test suite
 ..........
 * dictionary.py
   Should be a unittest, and should be added to the (non-existing) manual
 
-* objc-vars.py
-  Move to unittests (and documentation)
-
 * pydict-to-objcdict.py
   Move to unittests
 
 * using-nscoder.py
   Move to unittest (and expand)
 
-* using-nsscanner.py
-  Move to unitest
+Add examples that demonstrate:
+
+- how to use a lot of Cocoa features
+
+- how to integrate with MacPython
+
 
 Platform dependencies in Foundation & AppKit
 ............................................
 It would be nice if this could be abstracted away to something like::
 
    #include PyObjC_PLAT_FILE("_Fnd_Var", ".inc")
+
+Convenience functions
+.....................
+
+Add function to PyObjCTools that can be used to decode the values returned
+by NSNetService.address()

Doc/api-notes-macosx.html

+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>
+Notes on supported APIs and classes on MacOS X</title>
+</head>
+<body>
+<h2>Notes on supported APIs and classes on MacOS X</h2>
+<!-- :author: Ronald Oussoren -->
+<h2><a name="introduction">Introduction</a></h2>
+<p><i>NOTE</i>: This document is very incomplete.</p>
+<p>This document describes the restrictions w.r.t. supported APIs and classes
+on MacOS X. In general you can use classes and global functions just like
+in Objective-C (e.g. the Apple developer documentaton applies), but in some
+cases there are special considerations.</p>
+<p>We also do not provide access to global functions that are not usefull for
+Python programs, those functions are listed below.</p>
+<p>The general rules are listed in ..., this document provides the exceptions to
+those rules.</p>
+<p>This document is target at the latest supported version of MacOS X (currenlty
+MacOS X 10.2.x), unless specifically noted the same restrictions apply to 
+earlier versions of MacOS X. Earlier versions of the OS have less extensive
+APIs, PyObjC does <i>not</i> provide a compatibility layer.</p>
+<p>Frameworks not listed below are not wrapped by PyObjC, they can still be
+accessed although without access to constants and global functions defined
+by those frameworks.</p>
+<h2><a name="addressbook-framework">Addressbook framework</a></h2>
+<p>We do not provide access to the global functions in that framework, because
+the same functionality can be accessed by using the object-oriented interface.</p>
+<h2><a name="appkit-framework">AppKit framework</a></h2>
+<p>T.B.D.</p>
+<h2><a name="foundation-framework">Foundation framework</a></h2>
+<p>T.B.D.</p>
+<h2><a name="interfacebuilder-framework">InterfaceBuilder framework</a></h2>
+<p>T.B.D.</p>
+<h2><a name="preferencepanes-framework">PreferencePanes framework</a></h2>
+<p>T.B.D.</p>
+</body>
+</html>

Doc/api-notes-macosx.txt

+==============================================
+Notes on supported APIs and classes on MacOS X
+==============================================
+
+.. :author: Ronald Oussoren
+
+Introduction
+------------
+
+*NOTE*: This document is very incomplete.
+
+This document describes the restrictions w.r.t. supported APIs and classes
+on MacOS X. In general you can use classes and global functions just like
+in Objective-C (e.g. the Apple developer documentaton applies), but in some
+cases there are special considerations.
+
+We also do not provide access to global functions that are not usefull for
+Python programs, those functions are listed below.
+
+The general rules are listed in ..., this document provides the exceptions to
+those rules.
+
+This document is target at the latest supported version of MacOS X (currenlty
+MacOS X 10.2.x), unless specifically noted the same restrictions apply to 
+earlier versions of MacOS X. Earlier versions of the OS have less extensive
+APIs, PyObjC does *not* provide a compatibility layer.
+
+Frameworks not listed below are not wrapped by PyObjC, they can still be
+accessed although without access to constants and global functions defined
+by those frameworks.
+
+Addressbook framework
+---------------------
+
+We do not provide access to the global functions in that framework, because
+the same functionality can be accessed by using the object-oriented interface.
+
+AppKit framework
+----------------
+
+T.B.D.
+
+Foundation framework
+--------------------
+
+T.B.D.
+
+InterfaceBuilder framework
+--------------------------
+
+T.B.D.
+
+PreferencePanes framework
+-------------------------
+
+T.B.D.

Doc/coding-style.html

 <li>Add appropriate ReST style fields to the top of the document as comments:<pre>
 # Author: David Goodger
 # Contact: goodger@users.sourceforge.net
-# Revision: $Revision: 1.7 $
-# Date: $Date: 2003/05/04 20:40:07 $
+# Revision: $Revision: 1.8 $
+# Date: $Date: 2003/05/29 17:48:55 $
 # Copyright: This module has been placed in the public domain.
 </pre>
 </li>
 <li><a href="tutorial/tutorial.html">Creating your first PyObjC application (tutorial)</a></li>
 <li><a href="users.html">Userguide for PyObjC</a></li>
 <li><a href="classes.html">Python classes and Objective-C code</a></li>
+<li><a href="api-notes-macosx.txt">Notes on supported APIs and classes on MacOS X</a></li>
 <li><a href="coding-style.html">Coding style for PyObjC</a></li>
 <li><a href="libffi.html">Using LibFFI with PyObjC</a></li>
 <li><a href="architecture.html">PyObjC Architecture</a></li>
 
 * `Python classes and Objective-C code`_
 
+* `Notes on supported APIs and classes on MacOS X`_
+
 * `Coding style for PyObjC`_
 
 * `Using LibFFI with PyObjC`_
 
 * `Odd features`_
 
-.. _`An introduction to PyObjC`: intro.html
+..   _`An introduction to PyObjC`: intro.html
 
 ..   _`Userguide for PyObjC`: users.html
 
 ..   _`Odd features`: warts.html
 
 ..   _`Creating your first PyObjC application (tutorial)`: tutorial/tutorial.html
+
+..   _`Notes on supported APIs and classes on MacOS X`: api-notes-macosx.txt
+

Doc/release-process.html

+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>
+The PyObjC release process</title>
+</head>
+<body>
+<h2>The PyObjC release process</h2>
+<!-- :author: Ronald Oussoren -->
+<p>This document gives an exhaustive overview of what needs to be done when 
+building and releasing a new version of PyObjC. It is meant for the project
+administrators, and not of much use for users of PyObjC.</p>
+<p>The timeframe is a guideline only and should be taken with a grain of salt.</p>
+<h2><a name="release-date-2-weeks">Release date -2 weeks</a></h2>
+<p>Full feature freeze, documenation updates and critical bugfixes only. At this
+time:</p>
+<ul>
+<li>Check if the NEWS file is up-to-date</li>
+<li>Tests the tutorial(s)
+Read the tutorial(s) and follow the instructions exactly, the tutorials should
+be completely bugfree.</li>
+<li>Proofread the documentation</li>
+<li>Update the announcement messages.</li>
+</ul>
+<h2><a name="release-date-3-days">Release-date -3 days</a></h2>
+<p>Build the release tarball and dmg:</p>
+<ul>
+<li>Run Scripts/make_distrib.py</li>
+<li>Create an empty disk image (named <code><span>PyObjC</span> <span>X.Y</span></code>) and copy the installer
+package, License and ReadMe to this disk image. Resize the icons in this
+folder to largish icons (about 64 pixels) and resize the view to be just
+large enough to contain the icons.<p>NOTE: This should be scripted, and maybe we should add a nice background
+image to the folder.</p>
+</li>
+</ul>
+<p>Trash you existing PyObjC installation and reinstall from the new release. Test
+that the new release is working correctly. Installing and testing should be done
+both for the binary installer and for the source archive. The latter should be
+done in all supported configurations.</p>
+<p>If the package works as expected upload to a convenient location and ask some
+other people (like the other maintainers) to test the new release.</p>
+<h2><a name="release-date">Release-date</a></h2>
+<ul>
+<li>Upload the release files to sourceforge</li>
+<li>add a news item to the website and update the download page</li>
+<li>add the latest documentation to the website (run scripts/doc2php in
+the pyobjc-web tree).</li>
+<li><dl>
+<dt>announce the new version at ADC news: </dt>
+<dd><a href="http://developer.apple.com/devnews/submit.html">http://developer.apple.com/devnews/submit.html</a></dd>
+</dl>
+<ul>
+<li>Organization: PyObjC Team</li>
+<li>Name of Produt... : PyObjC</li>
+<li>URL: <a href="http://pyobjc.sourceforge.net">http://pyobjc.sourceforge.net</a></li>
+<li>Describe your product... :<p>PyObjC is a bridge between Python and Objective-C and allows development
+of full-fledged Cocoa programs in pure Python.</p>
+</li>
+</ul>
+</li>
+<li>update the information at a number of software databases:<ul>
+<li>versiontracker.com (billb knows how)</li>
+<li>macupdate.com</li>
+<li>freshmeat.net (ronald knows how)</li>
+<li>PyPI database at python.org (run <code><span>python2.3</span> <span>setup.py</span> <span>register</span></code>)</li>
+</ul>
+</li>
+<li>send the announcement text to:<ul>
+<li><a href="mailto:python-list@python.org">python-list@python.org</a></li>
+<li><a href="mailto:python-announce-list@python.org">python-announce-list@python.org</a></li>
+<li><a href="mailto:macosx-dev@omnigroup.com">macosx-dev@omnigroup.com</a></li>
+<li><a href="mailto:pyobjc-dev@sourceforge.net">pyobjc-dev@sourceforge.net</a></li>
+<li><a href="mailto:pythonmac-sig@python.org">pythonmac-sig@python.org</a></li>
+<li><a href="mailto:cocoa-dev@lists.apple.com">cocoa-dev@lists.apple.com</a></li>
+</ul>
+</li>
+</ul>
+</body>
+</html>

Doc/tutorial/tutorial.html

 <h2><a name="getting-started">Getting Started</a></h2>
 <ol type="1">
 <li>Create a work directory <code><span>src</span></code>. Check which Python you have installed PyObjC
-for, by running <code><span>python</span></code> and checking that <code><span>import</span> <span>PyObjC</span></code> works. If it
+for, by running <code><span>python</span></code> and checking that <code><span>import</span> <span>Foundation</span></code> works. If it
 does not work it could be that you have installed PyObjC for <code><span>/usr/local/python</span></code>
 but Apple's <code><span>/usr/bin/python</span></code> comes first in your <code><span>$PATH</span></code>. Make sure you
 use the right python whereever it says <code><span>python</span></code> in this tutorial.<p>For convenience, set a shell variable PYLIB
 in the new file dialog, save this file as <code><span>src/MainMenu.nib</span></code>.</li>
 <li>Proceed with the instructions as lined out in Apple's
 <a href="http://developer.apple.com/techpubs/macosx/Cocoa/ObjCTutorial/index.html">Developing Cocoa Objective-C Applications: a Tutorial</a>, <a href="http://developer.apple.com/techpubs/macosx/Cocoa/ObjCTutorial/chapter03/index.html">chapter 3</a>,
-just after the section &quot;<i>Creating the Currency Converter Interface</i>&quot;. Stop when you get
-to the section &quot;<i>Implementing the Classes of Currency Converter</i>&quot;,
-as we are going to do this in Python, not Objective-C. Your nib file
-should now be the same as <a href="step3-MainMenu.nib">step3-MainMenu.nib</a>.</li>
+just after the section &quot;<i>Creating the Currency Converter Interface</i>&quot;.
+Work through &quot;Defining the Classes of Currency Converter&quot;, &quot;Connecting
+ConverterController to the Interface&quot;, and stop at &quot;<i>Implementing the Classes
+of Currency Converter</i>&quot;, as we are going to do this in Python, not Objective-C.
+Your nib file should now be the same as <a href="step3-MainMenu.nib">step3-MainMenu.nib</a>.</li>
 </ol>
 <ol start="4" type="1">
 <li>Create the skeleton Python script by running <code><span>NibClassBuilder</span></code> as a tool.
 </li>
 </ol>
 <ol start="5" type="1">
-<li>Next we need to add a little more boilerplate code to <code><span>CurrencyConverter.py</span></code>. At some point
-in the future this will become simpler, but for now we need to add a main program
-that jumps through various hoops to get the application started.
-The results of this can be seen in <a href="step5-CurrencyConverter.py">step5-CurrencyConverter.py</a>.</li>
+<li>There is no step 5.</li>
 </ol>
-<blockquote>
-<p><i>XXXX Implementation Note:</i> NibClassBuilder should do this for you, at least
-optionally.</p>
-</blockquote>
 <h2><a name="testing-the-user-interface">Testing the user interface</a></h2>
 <ol start="6" type="1">
 <li>Now we need to create an application framework around our program. Again,
 <pre>
 object.modifyArg_andAnother_(arg1, arg2)
 </pre>
-<p>Note that we don't do this mangling for <code><span>Converter.ConvertAmount()</span></code>: this method is
+<p>Note that we don't do this mangling for <code><span>Converter.convertAmount()</span></code>: this method is
 only called by other Python code, so there is no need to go through the name mangling.
 Also, if we would want to make this method callable from ObjC code we would have
 to tell the PyObjC runtime system about the types of the arguments, so it could

Examples/objc-vars.py

-#!/usr/bin/env python
-"""
-Using and accessing instance variables.
-"""
-import objc
-
-NSObject = objc.lookUpClass('NSObject')
-
-class MyClass (NSObject):
-    test = objc.ivar('test', '@')
-    test2 = objc.ivar('test2', 'd')
-
-    def init_(self, obj):
-        print "x", self, obj
-        self.test = obj
-        self.test2 = 23.4
-        print self.test
-        print "x"
-        self.test = self
-        print "x"
-        return self
-
-    def __del__(self):
-        print "Del of MyClass instance"
-
-x = MyClass.alloc().init_('22')
-print x.test
-print x.test2

Lib/Foundation/test/test_nsarray.py

         self.assertSlicesEqual(x, y, z)
 
     def test_mixSliceNDice(self):
+        # This test failes on Python 2.2, that is expected.
         x = range(0, 10)
         y = NSMutableArray.arrayWithArray_( range(0, 10) )
 

Lib/Foundation/test/test_nscoder.py

+import unittest
+import objc
+
+from Foundation import *
+
+
+class TestNSCoderUsage(unittest.TestCase):
+    if not hasattr(unittest.TestCase, 'assertAlmostEquals'):
+        def assertAlmostEquals(self, val1, val2):
+            self.assert_ (abs(val1 - val2) <  0.000001)
+
+    def testUsage(self):
+        class CoderClass1 (NSObject):
+            def encodeWithCoder_(self, coder):
+                # NSObject does not implement NSCoding, no need to
+                # call superclass implementation:
+                #    super(CoderClass1, self).encodeWithCoder_(coder)
+                coder.encodeValueOfObjCType_at_(objc._C_INT, 2)
+                coder.encodeValueOfObjCType_at_(objc._C_DBL, 2.0)
+                coder.encodeArrayOfObjCType_count_at_(objc._C_DBL, 4, (1.0, 2.0, 3.0, 4.0))
+
+            def initWithCoder_(self, coder):
+                # NSObject does not implement NSCoding, no need to
+                # call superclass implementation:
+                #    self = super(CodeClass1, self).initWithCoder_(coder)
+                self = self.init()
+                self.intVal = coder.decodeValueOfObjCType_at_(objc._C_INT)[1]
+                self.dblVal = coder.decodeValueOfObjCType_at_(objc._C_DBL)[1]
+                self.dblArray = coder.decodeArrayOfObjCType_count_at_(objc._C_DBL, 4)
+                return self
+
+        origObj = CoderClass1.alloc().init()
+        data = NSMutableData.data()
+        archiver = NSArchiver.alloc().initForWritingWithMutableData_(data)
+        archiver.encodeObject_(origObj)
+
+        archiver = NSUnarchiver.alloc().initForReadingWithData_(data)
+        newObj = archiver.decodeObject()
+
+        self.assertEquals(newObj.intVal, 2)
+        self.assertAlmostEquals(newObj.dblVal, 2.0)
+        self.assertEquals(len(newObj.dblArray), 4)
+        self.assertAlmostEquals(newObj.dblArray[0], 1.0)
+        self.assertAlmostEquals(newObj.dblArray[1], 2.0)
+        self.assertAlmostEquals(newObj.dblArray[2], 3.0)
+        self.assertAlmostEquals(newObj.dblArray[3], 4.0)
+
+if __name__ == '__main__':
+    unittest.main( )

Lib/Foundation/test/test_nsdictionary.py

         except KeyError:
             pass
 
+    def testPythonIteraction(self):
+        d = NSMutableDictionary.dictionary()
+        d['a'] = "foo"
+        d['b'] = "bar"
+
+        k = list(d.keys())
+        k.sort()
+        self.assert_(k == ['a', 'b'])
+
+        k = list(d.values())
+        k.sort()
+        self.assert_(k == ['bar', 'foo'])
+
+        k = list(d.items())
+        k.sort()
+        self.assert_(k == [('a', 'foo'), ('b', 'bar') ])
+
+
     def testIn(self):
         d = NSMutableDictionary.dictionary()
         d['a'] = "foo"

Lib/objc/_convenience.py

         yield nextObject
         nextObject = anEnumerator.nextObject()
 
+def dictItems(aDict):
+    """
+    NSDictionary.items()
+    """
+    keys = aDict.allKeys()
+    values = aDict.objectsForKeys_notFoundMarker_(keys, runtime.NSNull.null())
+    return zip(keys, values)
+
 CONVENIENCE_METHODS['allKeys'] = (
     ('keys', lambda self: self.allKeys()),
+    ('items', lambda self: dictItems(self)),
 )
 
 CONVENIENCE_METHODS['allValues'] = (

Lib/objc/test/test_ivar.py

     doubleVar = objc.ivar('doubleVar', objc._C_DBL)
 
 class TestInstanceVariables(unittest.TestCase):
+    if not hasattr(unittest.TestCase, 'assertAlmostEquals'):
+        def assertAlmostEquals(self, val1, val2):
+            self.assert_(abs(val1 - val2) < 0.000001)
+
     def setUp(self):
         self.object = TestClass.alloc().init()
 
         objc.recycle_autorelease_pool()
         self.assertEquals(self.deleted, 1)
 
+    def testDelete(self):
+        self.assertRaises(TypeError, delattr, self.object.idVar)
+
 if __name__ == '__main__':
     unittest.main()

Lib/objc/test/test_methods2.py

         def assertAlmostEquals(self, val1, val2, message=None):
             self.assert_ (abs (val1 - val2) < 0.00001, message)
 
-class PyToObjC (unittest.TestCase):
+class PyToObjC (TestCase):
 	# Test calling Objective-C from Python
 	# Simple returns from class methods
 
 	NSRectInOutArg_ = objc.selector(NSRectInOutArg_, signature="@@:N^{_NSRect={_NSPoint=ff}{_NSSize=ff}}")
 
 
-class ObjCToPy (unittest.TestCase):
+class ObjCToPy (TestCase):
 	# Test calling Python from Objective-C
 	# Simple returns from instance methods
 

Lib/objc/test/test_posing.py

 import objc
 
 # Most useful systems will at least have 'NSObject'.
-NSObject = objc.lookUpClass('NSObject')
+#NSObject = objc.lookUpClass('NSObject')
+
+# Use a class that isn't used in the rest of the testsuite,
+# should write a native class for this!
+BaseClass = objc.lookUpClass('NSPortCoder')
 
 class TestPosing(unittest.TestCase):
     def testPosing(self):
-        class PoseClass(NSObject):
+        class PoseClass(BaseClass):
             __slots__ = ()  # Don't add instance variables, not even __dict__
             def description(self):
                 return "<<subdescrip>> " + super.description()
 
-        PoseClass.poseAsClass_(NSObject)
+        PoseClass.poseAsClass_(BaseClass)
         
-        obj = NSObject.new()
+        obj = BaseClass.new()
 
 if __name__ == '__main__':
     unittest.main()

Lib/objc/test/test_signatures.py

+"""
+Test some basic features of signature strings.
+"""
+import unittest
+import objc
+
+class PyOCTestTypeStr(unittest.TestCase):
+    def testAll(self):
+        self.assertEquals(objc._C_ID, "@")
+        self.assertEquals(objc._C_CLASS, "#")
+        self.assertEquals(objc._C_SEL, ":")
+        self.assertEquals(objc._C_CHR, "c")
+        self.assertEquals(objc._C_UCHR, "C")
+        self.assertEquals(objc._C_SHT, "s")
+        self.assertEquals(objc._C_USHT, "S")
+        self.assertEquals(objc._C_INT, "i")
+        self.assertEquals(objc._C_UINT, "I")
+        self.assertEquals(objc._C_LNG, "l")
+        self.assertEquals(objc._C_ULNG, "L")
+        self.assertEquals(objc._C_LNGLNG, "q")
+        self.assertEquals(objc._C_ULNGLNG, "Q")
+        self.assertEquals(objc._C_FLT, "f")
+        self.assertEquals(objc._C_DBL, "d")
+        self.assertEquals(objc._C_VOID, "v")
+        self.assertEquals(objc._C_CHARPTR, "*")
+        self.assertEquals(objc._C_PTR, "^")
+        self.assertEquals(objc._C_UNDEF, "?")
+        self.assertEquals(objc._C_ARY_B, "[")
+        self.assertEquals(objc._C_ARY_E, "]")
+        self.assertEquals(objc._C_UNION_B, "(")
+        self.assertEquals(objc._C_UNION_E, ")")
+        self.assertEquals(objc._C_STRUCT_B, "{")
+        self.assertEquals(objc._C_STRUCT_E, "}")
+        self.assertEquals(objc._C_IN, "n")
+        self.assertEquals(objc._C_OUT, "o")
+        self.assertEquals(objc._C_INOUT, "N")
+
+if __name__ == '__main__':
+    unittest.main()

Lib/objc/test/testbndl.m

 @implementation OC_TestClass1
 
 #define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
-static int g_idx = 0;
+static size_t g_idx = 0;
 static unsigned long long g_ulonglongs[] = {
 	0, 42, (1LL << 63)
 };
 
 
 /* Python glue */
+void inittestbndl(void);
+
 void inittestbndl(void)
 {
 	PyObject* m;

Modules/AddressBook/_AddressBook.m

 #include "_Addr_Enum.inc"
 #include "_Addr_Str.inc"
 
+void init_AddressBook(void);
 void init_AddressBook(void)
 {
 	PyObject *m, *d;

Modules/AppKit/_AppKit.m

 /* 'Applications' */
 
 static PyObject* 
-objc_NSApplicationMain(PyObject* self, PyObject* args, PyObject* kwds)
+objc_NSApplicationMain(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "argv", NULL };
 	char** argv = NULL;
 	  } NSProcessInfoStruct;
 	  
 	  // everything in this scope is evil and wrong.  It leaks, too.
-	  NSMutableArray *args = [[NSMutableArray alloc] init];
+	  NSMutableArray *newarglist = [[NSMutableArray alloc] init];
 	  NSProcessInfo *processInfo = [NSProcessInfo processInfo];
 	  char **anArg = argv;
 	  while(*anArg) {
-	    [args addObject: [NSString stringWithUTF8String: *anArg]];
+	    [newarglist addObject: [NSString stringWithUTF8String: *anArg]];
 	    anArg++;
 	  }
-	  ((NSProcessInfoStruct *)processInfo)->arguments = args;
+	  ((NSProcessInfoStruct *)processInfo)->arguments = newarglist;
 	}
 
 	NS_DURING
 
 
 static PyObject*
-objc_NSApp(PyObject* self, PyObject* args, PyObject* kwds)
+objc_NSApp(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static  char* keywords[] = { NULL };
         PyObject* result;
 }
 
 static PyObject*
-objc_NSCountWindows(PyObject* self, PyObject* args, PyObject* kwds)
+objc_NSCountWindows(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static  char* keywords[] = { NULL };
 	int       count;
 }
 
 static PyObject*
-objc_NSCountWindowsForContext(PyObject* self, PyObject* args, PyObject* kwds)
+objc_NSCountWindowsForContext(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static  char* keywords[] = { "context", NULL };
 	int       count;
 }
 
 static PyObject*
-objc_NSAvailableWindowDepths(PyObject* self, PyObject* args, PyObject* kwds)
+objc_NSAvailableWindowDepths(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static  char* keywords[] = { NULL };
 	const NSWindowDepth*	  depths;
 
 
 static PyObject*
-objc_NSRectFillList(PyObject* self, PyObject* args, PyObject* kwds)
+objc_NSRectFillList(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
+static char* keywords[] = { "bytes", "length", "count", 0 };
   unsigned char *rectBytes;
   int rectByteLength;
   int rectCount = -1;
-  if  (PyArg_ParseTuple(args, "s#|i", &rectBytes, &rectByteLength, &rectCount) < 0) {
+  if  (PyArg_ParseTupleAndKeywords(args, kwds, "s#|i", keywords, &rectBytes, &rectByteLength, &rectCount) < 0) {
     return NULL;
   }
 
   }
 
   if (rectCount >= 0 ) {
-    if (rectCount > (rectByteLength / sizeof(NSRect))) {
+    if ((size_t)rectCount > (rectByteLength / sizeof(NSRect))) {
       PyErr_SetString(PyExc_ValueError, "Rect count specified, but was longer than supplied array of rectangles.");
       return NULL;
     }
 }
 
 static PyObject*
-objc_NSGetWindowServerMemory(PyObject* self, PyObject* args, PyObject* kwds)
+objc_NSGetWindowServerMemory(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static char* keywords[] = { "context", "windowDumpStream", NULL };
 	int context;
 
 
 
+void init_AppKit(void);
+
 void init_AppKit(void)
 {
 	PyObject *m, *d;

Modules/AppKit/_AppKitMapping.m

 
 
 static PyObject*
-call_NSBitmapImageRep_initWithBitmap(PyObject* method, 
+call_NSBitmapImageRep_initWithBitmap(PyObject* method __attribute__((__unused__)), 
 		PyObject* self, PyObject* arguments)
 {
   PyObject* result;
 
 
 static PyObject*
-call_NSBitmapImageRep_getBitmapDataPlanes_(PyObject* method, 
+call_NSBitmapImageRep_getBitmapDataPlanes_(PyObject* method __attribute__((__unused__)), 
 		PyObject* self, PyObject* arguments)
 {
   PyObject* result;
 
 
 static PyObject*
-call_NSBitmapImageRep_bitmapData(PyObject* method, 
+call_NSBitmapImageRep_bitmapData(PyObject* method __attribute__((__unused__)), 
 		PyObject* self, PyObject* arguments)
 {
   PyObject* result;
   abort();
 }
 
-static void
-imp_NSCell_drawInteriorWithFrame_inView_(id self, SEL _sel, NSRect rect, id view)
-{
-	PyObject* result;
-	PyObject* arglist = PyTuple_New(2);
-	if (arglist == NULL)  {
-		ObjCErr_ToObjC();
-		return;
-	}
-
-	PyTuple_SET_ITEM(arglist, 0, ObjC_ObjCToPython(@encode(NSRect), &rect));
-	PyTuple_SET_ITEM(arglist, 1, ObjC_ObjCToPython(@encode(id), &view));
-
-	if (PyErr_Occurred()) {
-		ObjCErr_ToObjC();
-		return;
-	}
-
-	result = PyObjC_CallPython(self, _sel, arglist);
-	if (result == NULL) {
-		ObjCErr_ToObjC();
-		return;
-	}
-
-	Py_DECREF(result);
-}
 
 
 PyDoc_STRVAR(mapping_doc,
 	{ 0, 0, 0, 0 }
 };
 
+
+void init_AppKitMapping(void);
+int _pyobjc_install_NSMovie(void);
+
 #include "_AppKitMapping_NSMovie.m"
 
 void init_AppKitMapping(void)
 		return;
 	}
 
-#if 0
-	if (ObjC_RegisterMethodMapping(
-			objc_lookUpClass("NSCell"), 
-			@selector(drawInteriorWithFrame:inView:),
-			NULL,
-			(IMP)imp_NSCell_drawInteriorWithFrame_inView_) < 0) {
-
-		PyErr_Print();
-		return;
-	}
-#endif
-	
 	/* register other specials */
-	pyobjc_install_NSMovie();
+	_pyobjc_install_NSMovie();
 }

Modules/AppKit/_AppKitMapping_NSMovie.m

 #include "pymactoolbox.h"
 
 static PyObject* call_NSMovie_QTMovie(
-		PyObject* method, PyObject* self, PyObject* arguments)
+		PyObject* method __attribute__((__unused__)), PyObject* self, PyObject* arguments)
 {
 	PyObject* result;
 	struct objc_super super;
 
 
 static PyObject* call_NSMovie_initWithMovie_(
-		PyObject* method, PyObject* self, PyObject* arguments)
+		PyObject* method __attribute__((__unused__)), PyObject* self, PyObject* arguments)
 {
 	PyObject* result;
 	struct objc_super super;
 }
 
 
-int pyobjc_install_NSMovie(void)
+int _pyobjc_install_NSMovie(void)
 {
 	if (ObjC_RegisterMethodMapping(objc_lookUpClass("NSMovie"), 
 		@selector(QTMovie),
 
 	return 0;
 }
-

Modules/AppKit/_App_Functions.inc

 }
 
 /* id NSAccessibilityUnignoredAncestor(id element); */
-static PyObject* objc_NSAccessibilityUnignoredAncestor(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSAccessibilityUnignoredAncestor(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "element", NULL };
 	PyObject* result;
 	return result;
 }
 /* id NSAccessibilityUnignoredDescendant(id element); */
-static PyObject* objc_NSAccessibilityUnignoredDescendant(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSAccessibilityUnignoredDescendant(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "element", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSArray *NSAccessibilityUnignoredChildren(NSArray *originalChildren); */
-static PyObject* objc_NSAccessibilityUnignoredChildren(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSAccessibilityUnignoredChildren(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "originalChildren", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSArray *NSAccessibilityUnignoredChildrenForOnlyChild(id originalChild); */
-static PyObject* objc_NSAccessibilityUnignoredChildrenForOnlyChild(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSAccessibilityUnignoredChildrenForOnlyChild(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "originalChild", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSAccessibilityPostNotification(id element, NSString *notification); */
-static PyObject* objc_NSAccessibilityPostNotification(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSAccessibilityPostNotification(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "element", "notification", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSApplicationLoad(void); */
-static PyObject* objc_NSApplicationLoad(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSApplicationLoad(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSShowsServicesMenuItem(NSString * itemName); */
-static PyObject* objc_NSShowsServicesMenuItem(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSShowsServicesMenuItem(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "itemName", NULL };
 	PyObject* result;
 	return result;
 }
 /* int NSSetShowsServicesMenuItem(NSString * itemName, BOOL enabled); */
-static PyObject* objc_NSSetShowsServicesMenuItem(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSSetShowsServicesMenuItem(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "itemName", "enabled", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSUpdateDynamicServices(void); */
-static PyObject* objc_NSUpdateDynamicServices(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSUpdateDynamicServices(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSPerformService(NSString *itemName, NSPasteboard *pboard); */
-static PyObject* objc_NSPerformService(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSPerformService(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "itemName", "pboard", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSRegisterServicesProvider(id provider, NSString *name); */
-static PyObject* objc_NSRegisterServicesProvider(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRegisterServicesProvider(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "provider", "name", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSUnregisterServicesProvider(NSString *name); */
-static PyObject* objc_NSUnregisterServicesProvider(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSUnregisterServicesProvider(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "name", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSPlanarFromDepth (NSWindowDepth depth); */
-static PyObject* objc_NSPlanarFromDepth(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSPlanarFromDepth(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "depth", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSColorSpaceFromDepth (NSWindowDepth depth); */
-static PyObject* objc_NSColorSpaceFromDepth(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSColorSpaceFromDepth(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "depth", NULL };
 	PyObject* result;
 	return result;
 }
 /* int NSBitsPerSampleFromDepth (NSWindowDepth depth); */
-static PyObject* objc_NSBitsPerSampleFromDepth(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSBitsPerSampleFromDepth(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "depth", NULL };
 	PyObject* result;
 	return result;
 }
 /* int NSBitsPerPixelFromDepth (NSWindowDepth depth); */
-static PyObject* objc_NSBitsPerPixelFromDepth(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSBitsPerPixelFromDepth(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "depth", NULL };
 	PyObject* result;
 	return result;
 }
 /* int NSNumberOfColorComponents (NSString *colorSpaceName); */
-static PyObject* objc_NSNumberOfColorComponents(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSNumberOfColorComponents(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "colorSpaceName", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSRectFill(NSRect aRect); */
-static PyObject* objc_NSRectFill(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRectFill(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSRectFillUsingOperation(NSRect aRect, NSCompositingOperation op); */
-static PyObject* objc_NSRectFillUsingOperation(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRectFillUsingOperation(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "op", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSFrameRect(NSRect aRect); */
-static PyObject* objc_NSFrameRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSFrameRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSFrameRectWithWidth(NSRect aRect, float frameWidth); */
-static PyObject* objc_NSFrameRectWithWidth(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSFrameRectWithWidth(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "frameWidth", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSFrameRectWithWidthUsingOperation(NSRect aRect, float frameWidth, NSCompositingOperation op); */
-static PyObject* objc_NSFrameRectWithWidthUsingOperation(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSFrameRectWithWidthUsingOperation(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "frameWidth", "op", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSRectClip(NSRect aRect); */
-static PyObject* objc_NSRectClip(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRectClip(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSDrawGrayBezel(NSRect aRect, NSRect clipRect); */
-static PyObject* objc_NSDrawGrayBezel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSDrawGrayBezel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "clipRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSDrawGroove(NSRect aRect, NSRect clipRect); */
-static PyObject* objc_NSDrawGroove(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSDrawGroove(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "clipRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSDrawWhiteBezel(NSRect aRect, NSRect clipRect); */
-static PyObject* objc_NSDrawWhiteBezel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSDrawWhiteBezel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "clipRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSDrawButton(NSRect aRect, NSRect clipRect); */
-static PyObject* objc_NSDrawButton(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSDrawButton(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "clipRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSEraseRect(NSRect aRect); */
-static PyObject* objc_NSEraseRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSEraseRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSColor *NSReadPixel(NSPoint passedPoint); */
-static PyObject* objc_NSReadPixel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSReadPixel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "passedPoint", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSCopyBits(int srcGState, NSRect srcRect, NSPoint destPoint); */
-static PyObject* objc_NSCopyBits(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSCopyBits(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "srcGState", "srcRect", "destPoint", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSHighlightRect(NSRect aRect); */
-static PyObject* objc_NSHighlightRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSHighlightRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSBeep(void); */
-static PyObject* objc_NSBeep(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSBeep(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSDrawDarkBezel(NSRect aRect, NSRect clipRect); */
-static PyObject* objc_NSDrawDarkBezel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSDrawDarkBezel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "clipRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSDrawLightBezel(NSRect aRect, NSRect clipRect); */
-static PyObject* objc_NSDrawLightBezel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSDrawLightBezel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "clipRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSDottedFrameRect(NSRect aRect); */
-static PyObject* objc_NSDottedFrameRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSDottedFrameRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSDrawWindowBackground(NSRect aRect); */
-static PyObject* objc_NSDrawWindowBackground(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSDrawWindowBackground(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSSetFocusRingStyle(NSFocusRingPlacement placement); */
-static PyObject* objc_NSSetFocusRingStyle(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSSetFocusRingStyle(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "placement", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSInterfaceStyle NSInterfaceStyleForKey(NSString *key, NSResponder *responder); */
-static PyObject* objc_NSInterfaceStyleForKey(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSInterfaceStyleForKey(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "key", "responder", NULL };
 	PyObject* result;
 	return result;
 }
 /* int NSRunAlertPanel(NSString *title, NSString *msg, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...); */
-static PyObject* objc_NSRunAlertPanel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRunAlertPanel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "msg", "defaultButton", "alternateButton", "otherButton", NULL };
 	PyObject* result;
 	return result;
 }
 /* int NSRunInformationalAlertPanel(NSString *title, NSString *msg, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...); */
-static PyObject* objc_NSRunInformationalAlertPanel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRunInformationalAlertPanel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "msg", "defaultButton", "alternateButton", "otherButton", NULL };
 	PyObject* result;
 	return result;
 }
 /* int NSRunCriticalAlertPanel(NSString *title, NSString *msg, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...); */
-static PyObject* objc_NSRunCriticalAlertPanel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRunCriticalAlertPanel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "msg", "defaultButton", "alternateButton", "otherButton", NULL };
 	PyObject* result;
 	return result;
 }
 /* int NSRunAlertPanelRelativeToWindow(NSString *title, NSString *msg, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, ...); */
-static PyObject* objc_NSRunAlertPanelRelativeToWindow(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRunAlertPanelRelativeToWindow(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "msg", "defaultButton", "alternateButton", "otherButton", "docWindow", NULL };
 	PyObject* result;
 	return result;
 }
 /* int NSRunInformationalAlertPanelRelativeToWindow(NSString *title, NSString *msg, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, ...); */
-static PyObject* objc_NSRunInformationalAlertPanelRelativeToWindow(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRunInformationalAlertPanelRelativeToWindow(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "msg", "defaultButton", "alternateButton", "otherButton", "docWindow", NULL };
 	PyObject* result;
 	return result;
 }
 /* int NSRunCriticalAlertPanelRelativeToWindow(NSString *title, NSString *msg, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, ...); */
-static PyObject* objc_NSRunCriticalAlertPanelRelativeToWindow(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRunCriticalAlertPanelRelativeToWindow(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "msg", "defaultButton", "alternateButton", "otherButton", "docWindow", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSBeginAlertSheet(NSString *title, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, id modalDelegate, SEL didEndSelector, SEL didDismissSelector, void *contextInfo, NSString *msg, ...); */
-static PyObject* objc_NSBeginAlertSheet(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSBeginAlertSheet(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "defaultButton", "alternateButton", "otherButton", "docWindow", "modalDelegate", "didEndSelector", "didDismissSelector", "contextInfo", "msg", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSBeginInformationalAlertSheet(NSString *title, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, id modalDelegate, SEL didEndSelector, SEL didDismissSelector, void *contextInfo, NSString *msg, ...); */
-static PyObject* objc_NSBeginInformationalAlertSheet(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSBeginInformationalAlertSheet(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "defaultButton", "alternateButton", "otherButton", "docWindow", "modalDelegate", "didEndSelector", "didDismissSelector", "contextInfo", "msg", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSBeginCriticalAlertSheet(NSString *title, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, id modalDelegate, SEL didEndSelector, SEL didDismissSelector, void *contextInfo, NSString *msg, ...); */
-static PyObject* objc_NSBeginCriticalAlertSheet(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSBeginCriticalAlertSheet(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "defaultButton", "alternateButton", "otherButton", "docWindow", "modalDelegate", "didEndSelector", "didDismissSelector", "contextInfo", "msg", NULL };
 	PyObject* result;
 	return result;
 }
 /* id NSGetAlertPanel(NSString *title, NSString *msg, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...); */
-static PyObject* objc_NSGetAlertPanel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSGetAlertPanel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "msg", "defaultButton", "alternateButton", "otherButton", NULL };
 	PyObject* result;
 	return result;
 }
 /* id NSGetInformationalAlertPanel(NSString *title, NSString *msg, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...); */
-static PyObject* objc_NSGetInformationalAlertPanel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSGetInformationalAlertPanel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "msg", "defaultButton", "alternateButton", "otherButton", NULL };
 	PyObject* result;
 	return result;
 }
 /* id NSGetCriticalAlertPanel(NSString *title, NSString *msg, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, ...); */
-static PyObject* objc_NSGetCriticalAlertPanel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSGetCriticalAlertPanel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "title", "msg", "defaultButton", "alternateButton", "otherButton", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSReleaseAlertPanel(id panel); */
-static PyObject* objc_NSReleaseAlertPanel(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSReleaseAlertPanel(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "panel", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSCreateFilenamePboardType(NSString *fileType); */
-static PyObject* objc_NSCreateFilenamePboardType(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSCreateFilenamePboardType(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "fileType", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSCreateFileContentsPboardType(NSString *fileType); */
-static PyObject* objc_NSCreateFileContentsPboardType(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSCreateFileContentsPboardType(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "fileType", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSGetFileType(NSString *pboardType); */
-static PyObject* objc_NSGetFileType(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSGetFileType(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "pboardType", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSArray *NSGetFileTypes(NSArray *pboardTypes); */
-static PyObject* objc_NSGetFileTypes(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSGetFileTypes(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "pboardTypes", NULL };
 	PyObject* result;

Modules/Foundation/_Fnd_Functions.inc

 }
 
 /* NSObject *NXReadNSObjectFromCoder(NSCoder *decoder); */
-static PyObject* objc_NXReadNSObjectFromCoder(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NXReadNSObjectFromCoder(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "decoder", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSIsFreedObject(id anObject); */
-static PyObject* objc_NSIsFreedObject(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSIsFreedObject(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "anObject", NULL };
 	PyObject* result;
 	return result;
 }
 /* unsigned NSCountFrames(void); */
-static PyObject* objc_NSCountFrames(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSCountFrames(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSEqualPoints(NSPoint aPoint, NSPoint bPoint); */
-static PyObject* objc_NSEqualPoints(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSEqualPoints(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aPoint", "bPoint", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSEqualSizes(NSSize aSize, NSSize bSize); */
-static PyObject* objc_NSEqualSizes(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSEqualSizes(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aSize", "bSize", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSEqualRects(NSRect aRect, NSRect bRect); */
-static PyObject* objc_NSEqualRects(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSEqualRects(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "bRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSIsEmptyRect(NSRect aRect); */
-static PyObject* objc_NSIsEmptyRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSIsEmptyRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSRect NSInsetRect(NSRect aRect, float dX, float dY); */
-static PyObject* objc_NSInsetRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSInsetRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "dX", "dY", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSRect NSIntegralRect(NSRect aRect); */
-static PyObject* objc_NSIntegralRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSIntegralRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSRect NSUnionRect(NSRect aRect, NSRect bRect); */
-static PyObject* objc_NSUnionRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSUnionRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "bRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSRect NSIntersectionRect(NSRect aRect, NSRect bRect); */
-static PyObject* objc_NSIntersectionRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSIntersectionRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "bRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSRect NSOffsetRect(NSRect aRect, float dX, float dY); */
-static PyObject* objc_NSOffsetRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSOffsetRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "dX", "dY", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSPointInRect(NSPoint aPoint, NSRect aRect); */
-static PyObject* objc_NSPointInRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSPointInRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aPoint", "aRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSMouseInRect(NSPoint aPoint, NSRect aRect, BOOL flipped); */
-static PyObject* objc_NSMouseInRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSMouseInRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aPoint", "aRect", "flipped", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSContainsRect(NSRect aRect, NSRect bRect); */
-static PyObject* objc_NSContainsRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSContainsRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "bRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSIntersectsRect(NSRect aRect, NSRect bRect); */
-static PyObject* objc_NSIntersectsRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSIntersectsRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", "bRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSStringFromPoint(NSPoint aPoint); */
-static PyObject* objc_NSStringFromPoint(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSStringFromPoint(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aPoint", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSStringFromSize(NSSize aSize); */
-static PyObject* objc_NSStringFromSize(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSStringFromSize(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aSize", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSStringFromRect(NSRect aRect); */
-static PyObject* objc_NSStringFromRect(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSStringFromRect(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aRect", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSPoint NSPointFromString(NSString *aString); */
-static PyObject* objc_NSPointFromString(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSPointFromString(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aString", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSSize NSSizeFromString(NSString *aString); */
-static PyObject* objc_NSSizeFromString(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSSizeFromString(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aString", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSRect NSRectFromString(NSString *aString); */
-static PyObject* objc_NSRectFromString(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRectFromString(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aString", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSHFSTypeOfFile(NSString *fullFilePath); */
-static PyObject* objc_NSHFSTypeOfFile(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSHFSTypeOfFile(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "fullFilePath", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSJavaNeedsVirtualMachine(NSDictionary *plist); */
-static PyObject* objc_NSJavaNeedsVirtualMachine(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSJavaNeedsVirtualMachine(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "plist", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSJavaProvidesClasses(NSDictionary *plist); */
-static PyObject* objc_NSJavaProvidesClasses(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSJavaProvidesClasses(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "plist", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSJavaNeedsToLoadClasses(NSDictionary *plist); */
-static PyObject* objc_NSJavaNeedsToLoadClasses(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSJavaNeedsToLoadClasses(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "plist", NULL };
 	PyObject* result;
 	return result;
 }
 /* id NSJavaSetup(NSDictionary *plist); */
-static PyObject* objc_NSJavaSetup(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSJavaSetup(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "plist", NULL };
 	PyObject* result;
 	return result;
 }
 /* id NSJavaSetupVirtualMachine(void); */
-static PyObject* objc_NSJavaSetupVirtualMachine(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSJavaSetupVirtualMachine(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* id NSJavaObjectNamedInPath(NSString *name, NSArray *path); */
-static PyObject* objc_NSJavaObjectNamedInPath(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSJavaObjectNamedInPath(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "name", "path", NULL };
 	PyObject* result;
 	return result;
 }
 /* id NSJavaBundleSetup(NSBundle *bundle, NSDictionary *plist); */
-static PyObject* objc_NSJavaBundleSetup(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSJavaBundleSetup(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "bundle", "plist", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSJavaBundleCleanup(NSBundle *bundle, NSDictionary *plist); */
-static PyObject* objc_NSJavaBundleCleanup(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSJavaBundleCleanup(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "bundle", "plist", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSStringFromSelector(SEL aSelector); */
-static PyObject* objc_NSStringFromSelector(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSStringFromSelector(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aSelector", NULL };
 	PyObject* result;
 	return result;
 }
 /* SEL NSSelectorFromString(NSString *aSelectorName); */
-static PyObject* objc_NSSelectorFromString(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSSelectorFromString(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aSelectorName", NULL };
 	PyObject* result;
 	return result;
 }
 /* Class NSClassFromString(NSString *aClassName); */
-static PyObject* objc_NSClassFromString(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSClassFromString(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aClassName", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSStringFromClass(Class aClass); */
-static PyObject* objc_NSStringFromClass(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSStringFromClass(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aClass", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSLog(NSString *format, ...); */
-static PyObject* objc_NSLog(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSLog(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "format", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSDeallocateObject(id <NSObject>object); */
-static PyObject* objc_NSDeallocateObject(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSDeallocateObject(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "object", NULL };
 	PyObject* result;
 	return result;
 }
 /* void NSIncrementExtraRefCount(id object); */
-static PyObject* objc_NSIncrementExtraRefCount(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSIncrementExtraRefCount(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "object", NULL };
 	PyObject* result;
 	return result;
 }
 /* BOOL NSDecrementExtraRefCountWasZero(id object); */
-static PyObject* objc_NSDecrementExtraRefCountWasZero(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSDecrementExtraRefCountWasZero(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "object", NULL };
 	PyObject* result;
 	return result;
 }
 /* unsigned NSExtraRefCount(id object); */
-static PyObject* objc_NSExtraRefCount(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSExtraRefCount(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "object", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSUserName(void); */
-static PyObject* objc_NSUserName(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSUserName(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSFullUserName(void); */
-static PyObject* objc_NSFullUserName(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSFullUserName(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSHomeDirectory(void); */
-static PyObject* objc_NSHomeDirectory(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSHomeDirectory(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSHomeDirectoryForUser(NSString *userName); */
-static PyObject* objc_NSHomeDirectoryForUser(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSHomeDirectoryForUser(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "userName", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSTemporaryDirectory(void); */
-static PyObject* objc_NSTemporaryDirectory(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSTemporaryDirectory(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSOpenStepRootDirectory(void); */
-static PyObject* objc_NSOpenStepRootDirectory(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSOpenStepRootDirectory(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* NSArray *NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, BOOL expandTilde); */
-static PyObject* objc_NSSearchPathForDirectoriesInDomains(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSSearchPathForDirectoriesInDomains(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "directory", "domainMask", "expandTilde", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSRange NSUnionRange(NSRange range1, NSRange range2); */
-static PyObject* objc_NSUnionRange(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSUnionRange(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "range1", "range2", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSRange NSIntersectionRange(NSRange range1, NSRange range2); */
-static PyObject* objc_NSIntersectionRange(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSIntersectionRange(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "range1", "range2", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSString *NSStringFromRange(NSRange range); */
-static PyObject* objc_NSStringFromRange(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSStringFromRange(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "range", NULL };
 	PyObject* result;
 	return result;
 }
 /* NSRange NSRangeFromString(NSString *aString); */
-static PyObject* objc_NSRangeFromString(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRangeFromString(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "aString", NULL };
 	PyObject* result;
 	return result;
 }
 /* unsigned NSPageSize(void); */
-static PyObject* objc_NSPageSize(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSPageSize(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* unsigned NSLogPageSize(void); */
-static PyObject* objc_NSLogPageSize(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSLogPageSize(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;
 	return result;
 }
 /* unsigned NSRoundUpToMultipleOfPageSize(unsigned bytes); */
-static PyObject* objc_NSRoundUpToMultipleOfPageSize(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRoundUpToMultipleOfPageSize(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "bytes", NULL };
 	PyObject* result;
 	return result;
 }
 /* unsigned NSRoundDownToMultipleOfPageSize(unsigned bytes); */
-static PyObject* objc_NSRoundDownToMultipleOfPageSize(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRoundDownToMultipleOfPageSize(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "bytes", NULL };
 	PyObject* result;
 	return result;
 }
 /* unsigned NSRealMemoryAvailable(void); */
-static PyObject* objc_NSRealMemoryAvailable(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSRealMemoryAvailable(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { NULL };
 	PyObject* result;

Modules/Foundation/_Foundation.m

 /* 'Bundles' */
 
 #define NSLocalizedString_doc 0
-static PyObject* objc_NSLocalizedString(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSLocalizedString(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "key", "comment", NULL };
 	PyObject*  result;
 }
 
 #define NSLocalizedStringFromTable_doc 0
-static PyObject* objc_NSLocalizedStringFromTable(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSLocalizedStringFromTable(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "key", "tableName", "comment", NULL };
 	PyObject*  result;
 }
 
 #define NSLocalizedStringFromTableInBundle_doc 0
-static PyObject* objc_NSLocalizedStringFromTableInBundle(PyObject* self, PyObject* args, PyObject* kwds)
+static PyObject* objc_NSLocalizedStringFromTableInBundle(PyObject* self __attribute__((__unused__)), PyObject* args, PyObject* kwds)
 {
 static	char* keywords[] = { "key", "tableName", "comment", "bundle", NULL };
 	PyObject* result;
 
 /* NSString *NSFileTypeForHFSTypeCode(OSType hfsTypeCode); */