micropython/py
Damien George 9988618e0e py: Implement full func arg passing for native emitter.
This patch gets full function argument passing working with native
emitter.  Includes named args, keyword args, default args, var args
and var keyword args.  Fully Python compliant.

It reuses the bytecode mp_setup_code_state function to do all the hard
work.  This function is slightly adjusted to accommodate native calls,
and the native emitter is forced a bit to emit similar prelude and
code-info as bytecode.
2015-04-07 22:43:28 +01:00
..
argcheck.c py, unix, stmhal: Allow to compile with -Wshadow. 2015-01-20 11:55:10 +00:00
asmarm.c py: Allocate memory for assembled code at start of PASS_EMIT. 2015-01-14 00:38:33 +00:00
asmarm.h py: Add guarded includes for asm-based headers. 2015-01-01 18:07:43 +00:00
asmthumb.c py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
asmthumb.h py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
asmx64.c py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
asmx64.h py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
asmx86.c py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
asmx86.h py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
bc.c py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
bc.h vm: Initial support for calling bytecode functions w/o C stack ("stackless"). 2015-04-03 00:03:07 +03:00
bc0.h py: Parse big-int/float/imag constants directly in parser. 2015-02-08 01:57:40 +00:00
binary.c objarray: Support array('O'), array of objects, as extension to CPython. 2015-03-05 22:58:31 +02:00
binary.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
builtin.h py: Add setattr builtin. 2015-02-14 23:35:00 +00:00
builtinevex.c py: Check for valid file when creating lexer for execfile. 2015-02-15 00:02:27 +00:00
builtinimport.c builtinimport: Revamp&refactor handling of relative imports. 2015-02-16 12:11:34 +02:00
compile.c py, compiler: When just bytecode, make explicit calls instead of table. 2015-03-26 16:52:45 +00:00
compile.h py: Protect mp_parse and mp_compile with nlr push/pop block. 2015-02-07 18:33:58 +00:00
emit.h py, compiler: When just bytecode, make explicit calls instead of table. 2015-03-26 16:52:45 +00:00
emitbc.c py: Simplify bytecode prelude when encoding closed over variables. 2015-04-07 00:08:17 +01:00
emitcommon.c py, compiler: Refactor load/store/delete_id logic to reduce code size. 2015-03-26 16:52:45 +00:00
emitcpy.c py, compiler: Remove emit_pass1 code, using emit_bc to do its job. 2015-03-26 16:52:45 +00:00
emitglue.c py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
emitglue.h py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
emitinlinethumb.c py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
emitnative.c py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
formatfloat.c py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
formatfloat.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
frozenmod.c py: Implement very simple frozen modules support. 2015-01-20 11:52:12 +02:00
frozenmod.h py: Implement very simple frozen modules support. 2015-01-20 11:52:12 +02:00
gc.c py: Make heap printing compatible with 16-bit word size. 2015-04-03 14:11:13 +01:00
gc.h py: Put all global state together in state structures. 2015-01-07 20:33:00 +00:00
grammar.h py: Parse big-int/float/imag constants directly in parser. 2015-02-08 01:57:40 +00:00
lexer.c py: Allow to compile with extra warnings (sign-compare, unused-param). 2015-03-19 00:25:33 +00:00
lexer.h py: Allow to compile with extra warnings (sign-compare, unused-param). 2015-03-19 00:25:33 +00:00
lexerstr.c py: Use m_{new,renew,del} consistently. 2015-02-27 09:34:51 +00:00
lexerunix.c py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
makeqstrdata.py makeqstrdata.py: Add support for strings with backslash escapes. 2015-04-02 01:10:11 +03:00
malloc.c py: Add MICROPY_MALLOC_USES_ALLOCATED_SIZE to allow simpler malloc API. 2015-03-03 21:23:13 +00:00
map.c py: Some trivial cosmetic changes, for code style consistency. 2015-04-04 15:53:11 +01:00
misc.h py: Add MICROPY_MALLOC_USES_ALLOCATED_SIZE to allow simpler malloc API. 2015-03-03 21:23:13 +00:00
mkenv.mk py, mk: Revert change where build variables set with ?=. 2014-06-07 13:14:45 +01:00
mkrules.mk py: Fix order-only dependencies in mkrules.mk and py.mk. 2014-11-06 18:48:38 +00:00
modarray.c py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
modbuiltins.c py: Add MICROPY_PY_BUILTINS_REVERSED, disable for minimal ports. 2015-04-07 00:17:11 +03:00
modcmath.c py: Fix cmath.log10; fix printing of complex number with negative imag. 2015-02-02 12:52:14 +00:00
modcollections.c py: Implement core of OrderedDict type. 2015-03-20 17:26:10 +00:00
modgc.c py: Put mp_sys_path, mp_sys_argv and gc_collected in mp_state_ctx_t. 2015-02-07 17:24:10 +00:00
modio.c py: Use TextIOWrapper only if PY_IO_FILEIO def'd; cast size_t for print. 2015-02-15 13:17:11 +00:00
modmath.c py: Make math special functions configurable and disabled by default. 2015-02-22 14:48:18 +00:00
modmicropython.c py: Use TextIOWrapper only if PY_IO_FILEIO def'd; cast size_t for print. 2015-02-15 13:17:11 +00:00
modstruct.c py: Parse big-int/float/imag constants directly in parser. 2015-02-08 01:57:40 +00:00
modsys.c py: Put mp_sys_path, mp_sys_argv and gc_collected in mp_state_ctx_t. 2015-02-07 17:24:10 +00:00
mpconfig.h py: Add MICROPY_PY_BUILTINS_REVERSED, disable for minimal ports. 2015-04-07 00:17:11 +03:00
mpstate.c py: Put all global state together in state structures. 2015-01-07 20:33:00 +00:00
mpstate.h py: Put mp_sys_path, mp_sys_argv and gc_collected in mp_state_ctx_t. 2015-02-07 17:24:10 +00:00
mpz.c py: Make some mpz functions static and remove unused ones. 2015-03-12 22:48:45 +00:00
mpz.h py: Allow MPZ_DIG_SIZE to be optionally configured by a port. 2015-04-03 14:11:13 +01:00
nativeglue.c py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
nlr.h py: Guard against redef of nlr_push with DEBUG + MICROPY_NLR_SETJMP. 2015-03-03 14:34:40 +00:00
nlrsetjmp.c py: Put all global state together in state structures. 2015-01-07 20:33:00 +00:00
nlrthumb.S py: Put all global state together in state structures. 2015-01-07 20:33:00 +00:00
nlrx64.S py: Fix nlr mp_state_ctx symbol error for Mac. 2015-01-08 16:24:44 +00:00
nlrx86.S py: Put all global state together in state structures. 2015-01-07 20:33:00 +00:00
nlrxtensa.S py: Put all global state together in state structures. 2015-01-07 20:33:00 +00:00
obj.c py: Fix mp_obj_print() to work when Python streams are not used. 2015-02-17 00:32:18 +02:00
obj.h py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
objarray.c py: Allow to compile with extra warnings (sign-compare, unused-param). 2015-03-19 00:25:33 +00:00
objbool.c py, unix: Allow to compile with -Wunused-parameter. 2015-01-20 12:47:20 +00:00
objboundmeth.c py: Some trivial cosmetic changes, for code style consistency. 2015-04-04 15:53:11 +01:00
objcell.c py: Some trivial cosmetic changes, for code style consistency. 2015-04-04 15:53:11 +01:00
objclosure.c py, unix: Allow to compile with -Wunused-parameter. 2015-01-20 12:47:20 +00:00
objcomplex.c py: Parse big-int/float/imag constants directly in parser. 2015-02-08 01:57:40 +00:00
objdict.c objdict: Cast mp_obj_t to concrete types explicitly. 2015-03-26 12:28:56 +02:00
objenumerate.c py: Add MICROPY_PY_BUILTINS_ENUMERATE, disable for minimal ports. 2015-04-06 23:51:29 +03:00
objexcept.c py: Use m_{new,renew,del} consistently. 2015-02-27 09:34:51 +00:00
objexcept.h py: Fix adding of traceback so that it appends to existing info. 2015-02-27 00:36:39 +00:00
objfilter.c py: Use mp_arg_check_num in some _make_new functions. 2015-01-20 14:11:27 +00:00
objfloat.c py, extmod: Remove include of unnecessary system headers. 2015-03-14 23:11:25 +00:00
objfun.c py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
objfun.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
objgenerator.c py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
objgenerator.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
objgetitemiter.c py: Some trivial cosmetic changes, for code style consistency. 2015-04-04 15:53:11 +01:00
objint.c py: Fix builtin abs so it works for bools and bignum. 2015-03-14 22:07:30 +00:00
objint.h py: Fix builtin abs so it works for bools and bignum. 2015-03-14 22:07:30 +00:00
objint_longlong.c py: Fix builtin abs so it works for bools and bignum. 2015-03-14 22:07:30 +00:00
objint_mpz.c py: Fix builtin abs so it works for bools and bignum. 2015-03-14 22:07:30 +00:00
objlist.c py: Cast mp_obj_t to concrete types explicitly. 2015-03-25 09:25:41 +02:00
objlist.h py: Fix adding of traceback so that it appends to existing info. 2015-02-27 00:36:39 +00:00
objmap.c py: Use mp_arg_check_num in some _make_new functions. 2015-01-20 14:11:27 +00:00
objmodule.c py: Implement core of OrderedDict type. 2015-03-20 17:26:10 +00:00
objmodule.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
objnamedtuple.c objnamedtuple: Accept field list as a string. 2015-03-23 22:45:14 +02:00
objnone.c py, unix: Allow to compile with -Wunused-parameter. 2015-01-20 12:47:20 +00:00
objobject.c py: Use mp_arg_check_num in some _make_new functions. 2015-01-20 14:11:27 +00:00
objproperty.c py, unix: Allow to compile with -Wunused-parameter. 2015-01-20 12:47:20 +00:00
objrange.c py: Add support for start/stop/step attributes of builtin range object. 2015-03-11 20:02:06 +00:00
objreversed.c py: Add MICROPY_PY_BUILTINS_REVERSED, disable for minimal ports. 2015-04-07 00:17:11 +03:00
objset.c py: Clarify API for map/set lookup when removing&adding at once. 2015-03-20 17:41:37 +00:00
objslice.c py, unix: Allow to compile with -Wunused-parameter. 2015-01-20 12:47:20 +00:00
objstr.c py: Some trivial cosmetic changes, for code style consistency. 2015-04-04 15:53:11 +01:00
objstr.h objstr: Add .splitlines() method. 2015-04-04 00:09:48 +03:00
objstringio.c py: Prevent segfault for operations on closed StringIO. 2015-01-20 23:50:43 +00:00
objstrunicode.c py: In str unicode, str_subscr will never be passed a bytes object. 2015-04-04 19:42:03 +01:00
objtuple.c py: Use m_{new,renew,del} consistently. 2015-02-27 09:34:51 +00:00
objtuple.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
objtype.c py: Implement delete for property and descriptors. 2015-04-04 20:15:31 +01:00
objtype.h py: Add option to cache map lookup results in bytecode. 2015-01-07 21:07:23 +00:00
objzip.c py, unix: Allow to compile with -Wunused-parameter. 2015-01-20 12:47:20 +00:00
opmethods.c py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
parse.c py: Update parse.c&mpconfig.h to reflect rename of mp_lexer_show_token. 2015-02-23 21:36:05 +00:00
parse.h py: Expose compile.c:list_get as mp_parse_node_extract_list. 2015-02-13 02:29:46 +00:00
parsenum.c py: Fix printing of error message when parsing malformed integer. 2015-03-16 10:42:50 +00:00
parsenum.h py: Parse big-int/float/imag constants directly in parser. 2015-02-08 01:57:40 +00:00
parsenumbase.c py: Parse big-int/float/imag constants directly in parser. 2015-02-08 01:57:40 +00:00
parsenumbase.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
pfenv.c py: Some trivial cosmetic changes, for code style consistency. 2015-04-04 15:53:11 +01:00
pfenv.h py: Remove unnecessary and unused sgn argument from pfenv_print_mp_int. 2015-03-14 22:32:40 +00:00
pfenv_printf.c py: In pfenv_vprintf, adjust type from mp_uint_t to unsigned int. 2015-03-14 23:09:57 +00:00
py-version.sh - Let the build environment decide about the toolchain to be used, in case 2014-06-07 09:16:42 +02:00
py.mk py, compiler: Remove emit_pass1 code, using emit_bc to do its job. 2015-03-26 16:52:45 +00:00
qstr.c py: Add option to micropython.qstr_info() to dump actual qstrs. 2015-02-10 11:02:28 +00:00
qstr.h py: Some trivial cosmetic changes, for code style consistency. 2015-04-04 15:53:11 +01:00
qstrdefs.h py: Implement delete for property and descriptors. 2015-04-04 20:15:31 +01:00
repl.c py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
repl.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
runtime.c py: Add finer configuration of static funcs when not in stackless mode. 2015-04-02 22:56:58 +01:00
runtime.h py: Add finer configuration of static funcs when not in stackless mode. 2015-04-02 22:56:58 +01:00
runtime0.h py: Implement full func arg passing for native emitter. 2015-04-07 22:43:28 +01:00
scope.c py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
scope.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
sequence.c py, unix: Allow to compile with -Wunused-parameter. 2015-01-20 12:47:20 +00:00
showbc.c py: Simplify bytecode prelude when encoding closed over variables. 2015-04-07 00:08:17 +01:00
smallint.c py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
smallint.h py: Allow configurable object representation, with 2 different options. 2015-04-03 14:11:13 +01:00
stackctrl.c vm: Support strict stackless mode, with proper exception reporting. 2015-04-03 00:26:47 +03:00
stackctrl.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
stream.c py: Change vstr so that it doesn't null terminate buffer by default. 2015-01-28 23:43:01 +00:00
stream.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
unicode.c py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
unicode.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
vm.c py: Add finer configuration of static funcs when not in stackless mode. 2015-04-02 22:56:58 +01:00
vmentrytable.h py: Parse big-int/float/imag constants directly in parser. 2015-02-08 01:57:40 +00:00
vstr.c py: Change vstr_null_terminate -> vstr_null_terminated_str, returns str. 2015-01-29 13:57:23 +00:00
warning.c py: Can compile with -Wmissing-declarations and -Wmissing-prototypes. 2015-01-12 22:30:49 +00:00