circuitpython/py
Chris Angelico 64b468d873 objstrunicode: Basic implementation of unicode handling.
Squashed commit of the following:

commit 99dc21b67a895dc10d3c846bc158d27c839cee48
Author: Chris Angelico <rosuav@gmail.com>
Date:   Thu Jun 12 02:18:54 2014 +1000

    Optimize as per TODO (thanks Damien!)

commit 5bf0153ecad8348443058d449d74504fc458fe51
Author: Chris Angelico <rosuav@gmail.com>
Date:   Tue Jun 10 08:42:06 2014 +1000

    Test a default (= UTF-8) encode and decode

commit c962057ac340832c4fde60896f656a3fe3ad78a9
Merge: e2c9782 195de32
Author: Chris Angelico <rosuav@gmail.com>
Date:   Tue Jun 10 05:23:03 2014 +1000

    Merge branch 'master' into unicode, resolving conflict on py/obj.h

commit e2c9782a65eb57f481d441d40161de427e1940ba
Author: Chris Angelico <rosuav@gmail.com>
Date:   Tue Jun 10 05:05:57 2014 +1000

    More whitespace fixups

commit 086a2a0f57afbc1f731697fd5d3a0cbbb80e5418
Author: Chris Angelico <rosuav@gmail.com>
Date:   Tue Jun 10 05:04:20 2014 +1000

    Properly implement string slicing

commit 0d339a143e2b6442366145e7f3d64aada293eaa0
Author: Chris Angelico <rosuav@gmail.com>
Date:   Tue Jun 10 02:24:11 2014 +1000

    Support slicing in str_index_to_ptr, and fix a bounds error

commit 24371c7267d360e77cf5eabc2e8ce9a73d2ee0da
Author: Chris Angelico <rosuav@gmail.com>
Date:   Tue Jun 10 02:10:22 2014 +1000

    Break out index-to-pointer calculation into a function

commit 616c24ac014c3ca56008428c506034dd1bfff7a8
Author: Chris Angelico <rosuav@gmail.com>
Date:   Tue Jun 10 02:03:11 2014 +1000

    Add tests of string slicing, which currently fail

commit a24d19f676fe8cc21dad512d91b826892e162a5b
Author: Chris Angelico <rosuav@gmail.com>
Date:   Tue Jun 10 01:56:53 2014 +1000

    Change string indexing to not precalculate the charlen, and add test for neg indexing

commit 0bcc7ab89eafb2ae53195e94c9bea42a4e886b64
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sun Jun 8 22:09:17 2014 +1000

    Clean up constant qstr declarations now that charlen isn't needed

commit 5473e1a1dba2124b7b0c207f2964293cfbe80167
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sun Jun 8 07:18:42 2014 +1000

    Remove the charlen field from strings, calculating it when required

commit 5c1658ec71aefbdc88c261ce2e57dc7670cdc6ef
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sun Jun 8 07:11:27 2014 +1000

    Get rid of mp_obj_str_get_data_len() which was used in only one place

commit a019ba968b4e8daf7f3674f63c5cc400e304c509
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sun Jun 8 06:58:26 2014 +1000

    Add a unichar_charlen() function to calculate length-in-characters from length-in-bytes

commit 44b0d5cff846ba487c526ed95be1b3d1cd3d762a
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sun Jun 8 06:32:44 2014 +1000

    Use utf8_get/next_char in building up a string's repr

commit 30d1bad33f7af90f1971987c39864c8fcf3f5c21
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sun Jun 8 06:10:45 2014 +1000

    Make utf8_get_char() and utf8_next_char() actually do what their names say

commit bc990dad9afb8ec112f5e7f7f79d5ab415da0e72
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sun Jun 8 02:10:59 2014 +1000

    Revert "Add PEP 393-flags to strings and stub usage."

    This reverts commit c239f509521d1a0f9563bf9c5de0c4fb9a6a33ba.

commit f9bebb28ad52467f2f2d7a752bb033296b6c2f9b
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sat Jun 7 15:41:48 2014 +1000

    Whitespace fixes

commit 279de0c8eb3cb186914799ccc5ee94ea97f56de4
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sat Jun 7 15:28:35 2014 +1000

    Formatting/layout improvements - introduce macros for UTF-8 byte detection, add braces. No functional changes.

commit f1911f53d56da809c97b07245f5728a419e8fb30
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sat Jun 7 11:56:02 2014 +1000

    Make chr() Unicode-aware

commit f51ad737b48ac04c161197a4012821d50885c4c7
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sat Jun 7 11:44:07 2014 +1000

    Make a string's repr Unicode-aware

commit 01bd68684611585d437982dccdf05b33cbedc630
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sat Jun 7 11:33:43 2014 +1000

    Expand the Unicode tests

commit 7bc91904f899f8012089fc14a06495680a51e590
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sat Jun 7 11:27:30 2014 +1000

    Record byte lengths for byte strings

commit bb132120717cf176dcfb26f87fa309378f76ab5f
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sat Jun 7 11:25:06 2014 +1000

    Make ord() Unicode-aware

commit 03f0cbe9051b62192be97b59f84f63f9216668bf
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sat Jun 7 10:24:35 2014 +1000

    Retain characters as UTF-8 encoded Unicode

commit e924659b85c001916a5ff7f4d1d8b3ebe2bf0c2f
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sat Jun 7 08:37:27 2014 +1000

    Add support for \u and \U escapes, but not \N (with explanatory comment)

commit 231031ac5f0346e4ffcf9c4abec2bd33f566232c
Author: Chris Angelico <rosuav@gmail.com>
Date:   Sat Jun 7 05:09:35 2014 +1000

    Add character length to qstr

commit 6df1b946fb17d8d5df3d91b21cde627c3d4556a8
Author: Chris Angelico <rosuav@gmail.com>
Date:   Fri Jun 6 13:48:36 2014 +1000

    Add test of UTF-8 encoded source file resulting in properly formed string

commit 16429b81a8483cf25865ed11afd81a7d9c253c26
Author: Chris Angelico <rosuav@gmail.com>
Date:   Fri Jun 6 13:44:15 2014 +1000

    Make len(s) return character length (even though creation's still buggy)

commit cd2cf6663cc47831dbc97819ad5c50ad33f939d3
Author: Chris Angelico <rosuav@gmail.com>
Date:   Fri Jun 6 13:15:36 2014 +1000

    HACK - When indexing a qstr, count its charlen. Stupidly inefficient but POC.

    All tests pass now, though string creation is still buggy.

commit 47c234584d3358dfa6b4003d5e7264105d17b8f7
Author: Chris Angelico <rosuav@gmail.com>
Date:   Fri Jun 6 13:15:32 2014 +1000

    objstr: Record character length separately from byte length

    CAUTION: Buggy, may crash stuff - qstr needs equivalent functionality too

commit b0f41c72af27d3b361027146025877b3d7e8785c
Author: Chris Angelico <rosuav@gmail.com>
Date:   Fri Jun 6 05:37:36 2014 +1000

    Beginnings of UTF-8 support - construct strings from that many UTF-8-encoded chars, and subscript bytes the same way

commit 89452be641674601e9bfce86dc71c17c3140a6cf
Author: Chris Angelico <rosuav@gmail.com>
Date:   Fri Jun 6 05:28:47 2014 +1000

    Update comments - now aiming for UTF-8 rather than PEP 393 strings

commit c239f509521d1a0f9563bf9c5de0c4fb9a6a33ba
Author: Chris Angelico <rosuav@gmail.com>
Date:   Wed Jun 4 05:28:12 2014 +1000

    Add PEP 393-flags to strings and stub usage.

    The test suite all passes, but nothing has actually been changed.
2014-06-27 00:04:17 +03:00
..
argcheck.c Merge branch 'master' of https://github.com/micropython/micropython 2014-05-06 16:52:35 +00:00
asmthumb.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
asmthumb.h py, compiler: Improve passes; add an extra pass for native emitter. 2014-05-07 17:24:22 +01:00
asmx64.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
asmx64.h py, compiler: Improve passes; add an extra pass for native emitter. 2014-05-07 17:24:22 +01:00
bc0.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
bc.h objgenerator: First iteration of refactor to use mp_setup_code_state(). 2014-06-11 20:43:47 +03:00
binary.c binary: machine_uint_t vs uint dichotomy starts doing real damage. 2014-06-26 00:41:08 +03:00
binary.h modstruct: Fix alignment handling issues. 2014-06-25 23:34:44 +03:00
builtin.c py: Separate MICROPY_PY_BUILTINS_COMPLEX from MICROPY_PY_BUILTINS_FLOAT. 2014-06-20 18:00:23 +03:00
builtin.h unix modsocket: Make .makefile() method more compliant. 2014-05-24 21:24:37 +03:00
builtinevex.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
builtinimport.c py: Make 3 functions static. 2014-06-11 19:55:46 +01:00
builtintables.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
builtintables.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
compile.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
compile.h py: Rename BYTE_CODE to BYTECODE (this was missed in previous rename). 2014-05-12 22:35:37 +01:00
emit.h py: Fix break from within a for loop. 2014-05-30 15:20:41 +01:00
emitbc.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
emitcommon.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
emitcpy.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
emitglue.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
emitglue.h py: Remove emit_glue init and deinit. Needed only for debugging. 2014-05-12 23:11:14 +01:00
emitinlinethumb.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
emitnative.c Merge branch 'master' of github.com:micropython/micropython 2014-06-25 04:10:34 +01:00
emitpass1.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
formatfloat.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
formatfloat.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
gc.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
gc.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
grammar.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
lexer.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
lexer.h py: Instead of having "debug on" var, have "optimization level" var. 2014-06-03 12:32:59 +03:00
lexerstr.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
lexerunix.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
lexerunix.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
makeqstrdata.py Bring the C and Python compute_hash functions into consistency 2014-06-07 07:06:18 +10:00
malloc.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
map.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
misc.h py: Implement basic unicode functions. 2014-06-27 00:04:17 +03:00
mkenv.mk py, mk: Revert change where build variables set with ?=. 2014-06-07 13:14:45 +01:00
mkrules.mk mkrules.mk: Pass $(COPT) to link stage. 2014-06-20 23:49:30 +03:00
modarray.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
modcmath.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
modcollections.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
modgc.c modgc: Add mem_free()/mem_alloc() methods. 2014-06-25 14:28:11 +03:00
modio.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
modmath.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
modmicropython.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
modstruct.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
modsys.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
mpconfig.h mpconfig.h: Add MICROPY_PY_BUILTINS_STR_UNICODE. 2014-06-27 00:04:17 +03:00
mpz.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
mpz.h Rename bultins config variables to MICROPY_PY_BUILTINS_*. 2014-06-01 13:32:54 +01:00
nlr.h py: Support arm and thumb ARM ISAs, in addition to thumb2. 2014-06-22 01:40:45 +03:00
nlrsetjmp.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
nlrthumb.S py: Support arm and thumb ARM ISAs, in addition to thumb2. 2014-06-22 01:40:45 +03:00
nlrx64.S unix: Create __bss_start and _end symbols for Mach-O targets. 2014-05-12 00:13:10 +02:00
nlrx86.S Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
obj.c py: Separate MICROPY_PY_BUILTINS_COMPLEX from MICROPY_PY_BUILTINS_FLOAT. 2014-06-20 18:00:23 +03:00
obj.h objstr: Be 8-bit clean even for repr(). 2014-06-14 01:21:13 +03:00
objarray.c objstr: Be 8-bit clean even for repr(). 2014-06-14 01:21:13 +03:00
objarray.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objbool.c py: Rename MP_OBJ_NOT_SUPPORTED to MP_OBJ_NULL. 2014-05-21 19:42:43 +01:00
objboundmeth.c objboundmeth: If detailed reporting enabled, print object content. 2014-05-11 02:27:42 +03:00
objcell.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objclosure.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objcomplex.c py: Separate MICROPY_PY_BUILTINS_COMPLEX from MICROPY_PY_BUILTINS_FLOAT. 2014-06-20 18:00:23 +03:00
objdict.c objstr: Implement "%(key)s" % {} formatting for strings and dicts. 2014-06-05 20:06:15 +03:00
objenumerate.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
objexcept.c Change comments (mainly URLs) to no longer specifically say Python 3.3 2014-06-06 03:51:03 +10:00
objfilter.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objfloat.c py: Separate MICROPY_PY_BUILTINS_COMPLEX from MICROPY_PY_BUILTINS_FLOAT. 2014-06-20 18:00:23 +03:00
objfun.c py: Add portable framework to query/check C stack usage. 2014-06-27 00:03:55 +03:00
objfun.h py: Implement default keyword only args. 2014-06-07 22:01:00 +01:00
objgenerator.c objgenerator: Finish refactor to use mp_setup_code_state(). 2014-06-11 20:43:47 +03:00
objgenerator.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objgetitemiter.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objint_longlong.c Rename bultins config variables to MICROPY_PY_BUILTINS_*. 2014-06-01 13:32:54 +01:00
objint_mpz.c py: Separate MICROPY_PY_BUILTINS_COMPLEX from MICROPY_PY_BUILTINS_FLOAT. 2014-06-20 18:00:23 +03:00
objint.c objint: Fix corner case in buffer access. 2014-06-06 23:08:37 +03:00
objint.h py: More const usage. 2014-05-17 11:20:10 +03:00
objlist.c Rename bultins config variables to MICROPY_PY_BUILTINS_*. 2014-06-01 13:32:54 +01:00
objlist.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objmap.c py: More mp_identity usage. 2014-05-17 11:20:10 +03:00
objmodule.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objmodule.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objnamedtuple.c Rename configuration variables controling Python features. 2014-05-24 23:03:12 +01:00
objnone.c py: Rename MP_OBJ_NOT_SUPPORTED to MP_OBJ_NULL. 2014-05-21 19:42:43 +01:00
objobject.c py: Initial attempts to actually allow implementing __new__ in Python. 2014-05-22 00:32:00 +03:00
objproperty.c Rename bultins config variables to MICROPY_PY_BUILTINS_*. 2014-06-01 13:32:54 +01:00
objrange.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objset.c py: Add option to disable set() object (enabled by default). 2014-06-01 13:46:47 +01:00
objslice.c Rename bultins config variables to MICROPY_PY_BUILTINS_*. 2014-06-01 13:32:54 +01:00
objstr.c objstr: Refactor to work with char pointers instead of indexes. 2014-06-14 06:30:30 +03:00
objstr.h py: Slightly improve efficiency of mp_obj_new_str; rename str_new. 2014-05-25 22:34:34 +01:00
objstringio.c py: Slightly improve efficiency of mp_obj_new_str; rename str_new. 2014-05-25 22:34:34 +01:00
objstrunicode.c objstrunicode: Basic implementation of unicode handling. 2014-06-27 00:04:17 +03:00
objtuple.c py: Small changes to objstr.c, including a bug fix. 2014-06-05 18:57:38 +01:00
objtuple.h py: Rename globally-accessible tuple functions, prefix with mp_obj_. 2014-05-11 18:00:45 +01:00
objtype.c py: Implement __contains__ special method. 2014-06-10 23:07:56 +01:00
objtype.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
objzip.c py: Use mp_arg_check_num in more places. 2014-05-11 18:37:21 +01:00
opmethods.c Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
parse.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
parse.h py: Fix check of small-int overflow when parsing ints. 2014-05-28 14:51:12 +01:00
parsehelper.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
parsehelper.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
parsenum.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
parsenum.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
parsenumbase.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
parsenumbase.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
pfenv.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
pfenv.h Fix str.modulo when precision is specified. 2014-06-05 23:09:02 -07:00
py-version.sh - Let the build environment decide about the toolchain to be used, in case 2014-06-07 09:16:42 +02:00
py.mk py: Add portable framework to query/check C stack usage. 2014-06-27 00:03:55 +03:00
qstr.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
qstr.h Correct file reference (there's no qstrraw.h) 2014-06-04 03:15:46 +10:00
qstrdefs.h modgc: Add mem_free()/mem_alloc() methods. 2014-06-25 14:28:11 +03:00
repl.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
repl.h Tidy up some configuration options. 2014-05-21 20:32:59 +01:00
runtime0.h py: Fix configurability of builtin slice. 2014-06-01 13:49:35 +01:00
runtime.c py: Separate MICROPY_PY_BUILTINS_COMPLEX from MICROPY_PY_BUILTINS_FLOAT. 2014-06-20 18:00:23 +03:00
runtime.h py: Add generic mp_not_implemented() func to use instead of assert(). 2014-06-07 23:26:27 +03:00
scope.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
scope.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
sequence.c Remove unnecessary bounds check from mp_seq_get_fast_slice_indexes. 2014-06-10 03:59:55 +10:00
showbc.c showbc: Make sure it's possible to trace MAKE_FUNCTION arg to actual bytecode. 2014-06-03 01:26:51 +03:00
smallint.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00
smallint.h py: Fix check of small-int overflow when parsing ints. 2014-05-28 14:51:12 +01:00
stackctrl.c py: Add portable framework to query/check C stack usage. 2014-06-27 00:03:55 +03:00
stackctrl.h py: Add portable framework to query/check C stack usage. 2014-06-27 00:03:55 +03:00
stream.c stream: Use mp_obj_is_true() for EOF testing. 2014-06-13 23:53:10 +03:00
stream.h Add license header to (almost) all files. 2014-05-03 23:27:38 +01:00
unicode.c py: Implement basic unicode functions. 2014-06-27 00:04:17 +03:00
vm.c Merge branch 'alloca' of github.com:marcusva/micropython into marcusva-alloca 2014-06-08 13:18:14 +01:00
vmentrytable.h Fix some unused variables, and silence a clang warning about initialization override in vmentrytable.h 2014-05-12 09:06:18 +02:00
vstr.c py: Include mpconfig.h before all other includes. 2014-06-21 22:43:22 +03:00