Commit Graph

65 Commits

Author SHA1 Message Date
Berker Peksag da0870c87a Add versionadded directives for the matmul operator. 2015-03-12 20:56:45 +02:00
Benjamin Peterson 2f3d440549 merge 3.4 (#23561) 2015-03-02 09:36:48 -05:00
Benjamin Peterson bdf525b77c wrap everything at 80 chars 2015-03-02 09:31:40 -05:00
Benjamin Peterson 29fec92875 link to the correct dis method or function (closes #23561) 2015-03-02 09:27:43 -05:00
Berker Peksag 6897e5688d Issue #20521: Change ``TOS`` to TOS in dis documentation.
TOS is an abbreviation of top-of-stack.

Patch by Sven Berkvens-Matthijsse.
2015-03-02 06:34:00 +02:00
Berker Peksag ab4040e3c6 Issue #20521: Change ``TOS`` to TOS in dis documentation.
TOS is an abbreviation of top-of-stack.

Patch by Sven Berkvens-Matthijsse.
2015-03-02 06:33:30 +02:00
Serhiy Storchaka f4f314ba3f Issue #22845: Improved formatting of dis documentation. 2014-11-11 10:02:46 +02:00
Serhiy Storchaka f751a9e6a2 Issue #22845: Improved formatting of dis documentation. 2014-11-11 10:02:11 +02:00
Nick Coghlan efd5df9e52 Issue #21947: handle generator-iterator objects in dis
Patch by Clement Rouault.
2014-07-25 23:02:56 +10:00
Benjamin Peterson d51374ed78 PEP 465: a dedicated infix operator for matrix multiplication (closes #21176) 2014-04-09 23:55:56 -04:00
R David Murray 0bce6e7462 whatsnew: expand 'dis' entry.
Also add one missing versionadded.
2014-01-07 14:30:17 -05:00
Serhiy Storchaka 0e90e99188 Issue #19795: Improved markup of True/False constants. 2013-11-29 12:19:53 +02:00
Larry Hastings 3a9079742f Issue #19722: Added opcode.stack_effect(), which accurately
computes the stack effect of bytecode instructions.
2013-11-23 14:49:22 -08:00
Nick Coghlan 50c48b89e3 Close #17916: dis.Bytecode based replacement for distb
- Bytecode.from_traceback() alternate constructor
- current_offset parameter and attribute

Patch by Claudiu Popa
2013-11-23 00:57:00 +10:00
Nick Coghlan 07155c9c14 Fix typo in updated dis docs 2013-11-06 22:12:07 +10:00
Nick Coghlan 90b8e7d2bc Close #19378: address flaws in the new dis module APIs
- confusing line_offset parameter -> first_line parameter
- systematically test and fix new file parameter
- remove redundant Bytecode.show_info() API
- rename Bytecode.display_code() to Bytecode.dis() and have it
  return the multi-line string rather than printing it directly
- eliminated some not-so-helpful helpers from the bytecode_helper
  test support module

Also fixed a longstanding defect (worked around in the test suite)
where lines emitted by the dis module could include trailing white
space. That no longer happens, allowing the formatting tests to be
simplified to use plain string comparisons.
2013-11-06 22:08:36 +10:00
Georg Brandl 3cb26b77b6 merge with 3.3 2013-10-12 18:41:23 +02:00
Georg Brandl c96ef1f0ed Closes #13026: fix documentation of MAKE_FUNCTION for 3.x. 2013-10-12 18:41:18 +02:00
Ezio Melotti 6e6c6ac3d7 #18796: improve documentation of the file argument of dis.show_code. Initial patch by Vajrasky Kok. 2013-08-23 22:41:39 +03:00
Benjamin Peterson e8e14591eb rather than passing locals to the class body, just execute the class body in the proper environment 2013-05-16 14:37:25 -05:00
Nick Coghlan b39fd0c9b8 Issue #11816: multiple improvements to the dis module
* get_instructions generator
* ability to redirect output to a file
* Bytecode and Instruction abstractions

Patch by Nick Coghlan, Ryan Kelly and Thomas Kluyver.
2013-05-06 23:59:20 +10:00
Benjamin Peterson 3b0431dc60 check local class namespace before reaching for cells (closes #17853) 2013-04-30 09:41:40 -04:00
Andrew Svetlov a5c430940c Issue #16538: correctly describe MAKE_CLOSURE in docs.
Patch by Daniel Urban
2012-11-23 15:28:34 +02:00
Benjamin Peterson 143d034ecd merge 3.2 2012-10-12 12:04:32 -04:00
Ezio Melotti 7fa822275b Fix links to the __next__ method. 2012-10-12 13:42:08 +03:00
Eli Bendersky 60ee04969e Issue #14349: Fix the doc of the MAKE_FUNCTION opcode in Doc/library/dis.rst to
correctly list the stack params it expects.
2012-03-24 18:52:45 +02:00
Nick Coghlan 1f7ce62bd6 Implement PEP 380 - 'yield from' (closes #11682) 2012-01-13 21:43:40 +10:00
Benjamin Peterson 76f7f4d979 excise the remains of STOP_CODE, which hasn't done anything useful for years 2011-07-17 22:49:50 -05:00
Raymond Hettinger 4f707fd316 Separate source link from main text. 2011-01-10 19:54:11 +00:00
Raymond Hettinger 1048094037 Move source links to consistent location and remove wordy, big yellow boxes. 2011-01-10 03:26:08 +00:00
Antoine Pitrou c58bde159f SET_LINENO was removed in 2.3 2010-12-12 18:09:53 +00:00
Éric Araujo 6e6cb8e0e4 Provide links to Python source where the code is short, readable and
informative adjunct to the docs.  Forward-port of Raymond's r86225 and
r86245 using the new source reST role added in #10334.
2010-11-16 19:13:50 +00:00
Georg Brandl 2379877246 Fix documentation of dis.opmap direction. 2010-10-17 11:29:07 +00:00
Amaury Forgeot d'Arc ba117ef7e9 #4617: Previously it was illegal to delete a name from the local
namespace if it occurs as a free variable in a nested block.  This limitation
of the compiler has been lifted, and a new opcode introduced (DELETE_DEREF).

This sample was valid in 2.6, but fails to compile in 3.x without this change::

   >>> def f():
   ...     def print_error():
   ...        print(e)
   ...     try:
   ...        something
   ...     except Exception as e:
   ...        print_error()
   ...        # implicit "del e" here


This sample has always been invalid in Python, and now works::

   >>> def outer(x):
   ...     def inner():
   ...        return x
   ...     inner()
   ...     del x

There is no need to bump the PYC magic number: the new opcode is used
for code that did not compile before.
2010-09-10 21:39:53 +00:00
Nick Coghlan e8814fbb32 As per python-dev discussion with Eli, properly document and publish dis.show_code 2010-09-10 14:08:04 +00:00
Antoine Pitrou 74a69fa662 Issue #9225: Remove the ROT_FOUR and DUP_TOPX opcode, the latter replaced
by the new (and simpler) DUP_TOP_TWO.  Performance isn't changed, but
our bytecode is a bit simplified.  Patch by Demur Rumed.
2010-09-04 18:43:52 +00:00
Georg Brandl 67b21b7547 Consistency check for versionadded/changed directives. 2010-08-17 15:07:14 +00:00
Nick Coghlan eae2da1da7 Issue 9147: Add dis.code_info() 2010-08-17 08:03:36 +00:00
Georg Brandl 4833e5b874 Remove the need for a "()" empty argument list after opcodes. 2010-07-03 10:41:33 +00:00
Georg Brandl 19b7a87121 Wrap and use the correct directive. 2010-07-03 10:21:50 +00:00
Nick Coghlan 5c8b54eb04 Issue 6507: accept source strings directly in dis.dis(). Original patch by Daniel Urban 2010-07-03 07:36:51 +00:00
Brett Cannon 8315fd12a5 Some people have mistaken Python bytecode as being stable and unchanging. In
reality it's simply an implementation detail for CPython. This point is now
clearly documented in both the docs for dis and the glossary.

Closes issue #7829. Thanks to Terry Reedy for some initial suggestions on
wording.
2010-07-02 22:03:00 +00:00
Benjamin Peterson 775ae4a6f0 remove description of LOAD_LOCALS #8874 2010-06-02 18:10:09 +00:00
Ezio Melotti 7de0a6e04c #7432: remove unnecessary from __future__ import division 2010-01-05 08:37:27 +00:00
Benjamin Peterson 876b2f286b Merged revisions 72912,72920,72940 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r72912 | benjamin.peterson | 2009-05-25 08:13:44 -0500 (Mon, 25 May 2009) | 5 lines

  add a SETUP_WITH opcode

  It speeds up the with statement and correctly looks up the special
  methods involved.
........
  r72920 | benjamin.peterson | 2009-05-25 15:12:57 -0500 (Mon, 25 May 2009) | 1 line

  take into account the fact that SETUP_WITH pushes a finally block
........
  r72940 | benjamin.peterson | 2009-05-26 07:49:59 -0500 (Tue, 26 May 2009) | 1 line

  teach the peepholer about SETUP_WITH
........
2009-06-28 03:18:59 +00:00
Georg Brandl 71515ca191 Remove surplus empty lines and convert more files to new optional arg style. 2009-05-17 12:29:12 +00:00
Georg Brandl c2a4f4fb67 Update signature style for optional arguments, part 3. 2009-04-10 09:03:43 +00:00
Jeffrey Yasskin 9de7ec7868 http://bugs.python.org/issue4715
This patch by Antoine Pitrou optimizes the bytecode for conditional branches by
merging the following "POP_TOP" instruction into the conditional jump.  For
example, the list comprehension "[x for x in l if not x]" produced the
following bytecode:

  1           0 BUILD_LIST               0
              3 LOAD_FAST                0 (.0)
        >>    6 FOR_ITER                23 (to 32)
              9 STORE_FAST               1 (x)
             12 LOAD_FAST                1 (x)
             15 JUMP_IF_TRUE            10 (to 28)
             18 POP_TOP
             19 LOAD_FAST                1 (x)
             22 LIST_APPEND              2
             25 JUMP_ABSOLUTE            6
        >>   28 POP_TOP
             29 JUMP_ABSOLUTE            6
        >>   32 RETURN_VALUE

but after the patch it produces the following bytecode:

  1           0 BUILD_LIST               0
              3 LOAD_FAST                0 (.0)
        >>    6 FOR_ITER                18 (to 27)
              9 STORE_FAST               1 (x)
             12 LOAD_FAST                1 (x)
             15 POP_JUMP_IF_TRUE         6
             18 LOAD_FAST                1 (x)
             21 LIST_APPEND              2
             24 JUMP_ABSOLUTE            6
        >>   27 RETURN_VALUE

Notice that not only the code is shorter, but the conditional jump
(POP_JUMP_IF_TRUE) jumps right to the start of the loop instead of going through
the JUMP_ABSOLUTE at the end. "continue" statements are helped
similarly.

Furthermore, the old jump opcodes (JUMP_IF_FALSE, JUMP_IF_TRUE) have been
replaced by two new opcodes:
- JUMP_IF_TRUE_OR_POP, which jumps if true and pops otherwise
- JUMP_IF_FALSE_OR_POP, which jumps if false and pops otherwise
2009-02-25 02:25:04 +00:00
Georg Brandl 48310cd3f2 Remove trailing whitespace. 2009-01-03 21:18:54 +00:00
Benjamin Peterson 75edad0502 Merged revisions 68116-68119,68121,68123-68127 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r68116 | georg.brandl | 2009-01-01 05:46:51 -0600 (Thu, 01 Jan 2009) | 2 lines

  #4100: note that element children are not necessarily present on "start" events.
........
  r68117 | georg.brandl | 2009-01-01 05:53:55 -0600 (Thu, 01 Jan 2009) | 2 lines

  #4156: make clear that "protocol" is to be replaced with the protocol name.
........
  r68118 | georg.brandl | 2009-01-01 06:00:19 -0600 (Thu, 01 Jan 2009) | 2 lines

  #4185: clarify escape behavior of replacement strings.
........
  r68119 | georg.brandl | 2009-01-01 06:09:40 -0600 (Thu, 01 Jan 2009) | 3 lines

  #4222: document dis.findlabels() and dis.findlinestarts() and
  put them into dis.__all__.
........
  r68121 | georg.brandl | 2009-01-01 06:43:33 -0600 (Thu, 01 Jan 2009) | 2 lines

  Point to types module in new module deprecation notice.
........
  r68123 | georg.brandl | 2009-01-01 06:52:29 -0600 (Thu, 01 Jan 2009) | 2 lines

  #4784: ... on three counts ...
........
  r68124 | georg.brandl | 2009-01-01 06:53:19 -0600 (Thu, 01 Jan 2009) | 2 lines

  #4782: Fix markup error that hid load() and loads().
........
  r68125 | georg.brandl | 2009-01-01 07:02:09 -0600 (Thu, 01 Jan 2009) | 2 lines

  #4776: add data_files and package_dir arguments.
........
  r68126 | georg.brandl | 2009-01-01 07:05:13 -0600 (Thu, 01 Jan 2009) | 2 lines

  Handlers are in the `logging.handlers` module.
........
  r68127 | georg.brandl | 2009-01-01 07:14:49 -0600 (Thu, 01 Jan 2009) | 2 lines

  #4767: Use correct submodules for all MIME classes.
........
2009-01-01 15:05:06 +00:00