X Tutup
Skip to content

Commit 06edeee

Browse files
committed
Get ready for release 2.4.0
1 parent b629a0c commit 06edeee

File tree

7 files changed

+230
-17
lines changed

7 files changed

+230
-17
lines changed

ChangeLog

Lines changed: 187 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,192 @@
1+
2016-05-18 rocky <rocky@gnu.org>
2+
3+
* DECOMPYLE-2.4-CHANGELOG.txt, HISTORY.md, uncompyle6/version.py:
4+
Get ready for release 2.4.0
5+
6+
2016-05-18 rocky <rocky@gnu.org>
7+
8+
* uncompyle6/verify.py: Add 3.5 to verify
9+
10+
2016-05-18 rocky <rocky@gnu.org>
11+
12+
* pytest/test_load.py, pytest/testdata/if-2.7.right,
13+
pytest/testdata/ifelse-2.7.right, uncompyle6/disas.py,
14+
uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py,
15+
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py,
16+
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py,
17+
uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py,
18+
uncompyle6/scanners/scanner35.py, uncompyle6/scanners/tok.py,
19+
uncompyle6/verify.py: pydisassemble improvements; DRY scannners disas.py: - disassembles *all* code objects found scanner*.py: - no longer need to pass in version numbers; this is obtained from the class name - no longer pass in opcodes; this is done at initialization from the scanner name - all Pythoin 3 scanners support native disassembly
20+
21+
2016-05-17 rocky <rocky@gnu.org>
22+
23+
* pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right,
24+
uncompyle6/bin/pydisassemble.py, uncompyle6/disas.py,
25+
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/tok.py: Go
26+
over disassembly routine... * tok.py: - add arg value when it is an integer * pydisassemble.py: - add option -U --uncomplyle for which flavor of disassembly - remove -o option * scanner27.py: - allow for native (non-uncompyle6) output
27+
28+
2016-05-17 rocky <rocky@gnu.org>
29+
30+
* pytest/test_marsh.py,
31+
test/simple_source/expression/02_complex.py, uncompyle6/marsh.py:
32+
Fix marshal bug in handling complex numbers
33+
34+
2016-05-17 rocky <rocky@gnu.org>
35+
36+
* Makefile, test/simple_source/def/09_class_closure.py,
37+
uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
38+
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
39+
Fix Python 3.x bugs * class definitions made via closures * Add "make check-short" to top-level * parse3.py: Python 3.3 uses STORE_LOGALS
40+
41+
2016-05-16 rocky <rocky@gnu.org>
42+
43+
* test/test_pyenvlib.py, uncompyle6/marsh.py,
44+
uncompyle6/scanners/scanner3.py: Fix a number of small bugs... test_peynv.py: make Python3 compatible marsh.py: remove duplicate
45+
test scanner3.py: fix opcode typo
46+
47+
2016-05-16 rocky <rocky@gnu.org>
48+
49+
* uncompyle6/parsers/parse3.py: Fix Python 3.x bug in function VAR
50+
and KW args
51+
52+
2016-05-16 rocky <rocky@gnu.org>
53+
54+
* : Readd some 3.x loop tests
55+
56+
2016-05-16 rocky <rocky@gnu.org>
57+
58+
* pytest/test_fjt.py: pytest for last commit
59+
60+
2016-05-16 rocky <rocky@gnu.org>
61+
62+
* uncompyle6/semantics/fragments.py,
63+
uncompyle6/semantics/pysource.py: Correct bugs in Python 3.2 source
64+
generation
65+
66+
2016-05-16 rocky <rocky@gnu.org>
67+
68+
* Makefile: Travis can't handle pytest on Python 3.5
69+
70+
2016-05-16 rocky <rocky@gnu.org>
71+
72+
* HISTORY.md, Makefile, uncompyle6/parsers/parse3.py,
73+
uncompyle6/scanner.py, uncompyle6/scanners/scanner27.py,
74+
uncompyle6/scanners/scanner3.py: Python 2 loop scanner detection in
75+
Python 3 scanner*.py: Make scanner27 and scanner3 more aligned Makefile: we
76+
can run py.test on Python 3.5 HISTORY.md: grammar changes
77+
78+
2016-05-16 rocky <rocky@gnu.org>
79+
80+
* HISTORY.md, uncompyle6/main.py, uncompyle6/scanners/scanner27.py,
81+
uncompyle6/scanners/scanner3.py, uncompyle6/verify.py: Misc small
82+
changes Go over history yet again code cleanups.
83+
84+
2016-05-15 rocky <rocky@gnu.org>
85+
86+
* uncompyle6/parsers/parse3.py: Python3 mklambda bug
87+
88+
2016-05-15 rocky <rocky@gnu.org>
89+
90+
* test/simple_source/expression/08_genexpr.py,
91+
test/simple_source/expression/10_genexpr.py,
92+
uncompyle6/parsers/parse3.py: Python 3 genexpr bug
93+
94+
2016-05-15 rocky <rocky@gnu.org>
95+
96+
* HISTORY.md: Correct info on parser
97+
98+
2016-05-15 rocky <rocky@gnu.org>
99+
100+
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
101+
uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
102+
uncompyle6/semantics/pysource.py: Bug in Python 3.x genexpr
103+
104+
2016-05-15 rocky <rocky@gnu.org>
105+
106+
* test/simple_source/expression/05_lambda.py,
107+
test/test_pyenvlib.py, uncompyle6/parsers/parse3.py,
108+
uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py:
109+
Fix bug in Python 3 lambda expression handling Some other small cleanup changes
110+
111+
2016-05-15 rocky <rocky@gnu.org>
112+
113+
* uncompyle6/bin/pydisassemble.py, uncompyle6/disas.py,
114+
uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
115+
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner34.py,
116+
uncompyle6/scanners/scanner35.py, uncompyle6/scanners/tok.py:
117+
pydisassemble disassemble without grammar mangling Some other small cleanups as well
118+
119+
2016-05-15 rocky <rocky@gnu.org>
120+
121+
* uncompyle6/parser.py, uncompyle6/parsers/parse3.py: Fix verify bug
122+
in 3.2
123+
124+
2016-05-15 rocky <rocky@gnu.org>
125+
126+
* test/simple_source/looping/12_if_while_bug.py,
127+
uncompyle6/parsers/parse3.py: 3.4 if/while bug
128+
129+
2016-05-15 rocky <rocky@gnu.org>
130+
131+
* .travis.yml: force Travis 2.7.11 for Python 2.7
132+
133+
2016-05-15 rocky <rocky@gnu.org>
134+
135+
* test/ok_lib2.7/aifc.py, test/ok_lib2.7/antigravity.py,
136+
test/ok_lib2.7/anydbm.py, test/ok_lib2.7/asynchat.py,
137+
test/ok_lib2.7/atexit.py, test/ok_lib2.7/audiodev.py,
138+
test/ok_lib2.7/base64.py, test/ok_lib2.7/binhex.py,
139+
test/ok_lib2.7/bisect.py, test/ok_lib2.7/calendar.py,
140+
test/ok_lib2.7/cgitb.py, test/ok_lib2.7/chunk.py,
141+
test/ok_lib2.7/codeop.py, test/ok_lib2.7/colorsys.py,
142+
test/ok_lib2.7/commands.py, test/ok_lib2.7/compileall.py,
143+
test/ok_lib2.7/dircache.py, test/ok_lib2.7/dis.py,
144+
test/test_pyenvlib.py: Add more Python 2.7 verify tests
145+
146+
2016-05-15 rocky <rocky@gnu.org>
147+
148+
* uncompyle6/semantics/fragments.py,
149+
uncompyle6/semantics/pysource.py: Fix bug in kvlist handling on
150+
Python 2.7 Created from previous DRY code in Python 3
151+
152+
2016-05-15 rocky <rocky@gnu.org>
153+
154+
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py,
155+
uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py,
156+
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
157+
DRY scanner34 and scanner35 handle 3.0..3.4 build maps as key/value pairs
158+
159+
2016-05-15 rocky <rocky@gnu.org>
160+
161+
* uncompyle6/scanners/dis3.py: Optimize Python 2/3 code2num
162+
163+
2016-05-14 rocky <rocky@gnu.org>
164+
165+
* test/Makefile, uncompyle6/scanners/dis3.py: Python2 comptability
166+
in using Python 3 disassembly Also fixes ablility to run bytecode 3.5 tests from 2.x now For Python 2 reading python3 bytstrings, we need to make sure we
167+
confer the character to a number.
168+
169+
2016-05-14 rocky <rocky@gnu.org>
170+
171+
* uncompyle6/bin/pydisassemble.py, uncompyle6/scanners/dis3.py,
172+
uncompyle6/scanners/dis35.py, uncompyle6/scanners/scanner34.py,
173+
uncompyle6/scanners/scanner35.py: Start to DRY Python 3.4 and 3.5
174+
scanners
175+
176+
2016-05-14 rocky <rocky@gnu.org>
177+
178+
* __pkginfo__.py, requirements.txt, setup.py: See if travis will
179+
take spark 1.2.1
180+
181+
2016-05-14 rocky <rocky@gnu.org>
182+
183+
* uncompyle6/bin/pydisassemble.py, uncompyle6/bin/uncompile.py: Fix
184+
names for <program> -V
185+
1186
2016-05-14 rocky <rocky@gnu.org>
2187

3-
* __pkginfo__.py, uncompyle6/version.py: Fix botched entry point
4-
names Get ready for relase 2.3.6
188+
* ChangeLog, __pkginfo__.py, uncompyle6/version.py: Fix botched
189+
entry point names Get ready for relase 2.3.6
5190

6191
2016-05-14 rocky <rocky@gnu.org>
7192

DECOMPYLE-2.4-CHANGELOG.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
This is the changelog from *decompyle*'s release 2.4 passed on by Dan Pascu
2-
Yikes - uncompyle's version number should be higher so as to put this
3-
in the past!
42

53

64
release 2.4 (Dan Pascu)

HISTORY.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ There have been a number of people who have worked on this. I am awed
44
by the amount of work, number of people who have contributed to this,
55
and the cleverness in the code.
66

7-
The below is an annotated history from my reading of the sources cited.
7+
The below is an annotated history from talking to participants
8+
involved and my reading of the code and sources cited.
89

910
In 1998, John Aycock first wrote a grammar parser in Python,
1011
eventually called SPARK, that was usable inside a Python program. This
@@ -64,7 +65,8 @@ time, various JUMP instructions were classifed as going backwards, and
6465
COME FROM instructions were reintroduced. See
6566
RELEASE-2.4-CHANGELOG.txt for more details here. There wasn't a public
6667
release of RELEASE-2.4 and bytecodes other than Python 2.4 weren't
67-
supported.
68+
supported. Dan says the Python 2.3 version could verify the entire
69+
python library.
6870

6971
Next we get to ["uncompyle" and
7072
PyPI](https://pypi.python.org/pypi/uncompyle/1.1) and the era of
@@ -95,7 +97,7 @@ This project, uncompyle6, however owes its existence to the fork of
9597
uncompyle2 by Myst herie (Mysterie) whose first commit picks up at
9698
2012. I chose this since it seemed to have been at that time the most
9799
actively, if briefly, worked on. Also starting around 2012 is Dark
98-
Fenx's uncompyle3 which I used for inspiration for Python3.
100+
Fenx's uncompyle3 which I used for inspiration for Python3 support.
99101

100102
I started working on this late 2015, mostly to add fragment support.
101103
In that, I decided to make this runnable on Python 3.2+ and Python 2.6+

NEWS

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,19 @@
1-
uncompyle6 2.3.5 2016-05-14
1+
uncompyle6 2.4.0 2016-05-18
2+
3+
- Many Python 3 bugs fixed:
4+
* Python 3.2 to 3.5 libaries largely
5+
uncompyle and most verify
6+
- pydisassembler:
7+
* disassembles all code objects in a file
8+
* can select showing bytecode before
9+
or after uncompyle mangling, option -U
10+
- DRY scanner code (but more is desired)
11+
- Some code cleanup (but more is desired)
12+
- Misc Bugs fixed:
13+
* handle complex number unmarshaling
14+
* Running on Python 2 to works on Python 3.5 bytecodes now
15+
16+
uncompyle6 2.3.5 and 2.3.6 2016-05-14
217

318
- Python 2 class decorator fix (thanks to Tey)
419
- Fix fragment parsing bugs

README.rst

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Introduction
1111
------------
1212

1313
*uncompyle6* translates Python bytecode back into equivalent Python
14-
source code. It accepts bytecodes from Python version 2.5 to 3.4 or
14+
source code. It accepts bytecodes from Python version 2.5 to 3.5 or
1515
so. The code requires Python 2.6 or later and has been tested on Python
1616
running versions 2.6, 2.7, 3.2, 3.3, 3.4 and 3.5.
1717

@@ -92,11 +92,16 @@ for usage help.
9292
Known Bugs/Restrictions
9393
-----------------------
9494

95-
Python 2 deparsing decompiles all of the Python 2.7.10 library and as
96-
such is probably a little better than uncompyle2. Python 3 deparsing
97-
is okay, sometimes. More work is needed to decompile all of its
98-
library. Python 3.5 is missing some of new opcodes added, but still
99-
often works.
95+
Python 2 deparsing decompiles about the first 140 or so of the Python
96+
2.7.10 and 2.7.11 standard library files and all but less that 10%
97+
verify. So as such, it is probably a little better than uncompyle2.
98+
Other Python 2 versions do worse.
99+
100+
Python 3 deparsing before 3.5 is okay, but even there, more work is needed to
101+
decompile all of its library. Python 3.5 is missing some of new
102+
opcodes and idioms added, but it still often works.
103+
104+
There is lots to do, so please dig in and help.
100105

101106
See Also
102107
--------

test/test_pyenvlib.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,11 @@
4444
'2.1': (os.path.join(lib_prefix, 'python2.1'), PYC, 'python-lib2.1'),
4545
'2.2': (os.path.join(lib_prefix, 'python2.2'), PYC, 'python-lib2.2'),
4646
'2.5': (os.path.join(lib_prefix, 'python2.5'), PYC, 'python-lib2.5'),
47-
'2.6.9': (os.path.join(lib_prefix, '2.6.9', 'python2.6'), PYC, 'python-lib2.6'),
47+
'2.6.9': (os.path.join(lib_prefix, '2.6.9', 'lib', 'python2.6'), PYC, 'python-lib2.6'),
4848
'2.7.10': (os.path.join(lib_prefix, '2.7.10', 'lib', 'python2.7'), PYC, 'python-lib2.7'),
4949
'2.7.11': (os.path.join(lib_prefix, '2.7.11', 'lib', 'python2.7'), PYC, 'python-lib2.7'),
50+
'3.2.6': (os.path.join(lib_prefix, '3.2.6', 'lib', 'python3.2'), PYC, 'python-lib3.2'),
51+
'3.3.5': (os.path.join(lib_prefix, '3.3.5', 'lib', 'python3.3'), PYC, 'python-lib3.3'),
5052
'3.4.2': (os.path.join(lib_prefix, '3.4.2', 'lib', 'python3.4'), PYC, 'python-lib3.4')
5153
}
5254

@@ -86,6 +88,12 @@ def visitor(files, dirname, names):
8688
except ValueError:
8789
pass
8890

91+
if len(files) > 200:
92+
files = [file for file in files if not 'site-packages' in file]
93+
files = [file for file in files if not 'test' in file]
94+
if len(files) > 200:
95+
files = files[:200]
96+
8997
print(time.ctime())
9098
main.main(src_dir, target_dir, files, [], do_verify=do_verify)
9199
print(time.ctime())
@@ -120,7 +128,7 @@ def visitor(files, dirname, names):
120128
shutil.rmtree(target_dir, ignore_errors=1)
121129
do_tests(src_dir, pattern, target_dir, start_with, do_verify)
122130
else:
123-
print('### skipping', src_dir)
131+
print("### Path %s doesn't exist; skipping" % src_dir)
124132

125133
# python 1.5:
126134

uncompyle6/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# This file is suitable for sourcing inside bash as
22
# well as importing into Python
3-
VERSION='2.3.6'
3+
VERSION='2.4.0'

0 commit comments

Comments
 (0)
X Tutup