Commit Graph

16882 Commits

Author SHA1 Message Date
Martin v. Löwis 04a1a542cb Patch #103052: Restore non-cyclic operation of pulldom.PullDOM 2001-01-26 18:53:42 +00:00
Marc-André Lemburg 2efc3238d7 Be extra careful with linking against libtermcap. This is now only done
if we can find the libtermcap in the usual places. Some platforms don't
have libtermcap, e.g. MacOSX.
2001-01-26 18:23:02 +00:00
Marc-André Lemburg 7c6fcda7bf Fixed setup.py to allow:
1. skipping of extensions which cause an error (a warning message
   is written to stdout, but the build process no longer fails
   completely)

2. the readline extension to compile on SuSE Linux (and probably
   other platforms too) by adding /usr/lib/termcap to the library search
   path
2001-01-26 18:03:24 +00:00
Marc-André Lemburg 49c994239f Added an execution layer to be able to customize per-extension
building.
2001-01-26 18:00:48 +00:00
Jeremy Hylton d30e587e00 unnecessary semicolon 2001-01-26 17:15:18 +00:00
Jeremy Hylton 5b48c45736 unnecessary semicolon 2001-01-26 17:08:32 +00:00
Jack Jansen a813153e15 Got waste to work for Carbon. 2001-01-26 16:32:20 +00:00
Neil Schemenauer 83356ef31d - Use PY_CFLAGS when compile modules that will be part of the interpreter.
- Put shared modules in the same place as object files.
2001-01-26 16:22:26 +00:00
Neil Schemenauer 61c5115672 - LIBRARY is now a SUBST variable.
- Add CFLAGSFORSHARED variable.  configure sets this to CCSHARED if LDLIBRARY
  is a shared library.
- Remove -fPIC from OPT, it has no business there.
- Change CCSHARED option for Linux to -fPIC.  It should probably be
  -fPIC on a few other platforms as well.
- Don't create silly boot Makefile, create Setup files and run makesetup
  instead.
2001-01-26 16:18:16 +00:00
Neil Schemenauer 3ecf0aae7b The usual. 2001-01-26 16:15:20 +00:00
Neil Schemenauer 7ac954b7f6 - Add CFLAGSFORSHARED variable. configure sets this to CCSHARED if LDLIBRARY
is a shared library.
- Add PY_CFLAGS variable (flags used to compile the interpreter)
- clobber now just removes object files, libraries and binaries
2001-01-26 16:14:41 +00:00
Fred Drake 2f4453af6a Typo: coplete --> complete
This closes SF bug #129759.
2001-01-26 15:27:35 +00:00
Tim Peters e360d9507a The combo of getstate/setstate/jumpahead is very powerful, but needs
examples to flesh it out for the uninitiated.  Here they are.
2001-01-26 10:00:39 +00:00
Tim Peters 85e2e4742d SF bug 130030: Claim of bad betavariate algorithm. 2001-01-26 06:49:56 +00:00
Tim Peters 2786543b70 Teach Windows build about new cellobject.c. 2001-01-26 00:12:49 +00:00
Fred Drake 73a3c8fae4 The addition of new parameters to functions in the Python/C API requires
that PYTHON_API_VERSION be incremented.
2001-01-25 22:13:34 +00:00
Guido van Rossum 2b597e4f54 Correct one-line typo, reported by yole @ SF, bug 130077. 2001-01-25 22:12:43 +00:00
Jeremy Hylton 78dc825a41 Fix arguments for PyFrame_New(). The previous checkin used the wrong
arguments, which were based on an interim development API.
2001-01-25 21:48:14 +00:00
Tim Peters be30c6b900 New info in beep() docstring. 2001-01-25 20:40:28 +00:00
Tim Peters cd80410854 Cosmetic changes after some sleep; no change in semantics. 2001-01-25 20:25:57 +00:00
Jeremy Hylton a0ac40c530 Better error message when non-dictionary received for **kwarg 2001-01-25 20:13:10 +00:00
Jeremy Hylton 619eea6821 PEP 227 implementation
test_new: new.code() noew takes two more arguments
test_grammer: Add a bunch of test cases for lambda (not really PEP 227 related)
2001-01-25 20:12:27 +00:00
Jeremy Hylton 4588c78faf PEP 227 implementation
New tests cases for nested scopes.
2001-01-25 20:11:23 +00:00
Jeremy Hylton 5e2d0764cd In subst_vars(), change the name of the argument from str to s to
prevent binding for str from masking use of builtin str in nested
function.

(This is the only case I found in the standard library where a local
shadows a global or builtin.  There may be others, but the regression
test doesn't catch them.)
2001-01-25 20:10:32 +00:00
Jeremy Hylton a39414b15c PEP 227 implementation
Track changes to new opcodes.  Add hasfree list that applies to all
ops that use the closure.
2001-01-25 20:08:47 +00:00
Jeremy Hylton 903f654ac9 PEP 227 implementation
Track changes to PyFrame_New() and PyFuntion_New().
2001-01-25 20:07:56 +00:00
Neil Schemenauer f65e500594 Make module objects from Setup depend on Python.h headers. 2001-01-25 20:07:50 +00:00
Jeremy Hylton 64949cb753 PEP 227 implementation
The majority of the changes are in the compiler.  The mainloop changes
primarily to implement the new opcodes and to pass a function's
closure to eval_code2().  Frames and functions got new slots to hold
the closure.

Include/compile.h
    Add co_freevars and co_cellvars slots to code objects.
    Update PyCode_New() to take freevars and cellvars as arguments
Include/funcobject.h
    Add func_closure slot to function objects.
    Add GetClosure()/SetClosure() functions (and corresponding
    macros) for getting at the closure.
Include/frameobject.h
    PyFrame_New() now takes a closure.
Include/opcode.h
    Add four new opcodes: MAKE_CLOSURE, LOAD_CLOSURE, LOAD_DEREF,
    STORE_DEREF.
    Remove comment about old requirement for opcodes to fit in 7
    bits.
compile.c
    Implement changes to code objects for co_freevars and co_cellvars.

    Modify symbol table to use st_cur_name (string object for the name
    of the current scope) and st_cur_children (list of nested blocks).
    Also define st_nested, which might more properly be called
    st_cur_nested.  Add several DEF_XXX flags to track def-use
    information for free variables.

    New or modified functions of note:
    com_make_closure(struct compiling *, PyCodeObject *)
        Emit LOAD_CLOSURE opcodes as needed to pass cells for free
        variables into nested scope.
    com_addop_varname(struct compiling *, int, char *)
        Emits opcodes for LOAD_DEREF and STORE_DEREF.
    get_ref_type(struct compiling *, char *name)
        Return NAME_CLOSURE if ref type is FREE or CELL
    symtable_load_symbols(struct compiling *)
        Decides what variables are cell or free based on def-use info.
        Can now raise SyntaxError if nested scopes are mixed with
        exec or from blah import *.
    make_scope_info(PyObject *, PyObject *, int, int)
        Helper functions for symtable scope stack.
    symtable_update_free_vars(struct symtable *)
        After a code block has been analyzed, it must check each of
        its children for free variables that are not defined in the
        block.  If a variable is free in a child and not defined in
        the parent, then it is defined by block the enclosing the
        current one or it is a global.  This does the right logic.
    symtable_add_use() is now a macro for symtable_add_def()
    symtable_assign(struct symtable *, node *)
        Use goto instead of for (;;)

    Fixed bug in symtable where name of keyword argument in function
    call was treated as assignment in the scope of the call site. Ex:
        def f():
            g(a=2) # a was considered a local of f

ceval.c
    eval_code2() now take one more argument, a closure.
    Implement LOAD_CLOSURE, LOAD_DEREF, STORE_DEREF, MAKE_CLOSURE>

    Also: When name error occurs for global variable, report that the
    name was global in the error mesage.

Objects/frameobject.c
    Initialize f_closure to be a tuple containing space for cellvars
    and freevars.  f_closure is NULL if neither are present.
Objects/funcobject.c
    Add support for func_closure.
Python/import.c
    Change the magic number.
Python/marshal.c
    Track changes to code objects.
2001-01-25 20:06:59 +00:00
Jeremy Hylton fbd849f201 PEP 227 implementation
A cell contains a reference to a single PyObject.  It could be
implemented as a mutable, one-element sequence, but the separate type
has less overhead.
2001-01-25 20:04:14 +00:00
Jack Jansen c34a5ade0a ucnhash module has gone, xreadlines module added. 2001-01-25 18:31:16 +00:00
Fred Drake 8863460490 Add bzip2 archives back to the set of generated archives; we had way too
many reasonable requests to keep them around.

Bump version number.
2001-01-25 17:32:51 +00:00
Fred Drake 29052482d1 Removed references to Python 1.5.3; that was a "tentative" number I used
in the docs to indicate the next version before we decided on 1.6.

Adjusted winsound.Beep() description slightly as well.
2001-01-25 17:29:18 +00:00
Fred Drake cf069da57d Update link to LaTeX2HTML web site. 2001-01-25 17:25:28 +00:00
Jeremy Hylton 92e9f29aec add extra tests to verify that co_varnames is being set up properly
also normalize checks for syntax errors and delete commented out
definition of verify.
2001-01-25 17:03:37 +00:00
Jeremy Hylton a6ebc4841d Fix bug reported by Ka-Ping Yee: The compiler botched parsing function
parameters that contained both anonymous tuples and *arg or **arg. Ex:
def f(a, (b, c), *d): pass

Fix the symtable_params() to generate names in the right order for
co_varnames slot of code object.  Consider *arg and **arg before the
"complex" names introduced by anonymous tuples.
2001-01-25 17:01:49 +00:00
Jack Jansen 41eb3c7dc5 ucnhash module has gone. 2001-01-25 16:28:34 +00:00
Jack Jansen 4ff2fe7ee1 ucnhash module has gone, xreadlines module added. 2001-01-25 16:28:00 +00:00
Skip Montanaro 03d9014992 added a few more __all__ lists
test___all__.py: fail silently in check_all if the module can't be imported
2001-01-25 15:29:22 +00:00
Skip Montanaro 438bb94789 fail more completely by deleting dbhash from sys.modules if bsddb can't be
loaded - prevents second import later from succeeding spuriously - mostly of
use in regression tests where the module might get imported more than once
2001-01-25 13:47:00 +00:00
Sjoerd Mullender 82e00d6350 Let's keep things portable to non GCC compilers, please.
You can only use mult-line strings in C if each line ends in \.
2001-01-25 10:10:39 +00:00
Tim Peters 517ce23183 Clarify winsound.beep docs, in response to c.l.py beep brouhahalet. 2001-01-25 09:33:48 +00:00
Tim Peters d52269bfd0 Fix bugs introduced by rewrite (in particular, time-based initialization
got broken).  Also added new method .jumpahead(N).  This finally gives us
a semi-decent answer to how Python's RNGs can be used safely and efficiently
in multithreaded programs (although it requires the user to use the new
machinery!).
2001-01-25 06:23:18 +00:00
Tim Peters d7b5e88e8e Reworked random.py so that it no longer depends on, and offers all the
functionality of, whrandom.py.  Also closes all the "XXX" todos in
random.py.  New frequently-requested functions/methods getstate() and
setstate().  All exported functions are now bound methods of a hidden
instance.  Killed all unintended exports.  Updated the docs.
FRED:  The more I fiddle the docs, the less I understand the exact
intended use of the \var, \code, \method tags.  Please review critically.
GUIDO:  See email.  I updated NEWS as if whrandom were deprecated; I
think it should be.
2001-01-25 03:36:26 +00:00
Barry Warsaw 83125775e0 A \begin{funcdesc} was closed with an \end{methoddesc}. 2001-01-25 00:39:16 +00:00
Barry Warsaw 21f37e1b88 Fixed a bug where \& was needed. 2001-01-25 00:38:15 +00:00
Barry Warsaw 8ee1a4bdeb Provide a much better (and complete!) description of the lockf()
function, based on an eyeballing of the code.
2001-01-25 00:36:54 +00:00
Barry Warsaw bd3dc1f0cb lockf_doc: a much better description of the lockf() function, based on
an eyeballing of the code.
2001-01-25 00:20:13 +00:00
Tim Peters 902446a28d Supply long-missing docs for random.seed(). Extensive rewrite of module
intro docs.
*************** Fred:  check my LaTeX!  Also, the docs for whrandom should
*************** be moved into Obsolete Modules.
2001-01-24 23:06:53 +00:00
Guido van Rossum d1f06b9b2f Check the Py_TPFLAGS_HAVE_RICHCOMPARE flag before using the
tp_richcompare field!  (Hopefully this will make Python 2.1 binary
compatible with certain Zope extensions. :-)
2001-01-24 22:14:43 +00:00
Guido van Rossum bacca54b59 Add a flag to indicate the presence of the tp_richcompare field, and
add it to the default flags.
2001-01-24 22:13:48 +00:00