Paul Sokolovsky
899c69f94c
compile_for_stmt_optimised_range(): Properly handle negative & unknown steps.
...
If step is not constant, in first approximation, we can't apply optimization,
(well, we could, but need a special case for this).
2014-01-11 01:00:21 +02:00
Paul Sokolovsky
5388a3c29a
Crude attempt to implement RAISE_VARARGS (with args=1 so far only).
2014-01-11 00:55:08 +02:00
Paul Sokolovsky
074d3b5f86
list: Implement list multiplication.
2014-01-11 00:49:19 +02:00
Paul Sokolovsky
bab5cfb34f
Unsupported operand types for binary operator: dump both args' types.
2014-01-11 00:14:48 +02:00
Paul Sokolovsky
d6f27fe317
mp_obj_equal(): Print which types' equality not implemented before assert().
2014-01-11 00:14:33 +02:00
Paul Sokolovsky
e06edce786
mp_repl_is_compound_stmt(): Thinko fix s/true/try/.
2014-01-11 00:12:06 +02:00
Paul Sokolovsky
4b919d0135
Dump few more bytecodes (based on attempt to run real-world code).
2014-01-11 00:10:49 +02:00
John R. Lenton
4bee76ebca
Added dict.fromkeys. Are we done with dict and #99 yet? I do think we are.
2014-01-10 11:25:03 +00:00
John R. Lenton
9ec3a87189
dict views now, refactoring later.
2014-01-10 01:00:20 +00:00
Damien George
2d45429122
Use memcpy instead of strncpy; add usart.status to stm.
2014-01-09 22:04:45 +00:00
Damien George
be842973b0
Merge pull request #123 from xbe/master
...
Implement str.strip
2014-01-09 13:55:55 -08:00
Damien George
004cdcebfe
py: Implement base class lookup, issubclass, isinstance.
2014-01-09 21:43:51 +00:00
Damien George
062478e66d
Improved type/class/instance code; mp_obj_type_t now has load_attr, store_attr.
...
Creating of classes (types) and instances is much more like CPython now.
You can use "type('name', (), {...})" to create classes.
2014-01-09 20:57:50 +00:00
xbe
7b0f39f318
Implement str.strip
2014-01-08 14:23:45 -08:00
Damien George
1143e5e72a
Merge pull request #120 from dhylands/make-build-quieter
...
Make build output quieter.
2014-01-08 10:52:32 -08:00
Damien George
93a9b5b64d
py: Proper framework for built-in 'type'.
2014-01-08 18:48:12 +00:00
Dave Hylands
4646801181
Make build output quieter.
...
Use make V=1e make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
This should fix issue #117
2014-01-08 10:30:06 -08:00
Damien George
6c73ca1e75
py: add variable argument exception constructor function.
...
Addresses issue #104 .
2014-01-08 18:11:23 +00:00
Damien George
199b9e04eb
Merge pull request #114 from pfalcon/streams-bootstrap
...
Define buffer and stream protocols, and other starting bits of io.* framework, with io.FileIO-like implementation for Unix
2014-01-08 09:50:15 -08:00
Damien George
38a2da68c2
py: Stuff qstr in object pointer; keys for mp_map_t are now always mp_obj_t.
2014-01-08 17:33:12 +00:00
Paul Sokolovsky
e98cf40c34
Add generic implementations of Python read()/write methods for streams.
...
These can be used for any object which implements stream protocol
(mp_stream_p_t).
2014-01-08 17:38:38 +02:00
Paul Sokolovsky
5b15daf6d1
Add support for stream and buffer protocols.
...
Stream protocol is abstraction of serial I/O. Buffer protocol is
abstraction of random-access I/O. These protocols are defined down
to C level, to allow generic, while still efficient algorithms
to be coded in C (like, buffered transfer between 2 stream objects,
saving/loading of buffer object to/from stream, etc). (Note that CPython
define buffer protocol on C level, but apparently not stream protocol).
2014-01-08 17:38:38 +02:00
Damien George
9193f89296
Move lexerstr to main py directory (everyone uses it).
2014-01-08 15:28:26 +00:00
Damien George
b97669ab94
py: Improve __build_class__.
2014-01-08 11:47:55 +00:00
Damien George
6d6bc9efc1
Merge pull request #108 from chipaca/dict_feats
...
Dictionary features that don't involve views or classmethods. First part of issue #99 .
2014-01-07 15:42:16 -08:00
Damien George
dfc0bac086
py: Small big fix to type declarations.
2014-01-07 23:18:54 +00:00
John R. Lenton
baa665406f
Moved dict methods out to a mp_method_t.
2014-01-07 23:18:25 +00:00
John R. Lenton
9c83ec0eda
Merge remote-tracking branch 'upstream/master' into dict_feats
2014-01-07 23:06:46 +00:00
John R. Lenton
88f3043e0a
added a first pass of dict.update
2014-01-07 22:51:08 +00:00
Damien George
1a9951d5aa
py: Fix up number operations and coercion.
2014-01-07 22:51:08 +00:00
John R. Lenton
be8fe5be2e
Added dict.setdefault
2014-01-07 22:51:08 +00:00
John R. Lenton
f77dce8a5d
Added dict.popitem
2014-01-07 22:51:08 +00:00
John R. Lenton
0fcbaa442f
implemented dict.pop
2014-01-07 22:51:08 +00:00
John R. Lenton
cd0887352d
Added dict.get.
2014-01-07 22:51:08 +00:00
John R. Lenton
d90b19eca5
Added dict.copy
2014-01-07 22:51:08 +00:00
John R. Lenton
7d21d516d2
make dict_len use the map's used count
2014-01-07 22:51:08 +00:00
John R. Lenton
4ce6ceadca
Added dict.clear.
...
Added 0 to the list of primes. Funky primes, these.
2014-01-07 22:51:08 +00:00
John R. Lenton
a41fe31322
Added dict iterator.
2014-01-07 22:51:08 +00:00
Paul Sokolovsky
24507aff7d
Typo fix in comment.
2014-01-07 22:51:08 +00:00
Paul Sokolovsky
af61a1a492
Use constructor to create small int (avoid exposing mp_obj_t internals to VM).
2014-01-07 22:51:08 +00:00
Damien George
777575712b
Merge pull request #105 from chipaca/listsort
...
A more python-style list.sort. And keyword arguments.
2014-01-07 14:49:22 -08:00
Paul Sokolovsky
1e40840b3b
Add OSError, Python 3.3 generic I/O exception.
2014-01-07 20:16:54 +02:00
John R. Lenton
3391e19068
A bit of stylistic cleanup (chose the wrong side during conflict resolution).
2014-01-07 18:06:34 +00:00
John R. Lenton
270112f731
Merge remote-tracking branch 'upstream/master' into listsort. Lots of conflict fun.
...
Conflicts:
py/obj.h
py/objbool.c
py/objboundmeth.c
py/objcell.c
py/objclass.c
py/objclosure.c
py/objcomplex.c
py/objdict.c
py/objexcept.c
py/objfun.c
py/objgenerator.c
py/objinstance.c
py/objmodule.c
py/objrange.c
py/objset.c
py/objslice.c
2014-01-07 18:01:08 +00:00
John R. Lenton
c06763a020
This implements a better (more python-conformant) list.sort.
...
It's not really about that, though; it's about me figuring out a sane
way forward for keyword-argument functions (and function
metadata). But it's useful as is, and shouldn't break any existing
code, so here you have it; I'm going to park it in my mind for a bit
while sorting out the rest of the dict branch.
2014-01-07 17:29:16 +00:00
Damien George
7b21c2d8f0
py: Fix allocation of unique code blocks.
2014-01-07 16:54:58 +00:00
Damien George
97209d38e1
Merge branch 'cplusplus' of https://github.com/ian-v/micropython into ian-v-cplusplus
...
Conflicts:
py/objcomplex.c
2014-01-07 15:58:30 +00:00
Damien George
d3ebe4829d
Factor and simplify Makefile's and mpconfig, part 2.
2014-01-07 15:20:33 +00:00
Damien George
136f67523b
Factor and simplify Makefile's and mpconfig.
2014-01-07 14:54:15 +00:00
ian-v
a5a01df81d
Make list and str method tables static
2014-01-06 14:14:11 -08:00
Damien George
8b1b59c28e
Merge branch 'master' of github.com:dpgeorge/micropython
2014-01-06 22:13:45 +00:00
Damien George
e2e3d11e87
py: Fix up number operations and coercion.
2014-01-06 22:13:00 +00:00
ian-v
5fd8fd2c16
Revert MP_BOOL, etc. and use <stdbool.h> instead
2014-01-06 13:51:53 -08:00
ian-v
7a16fadbf8
Co-exist with C++ (issue #85 )
2014-01-06 09:52:29 -08:00
Paul Sokolovsky
fe039b4f4f
Typo fix in comment.
2014-01-06 17:54:34 +02:00
Paul Sokolovsky
e5ee1693ad
Use constructor to create small int (avoid exposing mp_obj_t internals to VM).
2014-01-06 17:54:16 +02:00
John R. Lenton
a10dba7509
Merge remote-tracking branch 'upstream/master' into list_reverse
2014-01-06 00:08:21 +00:00
Damien George
8137b004b0
Merge branch 'list_remove' of git://github.com/chipaca/micropython into chipaca-list_remove
2014-01-05 23:58:49 +00:00
Damien George
aa35fc60d7
Merge pull request #92 from chipaca/list_insert
...
List insert. Fixes issue #61 .
2014-01-05 15:59:00 -08:00
Damien George
17f4497d6d
Merge pull request #91 from chipaca/list_index
...
Fix off-by-one in non-default values of index's 2nd and 3rd arguments.
2014-01-05 15:55:55 -08:00
Damien George
73595feb75
Merge pull request #89 from pfalcon/c99-tagged-structs
...
Convert many object types structs to use C99 tagged initializer syntax.
2014-01-05 15:54:51 -08:00
John R. Lenton
ba3f87c947
Merge remote-tracking branch 'upstream/master' into list_reverse
2014-01-05 22:29:03 +00:00
John R. Lenton
d52a0318ce
Merge remote-tracking branch 'upstream/master' into list_remove
2014-01-05 22:27:11 +00:00
John R. Lenton
8428b8f3c9
Merge remote-tracking branch 'upstream/master' into list_insert
2014-01-05 22:11:01 +00:00
John R. Lenton
c553162ebc
Fix off-by-one in non-default values of index's 2nd and 3rd arguments.
2014-01-05 21:57:27 +00:00
Paul Sokolovsky
860ffb0a43
Convert many object types structs to use C99 tagged initializer syntax.
2014-01-05 22:34:09 +02:00
Dave Hylands
d986b582c0
Make qstr_init reinitialize last_pool.
...
This causes the pool to get reinitialized properly on a soft-reset.
2014-01-05 12:08:55 -08:00
Damien George
1703597c0b
Merge pull request #80 from xyb/striter
...
Implements str iterator
2014-01-05 05:53:31 -08:00
Damien George
f0691f4ed5
Fix qstr in objlist.c; add more tests for list.index.
...
list.index fails on an edge case.
2014-01-05 13:44:06 +00:00
xyb
8cfc9f07b9
Implements str iterator
2014-01-05 18:47:51 +08:00
John R. Lenton
7e73a8fd09
Merge remote-tracking branch 'upstream/master' into list_index
2014-01-05 01:57:54 +00:00
Damien George
45b43c21c4
Oops: add objint.c
2014-01-05 01:50:45 +00:00
Damien George
a494b29c73
Merge pull request #73 from mikaeleiman/apple-clang-fixes
...
Apple clang fixes
2014-01-04 12:29:34 -08:00
Damien George
71c5181a8d
Convert Python types to proper Python type hierarchy.
...
Now much more inline with how CPython does types.
2014-01-04 20:21:15 +00:00
Mikael Eiman
d67091371d
OSX: fixes to make nlrx64.S with Apple's clang (switched to Apple-specific define instead of __llvm__)
2014-01-04 20:27:13 +01:00
Mikael Eiman
f53cdd947c
OSX: fixes to make nlrx64.S with Apple's clang (forgot a few places)
2014-01-04 20:19:19 +01:00
Mikael Eiman
5d02e2d6fa
OSX: fixes to make nlrx64.S with Apple's clang
2014-01-04 20:15:04 +01:00
Damien George
e9906ac3d7
Add ellipsis object.
2014-01-04 18:44:46 +00:00
Damien George
4d4bc9533e
Merge pull request #70 from chipaca/list_count
...
Implements list.count. Fixes isue #55 .
2014-01-04 10:09:40 -08:00
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
John R. Lenton
505dd00f07
Merge remote-tracking branch 'upstream/master' into list_count
2014-01-04 14:16:24 +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
John R. Lenton
ff9a24f6f7
Merge remote-tracking branch 'upstream/master' into list_count
2014-01-04 12:52:07 +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
John R. Lenton
6e1e98f864
Implements list.reverse; fixes issue #66
2014-01-04 02:10:29 +00:00
John R. Lenton
49fb6e53b3
Implements list.remove (in terms of list.index and list.pop).
...
Fixes issue #63 .
2014-01-04 01:56:53 +00:00
Paul Sokolovsky
6ee1e383d6
str slice: Trim slice indexes to be in range.
2014-01-04 03:55:37 +02:00
John R. Lenton
f1c6ad46af
Merge remote-tracking branch 'upstream/master' into list_insert
2014-01-04 01:36:10 +00:00
John R. Lenton
a58cf679ee
Merge remote-tracking branch 'upstream/master' into list_count
2014-01-04 01:28:40 +00:00
John R. Lenton
45a8744617
Implements list.insert. Fixes issue #61 .
2014-01-04 01:15:01 +00: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
John R. Lenton
5d4a821339
Implements list.index. Fixes issue #57 .
2014-01-04 00:26:30 +00:00
Damien George
98adccf7ac
Merge pull request #52 from chipaca/master
...
Tweaks to list.pop.
2014-01-03 16:22:19 -08:00
John R. Lenton
e241e8c169
Implemented list.count
2014-01-03 23:57:28 +00: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
Damien George
8cc96a35e5
Put unicode functions in unicode.c, and tidy their names.
2013-12-30 18:23:50 +00:00
Damien George
212c296c0b
Make unix-cpy cross platform; remove dependency of asmx64 on mpconfig.
2013-12-30 12:52:32 +00:00
Damien George
cd340c44c2
Merge branch 'cross-plat' of https://github.com/pfalcon/micropython into pfalcon-cross-plat
2013-12-30 12:08:18 +00:00
Paul Sokolovsky
e85c38992d
Make "unix" target be crossplatform and support x86, x64, ARM hosts.
2013-12-30 03:38:32 +02:00
Damien
dae7eb7226
py: add dict length function, and fix rt_store_set.
2013-12-29 22:32:51 +00:00
Damien
732407f1bf
Change memory allocation API to require size for free and realloc.
2013-12-29 19:33:23 +00:00
Damien
02a7c41e76
py: implement POP_BLOCK in VM.
2013-12-29 18:48:37 +00:00
Paul Sokolovsky
44d0f3cfa2
Handle return value of read() call.
2013-12-29 20:11:05 +02:00
Damien
de690d128b
Add unix-cpy, used to test Micro Python byte code against CPython.
2013-12-29 18:01:01 +00:00
Damien
b86e3f9293
py: implement some basic exception matching.
2013-12-29 17:17:43 +00:00
Damien
8f9e2ee157
Add code in VM to handle nested exceptions correctly.
2013-12-29 16:54:59 +00:00
Damien
dd12d1378f
Parse upper-case hex numbers correctly.
2013-12-29 13:03:49 +00:00