- 18 Oct, 2001 14 commits
-
-
Jeremy Hylton authored
-
Jeremy Hylton authored
The symbol table pass didn't have an explicit case for the list_iter node which is used only for a nested list comprehension. As a result, the target of the list comprehension was treated as a use instead of an assignment. Fix is to add a case to symtable_node() to handle list_iter. Also, rework and document a couple of the subtler implementation issues in the symbol table pass. The symtable_node() switch statement depends on falling through the last several cases, in order to handle some of the more complicated nodes like atom. Add a comment explaining the behavior before the first fall through case. Add a comment /* fall through */ at the end of case so that it is explicitly marked as such. Move the for_stmt case out of the fall through logic, which simplifies both for_stmt and default. (The default used the local variable start to skip the first three nodes of a for_stmt when it fell through.) Rename the flag argument to symtable_assign() to def_flag and add a comment explaining its use: The third argument to symatble_assign() is a flag to be passed to symtable_add_def() if it is eventually called. The flag is useful to specify the particular type of assignment that should be recorded, e.g. an assignment caused by import.
-
Guido van Rossum authored
The fix is a band-aid: type_call() now makes the same exception for a single-argument call to type() as type_new() was already making.
-
Martin v. Löwis authored
to link a C++ main using the C++ compiler. Fixes #472007.
-
Fred Drake authored
-
Tim Peters authored
-
Fred Drake authored
-
Martin v. Löwis authored
-
Martin v. Löwis authored
-
Martin v. Löwis authored
-
Martin v. Löwis authored
-
Neil Schemenauer authored
isinstance() now allows any object as the first argument and a class, a type or something with a __bases__ tuple attribute for the second argument. This closes SF patch #464992.
-
Jeremy Hylton authored
(The rest of the test cases are trivial, so I don't feel too bad.)
-
Jeremy Hylton authored
Quoth the OpenSSL RAND_add man page: OpenSSL makes sure that the PRNG state is unique for each thread. On systems that provide /dev/urandom, the randomness device is used to seed the PRNG transparently. However, on all other systems, the application is responsible for seeding the PRNG by calling RAND_add(), RAND_egd(3) or RAND_load_file(3). I decided to expose RAND_add() because it's general and RAND_egd() because it's a useful special case. RAND_load_file() didn't seem to offer much over RAND_add(), so I skipped it. Also supplied RAND_status() which returns true if the PRNG is seeded and false if not.
-
- 17 Oct, 2001 26 commits
-
-
Skip Montanaro authored
closes patch 470254
-
Barry Warsaw authored
test_no_semis_header_splitter(): This actually should still split. test_no_split_long_header(): An example of an unsplittable line. test_no_semis_header_splitter(): Test for SF bug # 471918, Generator splitting long headers.
-
Barry Warsaw authored
_split_header(): Split on folding whitespace if the attempt to split on semi-colons failed. _split_header(): Patch by Matthew Cowles for fixing SF bug # 471918, Generator splitting long headers.
-
Guido van Rossum authored
PyType_HasFeature(t, Py_TPFLAGS_HAVE_CLASS).
-
Guido van Rossum authored
ValueError on too-large inputs.
-
Guido van Rossum authored
and fixup_slot_dispatchers() always select the proper slot dispatcher. This affects slot_sq_item(), slot_tp_getattro(), and slot_tp_getattr_hook().
-
Jeremy Hylton authored
-
Jeremy Hylton authored
-
Jeremy Hylton authored
-
Jeremy Hylton authored
There are now no known cases where the compiler package computes a stack depth lower than the one computed by the builtin compiler. (To achieve this state, we had to fix bugs in both compilers :-). The chief change is to do the depth calculations with respect to basic blocks. The stack effect of block is calculated. Then the flow graph is traversed using breadth-first search to find the max weight path through the graph. Had to fix the StackDepthTracker to calculate the right info for several opcodes: LOAD_ATTR, CALL_FUNCTION (and friends), MAKE_CLOSURE, and DUP_TOPX. XXX Still need to handle free variables in MAKE_CLOSURE. XXX There are still a lot of places where the computed stack depth is larger than for the builtin compiler. These won't cause the interpreter to overflow the frame, but they waste space.
-
Jeremy Hylton authored
-
Jeremy Hylton authored
-
Jeremy Hylton authored
-
Jeremy Hylton authored
Also minor tweaks to internal routines. Use PyCF_MASK instead of explicit list of flags. For the MAKE_CLOSURE opcode, the number of items popped off the stack depends on both the oparg and the number of free variables for the code object. Fix the code so it accounts for the free variables. In com_classdef(), record an extra pop to account for the STORE call after the BUILD_CLASS. Get rid of some commented out debugging code in com_push() and com_pop(). Factor string resize logic into helper routine com_check_size(). In com_addbyte(), remove redudant if statement after assert. (They test the same condition.) In several routines, use string macros instead of string functions.
-
Jeremy Hylton authored
-
Guido van Rossum authored
d_type before calling the wrapped function. fixup_slot_dispatchers(): fix indentation.
-
Guido van Rossum authored
- replace some log_error() calls with log_message() - flush self.rfile before forking too (hope this works on Windows)
-
Guido van Rossum authored
Add --install-scripts=$(BINDIR) argument to "setup.py install" invocation.
-
Guido van Rossum authored
-
Tim Peters authored
line fits in reasonable screen width.
-
Tim Peters authored
-
Tim Peters authored
Made the presence/absence of a semicolon after macros consistent.
-
Tim Peters authored
removed the tricks). Changed the ENTER/LEAVE_ZLIB macros so as not to create a new block (a new block is neither necessary nor helpful).
-
Fred Drake authored
-
Fred Drake authored
-
Guido van Rossum authored
-