Guido van Rossum
ee2373b930
Oops, missed some renamings.
1997-05-07 23:51:07 +00:00
Guido van Rossum
b05a5c7698
Instead of importing graminit.h whenever one of the three grammar 'root'
...
symbols is needed, define these in Python.h with a Py_ prefix.
1997-05-07 17:46:13 +00:00
Guido van Rossum
666b17a280
New dir() function --
...
- uses abstract interface where possible
- uses __members__ and __methods__
- returns [] when an object has no info available
1997-05-06 16:36:57 +00:00
Guido van Rossum
478e718aca
Keep MS compiler happy: use (int)strlen() when comparing; make sure
...
not to use kill().
1997-05-06 15:24:59 +00:00
Guido van Rossum
fc49073cd0
Used operators from abstract.h where possible (arithmetic operators,
...
get/set/del item). This removes a pile of duplication. There's no
abstract operator for 'not' but I removed the function call for it
anyway -- it's a little faster in-line.
1997-05-06 15:06:49 +00:00
Guido van Rossum
fdf95dd525
Checkin of Jack's buffer mods.
...
Not really checked, but didn't fail any tests either...
1997-05-05 22:15:02 +00:00
Guido van Rossum
13454c3f9c
Fix old typo PyArgs_VaParse -> PyArg_VaParse.
...
(Redoing the checking without merging in Jack's buffer mods.)
1997-05-05 21:57:29 +00:00
Guido van Rossum
a027efa5bf
Massive changes for separate thread state management.
...
All per-thread globals are moved into a struct which is manipulated
separately.
1997-05-05 20:56:21 +00:00
Guido van Rossum
73237c54b4
Only use PyCode_Addr2Line to get tb_lineno when Py_OptimizeFlag is set.
1997-05-05 20:53:25 +00:00
Guido van Rossum
9218b70bdc
Remove 2 out of 3 __FreeBSD__ tests.
...
These are no longer needed as of FreeBSD 2.0.5, according to
Thomas Gellekum <tg@ihf.rwth-aachen.de>.
1997-05-05 15:03:26 +00:00
Guido van Rossum
f4806c2a85
Add detach call so threads are GC'ed.
1997-04-30 19:59:22 +00:00
Guido van Rossum
bc2472db8e
Avoid some potential (though unlikely) sprintf buffer overflows.
1997-04-30 19:07:54 +00:00
Guido van Rossum
15e33a4c42
Avoid sprintf buffer overflow if more than 9999 arguments.
1997-04-30 19:00:27 +00:00
Guido van Rossum
d11bfdd9f5
Ugly hack for SGI IRIX 6.2. Apparently _POSIX_THREADS is defined even
...
when the pthread package is not installed. configure knows better, so
#undef _POSIX_THREADS when pthread.h does not exist.
1997-04-29 21:48:34 +00:00
Guido van Rossum
bb5c6f8529
Oops, forgot one: inittab.
1997-04-29 20:42:30 +00:00
Guido van Rossum
0bac33b420
Oops, forgot one: inittab.
1997-04-29 20:24:10 +00:00
Guido van Rossum
79f25d9a7b
Quickly renamed the remaining files -- this directory is done.
1997-04-29 20:08:16 +00:00
Guido van Rossum
65bf9f265e
Quickly renamed.
1997-04-29 18:33:38 +00:00
Guido van Rossum
373c869a6a
Quickly renamed. Also removed the long comment explaining why this is
...
better than the old error API.
1997-04-29 18:22:47 +00:00
Guido van Rossum
b209a116cf
Quickly renamed.
1997-04-29 18:18:01 +00:00
Guido van Rossum
62cb0bafe2
Moved to ../Modules.
1997-04-29 15:50:32 +00:00
Guido van Rossum
58a6ac55d2
Removed cgensupport.[co] (to ../Modules).
1997-04-29 15:42:53 +00:00
Guido van Rossum
c474deaaf6
Expand one level of symbolic link in sys.argv[0] before inserting its
...
dirname in sys.path. This means that you can create a symbolic link
foo in /usr/local/bin pointing to /usr/yourname/src/foo/foo.py, and
then invoking foo will insert /usr/yourname/src/foo in sys.path, not
/usr/local/bin. This makes it easier to have multifile programs
(before, the program would have to do an os.readlink(sys.argv[0])
itself and insert the resulting directory in sys.path -- Grail does
this).
Note that the expansion is only used for sys.path; sys.argv[0] is
still the original, unadorned filename (/usr/local/bin/foo in the
example).
1997-04-25 15:38:31 +00:00
Guido van Rossum
03a7466b8f
OK, ready to make 'assert' a keyword (instead of '__assert__').
1997-04-16 00:34:46 +00:00
Guido van Rossum
7844e38a98
Keep Microsoft VC happy.
1997-04-11 20:44:04 +00:00
Guido van Rossum
6bf62dad9e
Keep gcc -Wall and Microsoft VC happy.
1997-04-11 20:37:35 +00:00
Guido van Rossum
1d2e240954
(Jack:) On the Mac, don't automatically enable dynamic loading.
1997-04-11 19:22:06 +00:00
Guido van Rossum
62bf108392
(Jack:) Don't define TRUE and FALSE if already defined.
1997-04-11 19:19:46 +00:00
Guido van Rossum
6976a52099
(Jack:) On the Mac, use standard strerror() if using MSL C-library.
1997-04-11 19:18:23 +00:00
Guido van Rossum
644a12b00c
Tweaks to keep the Microsoft compiler quier.
1997-04-09 19:24:53 +00:00
Guido van Rossum
5f5e817e00
Support for alternative string quotes (a"xx", b"xx", c"xx", ...).
...
In interactive mode, do generate code for single-string statements.
1997-04-06 03:41:40 +00:00
Guido van Rossum
2a7f58de1c
Allow passing a .pyo file.
...
Print correct name in fatal error from PyErr_Print.
1997-04-02 05:28:38 +00:00
Guido van Rossum
228d7f3f67
Added assert statement.
1997-04-02 05:24:36 +00:00
Guido van Rossum
8ecd1ad785
Added assert grammar.
1997-04-02 05:24:08 +00:00
Guido van Rossum
c6472e9ee1
1. Add string conversions to int(), long(), float(). (Not to complex()!)
...
2. Fix two bugs in complex():
- Memory leak when using complex(classinstance) -- r was never
DECREF'ed.
- Conversion of the second argument, if not complex, was done using
the type vector of the 1st.
1997-03-31 17:15:43 +00:00
Guido van Rossum
45b83915f8
New form of PyFPE_END_PROTECT macro.
1997-03-14 04:32:50 +00:00
Guido van Rossum
6af0c00ab6
Fix dumb bug calling parsestrplus with wrong node as argument.
...
Add prototypes for parsestr() and parsestrplus() (unrelated, but
seemed to make sense.)
1997-03-11 21:25:55 +00:00
Guido van Rossum
1c6a459921
Define __debug__ as 0 if -O is given, 1 otherwise. Also test for
...
errors in initializing the dictionary.
1997-03-11 18:43:26 +00:00
Guido van Rossum
7c53111d5b
Added support for ``if __debug__:'' -- if -O is given, this form is
...
recognized by the code generator and code generation for the test and
the subsequent suite is suppressed.
One must write *exactly* ``if __debug__:'' or ``elif __debug__:'' --
no parentheses or operators must be present, or the optimization is
not carried through. Whitespace doesn't matter. Other uses of
__debug__ will find __debug__ defined as 0 or 1 in the __builtin__
module.
1997-03-11 18:42:21 +00:00
Guido van Rossum
0824f63cfc
When -O is given, use ".pyo" instead of ".pyc".
1997-03-11 18:37:35 +00:00
Guido van Rossum
c43b685054
Clarify error message for unexpected keyword parameter.
1997-03-10 22:58:23 +00:00
Guido van Rossum
82598051e6
Greatly renamed. Not a very thorough job -- I'm going to restructure
...
it anyway.
1997-03-05 00:20:32 +00:00
Guido van Rossum
8e793d925c
Add global Py_OptimizeFlag. SET_LINENO is omitted again unless this is
...
nonzero.
1997-03-03 19:13:14 +00:00
Guido van Rossum
0ae748d3c4
Changes for Lee Busby's SIGFPE patch set.
...
New file pyfpe.c and exception FloatingPointError.
Surround some f.p. operations with PyFPE macro brackets.
1997-02-14 22:58:07 +00:00
Guido van Rossum
0f4bbd2f34
Keep gcc -Wall happy.
1997-02-14 21:12:56 +00:00
Guido van Rossum
2dc466169e
Oops, remove an unused variable from PyErr_Format().
1997-02-14 20:57:31 +00:00
Guido van Rossum
7433b12a5c
Added new global flag variable Py_InteractiveFlag and new function
...
Py_FdIsInteractive(). The flag is supposed to be set by the -i
command line option. The function is supposed to be called instead of
isatty(). This is used for Lee Busby's wish #1 , to have an option
that pretends stdin is interactive even when it really isn't.
1997-02-14 19:45:36 +00:00
Guido van Rossum
1548bacb14
Added convenience function PyErr_Format(exception, formatstring, ...) -> NULL.
1997-02-14 17:09:47 +00:00
Guido van Rossum
0d85be19e2
*Don't* kill all local variables on function exit. This will be done
...
by the frameobject dealloc when it is time for the locals to go. When
there's still a traceback object referencing this stack frame, we
don't want the local variables to disappear yet.
(Hmm... Shouldn't they be copied to the f_locals dictionary?)
1997-02-14 16:32:14 +00:00
Guido van Rossum
e8811f85ed
Added intern() function.
1997-02-14 15:48:05 +00:00
Guido van Rossum
deb0c5e66c
Two small changes:
...
- Use co->... instead of f->f_code->...; save an extra lookup of what
we already have in a local variable).
- Remove test for nlocals > 0 before setting fastlocals to
f->f_localsplus; 0 is a rare case and the assignment is safe even
then.
1997-01-27 23:42:36 +00:00
Guido van Rossum
d0eb429b88
Plug a leak with calling something other than a function or method is
...
called with keyword arguments -- the keyword and value were leaked.
This affected for instance with a __call__() method.
Bug reported and fix supplied by Jim Fulton.
1997-01-27 21:30:09 +00:00
Guido van Rossum
950361c6ca
Patches for (two forms of) optional dynamic execution profiling --
...
i.e., counting opcode frequencies, or (with DXPAIRS defined) opcode
pair frequencies. Define DYNAMIC_EXECUTION_PROFILE on the command
line (for this file and for sysmodule.c) to enable.
1997-01-24 13:49:28 +00:00
Guido van Rossum
8c5df06ec7
Change the control flow for error handling in the function prelude to
...
jump to the "Kill locals" section at the end. Add #ifdef macintosh
bandaid to make sure we call sigcheck() on the Mac.
1997-01-24 04:19:24 +00:00
Guido van Rossum
43f1b8d6e4
Added optional interface for dynamic execution profile (to be gathered
...
in ceval.c).
1997-01-24 04:07:45 +00:00
Guido van Rossum
b3f515af64
Get the line number from PyCode_Addr2Line instead of believing
...
tb_lineno. Store it in tb_lineno for the user.
1997-01-24 04:02:55 +00:00
Guido van Rossum
99d182550b
New magin number (because of linenumber table).
1997-01-24 03:44:53 +00:00
Guido van Rossum
d031c89891
Marshal the line number table of code objects.
1997-01-24 03:44:17 +00:00
Guido van Rossum
da4eb5c3b5
Instead of emitting SET_LINENO instructions, generate a line number
...
table which is incorporated in the code object. This way, the runtime
overhead to keep track of line numbers is only incurred when an
exception has to be reported.
1997-01-24 03:43:35 +00:00
Guido van Rossum
a4240132ec
Kill all local variables on function return. This closes a gigantic
...
leak of memory and file descriptors (thanks for Roj for reporting
that!). Alas, the speed goes down by 5%. :-(
1997-01-21 21:18:36 +00:00
Guido van Rossum
70d44787a3
Only call sigcheck() at the ticker code if we don't have true signals.
...
This is safe now that both intrcheck() and signalmodule.c schedule a
sigcheck() call via Py_AddPendingCall().
This gives another 7% speedup (never run such a test twice ;-).
1997-01-21 06:15:24 +00:00
Guido van Rossum
1aa14838d2
Cleanup:
...
- fix bug in Py_MakePendingCalls() with threading
- fix return type of do_raise
- remove build_slice (same as PySlice_New)
- remove code inside #if 0
- remove code inside #ifdef CHECK_STACK
- remove code inside #ifdef SUPPORT_OBSOLETE_ACCESS
- comment about newimp.py should refer to ni.py
1997-01-21 05:34:20 +00:00
Guido van Rossum
554fa49500
get build info from elsewhere
1997-01-20 18:34:55 +00:00
Guido van Rossum
768360243a
Changes for frame object speedup:
...
- get fastlocals differently
- call newframeobject() with fewer arguments
- toss getowner(), which was unused anyway
1997-01-20 04:26:20 +00:00
Guido van Rossum
7eb883a18e
Remove unused variable.
1997-01-18 20:04:05 +00:00
Guido van Rossum
8d75161671
Intern the string "__complex__".
1997-01-18 08:04:16 +00:00
Guido van Rossum
7b89b6a660
Intern all names and varnames in newcodeobject(), plus those string
...
literals that look like identifiers. Also intern all strings used as
names during the compilation.
1997-01-18 08:02:57 +00:00
Guido van Rossum
3dfd53b4c8
Add "if (x != NULL) continue;" (or similar for err==0) before the
...
break to most cases, as suggested by Tim Peters. This gives another
8-10% speedup.
1997-01-18 02:46:13 +00:00
Guido van Rossum
98a9b312e8
Marshal the new stacksize item in code objects.
1997-01-17 21:07:08 +00:00
Guido van Rossum
7af8130857
Working semaphore implementation by Sjoerd.
1997-01-17 21:06:41 +00:00
Guido van Rossum
dd5db43905
New MAGIC number (code objects have one more item when marshalled).
1997-01-17 21:06:11 +00:00
Guido van Rossum
62f7d15d0b
Use the stack size from the code object and the CO_MAXBLOCKS constant
...
from compile.h. Remove all eval stack overflow checks.
1997-01-17 21:05:28 +00:00
Guido van Rossum
8b993a98db
Add co_stacksize field to codeobject structure, and stacksize argument
...
to PyCode_New() argument list. Move MAXBLOCKS constant to conpile.h.
Added accurate calculation of the actual stack size needed by the
generated code.
Also commented out all fprintf statements (except for a new one to
diagnose stack underflow, and one in #ifdef'ed out code), and added
some new TO DO suggestions (now that the stacksize is taken of the TO
DO list).
1997-01-17 21:04:03 +00:00
Guido van Rossum
635abd24f0
Check for duplicate keyword arguments at compile time.
1997-01-06 22:56:52 +00:00
Guido van Rossum
8f49e12a0e
Make builtin_module_names a tuple instead of a list.
1997-01-06 22:55:54 +00:00
Guido van Rossum
408027ea46
Rename DEBUG macro to Py_DEBUG
1996-12-30 16:17:54 +00:00
Guido van Rossum
0aa9ee65ab
Moved the raise logic out of the main interpreter loop to a separate function.
...
The raise logic has one additional feature: if you raise <class>,
<value> where <value> is not an instance, it will construct an
instance using <value> as argument. If <value> is None, <class> is
instantiated without arguments. If <value> is a tuple, it is used as
the argument list.
This feature is intended to make it easier to upgrade code from using
string exceptions to using class exceptions; without this feature,
you'd have to change every raise statement from ``raise X'' to ``raise
X()'' and from ``raise X, y'' to ``raise X(y)''. The latter is still
the recommended form (because it has no ambiguities about the number
of arguments), but this change makes the transition less painful.
1996-12-10 18:07:35 +00:00
Guido van Rossum
c1547d930f
Better way to handle 64-bit ints, keeping gcc -Wall happy.
...
Tested with AMK's help.
1996-12-10 15:39:04 +00:00
Guido van Rossum
1a2c5cbcc4
Add unistd.h to make gcc -Wall happy.
1996-12-10 15:37:36 +00:00
Guido van Rossum
067998f35e
Add const to error and newstring functions
1996-12-10 15:33:34 +00:00
Guido van Rossum
80bb9655f0
Keep gcc -Wall happy.
1996-12-05 23:27:02 +00:00
Guido van Rossum
ed0af8fe70
Support __complex__ method on instances, for complex() conversion.
...
Keep gcc -Wall happy.
1996-12-05 23:18:18 +00:00
Guido van Rossum
150b2df682
Change the Don Beaudry hack into the Don B + Jim F hack; now, if *any*
...
base class is special it gets invoked.
Make gcc -Wall happy.
1996-12-05 23:17:11 +00:00
Guido van Rossum
3afb5959aa
Some extra flags that an HPUX user wants me to add.
1996-12-05 23:15:35 +00:00
Guido van Rossum
b0c168cbe8
Tentative changes to make this work better on 64-bit machines.
...
A plain int that doesn't fit in 32 bits will be marshalled using a new
type. 32 bits machines can't handle this and will issue a warning.
1996-12-05 23:15:02 +00:00
Guido van Rossum
d266eb460e
New permission notice, includes CNRI.
1996-10-25 14:44:06 +00:00
Guido van Rossum
b75fba04c7
Forget about Ellipses b/w compatibility.
1996-10-16 04:18:36 +00:00
Guido van Rossum
e449af7da9
Ellipses -> Ellipsis rename (the dictionary really says that it should
...
be Ellipsis!).
Bumped the API version because a linker-visible symbol is affected.
Old C code will still compile -- there's a b/w compat macro.
Similarly, old Python code will still run, builtin exports both
Ellipses and Ellipsis.
1996-10-11 16:25:41 +00:00
Guido van Rossum
cf1474b73a
Sjoerd's thread changes (including down_sema typo fix).
...
Note: waitflag not supported on NT.
1996-10-08 14:17:53 +00:00
Guido van Rossum
452a9833c9
Added line number to most compile-time error messages.
1996-09-17 14:32:04 +00:00
Guido van Rossum
9b38a145e2
Rationalized MS ifdefs
1996-09-11 23:12:24 +00:00
Guido van Rossum
cc88341e6d
Changes to setpythonpath():
...
Test for / as well as for SEP for MS filenames.
Drop trailing separator from sys.path[0] for MS and Unix filenames.
1996-09-10 14:44:21 +00:00
Guido van Rossum
b072150d7f
Stupid bug: complex(x,y) would yield x+xj
1996-09-07 15:55:27 +00:00
Guido van Rossum
57b1822459
*** empty log message ***
1996-08-29 18:10:41 +00:00
Guido van Rossum
927f6e68fb
Needed more includes...
1996-08-29 18:10:30 +00:00
Guido van Rossum
bae29713ec
*** empty log message ***
1996-08-29 17:48:26 +00:00
Guido van Rossum
6eea32622c
typo (#indef -> #undef)
1996-08-26 14:58:54 +00:00
Guido van Rossum
d8a6d1c2e7
Afterthough: leave both leading underscores in,
...
so __spam becomes _ClassName__spam.
1996-08-24 07:54:27 +00:00
Guido van Rossum
fe2236f3c8
Oops need to mangle global statement separately
1996-08-24 07:29:04 +00:00
Guido van Rossum
8ff077b094
Name mangling, what the heck!
1996-08-24 06:21:31 +00:00