summaryrefslogtreecommitdiffstats
path: root/Python
Commit message (Collapse)AuthorAgeFilesLines
* Backport Tim's checkin 2.247:Thomas Wouters2001-06-271-2/+3
| | | | | | SF bug 433228: repr(list) woes when len(list) big call_object: If the object isn't callable, display its type in the error msg rather than its repr.
* Backport Tim's checkin 2.201:Thomas Wouters2001-06-271-10/+54
| | | | | | | | SF bug 430991: wrong co_lnotab Armin Rigo pointed out that the way the line-# table got built didn't work for lines generating more than 255 bytes of bytecode. Fixed as he suggested, plus corresponding changes to pyassem.py, plus added some long overdue docs about this subtle table to compile.c.
* Backport Jeremy's checkin 2.57:Thomas Wouters2001-06-271-9/+7
| | | | | | vgetargs1() and vgetargskeywords(): Replace uses of PyTuple_Size() and PyTuple_GetItem() with PyTuple_GET_SIZE() and PyTuple_GET_ITEM(). The code has already done a PyTuple_Check().
* Backport Jeremy's checkin 2.244:Thomas Wouters2001-06-271-1/+7
| | | | | | | | Add a second special case to the inline function call code in eval_code2(). If we have a PyCFunction (builtin) and it is METH_VARARGS only, load the args and dispatch to call_cfunction() directly. This provides a small speedup for perhaps the most common function calls -- builtins.
* Backport of Tim's checkin 2.177:Thomas Wouters2001-05-231-8/+5
| | | | | | | | | | | | | | | | | SF bug #417093: Case sensitive import: dir and .py file w/ same name Directory containing Spam.py spam/__init__.py Then "import Spam" caused a SystemError, because code checking for the existence of "Spam/__init__.py" finds it on a case-insensitive filesystem, but then bails because the directory it finds it in doesn't match case, and then old code assumed that was still an error even though it isn't anymore. Changed the code to just continue looking in this case (instead of calling it an error). So import Spam and import spam both work now.
* Backport Tim's checkin 2.199:Thomas Wouters2001-05-231-9/+19
| | | | | | | | | Fix buglet reported on c.l.py: map(fnc, file.xreadlines()) blows up. Took away map()'s insistence that sequences support __len__, and cleaned up the convoluted code that made it *look* like it really cared about __len__ (in fact the old ->len field was only *used* as a flag bit, as the main loop only looked at its sign bit, setting the field to -1 when IndexError got raised; renamed the field to ->saw_IndexError instead).
* Backport Jeremy's checkin 2.198:Thomas Wouters2001-05-231-6/+20
| | | | | | | | | | Fix 2.1 nested scopes crash reported by Evan Simpson The new test case demonstrates the bug. Be more careful in symtable_resolve_free() to add a var to cells or frees only if it won't be added under some other rule. XXX Add new assertion that will catch this bug.
* This commit was manufactured by cvs2svn to create branchcvs2svn2001-04-171-211/+0
| | | | 'release21-maint'.
* Make some private symbols static.Guido van Rossum2001-04-142-3/+4
|
* split long lineJeremy Hylton2001-04-131-1/+2
|
* Change error message raised when free variable is not yet bound. ItJeremy Hylton2001-04-131-10/+16
| | | | | | | | | now raises NameError instead of UnboundLocalError, because the var in question is definitely not local. (This affects test_scope.py) Also update the recent fix by Ping using get_func_name(). Replace tests of get_func_name() return value with call to get_func_desc() to match all the other uses.
* Patch by Ping (SF bug 415879, Exception.__init__() causes segfault):Guido van Rossum2001-04-131-3/+2
| | | | | | | | | | | | Calling an unbound method on a C extension class without providing an instance can yield a segfault. Try "Exception.__init__()" or "ValueError.__init__()". This is a simple fix. The error-reporting bits in call_method mistakenly treat the misleadingly-named variable "func" as a function, when in fact it is a method. If we let get_func_name take care of the work, all is fine.
* Because this code was derived from Python 1.6.1 (amongst others), theGuido van Rossum2001-04-121-1/+1
| | | | CNRI copyright should be updated to include 2001.
* Update copyright to PSF.Guido van Rossum2001-04-121-1/+1
|
* Fix exception handling for non-PyFunction objects, SF bug 414743.Jeremy Hylton2001-04-111-16/+54
| | | | | | | | Fix based on patch #414750 by Michael Hudson. New functions get_func_name() and get_func_desc() return reasonable names and descriptions for all objects. XXX Even objects that aren't actually callable.
* Updated version of RISCOS support. SF patch 411213 by Dietmar SchwertbergerGuido van Rossum2001-04-101-0/+4
|
* test_pickle works on sizeof(long)==8 boxes again.Tim Peters2001-04-101-1/+1
| | | | | | | | | | pickle.py The code implicitly assumed that all ints fit in 4 bytes, causing all sorts of mischief (from nonsense results to corrupted pickles). Repaired that. marshal.c The int marshaling code assumed that right shifts of signed longs sign-extend. Repaired that.
* Warn when assigning to __debug__ instead of raising an error.Jeremy Hylton2001-04-091-7/+2
|
* SF patch #413552 - Premature decref on objectTim Peters2001-04-071-3/+7
| | | | | | | | | Jeffery Collins pointed out that filterstring decrefs a character object before it's done using it. This works by accident today because another module always happens to have an active reference too at the time. The accident doesn't work after his Pippy modifications, and since it *is* an accident even in the mainline Python, it should work by design there too. The patch accomplishes that.
* Bug fix: compile() called from a nested-scopes-enable Python was notJeremy Hylton2001-03-261-1/+1
| | | | | using nested scopes to compile its argument. Pass compiler flags through to underlying compile call.
* Finishing touch to Ping's changes. This is a patch that Ping sent meGuido van Rossum2001-03-231-11/+11
| | | | | | | | but apparently he had to go to school, so I am checking it in for him. This makes PyRun_HandleSystemExit() a static instead, called handle_system_exit(), and let it use the current exception rather than passing in an exception. This slightly simplifies the code.
* call_sys_exitfunc(): Remove unused variable f.Fred Drake2001-03-231-1/+1
|
* Allow sys.excepthook and sys.exitfunc to quietly exit with a sys.exit().Ka-Ping Yee2001-03-231-32/+37
| | | | sys.exitfunc gets the last word on the exit status of the program.
* Make it illegal to assign to __debug__ as per Guido's request.Jeremy Hylton2001-03-231-1/+12
|
* Fix memory leak with SyntaxError. (The DECREF was originally hiddenGuido van Rossum2001-03-231-0/+1
| | | | | inside a piece of code that was deemed reduntant; the DECREF was unfortunately *not* redundant!)
* Add sys.excepthook.Ka-Ping Yee2001-03-232-20/+83
| | | | | | | | Update docstring and library reference section on 'sys' module. New API PyErr_Display, just for displaying errors, called by excepthook. Uncaught exceptions now call sys.excepthook; if that fails, we fall back to calling PyErr_Display directly. Also comes with sys.__excepthook__ and sys.__displayhook__.
* Set the line number correctly for a nested function with an exec orJeremy Hylton2001-03-221-2/+5
| | | | import *. Mark the offending stmt rather than the function def line.
* Make error messages clearer for illegal combinations of nestedJeremy Hylton2001-03-221-15/+36
| | | | functions and import */exec.
* Extend support for from __future__ import nested_scopesJeremy Hylton2001-03-223-16/+112
| | | | | | | | | | | | | | | | | | | If a module has a future statement enabling nested scopes, they are also enable for the exec statement and the functions compile() and execfile() if they occur in the module. If Python is run with the -i option, which enters interactive mode after executing a script, and the script it runs enables nested scopes, they are also enabled in interactive mode. XXX The use of -i with -c "from __future__ import nested_scopes" is not supported. What's the point? To support these changes, many function variants have been added to pythonrun.c. All the variants names end with Flags and they take an extra PyCompilerFlags * argument. It is possible that this complexity will be eliminated in a future version of the interpreter in which nested scopes are not optional.
* If a code object is compiled with nested scopes, define the CO_NESTED flag.Jeremy Hylton2001-03-222-1/+11
| | | | | Add PyEval_GetNestedScopes() which returns a non-zero value if the code for the current interpreter frame has CO_NESTED defined.
* Use PyObject_IsInstance() to check whether the first argument to anGuido van Rossum2001-03-211-13/+19
| | | | | unbound method is of the right type. Hopefully this solves SF patch #409355 (Meta-class inheritance problem); I have no easy way to test.
* Update PyNode_CompileSymtable() to understand future statementsJeremy Hylton2001-03-211-9/+15
|
* Move the code implementing isinstance() and issubclass() to new CGuido van Rossum2001-03-211-96/+6
| | | | | APIs, PyObject_IsInstance() and PyObject_IsSubclass() -- both returning an int, or -1 for errors.
* Fix PyFrame_FastToLocals() and counterpart to deal with cells andJeremy Hylton2001-03-212-55/+114
| | | | | | | | | | | | | | frees. Note there doesn't seem to be any way to test LocalsToFast(), because the instructions that trigger it are illegal in nested scopes with free variables. Fix allocation strategy for cells that are also formal parameters. Instead of emitting LOAD_FAST / STORE_DEREF pairs for each parameter, have the argument handling code in eval_code2() do the right thing. A side-effect of this change is that cell variables that are also arguments are listed at the front of co_cellvars in the order they appear in the argument list.
* Case-checking was broken on the Macintosh. Fixed.Jack Jansen2001-03-201-3/+2
|
* Fixup handling of free variables in methods when the class scope alsoJeremy Hylton2001-03-201-3/+12
| | | | | | | | | | has a binding for the name. The fix is in two places: - in symtable_update_free_vars, ignore a global stmt in a class scope - in symtable_load_symbols, add extra handling for names that are defined at class scope and free in a method Closes SF bug 407800
* Fix crashes in nested list comprehensionsJeremy Hylton2001-03-191-8/+10
| | | | | | SF bugs 409230 and 407800 Also remove bogus list comp code from symtable_assign().
* Variety of small INC/DECREF patches that fix reported memory leaksJeremy Hylton2001-03-131-4/+7
| | | | | | | | | | | | | | | | | | | | | with free variables. Thanks to Martin v. Loewis for finding two of the problems. This fixes SF buf 405583. There is also a C API change: PyFrame_New() is reverting to its pre-2.1 signature. The change introduced by nested scopes was a mistake. XXX Is this okay between beta releases? cell_clear(), the GC helper, must decref its reference to break cycles. frame_dealloc() must dealloc all cell vars and free vars in addition to locals. eval_code2() setup code must INCREF cells it copies out of the closure. The STORE_DEREF opcode implementation must DECREF the object it passes to PyCell_Set().
* Py_BuildValue(): Add "D" conversion to create a Python complex value fromFred Drake2001-03-121-0/+6
| | | | | | | a Py_complex C value. Patch by Walter Dörwald. This partially closes SF patch #407148.
* When iterating over the names imported in a future statement, ignore theFred Drake2001-03-101-1/+1
| | | | | | commas in the concrete syntax; checking those causes a segfault. This fixes SF bug #407394.
* Use Py_CHARMASK for ctype macros. Fixes bug #232787.Martin v. Löwis2001-03-061-4/+4
|
* Add some spaces around the "=" in assignments.Fred Drake2001-03-061-2/+2
|
* RISCOS changes by dschwertberger.Guido van Rossum2001-03-021-0/+58
|
* Refactored the warning-issuing code more.Guido van Rossum2001-03-021-11/+17
| | | | | | Made sure that the warnings issued by symtable_check_unoptimized() (about import * and exec) contain the proper filename and line number, and are transformed into SyntaxError exceptions with -Werror.
* Thanks to Steven Majewski, finally putting MacOS X imports to bed for 2.1b1.Tim Peters2001-03-021-9/+3
|
* Useful future statement support for the interactive interpreterJeremy Hylton2001-03-012-26/+52
| | | | | | | | | | | | | | | | | | | | | | | | (Also remove warning about module-level global decl, because we can't distinguish from code passed to exec.) Define PyCompilerFlags type contains a single element, cf_nested_scopes, that is true if a nested scopes future statement has been entered at the interactive prompt. New API functions: PyNode_CompileFlags() PyRun_InteractiveOneFlags() -- same as their non Flags counterparts except that the take an optional PyCompilerFlags pointer compile.c: In jcompile() use PyCompilerFlags argument. If cf_nested_scopes is true, compile code with nested scopes. If it is false, but the code has a valid future nested scopes statement, set it to true. pythonrun.c: Create a new PyCompilerFlags object in PyRun_InteractiveLoop() and thread it through to PyRun_InteractiveOneFlags().
* More MacOSX fiddling. As noted in a comment, I believe all variationsTim Peters2001-03-011-18/+37
| | | | | of these "search the directory" schemes (including this one) are still prone to making mistakes.
* More fiddling w/ the new-fangled Mac import code.Tim Peters2001-03-011-5/+9
|
* Suppress a compiler warning under OpenVMS; time_t is unsigned on (at least)Fred Drake2001-03-011-2/+2
| | | | | | | | | | | | the more recent versions of that platform, so we use the value (time_t)(-1) as the error value. This is the type used in the OpenVMS documentation: http://www.openvms.compaq.com/commercial/c/5763p048.htm#inde This closes SF tracker bug #404240. Also clean up an exception message when detecting overflow of time_t values beyond 4 bytes.
* Fix core dump in example from Samuele Pedroni:Jeremy Hylton2001-03-011-15/+31
| | | | | | | | | | | | | | | | | | | | | | | | from __future__ import nested_scopes x=7 def f(): x=1 def g(): global x def i(): def h(): return x return h() return i() return g() print f() print x This kind of code didn't work correctly because x was treated as free in i, leading to an attempt to load x in g to make a closure for i. Solution is to make global decl apply to nested scopes unless their is an assignment. Thus, x in h is global.