rustpython-codegen 0.5.0

Compiler for python code into bytecode for the rustpython VM.
Documentation
---
source: crates/codegen/src/compile.rs
expression: "compile_exec(\"\\\nasync def test():\n    for stop_exc in (StopIteration('spam'), StopAsyncIteration('ham')):\n        with self.subTest(type=type(stop_exc)):\n            try:\n                async with egg():\n                    raise stop_exc\n            except Exception as ex:\n                self.assertIs(ex, stop_exc)\n            else:\n                self.fail(f'{stop_exc} was suppressed')\n\")"
---
  1           0 RESUME               (0)
              1 LOAD_CONST           (<code object test at ??? file "source_path", line 1>):  1               0 RETURN_GENERATOR
                  1 POP_TOP
            >>    2 RESUME               (0)

  2         >>    3 LOAD_GLOBAL          (1, NULL + StopIteration)
            >>    4 CACHE
            >>    5 CACHE
                  6 CACHE
                  7 CACHE
                  8 LOAD_CONST           ("spam")
                  9 CALL                 (1)
            >>   10 CACHE
                 11 CACHE
                 12 CACHE
                 13 LOAD_GLOBAL          (3, NULL + StopAsyncIteration)
                 14 CACHE
                 15 CACHE
                 16 CACHE
                 17 CACHE
                 18 LOAD_CONST           ("ham")
                 19 CALL                 (1)
                 20 CACHE
                 21 CACHE
                 22 CACHE
                 23 BUILD_TUPLE          (2)
                 24 GET_ITER
                 25 FOR_ITER             (71)
                 26 CACHE
                 27 STORE_FAST           (0, stop_exc)

  3              28 LOAD_GLOBAL          (4, self)
                 29 CACHE
                 30 CACHE
                 31 CACHE
            >>   32 CACHE
                 33 LOAD_ATTR            (7, subTest, method=true)
                 34 CACHE
                 35 CACHE
                 36 CACHE
                 37 CACHE
                 38 CACHE
                 39 CACHE
                 40 CACHE
                 41 CACHE
                 42 CACHE
                 43 LOAD_GLOBAL          (9, NULL + type)
                 44 CACHE
                 45 CACHE
                 46 CACHE
                 47 CACHE
            >>   48 LOAD_FAST            (0, stop_exc)
                 49 CALL                 (1)
                 50 CACHE
                 51 CACHE
                 52 CACHE
                 53 LOAD_CONST           (("type"))
                 54 CALL_KW              (1)
                 55 CACHE
                 56 CACHE
                 57 CACHE
                 58 COPY                 (1)
                 59 LOAD_SPECIAL         (__exit__)
                 60 SWAP                 (2)
                 61 SWAP                 (3)
                 62 LOAD_SPECIAL         (__enter__)
                 63 CALL                 (0)
                 64 CACHE
                 65 CACHE
                 66 CACHE
                 67 POP_TOP

  4              68 NOP

  5              69 LOAD_GLOBAL          (11, NULL + egg)
                 70 CACHE
            >>   71 CACHE
                 72 CACHE
                 73 CACHE
                 74 CALL                 (0)
                 75 CACHE
                 76 CACHE
                 77 CACHE
                 78 COPY                 (1)
                 79 LOAD_SPECIAL         (__aexit__)
                 80 SWAP                 (2)
                 81 SWAP                 (3)
                 82 LOAD_SPECIAL         (__aenter__)
                 83 CALL                 (0)
                 84 CACHE
                 85 CACHE
                 86 CACHE
                 87 GET_AWAITABLE        (1)
                 88 LOAD_CONST           (None)
                 89 SEND                 (3)
                 90 CACHE
                 91 YIELD_VALUE          (1)
                 92 RESUME               (3)
                 93 JUMP_BACKWARD_NO_INTERRUPT(5)
                 94 END_SEND
                 95 POP_TOP

  6              96 LOAD_FAST            (0, stop_exc)
                 97 RAISE_VARARGS        (Raise)

  2              98 END_FOR
                 99 POP_ITER
                100 LOAD_CONST           (None)
                101 RETURN_VALUE

  5             102 CLEANUP_THROW
                103 JUMP_BACKWARD_NO_INTERRUPT(10)
                104 PUSH_EXC_INFO
                105 WITH_EXCEPT_START
                106 GET_AWAITABLE        (2)
                107 LOAD_CONST           (None)
                108 SEND                 (4)
                109 CACHE
                110 YIELD_VALUE          (1)
                111 RESUME               (3)
                112 JUMP_BACKWARD_NO_INTERRUPT(5)
                113 CLEANUP_THROW
                114 END_SEND
                115 TO_BOOL
                116 CACHE
                117 CACHE
                118 CACHE
                119 POP_JUMP_IF_TRUE     (2)
                120 CACHE
                121 NOT_TAKEN
                122 RERAISE              (2)
                123 POP_TOP
                124 POP_EXCEPT
                125 POP_TOP
                126 POP_TOP
                127 POP_TOP
                128 JUMP_FORWARD         (48)
                129 COPY                 (3)
                130 POP_EXCEPT
                131 RERAISE              (1)
                132 PUSH_EXC_INFO

  7             133 LOAD_GLOBAL          (12, Exception)
                134 CACHE
                135 CACHE
                136 CACHE
                137 CACHE
                138 CHECK_EXC_MATCH
                139 POP_JUMP_IF_FALSE    (32)
                140 CACHE
                141 NOT_TAKEN
                142 STORE_FAST           (1, ex)

  8             143 LOAD_GLOBAL          (4, self)
                144 CACHE
                145 CACHE
                146 CACHE
                147 CACHE
                148 LOAD_ATTR            (15, assertIs, method=true)
                149 CACHE
                150 CACHE
                151 CACHE
                152 CACHE
                153 CACHE
                154 CACHE
                155 CACHE
                156 CACHE
                157 CACHE
                158 LOAD_FAST_LOAD_FAST  (ex, stop_exc)
                159 CALL                 (2)
                160 CACHE
                161 CACHE
                162 CACHE
                163 POP_TOP
                164 POP_EXCEPT
                165 LOAD_CONST           (None)
                166 STORE_FAST           (1, ex)
                167 DELETE_FAST          (1, ex)
                168 JUMP_FORWARD         (32)
                169 LOAD_CONST           (None)
                170 STORE_FAST           (1, ex)
                171 DELETE_FAST          (1, ex)
                172 RERAISE              (1)
                173 RERAISE              (0)
                174 COPY                 (3)
                175 POP_EXCEPT
                176 RERAISE              (1)

 10             177 LOAD_GLOBAL          (4, self)
                178 CACHE
                179 CACHE
                180 CACHE
                181 CACHE
                182 LOAD_ATTR            (17, fail, method=true)
                183 CACHE
                184 CACHE
                185 CACHE
                186 CACHE
            >>  187 CACHE
                188 CACHE
                189 CACHE
                190 CACHE
                191 CACHE
                192 LOAD_FAST_BORROW     (0, stop_exc)
                193 FORMAT_SIMPLE
                194 LOAD_CONST           (" was suppressed")
                195 BUILD_STRING         (2)
                196 CALL                 (1)
                197 CACHE
                198 CACHE
                199 CACHE
                200 POP_TOP
                201 NOP

  3             202 LOAD_CONST           (None)
                203 LOAD_CONST           (None)
            >>  204 LOAD_CONST           (None)
                205 CALL                 (3)
                206 CACHE
                207 CACHE
                208 CACHE
                209 POP_TOP
                210 JUMP_BACKWARD        (187)
                211 CACHE
                212 PUSH_EXC_INFO
                213 WITH_EXCEPT_START
                214 TO_BOOL
                215 CACHE
                216 CACHE
                217 CACHE
                218 POP_JUMP_IF_TRUE     (2)
                219 CACHE
                220 NOT_TAKEN
                221 RERAISE              (2)
                222 POP_TOP
                223 POP_EXCEPT
                224 POP_TOP
                225 POP_TOP
                226 POP_TOP
                227 JUMP_BACKWARD        (204)
                228 CACHE
                229 COPY                 (3)
                230 POP_EXCEPT
                231 RERAISE              (1)

  2             232 CALL_INTRINSIC_1     (StopIterationError)
                233 RERAISE              (1)

              2 MAKE_FUNCTION
              3 STORE_NAME           (0, test)
              4 LOAD_CONST           (None)
              5 RETURN_VALUE