A big change. Micro Python objects are allocated as individual structs with the first element being a pointer to the type information (which is itself an object). This scheme follows CPython. Much more flexible, not necessarily slower, uses same heap memory, and can allocate objects statically. Also change name prefix, from py_ to mp_ (mp for Micro Python).
20 lines
642 B
C
20 lines
642 B
C
// options to control how Micro Python is built
|
|
|
|
#define MICROPY_ENABLE_FLOAT (1)
|
|
#define MICROPY_EMIT_CPYTHON (0)
|
|
#define MICROPY_EMIT_X64 (1)
|
|
#define MICROPY_EMIT_THUMB (0)
|
|
#define MICROPY_EMIT_INLINE_THUMB (0)
|
|
|
|
// type definitions for the specific machine
|
|
|
|
#define BYTES_PER_WORD (8)
|
|
|
|
typedef int64_t machine_int_t; // must be pointer size
|
|
typedef uint64_t machine_uint_t; // must be pointer size
|
|
typedef void *machine_ptr_t; // must be of pointer size
|
|
typedef const void *machine_const_ptr_t; // must be of pointer size
|
|
typedef double machine_float_t;
|
|
|
|
machine_float_t machine_sqrt(machine_float_t x);
|