You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 00:45:53 +08:00
Get ready for release 3.6.1
This commit is contained in:
33
NEWS.md
33
NEWS.md
@@ -1,3 +1,36 @@
|
||||
3.6.1: 2019-12-10 Christmas Hannukah
|
||||
====================================
|
||||
|
||||
Overall, as in the past, the focus has been on just fixing bugs, more geared
|
||||
in the later 3.x range. Handling "async for/with" in 3.8+ works better.
|
||||
|
||||
Numerous bugs around handling `lambda` with keyword-only and `*` args in the
|
||||
3.0-3.8 have been fixed. However many still remain.
|
||||
|
||||
`binary_expr` and `unary_expr` have been renamed to `bin_op` and
|
||||
`unary_op` to better correspond the Python AST names.
|
||||
|
||||
Some work was done Python 3.7+ to handle `and` better; less was done
|
||||
along the lines of handling `or`. Much more is needed to improve
|
||||
parsing stability of 3.7+. More of what was done with `and` needs to
|
||||
be done with `or` and this will happen first in the "decompyle3"
|
||||
project.
|
||||
|
||||
Later this will probably be extended backwards to handle the 3.6-
|
||||
versions better. This however comes with a big decompilation speed
|
||||
penalty. When we redo control flow this should go back to normal, but
|
||||
for now, accuracy is more important than speed.
|
||||
|
||||
Another `assert` transform rule was added. Parser rules to distingish
|
||||
`try/finally` in 3.8 were added and we are more stringent about what
|
||||
can be turned into an `assert`. There was some grammar cleanup here
|
||||
too.
|
||||
|
||||
A number of small bugs were fixed, and some administrative changes to
|
||||
make `make check-short` really be short, but check more throughly what
|
||||
it checks. See the `ChangeLog` for details.
|
||||
|
||||
|
||||
3.6.0: 2019-12-10 gecko gecko
|
||||
=============================
|
||||
|
||||
|
@@ -58,7 +58,7 @@ entry_points = {
|
||||
]}
|
||||
ftp_url = None
|
||||
install_requires = ["spark-parser >= 1.8.9, < 1.9.0",
|
||||
"xdis >= 4.2.1, < 4.3.0"]
|
||||
"xdis >= 4.2.2, < 4.3.0"]
|
||||
|
||||
license = "GPL3"
|
||||
mailing_list = "python-debugger@googlegroups.com"
|
||||
|
@@ -148,10 +148,11 @@ case $PYVERSION in
|
||||
SKIP_TESTS[test_base64.py]=1
|
||||
fi
|
||||
;;
|
||||
3.3)
|
||||
3.2)
|
||||
SKIP_TESTS=(
|
||||
[test_atexit.py]=1 #
|
||||
[test_decorators.py]=1 # Control flow wrt "if elif"
|
||||
[test_ast.py]=1 # Look at: AssertionError: b'hi' != 'hi'
|
||||
[test_dis.py]=1 # We change line numbers - duh!
|
||||
[test_quopri.py]=1 # TypeError: Can't convert 'bytes' object to str implicitly
|
||||
)
|
||||
if (( batch )) ; then
|
||||
# Fails in crontab environment?
|
||||
@@ -161,10 +162,36 @@ case $PYVERSION in
|
||||
fi
|
||||
;;
|
||||
|
||||
3.5)
|
||||
3.3)
|
||||
SKIP_TESTS=(
|
||||
[test_atexit.py]=1 #
|
||||
[test_decorators.py]=1 # Control flow wrt "if elif"
|
||||
)
|
||||
if (( batch )) ; then
|
||||
# Fails in crontab environment?
|
||||
# Figure out what's up here
|
||||
SKIP_TESTS[test_exception_variations.py]=1
|
||||
SKIP_TESTS[test_quopri.py]=1
|
||||
fi
|
||||
;;
|
||||
|
||||
3.4)
|
||||
SKIP_TESTS=(
|
||||
[test_atexit.py]=1 #
|
||||
[test_dis.py]=1 # We change line numbers - duh!
|
||||
)
|
||||
if (( batch )) ; then
|
||||
# Fails in crontab environment?
|
||||
# Figure out what's up here
|
||||
SKIP_TESTS[test_exception_variations.py]=1
|
||||
SKIP_TESTS[test_quopri.py]=1
|
||||
fi
|
||||
;;
|
||||
3.5)
|
||||
SKIP_TESTS=(
|
||||
[test_ast.py]=1 #
|
||||
[test_atexit.py]=1 #
|
||||
[test_builtin.py]=1 #
|
||||
[test_compare.py]=1
|
||||
[test_dis.py]=1 # We change line numbers - duh!
|
||||
)
|
||||
if (( batch )) ; then
|
||||
@@ -177,11 +204,18 @@ case $PYVERSION in
|
||||
|
||||
3.6)
|
||||
SKIP_TESTS=(
|
||||
[test_ast.py]=1 #
|
||||
[test_atexit.py]=1 #
|
||||
[test_bdb.py]=1 #
|
||||
[test_builtin.py]=1 #
|
||||
[test_compare.py]=1
|
||||
[test_compile.py]=1
|
||||
[test_contains.py]=1 # Code "while False: yield None" is optimized away in compilation
|
||||
[test_decorators.py]=1 # Control flow wrt "if elif"
|
||||
[test_contextlib_async.py]=1 # Investigate
|
||||
[test_coroutines.py]=1 # Parse error
|
||||
[test_curses.py]=1 # Parse error
|
||||
[test_dis.py]=1 # We change line numbers - duh!
|
||||
[test_pow.py]=1 # Control flow wrt "continue"
|
||||
[test_quopri.py]=1 # Only fails on POWER
|
||||
[test_quopri.py]=1 # AssertionError: b'123=four' != '123=four'
|
||||
)
|
||||
;;
|
||||
3.7)
|
||||
@@ -193,6 +227,7 @@ case $PYVERSION in
|
||||
[test_builtin.py]=1 #
|
||||
[test_cmdline.py]=1 # Interactive?
|
||||
[test_codecs-3.7.py]=1
|
||||
[test_collections.py]=1 # Fixed I think in decompyle3 - pull from there
|
||||
[test_compare.py]=1
|
||||
[test_compile.py]=1
|
||||
[test_contains.py]=1 # Code "while False: yield None" is optimized away in compilation
|
||||
@@ -208,7 +243,7 @@ case $PYVERSION in
|
||||
3.8)
|
||||
SKIP_TESTS=(
|
||||
[test_contains.py]=1 # Code "while False: yield None" is optimized away in compilation
|
||||
[test_collections.py]=1 # parse error
|
||||
[test_collections.py]=1 # Fixed I think in decompyle3 - pull from there
|
||||
[test_decorators.py]=1 # Control flow wrt "if elif"
|
||||
[test_dis.py]=1 # We change line numbers - duh!
|
||||
[test_pow.py]=1 # Control flow wrt "continue"
|
||||
|
@@ -12,4 +12,4 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# This file is suitable for sourcing inside bash as
|
||||
# well as importing into Python
|
||||
VERSION="3.6.0" # noqa
|
||||
VERSION="3.6.1" # noqa
|
||||
|
Reference in New Issue
Block a user