summaryrefslogtreecommitdiffstats
path: root/Tools
Commit message (Collapse)AuthorAgeFilesLines
* a few small optimizations that seem to give a 5-10% speedup; theJeremy Hylton2000-11-061-76/+80
| | | | further optimization of com_node makes the most difference.
* move pruneNext method to correct object (doh!)Jeremy Hylton2000-11-061-24/+24
|
* Change the graph structure to contain the code generator object forJeremy Hylton2000-11-063-21/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | embedded code objects (e.g. functions) rather than the generated code object. This change means that the compiler generates code for everything at the end, rather then generating code for each function as it finds it. Implementation note: _convert_LOAD_CONST in pyassem.py must be change to call getCode(). Other changes follow. Several changes creates extra edges between basic blocks to reflect control flow for loops and exceptions. These missing edges had gone unnoticed because they do not affect the current compilation process. pyassem.py: Add _enable_debug() and _disable_debug() methods that print instructions and blocks to stdout as they are generated. Add edges between blocks for instructions like SETUP_LOOP, FOR_LOOP, etc. Add pruneNext to get rid of bogus edges remaining after unconditional transfer ops (e.g. JUMP_FORWARD) Change repr of Block to omit block length. pycodegen.py: Make sure a new block is started after FOR_LOOP, etc. Change assert implementation to use RAISE_VARARGS 1 when there is no user-specified failure output. misc.py: Implement __contains__ and copy for Set.
* If a function contains a doc string, remove the doc string node fromJeremy Hylton2000-11-061-1/+5
| | | | | | | the function's body. If assert is used without an error message, make the AST node None rather than Name('None').
* Application of [ Patch #102226 ] freeze/modulefinder.py should use _winreg, ↵Mark Hammond2000-11-061-15/+6
| | | | not win32api
* Added 38,642 missing characters to the Unicode database (first-lastFredrik Lundh2000-11-031-11/+39
| | | | | | | ranges) -- but thanks to the 2.0 compression scheme, this doesn't add a single byte to the resulting binaries (!) Closes bug #117524
* Hack ndiff to display lines w/ leading tabs more intuitively. This synchsTim Peters2000-11-011-9/+24
| | | | ndiff w/ a custom version I made for Guido during the pre-2.0 freeze.
* Added the -D/--docstrings option for extraction of unmarked module,Barry Warsaw2000-10-271-40/+82
| | | | class, method, and function docstrings.
* Remove bogus stdout redirection and use of sys.__stdout__; useFred Drake2000-10-261-46/+42
| | | | augmented print statement instead.
* Remove bogus stdout redirection and use of sys.__stdout__; useFred Drake2000-10-261-32/+28
| | | | augmented print statement instead.
* Add IDLE wish: access items of arraysGuido van Rossum2000-10-251-0/+1
|
* Many changes.Jeremy Hylton2000-10-251-220/+145
| | | | | | | | | | | | | | | | | | | | | Reformatting -- long lines, "[ ]" -> "[]", a few indentation nits. Replace calls to Node function (which constructed ast nodes) with calls to actual constructors imported from ast module. Optimize com_node (most frequently used method) for the common case -- the appropriate method is found in _dispatch. Fix com_augassign to use class object's rather than node names (rendered invalid by recent changes to ast) Remove expensive tests for sequence-ness in com_stmt and com_append_stmt. These tests should never fail; if they do, something is really broken and exception will be raised elsewhere. Fix com_stmt and com_append_stmt to use isinstance rather than testing's type slot of ast node (this slot disappeared with recent changes to ast).
* Generated from rev 1.1 of ast.txtJeremy Hylton2000-10-251-677/+606
|
* Small optimizations in dispatch method: 1) lookup node's __class__ onceJeremy Hylton2000-10-251-12/+14
| | | | | and store in local; 2) define _preorder to be dispatch (rather than method that called dispatch).
* Support for generation of ast.py from simple description of nodeJeremy Hylton2000-10-254-0/+518
| | | | structure (ast.txt). Usage is python astgen.py > ast.py.
* run the std regression test suite using bytecode produced by the compilerJeremy Hylton2000-10-131-0/+55
|
* add -d option that dumps entire AST before compilingJeremy Hylton2000-10-131-2/+5
|
* Now supports entire Python 2.0 language and still supports PythonJeremy Hylton2000-10-134-93/+463
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1.5.2. The compiler generates code for the version of the interpreter it is run under. ast.py: Print and Printnl add dest attr for extended print new node AugAssign for augmented assignments new nodes ListComp, ListCompFor, and ListCompIf for list comprehensions pyassem.py: add work around for string-Unicode comparison raising UnicodeError on comparison of two objects in code object's const table pycodegen.py: define VERSION, the Python major version number get magic number using imp.get_magic() instead of hard coding implement list comprehensions, extended print, and augmented assignment; augmented assignment uses Delegator classes (see doc string) fix import and tuple unpacking for 1.5.2 transformer.py: various changes to support new 2.0 grammar and old 1.5 grammar add debug_tree helper than converts and symbol and token numbers to their names
* Fix SF bug #116263: support for from .. import *Jeremy Hylton2000-10-123-4/+13
| | | | | | transformer.py: return '*', None from com_import_as_name pycodegen.py: special case for name == '*' pyassem.py: fix stack counting for IMPORT_ opcodes
* read in a .pyc file and disassemble the code objectsJeremy Hylton2000-10-091-0/+39
|
* Fix for next iteration of SF bug 115690 (Unicode headaches in IDLE). TheTim Peters2000-10-061-0/+13
| | | | | | parsing functions in support of auto-indent weren't expecting Unicode strings, but text.get() can now return them (although it remains muddy as to exactly when or why that can happen). Fixed that with a Big Hammer.
* I'm moving redemo.py here from Demo/tkinter/guido, since it isGuido van Rossum2000-10-061-0/+171
| | | | | | | somewhat useful to learn regular expressions, and this way it'll be installed on Windows. This closes bug report 115609.
* New tool for normalizing indentation of .py files.Tim Peters2000-10-051-0/+258
|
* - don't set the titlecase flag for uppercase letters (sorry, tim)Fredrik Lundh2000-09-251-2/+2
|
* unicode database compression, step 3:Fredrik Lundh2000-09-251-4/+19
| | | | - added decimal digit and digit properties to the unidb tables
* unicode database compression, step 3:Fredrik Lundh2000-09-252-9/+100
| | | | | | | - use unidb compression for the unicodectype module. smaller, faster, and slightly more portable... - also mention the unicode directory in Tools/README
* unicode database compression, step 2:Fredrik Lundh2000-09-251-15/+47
| | | | | | | | | | - fixed attributions - moved decomposition data to a separate table, in preparation for step 3 (which won't happen before 2.0 final, promise!) - use relative paths in the generator script I have a lot more stuff in the works for 2.1, but let's leave that for another day...
* Fiddled w/ /F's cool new splitbins function: documented it, generalized itTim Peters2000-09-251-26/+54
| | | | | | | | | | a bit, sped it a lot primarily by removing the unused assumption that None was a legit bin entry (the function doesn't really need to assume that there's anything special about 0), added an optional "trace" argument, and in __debug__ mode added exhaustive verification that the decomposition is both correct and doesn't overstep any array bounds (which wasn't obvious to me from staring at the generated C code -- now I feel safe!). Did not commit a new unicodedata_db.h, as the one produced by this version is identical to the one already checked in.
* unicode database compression, step 1:Fredrik Lundh2000-09-241-0/+202
| | | | | - use unidb compression for the unicodedata module. on Windows, the new unidatabase module is 120k, down from nearly 600k.
* Implemented new os.startfile function, unique to Windows, exposing aTim Peters2000-09-221-2/+3
| | | | | | | | | | | | | | | | subset of Win32 ShellExecute's functionality. Guido wants this because IDLE's Help -> Docs function currently crashes his machine because of a conflict between his version of Norton AntiVirus (6.10.20) and MS's _popen. Docs for startfile are being mailed to Fred (or just read the docstring -- it tells the whole story). Changed webbrowser.py to use os.startfile instead of os.popen on Windows. Changed IDLE's EditorWindow.py to pass an absolute path for the docs (hardcoding ShellExecute's "directory" arg to "." as used to be done let IDLE work, but made the startfile command exceedingly obscure for other uses -- the MS docs are terrible, of course, & still not sure I understand it). Note that Windows Python must link with shell32.lib now! That's where ShellExecute lives.
* change 2-space indent to 4-space indentJeremy Hylton2000-09-201-1081/+1079
|
* distutils setup scriptJeremy Hylton2000-09-201-0/+9
|
* Fix typo (newtabwith).Guido van Rossum2000-09-201-1/+1
|
* Temporary fix for Bug #114821.Guido van Rossum2000-09-191-2/+18
| | | | | | | | | | | | | | The cause was that the replace code necessarily used a PCRE internal function to to template expansion. The fix changes the code to use an SRE internal if SRE is used, and a PCRE internal if SRE is used; in a way that should work with 1.5.2. The solution can be sped up tremendously under the assumption that the choice between sre and pre is not changed during the execution of the program; especially replace-all will be slow. But I'll leave that to someone else.
* satisfy the tabnannyJeremy Hylton2000-09-183-358/+358
|
* Allow this script to act like a module by only calling main() ifBarry Warsaw2000-09-161-1/+3
| | | | __name__ == '__main__'. Closes SF bug #110844.
* Fix for bug #113693: with the changes to the IMPORT_FROM opcodes, thisGuido van Rossum2000-09-151-0/+7
| | | | crashed on an assert.
* Include the filename in the errror message for F5 without saving.Guido van Rossum2000-09-151-1/+5
| | | | This closes bug #110660.
* main(): Move hackery of sys.argv until after the Tk instance has beenFred Drake2000-09-151-7/+7
| | | | | | | | created. This allows the application-specific Tkinter initialization to be executed if present. Also pass an explicit className parameter to the Tk() constructor. This closes SourceForge bug #110618.
* Don't emit 8 lines of (c) information at startup -- use the same textGuido van Rossum2000-09-051-1/+4
| | | | as main.c.
* REMOVED all CWI, CNRI and BeOpen copyright markings.Guido van Rossum2000-09-012-28/+4
| | | | This should match the situation in the 1.6b1 tree.
* patch by Neil Schemenauer to improve (fix?) line number generationJeremy Hylton2000-09-012-17/+32
|
* Update magic number.Jeremy Hylton2000-09-012-15/+47
| | | | | | Fix import support to work with import as variant of Python 2.0. The grammar for import changed, requiring changes in transformer and code generator, even to handle compilation of imports with as.
* Rob Hooft, Moshe Zadka: converted to 4 space indents and re instead of regex.Guido van Rossum2000-09-012-72/+78
|
* Tool to generate binary GNU .mo file from .po template files. WrittenBarry Warsaw2000-09-011-0/+194
| | | | | | | | by Martin v. Loewis, proofed by Barry Warsaw for coding standards, typos, and to make command line options compatible with GNU msgfmt where they overlap. Closes patch #101295.
* Bring Tools/compiler almost up to date. Specifically:Thomas Wouters2000-08-123-348/+349
| | | | | | | | | | - fix tab space issues (SF patch #101167 by Neil Schemenauer) - fix co_flags for classes to include CO_NEWLOCALS (SF patch #101145 by Neil) - fix for merger of UNPACK_LIST and UNPACK_TUPLE into UNPACK_SEQUENCE, (SF patch #101168 by, well, Neil :) - Adjust bytecode MAGIC to current bytecode. TODO: teach compile.py about list comprehensions.
* add note about compiler directoryJeremy Hylton2000-08-041-0/+4
| | | | (is bgen still "still under development"?)
* replace most calls to emit 'SET_LINENO' will call to method set_linenoJeremy Hylton2000-08-041-31/+42
| | | | based on bug report by Neil Schemenauer
* update my email addressJeremy Hylton2000-08-041-1/+4
| | | | fix com_call_function to cope with trailing comma in "f(a, b,)"
* Python code coverage tool by Skip Montanaro and Andrew DalkeJeremy Hylton2000-08-031-0/+661
|