python-uncompyle6/ChangeLog
2017-10-10 22:08:10 -04:00

6719 lines
232 KiB
Plaintext

2017-10-10 rocky <rb@dustyfeet.com>
* HOW-TO-REPORT-A-BUG.md, test/Makefile, uncompyle6/parser.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py,
uncompyle6/semantics/consts.py, uncompyle6/semantics/pysource.py:
Improve parse trace. lambda fixes yet again
2017-10-10 rocky <rb@dustyfeet.com>
* test/simple_source/branching/02_ifelse_lambda.py,
uncompyle6/semantics/consts.py: Address dead code in lambda ifelse
2017-10-10 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse24.py, uncompyle6/scanners/scanner3.py:
Misc bugs
2017-10-10 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #131 from rocky/type2kind-rework Adjust for spark-parser 2.7.0 incompatibilities
2017-10-10 rocky <rb@dustyfeet.com>
* __pkginfo__.py, pytest/test_grammar.py, pytest/test_pysource.py,
uncompyle6/parser.py, uncompyle6/parsers/astnode.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse24.py,
uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py,
uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse32.py,
uncompyle6/parsers/parse34.py, uncompyle6/parsers/parse35.py,
uncompyle6/parsers/parse36.py, uncompyle6/parsers/parse37.py,
uncompyle6/scanners/scanner22.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/tok.py, uncompyle6/semantics/check_ast.py,
uncompyle6/semantics/fragments.py,
uncompyle6/semantics/make_function.py,
uncompyle6/semantics/pysource.py, uncompyle6/verify.py,
uncompyle6/version.py: Adjust for spark-parser 2.7.0
incompatabilities
2017-10-05 rocky <rb@dustyfeet.com>
* : One more test
2017-10-05 rocky <rb@dustyfeet.com>
* : commit b3359439f94c136619b198beaecbfce1b827d2db Author: rocky
<rb@dustyfeet.com> Date: Thu Oct 5 11:00:55 2017 -0400
2017-10-03 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse24.py,
uncompyle6/parsers/parse26.py: handle newer parser reduction
behavior
2017-10-03 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Remove schumutz
2017-10-03 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: More table doc tweaks
2017-10-03 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Go over table-semantics
description yet again
2017-10-02 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py:
spark-parser induced changes... reduce rules can be called without token streams.
2017-09-30 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner3.py: Document hacky customize arg count
better.
2017-09-26 rocky <rb@dustyfeet.com>
* README.rst: Word hacking
2017-09-26 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS: Get ready for release 2.12.0
2017-09-26 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py: No unicode in Python3. but we need it in Python2. The bug was probably introduced as a
result of recent Python code type unteroperability canonicalization
2017-09-26 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py: Pyton 3.1 Annotation args can be
unicode?
2017-09-25 rocky <rb@dustyfeet.com>
* : Adjust for xdis opcode JUMP_OPS. release 2.12.0
2017-09-21 rocky <rb@dustyfeet.com>
* pytest/test_pysource.py: Python 3 compatibility
2017-09-21 rocky <rb@dustyfeet.com>
* pytest/test_pysource.py, uncompyle6/semantics/consts.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Unit test for format-specifiers And in the process we catch some small bugs
2017-09-20 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Tidy pysource and fragments a
little more
2017-09-20 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/consts.py: Tidy/regularize table entry
formatting
2017-09-20 rocky <rb@dustyfeet.com>
* test/test_pythonlib.py, uncompyle6/semantics/pysource.py: Small
fixes test_pyenvlib.py: it is sys.exit(), not exit() pysource.py:
reinstate nod type of async_func_call
2017-09-20 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/consts.py, uncompyle6/semantics/pysource.py:
More small doc changes
2017-09-20 rocky <rb@dustyfeet.com>
* pytest/test_pysource.py, uncompyle6/semantics/pysource.py: Update
Table-driven info... Start a pysource unit test.
2017-09-17 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: engine -> template_engine
2017-09-13 rocky <rb@dustyfeet.com>
* test/Makefile: Need weak-verification on 3.4 for now
2017-09-10 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Revert one of the changes
pending a better fix
2017-09-10 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: More semantic action cleanup
2017-09-10 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py, uncompyle6/scanners/tok.py: Match
Python 3.4's terms a little names better
2017-09-09 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/tok.py: Revert last revert
2017-09-09 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/tok.py: Revert last change
2017-09-09 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/tok.py: New-style Python classes only, please.
2017-08-31 rocky <rb@dustyfeet.com>
* uncompyle6/scanner.py, uncompyle6/scanners/scanner37.py: Skeletal
support for Python 3.7 Largely failing though.
2017-08-31 rocky <rb@dustyfeet.com>
* README.rst: Remove python versions tag I think it's messing up Pypi's very fussy formatting
2017-08-31 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, README.rst, __pkginfo__.py,
uncompyle6/parsers/parse37.py,
uncompyle6/semantics/make_function.py, uncompyle6/version.py: Get
ready for release 2.11.5
2017-08-15 rocky <rb@dustyfeet.com>
* Makefile: 3.7 support
2017-08-15 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.11.4
2017-08-15 rocky <rb@dustyfeet.com>
* __pkginfo__.py, pytest/validate.py, uncompyle6/parser.py,
uncompyle6/scanner.py: Misc cleanups... remove code now in xdis require at least xdis 3.5.4 PyPy tolerance
in validate testing
2017-08-13 rocky <rb@dustyfeet.com>
* pytest/test_basic.py, uncompyle6/parser.py, uncompyle6/scanner.py:
Allow 3-part version string lookups, e.g 2.7.1 We allow a float here, but if passed a string like '2.7'. or
'2.7.13', accept that in looking up either a scanner or a parser.
2017-08-10 rocky <rb@dustyfeet.com>
* README.rst: Link typo Name is trepan2 now not trepan
2017-08-09 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, README.rst, __pkginfo__.py,
uncompyle6/semantics/consts.py, uncompyle6/version.py: Get ready for
release 2.11.3 need xdis 3.5.1 for now. Adjust for xdis "is-not" which we need as
"is not"
2017-08-02 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Revert commit to wrong branch
2017-08-02 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Remove six from Python-2.4/2.5 package
2017-07-17 rocky <rb@dustyfeet.com>
* __pkginfo__.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner30.py:
xdis's "exception match" is now "exception-match"
2017-07-15 rocky <rb@dustyfeet.com>
* __pkginfo__.py: xdis 3.5.1 is botched?
2017-07-14 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Use newer xdis
2017-07-14 R. Bernstein <rocky@users.noreply.github.com>
* README.rst: Fixes issue #124
2017-07-14 rocky <rb@dustyfeet.com>
* HISTORY.md: History updates
2017-07-09 rocky <rb@dustyfeet.com>
* README.rst: RsT doc formatting
2017-07-09 rocky <rb@dustyfeet.com>
* ChangeLog, HOW-TO-REPORT-A-BUG.md, NEWS, uncompyle6/version.py:
Get ready for release 2.11.2
2017-07-08 rocky <rb@dustyfeet.com>
* __pkginfo__.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner30.py,
uncompyle6/scanners/tok.py: Use xdis 3.5.0's opcode sets
2017-07-08 rocky <rb@dustyfeet.com>
* test/test_pyenvlib.py, uncompyle6/scanners/pypy32.py,
uncompyle6/scanners/pypy35.py, uncompyle6/scanners/scanner15.py,
uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py,
uncompyle6/scanners/scanner35.py, uncompyle6/scanners/scanner36.py:
Start supporting Pypy 3.5 (5.7.1-beta)
2017-07-05 rocky <rb@dustyfeet.com>
* test/simple_source/bug26/03_loop_if_cf.py,
uncompyle6/parsers/parse26.py: Loops in Python 2.4-2.6 loop
come_from Looks like Python 2.4-2.6 may have a COME_FROM(_LOOP) before the
jump_back. Fixes Issue #123
2017-06-29 rocky <rb@dustyfeet.com>
* : Work around not having real flow-control analysis
2017-06-28 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/make_function.py: A guard against badly
formated bytecode
2017-06-25 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, test/simple_source/bug31/04_def_annotate.py,
uncompyle6/semantics/make_function.py,
uncompyle6/semantics/pysource.py: 3.x funciton and annotation bug
fixes
2017-06-25 rocky <rb@dustyfeet.com>
* uncompyle6/version.py: Get ready for release 2.11.1
2017-06-24 rocky <rb@dustyfeet.com>
* __pkginfo__.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner30.py, uncompyle6/semantics/pysource.py:
Use xdis' instruction offset calculation fns.. next_offset, op_size, has_argument
2017-06-19 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Python 2 sometimes need
str->uncode in writing?
2017-06-19 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Allow deparsed out to be str as
well as unicode
2017-06-18 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.11.0
2017-06-13 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Adjust nodeInfo if it is a
Token
2017-06-13 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Add nonterminal node in
extractInfo
2017-06-10 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/make_function.py: Fragment tag more expressions Revise make_function3 comment wrt args and kwargs
2017-06-10 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Fragment tag array subscripts
2017-06-10 R. Bernstein <rocky@users.noreply.github.com>
* README.rst: Create README.rst
2017-06-10 R. Bernstein <rocky@users.noreply.github.com>
* README.rst: Create README.rst
2017-06-10 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Set YIELD_VALUE offset in a
<yield> expr
2017-06-10 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/make_function.py: Python 3.2 MAKE_FUNCTION
again.. Was handling bug32/01_named_and_kwargs.py wrong again
2017-06-09 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #119 from rocky/scan-longconstant Simplify access to L65536 ...
2017-06-09 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/make_function.py: Attempt to document the
MAKE_FUNCTION/MAKE_LAMBDA mess... in Python 3.0+
2017-06-08 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/make_function.py: Correct make_function3 for
Pytohn 3.2
2017-06-08 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Disable "continue" removal in
pysource.py "continue" could be the only statement and then removing it might
lead to a dangling "else".
2017-06-07 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Mark "pass" offsets. Start routine to find previous node.
2017-06-06 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py:
Remove hacky fragments try fixup... hacky call_function code is also not needed or will be reinstated
properly. Better grammar structure for Python 3.6 call_function.
2017-06-05 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse36.py,
uncompyle6/scanners/scanner36.py: BUILD_{MAP,TUPLE}_UNPACK &
CALL_FUNCTION_EX_KW... Bang on these in 3.6. Not totally succesfull right now. In fact a
regression on one of the test cases
2017-06-05 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Important fragments bug fix... start, finish that had been adjusted wasn't getting reflected in
final returned deparsed.offsets dictionary. Redo keeping API
compatibility, i.e we still use namedtuple NodeInfo.
2017-06-04 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Python 3.5 *args with kwargs handling. 3.5 is a snowflake here. Thank you, Python. Fully fixes Issue 95. 3.6 is broken on this source, but for a *different* reason. Sigh.
2017-06-03 rocky <rb@dustyfeet.com>
* README.rst, __pkginfo__.py,
test/simple_source/bug35/04_CALL_FUNCTION_VAR_KW.py,
uncompyle6/semantics/fragments.py: Small changes. fragment tag EXEC_STMT
2017-06-03 rocky <rb@dustyfeet.com>
* .travis.yml: Streamline .travis.yml a little bit
2017-06-03 rocky <rb@dustyfeet.com>
* __pkginfo__.py: We need six
2017-06-03 rocky <rb@dustyfeet.com>
* README.rst, circle.yml, requirements-dev.txt: Go over
administrivia
2017-06-03 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.10.1
2017-06-03 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Fragment bugs fragment.py: * deparse_code_aorund_offset: was sometimes returning the wrong type * capture function name offset * lint imports pysource.py: use a clearer variable name
2017-06-02 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Track changes in ifelstmtr.. in fragments from pysource
2017-05-30 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.10.0
2017-05-30 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Python 3.6 makefunction
handling for fragments
2017-05-23 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Fix up 3.6 unmapexpr
2017-05-23 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Fix up retreiving "async"
property on 3.6
2017-05-23 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Fix bug in a 3.6 class name.
2017-05-23 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Add fuzzy offset deparse lookup
2017-05-21 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Correct EXTENDED_ARG handling on
Python 3.6... where it can appear several times and xdis may handle it as well.
It possibly in other versions bug since EXTENDED_ARG is used so
rarely there because it has such a high value 1<<16, it's hard to
test and determine that.
2017-05-20 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Worse results. Revert some of
the last changes
2017-05-20 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
More explicit about 3.5 UNMAP_PACK Have to reduce 3.5 bytecode testing for now, code is more solid.
2017-05-19 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse36.py,
uncompyle6/scanners/scanner3.py: Simplify EXTENDED_ARG on 3.x We largely remove them and fold them itno the next op.
MAKE_FUNCTION though before 3.6 is an exception as that indicates an
annotated function
2017-05-19 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner26.py: EXTENDED_ARG is implemented in
2.6
2017-05-19 rocky <rb@dustyfeet.com>
* test/simple_source/expression/06_huge_list.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Fix
EXTENDED_ARG for long lists, sets, maps
2017-05-19 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Another attempt at getting
get_target() correct
2017-05-19 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py: Bug in pypy JUMP_IF_NOT_DEBUG
handling
2017-05-19 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse36.py, uncompyle6/scanners/scanner3.py:
EXTENDED_ARG handling... get_target() wasn't taking into account EXTENDED_ARG before opcode. This is mostly relevant in Python 3.6 where the max size before
needing EXTENDED_ARG has been reduced to 256, but theoretically
possible in earlier versions.
2017-05-18 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Enforce using xdis >=3.3.1 .. to pick up bug fixes to 3.6 in xdis
2017-05-17 rocky <rb@dustyfeet.com>
* __pkginfo__.py, uncompyle6/parsers/parse36.py,
uncompyle6/scanners/scanner3.py: Small changes.... * __pkginfo__.py: Need spark parser 1.6.1 for corrected
remove_rules() fn * parser36.py: remove replaced Python3 rules * scanner3.py: corrected comment. Thanks to moagstar here. *
2017-05-16 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse36.py: Fix broken CI on 3.6... Another grammar rule replacing SETUP_LOOP with setup_loop
2017-05-16 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse36.py: More EXTENDED_ARGS on 3.6
2017-05-16 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse36.py: extend use of EXTENDED_ARGS in 3.6 switching to a wordcode seems to have made opcode fields smaller so
we need EXTENDED_ARG more?
2017-05-16 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse36.py, uncompyle6/semantics/pysource.py:
Allow LOAD_CONST EXTENDED_ARG
2017-05-15 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py: Reinstate 3.6 listcomp rule
2017-05-15 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py: Bang on 3.6 MAKE_FUNCTION some more
2017-05-14 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: towards fixing a
3.5.CALL_FUNCTONI_VAR bug
2017-05-14 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/04_CALL_FUNCTION_VAR_KW.py,
uncompyle6/parsers/parse3.py: Python 3.5 kw arg can be an expr Fixes Issue #95
2017-05-14 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #117 from rocky/3.6-MAKE_FUNCTION 3.6 make function
2017-05-13 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: MAKE_FUNCTION_FLAGS can be a
simpler tuple
2017-05-13 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py: Grammar rules for Python 3.6
MAKE_FUNCTION
2017-05-13 rocky <rb@dustyfeet.com>
* README.rst, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse36.py, uncompyle6/semantics/pysource.py:
Bang on 3.6 MAKE_FUNCTION a bit more parse3.py, parse36.py: adding return_closure rule tags what's going
on with this rule pysource.py: start changing semantic rules to support code changed
by new make_function semantics README.rst: typo
2017-05-13 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Typo
2017-05-12 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse27.py: Bug in 2.7 decompiling ourself! Troublesome file was uncompyle6.semantics.pysource.engine()
2017-05-11 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #113 from grkov90/patch-1 Fixed out_base bug
2017-05-11 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py,
uncompyle6/semantics/make_function.py: WIP: start 3.6 MAKE_FUNCTION
handling
2017-05-11 Daniel Bradburn <moagstar@gmail.com>
* : Merge pull request #116 from moagstar/function_call_keyword_only Added support for Python 3.6 CALL_FUNCTION_KW
2017-05-10 Daniel Bradburn <moagstar@gmail.com>
* uncompyle6/semantics/pysource.py: Fixed bug in compiling double
star arg only function calls where the closing parenthesis would be
missed
2017-05-10 Daniel Bradburn <moagstar@gmail.com>
* requirements-dev.txt: Adding requirement for pytest >= 3.0 to fix
strange INTERNALERROR in combination with hypothesis when using
pytest 2.6.4
2017-05-10 Daniel Bradburn <moagstar@gmail.com>
* pytest/test_CALL_FUNCTION_KW.sh, pytest/test_function_call.py,
uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse36.py,
uncompyle6/scanners/scanner36.py, uncompyle6/semantics/pysource.py:
Added support for support for Python 3.6 CALL_FUNCTION_KW
2017-05-08 rocky <rb@dustyfeet.com>
* appveyor.yml, test/test_pyenvlib.py,
uncompyle6/semantics/pysource.py: pysource guard and another
appveyor test
2017-05-08 rocky <rb@dustyfeet.com>
* appveyor.yml: appveyor take 2
2017-05-08 rocky <rb@dustyfeet.com>
* appveyor.yml, appveyor/install.ps1, appveyor/run_with_env.cmd: Try
appveyor
2017-05-07 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: More guarded CONTINUE deletion
2017-05-07 rocky <rb@dustyfeet.com>
* uncompyle6/scanner.py, uncompyle6/scanners/scanner3.py,
uncompyle6/semantics/pysource.py: Reduce spurious "continue"
statements
2017-05-07 rocky <rb@dustyfeet.com>
* test/Makefile: --weak-verify on 3.3 with inclusion of last commit Note that the result is sematically equivalent, so it is is correct.
2017-05-07 rocky <rb@dustyfeet.com>
* test/simple_source/looping/12_if_while_true_pass.py,
uncompyle6/scanners/scanner3.py: Python 3.x control-flow bug... "pass" statement inside "while True"
2017-05-07 rocky <rb@dustyfeet.com>
* HOW-TO-REPORT-A-BUG.md: Small typo
2017-05-07 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Fix improper COME_FROM_EXCEPT in
Python 3.3+
2017-05-06 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse33.py: python 3.3 while True parsing bug
2017-05-06 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.9.11
2017-05-06 rocky <rb@dustyfeet.com>
* test/Makefile: fix PYTHON variable setting in test/Makefile
2017-05-06 rocky <rb@dustyfeet.com>
* test/simple_source/bug32/01_try_except_raise.py,
test/simple_source/bug32/03_if.py, uncompyle6/parsers/parse32.py,
uncompyle6/parsers/parse33.py: Fix more Python3.2 parser errors
2017-05-05 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse32.py, uncompyle6/scanners/scanner3.py:
Improve Python 3.2 decompilation ... by removing a lot of the control-flow labels of 3.3+
2017-05-05 rocky <rb@dustyfeet.com>
* .travis.yml: Try CI testing on Python 3.6
2017-05-03 Gregory <grkov90@gmail.com>
* uncompyle6/main.py: Some fix
2017-05-03 Gregory <grkov90@gmail.com>
* uncompyle6/main.py: Fixed out_base bug Variable filename using in for tags uncompyle6 -o haven't worked argument -o haven't worked
2017-05-02 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/01_map_unpack.py, uncompyle6/parser.py,
uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py,
uncompyle6/semantics/pysource.py: Bang more on BUIlD_MAP_UNPACK there are still bugs. Note: {**{'x': 1}, **{'y': 2}} and {{'x': 1}, **{'y': 2}} generate the same Python 3.5+ bytecode.
2017-05-02 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/01_map_unpack.py, uncompyle6/parser.py,
uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py:
BUILD_MAP_UNPACK'ing of dictionaries in 3.5
2017-05-01 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Remove extra unpack *. Issue #98
2017-04-29 R. Bernstein <rocky@users.noreply.github.com>
* HISTORY.md: Update HISTORY.md
2017-04-29 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/01_map_unpack.py,
uncompyle6/parsers/parse35.py, uncompyle6/semantics/pysource.py:
Handle BUILD_MAP_UNPACK in a build_list
2017-04-27 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: A hacky way to get
CALL_FUNCTION_EX_KW to work.
2017-04-26 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: remove debug code
2017-04-25 rocky <rb@dustyfeet.com>
* test/simple_source/bug36/01_call_function.py,
uncompyle6/parsers/parse36.py, uncompyle6/scanners/scanner36.py,
uncompyle6/semantics/pysource.py: Python 3.6 CALL_FUNCTION_EX first
attempt
2017-04-22 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse34.py: Reduse scope
of LOAD_ASSERT as expr to 3.4+
2017-04-22 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/verify.py: LOAD_ASSERT can also
be an expr This may have the undesirable property that assert statements might
get tagged with equivalant low-level Python code that uses "raise
AssertionError", but so be it. Fixes #103
2017-04-22 R. Bernstein <rocky@users.noreply.github.com>
* HISTORY.md: Update HISTORY.md
2017-04-22 R. Bernstein <rocky@users.noreply.github.com>
* HISTORY.md: Update HISTORY.md
2017-04-22 rocky <rb@dustyfeet.com>
* HISTORY.md: History keeps gettting amended
2017-04-22 rocky <rb@dustyfeet.com>
* README.rst: Document Python 3.x status
2017-04-22 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/03_async_await.py,
uncompyle6/parsers/parse35.py, uncompyle6/semantics/pysource.py: Add
await expr Fixes #111
2017-04-22 rocky <rb@dustyfeet.com>
* : Update test
2017-04-22 rocky <rb@dustyfeet.com>
* test/simple_source/bug33/02_pos_args.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/make_function.py:
3.3+ bug in handling single kwarg after * Towards fixing issue #110
2017-04-20 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/02_async_for.py,
uncompyle6/parsers/parse35.py: Add async for with pass statement Fixes #109
2017-04-19 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/03_while-if-break.py,
uncompyle6/parsers/parse3.py: 3.5 ifelsestmtl grammar bug. Fixes #108
2017-04-18 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/03_async_await.py,
uncompyle6/parsers/parse35.py: Expand await stmt handling Fixes #107
2017-04-18 rocky <rb@dustyfeet.com>
* test/simple_source/bug33/01_delete_deref.py,
uncompyle6/parsers/parse32.py, uncompyle6/semantics/pysource.py: Add
DELETE_DEREF grammar rule Fixes Issue #106
2017-04-17 rocky <rb@dustyfeet.com>
* test/simple_source/bug36/01_extended_arg.py,
test/simple_source/bug36/01_if_file.py: Rename test case to
something more appropriate
2017-04-17 rocky <rb@dustyfeet.com>
* test/simple_source/bug36/01_if_file.py: Fix botched test case Thanks to Zm908 for pointing this out
2017-04-16 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py: Comment on what's up with last
change
2017-04-16 rocky <rb@dustyfeet.com>
* test/simple_source/bug22/03_if1.py,
test/simple_source/bug31/02_ifelse_comprehension.py,
uncompyle6/parsers/parse3.py: Python 3.x ifelse in comprehension Fixes Issue #91
2017-04-16 rocky <rb@dustyfeet.com>
* : Add 2.7 complex test
2017-04-15 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/01_map_unpack.py,
uncompyle6/semantics/pysource.py: Correct bug in 3.5+ build_list
with UNPACK
2017-04-15 R. Bernstein <rocky@users.noreply.github.com>
* HOW-TO-REPORT-A-BUG.md: Update HOW-TO-REPORT-A-BUG.md
2017-04-15 R. Bernstein <rocky@users.noreply.github.com>
* HOW-TO-REPORT-A-BUG.md: Update HOW-TO-REPORT-A-BUG.md
2017-04-15 rocky <rb@dustyfeet.com>
* test/simple_source/bug36/01_if_file.py,
uncompyle6/parsers/parse36.py: 3.6 generates Wonky EXTENDED_ARG in
expression Fixes Issue #102
2017-04-15 rocky <rb@dustyfeet.com>
* HOW-TO-REPORT-A-BUG.md, MANIFEST.in: Add how to report a bug Add test case for ... if 1 else ...
2017-04-14 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/01_map_unpack.py,
uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py,
uncompyle6/semantics/pysource.py: Python 3.5+ BUILD_UNMAP_PACK rules Towards addressing Issue #98
2017-04-14 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Reduce adding RETURN_END_IF in
3.5+ The whole control flow determination has to be redone in a less
haphazard way using real flow-control analysis. Hopefully that's on
the way. In the meantime we have this hack.
2017-04-14 rocky <rb@dustyfeet.com>
* test/simple_source/bug27+/03_if_1_else.py,
test/simple_source/bug27+/03_if_true_else.py: Better names for a
test
2017-04-13 rocky <rb@dustyfeet.com>
* test/simple_source/bug27+/03_if_true_else.py,
uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/consts.py: Add if1else. Fixes #101
2017-04-13 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py: In 3.x come_from should include
COME_FROM_EXCEPT
2017-04-13 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse35.py: Towards fixing issue #92
2017-04-13 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse23.py, uncompyle6/semantics/pysource.py:
Add Python 2.3 rule for "if 1: ..." Fully fixes #97 for Python 2.3. Python 2.4 was fixed in a previous
commit.
2017-04-12 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py,
uncompyle6/semantics/make_function.py: annotate args type need to be
expr's not constants
2017-04-12 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse24.py: Handle Python 2.4 "if 1...."
2017-04-11 rocky <rb@dustyfeet.com>
* test/simple_source/bug31/04_def_annotate.py,
uncompyle6/semantics/fragments.py,
uncompyle6/semantics/make_function.py: Bang on 3.x annotations
2017-04-11 rocky <rb@dustyfeet.com>
* test/simple_source/bug31/04_def_annotate.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Towards fixing annotated decorator functions... and annotate functions
2017-04-10 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py, uncompyle6/scanners/scanner27.py,
uncompyle6/semantics/check_ast.py, uncompyle6/semantics/pysource.py:
Misc bugs parse2.py: restore accidently-removed while1stmt rule scanner27.py:
grammar typo check_ast: add while1else to list of looping constructs
pysource.py: CALL_FUNCTION_VAR_KW_ARGS with positional args rule is
different?
2017-04-10 rocky <rb@dustyfeet.com>
* test/simple_source/stmts/02_while1else.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse35.py: Add more while1else grammar rules Towards addressing issue #93
2017-04-09 rocky <rb@dustyfeet.com>
* : One more FUNCTION_VAR test for 3.3
2017-04-09 rocky <rb@dustyfeet.com>
* test/simple_source/def/10_kw+pos_args-bug.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Another Python 3.5 FUNCTION_VAR bug Fixes #94
2017-04-09 rocky <rb@dustyfeet.com>
* : commit 4199bc7f617e387fb03fc06939cd17366dc15c5e Author: rocky
<rb@dustyfeet.com> Date: Sun Apr 9 05:30:45 2017 -0400
2017-04-03 rocky <rb@dustyfeet.com>
* : commit 6773a66b99d07e48290a77dbbbe3c71cc39c31ba Author: rocky
<rb@dustyfeet.com> Date: Mon Apr 3 06:53:12 2017 -0400
2017-03-27 rocky <rb@dustyfeet.com>
* : commit a91cd716670be09d3cef34e1bb36a67f96f91712 Author: rocky
<rb@dustyfeet.com> Date: Mon Mar 27 07:08:59 2017 -0400
2017-03-19 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Use more-recent xdis
2017-03-15 rocky <rb@dustyfeet.com>
* HISTORY.md, test/simple_source/bug33/01_if_try_except.py: grammar
typo and add another test
2017-03-12 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Python 3.0 doesn't have
POP_JUMP_IF...
2017-03-12 rocky <rb@dustyfeet.com>
* README.rst: Note problem in handling pathologically long lists
2017-03-07 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Small cleanup - remove
POP_JUMP_TF
2017-03-05 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse33.py, uncompyle6/scanners/scanner3.py: More
accurate ranges of try blocks in 3.x
2017-03-05 rocky <rb@dustyfeet.com>
* test/simple_source/bug33/01_try_except.py: More accurate ranges of
try blocks in 3.x
2017-03-04 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #84 from
moagstar/property_based_test_function_call Property based test function call
2017-03-04 rocky <rb@dustyfeet.com>
* README.rst: README updates for 3.5 and 1.5
2017-03-04 rocky <rb@dustyfeet.com>
* test/simple_source/bug32/01_named_and_kwargs.py,
uncompyle6/parsers/parse3.py: Bug found by hypothesis in creating
function calls
2017-03-04 Daniel Bradburn <moagstar@gmail.com>
* pytest/test_function_call.py: marked all function call tests as
failing until they pass across all python versions
2017-03-04 Daniel Bradburn <moagstar@gmail.com>
* pytest/test_function_call.py: added minimal examples for various
function call opcodes
2017-03-04 Daniel Bradburn <moagstar@gmail.com>
* pytest/test_function_call.py: added property based test for
verifying uncompylation of function calls. A number of minimal
examples for the various function call opcodes have been generated
with the majority marked as expected failure until python 3.6 opcode
support is complete. I'm hoping this will make it easier to figure
out what needs to be done to support the new opcodes and changed
semntics for function calls
2017-03-03 Daniel Bradburn <moagstar@gmail.com>
* pytest/test_function_call.py: reduced errors when generating
function call instances
2017-03-03 Daniel Bradburn <moagstar@gmail.com>
* pytest/test_function_call.py: added test file for function calls
2017-03-03 Daniel Bradburn <moagstar@gmail.com>
* .gitignore: added .idea to gitignore
2017-03-03 Daniel Bradburn <moagstar@gmail.com>
* .gitignore: added .venv to gitignore
2017-03-01 rocky <rb@dustyfeet.com>
* uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner3.py, uncompyle6/verify.py: COME_FROM for
3.x POP_EXCEPT, DRY with op_name() ... Start adding COME_FROMs for POP_EXCEPT in preparation for getting
tryelse blocks correct. Simpler opname access functions: - self.op_name(op) is self.opc.opname[op] - self.op_name_from_offset(offset) is
self.opc.opname[self.code[offset]] verify.py: not all offsets are ints
2017-02-28 rocky <rb@dustyfeet.com>
* README.rst, uncompyle6/parser.py, uncompyle6/parsers/parse26.py:
Python 2.6 a == b or c == d == 3 grammar bug
2017-02-28 rocky <rb@dustyfeet.com>
* : 2.6 a == b or x == y == z bug
2017-02-28 rocky <rb@dustyfeet.com>
* test/simple_source/bug26/03_double_equals.py,
uncompyle6/semantics/consts.py: Predidence of cmp_list: x == y == z The x, y, z should not have parenthesis around pairs of them (x ==
y) or (y == z)
2017-02-28 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse27.py: Python 2.7
check jump targets of "and"
2017-02-25 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, __pkginfo__.py, uncompyle6/version.py: Get ready
for release 2.9.10
2017-02-25 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse26.py: Python 2.6
parsing bugs .. and some parser list nonterminal cleanup
2017-02-24 rocky <rb@dustyfeet.com>
* test/simple_source/bug25/03_if_for.py,
uncompyle6/parsers/parse26.py: Python 2.6 control flow bug with
added COME_FROM
2017-02-22 rocky <rb@dustyfeet.com>
* test/simple_source/bug25/02_try_else.py,
uncompyle6/parsers/parse25.py: Python 2.5 wasn't handling tryelse
properly
2017-02-20 rocky <rb@dustyfeet.com>
* : New test doesn't --verify correctly. Sigh.
2017-02-20 rocky <rb@dustyfeet.com>
* test/simple_source/bug33/02_while1.py: Add test for last while1
bug fix
2017-02-20 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py:
Python 3.x needs more "while 1" grammar rules
2017-02-20 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py,
uncompyle6/scanners/scanner3.py: Some Python 3.4 bugss fixed by
using 3.5 rules
2017-02-20 rocky <rb@dustyfeet.com>
* test/simple_source/exception/02_try_finally.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: More
COME_FROM's in Python 3... Need this to find boundaries of simple if better
2017-02-19 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse26.py: Marginally better for Python 2.6
but... control flow is still wrong.
2017-02-10 rocky <rb@dustyfeet.com>
* : commit f9d47abb2be7c3839df06c0ed69d3d513694af4e Author: rocky
<rb@dustyfeet.com> Date: Fri Feb 10 02:07:04 2017 -0500
2017-02-10 rocky <rb@dustyfeet.com>
* test/simple_source/bug22/01_ops.py, test/test_pythonlib.py: Beef
up grammar coverage
2017-01-29 rocky <rb@dustyfeet.com>
* test/Makefile, test/simple_source/bug22/01_ops.py,
uncompyle6/parsers/parse25.py, uncompyle6/semantics/consts.py,
uncompyle6/semantics/pysource.py: Changes based on grammar coverage
info
2017-01-29 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #83 from rocky/coverage Coverage
2017-01-29 rocky <rb@dustyfeet.com>
* test/simple_source/bug22/01_ops.py, test/test_pyenvlib.py: Add
--coverage to test_pyenvlib and ... improve grammar coverage on 2.7
2017-01-29 rocky <rb@dustyfeet.com>
* : commit 3dc766d0a9537842470c7b4f79e8ccb3d5a46843 Author: rocky
<rb@dustyfeet.com> Date: Sun Jan 29 07:34:49 2017 -0500
2017-01-29 rocky <rb@dustyfeet.com>
* test/test_pythonlib.py: Add --coverage option. WOOT!
2017-01-27 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Bump min spark_parser version
2017-01-24 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py, uncompyle6/semantics/consts.py,
uncompyle6/semantics/pysource.py: More 2.6, 2.7 control flow Todo more COME_FROMs but now need to check targets better. In some
cases we're relying on grammar ambiguity to work out right and in
2.7 it doesn't
2017-01-24 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse27.py,
uncompyle6/scanners/scanner2.py, uncompyle6/semantics/consts.py,
uncompyle6/semantics/pysource.py: More 2.6, 2.7 control-flow bugs Wasn't limiting exception clause to try finally. Probably still has
bugs in try-finally nesting Add another 2.6/2.7 COME_FROM to try to limit if/end scope better
2017-01-23 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py, uncompyle6/verify.py: Improve
Python 2.6 & 2.7 verification
2017-01-22 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse30.py, uncompyle6/verify.py: Fix up Python
3.0 handling
2017-01-21 rocky <rb@dustyfeet.com>
* : commit 545a46dffaa0fe2246dd7cc1b560c58db525c2b4 Author: rocky
<rb@dustyfeet.com> Date: Sat Jan 21 06:24:31 2017 -0500
2017-01-20 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py,
uncompyle6/semantics/pysource.py: Handle BUILD_CONST_KEY_MAP as a
varargs custom rules with BUILD_CONST_KEY_MAP are pinned to the specific
number of args seen.
2017-01-19 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #81 from moagstar/BUILD_CONST_KEY_MAP fixed bug with BUILD_CONST_KEY_MAP
2017-01-19 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #80 from moagstar/BUILD_CONST_KEY_MAP Build const key map
2017-01-18 Daniel Bradburn <moagstar@gmail.com>
* uncompyle6/semantics/pysource.py: added generation of dict display
from BUILD_CONST_KEY_MAP
2017-01-18 Daniel Bradburn <moagstar@gmail.com>
* pytest/test_build_const_key_map.py: fixed typo
2017-01-18 Daniel Bradburn <moagstar@gmail.com>
* pytest/test_build_const_key_map.py: added some more test cases for
BUILD_CONST_KEY_MAP
2017-01-17 Daniel Bradburn <moagstar@gmail.com>
* pytest/test_build_const_key_map.py: simplified test cases for
test_build_const_key_map
2017-01-17 Daniel Bradburn <moagstar@gmail.com>
* pytest/test_build_const_key_map.py, pytest/validate.py: added
validation code for checking decompilation of an expression
2017-01-15 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py:
Handle 3.6 BUILD_CONST_KEYMAP
2017-01-15 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py: Python 2.1 doesn't have FOR_ITER
or GET_ITER... adjust locgic for this fact
2017-01-12 rocky <rb@dustyfeet.com>
* uncompyle6/__init__.py: sys.recursionlimit is optional, not
essential
2017-01-11 rocky <rb@dustyfeet.com>
* : commit b131c20e99514d3a969a51e841d3a823017f1beb Author: rocky
<rb@dustyfeet.com> Date: Wed Jan 11 21:32:26 2017 -0500
2017-01-11 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS: Get ready for release 2.10.9
2017-01-11 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #79 from rocky/revert-78-patch-1 Revert "fix bug : not generate all files when use "-ro""
2017-01-11 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #78 from jlugjb/patch-1 fix bug : not generate all files when use "-ro"
2017-01-10 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/03_double_star_unpack.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Improve BUILD_xxx_UNPACK slightly
2017-01-09 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/03_async_await.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Add
async_call_function for 3.5+
2017-01-09 rocky <rb@dustyfeet.com>
* : Reinstate test
2017-01-08 rocky <rb@dustyfeet.com>
* : Works now
2017-01-08 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse30.py, uncompyle6/scanners/scanner3.py:
Python 3.0 decompile bugs
2017-01-08 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner30.py: Towards better 3.0 decompilation Sync scanner2 and scanner3 better
2017-01-08 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/03_while-if-break.py,
uncompyle6/parsers/parse35.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner3.py: Fix 3.5, 3.6 while true if/break
bug
2017-01-08 rocky <rb@dustyfeet.com>
* uncompyle6/__init__.py, uncompyle6/main.py,
uncompyle6/semantics/consts.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Misc cleanups Favor "decompile" over "uncompyle" since "decompile" is in common
use Reduce size of pysource.py by splitting out constants
2017-01-08 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/03_async_await.py,
uncompyle6/parsers/parse35.py, uncompyle6/scanners/scanner3.py,
uncompyle6/semantics/pysource.py: Add 3.5+ async with/for .. scanner3.py: 3.6 bytecode vs wordcode fix
2017-01-07 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/03_async_await.py,
uncompyle6/parsers/parse35.py, uncompyle6/semantics/pysource.py:
Start to add 3.5+ await and async
2017-01-07 rocky <rb@dustyfeet.com>
* test/simple_source/bug31/04_def_annotate.py,
uncompyle6/semantics/make_function.py: More Python 3 annotation bugs
2017-01-07 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse31.py,
uncompyle6/parsers/parse32.py,
uncompyle6/semantics/make_function.py,
uncompyle6/semantics/pysource.py: Fix some errors in deparsing
Python 3 annotations
2017-01-07 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/make_function.py: Small Pyhton 3.x annotate
bug
2017-01-03 rocky <rb@dustyfeet.com>
* README.rst: Note what's up with Python 3 decompile quality
2017-01-03 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: 3.5 continue check is needed on
3.6
2017-01-03 rocky <rb@dustyfeet.com>
* test/test_pyenvlib.py, uncompyle6/parsers/parse36.py,
uncompyle6/scanners/scanner3.py: Towards better 3.6 support
2017-01-02 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse35.py, uncompyle6/scanners/scanner3.py:
Python 3.5 continue detection bug
2017-01-01 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: add come_from for setup_finally
and setup_except
2017-01-01 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse35.py, uncompyle6/scanners/scanner3.py:
Towards fixing Python 3.5 return bugs
2017-01-01 rocky <rb@dustyfeet.com>
* README.rst: Note how to verify correctness ... with --verify, --weak-verify and cross checking with pycdc
2016-12-31 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.9.9
2016-12-31 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse26.py: 2.x list_if may have a THEN in it
2016-12-31 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Towards fixing a Python 3.3
return/continue bug
2016-12-30 rocky <rb@dustyfeet.com>
* uncompyle6/main.py: On --verify if we can't unbuffer output, don't
2016-12-29 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py:
dectect_structure() -> detect_control_flow()
2016-12-29 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py:
DRY code and emitted Python 3 source * Python 3: break; continue -> break * Use variable in detect_structure for pre[rtarget] * Make Python 2 and Python 3 detect_structure more alie
2016-12-29 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: More if/then detection in Python
3.x
2016-12-29 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #73 from rocky/then-crap Add THEN token to improve Python 2.2-2.6 control flow detection
2016-12-28 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/tok.py: Misc
bugs
2016-12-28 rocky <rb@dustyfeet.com>
* : commit 723fa5dfed5bb198c66741c594e2c277ded88970 Author: rocky
<rb@dustyfeet.com> Date: Wed Dec 28 18:57:09 2016 -0500
2016-12-28 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse32.py,
uncompyle6/parsers/parse33.py: Towards fixing a 3.2 while true: ...
break bug
2016-12-28 rocky <rb@dustyfeet.com>
* test/Makefile, uncompyle6/main.py, uncompyle6/parsers/parse26.py,
uncompyle6/verify.py: Bugs in Python 2.6- "and" and "lambda"
handling .. and clean up verify output
2016-12-27 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py, uncompyle6/semantics/pysource.py:
WIP : Add THEN to disambigute from "and"
2016-12-27 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py: Make 2.6 and 2.7 ingest more
alike
2016-12-26 rocky <rb@dustyfeet.com>
* : Update 2.7 bytecode file for last fix
2016-12-26 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #71 from jiangpengcheng/tupple_bug tupples which contain only 1 element need a comma
2016-12-26 jiangpch <jiangpch@gohighsec.com>
* uncompyle6/semantics/pysource.py: tupples which contain only 1
element need a comma
2016-12-26 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse25.py: fix bug in using python2 AST rules
in python 2.5
2016-12-26 rocky <rb@dustyfeet.com>
* : commit f1a947f106b231fb1480ba301b15e3ceaf78c94f Author: rocky
<rb@dustyfeet.com> Date: Mon Dec 26 00:43:02 2016 -0500
2016-12-25 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner23.py,
uncompyle6/scanners/scanner24.py, uncompyle6/semantics/pysource.py,
uncompyle6/verify.py: Scanner call fixes. NAME_MODULE removal for
<=2.4
2016-12-24 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse36.py, uncompyle6/scanners/scanner15.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner21.py,
uncompyle6/scanners/scanner22.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Lint
2016-12-24 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Remove stray debug hook
2016-12-20 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Bang on 3.6
build_map_unpack_with_call Probably will fix better in the future.
2016-12-18 rocky <rb@dustyfeet.com>
* uncompyle6/bin/pydisassemble.py, uncompyle6/bin/uncompile.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse25.py,
uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py:
Python flake8 crap Was testing realgud's C-x!8 (goto flake8 warning/error)
2016-12-18 rocky <rb@dustyfeet.com>
* pytest/.gitignore, test/simple_source/bug25/02_try_else.py,
uncompyle6/parsers/parse25.py, uncompyle6/parsers/parse26.py: Python
2.5 mistaken try/else
2016-12-17 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner25.py:
show-asm on python2.5 is optional make scanner2 look a little more like scanner3
2016-12-16 rocky <rb@dustyfeet.com>
* NEWS: Release 2.9.8 news
2016-12-16 rocky <rb@dustyfeet.com>
* __pkginfo__.py, uncompyle6/version.py: Get ready for release 2.9.8
2016-12-16 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/02_build_map_unpack_with_call.py,
uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py,
uncompyle6/parsers/parse36.py, uncompyle6/scanners/scanner3.py,
uncompyle6/semantics/pysource.py: Start to handle 3.5
build_map_unpack_with_call 3.6 also started but needs even more work
2016-12-15 rocky <rb@dustyfeet.com>
* uncompyle6/scanner.py, uncompyle6/scanners/scanner3.py: Some
Python 3.6 bytecode->wordcode fixes
2016-12-13 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Was passing wrong type
2016-12-11 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py: option -g: show start-end range when
possible
2016-12-11 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/make_function.py, uncompyle6/verify.py: two
misc changes - track print_docstring move to help (used in python 3.1) - verify: allow RETURN_VALUE to match RETURN_END_IF
2016-12-10 rocky <rb@dustyfeet.com>
* .travis.yml, test/Makefile: 3.2 needs --weak-verify
2016-12-10 rocky <rb@dustyfeet.com>
* .travis.yml: Try testing on 3.2
2016-12-10 rocky <rb@dustyfeet.com>
* __pkginfo__.py, uncompyle6/bin/uncompile.py: Can run in Python 3.1
and Python 3.2
2016-12-10 rocky <rb@dustyfeet.com>
* test/Makefile, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner3.py: Another python 3 ELSE fixes and ... Makefile: - test python 3.0 bytecode - turn full --verify back on Python 3.x
2016-12-10 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Another faulty Python3 ELSE tag
remove
2016-12-09 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py: Grammar check: ELSE on RHS is ok.
2016-12-09 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/tok.py, uncompyle6/verify.py: Back of some of
the verification changes
2016-12-09 rocky <rb@dustyfeet.com>
* : commit a5d2237435ee51e681c73db9e7ea379d56456205 Author: rocky
<rb@dustyfeet.com> Date: Fri Dec 9 21:10:10 2016 -0500
2016-12-04 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/main.py, uncompyle6/parser.py,
uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse34.py, uncompyle6/parsers/parse35.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner23.py, uncompyle6/scanners/scanner24.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/tok.py,
uncompyle6/semantics/make_function.py,
uncompyle6/semantics/pysource.py, uncompyle6/verify.py,
uncompyle6/version.py: Get ready for release 2.9.7 Some of the many lint things. Linting is kind of stupid though.
2016-11-28 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse36.py:
Shorten Python3 grammars with + and *
2016-11-28 rocky <rb@dustyfeet.com>
* __pkginfo__.py, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py: Try new spark 2.5.1 grammar syntax
shortcuts This package I now declare stable
2016-11-28 R. Bernstein <rocky@users.noreply.github.com>
* README.rst: Update README.rst
2016-11-27 rocky <rb@dustyfeet.com>
* README.rst: Limitations of decompiling control structures.
2016-11-27 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #69 from rocky/ast-reduce-checks AST reduce checks
2016-11-26 rocky <rb@dustyfeet.com>
* test/simple_source/bug26/03_elif_vs_continue.py,
uncompyle6/main.py, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py: Misc changes scanner26.py: make scanner2.py and scanner26.py more alike
scanner2.py: check that return stmt is last in list. (May change)
main.py: show filename on verify error test/*: add more
2016-11-25 rocky <rb@dustyfeet.com>
* __pkginfo__.py, test/Makefile, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Start
grammar reduction checks
2016-11-24 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py,
uncompyle6/semantics/helper.py, uncompyle6/semantics/pysource.py:
2.7 grammar bug workaround. Fix docstring bug
2016-11-24 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Better line number tracking Indent Python 2 list comprehensions, albeit badly. DRY code a
little via indent_if_source_nl
2016-11-24 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py:
<2.7 "if" detection and dup Python 3 grammar rule
2016-11-23 rocky <rb@dustyfeet.com>
* __pkginfo__.py, pytest/test_grammar.py, uncompyle6/parser.py,
uncompyle6/parsers/parse26.py: Python 2.6 grammary bug and.. __pkginfo.py__: Bump spark_parser version for parse_flags 'dups'
2016-11-23 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Note that we now work on 2.4 and 2.5
2016-11-23 rocky <rb@dustyfeet.com>
* : commit 6aa1531972de83ecab15b4c96b89c873ea5a7458 Author: rocky
<rb@dustyfeet.com> Date: Wed Nov 23 00:48:38 2016 -0500
2016-11-22 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse32.py,
uncompyle6/parsers/parse33.py, uncompyle6/parsers/parse34.py,
uncompyle6/parsers/parse35.py: DRY Python3 grammar
2016-11-22 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse27.py,
uncompyle6/scanners/scanner2.py: More detailed COME_FROMs For now we only add COME_FROM_FINALLY and COME_FROM_WITH and even
here only on 2.7
2016-11-22 rocky <rb@dustyfeet.com>
* circle.yml, pytest/test_grammar.py, tox.ini,
uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse27.py: Remove redundant 2.7 (and 2.x)
grammar rules
2016-11-22 rocky <rb@dustyfeet.com>
* pytest/test_docstring.py, uncompyle6/linenumbers.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/helper.py,
uncompyle6/semantics/make_function.py,
uncompyle6/semantics/pysource.py: Split out print_docstring move from pysource.py to new helper.py
2016-11-20 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.9.6
2016-11-20 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #68 from rocky/line-mappings Line mappings
2016-11-20 rocky <rb@dustyfeet.com>
* : Merge remote-tracking branch 'origin' into line-mappings
2016-11-20 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse27.py: Back off a test. That means bugs in 2.7 still not fixed. Sigh.
2016-11-20 rocky <rb@dustyfeet.com>
* pytest/test_fjt.py, uncompyle6/parsers/parse27.py,
uncompyle6/scanners/scanner2.py: more 2.7 control flow bug fixing
2016-11-20 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner26.py: Pass debug in scanner26
find_targets
2016-11-20 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Add debug option on Python 3
find_jump_targets()
2016-11-20 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: A little closesr in PyPy 2.7
list comprehensions pysource.py: note need to handle line breaks in list comprehensions
2016-11-20 rocky <rb@dustyfeet.com>
* pytest/test_fjt.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py:
Start to improve detect_structure for 2.7 and 2.x Add debug flag to find_jump_targets to show the structure we found.
When there are control-flow bugs, it's often reflected here. scanner3.py: make code make more similar to 2.x code
2016-11-18 rocky <rb@dustyfeet.com>
* : commit d7f898b4fbf79d1f66eabadb25f0f9f0f38730cb Author: rocky
<rb@dustyfeet.com> Date: Fri Nov 18 09:02:00 2016 -0500
2016-11-17 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #67 from rocky/2.6-cf-ignore-if 2.6 cf ignore if
2016-11-16 rocky <rb@dustyfeet.com>
* test/simple_source/bug26/03_if_vs_and.py, uncompyle6/main.py,
uncompyle6/semantics/check_ast.py, uncompyle6/semantics/pysource.py:
More AST checking Small fixes in output format
2016-11-15 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse23.py, uncompyle6/parsers/parse26.py,
uncompyle6/scanners/scanner2.py: WIP Grammar changes - reinstatng
COME_FROMs around ignore_if's
2016-11-14 rocky <rb@dustyfeet.com>
* MANIFEST.in: Revise MANIFEST.in with what we have
2016-11-15 rocky <rb@dustyfeet.com>
* : commit 0f719d41fdf08d41de594abb1664ab42ff92bbdf Author: rocky
<rb@dustyfeet.com> Date: Mon Nov 14 20:20:07 2016 -0500
2016-11-14 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py:
WIP remove COME_FROMs around ignore_if's
2016-11-14 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py:
WIP remove COME_FROMs around ignore_if's
2016-11-14 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py:
Show line numbers in 2.6 "after" asm .. start to understand some of the Python 2.6 bytecode parse failures.
2016-11-13 rocky <rb@dustyfeet.com>
* README.rst, uncompyle6/verify.py: Handle verify syntax errors... Update README.rst stats
2016-11-13 rocky <rb@dustyfeet.com>
* setup.py: Administrivia: Fixes #66
2016-11-13 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.9.5
2016-11-13 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse30.py,
uncompyle6/semantics/make_function.py: Python 3 bugs ... - Was using "while 1 .. else" improperly - docstring indent bug: was indenting docstring improperly
2016-11-13 rocky <rb@dustyfeet.com>
* README.rst: Revise what works and what doesn't
2016-11-13 rocky <rb@dustyfeet.com>
* test/simple_source/bug30/02_while1_if_while1.py,
uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse30.py,
uncompyle6/scanners/scanner3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Python 3.0 while1 if bug... Is a workaround. We really need more tagging in of SETUP_LOOP and
COME_FROM.
2016-11-11 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/semantics/check_ast.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Revert augassign change but.. Make note of what's going on and add grammar test for bad situations
we have in Python 2.6 (and perhaps others)
2016-11-11 rocky <rb@dustyfeet.com>
* test/test_pyenvlib.py, uncompyle6/parser.py,
uncompyle6/semantics/pysource.py: augassign semantic action bug
2016-11-10 rocky <rb@dustyfeet.com>
* test/simple_source/bug33/02_pos_args.py,
test/simple_source/bug33/03_func_params.py,
uncompyle6/semantics/fragments.py,
uncompyle6/semantics/make_function.py: Bug in detecting 3.3 default
value in lambda
2016-11-10 rocky <rb@dustyfeet.com>
* uncompyle6/main.py, uncompyle6/semantics/check_ast.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Detect some erroneous decompilations Until we can actually prevent these in grammar rules, we will warn
of improper decompilations. Also, we now stop when we hit a decompile error. Previously we were
not.
2016-11-10 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Remove unused imports
2016-11-07 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse30.py,
uncompyle6/parsers/parse32.py: Possiby tidy grammar
2016-11-06 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Bump xdis to get correct 3.0 bytecodes
2016-11-06 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse33.py, uncompyle6/parsers/parse34.py: Some
Python 3.4 grammar rules apply to Python 3.3
2016-11-06 rocky <rb@dustyfeet.com>
* test/Makefile, test/test_pythonlib.py,
uncompyle6/parsers/parse30.py: Start bytecode 3.0 decompiling
2016-11-06 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse30.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner30.py: Python 3.0 doesn't have POP_JUMP
ops... In some ways Python 3.0 code generation is more like Python 2.6 (and
before) than it is Python 2.7 or 3.0.
2016-11-05 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #63 from rocky/python-3.0 Python 3.0
2016-11-05 rocky <rb@dustyfeet.com>
* : commit cd3cf5ec2960a733e9fedca9c4549caf33c2d1d0 Author: rocky
<rb@dustyfeet.com> Date: Thu Nov 3 21:26:12 2016 -0400
2016-11-02 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, __pkginfo__.py, uncompyle6/version.py: Get ready
for release 2.9.4
2016-11-02 rocky <rb@dustyfeet.com>
* README.rst: Update unpyc3 info.
2016-11-01 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse31.py, uncompyle6/parsers/parse32.py,
uncompyle6/semantics/make_function.py: Clean up annotation grammar a
little
2016-11-01 rocky <rb@dustyfeet.com>
* test/simple_source/bug31/04_def_annotate.py,
uncompyle6/semantics/make_function.py: Full Python 3 annotations
2016-10-30 rocky <rb@dustyfeet.com>
* .gitignore, README.rst, test/simple_source/def/03_class_method.py:
Note github unpyc3 and.. - Add source to bytecode_2.2/03_class_method.pyc - more ignore
2016-10-30 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/make_function.py: More source-code line
indention in make_function.. and remove Python 3 situations from make_function2()
2016-10-29 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/make_function.py,
uncompyle6/semantics/pysource.py: More annotation processing in to
make_function Move return-value annotation determination from n_mkfunc_annotate to
make_function_annotate which is where other kinds of annotation
handling will also need to be done.
2016-10-29 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/make_function.py,
uncompyle6/semantics/parser_error.py,
uncompyle6/semantics/pysource.py: Break out make_function() into its
own file. It is already too complex and will get worse in Python 3.6. Note: make_function in fragments.py is still inside and probably
needs fixup.
2016-10-28 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse31.py, uncompyle6/parsers/parse32.py,
uncompyle6/parsers/parse35.py, uncompyle6/semantics/pysource.py:
More complete annotate handling Still have a bit of work to do though.
2016-10-28 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse32.py, uncompyle6/parsers/parse33.py,
uncompyle6/parsers/parse34.py, uncompyle6/semantics/pysource.py:
Expand annotate return to Python 3.4
2016-10-28 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/parsers/parse31.py,
uncompyle6/parsers/parse32.py, uncompyle6/semantics/pysource.py:
Expand annotate handling to 3.3 (and possibly 3.2) - DRY Python 3.1-3.3 grammar a little
2016-10-28 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse31.py, uncompyle6/parsers/parse32.py,
uncompyle6/parsers/parse33.py, uncompyle6/parsers/parse35.py: Split
out 3.1-3.3 parsers from parser3.py This is anticipation of extending annotation to Python 3.2+
2016-10-27 rocky <rb@dustyfeet.com>
* test/simple_source/bug31/04_def_annotate.py,
test/simple_source/bug31/04_def_attr.py,
uncompyle6/parsers/parse31.py, uncompyle6/semantics/pysource.py:
Clean and fix Python 3 annotate arg return
2016-10-26 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Dependencies stay within 2nd semantic level
2016-10-26 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.9.3
2016-10-26 rocky <rb@dustyfeet.com>
* test/simple_source/bug31/04_def_attr.py,
uncompyle6/parsers/parse31.py, uncompyle6/scanner.py,
uncompyle6/semantics/pysource.py: Start to attack Python 3.1 def()
-> xx construct Start to localize make_function routines by Python version
2016-10-25 rocky <rb@dustyfeet.com>
* __pkginfo__.py, uncompyle6/parser.py,
uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse31.py: Split
out Python 3.1 parser from rest. __pkginfo__.py: use Python 3.1 bytecode fixes
2016-10-25 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py: Handle Python 3.1 "with ... as"
statement
2016-10-24 rocky <rb@dustyfeet.com>
* test/Makefile: Add python 3.1 bytecode testing
2016-10-24 rocky <rb@dustyfeet.com>
* test/simple_source/stmts/07_withstmt_fn.py,
uncompyle6/parsers/parse3.py: Python 3.1 "with" statement bug
2016-10-24 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse34.py,
uncompyle6/parsers/parse35.py: Python 3.1 compile bug. DRY Python
3.x rules ... via inheritance
2016-10-24 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: Fix
some Python 3.1 bugs
2016-10-24 rocky <rb@dustyfeet.com>
* Makefile, test/Makefile, test/test_pyenvlib.py,
uncompyle6/bin/uncompile.py, uncompyle6/parser.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner3.py: Start Python 3.0 decoding Fix some Python 3.1 bugs
2016-10-22 Daniel Bradburn <moagstar@gmail.com>
* : Merge pull request #60 from rocky/buildstring Buildstring
2016-10-22 rocky <rb@dustyfeet.com>
* pytest/test_fstring.py, test/simple_source/bug36/01_fstring.py,
uncompyle6/semantics/pysource.py: Move fstring rules inside a 3.6+
check
2016-10-22 rocky <rb@dustyfeet.com>
* : commit d6f7ef4e178e04d9a612d3a6c0b77a008732357f Author: rocky
<rb@dustyfeet.com> Date: Fri Oct 21 07:40:35 2016 -0400
2016-10-20 moagstar <moagstar@gmail.com>
* pytest/test_fstring.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse36.py, uncompyle6/semantics/pysource.py:
further work on supporting single and multiple fstring decompilation
2016-10-20 rocky <rb@dustyfeet.com>
* uncompyle6/main.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py: DRY Python 2.x unmangle_classname main.py: small typo: Disassembled -> Decompiled
2016-10-19 moagstar <moagstar@gmail.com>
* pytest/test_fstring.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse36.py, uncompyle6/semantics/pysource.py:
urther work on fstrings for python 3.6 - there is a new opcode
build_string which is used to improve fstring performance, but broke
the fstring support in uncompyle
2016-10-15 rocky <rb@dustyfeet.com>
* uncompyle6/main.py: Change meta data info in uncompyle6: * Show file size of source when possible, i.e. in Python 3.x * Show full information about python interpreter used to decompile
2016-10-15 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, __pkginfo__.py, requirements.txt,
uncompyle6/version.py: Get ready for release 2.9.2
2016-10-14 rocky <rb@dustyfeet.com>
* : commit a7ef513849cc2564b35636d3865561242e46e63f Author: rocky
<rb@dustyfeet.com> Date: Fri Oct 14 21:34:55 2016 -0400
2016-10-14 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse26.py: Python 2.6- _ifstmst_jump bug
2016-10-13 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Pretty-print constant tuples
2016-10-13 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py: 2.6 and before: try_middle
come_from per except
2016-10-13 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py: 2.6 try statement (and below) They may neeed arbitrary come_froms for each except clause
2016-10-13 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Bug in handling kv, kv2
2016-10-13 rocky <rb@dustyfeet.com>
* test/simple_source/stmts/08_source_linebreaks.py,
uncompyle6/semantics/pysource.py: Start to track line breaks on
lists
2016-10-11 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: DRY fragments.py preorder code pysource.py: doc typo
2016-10-11 rocky <rb@dustyfeet.com>
* __pkginfo__.py, requirements.txt: Need xdis 3.0.2 for Python 1.5
bug fixes
2016-10-11 rocky <rb@dustyfeet.com>
* __pkginfo__.py, requirements.txt, test/Makefile,
test/test_pythonlib.py, uncompyle6/scanners/scanner26.py: Fix Python
1.5 bytecode deparse Need xdis 3.0.2 though since the bug is really there.
2016-10-11 rocky <rb@dustyfeet.com>
* test/Makefile, test/test_pythonlib.py,
uncompyle6/scanners/scanner26.py: Fix python 1.5 decompile bugs ... add bytecode 1.5 tests from decompyle
2016-10-10 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Map expression with
source-directed linebreaks ... for Python 3.4 and 3.5
2016-10-10 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Start using source linebreaks in
formatting... .. large literals like maps and dicts, and tuples
2016-10-10 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, README.rst, __pkginfo__.py, requirements.txt,
uncompyle6/version.py: Get ready for release 2.9.1
2016-10-10 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse15.py, uncompyle6/scanners/scanner15.py,
uncompyle6/semantics/pysource.py: Python 1.5 scanner and parser and
.. .. slightly improved Forgot to check in files before. Handle Python pre 2.2. classes
2016-10-10 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, __pkginfo__.py, requirements.txt,
uncompyle6/disas.py, uncompyle6/main.py, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py,
uncompyle6/verify.py, uncompyle6/version.py: Get ready for release
2.9.0 ... - Use xdis 3.0.0 protocol load_module. Needs bump in
requirements.txt and _pkg_info_.py - Start Python 1.5 decompiling - another round of work is needed to
remove bugs - small cleanups
2016-10-09 rocky <rb@dustyfeet.com>
* : Reinstate some tests
2016-10-08 rocky <rb@dustyfeet.com>
* uncompyle6/bin/uncompile.py, uncompyle6/parsers/parse21.py,
uncompyle6/semantics/pysource.py: Simpify python 2.1 grammar Fix bug
with -t ... Wasn't showing source text when -t option was given
2016-10-08 rocky <rb@dustyfeet.com>
* test/simple_source/bug22/06_list_comprehension_x2_if.py,
uncompyle6/parsers/parse22.py, uncompyle6/parsers/parse26.py: Python
2.1-2.6 bug in list comprehension
2016-10-08 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.8.4
2016-10-08 rocky <rb@dustyfeet.com>
* README.rst, test/Makefile, test/decompyle/README.md,
test/decompyle/test_applyEquiv.py,
test/decompyle/test_augmentedAssign.py,
test/decompyle/test_class.py, test/decompyle/test_del.py,
test/decompyle/test_divide_future.py,
test/decompyle/test_divide_no_future.py,
test/decompyle/test_docstring.py, test/decompyle/test_empty.py,
test/decompyle/test_exceptions.py, test/decompyle/test_exec.py,
test/decompyle/test_expressions.py,
test/decompyle/test_extendedImport.py,
test/decompyle/test_extendedPrint.py,
test/decompyle/test_extendedarg.py,
test/decompyle/test_functions.py, test/decompyle/test_global.py,
test/decompyle/test_globals.py, test/decompyle/test_import.py,
test/decompyle/test_import_as.py, test/decompyle/test_integers.py,
test/decompyle/test_iterators.py, test/decompyle/test_lambda.py,
test/decompyle/test_listComprehensions.py,
test/decompyle/test_loops.py, test/decompyle/test_loops2.py,
test/decompyle/test_misc.py, test/decompyle/test_nested_elif.py,
test/decompyle/test_nested_scopes.py,
test/decompyle/test_prettyprint.py, test/decompyle/test_print.py,
test/decompyle/test_print_to.py,
test/decompyle/test_single_stmt.py, test/decompyle/test_slices.py,
test/decompyle/test_tuple_params.py, test/decompyle/test_tuples.py,
test/decompyle/test_yield.py, test/ok_lib2.7/compiler/syntax.py: Add
decompyle's 2.1 tests Update README.rst to note new pythons supported since last update
2016-10-07 rocky <rb@dustyfeet.com>
* __pkginfo__.py, test/test_pythonlib.py, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse21.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner21.py,
uncompyle6/scanners/scanner22.py, uncompyle6/scanners/scanner27.py,
uncompyle6/semantics/pysource.py: Start Python 2.1 bytecode
decompile
2016-10-06 rocky <rb@dustyfeet.com>
* uncompyle6/main.py: Use .py extension in disassembled files more
often
2016-10-06 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/controlflow.py,
uncompyle6/scanners/scanner3.py: Merge in COME_FROM disambiguation
... from controlflowbranch. Should probably expand to Python2 parsers as
well
2016-10-06 rocky <rb@dustyfeet.com>
* : commit a4dd6e980566a83270b9b9d47fb7f3cb3e5e385a Author: rocky
<rb@dustyfeet.com> Date: Wed Oct 5 22:56:48 2016 -0400
2016-10-05 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py: Python 3: "or" doesn't have optional
come_from
2016-10-05 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py:
Python 3: "and" doesn't have optional come_from
2016-10-05 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py:
Python 3: "and" doesn't have optional come_from
2016-10-05 rocky <rb@dustyfeet.com>
* : commit d2b477ae7d5a4c081262cabdccdb314d90b39255 Author: rocky
<rb@dustyfeet.com> Date: Tue Oct 4 23:58:35 2016 -0400
2016-09-27 rocky <rb@dustyfeet.com>
* test/simple_source/looping/04_while1_while1.py,
uncompyle6/parsers/parse3.py: Python 3 while1 grammar rules with
COME_FROM_LOOP
2016-09-27 rocky <rb@dustyfeet.com>
* test/Makefile, test/simple_source/looping/04_while1_while1.py,
uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: PY3
COME_FROM_LOOP bug There are still more in sre...
2016-09-27 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner3.py: PY3: COME_FROM -> COME_FROM_FINALLY
as appropriate We now have all WITH_ op jumps associated in the grammar Also, some COME_FROM_LOOP grammar fixes
2016-09-26 rocky <rb@dustyfeet.com>
* HISTORY.md, uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py:
Interval order COME_FROMs in Python3 This bug had possibly caused lots of grammar pollution which may
need addressing. We want to process COME_FROMs to the same offset to be in
*descending* order so we have the larger range or biggest
instruction interval last. (I think they are sorted in increasing
order, but for safety we sort them). That way, specific COME_FROM
tags will match up properly. For example, a "loop" with an "if"
nested in it should have the "loop" tag last so the grammar rule
matches that properly Adjust Python 3 grammar for more COME_FROM -> COME_FROM_LOOP. And
remove optional COME_FROM_LOOP where possible. Previously, the
optional-ness was a result of inner nestings gobbling up the
COME_FROM. We'll probably want to go back and fix this up in Python2.
2016-09-26 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse35.py, uncompyle6/scanners/controlflow.py,
uncompyle6/scanners/scanner3.py: Python 3 COME_FROM ->
COME_FROM_WITH appropriately
2016-09-25 rocky <rb@dustyfeet.com>
* test/Makefile, uncompyle6/verify.py: Try stronger verification verify.py: add check in verification that magic is the same.
Otherwise we go for weak verification.
2016-09-25 rocky <rb@dustyfeet.com>
* test/Makefile, uncompyle6/parsers/parse3.py: Address whileTrue if
cond .. -> while cond .. bug Reinstate Python standard library bisect test
2016-09-23 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Tidy use of SETUP_ ops Also possibly remove a bug in decompiling Python 3.0 .. 3.2 which
doesn't have SETUP_WITH
2016-09-23 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Tidy use of SETUP_ ops Also possibly remove a bug in decompiling Python 3.0 .. 3.2 which
doesn't have SETUP_WITH
2016-09-23 rocky <rb@dustyfeet.com>
* test/Makefile, test/ok_lib3.4/bisect.py: Weaken testing for
controlfow branch We have more equivalent programs now
2016-09-22 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, pytest/test_single_compile.py,
test/Makefile, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner3.py: Add COME_FROM_LOOP Note: we have regressed in --verify and some tests, but I believe
that's because we are producing more equivalant (if uglier)
programs. That's a separate problem though.
2016-09-22 rocky <rb@dustyfeet.com>
* : commit d271e886d9e818a871f15d8876d6eb9d1ed452a4 Author: rocky
<rb@dustyfeet.com> Date: Thu Sep 22 01:32:00 2016 -0400
2016-09-22 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/tok.py: Fix some
Test failures Fix py.test pytest/test_grammar.py - Comprehension sorts of things removed from parser that don't exist
in earlier pythons scanners/tok.py Add back in "to" when needed
2016-09-21 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/controlflow.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/tok.py: First
step towards managing control flow decoding
2016-09-21 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #56 from rocky/fstring merge fstring changes from moagstar
2016-09-21 moagstar <moagstar@gmail.com>
* pytest/test_fstring.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/pysource.py: merge fstring changes from
moagstar
2016-09-21 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py:
Python 2 & 3 scanner code ever so slightly closer
2016-09-21 rocky <rb@dustyfeet.com>
* NEWS: Small NEWS doc typo
2016-09-18 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py, uncompyle6/semantics/pysource.py:
Small changes
2016-09-11 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, __pkginfo__.py, uncompyle6/version.py: Get ready
for release 2.8.3
2016-09-11 rocky <rb@dustyfeet.com>
* test/bytecode_3.6/fstring.py,
test/bytecode_3.6/fstring_single.py, uncompyle6/parsers/parse35.py:
Tidy a bit
2016-09-09 rocky <rb@dustyfeet.com>
* test/simple_source/looping/10_while.py,
uncompyle6/parsers/parse3.py: 3.0 .. 3.4 bug in whileTrue
2016-09-09 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner31.py: 3.1 scanner small fixes
2016-09-09 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py, uncompyle6/semantics/pysource.py:
ret_cond adjustment for < 2.7 and ... "<= 2.6" -> "< 2.7" since python 2.6's version is 2.6000001
2016-09-09 rocky <rb@dustyfeet.com>
* test/Makefile, test/test_pyenvlib.py, test/test_pythonlib.py,
uncompyle6/scanners/scanner31.py, uncompyle6/verify.py: Start
accepting Python 3.1 bytecode
2016-09-08 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py: Add 3.6 parser
2016-09-08 rocky <rb@dustyfeet.com>
* .travis.yml, test/Makefile,
test/simple_source/expression/06_frozenset.py,
test/test_pythonlib.py: More testing - travis: * 2.7.12 - bump from 2.7.11 * 3.3.6 test_pyenvlib: add --weak-verify to Makefile: check-3.2.6 needs
--weak-verify
2016-09-08 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Python 3.0-3.2 *args processing
2016-09-08 rocky <rb@dustyfeet.com>
* test/simple_source/bug32/01_named_and_kwargs.py,
uncompyle6/semantics/pysource.py: 3.2 (and down to 3.0?) bug in fn
name and kwargs
2016-09-07 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/05_return_in_else.py,
uncompyle6/scanners/scanner3.py: Another 3.5+ erroneous
RETURN_END_IF misclassify
2016-09-07 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/05_return_in_else.py,
uncompyle6/scanners/scanner3.py: But in Python 3.5+ erroneosly
adding RETURN_END_IF
2016-09-05 rocky <rb@dustyfeet.com>
* test/simple_source/bug33/02_named_and_kwargs.py,
test/test_pyenvlib.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/pysource.py: Fix 3.3 named bug and ... Parse 3.4 parameters correctly. Allow test_pyenvlib to do 3.3.6
2016-09-05 rocky <rb@dustyfeet.com>
* test/simple_source/bug33/02_named_and_kwargs.py: Python 3.x bug in
getting parameter of ** argument
2016-09-05 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py:
Python 2.6- try/except control flow detection
2016-09-04 rocky <rb@dustyfeet.com>
* uncompyle6/disas.py, uncompyle6/main.py, uncompyle6/parser.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner22.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py,
uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py,
uncompyle6/scanners/scanner36.py, uncompyle6/semantics/aligner.py,
uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py, uncompyle6/show.py,
uncompyle6/verify.py: disassemble -> ingest where appropriate As part of tokenization for (de)parsing, we need to do something
like a disassembly, but is is really a little different. Disassembly, strictly speaking, is done by the xdis module now.
What "ingestion" does is massage the instruction tokens to a form
that is more amenable for parsing. In sum, ingestion is different than disassembly, although
disassembly is generally the first part of ingestion.
2016-09-04 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Small cleanup/code optimization
2016-09-04 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse26.py: Python 2.3--2.6 bug in parsing
try-middle Note: it looks like COME_FROMs need to be classified better with
respect to whether they are from an except or not we are getting
if/else vs except nesting errors.
2016-09-04 rocky <rb@dustyfeet.com>
* test/simple_source/bug26/07_generator_return.py,
uncompyle6/scanners/scanner2.py, uncompyle6/semantics/pysource.py: A
couple more 2.6 (and below) bugs fixed * Detect "return None" inside if statement * another case of triple ==, ==, == scanner2.py: detect_structure: descriminate more on parent type
2016-09-03 rocky <rb@dustyfeet.com>
* test/simple_source/bug26/05_generator.py,
uncompyle6/semantics/pysource.py: Python 2.5-2.6 generator bug Adjust for variable position of list iteration node in a genexpr
node
2016-09-03 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: Python 2.7 "return None" bug Same as 2.3-2.6 "return None".
2016-09-03 rocky <rb@dustyfeet.com>
* test/simple_source/bug26/08_triple_equals.py,
uncompyle6/scanners/scanner2.py: Python 2.2..2.6 bug in a == b == c
== d Fix was to remove some come froms. Feels a little hacky though.
2016-09-03 rocky <rb@dustyfeet.com>
* test/simple_source/bug26/07_generator_return.py,
uncompyle6/semantics/pysource.py: Python 2.3..2.6 "return" bug In Python 2.6 and possibly down to 2.3 we need to issue "return" not
"return None" inside a generator. So check for that "return None"
inside n_return and issue "return" for that.
2016-09-03 rocky <rb@dustyfeet.com>
* DECOMPYLE-2.4-CHANGELOG.txt: Add hartmut Goebel's changes before
2.4
2016-09-03 rocky <rb@dustyfeet.com>
* Makefile, test/simple_source/bug26/04_comp_for.py,
uncompyle6/semantics/pysource.py: Fix Python 2.4-2.6 comp_for text
generation... Makefile: tolerate pypy 5.3.x Rest: fix semantic action rule for
comp_for and test this
2016-09-02 rocky <rb@dustyfeet.com>
* test/simple_source/bug26/06_return_pop.py,
uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py:
Python 2.6- bug: RETURN_ENDIF, POP_TOP .. POP_TOP should be excluded as a potentional statement beginning
2016-09-02 rocky <rb@dustyfeet.com>
* test/simple_source/bug33/02_named_and_kwargs.py,
uncompyle6/scanners/scanner2.py, uncompyle6/semantics/pysource.py:
Fix Python 3.x named param and kwargs bug
2016-09-01 rocky <rb@dustyfeet.com>
* test/simple_source/bug26/04_while_and_stmt_one_line.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py:
2.6- bug: while..and: stmt - on one line If 2.6 or before POP_BLOCK after a JUMP_IF_FALSE does not constitute
a new statement. The POP_BLOCK is really part of the JUMP_IF_FALSE.
In Python 2.7+ it's a single op.
2016-09-01 rocky <rb@dustyfeet.com>
* test/simple_source/bug26/02_except_as.py,
uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py:
Handle Python 2.6 and below "except <cond>, <var>"
2016-08-31 rocky <rb@dustyfeet.com>
* test/simple_source/bug35/02_fn_varargs.py,
uncompyle6/semantics/pysource.py: Python 3.x bug in handling var
number of args
2016-08-31 rocky <rb@dustyfeet.com>
* test/simple_source/bug33/04_aug_assign.py, test/test_pyenvlib.py,
uncompyle6/main.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner3.py, uncompyle6/verify.py: Bug in 3.x
detecting "if" structure and ... scanner3.py: bug in 3.x detecting "if" structure Make scanner2.py
look more like scanner3.py verify.py: add weak-verify which tests
Pytyon syntax, but not code
2016-08-30 rocky <rb@dustyfeet.com>
* NEWS, test/simple_source/bug26/03_raise_from.py,
test/simple_source/bug33/03_raise_from.py,
uncompyle6/semantics/pysource.py: Handle Python 2 vs 3 raise syntax
change raise_stmt ::= "raise" expression "," expression becomes: raise_stmt ::= "raise" expression from expression raise expr, expr -> raise
2016-08-29 rocky <rb@dustyfeet.com>
* ChangeLog, __pkginfo__.py, uncompyle6/version.py: Get ready for
release 2.8.2
2016-08-27 rocky <rb@dustyfeet.com>
* test/test_pyenvlib.py, uncompyle6/verify.py: Correct PYPY bit
logic in previous commit
2016-08-27 rocky <rb@dustyfeet.com>
* test/test_pyenvlib.py, uncompyle6/semantics/pysource.py,
uncompyle6/verify.py: PYPY bugs and inspired changes ... verify.py: Show co_flags when different. pysource.py: PYPY also
generates normal tryfinallystmt code test_pyenvlib.py: allow
pypy-5.3.1
2016-08-26 rocky <rb@dustyfeet.com>
* Makefile, test/Makefile, uncompyle6/parser.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner3.py: Start to handle Python 3.1 bytecode
2016-08-26 rocky <rb@dustyfeet.com>
* __pkginfo__.py, requirements.txt: Bump min requirement versions xdis we need increased so we don't catch old xdis bugs
2016-08-25 rocky <rb@dustyfeet.com>
* test/simple_source/bug36/01_fstring.py,
uncompyle6/semantics/pysource.py: Handle 3.6 Format String
conversions !r, !s, !a
2016-08-20 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.8.1
2016-08-16 rocky <rb@dustyfeet.com>
* test/simple_source/bug22/05_test_yield.py,
uncompyle6/scanners/scanner2.py: Python 2.2 doesn't have opcode
LIST_APPEND
2016-08-16 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner26.py: Python 2.2 scanner bug: don't
mung IMPORT_NAME op
2016-08-16 rocky <rb@dustyfeet.com>
* test/simple_source/bug_pypy27/02_call_method.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Small
pypy LOOKUP_METHOD cleanups
2016-08-16 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #49 from moagstar/master Fixed a bug with FORMAT_VALUE with sub expressions.
2016-08-16 DanielBradburn <moagstar@gmail.com>
* pytest/test_fstring.py, uncompyle6/parsers/parse3.py: Fixed bug
with FORMAT_VALUE where a sub expression would not be correctly
interpreted
2016-08-14 rocky <rb@dustyfeet.com>
* __pkginfo__.py: xdis 2.1.1 removes some bugs encountered here
2016-08-14 rocky <rb@dustyfeet.com>
* : commit a65443ee0225933367be9c7640629298882532c9 Author: rocky
<rb@dustyfeet.com> Date: Sun Aug 14 22:59:34 2016 -0400
2016-08-14 DanielBradburn <moagstar@gmail.com>
* pytest/test_fstring.py: added examples for known failures
2016-08-14 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #45 from rocky/revert-43-patch-1 Revert "Cache pip installation in travis"
2016-08-14 R. Bernstein <rocky@users.noreply.github.com>
* .travis.yml: Revert "Test with latest PyPy in Travis"
2016-08-14 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #44 from thedrow/patch-2 Test with latest PyPy in Travis
2016-08-14 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #43 from thedrow/patch-1 Cache pip installation in travis
2016-08-13 rocky <rb@dustyfeet.com>
* test/Makefile: Back off of 3.6 testing for now
2016-08-13 rocky <rb@dustyfeet.com>
* : commit 7ccbd419c6b26e8ae9d0929f1bfddedebce6bbaf Author: rocky
<rb@dustyfeet.com> Date: Sat Aug 13 20:25:19 2016 -0400
2016-08-13 rocky <rb@dustyfeet.com>
* test/Makefile: I said - we test 2.2 now.
2016-08-13 rocky <rb@dustyfeet.com>
* test/Makefile, test/simple_source/stmts/00_import.py,
test/test_pythonlib.py: Include Python 2.2 in testing
2016-08-13 rocky <rb@dustyfeet.com>
* README.rst, uncompyle6/parser.py, uncompyle6/parsers/parse22.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner22.py,
uncompyle6/scanners/scanner23.py, uncompyle6/scanners/scanner24.py,
uncompyle6/scanners/scanner25.py, uncompyle6/semantics/pysource.py:
Start handling Python 2.2 bytecode and... Fix some bugs in Python 2.3-2.5 bytecode handling
2016-08-11 Omer Katz <omer.drow@gmail.com>
* .travis.yml: Test with latest PyPy.
2016-08-11 Omer Katz <omer.drow@gmail.com>
* .travis.yml: Cache pip installation
2016-08-10 DanielBradburn <moagstar@gmail.com>
* pytest/test_fstring.py: small formatting change
2016-08-10 DanielBradburn <moagstar@gmail.com>
* pytest/test_fstring.py, requirements-dev.txt: added hypothesis to
requirements-dev
2016-08-10 DanielBradburn <moagstar@gmail.com>
* pytest/test_fstring.py: added hypothesis test (currently failing
due to limited support) for testing fstring uncompyling
2016-08-10 Daniel Bradburn <moagstar@gmail.com>
* : Merge pull request #2 from rocky/master Merging pypy and cpython 3.6 from rocky
2016-08-03 rocky <rb@dustyfeet.com>
* : commit 109e813058380630bda82014eee94a9089cc4666 Author: rocky
<rb@dustyfeet.com> Date: Wed Aug 3 08:07:47 2016 -0400
2016-08-01 rocky <rb@dustyfeet.com>
* __pkginfo__.py, requirements.txt: Need recent xdis fix for 3.6
wordcode
2016-08-01 rocky <rb@dustyfeet.com>
* test/simple_source/bug36/01_fstring.py: Add Python 3.6
formatted_str test
2016-08-01 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #41 from rocky/3.6 Move forward on moagstar's Python 3.6 support
2016-08-01 rocky <rb@dustyfeet.com>
* Makefile, README.rst, test/Makefile, test/test_pythonlib.py,
uncompyle6/bin/uncompile.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse36.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner36.py, uncompyle6/semantics/aligner.py,
uncompyle6/semantics/pysource.py, uncompyle6/verify.py: Moagstar's
3.6 wordcode + formattedValue rules
2016-07-30 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/aligner.py: WIP try to keep line numbers the
same
2016-07-29 rocky <rb@dustyfeet.com>
* test/Makefile, uncompyle6/semantics/fragments.py: Small changes
2016-07-29 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse35.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py:
Fix 3.5 misclassifying RETURN_VALUE We use location of SETUP_EXCEPT instructions to disambiguate.
2016-07-28 Daniel Bradburn <moagstar@gmail.com>
* README.rst, test/Makefile, test/bytecode_3.6/fstring.py,
test/bytecode_3.6/fstring_single.py, test/test_pythonlib.py,
uncompyle6/bin/uncompile.py, uncompyle6/parser.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner36.py, uncompyle6/semantics/pysource.py,
uncompyle6/verify.py: Starting adding python 3.6 support to
uncompyle
2016-07-28 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse23.py,
uncompyle6/parsers/parse24.py: while1 bug applied to Python 2.3 and
2.4
2016-07-28 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py, uncompyle6/scanners/tok.py: PyPy
3.2 bug confusing RETURN_END_IF for except Also fix a instruction formatting bug
2016-07-27 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse35.py: Split out 3.5 parser
2016-07-27 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse34.py: Add python 3.4 grammar checking DRY grammar testing
2016-07-27 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse25.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse34.py: Clean and check Python 2.6 grammar
2016-07-27 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse3.py: Start
to segregate and clean up grammar
2016-07-27 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/disas.py,
uncompyle6/scanner.py, uncompyle6/semantics/fragments.py: Add
is_pypy parameter to places that need it
2016-07-27 rocky <rb@dustyfeet.com>
* test/simple_source/stmts/09_whiletrue_bug.py,
uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py,
uncompyle6/semantics/pysource.py: 2.6 and 2.7 while1 grammar rule Fixes issue #40
2016-07-27 rocky <rb@dustyfeet.com>
* pytest/test_grammar.py, uncompyle6/parser.py,
uncompyle6/parsers/parse3.py: Start grammar checker
2016-07-27 rocky <rb@dustyfeet.com>
* uncompyle6/main.py, uncompyle6/show.py: Show magic number in
output Fix bugs due to removal of token.format()
2016-07-27 rocky <rb@dustyfeet.com>
* uncompyle6/disas.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner35.py, uncompyle6/scanners/tok.py,
uncompyle6/show.py: tok.format -> tok.__str__; simplify pypy code
2016-07-27 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py, uncompyle6/verify.py: Python 2.7
set comprehension bug
2016-07-27 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: separate semantic action version
differences Added customize_for_version which uses is_pypy and version to adjust
tables
2016-07-27 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Customize tables better for
specific Python versions
2016-07-27 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py, uncompyle6/semantics/pysource.py:
Small code clean up
2016-07-26 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/tok.py, uncompyle6/semantics/fragments.py,
uncompyle6/verify.py: Usuability fixes * try using format for __str__ * Explicitly nuke self.attr and self.pattr when no arg * Sync pysource and format wrt make_function
2016-07-26 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, README.rst, __pkginfo__.py, requirements.txt,
test/test_pyenvlib.py, uncompyle6/version.py: Get ready for release
2.7.1
2016-07-26 rocky <rb@dustyfeet.com>
* test/simple_source/bug_pypy27/00_assign_pypy.py,
test/simple_source/bug_pypy27/03_try_return.py, uncompyle6/main.py,
uncompyle6/parsers/parse2.py, uncompyle6/scanners/scanner2.py,
uncompyle6/semantics/pysource.py: Custom PyPy rules for
tryfinallysmt, assign{2,3}
2016-07-26 rocky <rb@dustyfeet.com>
* test/simple_source/bug_pypy27/01_assert2.py,
test/simple_source/bug_pypy27/03_try_return.py,
uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py:
More PyPy grammar rules * assert one and two-arg form * trystmt Simplify adding multiple grammar rules
2016-07-25 rocky <rb@dustyfeet.com>
* pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right,
uncompyle6/scanners/tok.py: Instruction formatting - yet again
2016-07-25 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/pysource.py: Add grammar for PyPy 2-arg assert
2016-07-25 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/tok.py, uncompyle6/semantics/pysource.py: PyPy
BUILD_MAP_n. Reinstate bytecode tests
2016-07-25 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py: Handle PyPy
BUILD_MAP_0 where actual kw_args > 0
2016-07-25 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Clean
up PyPy load_attr grammar rules
2016-07-25 rocky <rb@dustyfeet.com>
* Makefile: Enable more PyPy testing
2016-07-25 rocky <rb@dustyfeet.com>
* test/Makefile: Start checking PyPy bytecodes
2016-07-25 rocky <rb@dustyfeet.com>
* test/Makefile, uncompyle6/scanners/pypy27.py,
uncompyle6/scanners/pypy32.py: Add pypy scanners
2016-07-25 rocky <rb@dustyfeet.com>
* __pkginfo__.py, requirements.txt, test/Makefile,
test/simple_source/bug27+/05_setattr.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner3.py: Handle PyPy CALL_METHOD op more
correctly Start testing pypy2.7 and 3.2 bytecodes
2016-07-25 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse2.py: add_custom_rules() in 2.x and 3.x
are more alike
2016-07-25 rocky <rb@dustyfeet.com>
* README.rst, test/simple_source/stmts/03_if_elif.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse27.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py:
Handle PyPy JUMP_IF_NOT_DEBUG Update README.rst to note PyPY and reorganize a little
2016-07-25 rocky <rb@dustyfeet.com>
* pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/tok.py: Better
assembly formatting of jump instructions
2016-07-24 rocky <rb@dustyfeet.com>
* Makefile, test/Makefile, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: More
PyPy LOOKUP_METHOD rules
2016-07-24 rocky <rb@dustyfeet.com>
* Makefile, __pkginfo__.py, pytest/test_fjt.py, requirements.txt,
test/Makefile, test/test_pythonlib.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py:
PyPy support * Use proper PYPY 32 opcodes * handle opcodes LOOKUP_METHOD and CALL_METHOD * Administrative stuff for PyPy
2016-07-24 Daniel Bradburn <moagstar@gmail.com>
* : Merge pull request #1 from rocky/master Syncing with rocky
2016-07-24 rocky <rb@dustyfeet.com>
* : commit 21683719e1a07d51095d32200ec294d659746474 Author: rocky
<rb@dustyfeet.com> Date: Sun Jul 24 04:16:54 2016 -0400
2016-07-24 rocky <rb@dustyfeet.com>
* : commit 7e8173b07620c344a73660b354f05a61c4723d18 Author: rocky
<rb@dustyfeet.com> Date: Sun Jul 24 03:44:26 2016 -0400
2016-07-23 rocky <rb@dustyfeet.com>
* test/simple_source/bug27+/05_for_try_except.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner27.py:
Another 2.7 'continue' detection bug
2016-07-23 rocky <rb@dustyfeet.com>
* test/simple_source/bug27+/05_for_try_except.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner27.py:
Another 2.7 'continue' detection bug
2016-07-23 rocky <rb@dustyfeet.com>
* test/simple_source/bug27+/05_for_try_except.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner27.py:
Another 2.7 'continue' detection bug
2016-07-23 rocky <rb@dustyfeet.com>
* test/simple_source/bug27+/05_for_try_except.py,
uncompyle6/scanners/scanner2.py: 2.7: Detect "continue" inside
except Fixes issue #38. This is a bit hacky. We need a more general "continue" detection.
2016-07-23 rocky <rb@dustyfeet.com>
* : commit a5f45f232decad2e74bfdf476255604273fd95fd Author: rocky
<rb@dustyfeet.com> Date: Sat Jul 23 10:37:41 2016 -0400
2016-07-21 rocky <rb@dustyfeet.com>
* __pkginfo__.py, test/test_pyenvlib.py, uncompyle6/disas.py,
uncompyle6/main.py, uncompyle6/parser.py,
uncompyle6/parsers/parse27.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner27.py,
uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py, uncompyle6/verify.py: Start
handling pypy 2.7 Need to understand whether we care compiling pypy. Pypy 2.7 list
comprehensions are different and use its own opcode.
2016-07-20 rocky <rb@dustyfeet.com>
* HISTORY.md, README.rst: Update HISTORY and add link to it in
README.md
2016-07-17 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/semantics/pysource.py: Better
parse error formatting Start to move away for compiler-oriented terminology: Favor "instructions" over "tokens". Syntax error -> Parse error.
2016-07-17 rocky <rb@dustyfeet.com>
* pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/tok.py: Align
disassembly output with xdis align number of offset fields with xdis. Show None type when we
mean None, not ''
2016-07-17 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Respect after/both option in
scanner3
2016-07-17 rocky <rb@dustyfeet.com>
* pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right:
Adjust test data for changed disasm output
2016-07-16 rocky <rb@dustyfeet.com>
* : commit 942b15e3c62963b32aaba877fd451ffe304c07a9 Author: rocky
<rb@dustyfeet.com> Date: Sat Jul 16 14:12:31 2016 -0400
2016-07-16 rocky <rb@dustyfeet.com>
* README.rst: More explicit usage info
2016-07-15 rocky <rb@dustyfeet.com>
* README.rst, test/Makefile,
test/simple_source/bug35/01_matrix_multiply.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Add
3.5 matrix mult ops We now run 3.5 verifycation so we need to remove some of the tests
that fail to verify pending fixing.
2016-07-15 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, README.rst, uncompyle6/version.py: Get ready for
release 2.7.0
2016-07-14 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py,
uncompyle6/semantics/pysource.py: Isolate pseudo op IMPORT_NAME_CONT I think this is a holdover from pre 2.3 days. Possibly it can be
dropped altogether.
2016-07-14 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Attempt to get 3.5 RETURN_END_IF working This feels hacky and I'm not sure is quite right. Untili we
understand better what to do though, we'll go with it.
2016-07-14 rocky <rb@dustyfeet.com>
* test/Makefile, uncompyle6/semantics/pysource.py: 3.x __qualname__
= supression Class names have become more complicated so the pattern test needs
to be more complex as well. Sigh
2016-07-14 rocky <rb@dustyfeet.com>
* README.rst, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: 3.x list comprehenions
list_if_not, comp_ifnot bug Saw only list_if_not bug, but might also be applicable to comp_ifnot
2016-07-14 rocky <rb@dustyfeet.com>
* test/simple_source/stmts/15_assert.py,
uncompyle6/scanners/scanner3.py: 3.x ""raise AssertionError" vs
"assert" Not sure this is totally correct yet.
2016-07-14 rocky <rb@dustyfeet.com>
* uncompyle6/main.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse34.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py,
uncompyle6/verify.py: Python 3.4 assertion handling. Improve verify 3.4 has jump optimization like 3.5. verify.py: show mismatch on
verification mismatch
2016-07-13 rocky <rb@dustyfeet.com>
* : Reinstate some code for verification
2016-07-13 rocky <rb@dustyfeet.com>
* uncompyle6/main.py: Back off showing verification errors Pending why this failing in make.
2016-07-13 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/pysource.py: "return None" -> "pass" Python 3.4 classes have what looks like a return None, but this is
invalid syntax. So for now we'll remove all "return None"s. There may be a "pass" in there instead.
2016-07-13 rocky <rb@dustyfeet.com>
* : commit fd0d8d25672b9450bafc1d5c6781bedd7ec8bd1d Author: rocky
<rb@dustyfeet.com> Date: Wed Jul 13 13:00:03 2016 -0400
2016-07-13 rocky <rb@dustyfeet.com>
* test/simple_source/stmts/11_return_val.py,
uncompyle6/semantics/pysource.py: Debugging smutz caused verify
failures
2016-07-12 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Document/correct hide_internal and
store_locals
2016-07-12 rocky <rb@dustyfeet.com>
* test/simple_source/bug33/05_store_locals.py,
test/simple_source/bug33/05_store_name.py,
uncompyle6/semantics/pysource.py: Better 3.2/33 store_locals
handling
2016-07-11 rocky <rb@dustyfeet.com>
* test/simple_source/bug33/05_store_name.py,
test/simple_source/comprehension/05_3x_set_comphension.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Python 3.2 & 3.3 handle STORE_NAME better
2016-07-11 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, README.rst, uncompyle6/version.py: Get ready for
release 2.6.2
2016-07-11 rocky <rb@dustyfeet.com>
* test/add-test.py,
test/simple_source/comprehension/05_set_comprehension.py,
uncompyle6/semantics/pysource.py: Fix some Python set comprehension
bugs
2016-07-11 rocky <rb@dustyfeet.com>
* test/simple_source/def/05_static_method.py: Add missing a test
source file
2016-07-11 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner3.py: Python 3.(4?) while1 bug Clean up while1 grammar a tad
2016-07-10 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py: Revert recent 2.x code which fail
verification
2016-07-10 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse34.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner3.py: Structure detection bugs + Had borked 3.4 grammar rules in previous refactor
2016-07-10 rocky <rb@dustyfeet.com>
* uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner3.py: DRY and clean up code a little
2016-07-10 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner3.py: Remove JA. Use standard
JUMP_ABSOLUTE instead
2016-07-10 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Python 2/3 compatibility bug
2016-07-10 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py:
Bugs caused by 3.x jump_forward misclasification
2016-07-10 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py:
Python 3 better CONTINUE op classification Also document what's up with JUMP_ABSOLUTE classification
2016-07-09 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse34.py: 3.4 continue handling. More work is
needed
2016-07-09 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Need xdis 2.4 bugfix
2016-07-09 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/parse34.py: Start splitting off 3.4 grammar from
rest
2016-07-09 rocky <rb@dustyfeet.com>
* test/simple_source/comprehension/01_list_comprehension.py,
uncompyle6/parsers/parse23.py: Python 2.3 list comprehensions
2016-07-09 rocky <rb@dustyfeet.com>
* test/simple_source/comprehension/01_list_comprehension.py,
test/simple_source/operation_binary/add.py,
test/simple_source/operation_binary/and.py,
test/simple_source/operation_binary/divide_floor.py,
test/simple_source/operation_binary/divide_true.py,
test/simple_source/operation_binary/modulo.py,
test/simple_source/operation_binary/multiply.py,
test/simple_source/operation_binary/or.py,
test/simple_source/operation_binary/power.py,
test/simple_source/operation_binary/shift_left.py,
test/simple_source/operation_binary/shift_right.py,
test/simple_source/operation_binary/subscription.py,
test/simple_source/operation_binary/subtract.py,
test/simple_source/operation_binary/xor.py,
test/simple_source/operation_comparison/equal.py,
test/simple_source/operation_comparison/greater.py,
test/simple_source/operation_comparison/greater_equal.py,
test/simple_source/operation_comparison/less.py,
test/simple_source/operation_comparison/less_equal.py,
test/simple_source/operation_comparison/notequal.py,
test/simple_source/operation_inplace/add.py,
test/simple_source/operation_inplace/and.py,
test/simple_source/operation_inplace/divide_floor.py,
test/simple_source/operation_inplace/divide_true.py,
test/simple_source/operation_inplace/modulo.py,
test/simple_source/operation_inplace/multiply.py,
test/simple_source/operation_inplace/or.py,
test/simple_source/operation_inplace/power.py,
test/simple_source/operation_inplace/shift_left.py,
test/simple_source/operation_inplace/shift_right.py,
test/simple_source/operation_inplace/subtract.py,
test/simple_source/operation_inplace/xor.py,
test/simple_source/operation_unary/invert.py,
test/simple_source/operation_unary/iter.py,
test/simple_source/operation_unary/negative.py,
test/simple_source/operation_unary/not.py,
test/simple_source/operation_unary/positive.py,
test/simple_source/precedence/left.py,
test/simple_source/precedence/right.py,
test/simple_source/precedence/structure.py,
test/simple_source/stmts/00_import.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse23.py,
uncompyle6/parsers/parse25.py, uncompyle6/scanners/scanner26.py: Fix
some 2.3 bugs; add more 2.3-6. tests
2016-07-09 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse23.py: 2.3 while1stmt bug
2016-07-09 rocky <rb@dustyfeet.com>
* : commit ac45e5757c8c57af2c918c79ff4f6195268afec1 Author: rocky
<rocky@gnu.org> Date: Sat Jul 9 05:59:02 2016 -0400
2016-07-09 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse23.py: Merge conflict
2016-07-09 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner3.py: Python3 scanner code cleanup
2016-07-08 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py,
uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py:
Python 3 code cleanup
2016-07-08 rocky <rb@dustyfeet.com>
* test/Makefile, uncompyle6/scanner.py,
uncompyle6/scanners/scanner24.py, uncompyle6/scanners/scanner25.py,
uncompyle6/scanners/scanner26.py: DRY scanner code. Allow 2.4
decompile from 3.x
2016-07-08 rocky <rocky@gnu.org>
* : Add more 2.4 and 2.6 tests
2016-07-08 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse24.py: 2.4 "import *" grammar rule
2016-07-08 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse24.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner24.py, uncompyle6/scanners/scanner26.py:
Python 2.4 generator expressions and gen_comp_body
2016-07-08 rocky <rocky@gnu.org>
* __pkginfo__.py, uncompyle6/parsers/parse24.py,
uncompyle6/scanners/scanner2.py: <2.5 grammar customizations for
imports and loops
2016-07-08 rocky <rocky@gnu.org>
* __pkginfo__.py, test/Makefile, test/add-test.py,
test/test_pyenvlib.py, test/test_pythonlib.py,
uncompyle6/parser.py, uncompyle6/parsers/parse24.py,
uncompyle6/parsers/parse25.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner24.py, uncompyle6/scanners/scanner25.py,
uncompyle6/semantics/pysource.py: Start handling Pyton 2.4 bytecodes
2016-07-08 rocky <rocky@gnu.org>
* ChangeLog, NEWS, README.rst, uncompyle6/version.py: Get ready for
release 2.6.1
2016-07-08 rocky <rocky@gnu.org>
* test/simple_source/stmts/11_return_val.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py:
2.5/2.6 RETURN_VALUE bug
2016-07-08 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse25.py, uncompyle6/parsers/parse26.py:
2.5/2.6 fn name clash fixes list conprehension problem
2016-07-08 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse25.py: Python 2.5 with statement
2016-07-08 rocky <rocky@gnu.org>
* README.rst: Revise decompilation quality estimate
2016-07-08 rocky <rocky@gnu.org>
* test/add-test.py, test/simple_source/stmts/05_with.py,
uncompyle6/parser.py, uncompyle6/parsers/parse25.py,
uncompyle6/parsers/parse26.py: Start going over Python 2.5 bytecode Fix 2.6 with bug
2016-07-07 rocky <rocky@gnu.org>
* ChangeLog, NEWS, __pkginfo__.py, uncompyle6/version.py: Get ready
for release 2.6.0
2016-07-07 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse26.py: <2.7 add a rare kind of list_for
2016-07-07 rocky <rocky@gnu.org>
* : Remove 2.7 asynchat verifcation for now
2016-07-07 rocky <rocky@gnu.org>
* test/simple_source/looping/08_while1_if_continue.py,
uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py,
uncompyle6/scanners/scanner2.py: while1 bug in 2.6 and 2.7
2016-07-07 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse26.py: <2.7 whileelse rule
2016-07-07 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py:
<2.6 make sure jump back on loops is really "back"
2016-07-07 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner2.py: <2.7 lack of POP_IF_ adjustment
in detect_structure
2016-07-07 rocky <rocky@gnu.org>
* test/test_pyenvlib.py, uncompyle6/parsers/parse26.py,
uncompyle6/scanners/scanner2.py: 2.6 POP_TOP and POP_JUMP_IF bugs
2016-07-06 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner2.py: 2.6 bug in handling jumps to
jumps
2016-07-06 rocky <rocky@gnu.org>
* test/simple_source/stmts/03_if_elif.py,
uncompyle6/parsers/parse26.py: 2.6.9 bug: multiple COME_FROMs via
"or"/"assert"
2016-07-06 rocky <rocky@gnu.org>
* test/simple_source/stmts/03_if_elif.py,
uncompyle6/parsers/parse26.py: 2.6.9 elif with multiple COME_FROMs
2016-07-06 rocky <rocky@gnu.org>
* test/simple_source/stmts/04_raise.py,
uncompyle6/scanners/scanner2.py: < 2.7 bug in not distinguishing
raise from assert
2016-07-04 rocky <rocky@gnu.org>
* : Add 10_if_else_ternary.pyc for 2.5
2016-07-03 rocky <rocky@gnu.org>
* pytest/test_deparse.py: fragment test update for expanded offsets
2016-07-03 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: More offsets captrued Add %b
specifer %b - associate text before specifier pysource.py: small doc
correction
2016-07-03 rocky <rocky@gnu.org>
* : commit 04698f45cc4246b95b3bb8c22f61e0398614b344 Author: rocky
<rb@dustyfeet.com> Date: Sun Jul 3 11:32:20 2016 -0400
2016-07-03 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py:
Another 2.6 while stmt. Clean up grammar a little
2016-07-03 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py:
2.6 improper tagging of RETURN_END_IF
2016-07-02 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse27.py: 2.6.9 tryelsestmt
2016-07-02 rocky <rocky@gnu.org>
* test/simple_source/stmts/04_withas.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse27.py: Python 2.6 with as stmt
2016-07-01 rocky <rocky@gnu.org>
* test/simple_source/stmts/06_return_if.py,
uncompyle6/parsers/parse26.py: 2.6 ifelsestmt
2016-07-01 rocky <rocky@gnu.org>
* test/simple_source/looping/07_return_end_if.py,
uncompyle6/parsers/parse26.py: Another 2.6 return_stmt bug
2016-07-01 rocky <rocky@gnu.org>
* test/simple_source/looping/07_return_end_if.py,
uncompyle6/parser.py, uncompyle6/parsers/parse26.py: 2.6 return_stmt
bug
2016-06-30 rocky <rocky@gnu.org>
* __pkginfo__.py: Fix import name in setup entry_points. Fixes issue #34
2016-06-30 rocky <rocky@gnu.org>
* test/simple_source/stmts/06_for_break.py,
uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py:
More 2.6.9 bugs fixed * break loop parsing bug * ifelsestmt semantic-action bug in handling else
2016-06-30 rocky <rocky@gnu.org>
* test/simple_source/comprehension/05_list_comprehension.py,
uncompyle6/parsers/parse26.py: 2.6 conditional in list comprehension
bug
2016-06-30 rocky <rocky@gnu.org>
* uncompyle6/semantics/pysource.py: Oh Python and your f*'d notions
of spacing
2016-06-30 rocky <rocky@gnu.org>
* test/simple_source/comprehension/05_for_for.py,
uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py:
2.6.9 list comprehension
2016-06-30 rocky <rocky@gnu.org>
* test/simple_source/exception/07_try_pass.py,
uncompyle6/scanners/scanner2.py: <= 2.6 weird jump out of try block Allow COME_FROMs to appare via JUMP_FORWARD in tey/except blocks
2016-06-30 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse27.py: CONTINUE handling in 2.6.9
2016-06-30 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse26.py: 2.6 except_suite bug
2016-06-29 rocky <rocky@gnu.org>
* test/simple_source/comprehension/08_for_if_for.py,
uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py: 2.6
genexpr. Some not quite right.
2016-06-29 rocky <rocky@gnu.org>
* test/simple_source/stmts/15_assert.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse27.py: 2.6.9 assert 2-arg bug
2016-06-29 rocky <rocky@gnu.org>
* test/simple_source/bug26/06_setif_comprehension.py,
test/simple_source/bug27+/06_setif_comprehension.py,
test/simple_source/comprehension/06_setif_comprehension.py,
uncompyle6/parsers/parse26.py: A 2.6 comprehension bug
2016-06-29 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #33 from rocky/python-2.6 Python 2.6
2016-06-28 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py:
Weird 2.6.9 list comprehension
2016-06-28 rocky <rocky@gnu.org>
* test/simple_source/stmts/06_return_if.py,
uncompyle6/parsers/parse26.py: Add more come_from_pops
2016-06-28 rocky <rocky@gnu.org>
* test/simple_source/stmts/07_withstmt_fn.py,
uncompyle6/parsers/parse26.py: 2.6. with fn()
2016-06-27 rocky <rocky@gnu.org>
* uncompyle6/parser.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py:
Base 2.5 off of 2.6. Some other small bugs.
2016-06-27 rocky <rocky@gnu.org>
* uncompyle6/parser.py, uncompyle6/parsers/parse26.py: 2.6 try
except hadnling works now
2016-06-27 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py:
2.6 list comprehensions
2016-06-27 rocky <rocky@gnu.org>
* __pkginfo__.py, uncompyle6/parsers/parse26.py,
uncompyle6/scanners/scanner2.py: JUMP_IF_{TRUE,FALSE}_OR_OP fixes
2016-06-27 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse26.py: WIP 2.6 j{f,b}_pop fix
2016-06-24 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py: WIP
deal with JUMP_IF_{TRUE,FALSE} vs with POP version
2016-06-24 rocky <rocky@gnu.org>
* : WIP Python-2.6 but don't remove opcodes The scheme for turning 2.6 bytecode into 2.7 psuedo bytecode I think
is a lose. I won't work for fragment handling. Instead, change the grammar and syntax rules This also has the benefits: * We see how code generation changed over releases by looking at grammar and semantic rules rather than arbitrary code * We can better assocate with what's running (in a sense this is a restatement of broken fragment handling) * With the right structure in place we are in a better position to handle 2.5, 2.4, etc. That is, after a while, the incremental
changes to get say from python 2.3 bytecode to python 2.7 are
great. Conflicts: uncompyle6/parsers/astnode.py
2016-06-24 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner2.py: 2.6 compatibility
2016-06-24 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner2.py: Small formating changes ... and premonition of 2.6 byteocde work
2016-06-24 rocky <rocky@gnu.org>
* : commit 7a4e3a05ff88e8a02b08eafc3e9f862d1e206c7f Author: rocky
<rocky@gnu.org> Date: Fri Jun 24 09:28:50 2016 -0400
2016-06-24 rocky <rocky@gnu.org>
* __pkginfo__.py, uncompyle6/parsers/astnode.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py,
uncompyle6/semantics/pysource.py: WIP 2.6 redo bytecode handling Don't try to convert 2.6 bytecode to 2.7 psuedo bytecode. Instead
adjust grammar and semantic actions. Down the line we should to segregate version changes in semantic
code better.
2016-06-24 Daniel Bradburn <moagstar@gmail.com>
* uncompyle6/show.py: fixed bug in maybe_show_ast_param_default, if
default was not a str a TypeError would occur
2016-06-22 rocky <rocky@gnu.org>
* README.rst, __pkginfo__.py: Doc fixes
2016-06-22 rocky <rocky@gnu.org>
* ChangeLog, NEWS, __pkginfo__.py, uncompyle6/version.py: Get ready
for release 2.5.0
2016-06-22 rocky <rocky@gnu.org>
* README.rst: Update README
2016-06-22 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Python 3.5 and setcomp_func's A comprehension walk in Python 3.5 needs to include setcomp_func's.
2016-06-22 rocky <rocky@gnu.org>
* test/simple_source/branching/07_if_return_bug.py,
uncompyle6/parsers/parse3.py: Python 3.5 if handling... Allow RETURN_END_IF in a return statement May want to do this in
other versions as well, but right now we only need it here.
2016-06-22 rocky <rocky@gnu.org>
* test/simple_source/expression/05_yield_from.py,
test/simple_source/expression/09_yield_from.py,
uncompyle6/parsers/parse3.py: Another kind of yield_from on 3.5
2016-06-22 rocky <rocky@gnu.org>
* test/simple_source/expression/05_yield_from.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
differing ways to do "yield from" in 3.3-3.5
2016-06-22 rocky <rocky@gnu.org>
* test/test_pyenvlib.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner23.py,
uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Add Python 3.5 yield from and ... * fragments.py: Handle pass stmt sometimes * scanners: regularize Python 2 scanners some * test/test_pyenvlib.py: add python 3.5.1 option
2016-06-22 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Python 3 comprehension fixes Sync up fragments.py
2016-06-22 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
More 3.2 LOAD_CONST removal More python3 custom grammar DRYing
2016-06-22 rocky <rocky@gnu.org>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py: DRY parse grammar a little More LOAD_CONST grammar removal in 3.2
2016-06-22 rocky <rocky@gnu.org>
* test/simple_source/expression/05_lambda.py,
test/simple_source/expression/10_lambda.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Python 3.2 MAKE_FUNCTION adjustment
2016-06-22 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py: Python 2.6 tolerance
2016-06-21 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py: Btter Python 3 fragment set
comprehensions ... fragment handling for "break" and "continue"
2016-06-21 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Handle fragment key/value
offsets better
2016-06-20 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Bang on Python 3.2 decompiling.
2016-06-20 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py:
Python 3 needs Python2's RETURN_END_IF Make python2 and python3 scanner look more the same
2016-06-20 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py:
previous 2.7 class decorator bug fixed in 3.x
2016-06-20 rocky <rocky@gnu.org>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py: DRY redundant custom rule checking
code
2016-06-20 rocky <rocky@gnu.org>
* test/simple_source/comprehension/05_set_comprehension.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Python 3 set comprehension bug
2016-06-20 rocky <rocky@gnu.org>
* test/simple_source/def/07_classderef.py,
test/simple_source/def/11_classbug_subclass_fn.py,
uncompyle6/parsers/parse3.py: Python 3.x class bug using subclass
fns
2016-06-20 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py,
uncompyle6/semantics/pysource.py: For Python 3: add LOAD_CLASSDEREF
op
2016-06-20 rocky <rocky@gnu.org>
* test/simple_source/def/11_mkfunc_closure.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
3.x make closure kw args handling bug
2016-06-20 rocky <rocky@gnu.org>
* test/simple_source/def/10_class_deco.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Python 3.x class decorator bug
2016-06-19 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Correct kw+pos args semantics on
3.3 Sync fragment make_function code
2016-06-19 rocky <rocky@gnu.org>
* test/simple_source/def/10_kw+pos_args-bug.py,
uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/pysource.py: Start 3.3 positional and kw
parameters Semantic routines need more work.
2016-06-19 rocky <rocky@gnu.org>
* test/simple_source/exception/10_try_continue_bug.py,
uncompyle6/parsers/parse3.py: Another 3.x bug involving jumps
2016-06-19 rocky <rocky@gnu.org>
* test/simple_source/expression/03_map.py: Revert assert test on 3.4
until we figure out how to address
2016-06-19 rocky <rocky@gnu.org>
* test/simple_source/comprehension/05_set_comprehension.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner27.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
2.7 and 3.x bug in dict comprehensions
2016-06-19 rocky <rocky@gnu.org>
* test/simple_source/expression/10_load_assert.py: 3.4 Load assert
bug
2016-06-19 rocky <rocky@gnu.org>
* test/simple_source/exception/06_tryifelse.py,
uncompyle6/parser.py, uncompyle6/parsers/parse3.py: 3.4 tryifelse
bug
2016-06-19 rocky <rocky@gnu.org>
* test/simple_source/looping/08_while_except_bug.py,
uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Python 3 except clause parsing bug
2016-06-19 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py: Cover more offsets
2016-06-19 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py: Python 3.3 is more like 3.4 than we
had thought?
2016-06-19 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #31 from rocky/ast-format Ast format
2016-06-19 rocky <rocky@gnu.org>
* : commit 10b95cd9a844c274b0ebce3e605932eccc814f1b Author: rocky
<rocky@gnu.org> Date: Sun Jun 19 02:31:19 2016 -0400
2016-06-19 rocky <rocky@gnu.org>
* : commit d7b79c2b59eb1fb49614300d7033c69568b7f43b Author: rocky
<rocky@gnu.org> Date: Sun Jun 19 00:49:22 2016 -0400
2016-06-18 rocky <rocky@gnu.org>
* test/simple_source/comprehension/06_setif_comprehension.py,
uncompyle6/main.py, uncompyle6/parser.py,
uncompyle6/semantics/pysource.py: 3.4 set comprehension if bug
2016-06-17 rocky <rocky@gnu.org>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse23.py, uncompyle6/parsers/parse26.py,
uncompyle6/parsers/parse3.py: Go over grammars.. * Reduce duplication * Remove unused grammar rules * Add grammar checking when parsers run as standalone
2016-06-14 rocky <rocky@gnu.org>
* uncompyle6/semantics/pysource.py: Not-quite-right 3.5+ * handling
2016-06-07 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Add fragment offsets for more
instructions Save and restore class name across switches
2016-06-06 rocky <rb@dustyfeet.com>
* pytest/test_deparse.py, uncompyle6/semantics/fragments.py: Set
comprehension code is not in 2.6 So we need more care in test programs.
2016-06-06 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py: Add class offset of Python3
2016-06-06 rocky <rocky@gnu.org>
* pytest/test_deparse.py,
test/simple_source/comprehension/05_set_comprehension.py,
uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Fix python 3 set comprehension and ... Add a few set/list comprehension offsets for Python 3
2016-06-06 rocky <rocky@gnu.org>
* uncompyle6/parser.py, uncompyle6/parsers/astnode.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
small changes
2016-06-06 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py:
include offset for starting listcomp
2016-06-03 rocky <rocky@gnu.org>
* : commit d4006abf15a2e3da768cdcf2e19078d0553ed979 Author: rocky
<rocky@gnu.org> Date: Fri Jun 3 10:59:29 2016 -0400
2016-06-03 rocky <rocky@gnu.org>
* test/Makefile, uncompyle6/scanner.py,
uncompyle6/scanners/scanner23.py: Can't handle python 2.3 on 3.x for
now
2016-06-03 rocky <rocky@gnu.org>
* .gitignore, __pkginfo__.py, test/Makefile, test/test_pyenvlib.py,
test/test_pythonlib.py, uncompyle6/parser.py,
uncompyle6/parsers/parse23.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner23.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py,
uncompyle6/scanners/scanner35.py, uncompyle6/semantics/pysource.py:
Limited support for Python 2.3
2016-06-03 rocky <rocky@gnu.org>
* uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py,
uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py,
uncompyle6/semantics/pysource.py: option to show asm and DRY. Get ready for some 2.3 support
2016-06-03 rocky <rocky@gnu.org>
* README.rst, uncompyle6/scanners/scanner33.py: For Python 3.3
verification README.rst: reflow paragraph
2016-06-02 rocky <rocky@gnu.org>
* test/simple_source/comprehension/06_list_ifnot_and.py,
uncompyle6/parser.py, uncompyle6/parsers/parse26.py,
uncompyle6/scanners/scanner26.py: Start custom grammar for 2.6 and
... fix a python 2.6.9 deparse with lc if+and+not
2016-06-02 rocky <rocky@gnu.org>
* .gitignore, README.rst, uncompyle6/parsers/parse2.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner3.py: Misc refactorings
2016-06-01 rocky <rocky@gnu.org>
* README.rst: Remove things we don't do here anymore. For those other things see xdis.
2016-06-01 rocky <rocky@gnu.org>
* README.rst: Remove stuff we don't do anymore For these other functions see xdis.
2016-06-01 rocky <rocky@gnu.org>
* .gitignore, uncompyle6/parsers/astnode.py: print AST children
counts for internal nodes
2016-06-01 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #23 from rocky/diagnostics-to-stream Diagnostics to stream
2016-06-01 Daniel Bradburn <moagstar@gmail.com>
* uncompyle6/parser.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py, uncompyle6/show.py: showasm and
showast now accept file like objects which are used for writing the
the asm or ast to.
2016-06-01 Daniel Bradburn <moagstar@gmail.com>
* uncompyle6/show.py: showasm and showast now accept file like
objects which are used for writing the the asm or ast to.
2016-05-31 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #22 from rocky/xdis-load Xdis load
2016-05-31 rocky <rocky@gnu.org>
* __pkginfo__.py, uncompyle6/.gitignore,
uncompyle6/opcodes/Makefile, uncompyle6/opcodes/__init__.py,
uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_24.py,
uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py,
uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py,
uncompyle6/scanners/scanner35.py: use totally xdis's opcodes Needs xdis 1.1.0 or greater
2016-05-30 rocky <rb@dustyfeet.com>
* pytest/test_disasm.py, pytest/testdata/if-2.7.right,
pytest/testdata/ifelse-2.7.right, test/ok_lib2.7/bsddb/dbobj.py,
test/ok_lib2.7/bsddb/dbrecio.py, test/ok_lib2.7/bsddb/dbshelve.py,
test/ok_lib2.7/bsddb/dbutils.py,
test/ok_lib2.7/compiler/__init__.py,
test/ok_lib2.7/compiler/ast.py, test/ok_lib2.7/compiler/consts.py,
test/ok_lib2.7/compiler/future.py, test/ok_lib2.7/compiler/misc.py,
uncompyle6/disas.py: Back of some of the last disasm changes Was failing test_disasm and I don't want to deal with that now. Add more 2.7 bytecode tests
2016-05-29 rocky <rb@dustyfeet.com>
* : commit 08790ab0ab6b24fdbaf6ba90211d159115c6863a Author: rocky
<rocky@gnu.org> Date: Sun May 29 23:02:31 2016 -0400
2016-05-29 rocky <rocky@gnu.org>
* test/Makefile, test/ok_lib2.6/anydbm.py, test/test_pythonlib.py,
uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner25.py,
uncompyle6/scanners/scanner26.py: DRY scanner25 and scanner26 more
2016-05-29 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py:
Bang again on Python 2.5 and 2.6 scanners
2016-05-29 rocky <rocky@gnu.org>
* __pkginfo__.py, uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py: bang on scanner2{5,6}
2016-05-29 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner2.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py:
Start to DRY 2.6 scanner Note: can't use xdis 2.6 opcode until another xdis release.
2016-05-29 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner2.py: Remove use of 2.7 globals by
using self.opc
2016-05-28 rocky <rb@dustyfeet.com>
* : commit e70e7bfc164c319d5554042336160ee04fb2fdb2 Author: rocky
<rocky@gnu.org> Date: Sat May 28 19:34:12 2016 -0400
2016-05-28 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py,
uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py:
DRY scanners more
2016-05-28 rocky <rocky@gnu.org>
* test/simple_source/comprehension/06_list_ifnot.py,
test/simple_source/comprehension/10-list-ifnot.py,
uncompyle6/semantics/pysource.py: Fix bug in 3x list comprehensions
with ifnot
2016-05-28 rocky <rocky@gnu.org>
* test/simple_source/comprehension/06_list_ifnot.py,
test/simple_source/comprehension/10-list-ifnot.py,
uncompyle6/scanners/dis3.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner35.py, uncompyle6/semantics/pysource.py:
Remove dis3. Fix in 3.x list if not comprehension
2016-05-28 rocky <rocky@gnu.org>
* uncompyle6/opcodes/opcode_3x.py, uncompyle6/scanners/dis3.py: One
more Python 3 opcode to remove
2016-05-28 rocky <rocky@gnu.org>
* uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_33.py,
uncompyle6/opcodes/opcode_34.py, uncompyle6/scanners/scanner3.py:
Remove dup 3.x opcodes
2016-05-28 rocky <rocky@gnu.org>
* .travis.yml: Nuke Travis 3.2 and 3.3 testing for now
2016-05-28 rocky <rocky@gnu.org>
* uncompyle6/scanner.py, uncompyle6/scanners/scanner32.py,
uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py:
xdis for Python 3 opcodes
2016-05-28 rocky <rocky@gnu.org>
* test/Makefile, uncompyle6/opcodes/opcode_35.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner35.py: use xdis
3.4-3.5 opcodes
2016-05-27 rocky <rocky@gnu.org>
* .travis.yml, __pkginfo__.py: More travis versions
2016-05-27 rocky <rocky@gnu.org>
* __pkginfo__.py, pytest/test_fjt.py, pytest/test_load.py,
pytest/test_marsh.py, uncompyle6/__init__.py,
uncompyle6/bin/pydisassemble.py, uncompyle6/code.py,
uncompyle6/disas.py, uncompyle6/load.py, uncompyle6/magics.py,
uncompyle6/main.py, uncompyle6/marsh.py, uncompyle6/parser.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py, uncompyle6/verify.py: Use xdis for
code, magics, and marshal
2016-05-25 rocky <rocky@gnu.org>
* : commit b6a0c5a704d7d0a3a2a0eb4f90a15eb7a4aceaa2 Author: rocky
<rocky@gnu.org> Date: Wed May 25 20:08:12 2016 -0400
2016-05-25 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #21 from rocky/fragments-state-fix Fixed bug in pysource / fragments where the use of deparse_code from
2016-05-24 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py: Small change 0 shouldn't be used as False.
2016-05-23 rocky <rocky@gnu.org>
* test/simple_source/def/06_ifTrue_optimize_bug.py,
test/simple_source/def/06_return_bug.py,
uncompyle6/semantics/pysource.py: final RETURN removal bug We want to remove a final return from a module, but otherwise not.
Note we'll no lonager be able to verify functools.pyc as there is
now a return after a raise statement. That will have to be delt with
separately. May address Issue #17.
2016-05-22 rocky <rocky@gnu.org>
* README.rst: pydisassemble is in pyxdis now Some small ReST tag fixes
2016-05-22 Daniel Bradburn <moagstar@gmail.com>
* .travis.yml: Excluding experimental branch from travis ci
2016-05-22 Daniel Bradburn <moagstar@gmail.com>
* .travis.yml: Excluding experimental branch from travis ci
2016-05-21 Daniel Bradburn <moagstar@gmail.com>
* : Merge pull request #16 from rocky/multi-gen--bug-3.5 Fix 3.x generator bug...
2016-05-21 rocky <rocky@gnu.org>
* test/simple_source/expression/11_multi_genexpr.py,
uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py: Fix 3.x generator bug... found by Daniel Brandburn. See
https://github.com/moagstar/python-uncompyle6/commit/af61622960ba49eef5ea1b5bdf9a738c7b10427c
2016-05-21 rocky <rocky@gnu.org>
* uncompyle6/bin/uncompile.py: Check Python version in uncompile.py Seems this is the only place that uses that.
2016-05-20 rocky <rocky@gnu.org>
* test/test_pyenvlib.py, uncompyle6/main.py: Small changes test_pyenvlib.py: cleanup code a little uncompyle6/main.py: more
explicit decompile msg
2016-05-20 rocky <rb@dustyfeet.com>
* test/test_pyenvlib.py, uncompyle6/__init__.py,
uncompyle6/bin/pydisassemble.py, uncompyle6/bin/uncompile.py,
uncompyle6/scanners/dis3.py, uncompyle6/semantics/fragments.py,
uncompyle6/verify.py: Small pyflakes stuff
2016-05-20 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Fragment fixes fragments.py: * Use "%x" specifier if for iterators * Add '%D' interpretation pysource.py: TABLE_DIRECT can get messed up from running fragments duplicate "%x" specifier to igore fragment stuff
2016-05-19 rocky <rocky@gnu.org>
* LICENSE, PKG-INFO, __pkginfo__.py, test/simple_source/README,
uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py,
uncompyle6/scanners/scanner35.py: Small changes and administrivia
2016-05-18 rocky <rocky@gnu.org>
* pytest/test_marsh.py,
test/simple_source/expression/06_frozenset.py, uncompyle6/marsh.py:
Handle marshal frozenset
2016-05-18 rocky <rocky@gnu.org>
* NEWS, uncompyle6/disas.py, uncompyle6/magics.py,
uncompyle6/opcodes/opcode_27.py: Allow PyPy 2.7 opcodes and magic
and ... disas.py: * more aggressive code checking magics.py: * Add PYPY magic opcodes_27.py: * Add PYPY opcodes
2016-05-18 rocky <rocky@gnu.org>
* ChangeLog, DECOMPYLE-2.4-CHANGELOG.txt, HISTORY.md, NEWS,
README.rst, test/test_pyenvlib.py, uncompyle6/version.py: Get ready
for release 2.4.0
2016-05-18 rocky <rocky@gnu.org>
* uncompyle6/verify.py: Add 3.5 to verify
2016-05-18 rocky <rocky@gnu.org>
* pytest/test_load.py, pytest/testdata/if-2.7.right,
pytest/testdata/ifelse-2.7.right, uncompyle6/disas.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py,
uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py,
uncompyle6/scanners/scanner35.py, uncompyle6/scanners/tok.py,
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
2016-05-17 rocky <rocky@gnu.org>
* pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right,
uncompyle6/bin/pydisassemble.py, uncompyle6/disas.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/tok.py: Go
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
2016-05-17 rocky <rocky@gnu.org>
* pytest/test_marsh.py,
test/simple_source/expression/02_complex.py, uncompyle6/marsh.py:
Fix marshal bug in handling complex numbers
2016-05-17 rocky <rocky@gnu.org>
* Makefile, test/simple_source/def/09_class_closure.py,
uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
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
2016-05-16 rocky <rocky@gnu.org>
* test/test_pyenvlib.py, uncompyle6/marsh.py,
uncompyle6/scanners/scanner3.py: Fix a number of small bugs... test_peynv.py: make Python3 compatible marsh.py: remove duplicate
test scanner3.py: fix opcode typo
2016-05-16 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py: Fix Python 3.x bug in function VAR
and KW args
2016-05-16 rocky <rocky@gnu.org>
* : Readd some 3.x loop tests
2016-05-16 rocky <rocky@gnu.org>
* pytest/test_fjt.py: pytest for last commit
2016-05-16 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Correct bugs in Python 3.2 source
generation
2016-05-16 rocky <rocky@gnu.org>
* Makefile: Travis can't handle pytest on Python 3.5
2016-05-16 rocky <rocky@gnu.org>
* HISTORY.md, Makefile, uncompyle6/parsers/parse3.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner3.py: Python 2 loop scanner detection in
Python 3 scanner*.py: Make scanner27 and scanner3 more aligned Makefile: we
can run py.test on Python 3.5 HISTORY.md: grammar changes
2016-05-16 rocky <rocky@gnu.org>
* HISTORY.md, uncompyle6/main.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner3.py, uncompyle6/verify.py: Misc small
changes Go over history yet again code cleanups.
2016-05-15 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py: Python3 mklambda bug
2016-05-15 rocky <rocky@gnu.org>
* test/simple_source/expression/08_genexpr.py,
test/simple_source/expression/10_genexpr.py,
uncompyle6/parsers/parse3.py: Python 3 genexpr bug
2016-05-15 rocky <rocky@gnu.org>
* HISTORY.md: Correct info on parser
2016-05-15 rocky <rocky@gnu.org>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Bug in Python 3.x genexpr
2016-05-15 rocky <rocky@gnu.org>
* test/simple_source/expression/05_lambda.py,
test/test_pyenvlib.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py:
Fix bug in Python 3 lambda expression handling Some other small cleanup changes
2016-05-15 rocky <rocky@gnu.org>
* uncompyle6/bin/pydisassemble.py, uncompyle6/disas.py,
uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner34.py,
uncompyle6/scanners/scanner35.py, uncompyle6/scanners/tok.py:
pydisassemble disassemble without grammar mangling Some other small cleanups as well
2016-05-15 rocky <rocky@gnu.org>
* uncompyle6/parser.py, uncompyle6/parsers/parse3.py: Fix verify bug
in 3.2
2016-05-15 rocky <rocky@gnu.org>
* test/simple_source/looping/12_if_while_bug.py,
uncompyle6/parsers/parse3.py: 3.4 if/while bug
2016-05-15 rocky <rocky@gnu.org>
* .travis.yml: force Travis 2.7.11 for Python 2.7
2016-05-15 rocky <rocky@gnu.org>
* test/ok_lib2.7/aifc.py, test/ok_lib2.7/antigravity.py,
test/ok_lib2.7/anydbm.py, test/ok_lib2.7/asynchat.py,
test/ok_lib2.7/atexit.py, test/ok_lib2.7/audiodev.py,
test/ok_lib2.7/base64.py, test/ok_lib2.7/binhex.py,
test/ok_lib2.7/bisect.py, test/ok_lib2.7/calendar.py,
test/ok_lib2.7/cgitb.py, test/ok_lib2.7/chunk.py,
test/ok_lib2.7/codeop.py, test/ok_lib2.7/colorsys.py,
test/ok_lib2.7/commands.py, test/ok_lib2.7/compileall.py,
test/ok_lib2.7/dircache.py, test/ok_lib2.7/dis.py,
test/test_pyenvlib.py: Add more Python 2.7 verify tests
2016-05-15 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Fix bug in kvlist handling on
Python 2.7 Created from previous DRY code in Python 3
2016-05-15 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
DRY scanner34 and scanner35 handle 3.0..3.4 build maps as key/value pairs
2016-05-15 rocky <rocky@gnu.org>
* uncompyle6/scanners/dis3.py: Optimize Python 2/3 code2num
2016-05-14 rocky <rocky@gnu.org>
* test/Makefile, uncompyle6/scanners/dis3.py: Python2 comptability
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
confer the character to a number.
2016-05-14 rocky <rocky@gnu.org>
* uncompyle6/bin/pydisassemble.py, uncompyle6/scanners/dis3.py,
uncompyle6/scanners/dis35.py, uncompyle6/scanners/scanner34.py,
uncompyle6/scanners/scanner35.py: Start to DRY Python 3.4 and 3.5
scanners
2016-05-14 rocky <rocky@gnu.org>
* __pkginfo__.py, requirements.txt, setup.py: See if travis will
take spark 1.2.1
2016-05-14 rocky <rocky@gnu.org>
* uncompyle6/bin/pydisassemble.py, uncompyle6/bin/uncompile.py: Fix
names for <program> -V
2016-05-14 rocky <rocky@gnu.org>
* ChangeLog, __pkginfo__.py, uncompyle6/version.py: Fix botched
entry point names Get ready for relase 2.3.6
2016-05-14 rocky <rocky@gnu.org>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.3.5
2016-05-13 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py: More fragment bugs
2016-05-13 rocky <rocky@gnu.org>
* MANIFEST.in, Makefile, __pkginfo__.py, setup.py,
uncompyle6/semantics/fragments.py: More packaging crap. Did I tell you how much I hate python packaging? fragments.py: track recent change in class decorators.
2016-05-13 rocky <rocky@gnu.org>
* __pkginfo__.py, bin/pydisassemble, bin/uncompyle6, setup.py,
test/simple_source/bug26/05-ret-or.py,
test/simple_source/def/03_star_arg.py, uncompyle6/bin/__init__.py,
uncompyle6/bin/pydisassemble.py, uncompyle6/bin/uncompile.py: Python
packaging - yet again. Did I ever mention how much Python sucks at packaging?
2016-05-13 rocky <rocky@gnu.org>
* test/simple_source/def/10_classdec.py: Test for class decorator See https://github.com/rocky/python-uncompyle6/pull/15
2016-05-13 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #15 from Tey/master Fix for class decorators
2016-05-12 rocky <rocky@gnu.org>
* __pkginfo__.py: Back off spark 1.2.0 for now
2016-05-12 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner35.py:
More small changes
2016-05-12 rocky <rocky@gnu.org>
* test/test_pythonlib.py: Clean up test byte-compile directory
2016-05-12 rocky <rocky@gnu.org>
* test/simple_source/stmts/15_for_if.py, uncompyle6/main.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: Misc
changes Back off of some validation tests for now.
2016-05-12 rocky <rocky@gnu.org>
* __pkginfo__.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Misc fixups/cleanups * parse3.py Had botched if-for-else test by grammar addition * semantics/*.py: Show errorstack in failed parse when -g (requires
sparck 1.2.0) * some optimization in scanner3
2016-05-12 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #14 from rocky/make-function-rewrite Make function rewrite
2016-05-11 rocky <rocky@gnu.org>
* test/simple_source/def/03_py3_def.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/dis35.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner34.py,
uncompyle6/scanners/scanner35.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Redo make_function for *, arg main(*, file='foo') and things like that now work
2016-05-11 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/dis35.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner35.py,
uncompyle6/semantics/pysource.py: WIP Make function redo
2016-05-10 rocky <rocky@gnu.org>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: add
pos_arg ::= expr to make params of fns clear
2016-05-09 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py: * call WIP
2016-05-09 rocky <rocky@gnu.org>
* test/simple_source/def/11_classbug.py,
uncompyle6/parsers/parse3.py: 3.2 class bug
2016-05-09 rocky <rocky@gnu.org>
* test/simple_source/looping/09_if_whiletrue_bug.py,
uncompyle6/parsers/parse3.py: 3.2 WhileTrue grammar bug
2016-05-09 rocky <rocky@gnu.org>
* test/simple_source/stmts/09_whiletrue_bug.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Python 3 "while True" bug
2016-05-09 rocky <rocky@gnu.org>
* DECOMPYLE-2.4-CHANGELOG.txt, HISTORY.md, MANIFEST.in: Dan Pascu's
contribution via Dan
2016-05-09 rocky <rocky@gnu.org>
* HISTORY.md: Another history tweak
2016-05-09 rocky <rocky@gnu.org>
* HISTORY.md, uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner27.py: Some
grammar cleanup
2016-05-09 rocky <rocky@gnu.org>
* test/simple_source/def/05_closure_bug.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Track recent lc changes in
fragment semantics
2016-05-09 rocky <rocky@gnu.org>
* test/simple_source/def/07_closure_bug2.py: Another closure
wrapping bug
2016-05-09 rocky <rocky@gnu.org>
* test/simple_source/def/05_closure_bug.py,
uncompyle6/parsers/parse3.py: Another Python 3 closure grammar bug
2016-05-09 rocky <rocky@gnu.org>
* HISTORY.md: More small history tweaks
2016-05-09 rocky <rocky@gnu.org>
* test/simple_source/comprehension/11-list-if.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Fix
Python 3 list comprehansion closure bug
2016-05-08 rocky <rocky@gnu.org>
* test/simple_source/operation_logic/05_dup_top_two.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Python 3
DUP_TOP_TWO bug
2016-05-08 rocky <rocky@gnu.org>
* test/simple_source/looping/11_if_while_bug.py,
uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py: DRY parse{2,3} code Add test for last bug.
2016-05-08 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Fix
another if/loop parse bug
2016-05-08 rocky <rocky@gnu.org>
* HISTORY.md, uncompyle6/main.py: Go over history yet again.
2016-05-08 rocky <rocky@gnu.org>
* test/simple_source/comprehension/10-list-ifnot.py,
uncompyle6/main.py, uncompyle6/parser.py: come_from_opt handles
and/or precidence properly main.py: give a better error message when file is not found.
2016-05-08 rocky <rocky@gnu.org>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Semantic routine nonterminal typo
2016-05-08 rocky <rocky@gnu.org>
* test/simple_source/looping/11_for_if_loopback2.py,
uncompyle6/parser.py, uncompyle6/parsers/parse3.py: Yet another
Python 3.x COME_FROM grammar problem
2016-05-08 rocky <rocky@gnu.org>
* test/simple_source/looping/10_for_if_loopback.py,
uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner32.py: Fix
3.2 for/if loopback bug problem was handling in Python 3.2 for ... if ... else: .... jump for come from if jump for In later Python 3's a "come from" is removed. Also, start to DRY parser{,2,3} grammar rules.
2016-05-08 rocky <rocky@gnu.org>
* HISTORY.md, test/simple_source/branching/10_if_pass.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner35.py:
Fix 3.5 if..pass bug Update HISTORY.MD to include Dan Pascu. Some minor doc corrections
2016-05-08 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner34.py,
uncompyle6/scanners/scanner35.py: DRY scanner 3.{4,5} code
2016-05-07 rocky <rocky@gnu.org>
* test/simple_source/def/07_classparam.py,
uncompyle6/parsers/parse3.py: Python 3 build class parsing
2016-05-07 rocky <rocky@gnu.org>
* test/simple_source/expression/05_yield_from.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner35.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Handle Python 3 yield from Start dealing with MAKE_FUNCTION flags - not done yet.
2016-05-06 rocky <rocky@gnu.org>
* test/simple_source/comprehension/10-genexpr.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: More Python3 deparsing - grammar rule genexpr - More Python3 docstring formatted
2016-05-06 rocky <rocky@gnu.org>
* bin/pydisassemble, setup.py: Administrivia setup.py: don't need to import pkg_resources pydisassemble: give an error is no file or directory is given usage should go to stderr, not stdout
2016-05-05 rocky <rocky@gnu.org>
* README.rst, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Minor tweaks
2016-05-05 rocky <rocky@gnu.org>
* uncompyle6/semantics/pysource.py: All Python 2.7 lib files
decompile
2016-05-05 rocky <rocky@gnu.org>
* test/simple_source/stmts/05_try_finally_pass.py,
test/simple_source/stmts/10_if_break_finally.py,
uncompyle6/opcodes/opcode_27.py, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: More
Python 2 and 3 deparsing bugs fixed * while + if break * try + finall /pass
2016-05-05 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Again, not GPL3 but MIT
2016-05-05 rocky <rb@dustyfeet.com>
* uncompyle6/__init__.py, uncompyle6/opcodes/opcode_27.py: Start
PYPY 2.7 tolerance
2016-05-05 rocky <rocky@gnu.org>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.3.4
2016-05-05 rocky <rocky@gnu.org>
* .travis.yml: Remove pypy3 add python 3.2 testing Reorder list for testing preference
2016-05-05 rocky <rocky@gnu.org>
* .travis.yml: Remove pypy
2016-05-05 rocky <rocky@gnu.org>
* Makefile, test/Makefile, uncompyle6/semantics/pysource.py: Fix up
3.2 tests Remove pypy
2016-05-05 rocky <rocky@gnu.org>
* .travis.yml: Try pypy and pypy3
2016-05-05 rocky <rocky@gnu.org>
* test/simple_source/def/05_abc_class.py,
test/simple_source/def/06_classbug.py, uncompyle6/parsers/parse3.py:
Python 3.5 abc.py bug distilled
2016-05-05 rocky <rocky@gnu.org>
* uncompyle6/scanners/dis35.py, uncompyle6/scanners/scanner35.py:
Add cross-Python-protable 3.5 dis module
2016-05-04 rocky <rocky@gnu.org>
* test/simple_source/stmts/05_with.py,
uncompyle6/opcodes/opcode_35.py, uncompyle6/parser.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner35.py:
Handle 3.5 with [as] scanner35.py: Fix a small variable-name typo
2016-05-03 rocky <rocky@gnu.org>
* : One more test
2016-05-03 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py:
Don't repeat next_except_jump
2016-05-03 rocky <rb@dustyfeet.com>
* __pkginfo__.py, requirements.txt: Wrong package name
2016-05-03 rocky <rocky@gnu.org>
* __pkginfo__.py, requirements.txt, setup.py: More package
administrivia
2016-05-03 rocky <rocky@gnu.org>
* uncompyle6/scanner.py: Remove one more old-style Python class
2016-05-03 rocky <rocky@gnu.org>
* uncompyle6/scanners/scanner27.py: DRY Python 2.7 scanner more
2016-05-03 rocky <rocky@gnu.org>
* MANIFEST.in: Include LICENSE in package
2016-05-03 rocky <rocky@gnu.org>
* ChangeLog, NEWS, uncompyle6/version.py: Get ready for release
2.3.3
2016-05-02 rocky <rocky@gnu.org>
* README.rst: Be more explicit that we need Python 2.6 or later
2016-05-02 rocky <rocky@gnu.org>
* : commit feec241da88107b97bbdfbabeb3ae7131a7aa923 Author: rocky
<rocky@gnu.org> Date: Mon May 2 21:20:17 2016 -0400
2016-05-02 rocky <rb@dustyfeet.com>
* README.rst: Note relation to other uncompyle forks Add some other minor corrections and additions as well.
2016-05-02 rocky <rb@dustyfeet.com>
* uncompyle6/__init__.py: Trivial spacing change
2016-05-02 rocky <rocky@gnu.org>
* ChangeLog, NEWS, __pkginfo__.py, bin/pydisassemble,
bin/uncompyle6, setup.py, uncompyle6/__init__.py,
uncompyle6/version.py: Add -V | --version and simplfy changing it
2016-05-01 rocky <rocky@gnu.org>
* uncompyle6/__init__.py: Expose uncompyle_file
2016-05-01 rocky <rocky@gnu.org>
* test/Makefile, uncompyle6/semantics/pysource.py: Bug
2016-05-01 rocky <rocky@gnu.org>
* test/Makefile, test/simple_source/expression/05_const_map.py: Add
test for last fix. Drop 2.5 test until we figure out what's wrong
2016-05-01 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner35.py,
uncompyle6/semantics/pysource.py: Bug in 3.5 constant map parsing
2016-05-01 rocky <rocky@gnu.org>
* uncompyle6/__init__.py: Export module load and fns load_file,
load_module
2016-05-01 rocky <rocky@gnu.org>
* __pkginfo__.py, setup.py, uncompyle6/marsh.py: License is MIT marsh.py: remove unused import
2016-05-01 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py: Forgot to define Python3ParserSingle
2016-05-01 rocky <rocky@gnu.org>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py: Start to DRY Python2 and Python3
grammars Separate out 3.2, and 3.5+ specific grammar code
2016-04-30 rocky <rocky@gnu.org>
* ChangeLog, NEWS, README.rst, __pkginfo__.py: Get ready for release
2.3.1
2016-04-30 rocky <rocky@gnu.org>
* uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/pysource.py: Python 3.0..3.2 bug in
LOAD_FAST/STORE_LOCAL LOAD_FAST '__locals__' STORE_LOCALS '' Also have to adjust doc constants for this crap astnode.py: minor format change
2016-04-30 rocky <rocky@gnu.org>
* test/Makefile, test/simple_source/def/06_classbug.py,
test/test_pythonlib.py: Test optimized Python code and Python 3.2
2016-04-30 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py: Pevious commit grammar change is
Python 3.5 and up
2016-04-30 rocky <rocky@gnu.org>
* uncompyle6/parsers/parse3.py: Python 3.5 if statments decompyle Sometimes it doesn't need JUMP_FORWARD _come_from _come_from For example: def handle2(module): if module == 'foo': try: module = 1 except ImportError as exc: module = exc return module And: if __name__: for i in (1, 2): x = 3
2016-04-28 rocky <rocky@gnu.org>
* requirements.txt, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
spark -> spark_parser
2016-04-28 rocky <rocky@gnu.org>
* uncompyle6/parsers/spark.py: Really remove spark - Use external
package instead
2016-04-27 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #8 from rocky/external-spark External spark
2016-04-27 rocky <rocky@gnu.org>
* .travis.yml, circle.yml: Note dependencies on spark
2016-04-27 rocky <rocky@gnu.org>
* .gitignore, README.rst, requirements.txt, uncompyle6/parser.py,
uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Use external spark now.
2016-04-20 rocky <rocky@gnu.org>
* circle.yml: Back to 2.7.8
2016-04-20 rocky <rocky@gnu.org>
* circle.yml: Try python 2.7.10
2016-04-19 rocky <rocky@gnu.org>
* README.rst: Remove link to Mysterie uncompyle2 per request
2016-04-19 rocky <rocky@gnu.org>
* ChangeLog, NEWS, __pkginfo__.py: Get ready for release 2.2.0
2016-04-18 rocky <rocky@gnu.org>
* README.rst: Another typo
2016-04-18 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #7 from rocky/single-compile Support single-mode compile
2016-04-18 rocky <rocky@gnu.org>
* README.rst: Doc typo
2016-04-18 Thomas Grainger <tom.grainger@procensus.com>
* __pkginfo__.py, setup.cfg, setup.py: declare Python3 support in
wheel and trove
2016-04-18 rocky <rocky@gnu.org>
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py: Start to DRY Python 2 and Python 3
grammar code Move common code to parser.py
2016-04-18 rocky <rocky@gnu.org>
* pytest/test_single_compile.py, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Add
simgle-mode compilation
2016-04-17 rocky <rocky@gnu.org>
* pytest/test_single_compile.py, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/pysource.py: Towards single compilation
2016-04-10 rocky <rb@dustyfeet.com>
* : Back off if_else_ternary pending Fails on Python 3.4 investigation Python 3.5 works though
2016-04-10 rocky <rb@dustyfeet.com>
* .gitignore: Test administrivia
2016-04-07 rocky <rb@dustyfeet.com>
* HISTORY.md, README.rst,
test/simple_source/branching/10_if_else_ternary.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Handle
Ternary "or". Remove mention of uncompyle3 uncompyle3 removed per Mysterie's request [Fixes Issue #5]
2016-03-11 rocky <rb@dustyfeet.com>
* test/Makefile: remove uncompyle3 and make test work again * uncompyle3 removed by request * make test on python 2.7 is failing on some python3 and python3.5 bytecodes. Remove for now.
2016-02-23 R. Bernstein <rocky@users.noreply.github.com>
* : Merge pull request #3 from lelicopter/master Bug correction (parse cmd options)
2016-01-07 rocky <rb@dustyfeet.com>
* test/Makefile, test/bytecompile-tests, test/test_pythonlib.py: Add
Python 3.5 tests that we can do.
2016-01-05 R. Bernstein <rocky@users.noreply.github.com>
* HISTORY.md: Grammar fixes
2016-01-02 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, __pkginfo__.py: Get ready for release 2.1.3
2016-01-02 rocky <rb@dustyfeet.com>
* uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_25.py,
uncompyle6/opcodes/opcode_26.py, uncompyle6/opcodes/opcode_27.py,
uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_33.py,
uncompyle6/opcodes/opcode_34.py, uncompyle6/opcodes/opcode_35.py,
uncompyle6/opcodes/opcode_3x.py, uncompyle6/parser.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner32.py,
uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py,
uncompyle6/scanners/scanner35.py: Start to DRY opcode code. Limited
support for decopyling Python 3.5
2016-01-02 rocky <rb@dustyfeet.com>
* test/Makefile, test/ok_lib3.4/antigravity.py,
test/ok_lib3.4/bisect.py, test/test_pythonlib.py: Start 3.4 library
verify tests
2016-01-02 rocky <rb@dustyfeet.com>
* README.rst: Regularize spelling of bytecode
2016-01-02 rocky <rb@dustyfeet.com>
* Makefile, README.rst: Add download shield. Add check-rst target
2016-01-02 R. Bernstein <rocky@users.noreply.github.com>
* README.rst: Update README.rst
2016-01-02 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Track recent source class
semantic actions in fragment actions
2016-01-02 rocky <rb@dustyfeet.com>
* uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py:
Make ScannerXX() initialization the same on Python 2.x and 3.x
2016-01-02 rocky <rb@dustyfeet.com>
* test/Makefile,
test/simple_source/comprehension/05_list_comprehension.py,
test/simple_source/def/02_closure.py, test/test_pythonlib.py,
uncompyle6/main.py, uncompyle6/verify.py: Verify 3.4 bytecode.
verify API call bug fixed.
2016-01-02 rocky <rb@dustyfeet.com>
* test/simple_source/def/05_class.py, uncompyle6/load.py,
uncompyle6/main.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/pysource.py: Python 3 class deparsing. stop
earlier in uncompyle6 on a syntax error.
2016-01-01 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Fix make_closure compilation from
2.x of 3.3 bytecode
2016-01-01 rocky <rb@dustyfeet.com>
* test/simple_source/def/02_closure.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Work
on MAKE_CLOSURE rules for Python 3.3
2015-12-31 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: track source deparsing
superclass bug fix
2015-12-31 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, __pkginfo__.py: Get ready for release 2.1.2
2015-12-31 rocky <rb@dustyfeet.com>
* test/base_tests/compile_tests,
test/base_tests/python2.7/test_applyEquiv.py,
test/base_tests/python2.7/test_augmentedAssign.py,
test/base_tests/python2.7/test_class.py,
test/base_tests/python2.7/test_del.py,
test/base_tests/python2.7/test_divide_future.py,
test/base_tests/python2.7/test_divide_no_future.py,
test/base_tests/python2.7/test_docstring.py,
test/base_tests/python2.7/test_empty.py,
test/base_tests/python2.7/test_exceptions.py,
test/base_tests/python2.7/test_exec.py,
test/base_tests/python2.7/test_expressions.py,
test/base_tests/python2.7/test_extendedImport.py,
test/base_tests/python2.7/test_extendedPrint.py,
test/base_tests/python2.7/test_extendedarg.py-notyet,
test/base_tests/python2.7/test_functions.py,
test/base_tests/python2.7/test_global.py,
test/base_tests/python2.7/test_globals.py,
test/base_tests/python2.7/test_import.py,
test/base_tests/python2.7/test_import_as.py,
test/base_tests/python2.7/test_integers.py,
test/base_tests/python2.7/test_iterators.py,
test/base_tests/python2.7/test_lambda.py,
test/base_tests/python2.7/test_listComprehensions.py,
test/base_tests/python2.7/test_loops.py,
test/base_tests/python2.7/test_loops2.py,
test/base_tests/python2.7/test_mine.py,
test/base_tests/python2.7/test_misc.py,
test/base_tests/python2.7/test_nested_elif.py,
test/base_tests/python2.7/test_nested_scopes.py,
test/base_tests/python2.7/test_prettyprint.py,
test/base_tests/python2.7/test_print.py,
test/base_tests/python2.7/test_print_to.py,
test/base_tests/python2.7/test_single_stmt.py,
test/base_tests/python2.7/test_slices.py,
test/base_tests/python2.7/test_tuple_params.py-notyet,
test/base_tests/python2.7/test_tuples.py-notyet,
test/base_tests/python2.7/test_yield.py,
test/base_tests/python3.4/__init__.py: Remove tests we will never
use
2015-12-31 rocky <rb@dustyfeet.com>
* .travis.yml, Makefile: Try travis testing on Python 3.5. Fix up
Makefile to avoid pytest on 3.5 for now
2015-12-31 rocky <rb@dustyfeet.com>
* test/ok_lib2.7/dircache.py, test/ok_lib2.7/dis.py: Add a few tests
from Python 2.7 standard library
2015-12-31 rocky <rb@dustyfeet.com>
* test/simple_source/def/05_class.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Handle Python 3.3 > dotted class names
2015-12-30 rocky <rb@dustyfeet.com>
* README.rst: Note Python 3.5
2015-12-30 rocky <rb@dustyfeet.com>
* Makefile, test/Makefile, uncompyle6/__init__.py,
uncompyle6/disas.py, uncompyle6/load.py, uncompyle6/magics.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner3.py: Allow Python
3.5 to decomplyle other versions. No Python 3.5 bytecode support
just yet though.
2015-12-30 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Show details on parsing assert
failures.
2015-12-30 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Remove accidental schmutz. Try using pattr on 3.4 to get fn names
2015-12-30 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py: Parses another variation of Python3
try/except. Reinstate some tests
2015-12-30 rocky <rb@dustyfeet.com>
* : Reinstate list comprehension test. I think we've found/fixed the
initialization bug.
2015-12-30 rocky <rb@dustyfeet.com>
* uncompyle6/code.py, uncompyle6/disas.py, uncompyle6/main.py,
uncompyle6/marsh.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner34.py,
uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py, uncompyle6/verify.py: Start using
our replacement for inspect.iscode
2015-12-30 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/spark.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Doc changes.
2015-12-30 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/spark.py: document GenericASTTraversal.preorder
and default.
2015-12-30 rocky <rb@dustyfeet.com>
* uncompyle6/main.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Walker->SourceWalker
Traverser->FragmentsWalker
2015-12-30 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py: Tidy parse3 grammer a little
2015-12-30 rocky <rb@dustyfeet.com>
* test/simple_source/exception/25_try_except.py,
test/test_pythonlib.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py,
uncompyle6/scanners/scanner34.py, uncompyle6/semantics/pysource.py:
Towards Python3 getting try/except working more often.
2015-12-29 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Fix another cross-version bug:
eliminate version-specific library 'dis' and use corresponding
version-indepent routine instead.
2015-12-29 rocky <rb@dustyfeet.com>
* test/Makefile, uncompyle6/marsh.py: Fix Python 2 cross deparsing
pythond bytecode tuples co_consts, co_names, co_varnames. Reinstate
cross Python 2-3 uncompiling
2015-12-29 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner34.py: Syntax error typo
2015-12-29 rocky <rb@dustyfeet.com>
* uncompyle6/marsh.py: Make sure internObjects is (re)initialized
2015-12-29 rocky <rb@dustyfeet.com>
* uncompyle6/parser.py, uncompyle6/scanners/scanner34.py,
uncompyle6/verify.py: inspect.iscode -> hasattr for now until we
write a cross-version iscode
2015-12-29 rocky <rb@dustyfeet.com>
* README.rst, test/Makefile, uncompyle6/opcodes/opcode_32.py,
uncompyle6/opcodes/opcode_33.py, uncompyle6/opcodes/opcode_34.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py:
scanner3: Python 2.6 compatibility: change set initializations. Get
rid of * import opcode_*: only a little of the much-needed larger
cleanup Makefile: remove 3.x bytecode checking from Python 2.x for
now. DRY Makefile a little bit (but more is needed)
2015-12-28 rocky <rb@dustyfeet.com>
* uncompyle6/scanners/scanner3.py: Python 2.6.9 compatibility
2015-12-28 rocky <rb@dustyfeet.com>
* uncompyle6/main.py, uncompyle6/marsh.py: Marshal loading of =
>python 3.4 from Python < 3.4
2015-12-28 rocky <rb@dustyfeet.com>
* uncompyle6/disas.py, uncompyle6/load.py, uncompyle6/main.py,
uncompyle6/marsh.py, uncompyle6/scanners/scanner3.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Add Python3 marshal codes and start to handle cross-version Python
code object types, introducing scan.Code3
2015-12-27 rocky <rb@dustyfeet.com>
* uncompyle6/load.py, uncompyle6/marsh.py: Possibly closer to
getting 2.7 to read 3.4 bytecode
2015-12-27 rocky <rb@dustyfeet.com>
* uncompyle6/load.py, uncompyle6/main.py, uncompyle6/marsh.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py,
uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py,
uncompyle6/semantics/pysource.py: Fix up Python 2.x's ability to get
code from Python 3.x's bytecode
2015-12-27 rocky <rb@dustyfeet.com>
* test/test_pythonlib.py: defer some tests
2015-12-27 rocky <rb@dustyfeet.com>
* : commit 7c5b8d803c5b76b185ebc8f6e7587fa64ef531e9 Author: rocky
<rb@dustyfeet.com> Date: Sun Dec 27 16:49:37 2015 -0500
2015-12-27 rocky <rb@dustyfeet.com>
* : 3.2 bytecode
2015-12-27 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, README.rst, __pkginfo__.py: Get ready for release
2.1.1
2015-12-27 rocky <rb@dustyfeet.com>
* ChangeLog, NEWS, README.rst, __pkginfo__.py,
test/bytecompile-tests, uncompyle6/opcodes/Makefile,
uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_24.py,
uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py,
uncompyle6/opcodes/opcode_27.py, uncompyle6/opcodes/opcode_32.py,
uncompyle6/opcodes/opcode_33.py, uncompyle6/opcodes/opcode_34.py,
uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py,
uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
DRY Python3 scanner code. Some cross version handling fixed. Some
Python 3.2 and 3.3 deparse fixes.
2015-12-27 rocky <rb@dustyfeet.com>
* README.rst, test/bytecompile-tests, uncompyle6/opcodes/Makefile,
uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_24.py,
uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py,
uncompyle6/opcodes/opcode_27.py, uncompyle6/opcodes/opcode_32.py,
uncompyle6/opcodes/opcode_33.py, uncompyle6/opcodes/opcode_34.py,
uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py,
uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
DRY Python3 scanner code. Some cross version handling fixed. Some
Python 3.2 and 3.3 deparse fixes.
2015-12-26 rocky <rb@dustyfeet.com>
* .travis.yml, test/Makefile, uncompyle6/verify.py: Running native
on Python 3.3 needs more work
2015-12-26 rocky <rb@dustyfeet.com>
* test/Makefile, test/test_pythonlib.py: Add ok-2.7 tests for 3.4
full testing
2015-12-26 rocky <rb@dustyfeet.com>
* test/Makefile, test/bytecompile-tests, test/test_pythonlib.py: Add
verify tests. Add Python 2.6 bytecode and use.
2015-12-26 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Add node and template code to
cleanup "for" handling
2015-12-26 rocky <rb@dustyfeet.com>
* .travis.yml: Try Python 2.6 testing on travis
2015-12-26 rocky <rb@dustyfeet.com>
* test/Makefile: For testing we can't 3.3 bytecodes on 2.7 yet, so
use 3.2
2015-12-26 rocky <rb@dustyfeet.com>
* .travis.yml, Makefile, requirements-dev.txt, test/Makefile,
test/bytecompile-tests, test/test_pythonlib.py,
uncompyle6/__init__.py, uncompyle6/opcodes/opcode_32.py,
uncompyle6/opcodes/opcode_33.py, uncompyle6/opcodes/opcode_34.py,
uncompyle6/scanner.py, uncompyle6/scanners/scanner32.py,
uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py,
uncompyle6/semantics/pysource.py: Fix up Python 3.2, 3.3, and 3.4
cross-version scanners Try travis 2.6 and 3.3
2015-12-26 rocky <rb@dustyfeet.com>
* .travis.yml: Travis: try checking 3.4
2015-12-26 rocky <rb@dustyfeet.com>
* test/simple_source/exception/05_try_except.py,
test/simple_source/looping/10_while.py,
test/simple_source/looping/while.py,
test/simple_source/simple_stmts/00_assign.py,
test/simple_source/simple_stmts/00_import.py,
test/simple_source/simple_stmts/00_pass.py,
test/simple_source/simple_stmts/15_assert.py,
test/simple_source/stmts/00_assign.py,
test/simple_source/stmts/00_import.py,
test/simple_source/stmts/00_pass.py,
test/simple_source/stmts/15_assert.py,
test/simple_source/stmts/15_for_if.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py:
Fix up looping by reinstating JUMP_ABSOLUTE -> JUMP_BACK or CONTINUE
get jump offsets into jump attributes. Fix up 3.2 scanner paritally
and use that in 3.4 for in cross version disassembly.
2015-12-26 rocky <rb@dustyfeet.com>
* test/simple_source/exception/01_try_except.py,
test/simple_source/exception/05_try_except.py, uncompyle6/main.py,
uncompyle6/opcodes/opcode_34.py, uncompyle6/parsers/parse3.py,
uncompyle6/semantics/pysource.py: Python3 try/except handling
improvements. Add Walker exception and use that: fixes erroneous
uncompyle success message on parse error.
2015-12-25 rocky <rb@dustyfeet.com>
* test/simple_source/exception/01_try_except.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: WIP redo
try/except for Python3
2015-12-25 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Fix bugs in using pysource from
fragments.
2015-12-25 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/Makefile, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Two modes of disassembly, one
where we show hidden code and one where we don't.
2015-12-25 rocky <rb@dustyfeet.com>
* README.rst: README.rst typos
2015-12-25 rocky <rb@dustyfeet.com>
* .gitignore, ChangeLog, MANIFEST.in, NEWS, __pkginfo__.py,
test/Makefile: Get ready for releaes 2.0.0
2015-12-25 rocky <rb@dustyfeet.com>
* pytest/test_deparse.py: Port deparse test from python-deparse to
py.test
2015-12-24 rocky <rb@dustyfeet.com>
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Remove Python3 class __qualname__
assignment. Change LOAD_NAME to LOAD_CLASSNAME to make parsing more
reliable and intentional.
2015-12-24 rocky <rb@dustyfeet.com>
* test/simple_source/def/01_class.py,
test/simple_source/exception/05_try_except.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Improve Python3 class definition
handling
2015-12-24 rocky <rb@dustyfeet.com>
* uncompyle6/verify.py: One more place for API change
2015-12-24 rocky <rb@dustyfeet.com>
* pytest/test_load.py, test/dis-compare.py, uncompyle6/disas.py,
uncompyle6/load.py, uncompyle6/main.py, uncompyle6/verify.py: Show
embeded timestamp of byte-decompiled file
2015-12-23 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Lint
2015-12-23 rocky <rb@dustyfeet.com>
* test/simple_source/exception/05_try_except.py,
uncompyle6/parsers/parse3.py: WIP: Python3 exceptions
2015-12-23 rocky <rb@dustyfeet.com>
* test/simple_source/simple_stmts/00_import.py,
test/simple_source/simple_stmts/00_pass.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Start Python3 class(superclass) handling
2015-12-23 rocky <rb@dustyfeet.com>
* test/simple_source/def/01_class.py, uncompyle6/load.py,
uncompyle6/main.py, uncompyle6/parsers/parse2.py,
uncompyle6/semantics/pysource.py: parse2.py, pysource.py: add
buildclass nonterminal to structure tree better and make more
similar to Python3 load.py: handle magic errors better main.py:
correct use when passing a .py instead of a .pyc better and a
message err when file not found. pysource.py: fix up main
docstring; code moved from main.py
2015-12-23 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py: Add fragmnet offsets for 'from
x import..'
2015-12-22 rocky <rb@dustyfeet.com>
* uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py: Propogate offsets in imports.
Added a new %x format specifier.
2015-12-22 rocky <rb@dustyfeet.com>
* test/simple_source/def/01_class.py,
test/simple_source/def/02_def.py, test/simple_source/def/def0.py,
test/simple_source/def/def1.py, uncompyle6/__init__.py,
uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py,
uncompyle6/opcodes/opcode_27.py, uncompyle6/opcodes/opcode_34.py,
uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/parsers/spark.py,
uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py:
Allow comments in grammar rules. Start working on Python3 class (not
finished). More test organization.
2015-12-22 rocky <rb@dustyfeet.com>
* test/simple_source/def/01_class.py,
test/simple_source/def/10_class.py,
uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_34.py,
uncompyle6/parsers/parse3.py: Remove Python2 buitin "print" from
Python3's grammr. Start class tests
2015-12-22 rocky <rb@dustyfeet.com>
* bin/uncompyle6, uncompyle6/main.py, uncompyle6/parser.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/spark.py,
uncompyle6/semantics/pysource.py: main.py, pysource.py DRY
deparse_code from main. Is better on showing exception errrors such
as when a pyc file is not found uncompyle6: Hook in --grammar option
to showing grammar. rules. Default now does not show timestamp.
2015-12-22 rocky <rb@dustyfeet.com>
* bin/uncompyle6, pytest/test_disasm.py,
pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right,
test/Makefile, test/add-test.py,
test/simple_source/branching/05_if.py,
test/simple_source/branching/05_ifelse.py,
test/simple_source/branching/if.py,
test/simple_source/branching/ifelse.py,
test/simple_source/call_arguments/01_positional.py,
test/simple_source/call_arguments/10_keyword.py,
test/simple_source/call_arguments/keyword.py,
test/simple_source/call_arguments/positional.py,
test/simple_source/exception/20_try_except.py,
test/simple_source/exception/25_try_except.py,
test/simple_source/misc/assert.py,
test/simple_source/misc/assign_none.py,
test/simple_source/operation_logic/01_boolean.py,
test/simple_source/operation_logic/10_mixed_boolean.py,
test/simple_source/operation_logic/or.py,
test/simple_source/simple_stmts/15_assert.py,
test/simple_source/slice/01_slice.py,
test/simple_source/slice/02_slice.py, uncompyle6/main.py,
uncompyle6/parsers/parse3.py, uncompyle6/parsers/spark.py,
uncompyle6/semantics/pysource.py: Add spark option to show grammer.
Revise uncompyle options. Start to reorganize tests more
2015-12-21 rocky <rb@dustyfeet.com>
* README.rst: grammar
2015-12-21 rocky <rb@dustyfeet.com>
* README.rst: Add meat to CI tag
2015-12-21 rocky <rb@dustyfeet.com>
* README.rst: Use travis badge for now
2015-12-21 rocky <rb@dustyfeet.com>
* README.rst: Make README.rst reflect current situation better
2015-12-21 rocky <rb@dustyfeet.com>
* HISTORY.md, test/simple_source/README,
test/simple_source/exception/20_try_except.py,
test/simple_source/looping/10_for.py,
test/simple_source/looping/for.py, uncompyle6/main.py,
uncompyle6/opcodes/opcode_34.py, uncompyle6/parsers/spark.py,
uncompyle6/scanners/scanner34.py: Bug in for loop with try. Add more
of 2.7's COME_FROM statements. spark.py: add tracing reduce rules.
main: reduce cutsines. Start history
2015-12-21 rocky <rb@dustyfeet.com>
* test/bytecode_2.7/README, test/bytecode_3.2/README,
test/bytecode_3.4/README, test/bytecompile-tests,
test/simple_source/README,
test/simple_source/exception/01_try_except.py,
test/simple_source/misc/assign.py,
test/simple_source/misc/assign_none_str.py,
test/simple_source/simple_stmts/00_assign.py,
uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py:
Start Python3 execption handling
2015-12-21 rocky <rb@dustyfeet.com>
* test/simple-source/README, test/simple-source/branching/if.py,
test/simple-source/branching/ifelse.py,
test/simple-source/call_arguments/keyword.py,
test/simple-source/call_arguments/positional.py,
test/simple-source/comprehension/01-lc.py,
test/simple-source/comprehension/forelse.py,
test/simple-source/def/def0.py, test/simple-source/def/def1.py,
test/simple-source/looping/for.py,
test/simple-source/looping/while.py,
test/simple-source/misc/assert.py,
test/simple-source/misc/assign.py,
test/simple-source/misc/assign_none.py,
test/simple-source/misc/assign_none_str.py,
test/simple-source/operation_binary/add.py,
test/simple-source/operation_binary/and.py,
test/simple-source/operation_binary/divide_floor.py,
test/simple-source/operation_binary/divide_true.py,
test/simple-source/operation_binary/modulo.py,
test/simple-source/operation_binary/multiply.py,
test/simple-source/operation_binary/or.py,
test/simple-source/operation_binary/power.py,
test/simple-source/operation_binary/shift_left.py,
test/simple-source/operation_binary/shift_right.py,
test/simple-source/operation_binary/subscription.py,
test/simple-source/operation_binary/subtract.py,
test/simple-source/operation_binary/xor.py,
test/simple-source/operation_comparison/equal.py,
test/simple-source/operation_comparison/greater.py,
test/simple-source/operation_comparison/greater_equal.py,
test/simple-source/operation_comparison/less.py,
test/simple-source/operation_comparison/less_equal.py,
test/simple-source/operation_comparison/notequal.py,
test/simple-source/operation_inplace/add.py,
test/simple-source/operation_inplace/and.py,
test/simple-source/operation_inplace/divide_floor.py,
test/simple-source/operation_inplace/divide_true.py,
test/simple-source/operation_inplace/modulo.py,
test/simple-source/operation_inplace/multiply.py,
test/simple-source/operation_inplace/or.py,
test/simple-source/operation_inplace/power.py,
test/simple-source/operation_inplace/shift_left.py,
test/simple-source/operation_inplace/shift_right.py,
test/simple-source/operation_inplace/subtract.py,
test/simple-source/operation_inplace/xor.py,
test/simple-source/operation_logic/and.py,
test/simple-source/operation_logic/complex1.py,
test/simple-source/operation_logic/complex2.py,
test/simple-source/operation_logic/complex3.py,
test/simple-source/precedence/left.py,
test/simple-source/precedence/right.py,
test/simple-source/precedence/structure.py,
test/simple-source/slice/01-slice.py, test/simple_source/README,
test/simple_source/branching/if.py,
test/simple_source/branching/ifelse.py,
test/simple_source/call_arguments/keyword.py,
test/simple_source/call_arguments/positional.py,
test/simple_source/comprehension/01_list_comprehension.py,
test/simple_source/comprehension/forelse.py,
test/simple_source/def/def0.py, test/simple_source/def/def1.py,
test/simple_source/exception/01_try_except.py,
test/simple_source/looping/for.py,
test/simple_source/looping/while.py,
test/simple_source/misc/assert.py,
test/simple_source/misc/assign.py,
test/simple_source/misc/assign_none.py,
test/simple_source/misc/assign_none_str.py,
test/simple_source/operation_binary/add.py,
test/simple_source/operation_binary/and.py,
test/simple_source/operation_binary/divide_floor.py,
test/simple_source/operation_binary/divide_true.py,
test/simple_source/operation_binary/modulo.py,
test/simple_source/operation_binary/multiply.py,
test/simple_source/operation_binary/or.py,
test/simple_source/operation_binary/power.py,
test/simple_source/operation_binary/shift_left.py,
test/simple_source/operation_binary/shift_right.py,
test/simple_source/operation_binary/subscription.py,
test/simple_source/operation_binary/subtract.py,
test/simple_source/operation_binary/xor.py,
test/simple_source/operation_comparison/equal.py,
test/simple_source/operation_comparison/greater.py,
test/simple_source/operation_comparison/greater_equal.py,
test/simple_source/operation_comparison/less.py,
test/simple_source/operation_comparison/less_equal.py,
test/simple_source/operation_comparison/notequal.py,
test/simple_source/operation_inplace/add.py,
test/simple_source/operation_inplace/and.py,
test/simple_source/operation_inplace/divide_floor.py,
test/simple_source/operation_inplace/divide_true.py,
test/simple_source/operation_inplace/modulo.py,
test/simple_source/operation_inplace/multiply.py,
test/simple_source/operation_inplace/or.py,
test/simple_source/operation_inplace/power.py,
test/simple_source/operation_inplace/shift_left.py,
test/simple_source/operation_inplace/shift_right.py,
test/simple_source/operation_inplace/subtract.py,
test/simple_source/operation_inplace/xor.py,
test/simple_source/operation_logic/or.py,
test/simple_source/operation_unary/invert.py,
test/simple_source/operation_unary/iter.py,
test/simple_source/operation_unary/negative.py,
test/simple_source/operation_unary/not.py,
test/simple_source/operation_unary/positive.py,
test/simple_source/precedence/left.py,
test/simple_source/precedence/right.py,
test/simple_source/precedence/structure.py,
test/simple_source/slice/01_slice.py: Regularize test names.
2015-12-21 rocky <rb@dustyfeet.com>
* test/Makefile, test/simple-source/slice/01-slice.py,
uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_34.py,
uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanner.py, uncompyle6/scanners/tok.py,
uncompyle6/semantics/pysource.py: Start Python3 slices. Split off
token routine.
2015-12-21 rocky <rb@dustyfeet.com>
* uncompyle6/__init__.py, uncompyle6/marsh.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Start
slice and build list on Python3. Do sanity check on marshal load of
code.
2015-12-20 rocky <rb@dustyfeet.com>
* Makefile, bin/uncompyle6, pytest/test_load.py, test/Makefile,
test/test_pythonlib.py, uncompyle6/__init__.py,
uncompyle6/deparser.py, uncompyle6/disas.py, uncompyle6/load.py,
uncompyle6/main.py, uncompyle6/semantics/__init__.py,
uncompyle6/semantics/fragments.py,
uncompyle6/semantics/pysource.py, uncompyle6/verify.py,
uncompyle6/walker.py: Part of a much needed cleanup. Move semantics
routines into its own directory. Move out lots of stuff from
__init__ to their own files. Add file loading tests. Document AST
handling a tad more complete.
2015-12-20 rocky <rb@dustyfeet.com>
* test/Makefile, test/simple-source/misc/assign_none.py,
test/simple-source/misc/assign_none_str.py, uncompyle6/marsh.py,
uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py:
Python 3 decompilation from Python2
2015-12-20 rocky <rb@dustyfeet.com>
* test/Makefile, test/simple-source/comprehension/01-lc.py,
test/test_pythonlib.py, uncompyle6/deparser.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner34.py,
uncompyle6/walker.py: First list comprehensions from Python3. More
test makefile hacking
2015-12-20 rocky <rb@dustyfeet.com>
* uncompyle6/disas.py: dissasemble_file output is needed for pytest
2015-12-20 rocky <rb@dustyfeet.com>
* Makefile, README.rst, test/Makefile, test/dis-compare.py,
uncompyle6/deparser.py, uncompyle6/disas.py, uncompyle6/walker.py:
Go over makefiles to make "make check" work. walker, deparser: use
zip_longest
2015-12-19 rocky <rb@dustyfeet.com>
* uncompyle6/deparser.py, uncompyle6/walker.py: 3.4: correct picking
up parameter names on oa function call
2015-12-19 rocky <rb@dustyfeet.com>
* uncompyle6/deparser.py, uncompyle6/walker.py: Python3 compatiblity
for getting precidence. n_mkfunc needs to key off of bytecode
version, not running Python version.
2015-12-19 rocky <rb@dustyfeet.com>
* README.rst: rSt-style linking
2015-12-19 rocky <rb@dustyfeet.com>
* README.rst: Update what this is about
2015-12-19 rocky <rb@dustyfeet.com>
* test/simple-source/def/def0.py, test/simple-source/def/def1.py,
uncompyle6/__init__.py, uncompyle6/deparser.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/scanners/scanner34.py, uncompyle6/verify.py,
uncompyle6/walker.py: Python 3.4: MAKE_FUNCTION starts to work.
2015-12-19 rocky <rb@dustyfeet.com>
* LICENSE, README.rst: Docs
2015-12-19 rocky <rb@dustyfeet.com>
* test/simple-source/operation_binary/multiply.py,
test/simple-source/operation_binary/or.py,
test/simple-source/operation_binary/power.py,
test/simple-source/operation_binary/shift_left.py,
test/simple-source/operation_binary/shift_right.py,
test/simple-source/operation_binary/subscription.py,
test/simple-source/operation_binary/subtract.py,
test/simple-source/operation_binary/xor.py,
test/simple-source/operation_comparison/equal.py,
test/simple-source/operation_comparison/greater.py,
test/simple-source/operation_comparison/greater_equal.py,
test/simple-source/operation_comparison/less.py,
test/simple-source/operation_comparison/less_equal.py,
test/simple-source/operation_comparison/notequal.py,
test/simple-source/operation_inplace/add.py,
test/simple-source/operation_inplace/and.py,
test/simple-source/operation_inplace/divide_floor.py,
test/simple-source/operation_inplace/divide_true.py,
test/simple-source/operation_inplace/modulo.py,
test/simple-source/operation_inplace/multiply.py,
test/simple-source/operation_inplace/or.py,
test/simple-source/operation_inplace/power.py,
test/simple-source/operation_inplace/shift_left.py,
test/simple-source/operation_inplace/shift_right.py,
test/simple-source/operation_inplace/subtract.py,
test/simple-source/operation_inplace/xor.py,
test/simple-source/operation_logic/and.py,
test/simple-source/operation_logic/complex1.py,
test/simple-source/operation_logic/complex2.py,
test/simple-source/operation_logic/complex3.py,
test/simple-source/precedence/left.py,
test/simple-source/precedence/right.py,
test/simple-source/precedence/structure.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner34.py:
Python 3 bytecode handles opcodes with varargs (better). Decompiling
assert works. Add more of the simple tests and their compiled
bytecode.
2015-12-18 rocky <rb@dustyfeet.com>
* uncompyle6/disas.py, uncompyle6/opcodes/opcode_23.py: disas.py:
track load_module API change opcode_23.py: make it more like
opcode_27.py
2015-12-18 rocky <rb@dustyfeet.com>
* uncompyle6/__init__.py, uncompyle6/magics.py,
uncompyle6/marsh.py, uncompyle6/verify.py: verify.py: Don't try to
verify bytecode against compiled code if magics of running
interpreter mismatch bytecode to be compared. load_module() now
returns the magic found in the code object file.
2015-12-18 rocky <rb@dustyfeet.com>
* test/Makefile, uncompyle6/__init__.py, uncompyle6/marsh.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner32.py,
uncompyle6/scanners/scanner34.py: marshal.py: Python2 marshal code
shouldn't try to turn a code object into a string. parse3.py: handle
both keyword and positional function calls. scanner34.py: Remove
extra level of quoting in LOAD_CONST. Keyward handling now works
cross Python 2/3. Some other spelling and doc fixes.
2015-12-18 rocky <rb@dustyfeet.com>
* README.rst, test/simple-source/call_arguments/positional.py,
uncompyle6/disas.py, uncompyle6/parser.py,
uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner27.py,
uncompyle6/walker.py: Python3 postional arguments. Clean up code
more along the lines of uncompyle3.
2015-12-18 rocky <rb@dustyfeet.com>
* test/simple-source/comprehension/forelse.py, uncompyle6/disas.py:
disas.py: Do better for finding/turning a .py file into a .pyc file
across supported versions of Python. Add for else list comprehension
test
2015-12-17 rocky <rb@dustyfeet.com>
* uncompyle6/__init__.py: Restrict marshal.loads when magic is the
same. This is more stringent than using the Python major/minor
version
2015-12-17 rocky <rb@dustyfeet.com>
* test/Makefile, test/bytecode_2.5/README, test/bytecompile-tests,
test/simple-source/misc/assert.py,
test/simple-source/misc/assign.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py: Frank Ebersoll's grammar fix to make
"assert isinstance(1, int)" work.
2015-12-17 rocky <rb@dustyfeet.com>
* test/ok_lib2.7/asyncore.py: Remove 2.7 lib testfile pending
further resolution
2015-12-17 rocky <rb@dustyfeet.com>
* Makefile: correct makefile build targets
2015-12-17 rocky <rb@dustyfeet.com>
* Makefile, bin/pydisassemble, bin/uncompyle6,
test/bytecompile-tests, test/dis-compare.py,
uncompyle6/__init__.py, uncompyle6/disas.py,
uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py,
uncompyle6/opcodes/opcode_27.py, uncompyle6/scanners/scanner25.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py,
uncompyle6/verify.py: Python 2.6 compatability via ericfrederich's
patch. DRY version-checking code
2015-12-17 rocky <rb@dustyfeet.com>
* .travis.yml, Makefile, circle.yml, pytest/test_disasm.py,
pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right,
pytest/testdata/test1.right, test/Makefile,
test/bytecode_2.7/README, test/bytecode_3.4/README,
test/ok_2.6/anydbm.py, test/ok_2.7/aifc.py,
test/ok_2.7/antigravity.py, test/ok_2.7/anydbm.py,
test/ok_2.7/asynchat.py, test/ok_2.7/asyncore.py,
test/ok_2.7/atexit.py, test/ok_2.7/audiodev.py,
test/ok_2.7/base64.py, test/ok_2.7/binhex.py,
test/ok_2.7/bisect.py, test/ok_2.7/bsddb/__init__.py,
test/ok_2.7/bsddb/db.py, test/ok_2.7/bsddb/dbobj.py,
test/ok_2.7/bsddb/dbrecio.py, test/ok_2.7/bsddb/dbshelve.py,
test/ok_2.7/bsddb/dbutils.py, test/ok_2.7/calendar.py,
test/ok_2.7/cgitb.py, test/ok_2.7/chunk.py, test/ok_2.7/codeop.py,
test/ok_2.7/colorsys.py, test/ok_2.7/commands.py,
test/ok_2.7/compileall.py, test/ok_2.7/compiler/__init__.py,
test/ok_2.7/compiler/ast.py, test/ok_2.7/compiler/consts.py,
test/ok_2.7/compiler/future.py, test/ok_2.7/compiler/misc.py,
test/ok_2.7/compiler/syntax.py, test/ok_2.7/ctypes/_endian.py,
test/ok_2.7/ctypes/util.py, test/ok_2.7/ctypes/wintypes.py,
test/ok_2.7/curses/__init__.py, test/ok_2.7/curses/ascii.py,
test/ok_2.7/curses/has_key.py, test/ok_2.7/curses/panel.py,
test/ok_2.7/curses/wrapper.py, test/ok_2.7/dircache.py,
test/ok_2.7/dis.py, test/ok_lib2.6/README,
test/ok_lib2.6/anydbm.py, test/ok_lib2.7/README,
test/ok_lib2.7/aifc.py, test/ok_lib2.7/antigravity.py,
test/ok_lib2.7/anydbm.py, test/ok_lib2.7/asynchat.py,
test/ok_lib2.7/asyncore.py, test/ok_lib2.7/atexit.py,
test/ok_lib2.7/audiodev.py, test/ok_lib2.7/base64.py,
test/ok_lib2.7/binhex.py, test/ok_lib2.7/bisect.py,
test/ok_lib2.7/calendar.py, test/ok_lib2.7/cgitb.py,
test/ok_lib2.7/chunk.py, test/ok_lib2.7/codeop.py,
test/ok_lib2.7/colorsys.py, test/ok_lib2.7/commands.py,
test/ok_lib2.7/compileall.py,
test/simple-source/operation_binary/add.py,
test/simple-source/operation_binary/and.py,
test/simple-source/operation_binary/divide_floor.py,
test/simple-source/operation_binary/divide_true.py,
test/simple-source/operation_binary/modulo.py,
test/test_pythonlib.py, uncompyle6/__init__.py,
uncompyle6/deparser.py, uncompyle6/disas.py,
uncompyle6/opcodes/opcode_34.py, uncompyle6/parsers/spark.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner34.py,
uncompyle6/verify.py, uncompyle6/walker.py: Python3: remove "return
None" at end of main for uncompyle. Fix up verify for Python3. First
automated Python 3.4 tests via "makecheck-3.4" in test directory.
2015-12-17 rocky <rb@dustyfeet.com>
* test/bytecompile-tests, test/simple-source/branching/if.py,
test/simple-source/branching/ifelse.py,
test/simple-source/looping/for.py, uncompyle6/__init__.py,
uncompyle6/disas.py, uncompyle6/parsers/spark.py: Add spark grammar
debugging. Start to comment grammer construct covered by simple
tests.
2015-12-17 rocky <rb@dustyfeet.com>
* uncompyle6/opcodes/opcode_34.py, uncompyle6/parsers/parse3.py:
Python 3.4 correct grammar for some looping constructs
2015-12-17 rocky <rb@dustyfeet.com>
* test/bytecompile-tests, test/compile_tests,
test/simple-source/README, test/simple-source/branching/if.py,
test/simple-source/branching/ifelse.py,
test/simple-source/call_arguments/keyword.py,
test/simple-source/call_arguments/positional.py,
test/simple-source/looping/for.py,
test/simple-source/looping/while.py,
test/source_3.4/branching/if.py,
test/source_3.4/branching/ifelse.py, uncompyle6/parsers/parse2.py,
uncompyle6/parsers/parse3.py, uncompyle6/parsers/spark.py,
uncompyle6/scanners/scanner34.py: Python 3.4 if ifelse decompyling
now works.
2015-12-16 rocky <rb@dustyfeet.com>
* test/dis-compare.py, test/simple-uncompyle-code-test.py,
uncompyle6/__init__.py, uncompyle6/deparser.py,
uncompyle6/parser.py, uncompyle6/parsers/__init__.py,
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
uncompyle6/parsers/spark.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner32.py,
uncompyle6/scanners/scanner34.py, uncompyle6/spark.py,
uncompyle6/walker.py: Supoer multiple parsers, specifically for
Python2 and Python3. In the process some OO cleanup and some global
variable hacks removed.
2015-12-16 rocky <rb@dustyfeet.com>
* uncompyle6/deparser.py, uncompyle6/disas.py,
uncompyle6/parser.py, uncompyle6/scanner.py, uncompyle6/walker.py:
Add LICENSE. Add demo programs and DRY code a little
2015-12-16 rocky <rb@dustyfeet.com>
* uncompyle6/opcodes/opcode_34.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner34.py:
On Python3.4 decompiling Python 3.4 instructions, use its built-in
disassembler routines. In contrast to what was here, they most
likely work!
2015-12-16 rocky <rb@dustyfeet.com>
* Makefile, pytest/testdata/.gitignore, test/Makefile,
test/compile_tests, uncompyle6/deparser.py, uncompyle6/disas.py,
uncompyle6/marsh.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py, uncompyle6/verify.py: Tidy a
little bit
2015-12-16 rocky <rb@dustyfeet.com>
* .gitignore, pytest/.gitignore, pytest/testdata/test1.right,
pytest/testdata/test_import_25.right, test/compile_tests,
test/dis-compare.py, test/simple-uncompyle-code-test.py,
test/source_3.4/branching/if.py,
test/source_3.4/branching/ifelse.py, test/uncompyle-code.py,
uncompyle6/.gitignore, uncompyle6/scanner.py,
uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner32.py,
uncompyle6/scanners/scanner34.py: Start 3.4 more stringent
disassembly testing. Disassembly format has changed slightly. misc
small bugs.
2015-12-15 rocky <rb@dustyfeet.com>
* : 2.7 pyc for disasm test
2015-12-15 rocky <rb@dustyfeet.com>
* Makefile, circle.yml, pytest/Makefile, pytest/test_disasm.py,
pytest/testdata/test1.right, pytest/testdata/test_import_25.right,
test-requirements.txt, test/Makefile, test/test_pythonlib.py,
uncompyle6/marsh.py, uncompyle6/verify.py: Add some disassemble
tests using pytest.
2015-12-15 rocky <rb@dustyfeet.com>
* test/.gitignore, uncompyle6/__init__.py: Less ignore. Not sure
what's up with not finding marsh in python3
2015-12-15 rocky <rb@dustyfeet.com>
* test/.gitignore, uncompyle6/disasm/__init__.py,
uncompyle6/disasm/dis_25.py: disasm is unused code. More ignore.
2015-12-15 rocky <rb@dustyfeet.com>
* .gitignore, __pkginfo__.py, bin/pydisassemble,
bin/pydissassemble, test/test_pythonlib.py, uncompyle6/__init__.py,
uncompyle6/deparser.py, uncompyle6/disas.py, uncompyle6/magics.py,
uncompyle6/marsh.py, uncompyle6/scanners/scanner25.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py:
Split out marhsal and disassemble code and spell disassemble
correctly. Fix some lint issues
2015-12-15 R. Bernstein <rocky@users.noreply.github.com>
* README.rst: Update README.rst
2015-12-15 R. Bernstein <rocky@users.noreply.github.com>
* README.rst: Update README.rst
2015-12-15 rocky <rb@dustyfeet.com>
* PKG-INFO, README.rst, bin/pydissassemble, uncompyle6/__init__.py,
uncompyle6/disas.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py,
uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner32.py,
uncompyle6/scanners/scanner34.py: README.rst: note addition of
pydisassemble Remove duplicate disassembly printing from scanners
and put common code in caller(s). Show source-code line numbers in
disassembly output and fix alignment of byte offsets. disas.py:
workaround Python 2/3 different layouts before we get to bytecodes
in a code object.
2015-12-14 rocky <rb@dustyfeet.com>
* __pkginfo__.py: Disable installing pydisassemble for now pending
understanding what's up with CI
2015-12-14 rocky <rb@dustyfeet.com>
* __pkginfo__.py, setup.py: Package scripts correctly now
2015-12-14 rocky <rb@dustyfeet.com>
* MANIFEST.in, __pkginfo__.py, bin/pydissassemble, bin/uncompyle6,
scripts/pydissassemble, scripts/uncompyle6, setup.py: scripts->bin.
Add pydisassemble to list of scripts to install
2015-12-14 rocky <rb@dustyfeet.com>
* Makefile, README.rst, scripts/pydissassemble, scripts/uncompyle6,
test/Makefile, uncompyle6/__init__.py, uncompyle6/verify.py: Add a
standalone disassemble utility. __init__.py: Shun using 0, 1 for
booleans
2015-12-14 rocky <rb@dustyfeet.com>
* uncompyle6/verify.py: Typos
2015-12-14 rocky <rb@dustyfeet.com>
* uncompyle6/__init__.py, uncompyle6/deparser.py,
uncompyle6/disasm/__init__.py, uncompyle6/disasm/dis_25.py,
uncompyle6/opcodes/opcode_32.py, uncompyle6/scanner.py,
uncompyle6/scanners/scanner32.py, uncompyle6/verify.py: Start to
move deparser from python-deparse here. Start Python 3.2 tolerance
2015-12-14 rocky <rb@dustyfeet.com>
* .travis.yml: Clean up travis file now that I know what works
2015-12-14 rocky <rb@dustyfeet.com>
* .travis.yml: Travis: try install a different way
2015-12-14 rocky <rb@dustyfeet.com>
* .travis.yml, circle.yml: Do setup install on CI boxes
2015-12-14 rocky <rb@dustyfeet.com>
* circle.yml: A correct way to set a circleci envvar?
2015-12-14 rocky <rb@dustyfeet.com>
* circle.yml: Add --compile to cicleci build
2015-12-14 rocky <rb@dustyfeet.com>
* circle.yml: Try circleci
2015-12-14 rocky <rb@dustyfeet.com>
* uncompyle6/dparser.py, uncompyle6/parser.py, uncompyle6/walker.py:
uncompyle6/dparser -> uncompyle6/parser
2015-12-14 rocky <rb@dustyfeet.com>
* uncompyle6/__init__.py, uncompyle6/disas.py,
uncompyle6/magics.py, uncompyle6/scanners/scanner34.py: Closer to
being able to handle Python 3.4 bytecode. Loading of Python Python
bytecode now works. magics from 3.3 to Python 3.4 has been added.
Some Python 3.4 scanner issues have been fixed.
2015-12-14 rocky <rb@dustyfeet.com>
* Makefile, test/Makefile, test/base-tests/compile_tests,
test/base-tests/python2.7/test_applyEquiv.py,
test/base-tests/python2.7/test_applyEquiv.pyc_dis_unverified,
test/base-tests/python2.7/test_augmentedAssign.py,
test/base-tests/python2.7/test_augmentedAssign.pyc_dis_unverified,
test/base-tests/python2.7/test_class.py,
test/base-tests/python2.7/test_class.pyc_dis_unverified,
test/base-tests/python2.7/test_del.py,
test/base-tests/python2.7/test_divide_future.py,
test/base-tests/python2.7/test_divide_future.pyc_dis_unverified,
test/base-tests/python2.7/test_divide_no_future.py,
test/base-tests/python2.7/test_docstring.py,
test/base-tests/python2.7/test_empty.py,
test/base-tests/python2.7/test_exceptions.py,
test/base-tests/python2.7/test_exceptions.pyc_dis_unverified,
test/base-tests/python2.7/test_exec.py,
test/base-tests/python2.7/test_expressions.py,
test/base-tests/python2.7/test_extendedImport.py,
test/base-tests/python2.7/test_extendedPrint.py,
test/base-tests/python2.7/test_extendedarg.py-notyet,
test/base-tests/python2.7/test_functions.py,
test/base-tests/python2.7/test_global.py,
test/base-tests/python2.7/test_globals.py,
test/base-tests/python2.7/test_import.py,
test/base-tests/python2.7/test_import_as.py,
test/base-tests/python2.7/test_integers.py,
test/base-tests/python2.7/test_iterators.py,
test/base-tests/python2.7/test_lambda.py,
test/base-tests/python2.7/test_listComprehensions.py,
test/base-tests/python2.7/test_loops.py,
test/base-tests/python2.7/test_loops2.py,
test/base-tests/python2.7/test_mine.py,
test/base-tests/python2.7/test_misc.py,
test/base-tests/python2.7/test_nested_elif.py,
test/base-tests/python2.7/test_nested_scopes.py,
test/base-tests/python2.7/test_prettyprint.py,
test/base-tests/python2.7/test_print.py,
test/base-tests/python2.7/test_print_to.py,
test/base-tests/python2.7/test_single_stmt.py,
test/base-tests/python2.7/test_slices.py,
test/base-tests/python2.7/test_tuple_params.py-notyet,
test/base-tests/python2.7/test_tuples.py-notyet,
test/base-tests/python2.7/test_yield.py,
test/base_tests/compile_tests,
test/base_tests/python2.7/test_applyEquiv.py,
test/base_tests/python2.7/test_augmentedAssign.py,
test/base_tests/python2.7/test_class.py,
test/base_tests/python2.7/test_del.py,
test/base_tests/python2.7/test_divide_future.py,
test/base_tests/python2.7/test_divide_no_future.py,
test/base_tests/python2.7/test_docstring.py,
test/base_tests/python2.7/test_empty.py,
test/base_tests/python2.7/test_exceptions.py,
test/base_tests/python2.7/test_exec.py,
test/base_tests/python2.7/test_expressions.py,
test/base_tests/python2.7/test_extendedImport.py,
test/base_tests/python2.7/test_extendedPrint.py,
test/base_tests/python2.7/test_extendedarg.py-notyet,
test/base_tests/python2.7/test_functions.py,
test/base_tests/python2.7/test_global.py,
test/base_tests/python2.7/test_globals.py,
test/base_tests/python2.7/test_import.py,
test/base_tests/python2.7/test_import_as.py,
test/base_tests/python2.7/test_integers.py,
test/base_tests/python2.7/test_iterators.py,
test/base_tests/python2.7/test_lambda.py,
test/base_tests/python2.7/test_listComprehensions.py,
test/base_tests/python2.7/test_loops.py,
test/base_tests/python2.7/test_loops2.py,
test/base_tests/python2.7/test_mine.py,
test/base_tests/python2.7/test_misc.py,
test/base_tests/python2.7/test_nested_elif.py,
test/base_tests/python2.7/test_nested_scopes.py,
test/base_tests/python2.7/test_prettyprint.py,
test/base_tests/python2.7/test_print.py,
test/base_tests/python2.7/test_print_to.py,
test/base_tests/python2.7/test_single_stmt.py,
test/base_tests/python2.7/test_slices.py,
test/base_tests/python2.7/test_tuple_params.py-notyet,
test/base_tests/python2.7/test_tuples.py-notyet,
test/base_tests/python2.7/test_yield.py,
test/base_tests/python3.4/__init__.py, test/test_pythonlib.py,
uncompyle6/__init__.py, uncompyle6/opcodes/opcode_23.py,
uncompyle6/opcodes/opcode_24.py, uncompyle6/opcodes/opcode_25.py,
uncompyle6/opcodes/opcode_26.py, uncompyle6/opcodes/opcode_27.py,
uncompyle6/opcodes/opcode_34.py, uncompyle6/scanner.py,
uncompyle6/scanner25.py, uncompyle6/scanner26.py,
uncompyle6/scanner27.py, uncompyle6/scanner34.py,
uncompyle6/scanners/__init__.py, uncompyle6/scanners/scanner25.py,
uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py,
uncompyle6/scanners/scanner34.py, uncompyle6/verify.py: Move
scanners in its own directory. Dir base-tests -> base_tests so we
can import from that.
2015-12-14 rocky <rb@dustyfeet.com>
* scripts/uncompyle6, uncompyle6/__init__.py, uncompyle6/disas.py,
uncompyle6/scanner.py, uncompyle6/scanner25.py,
uncompyle6/scanner26.py, uncompyle6/scanner27.py: Python3
compatibility: (disas, scanner*) Reduce useless verbiage in status
messages and DRY code a little; __init__, uncompyle6
2015-12-13 rocky <rb@dustyfeet.com>
* test/Makefile, test/test_pythonlib.py: Make sure we pass return
code back.
2015-12-13 rocky <rb@dustyfeet.com>
* uncompyle6/__init__.py: Add Python version and tidy up stats
output: don't show verify stats if we didn't verify!
2015-12-13 rocky <rb@dustyfeet.com>
* test/test_pythonlib.py: Correct testing python version check
2015-12-13 rocky <rb@dustyfeet.com>
* .travis.yml: Force 2.7 bytecode compilation on Travis
2015-12-13 rocky <rb@dustyfeet.com>
* .travis.yml: Try Travis
2015-12-13 rocky <rb@dustyfeet.com>
* test/Makefile, test/ok_2.7/aifc.pyc_dis,
test/ok_2.7/antigravity.pyc_dis, test/ok_2.7/anydbm.pyc_dis,
test/ok_2.7/asynchat.pyc_dis, test/ok_2.7/asyncore.pyc_dis,
test/ok_2.7/atexit.pyc_dis, test/ok_2.7/audiodev.pyc_dis,
test/test_pythonlib.py, uncompyle6/walker.py: test_pythonlib: Fix
bug in traversing directores walker.py: imports; Add test Python2.5
bytecode - it works! Makefile: remove temporary directories and _dis
files which were added by mistake
2015-12-13 rocky <rb@dustyfeet.com>
* MANIFEST.in, test/test_pythonlib.py, uncompyle6/__init__.py,
uncompyle6/disas.py, uncompyle6/dparser.py, uncompyle6/magics.py,
uncompyle6/verify.py, uncompyle6/walker.py: need disas.py for cross
version Python compiling fixup MANIFEST.in pythonlib.py: store
expected python version and don't compile if it mismatches. Work
files now go in temp directory. Start masrhal load in Python for
Python3.
2015-12-13 rocky <rb@dustyfeet.com>
* test/Makefile, test/base-tests/compile_tests,
test/base-tests/python2.7/test_applyEquiv.py,
test/base-tests/python2.7/test_applyEquiv.pyc_dis_unverified,
test/base-tests/python2.7/test_augmentedAssign.py,
test/base-tests/python2.7/test_augmentedAssign.pyc_dis_unverified,
test/base-tests/python2.7/test_class.py,
test/base-tests/python2.7/test_class.pyc_dis_unverified,
test/base-tests/python2.7/test_del.py,
test/base-tests/python2.7/test_divide_future.py,
test/base-tests/python2.7/test_divide_future.pyc_dis_unverified,
test/base-tests/python2.7/test_divide_no_future.py,
test/base-tests/python2.7/test_docstring.py,
test/base-tests/python2.7/test_empty.py,
test/base-tests/python2.7/test_exceptions.py,
test/base-tests/python2.7/test_exceptions.pyc_dis_unverified,
test/base-tests/python2.7/test_exec.py,
test/base-tests/python2.7/test_expressions.py,
test/base-tests/python2.7/test_extendedImport.py,
test/base-tests/python2.7/test_extendedPrint.py,
test/base-tests/python2.7/test_extendedarg.py-notyet,
test/base-tests/python2.7/test_functions.py,
test/base-tests/python2.7/test_global.py,
test/base-tests/python2.7/test_globals.py,
test/base-tests/python2.7/test_import.py,
test/base-tests/python2.7/test_import_as.py,
test/base-tests/python2.7/test_integers.py,
test/base-tests/python2.7/test_iterators.py,
test/base-tests/python2.7/test_lambda.py,
test/base-tests/python2.7/test_listComprehensions.py,
test/base-tests/python2.7/test_loops.py,
test/base-tests/python2.7/test_loops2.py,
test/base-tests/python2.7/test_mine.py,
test/base-tests/python2.7/test_misc.py,
test/base-tests/python2.7/test_nested_elif.py,
test/base-tests/python2.7/test_nested_scopes.py,
test/base-tests/python2.7/test_prettyprint.py,
test/base-tests/python2.7/test_print.py,
test/base-tests/python2.7/test_print_to.py,
test/base-tests/python2.7/test_single_stmt.py,
test/base-tests/python2.7/test_slices.py,
test/base-tests/python2.7/test_tuple_params.py-notyet,
test/base-tests/python2.7/test_tuples.py-notyet,
test/base-tests/python2.7/test_yield.py,
test/base-tests/python2/compile_tests,
test/base-tests/python2/test_applyEquiv.py,
test/base-tests/python2/test_augmentedAssign.py,
test/base-tests/python2/test_class.py,
test/base-tests/python2/test_del.py,
test/base-tests/python2/test_divide_future.py,
test/base-tests/python2/test_divide_no_future.py,
test/base-tests/python2/test_docstring.py,
test/base-tests/python2/test_empty.py,
test/base-tests/python2/test_exceptions.py,
test/base-tests/python2/test_exec.py,
test/base-tests/python2/test_expressions.py,
test/base-tests/python2/test_extendedImport.py,
test/base-tests/python2/test_extendedPrint.py,
test/base-tests/python2/test_extendedarg.py-notyet,
test/base-tests/python2/test_functions.py,
test/base-tests/python2/test_global.py,
test/base-tests/python2/test_globals.py,
test/base-tests/python2/test_import.py,
test/base-tests/python2/test_import_as.py,
test/base-tests/python2/test_integers.py,
test/base-tests/python2/test_iterators.py,
test/base-tests/python2/test_lambda.py,
test/base-tests/python2/test_listComprehensions.py,
test/base-tests/python2/test_loops.py,
test/base-tests/python2/test_loops2.py,
test/base-tests/python2/test_mine.py,
test/base-tests/python2/test_misc.py,
test/base-tests/python2/test_nested_elif.py,
test/base-tests/python2/test_nested_scopes.py,
test/base-tests/python2/test_prettyprint.py,
test/base-tests/python2/test_print.py,
test/base-tests/python2/test_print_to.py,
test/base-tests/python2/test_single_stmt.py,
test/base-tests/python2/test_slices.py,
test/base-tests/python2/test_tuple_params.py-notyet,
test/base-tests/python2/test_tuples.py-notyet,
test/base-tests/python2/test_yield.py, test/ok_2.6/anydbm.py,
test/test_pythonlib.py: add a single Python 2.6 source/code test
2015-12-13 rocky <rb@dustyfeet.com>
* uncompyle6/scanner.py, uncompyle6/scanner34.py: Start off with
Anton Vorobyov's (DarkFenX) Python 3 scanner.
2015-12-13 rocky <rb@dustyfeet.com>
* MANIFEST, MANIFEST.in, PKG-INFO, README.rst,
uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_26.py,
uncompyle6/opcodes/opcode_27.py, uncompyle6/scanner25.py,
uncompyle6/scanner26.py, uncompyle6/spark.py, uncompyle6/verify.py:
Correct MANIFEST->MANIFEST.in more lint
2015-12-13 R. Bernstein <rocky@users.noreply.github.com>
* README.rst: Update README.rst
2015-12-13 R. Bernstein <rocky@users.noreply.github.com>
* README.rst: Update README.rst
2015-12-13 rocky <rb@dustyfeet.com>
* scripts/uncompyle6, uncompyle6/#spark.py#,
uncompyle6/__init__.py, uncompyle6/disas.py,
uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py,
uncompyle6/scanner25.py, uncompyle6/scanner26.py,
uncompyle6/scanner34.py, uncompyle6/spark.py, uncompyle6/verify.py:
Make uncompyle6 run on Python3.4 and Python 2.7 We don't need our
own disassembler. Python's will do fine
2015-12-13 R. Bernstein <rocky@users.noreply.github.com>
* README.rst: Update README.rst
2015-12-13 R. Bernstein <rocky@users.noreply.github.com>
* README.rst: rSt formatting
2015-12-13 rocky <rb@dustyfeet.com>
* .gitignore, Makefile, README.rst, test/Makefile,
test/base-tests/python2/compile_tests,
test/base-tests/python2/test_applyEquiv.py,
test/base-tests/python2/test_augmentedAssign.py,
test/base-tests/python2/test_class.py,
test/base-tests/python2/test_del.py,
test/base-tests/python2/test_divide_future.py,
test/base-tests/python2/test_divide_no_future.py,
test/base-tests/python2/test_docstring.py,
test/base-tests/python2/test_empty.py,
test/base-tests/python2/test_exceptions.py,
test/base-tests/python2/test_exec.py,
test/base-tests/python2/test_expressions.py,
test/base-tests/python2/test_extendedImport.py,
test/base-tests/python2/test_extendedPrint.py,
test/base-tests/python2/test_extendedarg.py-notyet,
test/base-tests/python2/test_functions.py,
test/base-tests/python2/test_global.py,
test/base-tests/python2/test_globals.py,
test/base-tests/python2/test_import.py,
test/base-tests/python2/test_import_as.py,
test/base-tests/python2/test_integers.py,
test/base-tests/python2/test_iterators.py,
test/base-tests/python2/test_lambda.py,
test/base-tests/python2/test_listComprehensions.py,
test/base-tests/python2/test_loops.py,
test/base-tests/python2/test_loops2.py,
test/base-tests/python2/test_mine.py,
test/base-tests/python2/test_misc.py,
test/base-tests/python2/test_nested_elif.py,
test/base-tests/python2/test_nested_scopes.py,
test/base-tests/python2/test_prettyprint.py,
test/base-tests/python2/test_print.py,
test/base-tests/python2/test_print_to.py,
test/base-tests/python2/test_single_stmt.py,
test/base-tests/python2/test_slices.py,
test/base-tests/python2/test_tuple_params.py-notyet,
test/base-tests/python2/test_tuples.py-notyet,
test/base-tests/python2/test_yield.py, test/compile_tests,
test/ok_2.7/aifc.py, test/ok_2.7/aifc.pyc_dis,
test/ok_2.7/antigravity.py, test/ok_2.7/antigravity.pyc_dis,
test/ok_2.7/anydbm.py, test/ok_2.7/anydbm.pyc_dis,
test/ok_2.7/asynchat.py, test/ok_2.7/asynchat.pyc_dis,
test/ok_2.7/asyncore.py, test/ok_2.7/asyncore.pyc_dis,
test/ok_2.7/atexit.py, test/ok_2.7/atexit.pyc_dis,
test/ok_2.7/audiodev.py, test/ok_2.7/audiodev.pyc_dis,
test/ok_2.7/base64.py, test/ok_2.7/binhex.py,
test/ok_2.7/bisect.py, test/ok_2.7/bsddb/__init__.py,
test/ok_2.7/bsddb/db.py, test/ok_2.7/bsddb/dbobj.py,
test/ok_2.7/bsddb/dbrecio.py, test/ok_2.7/bsddb/dbshelve.py,
test/ok_2.7/bsddb/dbutils.py, test/ok_2.7/calendar.py,
test/ok_2.7/cgitb.py, test/ok_2.7/chunk.py, test/ok_2.7/codeop.py,
test/ok_2.7/colorsys.py, test/ok_2.7/commands.py,
test/ok_2.7/compileall.py, test/ok_2.7/compiler/__init__.py,
test/ok_2.7/compiler/ast.py, test/ok_2.7/compiler/consts.py,
test/ok_2.7/compiler/future.py, test/ok_2.7/compiler/misc.py,
test/ok_2.7/compiler/syntax.py, test/ok_2.7/ctypes/_endian.py,
test/ok_2.7/ctypes/util.py, test/ok_2.7/ctypes/wintypes.py,
test/ok_2.7/curses/__init__.py, test/ok_2.7/curses/ascii.py,
test/ok_2.7/curses/has_key.py, test/ok_2.7/curses/panel.py,
test/ok_2.7/curses/wrapper.py, test/ok_2.7/dircache.py,
test/ok_2.7/dis.py, test/test_applyEquiv.py,
test/test_augmentedAssign.py, test/test_class.py, test/test_del.py,
test/test_divide_future.py, test/test_divide_no_future.py,
test/test_docstring.py, test/test_empty.py,
test/test_exceptions.py, test/test_exec.py,
test/test_expressions.py, test/test_extendedImport.py,
test/test_extendedPrint.py, test/test_extendedarg.py,
test/test_functions.py, test/test_global.py, test/test_globals.py,
test/test_import.py, test/test_import_as.py, test/test_integers.py,
test/test_iterators.py, test/test_lambda.py,
test/test_listComprehensions.py, test/test_loops.py,
test/test_loops2.py, test/test_mine.py, test/test_misc.py,
test/test_nested_elif.py, test/test_nested_scopes.py,
test/test_one, test/test_prettyprint.py, test/test_print.py,
test/test_print_to.py, test/test_pythonlib.py,
test/test_single_stmt.py, test/test_slices.py,
test/test_tuple_params.py, test/test_tuples.py, test/test_yield.py,
test/uncompyle-code.py, test_one, test_pythonlib.py,
uncompyle-code.py, uncompyle6/#spark.py#, uncompyle6/__init__.py,
uncompyle6/verify.py: Add tests and start a more turnkey testing
system.
2015-12-12 rocky <rb@dustyfeet.com>
* tox.ini, uncompyle-code.py, uncompyle6/dparser.py,
uncompyle6/scanner25.py, uncompyle6/scanner27.py,
uncompyle6/scanner34.py, uncompyle6/spark.py, uncompyle6/walker.py:
Minimal disassemble, ast compile and deparse work on Python 3. Some
linting
2015-12-12 rocky <rb@dustyfeet.com>
* uncompyle6/dparser.py, uncompyle6/parser.py, uncompyle6/walker.py:
parser -> dparser so as not to conflict with python3's parser.
2015-12-12 rocky <rb@dustyfeet.com>
* uncompyle-code.py, uncompyle6/__init__.py, uncompyle6/disas.py,
uncompyle6/scanner.py, uncompyle6/scanner25.py,
uncompyle6/scanner26.py, uncompyle6/scanner27.py,
uncompyle6/verify.py, uncompyle6/walker.py: More Python3
compatability. Remove duplicate disassembly code and get it from
Python's standard library instead.
2015-12-12 rocky <rb@dustyfeet.com>
* uncompyle-code.py, uncompyle6/__init__.py, uncompyle6/parser.py,
uncompyle6/scanner.py, uncompyle6/walker.py: Python3 compatibility
2015-12-11 rocky <rb@dustyfeet.com>
* uncompyle-code.py, uncompyle6/__init__.py, uncompyle6/walker.py:
python3 compatibiity and remove some flake8 warnings.
2015-12-11 rocky <rb@dustyfeet.com>
* Makefile, uncompyle6/Makefile, uncompyle6/__init__.py,
uncompyle6/disas.py, uncompyle6/parser.py, uncompyle6/scanner26.py,
uncompyle6/scanner27.py, uncompyle6/scanner34.py,
uncompyle6/walker.py: Lint stuff
2015-12-11 rocky <rb@dustyfeet.com>
* .gitignore, __pkginfo__.py, setup.py, test/compile_tests,
test_pythonlib.py, uncompyle-code.py, uncompyle6/__init__.py,
uncompyle6/magics.py, uncompyle6/opcode/__init__.py,
uncompyle6/opcode/opcode_23.py, uncompyle6/opcode/opcode_24.py,
uncompyle6/opcode/opcode_25.py, uncompyle6/opcode/opcode_26.py,
uncompyle6/opcode/opcode_27.py, uncompyle6/opcodes/__init__.py,
uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_24.py,
uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py,
uncompyle6/opcodes/opcode_27.py, uncompyle6/parser.py,
uncompyle6/scanner25.py, uncompyle6/scanner26.py,
uncompyle6/scanner27.py, uncompyle6/spark.py: More python2 ->
python3 compatibility
2015-12-11 rocky <rb@dustyfeet.com>
* .travis.yml, Makefile, scripts/uncompyle2, scripts/uncompyle6,
setup.py, test_one, tox.ini, uncompyle-code.py,
uncompyle2/__init__.py, uncompyle2/disas.py, uncompyle2/magics.py,
uncompyle2/opcode/__init__.py, uncompyle2/opcode/opcode_23.py,
uncompyle2/opcode/opcode_24.py, uncompyle2/opcode/opcode_25.py,
uncompyle2/opcode/opcode_26.py, uncompyle2/opcode/opcode_27.py,
uncompyle2/parser.py, uncompyle2/scanner.py,
uncompyle2/scanner25.py, uncompyle2/scanner26.py,
uncompyle2/scanner27.py, uncompyle2/spark.py, uncompyle2/verify.py,
uncompyle2/walker.py, uncompyle6/__init__.py, uncompyle6/disas.py,
uncompyle6/magics.py, uncompyle6/opcode/__init__.py,
uncompyle6/opcode/opcode_23.py, uncompyle6/opcode/opcode_24.py,
uncompyle6/opcode/opcode_25.py, uncompyle6/opcode/opcode_26.py,
uncompyle6/opcode/opcode_27.py, uncompyle6/parser.py,
uncompyle6/scanner25.py, uncompyle6/scanner26.py,
uncompyle6/scanner27.py, uncompyle6/spark.py, uncompyle6/verify.py,
uncompyle6/walker.py: Start process of making python3 compatible
2015-11-25 rocky <rb@dustyfeet.com>
* .gitignore, uncompyle-code.py, uncompyle2/walker.py: First steps
to find-offset-based routine
2015-06-25 Mysterie <kajusska@gmail.com>
* : Merge pull request #27 from kernelsmith/master call python via /usr/bin/env python to make script more portable
2014-11-26 Mysterie <kajusska@gmail.com>
* : Merge pull request #23 from jbremer/master support hardcoded 64-bit integers (sorry, so late lol)
2014-02-12 root <root@oros.mysterie.fr>
* uncompyle2/scanner25.py, uncompyle2/scanner26.py: Fix Raise TODO +
NOP opcode
2013-12-30 root <root@oros.mysterie.fr>
* README.rst: MAJ readme
2013-07-19 root <root@debian>
* uncompyle2/disas.py: marshal unpack cast bug
2013-07-18 root <root@debian>
* uncompyle2/__init__.py, uncompyle2/disas.py: Fix marshal UTF8 bug
2013-07-16 root <root@debian>
* uncompyle2/__init__.py, uncompyle2/disas.py,
uncompyle2/magics.py, uncompyle2/scanner27.py, uncompyle2/walker.py:
marshal disassembly improvement
2013-06-20 Mysterie <kajusska@gmail.com>
* : Merge pull request #13 from ralph-moeritz/master Minor script cleanup
2013-04-25 root <root@debian>
* uncompyle2/scanner25.py, uncompyle2/scanner26.py,
uncompyle2/scanner27.py, uncompyle2/walker.py: Improvement from
wibiti
2013-03-05 root <root@debian>
* README.rst, uncompyle2/parser.py, uncompyle2/scanner.py,
uncompyle2/scanner25.py, uncompyle2/scanner26.py,
uncompyle2/scanner27.py, uncompyle2/walker.py: Grammar improvement
2013-03-05 Mysterie <kajusska@gmail.com>
* : Merge pull request #9 from SuperVirus/master Fix for issue #6
2013-02-20 Mysterie <kajusska@gmail.com>
* : Merge pull request #8 from skyfion/master fix error
2013-02-13 skyfion <sky.fion@gmail.com>
* uncompyle2/__init__.py: correct work if list in def
uncompyle_file
2013-02-09 root <root@debian>
* test/test_functions.py, uncompyle2/scanner25.py,
uncompyle2/scanner26.py: Fix for RETURN_END_IF bug
2013-01-10 Mysterie <kajusska@gmail.com>
* uncompyle2/scanner25.py, uncompyle2/scanner26.py,
uncompyle2/scanner27.py: Patch bug on LOAD_CLOSURE
2012-12-14 Mysterie <kajusska@gmail.com>
* uncompyle2/opcode/opcode_25.py, uncompyle2/opcode/opcode_26.py,
uncompyle2/opcode/opcode_27.py, uncompyle2/scanner.py,
uncompyle2/scanner25.py, uncompyle2/scanner26.py,
uncompyle2/scanner27.py: modification of LIST_APPEND opcode handling
2012-11-25 Mysterie <kajusska@gmail.com>
* : Merge pull request #3 from htgoebel/mysterie Update email and URLs for original author.
2012-11-16 Hartmut Goebel <h.goebel@crazy-compilers.com>
* build/scripts-2.7/uncompyle2, uncompyle2.py,
uncompyle2/__init__.py, uncompyle2/parser.py,
uncompyle2/scanner.py, uncompyle2/scanner25.py,
uncompyle2/scanner26.py, uncompyle2/scanner27.py,
uncompyle2/verify.py, uncompyle2/walker.py: Updating original
authors email-address.
2012-10-26 Mysterie <kajusska@gmail.com>
* README, README.rst: README patch
2012-10-26 Mysterie <kajusska@gmail.com>
* MANIFEST, MANIFEST.in, README, test_pythonlib.py,
uncompyle2/disas.py, uncompyle2/scanner25.py,
uncompyle2/scanner26.py, uncompyle2/scanner27.py: Patch for while
loop + manifest + bug in test_pythonlib.py
2012-10-11 Mysterie <kajusska@gmail.com>
* scripts/uncompyle2, setup.py, test/test_loops.py,
test/test_tuples.py, test_one, test_pythonlib, test_pythonlib.py,
uncompyle2.py, uncompyle2/Parser.py, uncompyle2/Scanner.py,
uncompyle2/Scanner25.py, uncompyle2/Scanner26.py,
uncompyle2/Scanner27.py, uncompyle2/Walker.py,
uncompyle2/__init__.py, uncompyle2/disas.py,
uncompyle2/opcode/opcode_25.py, uncompyle2/opcode/opcode_26.py,
uncompyle2/opcode/opcode_27.py, uncompyle2/parser.py,
uncompyle2/scanner.py, uncompyle2/scanner25.py,
uncompyle2/scanner26.py, uncompyle2/scanner27.py,
uncompyle2/spark.py, uncompyle2/verify.py, uncompyle2/walker.py:
Cleaning code & patch
2012-09-22 Mysterie <kajusska@gmail.com>
* test/test_loops.py, uncompyle2/Scanner25.py,
uncompyle2/Scanner26.py: Improvement of loop handling
2012-09-22 Mysterie <kajusska@gmail.com>
* uncompyle2/Scanner26.py: Little modification in Scanner26
2012-09-21 Mysterie <kajusska@gmail.com>
* test/compile_tests, test/test_applyEquiv.py,
test/test_augmentedAssign.py, test/test_class.py, test/test_del.py,
test/test_docstring.py, test/test_exec.py,
test/test_expressions.py, test/test_extendedImport.py,
test/test_extendedPrint.py, test/test_extendedarg.py,
test/test_functions.py, test/test_global.py, test/test_globals.py,
test/test_import.py, test/test_import_as.py, test/test_integers.py,
test/test_lambda.py, test/test_listComprehensions.py,
test/test_loops.py, test/test_loops2.py, test/test_misc.py,
test/test_nested_elif.py, test/test_nested_scopes.py,
test/test_prettyprint.py, test/test_print.py,
test/test_print_to.py, test/test_slices.py,
test/test_tuple_params.py, test/test_tuples.py,
uncompyle2/Scanner25.py, uncompyle2/Scanner26.py: Patch for
conditional tuple
2012-09-20 Mysterie <kajusska@gmail.com>
* uncompyle2/Scanner25.py, uncompyle2/Scanner26.py: Optimisation for
bytecode 2.5/2.6 restructuration
2012-09-20 Mysterie <kajusska@gmail.com>
* uncompyle2/Parser.py, uncompyle2/Scanner25.py,
uncompyle2/Scanner26.py, uncompyle2/Scanner27.py,
uncompyle2/Walker.py: Update from master branch uncompyle2
2012-06-14 Mysterie <kajusska@gmail.com>
* uncompyle2/Scanner25.py, uncompyle2/Scanner26.py,
uncompyle2/__init__.py: fix for the with statement
2012-06-12 Mysterie <kajusska@gmail.com>
* uncompyle2/Scanner25.py, uncompyle2/Scanner26.py: fix module & 2.6
2012-06-12 Mysterie <kajusska@gmail.com>
* uncompyle2/Scanner.py: fix module & 2.6
2012-06-05 Mysterie <kajusska@gmail.com>
* build/lib.linux-i686-2.7/uncompyle2/Parser.py,
build/lib.linux-i686-2.7/uncompyle2/Scanner.py,
build/lib.linux-i686-2.7/uncompyle2/Scanner25.py,
build/lib.linux-i686-2.7/uncompyle2/Scanner26.py,
build/lib.linux-i686-2.7/uncompyle2/Scanner27.py,
build/lib.linux-i686-2.7/uncompyle2/Walker.py,
build/lib.linux-i686-2.7/uncompyle2/__init__.py,
build/lib.linux-i686-2.7/uncompyle2/disas.py,
build/lib.linux-i686-2.7/uncompyle2/magics.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/__init__.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_23.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_24.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_25.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_26.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_27.py,
build/lib.linux-i686-2.7/uncompyle2/spark.py,
build/lib.linux-i686-2.7/uncompyle2/verify.py: creating clean .py
2012-06-05 Mysterie <kajusska@gmail.com>
* build/lib.linux-i686-2.7/uncompyle2/Parser.py,
build/lib.linux-i686-2.7/uncompyle2/Scanner25.py,
build/lib.linux-i686-2.7/uncompyle2/Scanner26.py,
build/lib.linux-i686-2.7/uncompyle2/Scanner27.py,
build/lib.linux-i686-2.7/uncompyle2/Walker.py,
build/lib.linux-i686-2.7/uncompyle2/__init__.py,
build/lib.linux-i686-2.7/uncompyle2/disas.py,
build/lib.linux-i686-2.7/uncompyle2/magics.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/__init__.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_23.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_24.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_25.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_26.py,
build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_27.py,
build/lib.linux-i686-2.7/uncompyle2/spark.py,
build/lib.linux-i686-2.7/uncompyle2/verify.py,
uncompyle2/__init__.py: creating clean .py
2012-06-05 Mysterie <kajusska@gmail.com>
* PKG-INFO, setup.cfg, setup.py: MAJ owner/information
2012-06-05 Mysterie <kajusska@gmail.com>
* uncompyle2/Scanner.py: delete old file
2012-06-05 Mysterie <kajusska@gmail.com>
* first commit