Damien George
b534e1b9f1
py: Use variable length encoded uints in more places in bytecode.
...
Code-info size, block name, source name, n_state and n_exc_stack now use
variable length encoded uints. This saves 7-9 bytes per bytecode
function for most functions.
2014-09-04 14:44:01 +01:00
Damien George
ecc88e949c
Change some parts of the core API to use mp_uint_t instead of uint/int.
...
Addressing issue #50 , still some way to go yet.
2014-08-30 00:35:11 +01:00
Damien George
40f3c02682
Rename machine_(u)int_t to mp_(u)int_t.
...
See discussion in issue #50 .
2014-07-03 13:25:24 +01:00
Paul Sokolovsky
5f4a667ea4
objgenerator: Finish refactor to use mp_setup_code_state().
2014-06-11 20:43:47 +03:00
Paul Sokolovsky
f77d0c5bb3
objgenerator: First iteration of refactor to use mp_setup_code_state().
2014-06-11 20:43:47 +03:00
Damien George
aabd83ea20
py: Merge mp_execute_bytecode into fun_bc_call.
...
This reduces stack usage by 16 words (64 bytes) for stmhal/ port.
See issue #640 .
2014-06-07 14:16:08 +01:00
Paul Sokolovsky
b4ebad3310
vm: Factor out structure with code execution state and pass it around.
...
This improves stack usage in callers to mp_execute_bytecode2, and is step
forward towards unifying execution interface for function and generators
(which is important because generators don't even support full forms
of arguments passing (keywords, etc.)).
2014-05-31 18:22:01 +03:00
Paul Sokolovsky
1f07b7e3c3
py: Reformat few long functions argument lists for clarity.
2014-05-31 03:36:37 +03:00
Paul Sokolovsky
bf27140193
py: More mp_identity usage.
2014-05-17 11:20:10 +03:00
Paul Sokolovsky
da9f0924ef
py, unix: Add copyright for modules I worked closely on.
2014-05-13 18:41:25 +03:00
Damien George
3417bc2f25
py: Rename byte_code to bytecode everywhere.
...
bytecode is the more widely used. See issue #590 .
2014-05-10 10:36:38 +01:00
stijn
912ca7701d
py: Comment exc_state member from mp_obj_gen_instance_t as it gives trouble
...
...to some compilers who can't process 2 zero-sized arrays in structs. It's
never referenced directly anyway.
See disussion on #568 as well.
2014-05-05 22:56:27 +03:00
Damien George
04b9147e15
Add license header to (almost) all files.
...
Blanket wide to all .c and .h files. Some files originating from ST are
difficult to deal with (license wise) so it was left out of those.
Also merged modpyb.h, modos.h, modstm.h and modtime.h in stmhal/.
2014-05-03 23:27:38 +01:00
Paul Sokolovsky
f54bcbf099
py, unix: Make "mpconfig.h" be first included, as other headers depend on it.
...
Specifically, nlr.h does.
2014-05-02 17:48:40 +03:00
Paul Sokolovsky
c3103b55c1
objgenerator: .print(): Output real underlying function name.
2014-05-01 23:22:11 +03:00
Damien George
ea8d06c39d
py: Add MP_OBJ_STOP_ITERATION and make good use of it.
...
Also make consistent use of MP_OBJ_NOT_SUPPORTED and MP_OBJ_NULL.
This helps a lot in debugging and understanding of function API.
2014-04-17 23:19:36 +01:00
Damien George
de7c425139
py: Simplify objfun/objgenerator connection, no need to call bc_get.
2014-04-17 19:16:11 +01:00
Paul Sokolovsky
b7e90ea078
objgenerator: Generator must execute in its defining lexical context.
...
I.e. with its own globals. So, just as for functions, we need to switch
globals when resuming a generator.
2014-04-17 20:27:00 +03:00
Damien George
d99944acdd
py: Clear state to MP_OBJ_NULL before executing byte code.
2014-04-09 19:53:31 +01:00
Damien George
13d6739cc7
py: Generators can have their locals closed over.
2014-04-09 19:01:45 +01:00
Damien George
ea13f407a3
py: Change nlr_jump to nlr_raise, to aid in debugging.
...
This does not affect code size or performance when debugging turned off.
To address issue #420 .
2014-04-05 18:32:08 +01:00
Paul Sokolovsky
817e76a1a5
objgenerator.throw(GeneratorExit) is not equivalent to .close().
...
.throw() propagates any exceptions, and .close() swallows them. Yielding
in reponse to .throw(GeneratorExit) is still fatal, and we need to
handle it for .throw() case separately (previously it was handled only
for .close() case).
Obscure corner cases due to test_pep380.py.
2014-03-31 17:22:37 +03:00
Paul Sokolovsky
1eac05d541
objgenerator: Another obscure case of propagating MP_OBJ_NULL optimization.
2014-03-31 17:22:37 +03:00
Damien George
0997af932f
py: Don't wrap necessary function calls in assert.
2014-03-30 21:55:28 +01:00
Damien George
0aa4379543
Merge pull request #399 from pfalcon/gen-defargs
...
objgenerator: Handle default args to generator functions.
2014-03-30 21:51:49 +01:00