aboutsummaryrefslogtreecommitdiff
path: root/py/objstr.c
AgeCommit message (Collapse)Author
2014-02-15Implement proper exception type hierarchy.Damien George
Each built-in exception is now a type, with base type BaseException. C exceptions are created by passing a pointer to the exception type to make an instance of. When raising an exception from the VM, an instance is created automatically if an exception type is raised (as opposed to an exception instance). Exception matching (RT_BINARY_OP_EXCEPTION_MATCH) is now proper. Handling of parse error changed to match new exceptions. mp_const_type renamed to mp_type_type for consistency.
2014-02-15Change mp_obj_type_t.name from const char * to qstr.Damien George
Ultimately all static strings should be qstr. This entry in the type structure is only used for printing error messages (to tell the type of the bad argument), and printing objects that don't supply a .print method.
2014-02-12Replace global "static" -> "STATIC", to allow "analysis builds". Part 1.Paul Sokolovsky
Some tools do not support local/static symbols (one example is GNU ld map file). Exposing all functions will allow to do detailed size comparisons, etc. Also, added bunch of statics where they were missing, and replaced few identity functions with global mp_identity().
2014-02-11objstr: Mark few local symbols as static, cleanup codestyle.Paul Sokolovsky
Please don't submit patches with tab indentation!
2014-02-08Make mp_obj_str_get_data return char* instead of byte*.Damien George
Can't decide which is better for string type, char or byte pointer. Changing to char removes a few casts. Really need to do proper unicode.
2014-02-02Fix assert() usage.Paul Sokolovsky
2014-02-02Implement str/bytes rich comparisons.Paul Sokolovsky
2014-02-02Factor out m_seq_get_fast_slice_indexes() fucntions as sequence helper.Paul Sokolovsky
Takes slice object and sequence length and computes subsequence indexes for case of slice step=1.
2014-02-01py: Tidy up BINARY_OPs; negation done by special NOT bytecode.Damien George
IS_NOT and NOT_IN are now compiled to IS + NOT and IN + NOT, with a new special NOT bytecode.
2014-01-31py: Make str.replace do 2 passes over the string.Damien George
2014-01-30Implement str.replace and add tests for it.xbe
2014-01-28Factor out quoted string print function for reuse (mp_str_print_quoted()).Paul Sokolovsky
2014-01-25Implement mp_parse_node_free; print properly repr(string).Damien George
2014-01-25py: Implement iterator support for object that has __getitem__.Damien George
Addresses Issue #203.
2014-01-24Add basic implementation of bytes type, piggybacking on str.Paul Sokolovsky
This reuses as much str implementation as possible, from this we can make them more separate as needed.
2014-01-23py: Implement bool unary op; tidy up unary op dispatch.Damien George
2014-01-23Implement simplest case of str.startswith().Paul Sokolovsky
2014-01-22Second stage of qstr revamp: uPy str object can be qstr or not.Damien George
2014-01-21Merge branch 'master' of github.com:micropython/micropythonDamien George
Conflicts: py/objstr.c py/py.mk py/stream.c unix/main.c unix/socket.c
2014-01-21Revamp qstrs: they now include length and hash.Damien George
Can now have null bytes in strings. Can define ROM qstrs per port using qstrdefsport.h
2014-01-21Implement str.split(None).Paul Sokolovsky
Note that splitting by explicit string is not implemented so far.
2014-01-21str: Implement proper string (instead of byte string) indexing.Paul Sokolovsky
Also, support negative indexes.
2014-01-21Implement string multiplication.Paul Sokolovsky
2014-01-20objstr: More support for MP_OBJ_QSTR.Paul Sokolovsky
2014-01-20Properly print MP_OBJ_QSTR objects.Paul Sokolovsky
2014-01-19Change int to uint for n_args in function with variable arguments.Damien George
2014-01-16str.format: Don't assume that '}' immediately follows '{', skip insides.Paul Sokolovsky
That at least makes stuff like "{:x}".format(1) to produce not completely broken output.
2014-01-15Merge branch 'str-repr' of github.com:pfalcon/micropython into pfalcon-str-reprDamien George
Conflicts: tests/basics/tests/exception1.py
2014-01-15type->print(): Distinguish str() and repr() variety by passing extra param.Paul Sokolovsky
2014-01-13Merge remote-tracking branch 'upstream/master' into containmentJohn R. Lenton
2014-01-13Consolidate rt_make_function_[0123] to rt_make_function_n.Damien George
2014-01-13Merge pull request #168 from dhylands/add-strstrDamien George
Added public domain implementations of strchr and strstr.
2014-01-13Cleanup built-ins, and fix some compiler warnings/errors.Damien George
2014-01-12Added public domain implementations of strchr and strstr.Dave Hylands
2014-01-13Merge remote-tracking branch 'upstream/master' into containmentJohn R. Lenton
2014-01-12Implement a basic str.find; fixes #67John R. Lenton
2014-01-11Implemented support for `in` and `not in` operators.John R. Lenton
2014-01-09Use memcpy instead of strncpy; add usart.status to stm.Damien George
2014-01-08Implement str.stripxbe
2014-01-07Merge branch 'cplusplus' of https://github.com/ian-v/micropython into ↵Damien George
ian-v-cplusplus Conflicts: py/objcomplex.c
2014-01-06Make list and str method tables statician-v
2014-01-06Co-exist with C++ (issue #85)ian-v
2014-01-05Convert many object types structs to use C99 tagged initializer syntax.Paul Sokolovsky
2014-01-05Implements str iteratorxyb
2014-01-04Convert Python types to proper Python type hierarchy.Damien George
Now much more inline with how CPython does types.
2014-01-04Split qstr into pools, and put initial pool in ROM.Damien George
Qstr's are now split into a linked-list of qstr pools. This has 2 benefits: the first pool can be in ROM (huge benefit, since we no longer use RAM for the core qstrs), and subsequent pools use m_new for the next pool instead of m_renew (thus avoiding a huge single table for all the qstrs). Still would be better to use a hash table, but this scheme takes us part of the way (eventually convert the pools to hash tables). Also fixed bug with import. Also improved the way the module code is referenced (not magic number 1 anymore).
2014-01-04str slice: Trim slice indexes to be in range.Paul Sokolovsky
2014-01-04Fix int -> machine_int_t; add print to slice test.Damien George
2014-01-04str: Throw TypeError for invalid index type and clean up comments.Paul Sokolovsky
2014-01-04slice: Allow building with MICROPY_ENABLE_SLICE=0.Paul Sokolovsky