summaryrefslogtreecommitdiff
path: root/py
AgeCommit message (Collapse)Author
2014-09-07stmhal: Implement generic select.select and select.poll.Damien George
2014-09-07py: Add ioctl method to stream protocol; add initial modselect.Damien George
2014-09-07py: Clean up x86-64 native assembler; allow use of extended regs.Damien George
Native x86-64 now has 3 locals in registers.
2014-09-06py: Adjust regs for x86 so that 1 more local can live in a reg.Damien George
2014-09-06py: Allow x86 native functions to take arguments.Damien George
Fix some bugs with x86 stack and saving registers correctly.
2014-09-06py: Add support for emitting native x86 machine code.Damien George
2014-09-06Merge branch 'master' of github.com:micropython/micropythonDamien George
2014-09-06py: Native emitter now supports delete name & global, and end finally.Damien George
2014-09-06modstruct: Implement 'O', 'P', 's' types for packed structs.Paul Sokolovsky
This is required to deal with, well, packed C structs containing pointers.
2014-09-06py: Correctly set sys.maxsize value for 64-bit.Paul Sokolovsky
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.
2014-09-06py: Fix definition of sys.maxsize with mpz changes.Damien George
2014-09-06py: Make mpz able to use 16 bits per digit; and 32 on 64-bit arch.Damien George
Previously, mpz was restricted to using at most 15 bits in each digit, where a digit was a uint16_t. With this patch, mpz can use all 16 bits in the uint16_t (improvement to mpn_div was required). This gives small inprovements in speed and RAM usage. It also yields savings in ROM code size because all of the digit masking operations become no-ops. Also, mpz can now use a uint32_t as the digit type, and hence use 32 bits per digit. This will give decent improvements in mpz speed on 64-bit machines. Test for big integer division added.
2014-09-05py: Convert (u)int to mp_(u)int_t in mpz, and remove unused function.Damien George
2014-09-05py: Use % str formatting instead of {} in makeqstrdata.py.Damien George
Script is equivalent, but now also runs under ancient Python 2.6. Goes part way to addressing issue #847.
2014-09-04py: Use variable length encoded uints in more places in bytecode.Damien George
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-03Code style/whitespace cleanup; remove obsolete headers.Damien George
And move the MAP_ANON redefinition from py/asmx64.c to unix/alloc.c.
2014-09-03Add cache flush in py/asmarm.c and add new MP_PLAT_ALLOC_EXEC and ↵Fabian Vogt
MP_PLAT_FREE_EXEC macros Fixes issue #840
2014-08-30py: Small simplifications in tuple and list accessors.Damien George
2014-08-30py: Change uint to mp_uint_t in runtime.h, stackctrl.h, binary.h.Damien George
Part of code cleanup, working towards resolving issue #50.
2014-08-30py: Remove use of int type in obj.h.Damien George
Part of code cleanup, working towards resolving issue #50.
2014-08-30py: Change all uint to mp_uint_t in obj.h.Damien George
Part of code cleanup, working towards resolving issue #50.
2014-08-30py: Make tuple and list use mp_int_t/mp_uint_t.Damien George
Part of code cleanup, to resolve issue #50.
2014-08-30py: Make map, dict, set use mp_int_t/mp_uint_t exclusively.Damien George
Part of code cleanup, towards resolving issue #50.
2014-08-30py: Save about 200 bytes of ROM by using smaller type for static table.Damien George
2014-08-30Change some parts of the core API to use mp_uint_t instead of uint/int.Damien George
Addressing issue #50, still some way to go yet.
2014-08-29py: Use memmove instead of memcpy when appropriate.Damien George
Found this bug by running unix/ tests with DEBUG=1 enabled when compiling.
2014-08-29py: Fix 2 bugs in native emitter: jump_or_pop and stack settling.Damien George
Addresses issue #838.
2014-08-29py: Add compiler optimisation for conditions in parenthesis.Damien George
Optimises: if () -> if False if (x,...) -> if True if (a and b) -> if a and b
2014-08-28py: Move native glue code from runtime.c to new file nativeglue.c.v1.3.1Damien George
This way, the native glue code is only compiled if native code is enabled (which makes complete sense; thanks to Paul Sokolovsky for the idea). Should fix issue #834.
2014-08-28Merge pull request #833 from Vogtinator/arm-nativeDamien George
Basic native ARM emitter
2014-08-28py, gc: Further reduce heap fragmentation with new, faster gc alloc.Damien George
The heap allocation is now exactly as it was before the "faster gc alloc" patch, but it's still nearly as fast. It is fixed by being careful to always update the "last free block" pointer whenever the heap changes (eg free or realloc). Tested on all tests by enabling EXTENSIVE_HEAP_PROFILING in py/gc.c: old and new allocator have exactly the same behaviour, just the new one is much faster.
2014-08-28py: Reduce fragmentation of GC heap.Damien George
Recent speed up of GC allocation made the GC have a fragmented heap. This patch restores "original fragmentation behaviour" whilst still retaining relatively fast allocation. This patch works because there is always going to be a single block allocated now and then, which advances the gc_last_free_atb_index pointer often enough so that the whole heap doesn't need scanning. Should address issue #836.
2014-08-28Clarify copyright on asmarm filesFabian Vogt
2014-08-27Basic native ARM emitterFabian Vogt
2014-08-27py: Improve efficiency of MP_OBJ_IS_STR_OR_BYTES.Damien George
Saves ROM (16 on stmhal, 240 on 64-bit unix) and should be quicker since there is 1 less branch.
2014-08-27Merge branch 'int-bytes' of https://github.com/dhylands/micropython into ↵Damien George
dhylands-int-bytes
2014-08-26Make int(b'123') work properly.Dave Hylands
2014-08-26py: Fix line number printing for file with 1 line.Damien George
With a file with 1 line (and an error on that line), used to show the line as number 0. Now shows it correctly as line number 1. But, when line numbers are disabled, it now prints line number 1 for any line that has an error (instead of 0 as previously). This might end up being confusing, but requires extra RAM and/or hack logic to make it print something special in the case of no line numbers.
2014-08-26py: Add dispatch for user defined ==, >, <=, >=.Damien George
Addresses issue #827.
2014-08-25stmhal: Make enable_irq and disable_irq inline functions.Damien George
These functions are generally 1 machine instruction, and are used in critical code, so makes sense to have them inline. Also leave these functions uninverted (ie 0 means enable, 1 means disable) and provide macro constants if you really need to distinguish the states. This makes for smaller code as well (combined with inlining). Applied to teensy port as well.
2014-08-25Add save/restore_irqDave Hylands
Factored irq functions into a separate file.
2014-08-24py: Consolidate min/max functions into one, and add key= argument.Damien George
Addresses issue #811.
2014-08-24py: Fix bug where GC collected native/viper/asm function data.Damien George
Because (for Thumb) a function pointer has the LSB set, pointers to dynamic functions in RAM (eg native, viper or asm functions) were not being traced by the GC. This patch is a comprehensive fix for this. Addresses issue #820.
2014-08-22py: Change hash and len members of str from 16 bit to full word.Damien George
This allows to make strings longer than 64k. It doesn't use any more RAM with current GC because a str object still fits in a GC block.
2014-08-22py: Small cleanup in stream.c.Damien George
2014-08-22py: Speed up GC allocation.Damien George
This simple patch gives a very significant speed up for memory allocation with the GC. Eg, on PYBv1.0: tests/basics/dict_del.py: 3.55 seconds -> 1.19 seconds tests/misc/rge_sm.py: 15.3 seconds -> 2.48 seconds
2014-08-16py: Code clean-up in native emitter; improve thumb native calls.Damien George
2014-08-16py: Viper can call functions with native types, and raise exceptions.Damien George
2014-08-16py: Put SystemExit in builtin namespace.Damien George
Also fix unix port so that SystemExit with no arg exits with value 0.
2014-08-15py: Viper can now store to global.Damien George