Neal Norwitz
c6d210ca76
Get rid of last vestiges of BINARY_DIVIDE.
2006-03-16 06:02:10 +00:00
Guido van Rossum
45aecf451a
Checkpoint. 218 tests are okay; 53 are failing. Done so far:
...
- all classes are new-style (but ripping out classobject.[ch] isn't done)
- int/int -> float
- all exceptions must derive from BaseException
- absolute import
- 'as' and 'with' are keywords
2006-03-15 04:58:47 +00:00
Nick Coghlan
eadee9a744
Fix SF bug #1448804 and ad a test to ensure that all subscript operations continue to be handled correctly
2006-03-13 12:31:58 +00:00
Guido van Rossum
f669436189
Um, I thought I'd already checked this in.
...
Anyway, this is the changes to the with-statement
so that __exit__ must return a true value in order
for a pending exception to be ignored.
The PEP (343) is already updated.
2006-03-10 02:28:35 +00:00
Neal Norwitz
72c2c062d7
Try to be a bit more consistent on all platforms:
...
python .
python < .
both print a message, return non-zero and do not core dump.
2006-03-09 05:58:11 +00:00
Guido van Rossum
38fff8c4e4
Checking in the code for PEP 357.
...
This was mostly written by Travis Oliphant.
I've inspected it all; Neal Norwitz and MvL have also looked at it
(in an earlier incarnation).
2006-03-07 18:50:55 +00:00
Guido van Rossum
9d7855076a
Address an coverity issue. Coverity was complaining about a line that's fine,
...
but an earlier line checked for v != NULL unnecessarily.
2006-03-07 18:31:44 +00:00
Hye-Shik Chang
4af5c8cee4
SF #1444030 : Fix several potential defects found by Coverity.
...
(reviewed by Neal Norwitz)
2006-03-07 15:39:21 +00:00
Martin v. Löwis
725507b52e
Change int to Py_ssize_t in several places.
...
Add (int) casts to silence compiler warnings.
Raise Python exceptions for overflows.
2006-03-07 12:08:51 +00:00
Neal Norwitz
f2e0c45492
Fix warnings on x86 (32-bit).
2006-03-06 23:31:27 +00:00
Neal Norwitz
3e90fa5940
Try to cleanup the error handling a bit so there aren't false positives
...
from static analysis. v was already checked for NULL above, so we don't
need a second check.
2006-03-06 23:07:34 +00:00
Martin v. Löwis
99b93c2824
Use %Id for size_t-ish things on Win64.
2006-03-05 05:33:54 +00:00
Neal Norwitz
4281cef205
Use Py_ssize_t for _Py_RefTotal.
...
I tried to handle Win64 properly, but please review.
2006-03-04 19:58:13 +00:00
Neal Norwitz
9589ee276a
Tabify
2006-03-04 19:01:22 +00:00
Neal Norwitz
e92fba0a12
Get rid of run_err_mod(). It was only used in two places.
...
One place it wasn't necessary since mod was already checked.
Inline the check that mod != NULL for the other use.
2006-03-04 18:52:26 +00:00
Neal Norwitz
10be2ea85d
SF bug 1442442: LIST_APPEND optimization got lost in the AST merge.
...
Add it back.
2006-03-03 20:29:11 +00:00
Neal Norwitz
9742f27a9a
Remove commented code
2006-03-03 19:13:57 +00:00
Brett Cannon
3909ff69e2
Text moved to PEP 339.
2006-03-02 22:08:16 +00:00
Brett Cannon
5118517c16
Fix minor docstring typo.
2006-03-02 22:07:40 +00:00
Tim Peters
f6386306fb
Document the purpose of the struct _block members.
2006-03-02 21:41:18 +00:00
Tim Peters
6fd92dc44f
Added words about what PyArena_Malloc() does.
2006-03-02 21:14:45 +00:00
Tim Peters
8cfaa0e729
Trimmed trailing whitespace.
2006-03-02 20:37:32 +00:00
Brett Cannon
2e63b73a2c
Fix refleak in PyErr_Display().
2006-03-02 18:34:57 +00:00
Neal Norwitz
d9cf85f421
Fix refleak if from __future__ import was not first
2006-03-02 08:08:42 +00:00
Neal Norwitz
814e938d08
Use Py_ssize_t since we are working with list size below
2006-03-02 07:54:28 +00:00
Brett Cannon
46872b1613
Add a missing Py_DECREF to BaseException__unicode__ .
2006-03-02 04:31:55 +00:00
Neal Norwitz
3a5468efb0
Update known issues to reflect reality
2006-03-02 04:06:10 +00:00
Martin v. Löwis
03e5bc02c9
Fix memory leak on attributes.
2006-03-02 00:31:27 +00:00
Thomas Wouters
695934a0ef
Make Py_ssize_t clean.
2006-03-01 23:49:13 +00:00
Martin v. Löwis
49c5da1d88
Patch #1440601 : Add col_offset attribute to AST nodes.
2006-03-01 22:49:05 +00:00
Thomas Wouters
7464b43e41
Fix incompatible assignment warning from previous checkin.
2006-03-01 22:34:09 +00:00
Thomas Wouters
7f401ef73d
Fix gcc (4.0.x) warning about use of uninitialized variables.
...
(PyMarshal_ReadShortFromFile() is only used in zipimport.c, I don't believe
the extra initializations will matter one way or another.)
2006-03-01 22:30:47 +00:00
Brett Cannon
54ac29497e
Document PEP 352 changes. Also added GeneratorExit.
2006-03-01 22:10:49 +00:00
Thomas Wouters
65b3dab50e
Fix uninitialized value. (Why are we using bools instead of ints, like we do
...
everywhere else?)
2006-03-01 22:06:23 +00:00
Martin v. Löwis
0b300be895
Fix more memory leaks. Will backport to 2.4.
2006-03-01 21:33:54 +00:00
Thomas Wouters
c3547a311e
Fix C99-ism, and add XXX to comment
2006-03-01 21:31:21 +00:00
Martin v. Löwis
056a69cba6
Reconst parameters that lost their const in the AST merge.
2006-03-01 16:55:42 +00:00
Jeremy Hylton
e9357b21c0
Tabify and reflow some long lines.
...
Much of the peephole optimizer is now indented badly, but it's about
to be revised anyway.
2006-03-01 15:47:05 +00:00
Jeremy Hylton
224003baef
Add missing DECREF.
2006-03-01 15:02:24 +00:00
Thomas Wouters
572a9f32dc
Use %zd format characters for Py_ssize_t types.
2006-03-01 05:38:39 +00:00
Thomas Wouters
7f59732716
Put back the essence of Jeremy's original XXX comment.
2006-03-01 05:32:33 +00:00
Brett Cannon
bf36409e2a
PEP 352 implementation. Creates a new base class, BaseException, which has an
...
added message attribute compared to the previous version of Exception. It is
also a new-style class, making all exceptions now new-style. KeyboardInterrupt
and SystemExit inherit from BaseException directly. String exceptions now
raise DeprecationWarning.
Applies patch 1104669, and closes bugs 1012952 and 518846.
2006-03-01 04:25:17 +00:00
Martin v. Löwis
762467475d
Use Py_ssize_t for PyArg_UnpackTuple arguments.
2006-03-01 04:06:10 +00:00
Neal Norwitz
53d960c010
Don't pollute namespace as bad as before. All the types are static now.
2006-02-28 22:47:29 +00:00
Thomas Wouters
8ae1295c5b
Make 'as' an actual keyword when with's future statement is used. Not
...
actually necessary for functionality, but good for transition.
2006-02-28 22:42:15 +00:00
Neal Norwitz
090b3dde06
No need to export PySTEntry_New, it is only used in symtable.c
2006-02-28 22:36:46 +00:00
Guido van Rossum
1a5e21e033
Updates to the with-statement:
...
- New semantics for __exit__() -- it must re-raise the exception
if type is not None; the with-statement itself doesn't do this.
(See the updated PEP for motivation.)
- Added context managers to:
- file
- thread.LockType
- threading.{Lock,RLock,Condition,Semaphore,BoundedSemaphore}
- decimal.Context
- Added contextlib.py, which defines @contextmanager, nested(), closing().
- Unit tests all around; bot no docs yet.
2006-02-28 21:57:43 +00:00
Thomas Wouters
5e9f1fa706
Generally inehrit codeflags that are in PyCF_MASK, instead of writing it out
...
in multiple places. This makes compile()/eval()/etc also inherit the
absolute-import codeflag, like division and with-statement already were.
2006-02-28 20:02:27 +00:00
Jeremy Hylton
56820c2bab
Add some stats collection in debugging mode.
...
No good way to extract output yet.
2006-02-28 19:57:06 +00:00
Thomas Wouters
34aa7ba114
from __future__ import with_statement addon for 'with', mostly written by
...
Neal.
2006-02-28 19:02:24 +00:00
Jeremy Hylton
99b4ee6373
Use simple PyList to implement list of PyObject pointers
2006-02-28 18:52:28 +00:00
Jeremy Hylton
08533fdad6
Tabify
2006-02-28 18:29:00 +00:00
Jeremy Hylton
a829313d7b
Remove asdl_seq_APPEND() and simplify asdl seq implementation.
...
Clarify intended use of set_context() and check errors at all call sites.
2006-02-28 17:58:27 +00:00
Jeremy Hylton
77f1bb2778
Real arena implementation
...
Replace the toy arena implementation with a real one,
based on allocating 8K chunks of memory by default.
2006-02-28 17:53:04 +00:00
Thomas Wouters
f7f438ba3b
SF patch #1438387 , PEP 328: relative and absolute imports.
...
- IMPORT_NAME takes an extra argument from the stack: the relativeness of
the import. Only passed to __import__ when it's not -1.
- __import__() takes an optional 5th argument for the same thing; it
__defaults to -1 (old semantics: try relative, then absolute)
- 'from . import name' imports name (be it module or regular attribute)
from the current module's *package*. Likewise, 'from .module import name'
will import name from a sibling to the current module.
- Importing from outside a package is not allowed; 'from . import sys' in a
toplevel module will not work, nor will 'from .. import sys' in a
(single-level) package.
- 'from __future__ import absolute_import' will turn on the new semantics
for import and from-import: imports will be absolute, except for
from-import with dots.
Includes tests for regular imports and importhooks, parser changes and a
NEWS item, but no compiler-package changes or documentation changes.
2006-02-28 16:09:29 +00:00
Martin v. Löwis
ace990cf5a
Regenerate.
2006-02-28 00:32:31 +00:00
Brett Cannon
a7446e3438
Check the return code for PyErr_Warn() when warning about raising string
...
exceptions. This was triggered when 'warnings' had a filter set to "error"
that caught the string exception deprecation warning.
2006-02-27 23:39:10 +00:00
Tim Peters
a7444f47b2
PyErr_ProgramText(): Grrrrrr.
...
In a Windows debug build, trying to open a file using
an empty string as the name causes assertion death
inside MS's C runtime code. We probably need to worm
around that in many places. I'm worming around it here
to stop the new test_with.py from assert-dying in the
Windows debug build (it calls compile() with an empty
string for "the file name", which indirectly leads to
C-level code in Python trying to fopen("", "r")).
2006-02-27 23:29:46 +00:00
Thomas Wouters
1175c43a12
Clarify C-style exception handling with proper label name.
2006-02-27 22:49:54 +00:00
Thomas Wouters
bfe51ea5c8
Fix assertions.
2006-02-27 22:48:55 +00:00
Guido van Rossum
c2e20744b2
PEP 343 -- the with-statement.
...
This was started by Mike Bland and completed by Guido
(with help from Neal).
This still needs a __future__ statement added;
Thomas is working on Michael's patch for that aspect.
There's a small amount of code cleanup and refactoring
in ast.c, compile.c and ceval.c (I fixed the lltrace
behavior when EXT_POP is used -- however I had to make
lltrace a static global).
2006-02-27 22:32:47 +00:00
Jeremy Hylton
c7d37264bb
Fix parsing of subscriptlist.
...
(Armin's SF bug report).
d = {}
d[1,] = 1
Now handled correctly
2006-02-27 17:29:29 +00:00
Tim Peters
f4e6928c4d
Patch 1413181, by Gabriel Becedillas.
...
PyThreadState_Delete(): if the auto-GIL-state machinery knows about
the thread state, forget it (since the thread state is being deleted,
continuing to remember it can't help, but can hurt if another thread
happens to get created with the same thread id).
I'll backport to 2.4 next.
2006-02-27 17:15:31 +00:00
Thomas Wouters
8622e93eab
And some more cleanup.
2006-02-27 17:14:45 +00:00
Thomas Wouters
106203c6e0
Clean up from-import handling.
2006-02-27 17:05:19 +00:00
Jeremy Hylton
9ebfbf0a43
Simplify ast_for_trailer() in anticipation of more changes.
2006-02-27 16:50:35 +00:00
Thomas Wouters
aa8b6c5855
Fix old not-reading-pep-308-right artifact.
2006-02-27 16:46:22 +00:00
Martin v. Löwis
15e62742fa
Revert backwards-incompatible const changes.
2006-02-27 16:46:16 +00:00
Thomas Wouters
fa443cda87
Fix assertion errors in debug build, brought on by PEP 308 patch.
2006-02-27 15:43:57 +00:00
Martin v. Löwis
577b5b960d
Create _ast module.
...
Cleanup Python-ast.c generation.
2006-02-27 15:23:19 +00:00
Thomas Wouters
dca3b9c797
PEP 308 implementation, including minor refdocs and some testcases. It
...
breaks the parser module, because it adds the if/else construct as well as
two new grammar rules for backward compatibility. If no one else fixes
parsermodule, I guess I'll go ahead and fix it later this week.
The TeX code was checked with texcheck.py, but not rendered. There is
actually a slight incompatibility:
>>> (x for x in lambda:0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: iteration over non-sequence
changes into
>>> (x for x in lambda: 0)
File "<stdin>", line 1
(x for x in lambda: 0)
^
SyntaxError: invalid syntax
Since there's no way the former version can be useful, it's probably a
bugfix ;)
2006-02-27 00:24:13 +00:00
Martin v. Löwis
d3a5f53a27
Avoid reinitializing the types twice.
2006-02-27 00:09:50 +00:00
Martin v. Löwis
8d0701daf1
Stop generating empty arrays.
2006-02-26 23:40:20 +00:00
Neal Norwitz
59090a7334
Oops, I forgot to check this in with the change to Grammar/Grammar.
...
Implement change suggested by Jiwon Seo on python-dev.
['(' gen_for ')'] is redundant with test, so remove it.
2006-02-26 22:29:38 +00:00
Martin v. Löwis
2b366e41c3
Check whether there are flags.
2006-02-26 22:12:35 +00:00
Martin v. Löwis
ce1d5d2527
Fix iterating over cmpop_ty lists.
2006-02-26 20:51:25 +00:00
Martin v. Löwis
bd260da900
Generate code to recursively copy an AST into
...
a tree of Python objects. Expose this through compile().
2006-02-26 19:42:26 +00:00
Neal Norwitz
9a27617239
Based on discussion with Martin and Thomas on python-checkins
...
add a Py_SAFE_DOWNCAST() to make the code correct.
2006-02-20 18:57:39 +00:00
Neal Norwitz
20dd93f427
Fix compiler warning on amd64. We can't use zd here since this is
...
ultimately going to snprintf() not the python string formatter. Right?
2006-02-19 19:34:15 +00:00
Neal Norwitz
a361bd8dce
Fix compiler warning (int vs Py_ssize_t mismatch
2006-02-19 19:31:50 +00:00
Georg Brandl
1dc5a84aee
Bug #801349 : document that start/stop/step slice arguments can be None
2006-02-19 00:12:42 +00:00
Martin v. Löwis
dde99d2633
Remove size constraints in SLICE opcodes.
2006-02-17 15:57:41 +00:00
Martin v. Löwis
67baee6287
Move cast to suppress warning.
2006-02-16 14:37:48 +00:00
Martin v. Löwis
d96ee90993
Use Py_ssize_t to count the
2006-02-16 14:37:16 +00:00
Martin v. Löwis
720ddb625b
Use PyString_FromFormat for formatting error messages.
2006-02-16 07:11:33 +00:00
Martin v. Löwis
18e165558b
Merge ssize_t branch.
2006-02-15 17:27:45 +00:00
Armin Rigo
f5b3e36493
Renamed _length_cue() to __length_hint__(). See:
...
http://mail.python.org/pipermail/python-dev/2006-February/060524.html
2006-02-11 21:32:43 +00:00
Georg Brandl
b69406dc09
Update general copyright years to 2006.
2006-02-11 15:30:36 +00:00
Thomas Wouters
03ca23d892
Explain the clearing of the stack in a comment in Python/ceval.c's
...
call_function(), rather than commenting on the lack of an explanation in a
comment.
2006-02-10 22:51:45 +00:00
Brett Cannon
82a9394237
Add doc discussing how AST compiler is structured and designed.
...
It is out of date, though, thanks to lacking info on the arena API. It also
should eventually be removed in favor of updating PEP 339.
2006-02-09 02:43:14 +00:00
Neal Norwitz
96e48d4698
Use C-style comment
2006-02-05 02:07:19 +00:00
Jeremy Hylton
c960f26044
Improved handling of syntax errors.
...
Expand set of errors caught in set_context(). Some new errors, some
old error messages changed for consistency.
Fixed error checking in generator expression code. The first set of
tests were impossible condition given the grammar. In general, the
ast code uses REQ() for those sanity checks.
Fix some error handling for augmented assignments. As comments in the
code explain, set_context() ought to work here, but I got unexpected
crashes when I tried it. Should come back to this.
Add note to Grammar that yield expression is a special case.
Add doctest cases for SyntaxErrors raised by ast.c.
2006-01-27 15:18:39 +00:00
Georg Brandl
d704817b66
typo
2006-01-20 17:53:27 +00:00
Neal Norwitz
1ac754fa10
Check return result from Py_InitModule*(). This API can fail.
...
Probably should be backported.
2006-01-19 06:09:39 +00:00
Tim Peters
e93e64fb1a
Repair bizarre indentation created by VC 7.1.
2006-01-08 02:28:41 +00:00
Tim Peters
5db42c4c50
alias_for_import_name(): Dueling compiler warnings ;-)
...
Squash new warnings from VC 7.1 about mixing signed and
unsigned types in comparisons. I can see why `len` was
changed to size_t here, but don't see why `i` was also
changed. Change `i` back to int.
2006-01-08 02:25:34 +00:00
Tim Peters
d8fe7ab711
analyze_cells(): This no longer compiled under VC 7.1.
...
Move declaration of local `flags` to top of block.
2006-01-08 02:19:07 +00:00
Neal Norwitz
46b7bda9bc
Fix icc warnings: conversion from "long" to "int" may lose significant bits
2006-01-08 01:06:06 +00:00
Neal Norwitz
d39d861a36
Fix icc warnings: strlen() returns size_t
2006-01-08 01:03:36 +00:00
Neal Norwitz
daf595f8a9
Fix icc warnings: shadowing local variable (i) and complex is set but not used, so remove
2006-01-07 21:24:54 +00:00
Neal Norwitz
08b401f67a
Fix icc warnings: single bit fields should be unsigned, shadowing local variables
2006-01-07 21:24:09 +00:00
Neal Norwitz
406c640344
Fix icc warnings: shadowing local variables
2006-01-07 21:23:26 +00:00
Tim Peters
e86e7a5b62
svnversion_init(): Use standard layout for function defn.
2006-01-06 02:42:46 +00:00
Tim Peters
216b78bdaa
Trimmed trailing whitespace.
2006-01-06 02:40:53 +00:00
Martin v. Löwis
43b57805fb
Drop sys.build_number. Add sys.subversion.
2006-01-05 23:38:54 +00:00
Hye-Shik Chang
23f391c6a1
Fix a warning from gcc by adding a missed const qualifier.
2006-01-04 01:30:17 +00:00
Martin v. Löwis
5b43126e03
Regenerate.
2006-01-02 21:18:55 +00:00
Martin v. Löwis
94962615b7
Adjust usage of compiler_use_new_block to its return type.
2006-01-02 21:15:05 +00:00
Fredrik Lundh
24f0fa97c5
SF#1391872
...
Floating point literals don't work in non-US locale in 2.5. Patch and
new locale tests by Hye-Shik Chang.
2005-12-29 20:35:52 +00:00
Tim Peters
35c3f4f249
do_mkvalue(), 'I' and 'k' cases: squash legitimate
...
compiler warnings about mixing signed and unsigned types
in comparisons.
2005-12-24 06:23:41 +00:00
Tim Peters
c3d12ac88c
const poisoning, spreading to fix new const warnings
...
in _winreg.c.
2005-12-24 06:03:06 +00:00
Neal Norwitz
4ac13dfc3a
Remove extra parens
2005-12-19 06:10:07 +00:00
Neal Norwitz
30b5c5d011
Fix SF bug #1072182 , problems with signed characters.
...
Most of these can be backported.
2005-12-19 06:05:18 +00:00
Neal Norwitz
5d0ad50f5a
Bug #889500 , fix line number on SyntaxWarning for global declarations.
2005-12-19 04:27:42 +00:00
Fredrik Lundh
93d69a7948
fixed compilation with an ordinary C89 compiler
2005-12-18 15:44:21 +00:00
Neal Norwitz
51abbc7b4a
Fix Armin's bug 1333982. He found it, he didn't created it :-)
...
This code generated a C assertion:
assert 1, ([s for s in x] +
[s for s in x])
pass
assert was completely broken, it needed to use the proper block.
compiler_use_block() is now no longer used, so remove it.
2005-12-18 07:06:23 +00:00
Neal Norwitz
0e7a0ed335
Fix compiler warnings
2005-12-18 05:37:36 +00:00
Neal Norwitz
4e6bf49a5e
Handle more error conditions with SystemError
2005-12-18 05:32:41 +00:00
Neal Norwitz
db83eb3170
Fix Bug #1378022 , UTF-8 files with a leading BOM crashed the interpreter.
...
Needs backport.
2005-12-18 05:29:30 +00:00
Neal Norwitz
e7214a130b
Get float() to be more portable across platforms. Disable hex strings.
2005-12-18 05:03:17 +00:00
Neal Norwitz
87b801cc2d
Set MemoryError when alloc fails
2005-12-18 04:42:47 +00:00
Neal Norwitz
3c52c5a888
Wrap long lines in the grammar
2005-12-18 04:12:30 +00:00
Neal Norwitz
84456bdab3
Cleanup a bit and make things more consistent.
...
Don't double check for NULLs and don't initialize if not necessary.
No functional changes.
2005-12-18 03:16:20 +00:00
Barry Warsaw
2a38a86c1c
Expose Subversion revision number (calculated via "svnversion .") to Python.
...
Add C API function Py_GetBuildNumber(), add it to the interactive prompt
banner (i.e. Py_GetBuildInfo()), and add it as the sys.build_number
attribute. The build number is a string instead of an int because it may
contain a trailing 'M' if there are local modifications.
2005-12-18 01:27:35 +00:00
Neal Norwitz
f599f424a2
SF patch #1355913 , PEP 341 - Unification of try/except and try/finally
...
Modified since ast-arenas was implemented.
2005-12-17 21:33:47 +00:00
Neal Norwitz
adb69fcdff
Merge from ast-arena. This reduces the code in Python/ast.c by ~300 lines,
...
simplifies a lot of error handling code, and fixes many memory leaks.
2005-12-17 20:54:49 +00:00
Neal Norwitz
6f0d479c78
Fix an int/long mismatch identified here:
...
http://www.tortall.net/mu/blog/2005/12/01
Pointed out from SF #1365916 .
Backport candidate.
2005-12-15 06:40:36 +00:00
Neal Norwitz
897ff817d5
SF #1373150 , diffs in working copy after a build
...
Strip off leading dots and slash so the generated files are the same regardless
of whether you configure in the checkout directory or build.
If anyone configures in a different directory, we might want a cleaner
approach using os.path.*(). Hopefully this is good enough.
2005-12-11 21:18:22 +00:00
Neal Norwitz
f8d403dd97
SF #1377897 , Bus error in ast
...
If a line had multiple semi-colons and ended with a semi-colon, we would
loop too many times and access a NULL node. Exit the loop early if
there are no more children.
2005-12-11 20:12:40 +00:00
Neal Norwitz
8ad64aaacc
SF #1370197 , memory leak - ast_error_finish (in error conditions).
2005-12-11 20:08:33 +00:00
Jeremy Hylton
af68c874a6
Add const to several API functions that take char *.
...
In C++, it's an error to pass a string literal to a char* function
without a const_cast(). Rather than require every C++ extension
module to put a cast around string literals, fix the API to state the
const-ness.
I focused on parts of the API where people usually pass literals:
PyArg_ParseTuple() and friends, Py_BuildValue(), PyMethodDef, the type
slots, etc. Predictably, there were a large set of functions that
needed to be fixed as a result of these changes. The most pervasive
change was to make the keyword args list passed to
PyArg_ParseTupleAndKewords() to be a const char *kwlist[].
One cast was required as a result of the changes: A type object
mallocs the memory for its tp_doc slot and later frees it.
PyTypeObject says that tp_doc is const char *; but if the type was
created by type_new(), we know it is safe to cast to char *.
2005-12-10 18:50:16 +00:00
Neal Norwitz
28b32ac6bc
Simplify logic for handling import *
2005-12-06 07:41:30 +00:00
Neal Norwitz
b15ec09343
Reduce scope of feature
2005-12-06 07:26:02 +00:00
Neal Norwitz
c1f213ebdc
Remove unused macro, check is done elsewhere
2005-12-06 06:36:36 +00:00
Neal Norwitz
e536892541
Remove unnecessary extern variable
2005-12-05 07:16:38 +00:00
Martin v. Löwis
b45b315855
Patch #1350409 : Port signal handling to VS 2005.
2005-11-28 17:34:23 +00:00
Neal Norwitz
3a9a3e7864
Fix memory leaks
2005-11-27 20:38:31 +00:00
Neal Norwitz
3715c3e576
Fix a few more ref leaks. Backport candidate
2005-11-24 22:09:18 +00:00
Georg Brandl
f06e30af4a
bug #1281408 : make Py_BuildValue work with unsigned longs and long longs
2005-11-24 15:37:42 +00:00
Neal Norwitz
7bcabc60a3
Fix a few more memory leaks
...
Document more info about the benefits of configuring without
pymalloc when running valgrind
2005-11-20 23:58:38 +00:00
Neal Norwitz
4737b2348b
Last batch of ref leaks in new AST code.
...
Also converted a bunch of assert(0) to SystemError's.
There are still printfs, etc that need to be cleaned up.
2005-11-19 23:58:29 +00:00
Nick Coghlan
944d3eb154
Correctly handle identifiers for anonymous scopes and align genexpr name with symtable.c
2005-11-16 12:46:55 +00:00
Nick Coghlan
99b2533539
Bring handling of genexpr in line with other anonymous scope names
2005-11-16 12:45:24 +00:00
Neal Norwitz
a3fd07d524
add more doc
2005-11-16 05:49:04 +00:00
Neal Norwitz
ef78529e86
version was not initialized properly
2005-11-16 05:04:51 +00:00
Neal Norwitz
6b34789046
Fix another memory leak or two (one real, one potential)
2005-11-15 07:17:53 +00:00
Neal Norwitz
af8f974967
Add a note about how to do the memory deallocation a bit.
...
This needs a lot of work.
2005-11-15 05:09:44 +00:00
Neal Norwitz
e76adcd78a
Fix a whole bunch of potential memory leaks (and some real ones too)
...
in error conditions.
2005-11-15 05:04:31 +00:00
Neal Norwitz
79792651c4
Convert all internal errors from Exception to SystemError
...
Remove an abort() and let a SystemError be raised.
2005-11-14 04:25:03 +00:00
Neal Norwitz
daae6161b5
Use convenience function
2005-11-14 00:47:57 +00:00
Neal Norwitz
e8c0536d57
Fix memory leak with bad generator expression
2005-11-14 00:18:03 +00:00
Neal Norwitz
7b3d5e1779
remove useless debug print helper. fix a couple of exceptions
2005-11-13 21:17:28 +00:00
Neal Norwitz
7b5a604d24
Whoops, checkin consistent versions of *all* files to stop polluting
...
a bunch of names
2005-11-13 19:14:20 +00:00
Neal Norwitz
b6fc9df8fc
Fix a lot of memory and ref leaks in error paths.
...
(Call symtable_exit_block or compiler_exit_scope as appropriate)
Use PyMem_Free on c_future since it was allocated with PyMem_Malloc
2005-11-13 18:50:34 +00:00
Neal Norwitz
6576bd844f
Prevent name pollution by making lots of internal functions static.
2005-11-13 18:41:28 +00:00
Neal Norwitz
2744c6cc35
make internal method static
2005-11-13 01:08:38 +00:00
Neal Norwitz
67715f0420
- SF Bug #1350188 , "setdlopenflags" leads to crash upon "import"
...
It was possible dlerror() returns a NULL pointer, use a default error
message in this case.
2005-11-09 06:59:35 +00:00
Martin v. Löwis
ab0f947a21
Remove .cvsignore files, as they live in svn:ignore
...
properties now.
2005-10-30 22:01:41 +00:00
Neil Schemenauer
982e8d671c
Refactor code for translating "power" nodes.
2005-10-25 09:16:05 +00:00
Neil Schemenauer
c5dd10aa1d
Write a separate ast_for_testlist_gexp() function instead of overloading
...
ast_for_testlist(). Also, write a ast_for_class_bases() function and in
the process fix a memory leak. Add some assertions.
2005-10-25 07:54:54 +00:00
Neil Schemenauer
c396d9edd6
Ensure that compiler_exit_scope() is called as necessary to free memory
...
allocated by compiler_enter_scope(). Change return type for
compiler_exit_scope() to be void.
2005-10-25 06:30:14 +00:00
Neal Norwitz
62c2fac9a0
Do not pollute name block_ty, prefix with _Py_
2005-10-24 00:30:44 +00:00
Neal Norwitz
f1d50684c6
Fix problem handling EXTENDED_ARGs from SF bug # 1333982
2005-10-23 23:00:41 +00:00
Neal Norwitz
7d37f2ff40
cleanup a bit and reuse instrsize (instruction size). working towards fixing problems with EXTENDED_ARG
2005-10-23 22:40:47 +00:00
Neal Norwitz
12ebfd79f8
Use PyErr_NoMemory() instead of rolling our own.
...
Get rid of "int i" unused warnings from Python-ast.c which we are generating.
2005-10-23 19:22:48 +00:00
Neil Schemenauer
dad06a159e
Remove unnecessary local variable.
2005-10-23 18:52:36 +00:00
Neil Schemenauer
2dfcef5c57
Fix check_unoptimized() function. The only optimized namespaces are
...
in function blocks. This elimiates spurious warnings about "import *" and
related statements at the class level.
2005-10-23 18:50:36 +00:00
Neil Schemenauer
8b528b28f1
Fix private name mangling. The symtable also must do mangles so that
...
the scope of names can be correctly determined.
2005-10-23 18:37:42 +00:00
Neil Schemenauer
3a44aaa30f
Use PyTuple_Pack instead of Py_BuildValue.
2005-10-23 17:21:54 +00:00
Neil Schemenauer
d403c45386
Fix arigo's funky LOAD_NAME bug: implicit globals inside classes have
...
historically been looked up using LOAD_NAME, not LOAD_GLOBAL.
looked up by LOAD_NAME, not
2005-10-23 04:24:49 +00:00
Neil Schemenauer
ac699efad8
Don't stop generating code for import statements after the first "import as"
...
part. Fixes one bug from #1333982 .
2005-10-23 03:45:42 +00:00
Neil Schemenauer
147b75931d
Add an assert.
2005-10-23 03:38:19 +00:00
Neil Schemenauer
ccd19218bc
Use <lamba> as the function name for lambdas (matches old compiler).
2005-10-21 18:09:19 +00:00
Jeremy Hylton
ec97a28b60
Fix a bunch of imports to use code.h instead of compile.h.
...
Remove duplicate declarations from compile.h
2005-10-21 14:58:06 +00:00
Armin Rigo
3144130217
ANSI-C-ify the placement of local var declarations.
2005-10-21 12:57:31 +00:00
Michael W. Hudson
aee2e2829d
the ast-branch changed the stack discipline of MAKE_CLOSURE, so we need to
...
bump MAGIC.
2005-10-21 11:32:20 +00:00
Neal Norwitz
37c0844b35
Fix SF bug #1167751 , Argument genexp corner case
...
Incorrect code was generated for:
foo(a = i for i in range(10))
This should have generated a SyntaxError. Fix the Grammar so
it raises a SyntaxError and test it.
I'm uncertain whether this should be backported. It makes
something that was Syntactically valid invalid. However,
the code would either be completely broken or do the wrong thing.
2005-10-21 06:24:02 +00:00
Neal Norwitz
57071ce545
Oops, "=" is not a comparison operator
2005-10-21 05:15:07 +00:00
Neal Norwitz
5f5153e871
Fix some mods that got dropped from the AST merge
2005-10-21 04:28:38 +00:00
Jeremy Hylton
3e0055f8c6
Merge ast-branch to head
...
This change implements a new bytecode compiler, based on a
transformation of the parse tree to an abstract syntax defined in
Parser/Python.asdl.
The compiler implementation is not complete, but it is in stable
enough shape to run the entire test suite excepting two disabled
tests.
2005-10-20 19:59:25 +00:00
Neal Norwitz
708e51a6b1
Fix SF bug #976608 , Unhelpful error message when mtime of a module is -1
...
Will backport.
2005-10-03 04:48:15 +00:00
Neal Norwitz
11bd119226
SF bug #887946 , segfault if redirecting directory
...
Also provide a warning if a directory is passed on the command line.
Add minimal command line test.
Will backport.
2005-10-03 00:54:56 +00:00
Neal Norwitz
40d3781416
- Fix segfault with invalid coding.
...
- SF Bug #772896 , unknown encoding results in MemoryError, which is not helpful
I will only backport the segfault fix. I'll let Anthony decide if he wants
the other changes backported. I will do the backport if asked.
2005-10-02 01:48:49 +00:00
Michael W. Hudson
ce7da6c5e9
Forward port bugfix:
...
[ 1307978 ] Unsatisfied symbols: _PyGILState_NoteThreadState (code)
(note that this only happens in a threads-disabled build).
2005-09-30 08:20:24 +00:00
Raymond Hettinger
6b27cda643
Convert iterator __len__() methods to a private API.
2005-09-24 21:23:05 +00:00
Armin Rigo
1c2d7e5363
clean-up tracing of C functions. In particular, don't call the trace func
...
with an exception currently set!
2005-09-20 18:34:01 +00:00
Armin Rigo
71d7e704b8
Removed a check "if (args != NULL)" which is always True and makes no sense.
2005-09-20 18:13:03 +00:00
Armin Rigo
a6eb56cf46
Don't call memset() before checking that the ptr is not NULL.
2005-09-20 18:07:47 +00:00
Georg Brandl
6953772d90
patch [ 1119423 ] python -c readlink()s and stat()s '-c'
2005-09-15 13:00:34 +00:00
Georg Brandl
77c85e63b4
bug [ 868706 ] Calling builtin function 'eval' from C causes seg fault.
2005-09-15 10:46:13 +00:00
Georg Brandl
6dd14619bb
Complete format code support in getargs.c::skipitem(), which is called when
...
evaluating keyword arguments.
2005-09-14 19:29:53 +00:00
Guido van Rossum
8ee3e5aa93
- Changes donated by Elemental Security to make it work on AIX 5.3
...
with IBM's 64-bit compiler (SF patch #1284289 ). This also closes SF
bug #105470 : test_pwd fails on 64bit system (Opteron).
2005-09-14 18:09:42 +00:00
Guido van Rossum
539c662f10
- Changes donated by Elemental Security to make it work on HP-UX 11 on
...
Itanium2 with HP's 64-bit compiler (SF patch #1225212 ).
2005-09-14 17:49:54 +00:00
Georg Brandl
0c55f2946b
Patch #1290454 : Fix reload() error message when parent module is not in
...
sys.modules.
2005-09-14 06:56:20 +00:00
Georg Brandl
99d7e4e8eb
Whitespace normalization.
2005-08-31 22:21:15 +00:00
Georg Brandl
02c42871cf
Disallow keyword arguments for type constructors that don't use them.
...
(fixes bug #1119418 )
2005-08-26 06:42:30 +00:00
Martin v. Löwis
d35edda682
Forward UnicodeDecodeError into SyntaxError for source encoding errors.
...
Will backport to 2.4.
2005-08-24 08:39:24 +00:00
Raymond Hettinger
a710b331da
SF bug #1242657 : list(obj) can swallow KeyboardInterrupt
...
Fix over-aggressive PyErr_Clear(). The same code fragment appears in
various guises in list.extend(), map(), filter(), zip(), and internally
in PySequence_Tuple().
2005-08-21 11:03:59 +00:00
Raymond Hettinger
beb3101b05
Add a C API for sets and frozensets.
2005-08-16 03:47:52 +00:00
Barry Warsaw
e2eca0b709
Port from the Python 2.4 branch, patches for SF bug # 900092,
...
hotshot.stats.load.
2005-08-15 18:14:19 +00:00
Tim Peters
ea9dcdc062
com_yield_expr(): Squash new compiler wng about unreferenced local.
2005-08-03 18:33:05 +00:00
Phillip J. Eby
0d6615fd29
PEP 342 implementation. Per Guido's comments, the generator throw()
...
method still needs to support string exceptions, and allow None for the
third argument. Documentation updates are needed, too.
2005-08-02 00:46:46 +00:00
Raymond Hettinger
d794666048
* Improve code for the empty frozenset singleton:
...
- Handle both frozenset() and frozenset([]).
- Do not use singleton for frozenset subclasses.
- Finalize the singleton.
- Add test cases.
* Factor-out set_update_internal() from set_update(). Simplifies the
code for several internal callers.
* Factor constant expressions out of loop in set_merge_internal().
* Minor comment touch-ups.
2005-08-01 21:39:29 +00:00
Georg Brandl
e35b657efd
Fix cleanup DECREF logic in builtin_filter function.
2005-07-19 22:20:20 +00:00
Georg Brandl
9a3240e8e6
bug 1234979 addition
2005-07-09 15:26:33 +00:00
Georg Brandl
af410b510d
bug [ 1234979 ] Lock.acquire treats only 1 as True
2005-07-08 22:26:13 +00:00
Brett Cannon
c9371d4a1b
Fix signedness of various char variables to stop causing a warning under gcc 4.
2005-06-25 08:23:41 +00:00
Brett Cannon
55fa66dd45
Add comments about PyThreadState and the usage of its fields.
2005-06-25 07:07:35 +00:00
Michael W. Hudson
188d4366be
Fix bug:
...
[ 1163563 ] Sub threads execute in restricted mode
basically by fixing bug 1010677 in a non-broken way.
Backport candidate.
2005-06-20 16:52:57 +00:00
Michael W. Hudson
867f2d45cd
You can have more than one thread state for a thread if they
...
correspond to different interpreters (I hope, please revert if this is
wrong :).
2005-06-16 11:35:00 +00:00
Michael W. Hudson
f2ca5af439
Fix bug
...
[ 1180997 ] lax error-checking in new-in-2.4 marshal stuff
which I'd assigned to Martin, but actually turned out to be easy to fix.
Also, a test.
2005-06-13 18:28:46 +00:00
Michael W. Hudson
01fca11080
Remove extraneous format character from PyArg_ParseTuple call in
...
marshal_loads.
Bugfix candidate.
2005-06-13 17:50:18 +00:00
Michael W. Hudson
6d6917be00
Fix a couple of crashing-on-malformed data marshal bugs.
2005-06-03 15:17:16 +00:00
Michael W. Hudson
df88846ebc
This is my patch:
...
[ 1180995 ] binary formats for marshalling floats
Adds 2 new type codes for marshal (binary floats and binary complexes), a
new marshal version (2), updates MAGIC and fiddles the de-serializing of
code objects to be less likely to clobber the real reason for failing if
it fails.
2005-06-03 14:41:55 +00:00
Michael W. Hudson
ba283e2b7f
This is my patch:
...
[ 1181301 ] make float packing copy bytes when they can
which hasn't been reviewed, despite numerous threats to check it in
anyway if noone reviews it. Please read the diff on the checkin list,
at least!
The basic idea is to examine the bytes of some 'probe values' to see if
the current platform is a IEEE 754-ish platform, and if so
_PyFloat_{Pack,Unpack}{4,8} just copy bytes around.
The rest is hair for testing, and tests.
2005-05-27 15:23:20 +00:00
Jason Tishler
7961aa6135
Patch #1197318 : Cygwin case-sensitive import patch
...
A problem regarding importing symlinked modules was recently reported on the
Cygwin mailing list:
http://cygwin.com/ml/cygwin/2005-04/msg00257.html
The following test case demonstrates the problem:
$ ls -l
total 1
lrwxrwxrwx 1 jt None 6 Apr 23 13:32 bar.py -> foo.py
-rw-r--r-- 1 jt None 24 Apr 18 20:13 foo.py
$ python -c 'import bar'
Traceback (most recent call last):
File "<string>", line 1, in ?
ImportError: No module named bar
Since Cygwin's case_ok() uses a modified version of the Windows's version, the
symlinked bar module actually resolves to file foo.py instead of bar.py. This
obviously causes the matching code to fail (regardless of case).
The patch fixes this problem by making Cygwin use the Mac OS X case_ok()
instead of a modified Window's version.
2005-05-20 00:56:54 +00:00
Michael W. Hudson
774479c68b
Fix:
...
[ 1176893 ] Readline segfault
by unsilly-ing PyGILState_Release().
Backport candidate.
2005-04-18 08:46:17 +00:00
Hye-Shik Chang
b6fa2814f7
Make a handy macro, Py_DEFAULT_RECURSION_LIMIT to allow to define
...
a default value of recursion limit from build systems. 1000 levels
are still too high for some 64bit systems.
2005-04-04 15:49:02 +00:00
Michael W. Hudson
5253c30791
I suppose a bug report or even a fix would be a better response, but
...
commit a yelp about a noted flaw the error messages for METH_KEYWORDS
functions under some circumstances.
2005-03-30 16:41:55 +00:00
Anthony Baxter
12b6f6cac7
Move exception finalisation later in the shutdown process - this
...
fixes the crash seen in bug #1165761
2005-03-29 13:36:16 +00:00
Martin v. Löwis
8b8fb3db5a
Add 0 to _POSIX_SEMAPHORES. Will backport to 2.4.
2005-03-28 12:34:20 +00:00
Anthony Baxter
19b2369d42
Patch #1163249 - Correctly handle _POSIX_SEMAPHORES == -1 to mean no
...
support for posix semaphores.
2005-03-16 04:15:07 +00:00
Raymond Hettinger
96229b1918
Add two new functions, any() and all().
2005-03-11 06:49:40 +00:00
Brett Cannon
409d8f2ebd
Allow classes to be defined with empty parentheses. This means that
...
``class C(): pass`` is no longer a syntax error.
2005-03-05 06:47:57 +00:00
Martin v. Löwis
96d743ec8b
Patch #1115086 : support PY_LONGLONG in structmember.
2005-03-03 23:00:26 +00:00
Martin v. Löwis
6ce7ed23d0
Revert previous checkin on getargs 'L' code. Try to convert all
...
numbers in PyLong_AsLongLong, and update test suite accordingly.
Backported to 2.4.
2005-03-03 12:26:35 +00:00
Martin v. Löwis
4bf108d74f
Patch #802188 : better parser error message for non-EOL following line cont.
2005-03-03 11:45:45 +00:00
Martin v. Löwis
ff232d7230
Clear internal call error in 'L' format. Fixes #723201 .
...
Backported to 2.4.
2005-03-03 09:24:38 +00:00
Brett Cannon
5dc8ced4a8
Silence a gcc warning about putting in parentheses around && expressions mixed
...
with || expressions. Also clarifies intend of 'if' conditional.
2005-03-03 07:01:48 +00:00
Raymond Hettinger
e63a078635
Preserve sign of -0.0 when result is run through marshal.
2005-02-23 13:37:55 +00:00
Raymond Hettinger
07359a7fed
Document how the pattern recognizer keeps all of its references in bounds.
...
Add a test in case the underlying assumptions ever change (i.e. the
compiler starts generating code blocks that are not punctuated by
RETURN_VALUE).
2005-02-21 20:03:14 +00:00
Raymond Hettinger
80121491e0
Teach the peepholer to fold unary operations on constants.
...
Afterwards, -0.5 loads in a single step and no longer requires a runtime
UNARY_NEGATIVE operation.
2005-02-20 12:41:32 +00:00
Raymond Hettinger
b615bf0681
Remove the set conversion which didn't work with: [] in (0,)
2005-02-10 01:42:32 +00:00
Raymond Hettinger
5e547969f8
Have set conversion replace existing constant if not used elsewhere.
2005-02-09 21:24:51 +00:00
Guido van Rossum
0f1f63cf07
Close the discussion in SF bug 1069160.
2005-02-08 02:07:57 +00:00
Raymond Hettinger
7fcb7869ba
Adopt Skip's idea to optimize lists of constants in the context
...
of a "in" or "not in" test.
2005-02-07 19:32:38 +00:00
Raymond Hettinger
a164574937
Transform "x in (1,2,3)" to "x in frozenset([1,2,3])".
...
Inspired by Skip's idea to recognize the throw-away nature of sequences
in this context and to transform their type to one with better performance.
2005-02-06 22:05:42 +00:00
Jeremy Hylton
c9add9a483
Fix bug that allowed future statements virtually anywhere in a module.
...
If we exit via the break here, we need to set ff_last_lineno or
FUTURE_POSSIBLE() will remain true. The bug affected statements
containing a variety of expressions, but not all expressions. It has
been present since Python 2.2.
2005-02-04 18:38:43 +00:00
Martin v. Löwis
13a1fde4da
Partially revert #1074011 ; don't try to fflush stdin.
...
Backported to 2.3 and 2.4.
2005-01-27 18:56:16 +00:00
Raymond Hettinger
9feb267caf
Do not fold a constant if a large sequence will result.
...
Saves space in the presence of code like: (None,)*10000
2005-01-26 12:50:05 +00:00
Anthony Baxter
c560a00966
happy new year! (on the trunk)
2005-01-25 12:40:01 +00:00
Martin v. Löwis
8e3ca8af26
Flush std{in,out,err} before closing it. Fixes #1074011 .
...
Will backport to 2.4 and 2.3.
2005-01-23 09:41:49 +00:00
Michael W. Hudson
75eabd2944
Change the name of the macro used by --with-tsc builds to the less
...
inscrutable READ_TIMESTAMP.
2005-01-18 15:56:11 +00:00
Michael W. Hudson
969f485cba
-X died some time ago; remove a tiny bit of associated cruft.
2005-01-18 15:26:11 +00:00
Andrew MacIntyre
2bea474476
make thread stack size compile-time tunable on OS/2
2005-01-17 12:16:36 +00:00
Fred Drake
d7c27bef52
remove unused variable
2005-01-12 16:00:55 +00:00
Raymond Hettinger
a422c34b70
SF 1098985: set objects cannot be marshalled
2005-01-11 03:03:27 +00:00
Skip Montanaro
c9a4762bd6
comment tweak
2005-01-08 21:58:58 +00:00
Armin Rigo
664b43b3f4
Re-running python with/without the -Qnew flag uses incorrectly optimized
...
bytecodes from the previously saved .pyc files. Fixed by disabling the static
optimization of BINARY_DIVIDE between two constants.
2005-01-07 18:10:51 +00:00
Raymond Hettinger
c34f8673a1
Teach the peephole optimizer to fold simple constant expressions.
2005-01-02 06:17:33 +00:00