[Python-3000-checkins] r55407 - in python/branches/py3k-struni: Include/intobject.h Include/pyerrors.h Lib/lib-old Lib/plat-irix6 Lib/string.py Lib/test/regrtest.py Lib/test/test_exceptions.py Lib/test/test_pep352.py Lib/test/test_strop.py Misc/BeOS-setup.py Misc/NEWS Modules/Setup.dist Modules/_localemodule.c Modules/puremodule.c Modules/stropmodule.c Objects/exceptions.c Objects/stringobject.c PC/VC6/pythoncore.dsp PC/config.c PC/os2emx/Makefile PC/os2emx/config.c PC/os2emx/python25.def PC/os2vacpp/config.c PC/os2vacpp/makefile PC/os2vacpp/makefile.omk PCbuild/pythoncore.vcproj PCbuild8/pythoncore/pythoncore.vcproj README RISCOS/Makefile setup.py

guido.van.rossum python-3000-checkins at python.org
Thu May 17 20:20:40 CEST 2007


Author: guido.van.rossum
Date: Thu May 17 20:20:34 2007
New Revision: 55407

Removed:
   python/branches/py3k-struni/Lib/lib-old/
   python/branches/py3k-struni/Lib/plat-irix6/
   python/branches/py3k-struni/Lib/test/test_strop.py
   python/branches/py3k-struni/Modules/puremodule.c
   python/branches/py3k-struni/Modules/stropmodule.c
Modified:
   python/branches/py3k-struni/   (props changed)
   python/branches/py3k-struni/Include/intobject.h
   python/branches/py3k-struni/Include/pyerrors.h
   python/branches/py3k-struni/Lib/string.py
   python/branches/py3k-struni/Lib/test/regrtest.py
   python/branches/py3k-struni/Lib/test/test_exceptions.py
   python/branches/py3k-struni/Lib/test/test_pep352.py
   python/branches/py3k-struni/Misc/BeOS-setup.py
   python/branches/py3k-struni/Misc/NEWS
   python/branches/py3k-struni/Modules/Setup.dist
   python/branches/py3k-struni/Modules/_localemodule.c
   python/branches/py3k-struni/Objects/exceptions.c
   python/branches/py3k-struni/Objects/stringobject.c
   python/branches/py3k-struni/PC/VC6/pythoncore.dsp
   python/branches/py3k-struni/PC/config.c
   python/branches/py3k-struni/PC/os2emx/Makefile
   python/branches/py3k-struni/PC/os2emx/config.c
   python/branches/py3k-struni/PC/os2emx/python25.def
   python/branches/py3k-struni/PC/os2vacpp/config.c
   python/branches/py3k-struni/PC/os2vacpp/makefile
   python/branches/py3k-struni/PC/os2vacpp/makefile.omk
   python/branches/py3k-struni/PCbuild/pythoncore.vcproj
   python/branches/py3k-struni/PCbuild8/pythoncore/pythoncore.vcproj
   python/branches/py3k-struni/README
   python/branches/py3k-struni/RISCOS/Makefile
   python/branches/py3k-struni/setup.py
Log:
Merged revisions 55342-55406 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/branches/p3yk

........
  r55360 | guido.van.rossum | 2007-05-15 14:57:59 -0700 (Tue, 15 May 2007) | 2 lines
  
  obcheckin.
........
  r55361 | guido.van.rossum | 2007-05-15 14:59:18 -0700 (Tue, 15 May 2007) | 2 lines
  
  Get rid of strop module.
........
  r55367 | brett.cannon | 2007-05-15 21:06:28 -0700 (Tue, 15 May 2007) | 2 lines
  
  Remove the 'pure' module.
........
  r55369 | brett.cannon | 2007-05-15 21:07:31 -0700 (Tue, 15 May 2007) | 2 lines
  
  Remove the lib-old directory (already empty).
........
  r55370 | neal.norwitz | 2007-05-15 21:30:40 -0700 (Tue, 15 May 2007) | 1 line
  
  Get rid of a bunch more references to strop
........
  r55374 | brett.cannon | 2007-05-15 21:39:00 -0700 (Tue, 15 May 2007) | 2 lines
  
  Complete the removal of IRIX-specific modules.
........
  r55379 | brett.cannon | 2007-05-15 22:31:54 -0700 (Tue, 15 May 2007) | 2 lines
  
  Update removed IRIX modules based on what is gone from removing plat-irix6.
........
  r55388 | brett.cannon | 2007-05-16 14:34:52 -0700 (Wed, 16 May 2007) | 2 lines
  
  Clean up the docstring for the compiler resource.
........
  r55406 | brett.cannon | 2007-05-17 11:05:37 -0700 (Thu, 17 May 2007) | 2 lines
  
  Remove BaseException.message (deprecated in Python 2.6).
........


Modified: python/branches/py3k-struni/Include/intobject.h
==============================================================================
--- python/branches/py3k-struni/Include/intobject.h	(original)
+++ python/branches/py3k-struni/Include/intobject.h	Thu May 17 20:20:34 2007
@@ -47,10 +47,7 @@
 #define PyInt_AS_LONG(op) PyLong_AsLong(op)
 
 /* These aren't really part of the Int object, but they're handy; the protos
- * are necessary for systems that need the magic of PyAPI_FUNC and that want
- * to have stropmodule as a dynamically loaded module instead of building it
- * into the main Python shared library/DLL.  Guido thinks I'm weird for
- * building it this way.  :-)  [cjh]
+ * are necessary for systems that need the magic of PyAPI_FUNC.
  */
 PyAPI_FUNC(unsigned long) PyOS_strtoul(char *, char **, int);
 PyAPI_FUNC(long) PyOS_strtol(char *, char **, int);

Modified: python/branches/py3k-struni/Include/pyerrors.h
==============================================================================
--- python/branches/py3k-struni/Include/pyerrors.h	(original)
+++ python/branches/py3k-struni/Include/pyerrors.h	Thu May 17 20:20:34 2007
@@ -10,14 +10,12 @@
     PyObject_HEAD
     PyObject *dict;
     PyObject *args;
-    PyObject *message;
 } PyBaseExceptionObject;
 
 typedef struct {
     PyObject_HEAD
     PyObject *dict;
     PyObject *args;
-    PyObject *message;
     PyObject *msg;
     PyObject *filename;
     PyObject *lineno;
@@ -30,7 +28,6 @@
     PyObject_HEAD
     PyObject *dict;
     PyObject *args;
-    PyObject *message;
     PyObject *encoding;
     PyObject *object;
     PyObject *start;
@@ -42,7 +39,6 @@
     PyObject_HEAD
     PyObject *dict;
     PyObject *args;
-    PyObject *message;
     PyObject *code;
 } PySystemExitObject;
 
@@ -50,7 +46,6 @@
     PyObject_HEAD
     PyObject *dict;
     PyObject *args;
-    PyObject *message;
     PyObject *myerrno;
     PyObject *strerror;
     PyObject *filename;
@@ -61,7 +56,6 @@
     PyObject_HEAD
     PyObject *dict;
     PyObject *args;
-    PyObject *message;
     PyObject *myerrno;
     PyObject *strerror;
     PyObject *filename;

Modified: python/branches/py3k-struni/Lib/string.py
==============================================================================
--- python/branches/py3k-struni/Lib/string.py	(original)
+++ python/branches/py3k-struni/Lib/string.py	Thu May 17 20:20:34 2007
@@ -195,14 +195,3 @@
             raise ValueError('Unrecognized named group in pattern',
                              self.pattern)
         return self.pattern.sub(convert, self.template)
-
-
-# Try importing optional built-in module "strop" -- if it exists,
-# it redefines some string operations that are 100-1000 times faster.
-# It also defines values for whitespace, lowercase and uppercase
-# that match <ctype.h>'s definitions.
-
-try:
-    from strop import maketrans
-except ImportError:
-    pass                                          # Use the original versions

Modified: python/branches/py3k-struni/Lib/test/regrtest.py
==============================================================================
--- python/branches/py3k-struni/Lib/test/regrtest.py	(original)
+++ python/branches/py3k-struni/Lib/test/regrtest.py	Thu May 17 20:20:34 2007
@@ -107,11 +107,8 @@
     decimal -   Test the decimal module against a large suite that
                 verifies compliance with standards.
 
-    compiler -  Test the compiler package by compiling all the source
-                in the standard library and test suite.  This takes
-                a long time.  Enabling this resource also allows
-                test_tokenize to verify round-trip lexing on every
-                file in the test library.
+    compiler -  Allow test_tokenize to verify round-trip lexing on
+                every file in the test library.
 
     subprocess  Run all tests for the subprocess module.
 
@@ -987,7 +984,6 @@
         test_poll
         test_pty
         test_pwd
-        test_strop
         test_sqlite
         test_startfile
         test_sunaudiodev

Modified: python/branches/py3k-struni/Lib/test/test_exceptions.py
==============================================================================
--- python/branches/py3k-struni/Lib/test/test_exceptions.py	(original)
+++ python/branches/py3k-struni/Lib/test/test_exceptions.py	Thu May 17 20:20:34 2007
@@ -11,7 +11,6 @@
 
 from test.test_support import (TESTFN, unlink, run_unittest,
                                 guard_warnings_filter)
-from test.test_pep352 import ignore_message_warning
 
 # XXX This is not really enough, each *operation* should be tested!
 
@@ -205,115 +204,113 @@
         # test that exception attributes are happy
 
         exceptionList = [
-            (BaseException, (), {'message' : '', 'args' : ()}),
-            (BaseException, (1, ), {'message' : 1, 'args' : (1,)}),
+            (BaseException, (), {'args' : ()}),
+            (BaseException, (1, ), {'args' : (1,)}),
             (BaseException, ('foo',),
-                {'message' : 'foo', 'args' : ('foo',)}),
+                {'args' : ('foo',)}),
             (BaseException, ('foo', 1),
-                {'message' : '', 'args' : ('foo', 1)}),
+                {'args' : ('foo', 1)}),
             (SystemExit, ('foo',),
-                {'message' : 'foo', 'args' : ('foo',), 'code' : 'foo'}),
+                {'args' : ('foo',), 'code' : 'foo'}),
             (IOError, ('foo',),
-                {'message' : 'foo', 'args' : ('foo',), 'filename' : None,
+                {'args' : ('foo',), 'filename' : None,
                  'errno' : None, 'strerror' : None}),
             (IOError, ('foo', 'bar'),
-                {'message' : '', 'args' : ('foo', 'bar'), 'filename' : None,
+                {'args' : ('foo', 'bar'), 'filename' : None,
                  'errno' : 'foo', 'strerror' : 'bar'}),
             (IOError, ('foo', 'bar', 'baz'),
-                {'message' : '', 'args' : ('foo', 'bar'), 'filename' : 'baz',
+                {'args' : ('foo', 'bar'), 'filename' : 'baz',
                  'errno' : 'foo', 'strerror' : 'bar'}),
             (IOError, ('foo', 'bar', 'baz', 'quux'),
-                {'message' : '', 'args' : ('foo', 'bar', 'baz', 'quux')}),
+                {'args' : ('foo', 'bar', 'baz', 'quux')}),
             (EnvironmentError, ('errnoStr', 'strErrorStr', 'filenameStr'),
-                {'message' : '', 'args' : ('errnoStr', 'strErrorStr'),
+                {'args' : ('errnoStr', 'strErrorStr'),
                  'strerror' : 'strErrorStr', 'errno' : 'errnoStr',
                  'filename' : 'filenameStr'}),
             (EnvironmentError, (1, 'strErrorStr', 'filenameStr'),
-                {'message' : '', 'args' : (1, 'strErrorStr'), 'errno' : 1,
+                {'args' : (1, 'strErrorStr'), 'errno' : 1,
                  'strerror' : 'strErrorStr', 'filename' : 'filenameStr'}),
-            (SyntaxError, (), {'message' : '', 'msg' : None, 'text' : None,
+            (SyntaxError, (), {'msg' : None, 'text' : None,
                 'filename' : None, 'lineno' : None, 'offset' : None,
                 'print_file_and_line' : None}),
             (SyntaxError, ('msgStr',),
-                {'message' : 'msgStr', 'args' : ('msgStr',), 'text' : None,
+                {'args' : ('msgStr',), 'text' : None,
                  'print_file_and_line' : None, 'msg' : 'msgStr',
                  'filename' : None, 'lineno' : None, 'offset' : None}),
             (SyntaxError, ('msgStr', ('filenameStr', 'linenoStr', 'offsetStr',
                            'textStr')),
-                {'message' : '', 'offset' : 'offsetStr', 'text' : 'textStr',
+                {'offset' : 'offsetStr', 'text' : 'textStr',
                  'args' : ('msgStr', ('filenameStr', 'linenoStr',
                                       'offsetStr', 'textStr')),
                  'print_file_and_line' : None, 'msg' : 'msgStr',
                  'filename' : 'filenameStr', 'lineno' : 'linenoStr'}),
             (SyntaxError, ('msgStr', 'filenameStr', 'linenoStr', 'offsetStr',
                            'textStr', 'print_file_and_lineStr'),
-                {'message' : '', 'text' : None,
+                {'text' : None,
                  'args' : ('msgStr', 'filenameStr', 'linenoStr', 'offsetStr',
                            'textStr', 'print_file_and_lineStr'),
                  'print_file_and_line' : None, 'msg' : 'msgStr',
                  'filename' : None, 'lineno' : None, 'offset' : None}),
-            (UnicodeError, (), {'message' : '', 'args' : (),}),
+            (UnicodeError, (), {'args' : (),}),
             (UnicodeEncodeError, (str8('ascii'), 'a', 0, 1,
                                   str8('ordinal not in range')),
-                {'message' : '', 'args' : ('ascii', 'a', 0, 1,
+                {'args' : ('ascii', 'a', 0, 1,
                                            'ordinal not in range'),
                  'encoding' : 'ascii', 'object' : 'a',
                  'start' : 0, 'reason' : 'ordinal not in range'}),
             (UnicodeDecodeError, (str8('ascii'), b'\xff', 0, 1,
                                   str8('ordinal not in range')),
-                {'message' : '', 'args' : ('ascii', b'\xff', 0, 1,
+                {'args' : ('ascii', b'\xff', 0, 1,
                                            'ordinal not in range'),
                  'encoding' : 'ascii', 'object' : b'\xff',
                  'start' : 0, 'reason' : 'ordinal not in range'}),
             (UnicodeTranslateError, ("\u3042", 0, 1, str8("ouch")),
-                {'message' : '', 'args' : ('\u3042', 0, 1, 'ouch'),
+                {'args' : ('\u3042', 0, 1, 'ouch'),
                  'object' : '\u3042', 'reason' : 'ouch',
                  'start' : 0, 'end' : 1}),
         ]
         try:
             exceptionList.append(
                 (WindowsError, (1, 'strErrorStr', 'filenameStr'),
-                    {'message' : '', 'args' : (1, 'strErrorStr'),
+                    {'args' : (1, 'strErrorStr'),
                      'strerror' : 'strErrorStr', 'winerror' : 1,
                      'errno' : 22, 'filename' : 'filenameStr'})
             )
         except NameError:
             pass
 
-        with guard_warnings_filter():
-            ignore_message_warning()
-            for exc, args, expected in exceptionList:
-                try:
-                    e = exc(*args)
-                except:
-                    print("\nexc=%r, args=%r" % (exc, args))
-                    raise
-                else:
-                    # Verify module name
-                    self.assertEquals(type(e).__module__, '__builtin__')
-                    # Verify no ref leaks in Exc_str()
-                    s = str(e)
-                    for checkArgName in expected:
-                        value = getattr(e, checkArgName)
-                        self.assertEquals(repr(value),
-                                          repr(expected[checkArgName]),
-                                          '%r.%s == %r, expected %r' % (
-                                          e, checkArgName,
-                                          value, expected[checkArgName]))
-
-                    # test for pickling support
-                    for p in pickle, cPickle:
-                        if p is None:
-                            continue # cPickle not found -- skip it
-                        for protocol in range(p.HIGHEST_PROTOCOL + 1):
-                            s = p.dumps(e, protocol)
-                            new = p.loads(s)
-                            for checkArgName in expected:
-                                got = repr(getattr(new, checkArgName))
-                                want = repr(expected[checkArgName])
-                                self.assertEquals(got, want,
-                                                  'pickled "%r", attribute "%s' %
-                                                  (e, checkArgName))
+        for exc, args, expected in exceptionList:
+            try:
+                e = exc(*args)
+            except:
+                print("\nexc=%r, args=%r" % (exc, args))
+                raise
+            else:
+                # Verify module name
+                self.assertEquals(type(e).__module__, '__builtin__')
+                # Verify no ref leaks in Exc_str()
+                s = str(e)
+                for checkArgName in expected:
+                    value = getattr(e, checkArgName)
+                    self.assertEquals(repr(value),
+                                      repr(expected[checkArgName]),
+                                      '%r.%s == %r, expected %r' % (
+                                      e, checkArgName,
+                                      value, expected[checkArgName]))
+
+                # test for pickling support
+                for p in pickle, cPickle:
+                    if p is None:
+                        continue # cPickle not found -- skip it
+                    for protocol in range(p.HIGHEST_PROTOCOL + 1):
+                        s = p.dumps(e, protocol)
+                        new = p.loads(s)
+                        for checkArgName in expected:
+                            got = repr(getattr(new, checkArgName))
+                            want = repr(expected[checkArgName])
+                            self.assertEquals(got, want,
+                                              'pickled "%r", attribute "%s' %
+                                              (e, checkArgName))
 
     def testKeywordArgs(self):
         # test that builtin exception don't take keyword args,

Modified: python/branches/py3k-struni/Lib/test/test_pep352.py
==============================================================================
--- python/branches/py3k-struni/Lib/test/test_pep352.py	(original)
+++ python/branches/py3k-struni/Lib/test/test_pep352.py	Thu May 17 20:20:34 2007
@@ -5,12 +5,6 @@
 import os
 from platform import system as platform_system
 
-def ignore_message_warning():
-    """Ignore the DeprecationWarning for BaseException.message."""
-    warnings.resetwarnings()
-    warnings.filterwarnings("ignore", "BaseException.message",
-                            DeprecationWarning)
-
 
 class ExceptionClassTests(unittest.TestCase):
 
@@ -21,12 +15,10 @@
         self.failUnless(issubclass(Exception, object))
 
     def verify_instance_interface(self, ins):
-        with guard_warnings_filter():
-            ignore_message_warning()
-            for attr in ("args", "message", "__str__", "__repr__"):
-                self.failUnless(hasattr(ins, attr),
-                        "%s missing %s attribute" %
-                            (ins.__class__.__name__, attr))
+        for attr in ("args", "__str__", "__repr__"):
+            self.failUnless(hasattr(ins, attr),
+                    "%s missing %s attribute" %
+                        (ins.__class__.__name__, attr))
 
     def test_inheritance(self):
         # Make sure the inheritance hierarchy matches the documentation
@@ -89,7 +81,7 @@
             inheritance_tree.close()
         self.failUnlessEqual(len(exc_set), 0, "%s not accounted for" % exc_set)
 
-    interface_tests = ("length", "args", "message", "str", "repr")
+    interface_tests = ("length", "args", "str", "repr")
 
     def interface_test_driver(self, results):
         for test_name, (given, expected) in zip(self.interface_tests, results):
@@ -100,57 +92,28 @@
         # Make sure interface works properly when given a single argument
         arg = "spam"
         exc = Exception(arg)
-        with guard_warnings_filter():
-            ignore_message_warning()
-            results = ([len(exc.args), 1], [exc.args[0], arg],
-                       [exc.message, arg],
-                       [str(exc), str(arg)],
-                [repr(exc), exc.__class__.__name__ + repr(exc.args)])
-            self.interface_test_driver(results)
+        results = ([len(exc.args), 1], [exc.args[0], arg],
+                   [str(exc), str(arg)],
+            [repr(exc), exc.__class__.__name__ + repr(exc.args)])
+        self.interface_test_driver(results)
 
     def test_interface_multi_arg(self):
         # Make sure interface correct when multiple arguments given
         arg_count = 3
         args = tuple(range(arg_count))
         exc = Exception(*args)
-        with guard_warnings_filter():
-            ignore_message_warning()
-            results = ([len(exc.args), arg_count], [exc.args, args],
-                    [exc.message, ''], [str(exc), str(args)],
-                    [repr(exc), exc.__class__.__name__ + repr(exc.args)])
-            self.interface_test_driver(results)
+        results = ([len(exc.args), arg_count], [exc.args, args],
+                [str(exc), str(args)],
+                [repr(exc), exc.__class__.__name__ + repr(exc.args)])
+        self.interface_test_driver(results)
 
     def test_interface_no_arg(self):
         # Make sure that with no args that interface is correct
         exc = Exception()
-        with guard_warnings_filter():
-            ignore_message_warning()
-            results = ([len(exc.args), 0], [exc.args, tuple()],
-                    [exc.message, ''],
-                    [str(exc), ''],
-                    [repr(exc), exc.__class__.__name__ + '()'])
-            self.interface_test_driver(results)
-
-    def test_message_deprecation(self):
-        # As of Python 2.6, BaseException.message is deprecated.
-        with guard_warnings_filter():
-            warnings.resetwarnings()
-            warnings.filterwarnings('error')
-
-            try:
-                BaseException().message
-            except DeprecationWarning:
-                pass
-            else:
-                self.fail("BaseException.message not deprecated")
-
-            exc = BaseException()
-            try:
-                exc.message = ''
-            except DeprecationWarning:
-                pass
-            else:
-                self.fail("BaseException.message assignment not deprecated")
+        results = ([len(exc.args), 0], [exc.args, tuple()],
+                [str(exc), ''],
+                [repr(exc), exc.__class__.__name__ + '()'])
+        self.interface_test_driver(results)
 
 class UsageTests(unittest.TestCase):
 

Deleted: /python/branches/py3k-struni/Lib/test/test_strop.py
==============================================================================
--- /python/branches/py3k-struni/Lib/test/test_strop.py	Thu May 17 20:20:34 2007
+++ (empty file)
@@ -1,24 +0,0 @@
-import warnings
-warnings.filterwarnings("ignore", "strop functions are obsolete;",
-                        DeprecationWarning,
-                        r'test.test_strop|unittest')
-import strop
-import unittest
-from test import test_support
-
-
-class StropFunctionTestCase(unittest.TestCase):
-
-    def test_maketrans(self):
-        self.assert_(strop.maketrans("abc", "xyz") == transtable)
-        self.assertRaises(ValueError, strop.maketrans, "abc", "xyzq")
-
-
-transtable = b'\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037 !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`xyzdefghijklmnopqrstuvwxyz{|}~\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377'
-
-
-def test_main():
-    test_support.run_unittest(StropFunctionTestCase)
-
-if __name__ == "__main__":
-    test_main()

Modified: python/branches/py3k-struni/Misc/BeOS-setup.py
==============================================================================
--- python/branches/py3k-struni/Misc/BeOS-setup.py	(original)
+++ python/branches/py3k-struni/Misc/BeOS-setup.py	Thu May 17 20:20:34 2007
@@ -188,8 +188,6 @@
         # math library functions, e.g. sin()
         exts.append( Extension('math',  ['mathmodule.c'],
                                libraries=math_libs) )
-        # fast string operations implemented in C
-        exts.append( Extension('strop', ['stropmodule.c']) )
         # time operations and variables
         exts.append( Extension('time', ['timemodule.c'],
                                libraries=math_libs) )

Modified: python/branches/py3k-struni/Misc/NEWS
==============================================================================
--- python/branches/py3k-struni/Misc/NEWS	(original)
+++ python/branches/py3k-struni/Misc/NEWS	Thu May 17 20:20:34 2007
@@ -26,6 +26,10 @@
 Core and Builtins
 -----------------
 
+- Remove BaseException.message.
+
+- Remove strop module.
+
 - Remove tuple parameter unpacking (PEP 3113).
 
 - Remove the f_restricted attribute from frames.  This naturally leads to teh
@@ -190,7 +194,9 @@
 - Remove Bastion and rexec as they have been disabled since Python 2.3 (this
   also leads to the C API support for restricted execution).
 
-- Remove obsolete IRIX modules: al, cd, cl, fl, fm, gl, imgfile, sgi, sv.
+- Remove obsolete IRIX modules: al/AL, cd/CD, cddb, cdplayer, cl/CL, DEVICE,
+  ERRNO, FILE, fl/FL, flp, fm, GET, gl/GL, GLWS, IN, imgfile, IOCTL, jpeg,
+  panel, panelparser, readcd, sgi, sv/SV, torgb, WAIT.
 
 - Remove bsddb185 module; it was obsolete.
 

Modified: python/branches/py3k-struni/Modules/Setup.dist
==============================================================================
--- python/branches/py3k-struni/Modules/Setup.dist	(original)
+++ python/branches/py3k-struni/Modules/Setup.dist	Thu May 17 20:20:34 2007
@@ -133,13 +133,6 @@
 # The Python symtable module depends on .h files that setup.py doesn't track
 _symtable symtablemodule.c
 
-# Pure module.  Cannot be linked dynamically.
-# -DWITH_QUANTIFY, -DWITH_PURIFY, or -DWITH_ALL_PURE
-#WHICH_PURE_PRODUCTS=-DWITH_ALL_PURE
-#PURE_INCLS=-I/usr/local/include
-#PURE_STUBLIBS=-L/usr/local/lib -lpurify_stubs -lquantify_stubs
-#pure puremodule.c $(WHICH_PURE_PRODUCTS) $(PURE_INCLS) $(PURE_STUBLIBS)
-
 # Uncommenting the following line tells makesetup that all following
 # modules are to be built as shared libraries (see above for more
 # detail; also note that *static* reverses this effect):
@@ -170,7 +163,6 @@
 #_random _randommodule.c	# Random number generator
 #collections collectionsmodule.c # Container types
 #itertools itertoolsmodule.c	# Functions creating iterators for efficient looping 
-#strop stropmodule.c		# String manipulations
 #atexit atexitmodule.c      # Register functions to be run at interpreter-shutdown
 
 #unicodedata unicodedata.c    # static Unicode character database

Modified: python/branches/py3k-struni/Modules/_localemodule.c
==============================================================================
--- python/branches/py3k-struni/Modules/_localemodule.c	(original)
+++ python/branches/py3k-struni/Modules/_localemodule.c	Thu May 17 20:20:34 2007
@@ -96,21 +96,18 @@
 static void
 fixup_ulcase(void)
 {
-    PyObject *mods, *strop, *string, *ulo;
+    PyObject *mods, *string, *ulo;
     unsigned char ul[256];
     int n, c;
 
-    /* find the string and strop modules */
+    /* find the string module */
     mods = PyImport_GetModuleDict();
     if (!mods)
         return;
     string = PyDict_GetItemString(mods, "string");
     if (string)
         string = PyModule_GetDict(string);
-    strop=PyDict_GetItemString(mods, "strop");
-    if (strop)
-        strop = PyModule_GetDict(strop);
-    if (!string && !strop)
+    if (!string)
         return;
 
     /* create uppercase map string */
@@ -124,8 +121,6 @@
         return;
     if (string)
         PyDict_SetItemString(string, "uppercase", ulo);
-    if (strop)
-        PyDict_SetItemString(strop, "uppercase", ulo);
     Py_DECREF(ulo);
 
     /* create lowercase string */
@@ -139,8 +134,6 @@
         return;
     if (string)
         PyDict_SetItemString(string, "lowercase", ulo);
-    if (strop)
-        PyDict_SetItemString(strop, "lowercase", ulo);
     Py_DECREF(ulo);
 
     /* create letters string */

Deleted: /python/branches/py3k-struni/Modules/puremodule.c
==============================================================================
--- /python/branches/py3k-struni/Modules/puremodule.c	Thu May 17 20:20:34 2007
+++ (empty file)
@@ -1,988 +0,0 @@
-/* This module exports the C API to such Pure Software Inc. (tm) (now
- * called Pure Atria Corporation) products as Purify (tm) and Quantify
- * (tm).  Other packages could be added, but I didn't have those products
- * and thus lack the API documentation.
- *
- * Currently supported: Quantify 2.x, Purify 3.x
- *
- * You need to decide which products you want to incorporate into the
- * module when you compile this file.  The way to do this is to edit
- * <Python>/Modules/Setup to pass the appropriate flags to the compiler.
- * -DWITH_PURIFY compiles in the Purify support, and -DWITH_QUANTIFY
- * compiles in the Quantify support.  -DWITH_ALL_PURE compiles in both.
- * You can also build a Purify'd or Quantify'd interpreter by passing in
- * the LINKCC variable to make.  E.g. if you want to build a Purify'd
- * interpreter and are using gcc, build Python with this command:
- *
- * make LINKCC='purify gcc'
- *
- * It would be nice (and probably easy) to provide this file as a shared
- * library, however since it doesn't appear that Pure gives us shared
- * libraries of the stubs, it doesn't really matter.  For now, you have to
- * link this file in statically.
- *
- * Major bogosity.  The purify.h header file exports purify_exit(), but
- * guess what?  It is not defined in the libpurify_stubs.a file!  I tried
- * to fake one here, hoping the Pure linker would Do The Right Thing when
- * instrumented for Purify, but it doesn't seem to, so I don't export
- * purify_exit() to the Python layer.  In Python you should raise a
- * SystemExit exception anyway.
- *
- * The actual purify.h and quantify.h files which embody the APIs are
- * copyrighted by Pure Software, Inc. and are only attainable through them.
- * This module assumes you have legally installed licenses of their
- * software.  Contact them on the Web via <http://www.pureatria.com/>
- *
- * Author: Barry Warsaw <bwarsaw at python.org>
- *                      <bwarsaw at cnri.reston.va.us>
- */
-
-#include "Python.h"
-
-#if defined(WITH_PURIFY) || defined(WITH_ALL_PURE)
-#    include <purify.h>
-#    define HAS_PURIFY_EXIT 0                /* See note at top of file */
-#    define PURE_PURIFY_VERSION 3            /* not provided by purify.h */
-#endif
-#if defined(WITH_QUANTIFY) || defined(WITH_ALL_PURE)
-#    include <quantify.h>
-#    define PURE_QUANTIFY_VERSION 2          /* not provided by quantify.h */
-#endif
-#if defined(PURIFY_H) || defined(QUANTIFY_H)
-#    define COMMON_PURE_FUNCTIONS
-#endif /* PURIFY_H || QUANTIFY_H */
-
-typedef int (*VoidArgFunc)(void);
-typedef int (*StringArgFunc)(char*);
-typedef int (*PrintfishFunc)(const char*, ...);
-typedef int (*StringIntArgFunc)(const char*, int);
-
-
-
-static PyObject*
-call_voidarg_function(VoidArgFunc func, PyObject *self, PyObject *args)
-{
-	int status;
-
-	if (!PyArg_ParseTuple(args, ""))
-		return NULL;
-
-	status = func();
-	return Py_BuildValue("i", status);
-}
-
-static PyObject*
-call_stringarg_function(StringArgFunc func, PyObject *self, PyObject *args)
-{
-	int status;
-	char* stringarg;
-
-	if (!PyArg_ParseTuple(args, "s", &stringarg))
-		return NULL;
-
-	status = func(stringarg);
-	return Py_BuildValue("i", status);
-}
-
-static PyObject*
-call_stringorint_function(StringArgFunc func, PyObject *self, PyObject *args)
-{
-	int status;
-	int intarg;
-	char* stringarg;
-
-        /* according to the quantify.h file, the argument to
-         * quantify_*_recording_system_call can be an integer or a string,
-	 * but the functions are prototyped as taking a single char*
-	 * argument. Yikes!
-         */
-	if (PyArg_ParseTuple(args, "i", &intarg))
-		/* func is prototyped as int(*)(char*)
-		 * better shut up the compiler
-		 */
-		status = func((char*)intarg);
-
-	else {
-		PyErr_Clear();
-		if (!PyArg_ParseTuple(args, "s", &stringarg))
-			return NULL;
-		else
-			status = func(stringarg);
-	}
-	return Py_BuildValue("i", status);
-}
-
-static PyObject*
-call_printfish_function(PrintfishFunc func, PyObject *self, PyObject *args)
-{
-	/* we support the printf() style vararg functions by requiring the
-         * formatting be done in Python.  At the C level we pass just a string
-         * to the printf() style function.
-         */
-	int status;
-	char* argstring;
-
-	if (!PyArg_ParseTuple(args, "s", &argstring))
-		return NULL;
-
-	status = func("%s", argstring);
-	return Py_BuildValue("i", status);
-}
-
-static PyObject*
-call_intasaddr_function(StringArgFunc func, PyObject *self, PyObject *args)
-{
-	long memrep;
-	int id;
-
-	if (!PyArg_ParseTuple(args, "l", &memrep))
-		return NULL;
-
-	id = func((char*)memrep);
-	return Py_BuildValue("i", id);
-}
-
-static PyObject*
-call_stringandint_function(StringIntArgFunc func, PyObject *self,
-			   PyObject *args)
-{
-	long srcrep;
-	int size;
-	int status;
-
-	if (!PyArg_ParseTuple(args, "li", &srcrep, &size))
-		return NULL;
-
-	status = func((char*)srcrep, size);
-	return Py_BuildValue("i", status);
-}
-
-
-
-/* functions common to all products
- *
- * N.B. These printf() style functions are a bit of a kludge.  Since the
- * API doesn't provide vprintf versions of them, we can't call them
- * directly.  They don't support all the standard printf % modifiers
- * anyway.  The way to use these is to use Python's % string operator to do
- * the formatting.  By the time these functions get the thing to print,
- * it's already a string, and they just use "%s" as the format string.
- */
-
-#ifdef COMMON_PURE_FUNCTIONS
-
-static PyObject*
-pure_pure_logfile_printf(PyObject* self, PyObject* args)
-{
-	return call_printfish_function(pure_logfile_printf, self, args);
-}
-
-static PyObject*
-pure_pure_printf(PyObject* self, PyObject* args)
-{
-	return call_printfish_function(pure_printf, self, args);
-}
-
-static PyObject*
-pure_pure_printf_with_banner(PyObject* self, PyObject* args)
-{
-	return call_printfish_function(pure_printf_with_banner, self, args);
-}
-
-
-#endif /* COMMON_PURE_FUNCTIONS */
-
-
-
-/* Purify functions
- *
- * N.B. There are some interfaces described in the purify.h file that are
- * not described in the manual.
- *
- * Unsigned longs purify_report_{address,number,type,result} are not
- * accessible from the Python layer since they seem mostly useful when
- * purify_stop_here() is called by the (C) debugger.  The same is true of
- * the purify_stop_here_internal() function so it isn't exported either.
- * And purify_stop_here() should never be called directly.
- *
- * The header file says purify_{new,all,clear_new}_reports() are obsolete
- * so they aren't exported.
- *
- * None of the custom dynamic loader functions are exported.
- *
- * purify_unsafe_memcpy() isn't exported.
- *
- * purify_{start,size}_of_block() aren't exported.
- *
- * The manual that I have says that the prototype for the second argument
- * to purify_map_pool is:
- *
- *    void (*fn)(char*)
- *
- * but the purify.h file declares it as:
- *
- *    void (*fn)(char*, int, void*)
- *
- * and does not explain what the other arguments are for.  I support the
- * latter but I don't know if I do it right or usefully.
- *
- * The header file says that purify_describe() returns a char* which is the
- * pointer passed to it.  The manual says it returns an int, but I believe
- * that is a typo.
- */
-#ifdef PURIFY_H
-
-static PyObject*
-pure_purify_all_inuse(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_all_inuse, self, args);
-}
-static PyObject*
-pure_purify_all_leaks(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_all_leaks, self, args);
-}
-static PyObject*
-pure_purify_new_inuse(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_new_inuse, self, args);
-}
-static PyObject*
-pure_purify_new_leaks(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_new_leaks, self, args);
-}
-static PyObject*
-pure_purify_clear_inuse(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_clear_inuse, self, args);
-}
-static PyObject*
-pure_purify_clear_leaks(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_clear_leaks, self, args);
-}
-static PyObject*
-pure_purify_all_fds_inuse(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_all_fds_inuse, self, args);
-}
-static PyObject*
-pure_purify_new_fds_inuse(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_new_fds_inuse, self, args);
-}
-static PyObject*
-pure_purify_printf_with_call_chain(PyObject *self, PyObject *args)
-{
-	return call_printfish_function(purify_printf_with_call_chain,
-				       self, args);
-}
-static PyObject*
-pure_purify_set_pool_id(PyObject *self, PyObject *args)
-{
-	long memrep;
-	int id;
-
-	if (!PyArg_ParseTuple(args, "li:purify_set_pool_id", &memrep, &id))
-		return NULL;
-
-	purify_set_pool_id((char*)memrep, id);
-	Py_INCREF(Py_None);
-	return Py_None;
-}
-static PyObject*
-pure_purify_get_pool_id(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_get_pool_id, self, args);
-}
-static PyObject*
-pure_purify_set_user_data(PyObject *self, PyObject *args)
-{
-	long memrep;
-	long datarep;
-
-	if (!PyArg_ParseTuple(args, "ll:purify_set_user_data", &memrep, &datarep))
-		return NULL;
-
-	purify_set_user_data((char*)memrep, (void*)datarep);
-	Py_INCREF(Py_None);
-	return Py_None;
-}
-static PyObject*
-pure_purify_get_user_data(PyObject *self, PyObject *args)
-{
-        /* can't use call_intasaddr_function() since purify_get_user_data()
-         * returns a void*
-         */
-	long memrep;
-	void* data;
-
-	if (!PyArg_ParseTuple(args, "l:purify_get_user_data", &memrep))
-		return NULL;
-
-	data = purify_get_user_data((char*)memrep);
-	return Py_BuildValue("l", (long)data);
-}
-
-
-/* this global variable is shared by both mapping functions:
- * pure_purify_map_pool() and pure_purify_map_pool_id().  Since they cache
- * this variable it should be safe in the face of recursion or cross
- * calling.
- *
- * Further note that the prototype for the callback function is wrong in
- * the Purify manual.  The manual says the function takes a single char*,
- * but the header file says it takes an additional int and void*.  I have
- * no idea what these are for!
- */
-static PyObject* MapCallable = NULL;
-
-static void
-map_pool_callback(char* mem, int user_size, void *user_aux_data)
-{
-	long memrep = (long)mem;
-	long user_aux_data_rep = (long)user_aux_data;
-	PyObject* result;
-	PyObject* memobj = Py_BuildValue("lil", memrep, user_size,
-					 user_aux_data_rep);
-
-	if (memobj == NULL)
-		return;
-
-	result = PyEval_CallObject(MapCallable, memobj);
-	Py_DECREF(result);
-	Py_DECREF(memobj);
-}
-
-static PyObject*
-pure_purify_map_pool(PyObject *self, PyObject *args)
-{
-        /* cache global variable in case of recursion */
-	PyObject* saved_callable = MapCallable;
-	PyObject* arg_callable;
-	int id;
-
-	if (!PyArg_ParseTuple(args, "iO:purify_map_pool", &id, &arg_callable))
-		return NULL;
-
-	if (!PyCallable_Check(arg_callable)) {
-		PyErr_SetString(PyExc_TypeError,
-				"Second argument must be callable");
-		return NULL;
-	}
-	MapCallable = arg_callable;
-	purify_map_pool(id, map_pool_callback);
-	MapCallable = saved_callable;
-
-	Py_INCREF(Py_None);
-	return Py_None;
-}
-
-static void
-PurifyMapPoolIdCallback(int id)
-{
-	PyObject* result;
-	PyObject* intobj = Py_BuildValue("i", id);
-
-	if (intobj == NULL)
-		return;
-
-	result = PyEval_CallObject(MapCallable, intobj);
-	Py_DECREF(result);
-	Py_DECREF(intobj);
-}
-
-static PyObject*
-pure_purify_map_pool_id(PyObject *self, PyObject *args)
-{
-        /* cache global variable in case of recursion */
-	PyObject* saved_callable = MapCallable;
-	PyObject* arg_callable;
-
-	if (!PyArg_ParseTuple(args, "O:purify_map_pool_id", &arg_callable))
-		return NULL;
-
-	if (!PyCallable_Check(arg_callable)) {
-		PyErr_SetString(PyExc_TypeError, "Argument must be callable.");
-		return NULL;
-	}
-
-	MapCallable = arg_callable;
-	purify_map_pool_id(PurifyMapPoolIdCallback);
-	MapCallable = saved_callable;
-
-	Py_INCREF(Py_None);
-	return Py_None;
-}
-
-
-
-static PyObject*
-pure_purify_new_messages(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_new_messages, self, args);
-}
-static PyObject*
-pure_purify_all_messages(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_all_messages, self, args);
-}
-static PyObject*
-pure_purify_clear_messages(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_clear_messages, self, args);
-}
-static PyObject*
-pure_purify_clear_new_messages(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_clear_new_messages, self, args);
-}
-static PyObject*
-pure_purify_start_batch(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_start_batch, self, args);
-}
-static PyObject*
-pure_purify_start_batch_show_first(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_start_batch_show_first,
-				     self, args);
-}
-static PyObject*
-pure_purify_stop_batch(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_stop_batch, self, args);
-}
-static PyObject*
-pure_purify_name_thread(PyObject *self, PyObject *args)
-{
-        /* can't strictly use call_stringarg_function since
-         * purify_name_thread takes a const char*, not a char*
-         */
-	int status;
-	char* stringarg;
-
-	if (!PyArg_ParseTuple(args, "s:purify_name_thread", &stringarg))
-		return NULL;
-
-	status = purify_name_thread(stringarg);
-	return Py_BuildValue("i", status);
-}
-static PyObject*
-pure_purify_watch(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch, self, args);
-}
-static PyObject*
-pure_purify_watch_1(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_1, self, args);
-}
-static PyObject*
-pure_purify_watch_2(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_2, self, args);
-}
-static PyObject*
-pure_purify_watch_4(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_4, self, args);
-}
-static PyObject*
-pure_purify_watch_8(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_8, self, args);
-}
-static PyObject*
-pure_purify_watch_w_1(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_w_1, self, args);
-}
-static PyObject*
-pure_purify_watch_w_2(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_w_2, self, args);
-}
-static PyObject*
-pure_purify_watch_w_4(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_w_4, self, args);
-}
-static PyObject*
-pure_purify_watch_w_8(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_w_8, self, args);
-}
-static PyObject*
-pure_purify_watch_r_1(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_r_1, self, args);
-}
-static PyObject*
-pure_purify_watch_r_2(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_r_2, self, args);
-}
-static PyObject*
-pure_purify_watch_r_4(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_r_4, self, args);
-}
-static PyObject*
-pure_purify_watch_r_8(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_r_8, self, args);
-}
-static PyObject*
-pure_purify_watch_rw_1(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_rw_1, self, args);
-}
-static PyObject*
-pure_purify_watch_rw_2(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_rw_2, self, args);
-}
-static PyObject*
-pure_purify_watch_rw_4(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_rw_4, self, args);
-}
-static PyObject*
-pure_purify_watch_rw_8(PyObject *self, PyObject *args)
-{
-	return call_intasaddr_function(purify_watch_rw_8, self, args);
-}
-
-static PyObject*
-pure_purify_watch_n(PyObject *self, PyObject *args)
-{
-	long addrrep;
-	unsigned int size;
-	char* type;
-	int status;
-
-	if (!PyArg_ParseTuple(args, "lis:purify_watch_n", &addrrep, &size, &type))
-		return NULL;
-
-	status = purify_watch_n((char*)addrrep, size, type);
-	return Py_BuildValue("i", status);
-}
-
-static PyObject*
-pure_purify_watch_info(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_watch_info, self, args);
-}
-
-static PyObject*
-pure_purify_watch_remove(PyObject *self, PyObject *args)
-{
-	int watchno;
-	int status;
-
-	if (!PyArg_ParseTuple(args, "i:purify_watch_remove", &watchno))
-		return NULL;
-
-	status = purify_watch_remove(watchno);
-	return Py_BuildValue("i", status);
-}
-
-static PyObject*
-pure_purify_watch_remove_all(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_watch_remove_all, self, args);
-}
-static PyObject*
-pure_purify_describe(PyObject *self, PyObject *args)
-{
-	long addrrep;
-	char* rtn;
-
-	if (!PyArg_ParseTuple(args, "l:purify_describe", &addrrep))
-		return NULL;
-
-	rtn = purify_describe((char*)addrrep);
-	return Py_BuildValue("l", (long)rtn);
-}
-
-static PyObject*
-pure_purify_what_colors(PyObject *self, PyObject *args)
-{
-	long addrrep;
-	unsigned int size;
-	int status;
-    
-	if (!PyArg_ParseTuple(args, "li:purify_what_colors", &addrrep, &size))
-		return NULL;
-
-	status = purify_what_colors((char*)addrrep, size);
-	return Py_BuildValue("i", status);
-}
-
-static PyObject*
-pure_purify_is_running(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(purify_is_running, self, args);
-}
-
-static PyObject*
-pure_purify_assert_is_readable(PyObject *self, PyObject *args)
-{
-	return call_stringandint_function(purify_assert_is_readable,
-					  self, args);
-}
-static PyObject*
-pure_purify_assert_is_writable(PyObject *self, PyObject *args)
-{
-	return call_stringandint_function(purify_assert_is_writable,
-					  self, args);
-}
-
-#if HAS_PURIFY_EXIT
-
-/* I wish I could include this, but I can't.  See the notes at the top of
- * the file.
- */
-
-static PyObject*
-pure_purify_exit(PyObject *self, PyObject *args)
-{
-	int status;
-
-	if (!PyArg_ParseTuple(args, "i:purify_exit", &status))
-		return NULL;
-
-        /* purify_exit doesn't always act like exit(). See the manual */
-	purify_exit(status);
-	Py_INCREF(Py_None);
-	return Py_None;
-}
-#endif /* HAS_PURIFY_EXIT */
-
-#endif /* PURIFY_H */
-
-
-
-/* Quantify functions
- *
- * N.B. Some of these functions are only described in the quantify.h file,
- * not in the version of the hardcopy manual that I had.  If you're not
- * sure what some of these do, check the header file, it is documented
- * fairly well.
- *
- * None of the custom dynamic loader functions are exported.
- *
- */
-#ifdef QUANTIFY_H
-
-static PyObject*
-pure_quantify_is_running(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_is_running, self, args);
-}
-static PyObject*
-pure_quantify_help(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_help, self, args);
-}
-static PyObject*
-pure_quantify_print_recording_state(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_print_recording_state,
-				     self, args);
-}
-static PyObject*
-pure_quantify_start_recording_data(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_start_recording_data,
-				     self, args);
-}
-static PyObject*
-pure_quantify_stop_recording_data(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_stop_recording_data, self, args);
-}
-static PyObject*
-pure_quantify_is_recording_data(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_is_recording_data, self, args);
-}
-static PyObject*
-pure_quantify_start_recording_system_calls(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_start_recording_system_calls,
-				     self, args);
-}
-static PyObject*
-pure_quantify_stop_recording_system_calls(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_stop_recording_system_calls,
-				     self, args);
-}
-static PyObject*
-pure_quantify_is_recording_system_calls(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_is_recording_system_calls,
-				     self, args);
-}
-static PyObject*
-pure_quantify_start_recording_system_call(PyObject *self, PyObject *args)
-{
-	return call_stringorint_function(quantify_start_recording_system_call,
-					   self, args);
-}
-static PyObject*
-pure_quantify_stop_recording_system_call(PyObject *self, PyObject *args)
-{
-	return call_stringorint_function(quantify_stop_recording_system_call,
-					 self, args);
-}
-static PyObject*
-pure_quantify_is_recording_system_call(PyObject *self, PyObject *args)
-{
-	return call_stringorint_function(quantify_is_recording_system_call,
-					 self, args);
-}
-static PyObject*
-pure_quantify_start_recording_dynamic_library_data(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(
-		quantify_start_recording_dynamic_library_data,
-		self, args);
-}
-static PyObject*
-pure_quantify_stop_recording_dynamic_library_data(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(
-		quantify_stop_recording_dynamic_library_data,
-		self, args);
-}
-static PyObject*
-pure_quantify_is_recording_dynamic_library_data(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(
-		quantify_is_recording_dynamic_library_data,
-		self, args);
-}
-static PyObject*
-pure_quantify_start_recording_register_window_traps(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(
-		quantify_start_recording_register_window_traps,
-		self, args);
-}
-static PyObject*
-pure_quantify_stop_recording_register_window_traps(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(
-		quantify_stop_recording_register_window_traps,
-		self, args);
-}
-static PyObject*
-pure_quantify_is_recording_register_window_traps(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(
-		quantify_is_recording_register_window_traps,
-		self, args);
-}
-static PyObject*
-pure_quantify_disable_recording_data(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_disable_recording_data,
-				     self, args);
-}
-static PyObject*
-pure_quantify_clear_data(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_clear_data, self, args);
-}
-static PyObject*
-pure_quantify_save_data(PyObject *self, PyObject *args)
-{
-	return call_voidarg_function(quantify_save_data, self, args);
-}
-static PyObject*
-pure_quantify_save_data_to_file(PyObject *self, PyObject *args)
-{
-	return call_stringarg_function(quantify_save_data_to_file, self, args);
-}
-static PyObject*
-pure_quantify_add_annotation(PyObject *self, PyObject *args)
-{
-	return call_stringarg_function(quantify_add_annotation, self, args);
-}
-
-#endif /* QUANTIFY_H */
-
-
-
-/* external interface
- */
-static struct PyMethodDef
-pure_methods[] = {
-#ifdef COMMON_PURE_FUNCTIONS
-    {"pure_logfile_printf",            pure_pure_logfile_printf,            METH_VARARGS},
-    {"pure_printf",                    pure_pure_printf,                    METH_VARARGS},
-    {"pure_printf_with_banner",        pure_pure_printf_with_banner,        METH_VARARGS},
-#endif /* COMMON_PURE_FUNCTIONS */
-#ifdef PURIFY_H
-    {"purify_all_inuse",               pure_purify_all_inuse,               METH_VARARGS},
-    {"purify_all_leaks",               pure_purify_all_leaks,               METH_VARARGS},
-    {"purify_new_inuse",               pure_purify_new_inuse,               METH_VARARGS},
-    {"purify_new_leaks",               pure_purify_new_leaks,               METH_VARARGS},
-    {"purify_clear_inuse",             pure_purify_clear_inuse,             METH_VARARGS},
-    {"purify_clear_leaks",             pure_purify_clear_leaks,             METH_VARARGS},
-    {"purify_all_fds_inuse",           pure_purify_all_fds_inuse,           METH_VARARGS},
-    {"purify_new_fds_inuse",           pure_purify_new_fds_inuse,           METH_VARARGS},
-    /* see purify.h */
-    {"purify_logfile_printf",          pure_pure_logfile_printf,            METH_VARARGS},
-    {"purify_printf",                  pure_pure_printf,                    METH_VARARGS},
-    {"purify_printf_with_banner",      pure_pure_printf_with_banner,        METH_VARARGS},
-    /**/
-    {"purify_printf_with_call_chain",  pure_purify_printf_with_call_chain,  METH_VARARGS},
-    {"purify_set_pool_id",             pure_purify_set_pool_id,             METH_VARARGS},
-    {"purify_get_pool_id",             pure_purify_get_pool_id,             METH_VARARGS},
-    {"purify_set_user_data",           pure_purify_set_user_data,           METH_VARARGS},
-    {"purify_get_user_data",           pure_purify_get_user_data,           METH_VARARGS},
-    {"purify_map_pool",                pure_purify_map_pool,                METH_VARARGS},
-    {"purify_map_pool_id",             pure_purify_map_pool_id,             METH_VARARGS},
-    {"purify_new_messages",            pure_purify_new_messages,            METH_VARARGS},
-    {"purify_all_messages",            pure_purify_all_messages,            METH_VARARGS},
-    {"purify_clear_messages",          pure_purify_clear_messages,          METH_VARARGS},
-    {"purify_clear_new_messages",      pure_purify_clear_new_messages,      METH_VARARGS},
-    {"purify_start_batch",             pure_purify_start_batch,             METH_VARARGS},
-    {"purify_start_batch_show_first",  pure_purify_start_batch_show_first,  METH_VARARGS},
-    {"purify_stop_batch",              pure_purify_stop_batch,              METH_VARARGS},
-    {"purify_name_thread",             pure_purify_name_thread,             METH_VARARGS},
-    {"purify_watch",                   pure_purify_watch,                   METH_VARARGS},
-    {"purify_watch_1",                 pure_purify_watch_1,                 METH_VARARGS},
-    {"purify_watch_2",                 pure_purify_watch_2,                 METH_VARARGS},
-    {"purify_watch_4",                 pure_purify_watch_4,                 METH_VARARGS},
-    {"purify_watch_8",                 pure_purify_watch_8,                 METH_VARARGS},
-    {"purify_watch_w_1",               pure_purify_watch_w_1,               METH_VARARGS},
-    {"purify_watch_w_2",               pure_purify_watch_w_2,               METH_VARARGS},
-    {"purify_watch_w_4",               pure_purify_watch_w_4,               METH_VARARGS},
-    {"purify_watch_w_8",               pure_purify_watch_w_8,               METH_VARARGS},
-    {"purify_watch_r_1",               pure_purify_watch_r_1,               METH_VARARGS},
-    {"purify_watch_r_2",               pure_purify_watch_r_2,               METH_VARARGS},
-    {"purify_watch_r_4",               pure_purify_watch_r_4,               METH_VARARGS},
-    {"purify_watch_r_8",               pure_purify_watch_r_8,               METH_VARARGS},
-    {"purify_watch_rw_1",              pure_purify_watch_rw_1,              METH_VARARGS},
-    {"purify_watch_rw_2",              pure_purify_watch_rw_2,              METH_VARARGS},
-    {"purify_watch_rw_4",              pure_purify_watch_rw_4,              METH_VARARGS},
-    {"purify_watch_rw_8",              pure_purify_watch_rw_8,              METH_VARARGS},
-    {"purify_watch_n",                 pure_purify_watch_n,                 METH_VARARGS},
-    {"purify_watch_info",              pure_purify_watch_info,              METH_VARARGS},
-    {"purify_watch_remove",            pure_purify_watch_remove,            METH_VARARGS},
-    {"purify_watch_remove_all",        pure_purify_watch_remove_all,        METH_VARARGS},
-    {"purify_describe",                pure_purify_describe,                METH_VARARGS},
-    {"purify_what_colors",             pure_purify_what_colors,             METH_VARARGS},
-    {"purify_is_running",              pure_purify_is_running,              METH_VARARGS},
-    {"purify_assert_is_readable",      pure_purify_assert_is_readable,      METH_VARARGS},
-    {"purify_assert_is_writable",      pure_purify_assert_is_writable,      METH_VARARGS},
-#if HAS_PURIFY_EXIT
-    /* I wish I could include this, but I can't.  See the notes at the
-     * top of the file.
-     */
-    {"purify_exit",                    pure_purify_exit,                    METH_VARARGS},
-#endif /* HAS_PURIFY_EXIT */
-#endif /* PURIFY_H */
-#ifdef QUANTIFY_H
-    {"quantify_is_running",            pure_quantify_is_running,            METH_VARARGS},
-    {"quantify_help",                  pure_quantify_help,                  METH_VARARGS},
-    {"quantify_print_recording_state", pure_quantify_print_recording_state, METH_VARARGS},
-    {"quantify_start_recording_data",  pure_quantify_start_recording_data,  METH_VARARGS},
-    {"quantify_stop_recording_data",   pure_quantify_stop_recording_data,   METH_VARARGS},
-    {"quantify_is_recording_data",     pure_quantify_is_recording_data,  METH_VARARGS},
-    {"quantify_start_recording_system_calls",
-     pure_quantify_start_recording_system_calls, METH_VARARGS},
-    {"quantify_stop_recording_system_calls",
-     pure_quantify_stop_recording_system_calls, METH_VARARGS},
-    {"quantify_is_recording_system_calls",
-     pure_quantify_is_recording_system_calls, METH_VARARGS},
-    {"quantify_start_recording_system_call",
-     pure_quantify_start_recording_system_call, METH_VARARGS},
-    {"quantify_stop_recording_system_call",
-     pure_quantify_stop_recording_system_call, METH_VARARGS},
-    {"quantify_is_recording_system_call",
-     pure_quantify_is_recording_system_call, METH_VARARGS},
-    {"quantify_start_recording_dynamic_library_data",
-     pure_quantify_start_recording_dynamic_library_data, METH_VARARGS},
-    {"quantify_stop_recording_dynamic_library_data",
-     pure_quantify_stop_recording_dynamic_library_data, METH_VARARGS},
-    {"quantify_is_recording_dynamic_library_data",
-     pure_quantify_is_recording_dynamic_library_data, METH_VARARGS},
-    {"quantify_start_recording_register_window_traps",
-     pure_quantify_start_recording_register_window_traps, METH_VARARGS},
-    {"quantify_stop_recording_register_window_traps",
-     pure_quantify_stop_recording_register_window_traps, METH_VARARGS},
-    {"quantify_is_recording_register_window_traps",
-     pure_quantify_is_recording_register_window_traps, METH_VARARGS},
-    {"quantify_disable_recording_data",
-     pure_quantify_disable_recording_data, METH_VARARGS},
-    {"quantify_clear_data",        pure_quantify_clear_data,        METH_VARARGS},
-    {"quantify_save_data",         pure_quantify_save_data,         METH_VARARGS},
-    {"quantify_save_data_to_file", pure_quantify_save_data_to_file, METH_VARARGS},
-    {"quantify_add_annotation",    pure_quantify_add_annotation,    METH_VARARGS},
-#endif /* QUANTIFY_H */
-    {NULL,  NULL}			     /* sentinel */
-};
-
-
-
-static void
-ins(d, name, val)
-	PyObject *d;
-	char* name;
-	long val;
-{
-	PyObject *v = PyInt_FromLong(val);
-	if (v) {
-		(void)PyDict_SetItemString(d, name, v);
-		Py_DECREF(v);
-	}
-}
-
-
-void
-initpure()
-{
-	PyObject *m, *d;
-
-	m = Py_InitModule("pure", pure_methods);
-	if (m == NULL)
-    		return;
-	d = PyModule_GetDict(m);
-
-        /* this is bogus because we should be able to find this information
-         * out from the header files.  Pure's current versions don't
-         * include this information!
-         */
-#ifdef PURE_PURIFY_VERSION
-	ins(d, "PURIFY_VERSION", PURE_PURIFY_VERSION);
-#else
-	PyDict_SetItemString(d, "PURIFY_VERSION", Py_None);
-#endif
-
-        /* these aren't terribly useful because purify_exit() isn't
-         * exported correctly.  See the note at the top of the file.
-         */
-#ifdef PURIFY_EXIT_ERRORS
-	ins(d, "PURIFY_EXIT_ERRORS", PURIFY_EXIT_ERRORS);
-#endif
-#ifdef PURIFY_EXIT_LEAKS
-	ins(d, "PURIFY_EXIT_LEAKS",  PURIFY_EXIT_LEAKS);
-#endif
-#ifdef PURIFY_EXIT_PLEAKS
-	ins(d, "PURIFY_EXIT_PLEAKS", PURIFY_EXIT_PLEAKS);
-#endif
-
-
-#ifdef PURE_QUANTIFY_VERSION
-	ins(d, "QUANTIFY_VERSION", PURE_QUANTIFY_VERSION);
-#else
-	PyDict_SetItemString(d, "QUANTIFY_VERSION", Py_None);
-#endif
-}

Deleted: /python/branches/py3k-struni/Modules/stropmodule.c
==============================================================================
--- /python/branches/py3k-struni/Modules/stropmodule.c	Thu May 17 20:20:34 2007
+++ (empty file)
@@ -1,64 +0,0 @@
-/* strop module */
-
-#define PY_SSIZE_T_CLEAN
-#include "Python.h"
-
-PyDoc_STRVAR(strop_module__doc__,
-"Common string manipulations, optimized for speed.\n"
-"\n"
-"Always use \"import string\" rather than referencing\n"
-"this module directly.");
-
-PyDoc_STRVAR(maketrans__doc__,
-"maketrans(frm, to) -> string\n"
-"\n"
-"Return a translation table (a string of 256 bytes long)\n"
-"suitable for use in string.translate.  The strings frm and to\n"
-"must be of the same length.");
-
-static PyObject *
-strop_maketrans(PyObject *self, PyObject *args)
-{
-	unsigned char *c, *from=NULL, *to=NULL;
-	Py_ssize_t i, fromlen=0, tolen=0;
-	PyObject *result;
-
-	if (!PyArg_ParseTuple(args, "t#t#:maketrans", &from, &fromlen, &to, &tolen))
-		return NULL;
-
-	if (fromlen != tolen) {
-		PyErr_SetString(PyExc_ValueError,
-				"maketrans arguments must have same length");
-		return NULL;
-	}
-
-	result = PyString_FromStringAndSize((char *)NULL, 256);
-	if (result == NULL)
-		return NULL;
-	c = (unsigned char *) PyString_AS_STRING((PyStringObject *)result);
-	for (i = 0; i < 256; i++)
-		c[i]=(unsigned char)i;
-	for (i = 0; i < fromlen; i++)
-		c[from[i]]=to[i];
-
-	return result;
-}
-
-/* List of functions defined in the module */
-
-static PyMethodDef
-strop_methods[] = {
-	{"maketrans",	strop_maketrans,   METH_VARARGS, maketrans__doc__},
-	{NULL,		NULL}	/* sentinel */
-};
-
-
-PyMODINIT_FUNC
-initstrop(void)
-{
-	PyObject *m;
-	m = Py_InitModule4("strop", strop_methods, strop_module__doc__,
-			   (PyObject*)NULL, PYTHON_API_VERSION);
-	if (m == NULL)
-		return;
-}

Modified: python/branches/py3k-struni/Objects/exceptions.c
==============================================================================
--- python/branches/py3k-struni/Objects/exceptions.c	(original)
+++ python/branches/py3k-struni/Objects/exceptions.c	Thu May 17 20:20:34 2007
@@ -27,7 +27,7 @@
     if (!self)
         return NULL;
     /* the dict is created on the fly in PyObject_GenericSetAttr */
-    self->message = self->dict = NULL;
+    self->dict = NULL;
 
     self->args = PyTuple_New(0);
     if (!self->args) {
@@ -35,12 +35,6 @@
         return NULL;
     }
 
-    self->message = PyString_FromString("");
-    if (!self->message) {
-        Py_DECREF(self);
-        return NULL;
-    }
-
     return (PyObject *)self;
 }
 
@@ -54,11 +48,6 @@
     self->args = args;
     Py_INCREF(self->args);
 
-    if (PyTuple_GET_SIZE(self->args) == 1) {
-        Py_CLEAR(self->message);
-        self->message = PyTuple_GET_ITEM(self->args, 0);
-        Py_INCREF(self->message);
-    }
     return 0;
 }
 
@@ -67,7 +56,6 @@
 {
     Py_CLEAR(self->dict);
     Py_CLEAR(self->args);
-    Py_CLEAR(self->message);
     return 0;
 }
 
@@ -84,7 +72,6 @@
 {
     Py_VISIT(self->dict);
     Py_VISIT(self->args);
-    Py_VISIT(self->message);
     return 0;
 }
 
@@ -231,42 +218,10 @@
     return 0;
 }
 
-static PyObject *
-BaseException_get_message(PyBaseExceptionObject *self)
-{
-	int ret;
-	ret = PyErr_WarnEx(PyExc_DeprecationWarning,
-				"BaseException.message has been deprecated as "
-					"of Python 2.6",
-				1);
-	if (ret == -1)
-		return NULL;
-
-	Py_INCREF(self->message);
-	return self->message;
-}
-
-static int
-BaseException_set_message(PyBaseExceptionObject *self, PyObject *val)
-{
-	int ret;
-	ret = PyErr_WarnEx(PyExc_DeprecationWarning,
-				"BaseException.message has been deprecated as "
-					"of Python 2.6",
-				1);
-	if (ret == -1)
-		return -1;
-	Py_INCREF(val);
-	Py_DECREF(self->message);
-	self->message = val;
-	return 0;
-}
 
 static PyGetSetDef BaseException_getset[] = {
     {"__dict__", (getter)BaseException_get_dict, (setter)BaseException_set_dict},
     {"args", (getter)BaseException_get_args, (setter)BaseException_set_args},
-    {"message", (getter)BaseException_get_message,
-	    (setter)BaseException_set_message},
     {NULL},
 };
 
@@ -453,8 +408,6 @@
 }
 
 static PyMemberDef SystemExit_members[] = {
-    {"message", T_OBJECT, offsetof(PySystemExitObject, message), 0,
-        PyDoc_STR("exception message")},
     {"code", T_OBJECT, offsetof(PySystemExitObject, code), 0,
         PyDoc_STR("exception code")},
     {NULL}  /* Sentinel */
@@ -655,8 +608,6 @@
 }
 
 static PyMemberDef EnvironmentError_members[] = {
-    {"message", T_OBJECT, offsetof(PyEnvironmentErrorObject, message), 0,
-        PyDoc_STR("exception message")},
     {"errno", T_OBJECT, offsetof(PyEnvironmentErrorObject, myerrno), 0,
         PyDoc_STR("exception errno")},
     {"strerror", T_OBJECT, offsetof(PyEnvironmentErrorObject, strerror), 0,
@@ -888,8 +839,6 @@
 }
 
 static PyMemberDef WindowsError_members[] = {
-    {"message", T_OBJECT, offsetof(PyWindowsErrorObject, message), 0,
-        PyDoc_STR("exception message")},
     {"errno", T_OBJECT, offsetof(PyWindowsErrorObject, myerrno), 0,
         PyDoc_STR("POSIX exception code")},
     {"strerror", T_OBJECT, offsetof(PyWindowsErrorObject, strerror), 0,
@@ -1120,8 +1069,6 @@
 }
 
 static PyMemberDef SyntaxError_members[] = {
-    {"message", T_OBJECT, offsetof(PySyntaxErrorObject, message), 0,
-        PyDoc_STR("exception message")},
     {"msg", T_OBJECT, offsetof(PySyntaxErrorObject, msg), 0,
         PyDoc_STR("exception msg")},
     {"filename", T_OBJECT, offsetof(PySyntaxErrorObject, filename), 0,
@@ -1569,8 +1516,6 @@
 }
 
 static PyMemberDef UnicodeError_members[] = {
-    {"message", T_OBJECT, offsetof(PyUnicodeErrorObject, message), 0,
-        PyDoc_STR("exception message")},
     {"encoding", T_OBJECT, offsetof(PyUnicodeErrorObject, encoding), 0,
         PyDoc_STR("exception encoding")},
     {"object", T_OBJECT, offsetof(PyUnicodeErrorObject, object), 0,

Modified: python/branches/py3k-struni/Objects/stringobject.c
==============================================================================
--- python/branches/py3k-struni/Objects/stringobject.c	(original)
+++ python/branches/py3k-struni/Objects/stringobject.c	Thu May 17 20:20:34 2007
@@ -3769,8 +3769,6 @@
 
 static PyMethodDef
 string_methods[] = {
-	/* Counterparts of the obsolete stropmodule functions; except
-	   string.maketrans(). */
 	{"join", (PyCFunction)string_join, METH_O, join__doc__},
 	{"split", (PyCFunction)string_split, METH_VARARGS, split__doc__},
 	{"rsplit", (PyCFunction)string_rsplit, METH_VARARGS, rsplit__doc__},

Modified: python/branches/py3k-struni/PC/VC6/pythoncore.dsp
==============================================================================
--- python/branches/py3k-struni/PC/VC6/pythoncore.dsp	(original)
+++ python/branches/py3k-struni/PC/VC6/pythoncore.dsp	Thu May 17 20:20:34 2007
@@ -619,10 +619,6 @@
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\Modules\stropmodule.c
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\Python\structmember.c
 # End Source File
 # Begin Source File

Modified: python/branches/py3k-struni/PC/config.c
==============================================================================
--- python/branches/py3k-struni/PC/config.c	(original)
+++ python/branches/py3k-struni/PC/config.c	Thu May 17 20:20:34 2007
@@ -27,7 +27,6 @@
 extern void init_sha(void);
 extern void init_sha256(void);
 extern void init_sha512(void);
-extern void initstrop(void);
 extern void inittime(void);
 extern void initthread(void);
 extern void initcStringIO(void);
@@ -104,7 +103,6 @@
         {"_sha", init_sha},
         {"_sha256", init_sha256},
         {"_sha512", init_sha512},
-        {"strop", initstrop},
         {"time", inittime},
 #ifdef WITH_THREAD
         {"thread", initthread},

Modified: python/branches/py3k-struni/PC/os2emx/Makefile
==============================================================================
--- python/branches/py3k-struni/PC/os2emx/Makefile	(original)
+++ python/branches/py3k-struni/PC/os2emx/Makefile	Thu May 17 20:20:34 2007
@@ -309,7 +309,6 @@
 		Modules/sha256module.c \
 		Modules/sha512module.c \
 		Modules/_sre.c \
-		Modules/stropmodule.c \
 		Modules/_struct.c \
 		Modules/symtablemodule.c \
 		Modules/termios.c \

Modified: python/branches/py3k-struni/PC/os2emx/config.c
==============================================================================
--- python/branches/py3k-struni/PC/os2emx/config.c	(original)
+++ python/branches/py3k-struni/PC/os2emx/config.c	Thu May 17 20:20:34 2007
@@ -69,7 +69,6 @@
 extern void init_sha();
 extern void init_sha256();
 extern void init_sha512();
-extern void initstrop();
 extern void init_struct();
 extern void inittermios();
 extern void inittime();
@@ -134,7 +133,6 @@
 	{"_sha", init_sha},
 	{"_sha256", init_sha256},
 	{"_sha512", init_sha512},
-	{"strop", initstrop},
 	{"_struct", init_struct},
 	{"termios", inittermios},
 	{"time", inittime},

Modified: python/branches/py3k-struni/PC/os2emx/python25.def
==============================================================================
--- python/branches/py3k-struni/PC/os2emx/python25.def	(original)
+++ python/branches/py3k-struni/PC/os2emx/python25.def	Thu May 17 20:20:34 2007
@@ -1284,9 +1284,6 @@
 ; From python25_s.lib(_sre)
 ;  "init_sre"
 
-; From python25_s.lib(stropmodule)
-;  "initstrop"
-
 ; From python25_s.lib(_struct)
 ;  "init_struct"
 

Modified: python/branches/py3k-struni/PC/os2vacpp/config.c
==============================================================================
--- python/branches/py3k-struni/PC/os2vacpp/config.c	(original)
+++ python/branches/py3k-struni/PC/os2vacpp/config.c	Thu May 17 20:20:34 2007
@@ -31,7 +31,6 @@
 extern void initsignal(void);
 extern void initselect(void);
 extern void init_socket(void);
-extern void initstrop(void);
 extern void initstruct(void);
 extern void inittime(void);
 extern void initthread(void);
@@ -75,7 +74,6 @@
         {"_socket", init_socket},
         {"select", initselect},
 #endif
-        {"strop", initstrop},
         {"struct", initstruct},
         {"time", inittime},
 #ifdef WITH_THREAD

Modified: python/branches/py3k-struni/PC/os2vacpp/makefile
==============================================================================
--- python/branches/py3k-struni/PC/os2vacpp/makefile	(original)
+++ python/branches/py3k-struni/PC/os2vacpp/makefile	Thu May 17 20:20:34 2007
@@ -1059,20 +1059,6 @@
 	 $(PY_INCLUDE)\stringobject.h $(PY_INCLUDE)\sysmodule.h $(PY_INCLUDE)\traceback.h \
 	 $(PY_INCLUDE)\tupleobject.h
 
-stropmodule.obj: $(PY_INCLUDE)\abstract.h $(PY_INCLUDE)\ceval.h \
-	 $(PY_INCLUDE)\classobject.h $(PY_INCLUDE)\cobject.h $(PY_INCLUDE)\complexobject.h \
-	 pyconfig.h $(PY_INCLUDE)\dictobject.h $(PY_INCLUDE)\fileobject.h \
-	 $(PY_INCLUDE)\floatobject.h $(PY_INCLUDE)\funcobject.h $(PY_INCLUDE)\import.h \
-	 $(PY_INCLUDE)\intobject.h $(PY_INCLUDE)\intrcheck.h $(PY_INCLUDE)\listobject.h \
-	 $(PY_INCLUDE)\longobject.h $(PY_INCLUDE)\methodobject.h \
-	 $(PY_INCLUDE)\modsupport.h $(PY_INCLUDE)\moduleobject.h $(PY_INCLUDE)\mymalloc.h \
-	 $(PY_INCLUDE)\myproto.h $(PY_INCLUDE)\object.h $(PY_INCLUDE)\objimpl.h \
-	 $(PY_INCLUDE)\pydebug.h $(PY_INCLUDE)\pyerrors.h $(PY_INCLUDE)\pyfpe.h \
-	 $(PY_INCLUDE)\pystate.h $(PY_INCLUDE)\python.h $(PY_INCLUDE)\pythonrun.h \
-	 $(PY_INCLUDE)\rangeobject.h $(PY_INCLUDE)\sliceobject.h \
-	 $(PY_INCLUDE)\stringobject.h $(PY_INCLUDE)\sysmodule.h $(PY_INCLUDE)\traceback.h \
-	 $(PY_INCLUDE)\tupleobject.h
-
 structmodule.obj: $(PY_INCLUDE)\abstract.h $(PY_INCLUDE)\ceval.h \
 	 $(PY_INCLUDE)\classobject.h $(PY_INCLUDE)\cobject.h $(PY_INCLUDE)\complexobject.h \
 	 pyconfig.h $(PY_INCLUDE)\dictobject.h $(PY_INCLUDE)\fileobject.h \

Modified: python/branches/py3k-struni/PC/os2vacpp/makefile.omk
==============================================================================
--- python/branches/py3k-struni/PC/os2vacpp/makefile.omk	(original)
+++ python/branches/py3k-struni/PC/os2vacpp/makefile.omk	Thu May 17 20:20:34 2007
@@ -772,14 +772,6 @@
 	 pystate.h python.h pythonrun.h rangeobject.h sliceobject.h \
 	 stringobject.h sysmodule.h traceback.h tupleobject.h
 
-stropmodule.obj: abstract.h ceval.h classobject.h cobject.h complexobject.h \
-	 pyconfig.h dictobject.h fileobject.h floatobject.h funcobject.h \
-	 import.h intobject.h intrcheck.h listobject.h longobject.h \
-	 methodobject.h modsupport.h moduleobject.h mymalloc.h myproto.h \
-	 object.h objimpl.h pydebug.h pyerrors.h pyfpe.h pystate.h python.h \
-	 pythonrun.h rangeobject.h sliceobject.h stringobject.h sysmodule.h \
-	 traceback.h tupleobject.h
-
 structmodule.obj: abstract.h ceval.h classobject.h cobject.h \
 	 complexobject.h pyconfig.h dictobject.h fileobject.h floatobject.h \
 	 funcobject.h import.h intobject.h intrcheck.h listobject.h \

Modified: python/branches/py3k-struni/PCbuild/pythoncore.vcproj
==============================================================================
--- python/branches/py3k-struni/PCbuild/pythoncore.vcproj	(original)
+++ python/branches/py3k-struni/PCbuild/pythoncore.vcproj	Thu May 17 20:20:34 2007
@@ -743,9 +743,6 @@
 			RelativePath="..\Objects\stringobject.c">
 		</File>
 		<File
-			RelativePath="..\Modules\stropmodule.c">
-		</File>
-		<File
 			RelativePath="..\Python\structmember.c">
 		</File>
 		<File

Modified: python/branches/py3k-struni/PCbuild8/pythoncore/pythoncore.vcproj
==============================================================================
--- python/branches/py3k-struni/PCbuild8/pythoncore/pythoncore.vcproj	(original)
+++ python/branches/py3k-struni/PCbuild8/pythoncore/pythoncore.vcproj	Thu May 17 20:20:34 2007
@@ -1546,10 +1546,6 @@
 				>
 			</File>
 			<File
-				RelativePath="..\..\Modules\stropmodule.c"
-				>
-			</File>
-			<File
 				RelativePath="..\..\Modules\symtablemodule.c"
 				>
 			</File>

Modified: python/branches/py3k-struni/README
==============================================================================
--- python/branches/py3k-struni/README	(original)
+++ python/branches/py3k-struni/README	Thu May 17 20:20:34 2007
@@ -465,7 +465,7 @@
                 crypt, curses, errno, fcntl, gdbm, grp, imageop,
                 _locale, math, md5, new, operator, parser, pcre,
                 posix, pwd, readline, regex, reop, rgbimg, rotor,
-                select, signal, socket, soundex, strop, struct,
+                select, signal, socket, soundex, struct,
                 syslog, termios, time, timing, zlib, audioop, imageop, rgbimg
 
         3) make SHELL=/usr/local/bin/bash
@@ -521,7 +521,7 @@
 	     _codecs, _locale, _socket, _symtable, _testcapi, _weakref
 	     array, binascii, cmath, cPickle, crypt, cStringIO, dbm
 	     errno, fcntl, grp, math, md5, operator, parser, pwd
-	     rotor, select, struct, strop, syslog, termios,
+	     rotor, select, struct, syslog, termios,
 	     time, timing
 
         4) Once the python executable and library have been built, make
@@ -860,10 +860,6 @@
 errors, disable it -- you're either missing support or need to adjust
 the compilation and linking parameters for that module.
 
-On SGI IRIX, there are modules that interface to many SGI specific
-system libraries, e.g. the GL library and the audio hardware.  These
-modules will not be built by the setup.py script.
-
 In addition to the file Setup, you can also edit the file Setup.local.
 (the makesetup script processes both).  You may find it more
 convenient to edit Setup.local and leave Setup alone.  Then, when

Modified: python/branches/py3k-struni/RISCOS/Makefile
==============================================================================
--- python/branches/py3k-struni/RISCOS/Makefile	(original)
+++ python/branches/py3k-struni/RISCOS/Makefile	Thu May 17 20:20:34 2007
@@ -292,9 +292,6 @@
 @.^.Lib.signal/pyd: @.^.Modules.o.signalmodule s.linktab
 	$(MAKEDLK) -d @.^.Lib.signal/pyd -s s.linktab -o @.^.Modules.o.signalmodule -e initsignal
 
- at .^.Lib.strop/pyd: @.^.Modules.o.stropmodule s.linktab
-	$(MAKEDLK) -d @.^.Lib.strop/pyd -s s.linktab -o @.^.Modules.o.stropmodule -e initstrop
-
 @.^.Lib.struct/pyd: @.^.Modules.o.structmodule s.linktab
 	$(MAKEDLK) -d @.^.Lib.struct/pyd -s s.linktab -o @.^.Modules.o.structmodule -e initstruct
 

Modified: python/branches/py3k-struni/setup.py
==============================================================================
--- python/branches/py3k-struni/setup.py	(original)
+++ python/branches/py3k-struni/setup.py	Thu May 17 20:20:34 2007
@@ -391,8 +391,6 @@
         # math library functions, e.g. sin()
         exts.append( Extension('math',  ['mathmodule.c'],
                                libraries=math_libs) )
-        # fast string operations implemented in C
-        exts.append( Extension('strop', ['stropmodule.c']) )
         # time operations and variables
         exts.append( Extension('time', ['timemodule.c'],
                                libraries=math_libs) )


More information about the Python-3000-checkins mailing list