Commit Graph

170 Commits

Author SHA1 Message Date
Damien George eb7bfcb286 Split qstr into pools, and put initial pool in ROM.
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-04 15:57:35 +00:00
Damien George e67ed5d285 Improve configurability for native x64/thumb emitter.
With MICROPY_EMIT_X64 and MICROPY_EMIT_THUMB disabled, the respective
emitters and assemblers will not be included in the code.  This can
significantly reduce binary size for unix version.
2014-01-04 13:55:24 +00:00
Damien George 0be78d44e5 Merge pull request #64 from pfalcon/str-slice-range-check
str slice: Trim slice indexes to be in range.
2014-01-04 04:28:57 -08:00
Damien George 597bb2f249 Merge pull request #60 from chipaca/list_copy
Implemented list.copy. Fixes issue #54.
2014-01-04 04:25:46 -08:00
Paul Sokolovsky 6ee1e383d6 str slice: Trim slice indexes to be in range. 2014-01-04 03:55:37 +02:00
Damien George c8d1384fc0 Fix int -> machine_int_t; add print to slice test. 2014-01-04 01:06:10 +00:00
Damien George b95d90b2f3 Merge pull request #59 from pfalcon/slice
Implement basic slice object and string slicing
2014-01-03 17:03:19 -08:00
Damien George 9ba9589ef7 Merge pull request #58 from chipaca/list_clear
Added list.clear. Fixes issue #53.
2014-01-03 16:54:30 -08:00
Paul Sokolovsky f8b9d3c41a str: Throw TypeError for invalid index type and clean up comments. 2014-01-04 02:35:49 +02:00
Paul Sokolovsky e606cb6561 slice: Allow building with MICROPY_ENABLE_SLICE=0. 2014-01-04 02:35:49 +02:00
Paul Sokolovsky decad08ef5 str: Handle non-positive slice indexes. 2014-01-04 02:35:48 +02:00
Paul Sokolovsky 59800afae9 slice: Implement special handling of omitted start/stop indexes. 2014-01-04 02:35:48 +02:00
Paul Sokolovsky cd22627f78 Enable slice support in config. 2014-01-04 02:35:48 +02:00
Paul Sokolovsky 31ba60f836 str: Initial implementation of string slicing.
Only step=1 and non-negative indexes are supported so far.
2014-01-04 02:35:48 +02:00
Paul Sokolovsky ded0a1efa5 Implement BUILD_SLICE opcode (2-arg version). 2014-01-04 02:35:48 +02:00
Paul Sokolovsky 1c6de11f77 Add basic implementation of slice object.
So far, only start and stop integer indexes are supported. Step is
not supported, as well as objects of arbitrary types.
2014-01-04 02:35:48 +02:00
Damien George 98adccf7ac Merge pull request #52 from chipaca/master
Tweaks to list.pop.
2014-01-03 16:22:19 -08:00
Paul Sokolovsky c90c0f68a2 Move INT_FMT, etc. declaration into global mpconfig.h .
This in particular makes it available for stm port.
2014-01-04 01:57:00 +02:00
John R. Lenton 26c211648b Implemented list.copy. Fixes issue #54. 2014-01-03 23:42:17 +00:00
John R. Lenton 069ded9514 Added list.clear. Fixes issue #53. 2014-01-03 23:22:53 +00:00
John R. Lenton 97334c85d0 Merge remote-tracking branch 'upstream/master' 2014-01-03 22:55:16 +00:00
John R. Lenton 25f417c08c Worked on list.pop:
* Fixes issue #51
* Adds a specific error message for when you try to pop an empty list.
* Releases some memory if the list has shurnk a lot.
2014-01-03 22:53:18 +00:00
Paul Sokolovsky b372bfca21 Rename default config file to mpconfig.h, and port's to mpconfigport.h.
mpconfig.h will automatically pull mpconfigport.h.
2014-01-03 19:03:11 +02:00
Paul Sokolovsky ef18102b9e Make it possible to turn off collecting memory stats (MICROPY_MEM_STATS). 2014-01-03 18:55:24 +02:00
Paul Sokolovsky 780f555b2e Add new alloc metric: peak_bytes_allocated.
This is just max value of current_bytes_allocated seen.
2014-01-03 18:55:23 +02:00
Paul Sokolovsky 02de0c57d2 Add new alloc metric: current_bytes_allocated.
Unlike total_bytes_allocated, this tracks m_free()'s too.
2014-01-03 18:55:23 +02:00
Paul Sokolovsky 43f1c8080a m_realloc: Account only allocation size difference in total_bytes_allocated. 2014-01-03 18:55:23 +02:00
Damien George 4b57fac1c8 Merge pull request #43 from chipaca/master
Implement list addition.
2014-01-03 07:11:42 -08:00
Damien George 1fb031744f Change mp_compile so that it returns a function object for the module. 2014-01-03 14:22:03 +00:00
Damien George 14f945c2ca Add note about implementing inplace operators. 2014-01-03 14:09:31 +00:00
Damien George 66028ab6dc Basic implementation of import.
import works for simple cases.  Still work to do on finding the right
script, and setting globals/locals correctly when running an imported
function.
2014-01-03 14:03:48 +00:00
John R. Lenton 9bc56d933f Changed to use memcpy. 2014-01-03 10:13:38 +00:00
John R. Lenton aeb16c36b0 Add a bit of whitespace. 2014-01-03 02:36:35 +00:00
John R. Lenton 81ad89c46e untabified 2014-01-03 02:32:40 +00:00
John R. Lenton 4cb80582c4 Add list addition (fixes: #39) 2014-01-03 02:27:08 +00:00
Damien George aae7847508 Change old use of module creation to new proper use. 2014-01-03 00:10:22 +00:00
Damien George 2870862601 Add module object, to be used eventually for import. 2014-01-02 21:30:26 +00:00
Damien George 0ff883904a py: Fix generator where state array was incorrectly indexed.
Generator objects now allocate the object and the state in one malloc.
This improvement fixes Issue #38.
2014-01-02 20:57:05 +00:00
Damien George ebd2e8702d py: __MACH__ also uses MAP_ANON. 2014-01-02 20:28:12 +00:00
Damien George 66327006fc py: change negative array indices with array - 1. 2014-01-02 18:20:41 +00:00
Damien George 27bf5b829b py: Add more bytecodes to showbc.c. 2014-01-02 18:15:33 +00:00
Paul Sokolovsky bdf822b3d8 Add quick impl for MP_BC_LOAD_CONST_BYTES which just creates qstr so far.
This is based on the fact that qstr so far behaves more like byte string
than like Unicode string (for example, "012"[0] returns 48 (int)).
2014-01-02 18:51:19 +02:00
Damien George fe8fb9165c py: remove depedence on strcat and stpcpy.
This fixes Issue #29, and means the core is no longer dependent on
string functions, except strlen.
2014-01-02 16:36:09 +00:00
Damien George 40563d56bd py: Add framework for built-in "type()" function. 2014-01-02 16:01:17 +00:00
Edd Barrett 67ab5ee779 On OpenBSD MAP_ANONYMOUS is called MAP_ANON. 2014-01-01 23:16:27 +00:00
Damien George df884fe4cc py: change declaration of mp_map_t in obj.h (for issue #24). 2014-01-01 21:27:43 +00:00
Damien George 209d1b1835 py: add int() and float() built-ins, partially implemented. 2014-01-01 17:03:35 +00:00
Damien George 83c437cb0d Merge pull request #12 from pfalcon/minor-fixes
Minor fixes
2013-12-30 14:43:21 -08:00
Damien George 6baf76e28b py: make closures work. 2013-12-30 22:32:17 +00:00
Paul Sokolovsky 2efbc622cb Typo fix in comment. 2013-12-30 21:03:41 +02:00