• Internal changes, RAM and ROM reductions, new minimal port

    Ghost released this 2015-01-25 00:10:41 +00:00 | 13781 commits to master since this release

    py core:

    • lots of small optimisations, cleanups and code size reduction
    • move away from Plan 9 headers to traditional guarded ones
    • improved and optimised float to int conversion
    • fix right-shifting edge cases in mpz
    • namedtuple: use sequence of strings for init
    • namedtuple: allow keyword arguments in constructor
    • ability to issue compile/runtime warnings
    • str.format now has kwargs support
    • put all global state togther in a state structure
    • optimisation to cache map lookup results in bytecode
    • fix handling of "0" in some mpz functions
    • implement equality check for all types
    • add qstr cfg capability
    • can now configure qstr len storage; defaults to using 1 byte
    • allow code to compile with lots more warnings enabled
    • add LOAD_CONST_OBJ bytecode, to directly load Python objects
    • never intern data of large str/bytes objects
    • fix handling of default except in compiler
    • add extra pass to bytecode compiler to compute stack size
    • implement very simple frozen modules support
    • implement reversed slot
    • implement proper re-raising in native codegen's finally handler

    lib:

    • move readline code from stmhal to lib/mp-readline/
    • readline refactored to support event-driven usage
    • add frexp and modf to libm

    minimal port:

    • new port, intended to represent minimal working code

    stmhal port:

    • collect root pointers together; improves GC speed
    • add MICROPY_HW_USB_VBUS_DETECT_PIN option
    • add MICROPY_HW_USB_OTG_ID_PIN option
    • add support for FEZ Cerb40 II board
    • bug fixes in network module and usocket.accept, setsockopt

    qemu-arm port:

    • enable GC and native code-gen
    • add working tests
    • get tests running under Travis CI

    esp8266 port:

    • use dedicated heap allocated as static array
    • implement task-based, event-driven interface with UART
    • implement pyb.hard_reset()
    Downloads