Damien
|
9ecbcfff99
|
py: work towards working closures.
|
2013-12-11 00:41:43 +00:00 |
Damien
|
318aec6ba9
|
py: emit correct id for closed over variables.
|
2013-12-10 18:28:17 +00:00 |
Damien
|
6332174ab4
|
py: compiler supports string juxtaposition=concatenation.
|
2013-12-10 17:41:49 +00:00 |
Damien
|
db4c361f1c
|
py: add skeletal import functionality.
|
2013-12-10 17:27:24 +00:00 |
Damien
|
033d17a633
|
py: built-in range now accepts variable number of arguments.
|
2013-11-28 19:22:56 +00:00 |
Damien
|
d79338969b
|
py: restrict further when for-range optimisation is done.
|
2013-11-28 19:12:18 +00:00 |
Damien
|
86c7fc7dd9
|
py: add list pop and sort, unpack_sequence, and keywords in method_call.
|
2013-11-26 15:16:41 +00:00 |
Damien
|
6f3e7fc505
|
py: add UNPACK_SEQUENCE and keyword methods to VM.
|
2013-11-26 15:15:50 +00:00 |
Damien
|
ff099f36d6
|
py: add more functionality to showbc.
|
2013-11-26 15:14:50 +00:00 |
Damien
|
d47f9d5a4f
|
py: add call to __init__ when instantiating class object.
|
2013-11-25 23:40:02 +00:00 |
Damien
|
c1075ddc8f
|
py: add some more opcodes to showbc.
|
2013-11-25 23:39:36 +00:00 |
Damien
|
f03001f8a6
|
Add function to decode and show byte code.
|
2013-11-17 13:19:33 +00:00 |
Damien
|
0446a0d76d
|
Change some debugging/output messages for native code generation.
|
2013-11-17 13:16:36 +00:00 |
Damien
|
6d4f3462c4
|
Viper: function calls now convert constant arguments to objects.
|
2013-11-16 20:44:39 +00:00 |
Damien
|
6b92d451b2
|
Add len and subscr (a hack) support for strings.
|
2013-11-09 20:13:55 +00:00 |
Damien
|
94658e2e25
|
Add JUMP_IF_x_OR_POP opcodes to VM.
|
2013-11-09 20:12:32 +00:00 |
Damien
|
f3822fc34c
|
Fix but with optimised range being 1 over.
|
2013-11-09 20:12:03 +00:00 |
Damien
|
f72fd0e875
|
Add optimisation for "for x in range".
|
2013-11-06 20:20:49 +00:00 |
Damien
|
5bf32c3b6b
|
Built-in print function supports variable number of arguments.
|
2013-11-06 17:16:35 +00:00 |
Damien
|
ae0bc08a37
|
Viper supports inplace add (trivial).
|
2013-11-06 17:11:07 +00:00 |
Damien
|
40fdfe3000
|
Improve allocation of stack for byte code.
|
2013-11-05 22:16:22 +00:00 |
Damien
|
03c9cfb015
|
Make byte code jumps relative.
|
2013-11-05 22:06:08 +00:00 |
Damien
|
6addc89e55
|
Byte code for SMALL_INT uses 3 bytes for integer.
|
2013-11-04 23:04:50 +00:00 |
Damien
|
96a0addb18
|
Fixup include of stdarg and va_list definition.
|
2013-11-03 18:30:10 +00:00 |
Damien
|
2f06c57f8a
|
Add simple var-arg functions; add simple string.format.
|
2013-11-03 18:20:56 +00:00 |
Damien
|
33af3bf028
|
Change Py API names, py_get_* -> py_obj_get_*.
|
2013-11-03 14:39:47 +00:00 |
Damien
|
9b9e996df6
|
Support for for-loop in native thumb.
|
2013-11-03 14:25:43 +00:00 |
Damien
|
1a6633a74d
|
Implement more thumb branch instructions.
|
2013-11-03 13:58:19 +00:00 |
Damien
|
d57eba51e5
|
Add user object to runtime.
|
2013-11-02 23:58:14 +00:00 |
Damien
|
6ba1314265
|
Fix bug: emit native didn't clear last_was_return in label_assign.
|
2013-11-02 20:34:54 +00:00 |
Damien
|
7410e440ab
|
Add basic complex number support.
|
2013-11-02 19:47:57 +00:00 |
Damien
|
e0b1864337
|
Small hack to temporarily fix allocation of unique_code slots.
|
2013-11-02 16:41:24 +00:00 |
Damien
|
ccfc9c51ba
|
Py runtime: list.append returns None.
|
2013-11-02 15:10:37 +00:00 |
Damien
|
4ebb32fb95
|
Implement: str.join, more float support, ROT_TWO in VM.
|
2013-11-02 14:33:10 +00:00 |
Damien
|
2839168340
|
Add py_get_array_fixed_n function.
|
2013-10-25 00:40:38 +01:00 |
Damien
|
6f08f8ce51
|
Add working MMA support.
|
2013-10-23 22:17:26 +01:00 |
Damien
|
d2c1a732e5
|
Call gc_free in gc_realloc after allocating new block.
|
2013-10-23 21:03:27 +01:00 |
Damien
|
8b3a7c2237
|
Fix func decls with no arguments: () -> (void).
|
2013-10-23 20:20:17 +01:00 |
Damien
|
9fc7933ff2
|
Add py_get_qstr.
|
2013-10-23 00:01:10 +01:00 |
Damien
|
ec63cce470
|
Add simple support for C modules.
|
2013-10-22 22:58:17 +01:00 |
Damien
|
92c06561a3
|
Improve REPL compount statement detection.
|
2013-10-22 22:32:27 +01:00 |
Damien
|
bb5316b905
|
gc: reserve first block; lexer: free vstr.
|
2013-10-22 21:12:29 +01:00 |
Damien
|
fd8b6bcf55
|
Add gc_free function to force a block to be freed.
|
2013-10-22 20:26:36 +01:00 |
Damien
|
7b2d3f38ce
|
Implement some more operators, mostly for small ints.
|
2013-10-22 16:53:02 +01:00 |
Damien
|
f086ecf57c
|
Shrink py_obj_base_t size to 4 machine words.
|
2013-10-22 16:05:11 +01:00 |
Damien
|
eefcc79022
|
Clear ATBs on gc_init; better gc_info.
|
2013-10-22 15:25:25 +01:00 |
Damien
|
dcced92c26
|
Add mark-sweep garbage collector.
|
2013-10-21 23:45:08 +01:00 |
Damien
|
fa2162bc77
|
Integrate new lexer stream with stm framework.
|
2013-10-20 17:42:00 +01:00 |
Damien
|
27fb45eb1c
|
Add local_num skeleton framework to deref/closure emit calls.
|
2013-10-20 15:07:49 +01:00 |
Damien
|
a5185f4bc8
|
Abstract out back-end stream functionality from lexer.
|
2013-10-20 14:41:27 +01:00 |
Damien
|
68f59a96e3
|
Add vstr and its functions.
|
2013-10-20 14:39:58 +01:00 |
Damien
|
df4b4f31ef
|
Make grammar rules const so the go in .text section.
|
2013-10-19 18:28:01 +01:00 |
Damien
|
4d7adce9c5
|
Remove obsolete emitthumb.c (now use emitnative.c).
|
2013-10-19 18:17:12 +01:00 |
Damien
|
1595f3257e
|
Make rt_fun_table const, so it goes in .text section.
|
2013-10-19 15:09:32 +01:00 |
Damien
|
5ac1b2efbd
|
Implement REPL.
|
2013-10-18 19:58:12 +01:00 |
Damien
|
7bbd110691
|
Remove line in emitbc.c to print code size.
|
2013-10-18 19:57:17 +01:00 |
Damien
|
3997be444c
|
Add single_input rule to grammar, for REPL.
|
2013-10-18 19:56:48 +01:00 |
Damien
|
9f770c658f
|
Fix up insertion of newline at end of lexer stream.
|
2013-10-18 19:54:31 +01:00 |
Damien
|
d2755ec538
|
Add iterators and comprehension to emitnative.
|
2013-10-16 23:58:48 +01:00 |
Damien
|
c12aa468a1
|
Add SET_ADD opcode to VM.
|
2013-10-16 20:57:49 +01:00 |
Damien
|
5fd09668b7
|
Add MAP_ADD opcode to VM.
|
2013-10-16 20:54:01 +01:00 |
Damien
|
bd25445a82
|
Implement BC & runtime support for generator/yielding.
|
2013-10-16 20:39:12 +01:00 |
Damien
|
c226dca1f7
|
Support tuples and list comprehension, albeit crude.
|
2013-10-16 16:12:52 +01:00 |
Damien
|
152568bcb6
|
NLR and Python exceptions work on the board.
|
2013-10-16 00:46:39 +01:00 |
Damien
|
c9f91976e1
|
Crude try-except working.
|
2013-10-15 23:46:01 +01:00 |
Damien
|
ce89a21ea4
|
Implement basic exception framework, and simple for loop.
|
2013-10-15 22:25:17 +01:00 |
Damien
|
3ef4abb446
|
Change ifdef/if defined to simple if's.
|
2013-10-12 16:53:13 +01:00 |
Damien
|
0efb3a1b66
|
Tidy up SMALL_INT optimisations and CPython compatibility.
|
2013-10-12 16:16:56 +01:00 |
Damien
|
3a205179ea
|
Option in compile.c to emit compatible or not with CPython.
|
2013-10-12 15:01:56 +01:00 |
Damien
|
c025ebb2dc
|
Separate out mpy core and unix version.
|
2013-10-12 14:30:21 +01:00 |
Damien
|
a56f292626
|
Remove obsolete emitx64.c (now in emitnative.c).
|
2013-10-10 23:30:29 +01:00 |
Damien
|
a1ddfcc213
|
Wrap out-native code in preprocessor declarations.
|
2013-10-10 23:25:50 +01:00 |
Damien
|
eb19efb27e
|
Simplify and improve function & method calling.
|
2013-10-10 22:06:54 +01:00 |
Damien
|
5609cca2ce
|
Rename vm.h to bc.h.
|
2013-10-10 20:00:08 +01:00 |
Damien
|
7f5dacf345
|
Implement basic class/object in native code.
|
2013-10-10 11:24:39 +01:00 |
Damien
|
a397776d6b
|
Implement basic class/object functionality in runtime.
|
2013-10-09 23:10:10 +01:00 |
Damien
|
91d387de7d
|
Improve indent/dedent error checking and reporting.
|
2013-10-09 15:09:52 +01:00 |
Damien
|
ff8ed77cc1
|
Improve push/pop and register usage for native emit.
|
2013-10-08 22:18:32 +01:00 |
Damien
|
13ed3a658d
|
Native Python and Viper support for x64 and thumb all together.
|
2013-10-08 09:05:10 +01:00 |
Damien
|
3410be8035
|
Merge viper types with standard native emitter.
|
2013-10-07 23:09:10 +01:00 |
Damien
|
acbf9a50d0
|
Rename r64->reg, i64->imm.
|
2013-10-07 21:52:14 +01:00 |
Damien
|
016f75f434
|
Add comments.
|
2013-10-07 21:22:39 +01:00 |
Damien
|
7af3d19a3c
|
Implement crude viper emit stage.
|
2013-10-07 00:02:49 +01:00 |
Damien
|
e4af64f307
|
Functions to convert values to/from inline asm.
|
2013-10-06 12:04:13 +01:00 |
Damien
|
dc83382903
|
Make runtime able to call inline asm with 1 argument.
|
2013-10-06 01:01:01 +01:00 |
Damien
|
03d4124320
|
Add b_n opcode to inline thumb asm.
|
2013-10-06 00:36:05 +01:00 |
Damien
|
b14de21fc8
|
Optimise typedargslist_name to not create a node if just an id.
|
2013-10-06 00:28:28 +01:00 |
Damien
|
a2f2f7db1f
|
Almost supports arguments for inline asm functions.
|
2013-10-06 00:14:13 +01:00 |
Damien
|
5fa5ae40be
|
Make range of small int 24 bits.
|
2013-10-06 00:13:15 +01:00 |
Damien
|
39cf3285c7
|
Oops: add emitpass1.c for new factorised emit code.
|
2013-10-05 23:18:38 +01:00 |
Damien
|
826005c60b
|
Add support for inline thumb assembly.
|
2013-10-05 23:17:28 +01:00 |
Damien
|
5bfb759980
|
Incorporate emit_thumb into new emit framework.
|
2013-10-05 18:41:24 +01:00 |
Damien
|
6cdd3af601
|
Implement built-in decorators to select emit type.
|
2013-10-05 18:08:26 +01:00 |
Damien
|
4b03e77d4a
|
Factorise EMIT_COMMON calls, mostly into emit_pass1.
|
2013-10-05 14:17:09 +01:00 |
Damien
|
054848a1b8
|
Compiler computes labels and max_num_labels.
|
2013-10-05 13:44:41 +01:00 |
Damien
|
b05d707b23
|
Further factorise PASS_1 out of specific emit code.
|
2013-10-05 13:37:10 +01:00 |
Damien
|
415eb6f850
|
Restructure emit so it goes through a method table.
|
2013-10-05 12:19:06 +01:00 |
Damien
|
492d082455
|
Use macro EMIT_COMMON for emit_common calls.
|
2013-10-04 20:35:08 +01:00 |
Damien
|
d69adc19c7
|
Small fixes to Makefile.
|
2013-10-04 20:34:47 +01:00 |
Damien
|
429d71943d
|
Initial commit.
|
2013-10-04 19:53:11 +01:00 |