summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Added WeakLink...Generator classes (should have done that ages ago). These ↵Jack Jansen2001-07-012-0/+22
| | | | | | check the c-function pointer for being NULL before calling it and raise UnimplementedError if it is. This allows system libs to be weak-linked, thereby allowing us to generate functions that are only available on some OS versions without getting a NULL dereference if the function isn't available.
* - Use weaklink generators so we can support OSX-only calls without crashing ↵Jack Jansen2001-07-012-5/+41
| | | | | | on OS9. - Convert CFString to/from Python strings. Currently always MacRoman, to be fixed later (as is unicode support). Python->CFString conversion is automatic.
* Derive an industrial-strength conjoin() via cross-recursion loop unrolling,Tim Peters2001-06-301-9/+83
| | | | and fiddle the conjoin tests to exercise all the new possible paths.
* Turns out Neil didn't intend for *all* of his gen-branch work to getTim Peters2001-06-294-46/+78
| | | | | | | | | | | | | | | | | | | | committed. tokenize.py: I like these changes, and have tested them extensively without even realizing it, so I just updated the docstring and the docs. tabnanny.py: Also liked this, but did a little code fiddling. I should really rewrite this to *exploit* generators, but that's near the bottom of my effort/benefit scale so doubt I'll get to it anytime soon (it would be most useful as a non-trivial example of ideal use of generators; but test_generators.py has already grown plenty of food-for-thought examples). inspect.py: I'm sure Ping intended for this to continue running even under 1.5.2, so I reverted this to the last pre-gen-branch version. The "bugfix" I checked in in-between was actually repairing a bug *introduced* by the conversion to generators, so it's OK that the reverted version doesn't reflect that checkin.
* Use the more conventional "self" as the name of the self parameter in anFred Drake2001-06-291-1/+1
| | | | example. It actually confused a reader.
* Correct a markup error for an accented character.Fred Drake2001-06-291-1/+1
| | | | Reported by Milan Zamazal <pdm@zamazal.org>.
* Removed some stray periods, and fix up a number of visible markupFred Drake2001-06-291-18/+19
| | | | | | | consistency errors (mostly omitted "()" at the end of function and method names). Reported by Milan Zamazal <pdm@zamazal.org>.
* Two more names.Fred Drake2001-06-291-0/+2
|
* SourceForge bug #437041:Fred Drake2001-06-291-8/+8
| | | | | Use a portable format in the example that creates a timestamp suitable for use in email, also updating it and the footnote from RFC 822 to RFC 2822.
* Simplify an example based on comment from Thomas Holenstein <thomas@hex.ch>:Fred Drake2001-06-291-4/+1
| | | | | Do not use an extra flag variable to test only once in one subsequent if statement.
* Solve SF bug #231249: cgi.py opens too many (temporary) files.Guido van Rossum2001-06-291-4/+12
| | | | | | | | | | | | | | | | | | | | | | class FieldStorage: this patch changes read_lines() and co. to use a StringIO() instead of a real file. The write() calls are redirected to a private method that replaces it with a real, external file only when it gets too big (> 1000 bytes). This avoids problems in forms using the multipart/form-data encoding with many fields. The original code created a temporary file for *every* field (not just for file upload fields), thereby sometimes exceeding the open file limit of some systems. Note that the simpler solution "use a real file only for file uploads" can't be used because the form field parser has no way to tell which fields correspond to file uploads. It's *possible* but extremely unlikely that this would break someone's code; they would have to be stepping way outside the documented interface for FieldStorage and use f.file.fileno(), or depend on overriding make_file() to return a file-like object with additional known properties.
* Added a simple but general backtracking generator (conjoin), and a coupleTim Peters2001-06-291-1/+162
| | | | | | | | | examples of use. These poke stuff not specifically targeted before, incl. recursive local generators relying on nested scopes, ditto but also inside class methods and rebinding instance vars, and anonymous partially-evaluated generators (the N-Queens solver creates a different column-generator for each row -- AFAIK this is my invention, and it's really pretty <wink>). No problems, not even a new leak.
* Added CFURL support, and got base chaining to really work.Jack Jansen2001-06-283-46/+547
|
* Make basechain a class variable in stead of initializing it in __init__. ↵Jack Jansen2001-06-281-1/+1
| | | | That way it's more easily overridden.
* Another "if 0:" hack, this time to complain about otherwise invisibleTim Peters2001-06-282-2/+94
| | | | | | "return expr" instances in generators (which latter may be generators due to otherwise invisible "yield" stmts hiding in "if 0" blocks). This was fun the first time, but this has gotten truly ugly now.
* removed "register const" from scalar arguments to the unicodeFredrik Lundh2001-06-272-35/+35
| | | | predicates
* CFArray, CFData and CFDictonary are now covered, but mainly opaque.Jack Jansen2001-06-273-9/+2372
| | | | CFStrings are in better shape, but Unicode support and automatic conversion to/from Python strings remains to be done.
* Added a couple more types that Apple has taken a fancy to.Jack Jansen2001-06-271-1/+3
|
* Add more items that need to be written aboutAndrew M. Kuchling2001-06-271-0/+24
|
* Default to ucs2 when no argument to --enable-unicode is specified.Martin v. Löwis2001-06-272-29/+21
|
* make wchar_t usable again on Windows (this enables the MBCS codecs)Fredrik Lundh2001-06-271-0/+7
|
* Revise the interface to the profiling and tracing support for theFred Drake2001-06-273-151/+183
| | | | | | | | | | | | | | | | | | Python interpreter. This change adds two new C-level APIs: PyEval_SetProfile() and PyEval_SetTrace(). These can be used to install profile and trace functions implemented in C, which can operate at much higher speeds than Python-based functions. The overhead for calling a C-based profile function is a very small fraction of a percent of the overhead involved in calling a Python-based function. The machinery required to call a Python-based profile or trace function been moved to sysmodule.c, where sys.setprofile() and sys.setprofile() simply become users of the new interface. As a side effect, SF bug #436058 is fixed; there is no longer a _PyTrace_Init() function to declare.
* Revise the interface to the profiling and tracing support for theFred Drake2001-06-272-2/+16
| | | | | | | | | | | | | | | Python interpreter. This change adds two new C-level APIs: PyEval_SetProfile() and PyEval_SetTrace(). These can be used to install profile and trace functions implemented in C, which can operate at much higher speeds than Python-based functions. The overhead for calling a C-based profile function is a very small fraction of a percent of the overhead involved in calling a Python-based function. The machinery required to call a Python-based profile or trace function been moved to sysmodule.c, where sys.setprofile() and sys.setprofile() simply become users of the new interface.
* use Py_UNICODE_WIDE instead of USE_UCS4_STORAGE and Py_UNICODE_SIZEFredrik Lundh2001-06-275-16/+18
| | | | tests.
* Replace the text with a link to the PEP-ified version.Barry Warsaw2001-06-271-1113/+3
|
* Remove duplicate ', ' in dbhash.open()'s argument list.Thomas Wouters2001-06-271-1/+1
|
* This no longer leaks memory when run in an infinite loop. However,Tim Peters2001-06-271-81/+58
| | | | | | | | | | | | | | | | | | | | | that required explicitly calling LazyList.clear() in the two tests that use LazyList (I added a LazyList Fibonacci generator too). A real bitch: the extremely inefficient first version of the 2-3-5 test *looked* like a slow leak on Win98SE, but it wasn't "really": it generated so many results that the heap grew over 4Mb (tons of frames! the number of frames grows exponentially in that test). Then Win98SE malloc() starts fragmenting address space allocating more and more heaps, and the visible memory use grew very slowly while the disk was thrashing like mad. Printing fewer results (i.e., keeping the heap burden under 4Mb) made that illusion vanish. Looks like there's no hope for plugging the LazyList leaks automatically short of adding frameobjects and genobjects to gc. OTOH, they're very easy to break by hand, and they're the only *kind* of plausibly realistic leaks I've been able to provoke. Dilemma.
* Encode surrogates in UTF-8 even for a wide Py_UNICODE.Martin v. Löwis2001-06-275-17/+48
| | | | | | | Implement sys.maxunicode. Explicitly wrap around upper/lower computations for wide Py_UNICODE. When decoding large characters with UTF-8, represent expected test results using the \U notation.
* Cosmetic changes to MvL's change to unichr():Guido van Rossum2001-06-261-4/+6
| | | | | | | | | | | | - the correct range for the error message is range(0x110000); - put the 4-byte Unicode-size code inside the same else branch as the 2-byte code, rather generating unreachable code in the 2-byte case. - Don't hide the 'else' behine the '}'. (I would prefer that in 4-byte mode, any value should be accepted, but reasonable people can argue about that, so I'll put that off.)
* Make Unicode work a bit better on Windows...Fredrik Lundh2001-06-262-0/+17
|
* When decoding UTF-16, don't assume that the buffer is in native endiannessMartin v. Löwis2001-06-261-4/+4
| | | | when checking surrogates.
* Windows build broke from recent Unicode changes -- need to #defineTim Peters2001-06-262-0/+2
| | | | | | SIZEOF_SHORT by hand here. Also added dynamic check that SIZEOF_SHORT is correct for the platform (in _testcapimodule).
* gen_getattr: make the gi_running and gi_frame members discoverable (butTim Peters2001-06-262-6/+39
| | | | not writable -- too dangerous!) from Python code.
* Support using UCS-4 as the Py_UNICODE type:Martin v. Löwis2001-06-267-472/+666
| | | | | | | | | | Add configure option --enable-unicode. Add config.h macros Py_USING_UNICODE, PY_UNICODE_TYPE, Py_UNICODE_SIZE, SIZEOF_WCHAR_T. Define Py_UCS2. Encode and decode large UTF-8 characters into single Py_UNICODE values for wide Unicode types; likewise for UTF-16. Remove test whether sizeof Py_UNICODE is two.
* Added a Parser_OSX class that can parse new-style (C-only) headers,Jack Jansen2001-06-261-4/+19
| | | | such as the Core Foundation ones.
* Added CF module build and project generation (carbon only).Jack Jansen2001-06-262-0/+5
|
* First small step towards bgen-generated CoreFoundation. there is hardly any ↵Jack Jansen2001-06-263-0/+666
| | | | real functionality yet, but method chains seem to work, and so do Retain/Release semantics.
* Add "gi_" (generator-iterator) prefix to names of genobject members.Tim Peters2001-06-261-9/+13
| | | | | Makes it much easier to find references via dumb editor search (former "frame" in particular was near-hopeless).
* more unicode tweaks: fix unicodectype for sizeof(Py_UNICODE) >Fredrik Lundh2001-06-261-2/+3
| | | | sizeof(int)
* Remove the restriction on a mapping's .update() method.Barry Warsaw2001-06-261-9/+7
|
* Add an item about the extension to {}.update() to allow genericBarry Warsaw2001-06-261-0/+5
| | | | mapping objects as an argument.
* Add a bunch of tests for extended dict.update() where the argument isBarry Warsaw2001-06-261-0/+70
| | | | | a non-dictionary mapping object. Include tests for several expected failure modes.
* dict_update(): Generalize this method so {}.update() accepts anyBarry Warsaw2001-06-261-17/+70
| | | | | | | | | | | | | | | "mapping" object, specifically one that supports PyMapping_Keys() and PyObject_GetItem(). This allows you to say e.g. {}.update(UserDict()) We keep the special case for concrete dict objects, although that seems moderately questionable. OTOH, the code exists and works, so why change that? .update()'s docstring already claims that D.update(E) implies calling E.keys() so it's appropriate not to transform AttributeErrors in PyMapping_Keys() to TypeErrors. Patch eyeballed by Tim.
* more unicode tweaks: make unichr(0xdddddddd) behave like u"\Udddddddd"Fredrik Lundh2001-06-261-6/+17
| | | | wrt surrogates. (this extends the valid range from 65535 to 1114111)
* experimental UCS-4 support: don't assume that MS_WIN32 impliesFredrik Lundh2001-06-261-1/+1
| | | | HAVE_USABLE_WCHAR_T
* experimental UCS-4 support: added USE_UCS4_STORAGE define toFredrik Lundh2001-06-263-12/+25
| | | | | | unicodeobject.h, which forces sizeof(Py_UNICODE) == sizeof(Py_UCS4). (this may be good enough for platforms that doesn't have a 16-bit type. the UTF-16 codecs don't work, though)
* experimental UCS-4 support: made compare a bit more robust, in caseFredrik Lundh2001-06-261-11/+14
| | | | | sizeof(Py_UNICODE) >= sizeof(long). also changed surrogate expansion to work if sizeof(Py_UNICODE) > 2.
* experimental UCS-4 support: don't assume that MS_WIN32 impliesFredrik Lundh2001-06-262-5/+5
| | | | HAVE_USABLE_WCHAR_T
* Added a note about recompiling OSAm before distributing.Jack Jansen2001-06-261-0/+1
|
* Fixed typo in doc string.Just van Rossum2001-06-261-1/+1
|