Staging
v0.5.1
https://github.com/python/cpython

sort by:
Revision Author Date Message Commit Date
71ff8d5 default_3way_compare(): When comparing the pointers, they must be cast to integer types (i.e. Py_uintptr_t, our spelling of C9X's uintptr_t). ANSI specifies that pointer compares other than == and != to non-related structures are undefined. This quiets an Insure portability warning. 20 January 2001, 06:08:10 UTC
7f3e4ad SF patch #103336: Missing cast. 20 January 2001, 05:15:26 UTC
2ad1a44 When running the tests twice, stuck a "Press any key to continue ..." pause between passes: Win9x DOS boxes are limited to 50 lines max, and the result of the first pass scrolls off irretrievably otherwise. Also simplified the goto-laden logic a bit. 20 January 2001, 01:53:43 UTC
9eca235 Various tweaks for Python 2.1a1. 19 January 2001, 23:47:21 UTC
c33a423 Treat an empty kwdict argument the same as a missing one. 19 January 2001, 23:46:28 UTC
726d873 Undefine and redefine PRAGMA_ALIGN_SUPPORTED under Carbon. Apple's "solution" of a funny define makes portable code impossible:-( 19 January 2001, 23:45:57 UTC
c7050d9 Use #if TARGET_API_MAC_CARBON to determine carbon/classic macos, not #ifdef. 19 January 2001, 23:34:06 UTC
fe38525 Make the 'time' argument to the timemodule functions strftime, asctime, ctime, gmtime and localtime optional, defaulting to 'the current time' in all cases. Adjust docs, add news item. Also convert all argument-handling to METH_VARARGS. Closes SF patch #103265. 19 January 2001, 23:16:56 UTC
5566c1c Fixed a bunch of typos caught by Gilles Civario. 19 January 2001, 22:48:33 UTC
0fe5af9 Clarify comments about returning None using a return without an expression; this is not hard to explain! Closes SF bug #129345. 19 January 2001, 22:34:59 UTC
0a5f91f Now that Marc-Andre has retracted unistr(), remove the tests. 19 January 2001, 21:57:52 UTC
48eb9cd A hack to augment sys.path with the build/lib.<platform> directory created by Andrew's setup.py script, *if* we're actually running from the build directory. (The test for that: whether the sys.path[-1] ends in "/Modules".) This has one disadvantage: it imports a fair amount of code from the distutils package, just in order to be able to calculate the correct pathname. See if I care. :-) 19 January 2001, 21:54:59 UTC
2cfa980 Run tests twice by default, first time deleting .pyc/.pyo files. New option "-q" to leave .pyc/.pyo alone. 19 January 2001, 21:43:49 UTC
6f77667 Backed out the unistr() builtin. 19 January 2001, 21:36:19 UTC
a8e14d4 Use a saner test filename, to work on Windows. 19 January 2001, 21:06:50 UTC
4bf9c20 Delete the bytecode from the library and tests before running the tests for the first time -- like the Unix Makefile does. This avoids not catching problems in the bytecode generator and/or bytecode marshalling. 19 January 2001, 21:00:04 UTC
75e0058 "make test" was still broken when building in a subdirectory: Andrew's fix set PYTHONPATH to something starting with $(srcdir)/build/lib.... The use of $(srcdir) was wrong here, it should be ./build/lib... 19 January 2001, 20:21:59 UTC
ccc2e3d OK, checking in patch 103329. Please check it against your nearest pop server -- mine doesn't support APOP (I checked I'm getting the same error message, though) 19 January 2001, 19:56:27 UTC
2e9b396 Add some regression tests of coredump bugs in funcobject.c 2.31. Also added a test of a coredump that would occur when del'ing func_defaults (put here for convenience). 19 January 2001, 19:55:12 UTC
0395fdd Application and elaboration of patch #103305 to fix core dumps when del'ing func.func_dict. I took the opportunity to also clean up some other nits with the code, namely core dumps when del'ing func_defaults and KeyError instead of AttributeError when del'ing a non-existant function attribute. Specifically, func_memberlist: Move func_dict and __dict__ into here instead of special casing them in the setattro and getattro methods. I don't remember why I took them out of here before I first uploaded the PEP 232 patch. :/ func_getattro(): No need to special case __dict__/func_dict since their now in the func_memberlist and PyMember_Get() should Do The Right Thing (i.e. transforms NULL values into Py_None). func_setattro(): Document the intended behavior of del'ing or setting to None one of the special func_* attributes. I.e.: func_code - can only be set to a code object. It can't be del'd or set to None. func_defaults - can be del'd. Can only be set to None or a tuple. func_dict - can be del'd. Can only be set to None or a dictionary. Fix core dumps and incorrect exceptions as described above. Also, if we're del'ing an arbitrary function attribute but func_dict is NULL, don't create func_dict before discovering that we'll get an AttributeError anyway. 19 January 2001, 19:53:29 UTC
7c1e4bb gethash/cmpname both looked beyond the end of the character name. This patch makes u"\N{x}" a bit less dependent on pure luck... 19 January 2001, 19:45:02 UTC
5458fcf Repair "selective cut-&-paste" screwup. 19 January 2001, 19:17:46 UTC
a1374e4 Change verify() function to raise TestFailed, not AssertionError. (I realize that I didn't really test this, because all the tests succeed, so verify() never raised an AssertionError -- but the test suite still succeeds, so I'm not too worried.) 19 January 2001, 19:01:56 UTC
e7c8732 GvR pointed out the correct way to check for statically built modules; sys.builtin_module_names Add SSL directories in /usr/contrib/ for FreeBSD 19 January 2001, 16:58:21 UTC
10b0418 Bump __version__; add authorship note for the BaseServer patch. 19 January 2001, 16:45:46 UTC
f5c9e86 Add Jason Tishler to the ACKS file 19 January 2001, 16:29:28 UTC
989835c Patch #103220 from Jason Tishler: This patch adds support for Cygwin to util.get_platform(). A Cygwin specific case is needed due to the format of Cygwin's uname command, which contains '/' characters. 19 January 2001, 16:26:12 UTC
ae89af9 Minor patch from Thomas Gellekum: * Deletes the Panel_NoArgReturnStringFunction() macro, which isn't used anymore * Adjusts two comments. 19 January 2001, 15:35:26 UTC
95f1e6f new unicode name database (~160k) 19 January 2001, 11:52:33 UTC
2acb54a improved the ucnhash test a bit 19 January 2001, 11:13:46 UTC
ee865c6 added "getcode" and "getname" methods to the ucnhash module (they're probably more useful for the test code than for any applications, but one never knows...) 19 January 2001, 11:00:42 UTC
d5d2cd1 Color all word instances of "as" after "import", & on the same line, as if keywords. Cheap approximation to the truth. 19 January 2001, 10:41:49 UTC
0fdb90c refactored the unicodeobject/ucnhash interface, to hide the implementation details inside the ucnhash module. also cleaned up the unicode copyright blurb a little; Secret Labs' internal revision history isn't that interesting... 19 January 2001, 09:45:02 UTC
a2bf270 Update the example DLL instructions for 2.1. Add example.def to the MSVC project file (as the instructions always recommended doing). 19 January 2001, 08:45:48 UTC
cc58363 urllib.py very recently changed to produce uppercase escapes, but no corresponding changes were made to its std test. 19 January 2001, 07:00:08 UTC
8880f6d Whitespace normalization. 19 January 2001, 06:12:17 UTC
1a8a53d test_urllib is failing on Windows. I don't know why, but I can at least change the test to give a clue about *where* it's failing. 19 January 2001, 06:06:37 UTC
983874d Use constructor form of "raise"; normalize <wink> docstrings. 19 January 2001, 05:59:21 UTC
d93c0b6 Jeremy's patch #103323: trivial tests of all untested modules. 19 January 2001, 05:41:36 UTC
9d593a5 This still mentioned IdlePrefs.py as the place to edit color preferences. It is now in config.txt or ~/.idle. 19 January 2001, 03:30:58 UTC
1a34c87 make the output of _test() suitable for use in the regression test 19 January 2001, 03:30:22 UTC
e27a7b8 Anonymous SF bug 129288: "The python 2.0 urllib has %%%x as a format when quoting forbidden characters. There are scripts out there that break with lower case, therefore I guess %%%X should be used." I agree, so am fixing this. 19 January 2001, 03:28:15 UTC
e1bb5f9 make error msg more informative when test of exec fails 19 January 2001, 03:26:33 UTC
047e2c9 add test for SyntaxError on def f(a): global a 19 January 2001, 03:25:56 UTC
c862cf4 clearer error messages for apply() and "no locals" 19 January 2001, 03:25:05 UTC
b4ed8c4 add test of bastion and rexec to std regression test suite 19 January 2001, 03:22:48 UTC
e36f778 This patch introduces an extra pass to the compiler that generates a symbol table for each top-level compilation unit. The information in the symbol table allows the elimination of the later optimize() pass; the bytecode generation emits the correct opcodes. The current version passes the complete regression test, but may still contain some bugs. It's a fairly substantial revision. The current code adds an assert() and a test that may lead to a Py_FatalError(). I expect to remove these before 2.1 beta 1. The symbol table (struct symtable) is described in comments in the code. The changes affects the several com_XXX() functions that were used to emit LOAD_NAME and its ilk. The primary interface for this bytecode is now com_addop_varname() which takes a kind and a name, where kind is one of VAR_LOAD, VAR_STORE, or VAR_DELETE. There are many other smaller changes: - The name mangling code is no longer contained in ifdefs. There are two functions that expose the mangling logical: com_mangle() and symtable_mangle(). - The com_error() function can accept NULL for its first argument; this is useful with is_constant_false() is called during symbol table generation. - The loop index names used by list comprehensions have been changed from __1__ to [1], so that they can not be accessed by Python code. - in com_funcdef(), com_argdefs() is now called before the body of the function is compiled. This provides consistency with com_lambdef() and symtable_funcdef(). - Helpers do_pad(), dump(), and DUMP() are added to aid in debugging the compiler. 19 January 2001, 03:21:30 UTC
19fe14e Derivative of patch #102549, "simpler, faster(!) implementation of string.join". Also fixes two long-standing bugs (present in 2.0): 1. .join() didn't check that the result size fit in an int. 2. string.join(s) when len(s)==1 returned s[0] regardless of s[0]'s type; e.g., "".join([3]) returned 3 (overly optimistic optimization). I resisted a keen temptation to make .join() apply str() automagically. 19 January 2001, 03:03:47 UTC
e3d6e41 Revert a single line of my large change earlier today; this broke the ability to build in a subdirectory. The additional directory is unfortunately redundant when *not* building in a subdirectory, which is why I took it out. 19 January 2001, 02:50:34 UTC
fc53c13 Checking in a slight variation of Barry's patch 103303. 19 January 2001, 02:41:41 UTC
8dabbf1 Fix for the bug in complex() just reported by Ping. 19 January 2001, 02:11:59 UTC
90cb906 SF Patch #102980, by Luke Kenneth Casson Leighton: BaseServer class for SocketServer.py (inherited by TCPServer) Luke wrote: The socketserver code, with a little bit of tweaking, can be made sufficiently general to service "requests" of any kind, not just by sockets. The BaseServer class was created, for example, to poll a table in a MYSQL database every 2 seconds. each entry in the table can be allocated a Handler which deals with the entry. With this patch, using BaseServer and ThreadedServer classes, the creation of the server that reads and handles MySQL table entries instead of a socket was utterly trivial: about 50 lines of python code. You may consider this code to be utterly useless [why would anyone else want to do anything like this???] - you are entitled to your opinion. if you think so, then think of this: have you considered how to cleanly add SSL to the TCPSocketServer? What about using shared memory as the communications mechanism for a server, instead of sockets? What about communication using files? The SocketServer code is extremely good every useful. it's just that as it stands, it is tied to sockets, which is not as useful. I heartily approve of this idea. 19 January 2001, 00:44:41 UTC
3fa560b SF Patch #103188, by Donn Cave: BeOS/ar-fake support for extra libraries. (I have no way to test this, I just trust Donn.) 19 January 2001, 00:31:10 UTC
7150a77 SF Patch #103185, by jlt63: Some more standard modules cleanup for Cygwin Support building this as a DLL under Cygwin. 19 January 2001, 00:29:06 UTC
6915c4d Support building this as a DLL under Cygwin. 19 January 2001, 00:28:08 UTC
fc5ce61 SF Patch #103250, by pj99: Optimize a strspn() out of startup. Minor startup speedup: avoid a call to strspn(). 19 January 2001, 00:24:06 UTC
2312024 Add test that ensures hash() of objects defining __cmp__ or __eq__ but not __hash__ raises TypeError. 18 January 2001, 23:47:15 UTC
65e8bd7 Rich comparisons fallout: instance_hash() should check for both __cmp__ and __eq__ absent before deciding to do a quickie based on the object address. (Tim Peters discovered this.) 18 January 2001, 23:46:31 UTC
0c6614c Add test that ensures hash([]) and hash({}) raise TypeError. 18 January 2001, 23:36:14 UTC
41c3244 Rich comparisons fallout: PyObject_Hash() should check for both tp_compare and tp_richcompare NULL before deciding to do a quickie based on the object address. (Tim Peters discovered this.) 18 January 2001, 23:33:37 UTC
a3af41d Changes to recursive-object comparisons, having to do with a test case I found where rich comparison of unequal recursive objects gave unintuituve results. In a discussion with Tim, where we discovered that our intuition on when a<=b should be true was failing, we decided to outlaw ordering comparisons on recursive objects. (Once we have fixed our intuition and designed a matching algorithm that's practical and reasonable to implement, we can allow such orderings again.) - Refactored the recursive-object comparison framework; more is now done in the support routines so less needs to be done in the calling routines (even at the expense of slowing it down a bit -- this should normally never be invoked, it's mostly just there to avoid blowing up the interpreter). - Changed the framework so that the comparison operator used is also stored. (The dictionary now stores triples (v, w, op) instead of pairs (v, w).) - Changed the nesting limit to a more reasonable small 20; this only slows down comparisons of very deeply nested objects (unlikely to occur in practice), while speeding up comparisons of recursive objects (previously, this would first waste time and space on 500 nested comparisons before it would start detecting recursion). - Changed rich comparisons for recursive objects to raise a ValueError exception when recursion is detected for ordering oprators (<, <=, >, >=). Unrelated change: - Moved PyObject_Unicode() to just under PyObject_Str(), where it belongs. MAL's patch must've inserted in a random spot between two functions in the file -- between two helpers for rich comparison... 18 January 2001, 22:07:06 UTC
4e8db2e Since I'm about to check in a change to the recursion-detection code for comparisons that outlaws requets for ordering on recursive data structures, remove the tests for ordering recursive data structures. 18 January 2001, 21:52:26 UTC
95695e2 Patch #103313: Fixes "make test" by adding a little file named "platform", running the Python binary to create it, and then using it to set PYTHONPATH. 18 January 2001, 21:20:56 UTC
5bbc7b9 Patch from Barry: gets rid of two unused imports, wraps to 80chars, and adds some really hacky setting of compiler options when CC and LDSHARED are given on the make command line. (The Distutils should probably provide a utility function to automatically handle a number of common environment variables) 18 January 2001, 20:39:34 UTC
befc97c Clarifications. 18 January 2001, 19:01:39 UTC
fbe7376 Sizable reorganization of how header and library files are found Check additional include directories for SSL Don't build modules that are linked into the Python binary statically Factored out the detection of Tkinter out into a method, since it's the most complicated module to set up Simplify the logic for detecting Tkinter 18 January 2001, 18:44:20 UTC
bc0b260 Minor markup cleaning, and one required fix in the unistr() description. 18 January 2001, 18:09:07 UTC
697a0b0 Use openssl/*.h to include the OpenSSL header files 18 January 2001, 17:41:41 UTC
2f1064c A dumb test for the dumdbm module. 18 January 2001, 16:46:52 UTC
890f209 Add test for comparing recursive data types. 18 January 2001, 16:21:57 UTC
1c2fb9c Make the original, makesetup-based, targets for building shared modules available as "oldsharedmods" and "oldsharedinstall". You'll need to get a copy of the full Setup.dist out of the CVS for them to actually do much. 18 January 2001, 16:10:56 UTC
753a68e Bite the bullet: use rich comparisons here, too. 18 January 2001, 16:09:55 UTC
9710bd5 Add test for misbehaving rich comparisons (always returning 0) -- these fall back to __cmp__. 18 January 2001, 15:55:59 UTC
c4a6e8b Rich comparison tests 18 January 2001, 15:48:05 UTC
ab782dd Document rich comparisons. 18 January 2001, 15:17:06 UTC
67345eb Updated for 2.1; removed references to BeOpen.com and PythonLabs. Added Copyright GvR. 18 January 2001, 14:51:12 UTC
d94ade1 Add my name to the copyright notice. 18 January 2001, 14:50:11 UTC
71500c8 Add note about copyright ownership and license situation. 18 January 2001, 14:39:49 UTC
a88479f - Add note about complex numbers. - Changed description of rich comparisons to emphasize that < and > (etc.) are each other's reflection. Also use this word in the note about the demise of __rcmp__. 18 January 2001, 14:28:08 UTC
9483bed correct typo - closes bug #129205 18 January 2001, 10:44:08 UTC
3a9582f Fix the example (it didn't seem to reflect reality). 18 January 2001, 07:50:17 UTC
6f477a6 Remove build/ subdirectory in "clean" target, not "clobber" 18 January 2001, 04:40:27 UTC
691e0e9 Variant of SF patch 103252: Startup optimize: read *.pyc as string, not with getc(). 18 January 2001, 04:39:16 UTC
60f42b5 Move distributed and duplicated config for stat() and fstat() into pyport.h. 18 January 2001, 03:03:16 UTC
d2bf3b7 Whitespace normalization. Leaving tokenize_tests.py alone for now. 18 January 2001, 02:22:22 UTC
be4cbb1 Use rich comparisons to fulfill an old wish: complex numbers now raise exceptions when compared using <, <=, > or >=. NOTE: This is a tentative change: this means that cmp() involving complex numbers will raise an exception when the numbers differ, and that in turn means that e.g. dictionaries and certain other compounds (e.g. UserLists) containing complex numbers can't be compared either. So we'll have to decide whether this is acceptable. The alpha test cycle is a good time to keep an eye on this! 18 January 2001, 01:12:39 UTC
9d19cb8 Same treatment as listobject.c: - In count(), remove(), index(): call RichCompare(Py_EQ). - Get rid of array_compare(), in favor of new array_richcompare() (a near clone of list_compare()). - Aligned items in array_methods initializer and comments for type struct initializer. - Folded a few long lines. 18 January 2001, 01:02:55 UTC
b932420 Rich comparisons: - Use PyObject_RichCompareBool() when comparing keys; this makes the error handling cleaner. - There were two implementations for dictionary comparison, an old one (#ifdef'ed out) and a new one. Got rid of the old one, which was abandoned years ago. - In the characterize() function, part of dictionary comparison, use PyObject_RichCompareBool() to compare keys and values instead. But continue to use PyObject_Compare() for comparing the final (deciding) elements. - Align the comments in the type struct initializer. Note: I don't implement rich comparison for dictionaries -- there doesn't seem to be much to be gained. (The existing comparison already decides that shorter dicts are always smaller than longer dicts.) 18 January 2001, 00:39:02 UTC
f77bc62 Same treatment as listobject.c: - tuplecontains(): call RichCompare(Py_EQ). - Get rid of tuplecompare(), in favor of new tuplerichcompare() (a clone of list_compare()). - Aligned the comments for large struct initializers. 18 January 2001, 00:00:53 UTC
24f67d5 Fix a leak in instance_coerce(). This was introduced by Neil's earlier coercion changes, not by rich comparisons. When a coercion function returns 1 (meaning it cannot do it), it should not INCREF the arguments. When no __coerce__() method was found, instance_coerce() originally returned 0, pretending it did it. Neil changed the return value to 1, more accurately reflecting that it didn't do anything, but forgot to take out the two INCREF calls. 17 January 2001, 23:43:43 UTC
97c9640 Windows: 2.1a1 changes so Python runs again. Note that the python20 subproject is gone, replaced by the new pythoncore subproject. 17 January 2001, 23:23:13 UTC
6425efe The signal module has to be compiled statically, so add it to Setup.dist and remove support for it from setup.py 17 January 2001, 22:17:16 UTC
65e1cea Convert to rich comparisons: - sort's docompare() calls RichCompare(Py_LT). - list_contains(), list_index(), listcount(), listremove() call RichCompare(Py_EQ). - Get rid of list_compare(), in favor of new list_richcompare(). The latter does some nice shortcuts, like when == or != is requested, it first compares the lengths for trivial accept/reject. Then it goes over the items until it finds an index where the items differe; then it does more shortcut magic to minimize the number of additional comparisons. - Aligned the comments for large struct initializers. 17 January 2001, 22:11:59 UTC
7d64577 Bump up version number. 17 January 2001, 21:59:33 UTC
e7e2ece - compile struct module - get version number from sys.version_info 17 January 2001, 21:58:00 UTC
f785042 a bold attempt to fix things broken by MAL's verify patch: import 'verify' iff it's used by a test module... 17 January 2001, 21:51:36 UTC
f27cc5b Marc-Andre must not have run these tests -- they used verify() but didn't import it. Also got rid of some inconsistent spaces inside parentheses in test_gzip.py. 17 January 2001, 21:43:06 UTC
7226429 Get rid of the declaration for _PyCompareState_Key. 17 January 2001, 21:28:08 UTC
44a6ff6 Get rid of the initialization of _PyCompareState_Key. 17 January 2001, 21:27:36 UTC
2ffbf6b Deal properly (?) with comparing recursive datastructures. - Use the compare nesting level and in-progress dictionary properly in PyObject_RichCompare(). - Change the in-progress code to use static variables instead of globals (both the nesting level and the key for the thread dict were globals but have no reason to be globals; the key can even be a function-static variable in get_inprogress_dict()). - Rewrote try_rich_to_3way_compare() to benefit from the similarity of the three cases, making it table-driven. - In try_rich_to_3way_compare(), test for EQ before LT and GT. This turns out essential when comparing recursive UserList instances; with the old code, these would recurse into rich comparison three times for each nesting level up to NESTING_LIMIT/2, making the total number of calls in the order of 3**(NESTING_LIMIT/2)! NOTE: I'm not 100% comfortable with this. It works for the standard test suite (which compares a few trivial recursive data structures only), but I'm not sure that the in-progress dictionary is used properly by the rich comparison code. Jeremy suggested that maybe the operation should be included in the dict. Currently I presume that objects in the dict are equal unless proven otherwise, and I set the outcome for the rich comparison accordingly: true for operators EQ, LE, GE, and false for the other three. But Jeremy seems to think that there may be counter-examples where this doesn't do the right thing. 17 January 2001, 21:27:02 UTC
back to top