summaryrefslogtreecommitdiffstatshomepage
path: root/py
Commit message (Collapse)AuthorAge
* py: Make compiler return a proper exception on SyntaxError.Damien George2014-10-05
|
* Implement missing ARM emitter functions for viperFabian Vogt2014-10-04
|
* py: Fix unix-cpy to compile with uint->mp_uint_t changes.Damien George2014-10-03
|
* py: Change [u]int to mp_[u]int_t in qstr.[ch], and some other places.Damien George2014-10-03
| | | | This should pretty much resolve issue #50.
* py: Use UINT_FMT instead of %d.Damien George2014-10-03
|
* py: Convert [u]int to mp_[u]int_t where appropriate.Damien George2014-10-03
| | | | Addressing issue #50.
* py: Remove IOError since it's deprecated; use OSError instead.Damien George2014-09-30
| | | | | | | | | | | In CPython IOError (and EnvironmentError) is deprecated and aliased to OSError. All modules that used to raise IOError now raise OSError (or a derived exception). In Micro Python we never used IOError (except 1 place, incorrectly) and so don't need to keep it. See http://legacy.python.org/dev/peps/pep-3151/ for background.
* py: Allow x86-64 to mov r16 to rm16 with extended src reg.Damien George2014-09-29
| | | | Fixes bug with x86-64 viper ptr16.
* py: Fix viper store on x86; add tests for viper ptr16.Damien George2014-09-29
|
* py: Add casting to viper; add native mem stores to viper.Damien George2014-09-29
| | | | | | | | | | Viper can now do the following: def store(p:ptr8, c:int): p[0] = c This does a store of c to the memory pointed to by p using a machine instructions inline in the code.
* py: Implement more binary ops for viper emitter.Damien George2014-09-29
| | | | | This included a bit of restructuring of the assembler backends. Note that the ARM backend is missing a few functions and won't compile.
* py: Allow viper to use ints as direct conditionals in jumps.Damien George2014-09-29
| | | | Allows things like: if 1: ...
* py: Fix types, uint -> mp_uint_t.Damien George2014-09-29
|
* py: Make macro names in assemblers consistent, and tidy up a bit.Damien George2014-09-29
|
* py: Add store r8 and store r16 ops to asm_x86 and asm_x64.Damien George2014-09-29
|
* py: In asmthumb, clean up unit/int types and ite ops.Damien George2014-09-29
|
* Fix error: unknown type name 'size_t'bvernoux2014-09-28
|
* py: Clean up nlr*.S to make it easier to read; fix clang .bss error.Damien George2014-09-26
| | | | | | | It seems that newer versions of clang don't like the .bss directive, so we don't use it for OSX. Addressing issues #865 and #875.
* py: Simplify JSON str printing (while still conforming to JSON spec).Damien George2014-09-25
| | | | | The JSON specs are relatively flexible and allow us to use one function to print strings, be they ascii, bytes or utf-8 encoded.
* py: Tidy up exception matching; allow matching of tuple of exceptions.Damien George2014-09-25
| | | | Addresses issue #864.
* py: For malloc and vstr functions, use size_t exclusively for int type.Damien George2014-09-25
| | | | | | It seems most sensible to use size_t for measuring "number of bytes" in malloc and vstr functions (since that's what size_t is for). We don't use mp_uint_t because malloc and vstr are not Micro Python specific.
* py: Free non-interned strings in the parser when not needed.Damien George2014-09-23
| | | | | | | | | | | mp_parse_node_free now frees the memory associated with non-interned strings. And the parser calls mp_parse_node_free when discarding a non-used node (such as a doc string). Also, the compiler now frees the parse tree explicitly just before it exits (as opposed to relying on the caller to do this). Addresses issue #708 as best we can.
* py: Make native emitter handle multi-compare and not/is not/not in ops.Damien George2014-09-23
|
* stmhal: Initialise stack pointer correctly.Damien George2014-09-23
| | | | | | | | | | | | | Stack is full descending and must be 8-byte aligned. It must start off pointing to just above the last byte of RAM. Previously, stack started pointed to last byte of RAM (eg 0x2001ffff) and so was not 8-byte aligned. This caused a bug in combination with alloca. This patch also updates some debug printing code. Addresses issue #872 (among many other undiscovered issues).
* extmod: Add loads to ujson module.Damien George2014-09-21
|
* py: Add 'builtins' module.Damien George2014-09-17
|
* py: Add native json printing using existing print framework.Damien George2014-09-17
| | | | | Also add start of ujson module with dumps implemented. Enabled in unix and stmhal ports. Test passes on both.
* py: Make dict use a bit less RAM when iterating; properly del values.Damien George2014-09-17
| | | | | | | | Heap RAM was being allocated to print dicts and do some other types of iterating. Now these iterations use 1 word of state on the stack. Deleting elements from a dict was not allowing the value to be reclaimed by the GC. This is now fixed.
* py: Make asm_arm_less_op take destination register as first arg.Damien George2014-09-15
| | | | This gets ARM native emitter working againg and addresses issue #858.
* py: Move definition of mp_sys_exit to core.Damien George2014-09-15
| | | | | | | | sys.exit always raises SystemExit so doesn't need a special implementation for each port. If C exit() is really needed, use the standard os._exit function. Also initialise mp_sys_path and mp_sys_argv in teensy port.
* py: Fix build error when float disabled; add test for divmod.Damien George2014-09-13
|
* py: Implement divmod, % and proper // for floating point.Damien George2014-09-13
| | | | Tested and working on unix and pyboard.
* py: Load strings as objects when compiling viper.Damien George2014-09-12
| | | | | | | | | Eventually, viper wants to be able to use raw pointers to strings and arrays for efficient access. But for now, let's just load strings as a Python object so they can be used as normal. This will anyway be compatible with eventual intended viper behaviour. Addresses issue #857.
* py and libm: Add asinf,acosf; print higher precision for float.Damien George2014-09-11
| | | | | | Also use less stack space when printing single precision float. Addition of asinf and acosf addresses issue #851.
* py: Enable struct/binary-helper to parse q and Q sized ints.Damien George2014-09-10
| | | | Addresses issue #848.
* py: Put define of x86 argument registers in asmx86.h.Damien George2014-09-08
|
* py: Convert [u]int to mp_[u]int_t in emit.h and associated .c files.Damien George2014-09-08
| | | | Towards resolving issue #50.
* py: Print imported module's location (__file__) if available.Damien George2014-09-08
|
* Remove skeletal modselect from extmod and just put it in stmhal.Damien George2014-09-07
|
* py: Rename mp_builtin_id to mp_obj_id and make it public.Damien George2014-09-07
|
* stmhal: Implement generic select.select and select.poll.Damien George2014-09-07
|
* py: Add ioctl method to stream protocol; add initial modselect.Damien George2014-09-07
|
* py: Clean up x86-64 native assembler; allow use of extended regs.Damien George2014-09-07
| | | | Native x86-64 now has 3 locals in registers.
* py: Adjust regs for x86 so that 1 more local can live in a reg.Damien George2014-09-06
|
* py: Allow x86 native functions to take arguments.Damien George2014-09-06
| | | | Fix some bugs with x86 stack and saving registers correctly.
* py: Add support for emitting native x86 machine code.Damien George2014-09-06
|
* Merge branch 'master' of github.com:micropython/micropythonDamien George2014-09-06
|\
| * modstruct: Implement 'O', 'P', 's' types for packed structs.Paul Sokolovsky2014-09-06
| | | | | | | | This is required to deal with, well, packed C structs containing pointers.
| * py: Correctly set sys.maxsize value for 64-bit.Paul Sokolovsky2014-09-06
| | | | | | | | | | | | Type representing signed size doesn't have to be int, so use special value which defaults to SSIZE_MAX, but as it's not defined by C standard (but rather by POSIX), allow ports to set it.
* | py: Native emitter now supports delete name & global, and end finally.Damien George2014-09-06
|/