circuitpython/tests/cpydiff
David Lechner 783b1a868f py/runtime: Allow multiple *args in a function call.
This is a partial implementation of PEP 448 to allow unpacking multiple
star args in a function or method call.

This is implemented by changing the emitted bytecodes so that both
positional args and star args are stored as positional args.  A bitmap is
added to indicate if an argument at a given position is a positional
argument or a star arg.

In the generated code, this new bitmap takes the place of the old star arg.
It is stored as a small int, so this means only the first N arguments can
be star args where N is the number of bits in a small int.

The runtime is modified to interpret this new bytecode format while still
trying to perform as few memory reallocations as possible.

Signed-off-by: David Lechner <david@pybricks.com>
2022-03-31 16:59:30 +11:00
..
modules tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
modules2/subpkg tests/cpydiff/core_import_split_ns_pkgs: Test for split namespace packages. 2017-05-03 17:16:19 +03:00
modules3 tests/cpydiff: Add cpydiff test for __all__ used in imported package. 2020-05-02 17:41:04 +10:00
builtin_next_arg2.py tests/cpydiff: Fix markup where "`" (xref) was used instead of "``" (code). 2017-12-03 15:32:09 +02:00
core_class_delnotimpl.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
core_class_mro.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
core_class_supermultiple.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
core_class_superproperty.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
core_fstring_concat.py tests/cpydiff: Clarify f-string diffs regarding concatenation. 2021-11-25 22:09:59 +11:00
core_fstring_parser.py py/lexer: Support nested [] and {} characters within f-string params. 2021-11-25 21:50:58 +11:00
core_fstring_raw.py py: Implement partial PEP-498 (f-string) support. 2021-08-14 16:58:40 +10:00
core_fstring_repr.py py: Implement partial PEP-498 (f-string) support. 2021-08-14 16:58:40 +10:00
core_function_argcount.py tests/cpydiff/core_arguments: Move under Functions subsection. 2017-07-09 13:36:28 +03:00
core_function_moduleattr.py tests/cpydiff: Add test and workaround for function.__module__ attr. 2021-05-16 11:06:46 +10:00
core_function_userattr.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
core_generator_noexit.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
core_import_all.py tests/cpydiff: Add cpydiff test for __all__ used in imported package. 2020-05-02 17:41:04 +10:00
core_import_path.py tests/cpydiff/core_import_path: Test showing difference in package.__path__. 2017-05-03 12:22:53 +03:00
core_import_prereg.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
core_import_split_ns_pkgs.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
core_locals.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
core_locals_eval.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
module_array_comparison.py py/objarray: Prohibit comparison of mismatching types. 2021-05-13 22:16:14 +10:00
module_array_constructor.py tests/cpydiff: Add test for array constructor with overflowing value. 2021-06-13 10:30:14 +10:00
modules_array_containment.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
modules_array_deletion.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
modules_array_subscrstep.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
modules_deque.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
modules_json_nonserializable.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
modules_os_environ.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
modules_os_getenv.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
modules_os_getenv_argcount.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
modules_random_getrandbits.py extmod/modurandom: Add error message when getrandbits has bad value. 2021-05-30 16:41:30 +10:00
modules_random_randint.py all: Update Python formatting to latest Black version 22.1.0. 2022-02-02 16:49:55 +11:00
modules_struct_fewargs.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
modules_struct_manyargs.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
modules_struct_whitespace_in_format.py tests/cpydiff/modules_struct_whitespace_in_format: Run black. 2021-07-06 18:19:55 -05:00
modules_sys_stdassign.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
syntax_arg_unpacking.py py/runtime: Allow multiple *args in a function call. 2022-03-31 16:59:30 +11:00
syntax_assign_expr.py tests/cpydiff: Add CPy diff test for assignment expression behaviour. 2020-06-16 22:06:47 +10:00
syntax_spaces.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
syntax_unicode_nameesc.py tests/cpydiff: Add initial set of tests for uPy-CPython differences. 2017-02-20 16:50:34 +11:00
types_bytearray_sliceassign.py tests/cpydiff: Add initial set of tests for uPy-CPython differences. 2017-02-20 16:50:34 +11:00
types_bytes_format.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_bytes_keywords.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_bytes_subscrstep.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_dict_keys_set.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_exception_attrs.py py/objexcept: Support errno attribute on OSError exceptions. 2021-04-23 22:03:46 +10:00
types_exception_chaining.py tests/cpydiff: Add initial set of tests for uPy-CPython differences. 2017-02-20 16:50:34 +11:00
types_exception_instancevar.py tests/cpydiff/: Improve wording, add more workarounds. 2017-07-09 14:33:55 +03:00
types_exception_loops.py tests/cpydiff/: Improve wording, add more workarounds. 2017-07-09 14:33:55 +03:00
types_exception_subclassinit.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_float_rounding.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_int_bit_length.py extmod/modurandom: Add error message when getrandbits has bad value. 2021-05-30 16:41:30 +10:00
types_int_subclassconv.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_list_delete_subscrstep.py tests/cpydiff/: Improve wording, add more workarounds. 2017-07-09 14:33:55 +03:00
types_list_store_noniter.py tests/cpydiff: Add a test for storing iterable to a list slice. 2017-02-20 17:22:12 +11:00
types_list_store_subscrstep.py tests/cpydiff/: Improve wording, add more workarounds. 2017-07-09 14:33:55 +03:00
types_str_endswith.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_str_formatsubscr.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_str_keywords.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_str_ljust_rjust.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_str_rsplitnone.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_str_subscrstep.py tests: Format all Python code with black, except tests in basics subdir. 2020-03-30 13:21:58 +11:00
types_tuple_subscrstep.py tests/cpydiff: Add initial set of tests for uPy-CPython differences. 2017-02-20 16:50:34 +11:00