summaryrefslogtreecommitdiffstatshomepage
path: root/py/objstr.c
Commit message (Collapse)AuthorAge
* Implement proper exception type hierarchy.Damien George2014-02-15
| | | | | | | | | | | | | | 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.
* Change mp_obj_type_t.name from const char * to qstr.Damien George2014-02-15
| | | | | | 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.
* Replace global "static" -> "STATIC", to allow "analysis builds". Part 1.Paul Sokolovsky2014-02-12
| | | | | | | | 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().
* objstr: Mark few local symbols as static, cleanup codestyle.Paul Sokolovsky2014-02-11
| | | | Please don't submit patches with tab indentation!
* Make mp_obj_str_get_data return char* instead of byte*.Damien George2014-02-08
| | | | | 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.
* Fix assert() usage.Paul Sokolovsky2014-02-02
|
* Implement str/bytes rich comparisons.Paul Sokolovsky2014-02-02
|
* Factor out m_seq_get_fast_slice_indexes() fucntions as sequence helper.Paul Sokolovsky2014-02-02
| | | | | Takes slice object and sequence length and computes subsequence indexes for case of slice step=1.
* py: Tidy up BINARY_OPs; negation done by special NOT bytecode.Damien George2014-02-01
| | | | | IS_NOT and NOT_IN are now compiled to IS + NOT and IN + NOT, with a new special NOT bytecode.
* py: Make str.replace do 2 passes over the string.Damien George2014-01-31
|
* Implement str.replace and add tests for it.xbe2014-01-30
|
* Factor out quoted string print function for reuse (mp_str_print_quoted()).Paul Sokolovsky2014-01-28
|
* Implement mp_parse_node_free; print properly repr(string).Damien George2014-01-25
|
* py: Implement iterator support for object that has __getitem__.Damien George2014-01-25
| | | | Addresses Issue #203.
* Add basic implementation of bytes type, piggybacking on str.Paul Sokolovsky2014-01-24
| | | | | This reuses as much str implementation as possible, from this we can make them more separate as needed.
* py: Implement bool unary op; tidy up unary op dispatch.Damien George2014-01-23
|
* Implement simplest case of str.startswith().Paul Sokolovsky2014-01-23
|
* Second stage of qstr revamp: uPy str object can be qstr or not.Damien George2014-01-22
|
* Merge branch 'master' of github.com:micropython/micropythonDamien George2014-01-21
|\ | | | | | | | | | | | | | | | | Conflicts: py/objstr.c py/py.mk py/stream.c unix/main.c unix/socket.c
| * Implement str.split(None).Paul Sokolovsky2014-01-21
| | | | | | | | Note that splitting by explicit string is not implemented so far.
| * str: Implement proper string (instead of byte string) indexing.Paul Sokolovsky2014-01-21
| | | | | | | | Also, support negative indexes.
| * Implement string multiplication.Paul Sokolovsky2014-01-21
| |
| * objstr: More support for MP_OBJ_QSTR.Paul Sokolovsky2014-01-20
| |
* | Revamp qstrs: they now include length and hash.Damien George2014-01-21
|/ | | | | Can now have null bytes in strings. Can define ROM qstrs per port using qstrdefsport.h
* Properly print MP_OBJ_QSTR objects.Paul Sokolovsky2014-01-20
|
* Change int to uint for n_args in function with variable arguments.Damien George2014-01-19
|
* str.format: Don't assume that '}' immediately follows '{', skip insides.Paul Sokolovsky2014-01-16
| | | | | That at least makes stuff like "{:x}".format(1) to produce not completely broken output.
* Merge branch 'str-repr' of github.com:pfalcon/micropython into pfalcon-str-reprDamien George2014-01-15
|\ | | | | | | | | Conflicts: tests/basics/tests/exception1.py
| * type->print(): Distinguish str() and repr() variety by passing extra param.Paul Sokolovsky2014-01-15
|/
* Merge remote-tracking branch 'upstream/master' into containmentJohn R. Lenton2014-01-13
|\
| * Consolidate rt_make_function_[0123] to rt_make_function_n.Damien George2014-01-13
| |
| * Merge pull request #168 from dhylands/add-strstrDamien George2014-01-13
| |\ | | | | | | Added public domain implementations of strchr and strstr.
| | * Added public domain implementations of strchr and strstr.Dave Hylands2014-01-12
| | |
| * | Cleanup built-ins, and fix some compiler warnings/errors.Damien George2014-01-13
| |/
* | Merge remote-tracking branch 'upstream/master' into containmentJohn R. Lenton2014-01-13
|\|
| * Implement a basic str.find; fixes #67John R. Lenton2014-01-12
| |
* | Implemented support for `in` and `not in` operators.John R. Lenton2014-01-11
|/
* Use memcpy instead of strncpy; add usart.status to stm.Damien George2014-01-09
|
* Implement str.stripxbe2014-01-08
|
* Merge branch 'cplusplus' of https://github.com/ian-v/micropython into ↵Damien George2014-01-07
|\ | | | | | | | | | | | | ian-v-cplusplus Conflicts: py/objcomplex.c
| * Make list and str method tables statician-v2014-01-06
| |
| * Co-exist with C++ (issue #85)ian-v2014-01-06
|/
* Convert many object types structs to use C99 tagged initializer syntax.Paul Sokolovsky2014-01-05
|
* Implements str iteratorxyb2014-01-05
|
* Convert Python types to proper Python type hierarchy.Damien George2014-01-04
| | | | Now much more inline with how CPython does types.
* Split qstr into pools, and put initial pool in ROM.Damien George2014-01-04
| | | | | | | | | | | | | | | | 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).
* str slice: Trim slice indexes to be in range.Paul Sokolovsky2014-01-04
|
* Fix int -> machine_int_t; add print to slice test.Damien George2014-01-04
|
* str: Throw TypeError for invalid index type and clean up comments.Paul Sokolovsky2014-01-04
|
* slice: Allow building with MICROPY_ENABLE_SLICE=0.Paul Sokolovsky2014-01-04
|