summaryrefslogtreecommitdiffstats
path: root/Python
Commit message (Collapse)AuthorAgeFilesLines
* Quick fix by Mark Hammond -- Yakov changed a dprintf call but it wasGuido van Rossum2000-05-051-1/+1
| | | | referencing an undefined variable, so we better change it back.
* Fast NonRecursiveMutex support by Yakov Markovitch, markovitch@iso.ru,Guido van Rossum2000-05-041-25/+113
| | | | | | | | | | | | | | | | | | who wrote: Here's the new version of thread_nt.h. More particular, there is a new version of thread lock that uses kernel object (e.g. semaphore) only in case of contention; in other case it simply uses interlocked functions, which are faster by the order of magnitude. It doesn't make much difference without threads present, but as soon as thread machinery initialised and (mostly) the interpreter global lock is on, difference becomes tremendous. I've included a small script, which initialises threads and launches pystone. With original thread_nt.h, Pystone results with initialised threads are twofold worse then w/o threads. With the new version, only 10% worse. I have used this patch for about 6 months (with threaded and non-threaded applications). It works remarkably well (though I'd desperately prefer Python was free-threaded; I hope, it will soon).
* Add useless 'return 1' to prtrace() to shut up VC++.Guido van Rossum2000-05-041-0/+1
|
* Vladimir Marangozov's long-awaited malloc restructuring.Guido van Rossum2000-05-037-19/+18
| | | | | | | | | | For more comments, read the patches@python.org archives. For documentation read the comments in mymalloc.h and objimpl.h. (This is not exactly what Vladimir posted to the patches list; I've made a few changes, and Vladimir sent me a fix in private email for a problem that only occurs in debug mode. I'm also holding back on his change to main.c, which seems unnecessary to me.)
* A bit of cleanup:Guido van Rossum2000-05-031-34/+5
| | | | | | | | | - When 'import exceptions' fails, don't suggest to use -v to print the traceback; this doesn't actually work. - Remove comment about fallback to string exceptions. - Remove a PyErr_Occurred() check after all is said and done that can never trigger. - Remove static function newstdexception() which is no longer called.
* Brian Hooper <brian_takashi@hotmail.com>:Fred Drake2000-05-031-0/+32
| | | | | | | Added 'u' and 'u#' tags for PyArg_ParseTuple - these turn a PyUnicodeObject argument into a Py_UNICODE * buffer, or a Py_UNICODE * buffer plus a length with the '#'. Also added an analog to 'U' for Py_BuildValue.
* PyErr_GivenExceptionMatches(): Check for err==NULL and exc==NULL andBarry Warsaw2000-05-021-2/+6
| | | | | | | | | | return 0 (exceptions don't match). This means that if an ImportError is raised because exceptions.py can't be imported, the interpreter will exit "cleanly" with an error message instead of just core dumping. PyErr_SetFromErrnoWithFilename(), PyErr_SetFromWindowsErrWithFilename(): Don't test on Py_UseClassExceptionsFlag.
* _PyBuiltin_Init_2(): Remove the misleading comment.Barry Warsaw2000-05-021-1/+0
|
* initerrors(): Remove this function. String-based standard exceptionsBarry Warsaw2000-05-021-96/+4
| | | | | | | | | | | | | are no longer supported (i.e. -X option is removed). _PyBuiltin_Init_1(): Don't call initerrors(). This does mean that it is possible to raise an ImportError before that exception has been initialized, say because exceptions.py can't be found, or contains bogosity. See changes to errors.c for how this is handled. _PyBuiltin_Init_2(): Don't test Py_UseClassExceptionsFlag, just go ahead and initialize the class-based standard exceptions. If this fails, we throw a Py_FatalError.
* Py_UseClassExceptionsFlag is deprecated. We keep the C variable for CBarry Warsaw2000-05-021-1/+1
| | | | API consistency, but nothing sets it or checks it now.
* Ignore a bunch of generated files.Barry Warsaw2000-05-021-0/+2
|
* Marc-Andre Lemburg:Guido van Rossum2000-05-011-8/+20
| | | | | | | | | | | Changed all references to the MAGIC constant to use a global pyc_magic instead. This global is initially set to MAGIC, but can be changed by the _PyImport_Init() function to provide for special features implemented in the compiler which are settable using command line switches and affect the way PYC files are generated. Currently this change is only done for the -U flag.
* Marc-Andre Lemburg:Guido van Rossum2000-05-011-0/+1
| | | | Added Py_UnicodeFlag for use by the -U command line option.
* Marc-Andre Lemburg:Guido van Rossum2000-05-011-1/+1
| | | | | | | Support for the new -U command line option option: with the option enabled the Python compiler interprets all "..." strings as u"..." (same with r"..." and ur"...").
* Robin Becker: The following patch seems to fix a module case bug inGuido van Rossum2000-05-011-4/+4
| | | | | 1.6a2 caused by wrong return values in routine allcaps83. [GvR: I also changed the case for end-s>8 to return 0.]
* As Marc-Andre Lemburg points out, the magic number needs to changeGuido van Rossum2000-04-281-1/+1
| | | | because we've added Unicode marshalling to the repertoire.
* Charles G Waldman:Guido van Rossum2000-04-281-36/+49
| | | | | | | | Follow a suggestion in an /*XXX*/ comment [in com_add()] to speed up compilation by using supplemental dictionaries to keep track of names and constants, eliminating quadratic behavior. With this patch in place, the time to import a 5000-line file with lots of constants [at the global level] is reduced from 20 seconds to under 3 on my system.
* Brian Hooper <brian_takashi@hotmail.com>:Fred Drake2000-04-281-1/+31
| | | | | | | | | | | Here's a patch which changes modsupport to add 'u' and 'u#', to support building Unicode objects from a null-terminated Py_UNICODE *, and a Py_UNICODE * with length, respectively. [Conversion from 'U' to 'u' by Fred, based on python-dev comments.] Note that the use of None for NULL values of the Py_UNICODE* value is still in; I'm not sure of the conclusion on that issue.
* Mark Hammond: For Windows debug builds, we now only offer to dumpGuido van Rossum2000-04-271-1/+5
| | | | | | remaining object references if the environment variable PYTHONDUMPREFS exists. The default behaviour caused problems for background or otherwise invisible processes that use the debug build of Python.
* Marc-Andre Lemburg:Guido van Rossum2000-04-271-2/+7
| | | | | | | | Fixed a memory leak found by Fredrik Lundh. Instead of PyUnicode_AsUTF8String() we now use _PyUnicode_AsUTF8String() which returns the string object without incremented refcount (and assures that the so obtained object remains alive until the Unicode object is garbage collected).
* Jack Jansen: The new version of the GUSI i/o library on the MacintoshGuido van Rossum2000-04-242-5/+5
| | | | has a few slightly different calls from the old one.
* Jack Jansen: Posix threads are now supported on the Macintosh too.Guido van Rossum2000-04-241-0/+4
|
* Charles Waldman writes:Guido van Rossum2000-04-211-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | | """ Running "test_extcall" repeatedly results in memory leaks. One of these can't be fixed (at least not easily!), it happens since this code: def saboteur(**kw): kw['x'] = locals() d = {} saboteur(a=1, **d) creates a circular reference - d['x']['d']==d The others are due to some missing decrefs in ceval.c, fixed by the patch attached below. Note: I originally wrote this without the "goto", just adding the missing decref's where needed. But I think the goto is justified in keeping the executable code size of ceval as small as possible. """ [I think the circular reference is more like kw['x']['kw'] == kw. --GvR]
* Fix PR#7 comparisons of recursive objectsJeremy Hylton2000-04-141-0/+2
| | | | | Note that comparisons of deeply nested objects can still dump core in extreme cases.
* Simplify creation of the version_info value for clarity, perFred Drake2000-04-131-6/+7
| | | | suggestion from Greg Stein.
* Capitulate, changing version_info to a 5-tuple:Fred Drake2000-04-131-12/+18
| | | | | | major, minor, micro, level, serial Values are now monotonically increasing with each new release.
* Define version_info to be a tuple (major, minor, micro, level); levelFred Drake2000-04-131-1/+19
| | | | | | is a string "a2", "b1", "c1", or '' for a final release. Added version_info and hexversion to the module docstring.
* M.-A. Lemburg <mal@lemburg.com>:Fred Drake2000-04-131-2/+23
| | | | | Fixed problem with Unicode string concatenation: u = (u"abc" u"abc") previously dumped core.
* When refering to Unicode characters in exception messages andFred Drake2000-04-131-5/+5
| | | | | docstrings, the documentation guidelines call for "Unicode", not "unicode". Comply.
* ord: provide better error messagesJeremy Hylton2000-04-121-8/+19
|
* Marc-Andre Lemburg:Guido van Rossum2000-04-111-4/+17
| | | | | | | Added special case to unicode(): when being passed a Unicode object as first argument, return the object as-is. Raises an exception when given a Unicode object *and* an encoding name.
* Patch by Vladimir Marangozov to include the function name whenGuido van Rossum2000-04-101-2/+6
| | | | | | | comparing code objects. This give sless surprising results in -Optimized code. It also sorts code objects by name, now. [I changed the patch to hash() slightly to touch fewer lines.]
* Skip Montanaro: add string precisions to calls to PyErr_FormatGuido van Rossum2000-04-102-2/+4
| | | | to prevent possible buffer overruns.
* Vladimir Marangozov: This fixes the line number in the stringGuido van Rossum2000-04-071-4/+2
| | | | | representation of code objects when optimization is on (python -O). It was always reported as -1 instead of the real lineno.
* Marc-Andre's third try at this bulk patch seems to work (except thatGuido van Rossum2000-04-052-13/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | his copy of test_contains.py seems to be broken -- the lines he deleted were already absent). Checkin messages: New Unicode support for int(), float(), complex() and long(). - new APIs PyInt_FromUnicode() and PyLong_FromUnicode() - added support for Unicode to PyFloat_FromString() - new encoding API PyUnicode_EncodeDecimal() which converts Unicode to a decimal char* string (used in the above new APIs) - shortcuts for calls like int(<int object>) and float(<float obj>) - tests for all of the above Unicode compares and contains checks: - comparing Unicode and non-string types now works; TypeErrors are masked, all other errors such as ValueError during Unicode coercion are passed through (note that PyUnicode_Compare does not implement the masking -- PyObject_Compare does this) - contains now works for non-string types too; TypeErrors are masked and 0 returned; all other errors are passed through Better testing support for the standard codecs. Misc minor enhancements, such as an alias dbcs for the mbcs codec. Changes: - PyLong_FromString() now applies the same error checks as does PyInt_FromString(): trailing garbage is reported as error and not longer silently ignored. The only characters which may be trailing the digits are 'L' and 'l' -- these are still silently ignored. - string.ato?() now directly interface to int(), long() and float(). The error strings are now a little different, but the type still remains the same. These functions are now ready to get declared obsolete ;-) - PyNumber_Int() now also does a check for embedded NULL chars in the input string; PyNumber_Long() already did this (and still does) Followed by: Looks like I've gone a step too far there... (and test_contains.py seem to have a bug too). I've changed back to reporting all errors in PyUnicode_Contains() and added a few more test cases to test_contains.py (plus corrected the join() NameError).
* Marc-Andre Lemburg: Error reporting in the codec registry and lookupGuido van Rossum2000-03-311-12/+46
| | | | mechanism is enhanced to be more informative.
* Thomas Heller fixes a typo in an error message.Guido van Rossum2000-03-311-1/+1
|
* rename args variable in CALL_FUNCTION to callargs (avoids nameJeremy Hylton2000-03-311-8/+11
| | | | | | override) add missing DECREFs in error handling code of CALL_FUNCTION
* Change traceback error message to "most recent call last" fromGuido van Rossum2000-03-311-1/+1
| | | | "innermost last". The latter was mysterious to newbies.
* Use modern PyArg_ParseTuple style, with function names.Guido van Rossum2000-03-311-8/+8
| | | | (Mostly.)
* Use modern PyArg_ParseTuple style, with function names.Guido van Rossum2000-03-311-8/+8
|
* Two fixes for extended call syntax:Jeremy Hylton2000-03-301-12/+21
| | | | | | | If a non-tuple sequence is passed as the *arg, convert it to a tuple before checking its length. If named keyword arguments are used in combination with **kwargs, make a copy of kwargs before inserting the new keys.
* eval_code2(): Oops, in the last checkin, we shouldn't check forBarry Warsaw2000-03-291-6/+2
| | | | | PyErr_Occurred(), just set x=NULL and break. Oh, and make Jeremy stop nagging me about the "special" indentation for this block.
* eval_code2(): In the extended calling syntax opcodes, you must checkBarry Warsaw2000-03-291-0/+8
| | | | | | the return value of PySequence_Length(). If an exception occurred, the returned length will be -1. Make sure this doesn't get obscurred, and that the bogus length isn't used.
* remove reference (vestigal) to CALL_FUNCTION_STARJeremy Hylton2000-03-291-1/+1
|
* slightly modified version of Greg Ewing's extended call syntax patchJeremy Hylton2000-03-283-142/+223
| | | | | | | | | | | | | | | | | | | | | | | executive summary: Instead of typing 'apply(f, args, kwargs)' you can type 'f(*arg, **kwargs)'. Some file-by-file details follow. Grammar/Grammar: simplify varargslist, replacing '*' '*' with '**' add * & ** options to arglist Include/opcode.h & Lib/dis.py: define three new opcodes CALL_FUNCTION_VAR CALL_FUNCTION_KW CALL_FUNCTION_VAR_KW Python/ceval.c: extend TypeError "keyword parameter redefined" message to include the name of the offending keyword reindent CALL_FUNCTION using four spaces add handling of sequences and dictionaries using extend calls fix function import_from to use PyErr_Format
* Marc-Andre Lemburg:Guido van Rossum2000-03-281-2/+2
| | | | | | | | | | | | | | | The attached patch set includes a workaround to get Python with Unicode compile on BSDI 4.x (courtesy Thomas Wouters; the cause is a bug in the BSDI wchar.h header file) and Python interfaces for the MBCS codec donated by Mark Hammond. Also included are some minor corrections w/r to the docs of the new "es" and "es#" parser markers (use PyMem_Free() instead of free(); thanks to Mark Hammond for finding these). The unicodedata tests are now in a separate file (test_unicodedata.py) to avoid problems if the module cannot be found.
* Typo fixed by Mark Hammond.Guido van Rossum2000-03-281-2/+2
|
* Marc-Andre Lemburg:Guido van Rossum2000-03-241-0/+118
| | | | | | | | | | Attached you find the latest update of the Unicode implementation. The patch is against the current CVS version. It includes the fix I posted yesterday for the core dump problem in codecs.c (was introduced by my previous patch set -- sorry), adds more tests for the codecs and two new parser markers "es" and "es#".
* Marc-Andre Lemburg:Guido van Rossum2000-03-241-8/+6
| | | | | | Andy Robinson noted a core dump in the codecs.c file. This was introduced by my latest patch which fixed a memory leak in codecs.c. The bug causes all successful codec lookups to fail.