Paul Sokolovsky
9953ca432b
Add unbuffered readline() implementation for Raw I/O files.
2014-01-15 23:43:25 +02:00
Damien George
e2fb2baaa4
Implement repr.
2014-01-15 21:40:48 +00:00
Damien George
9528cd66d7
Convert parse errors to exceptions.
...
Parser no longer prints an error, but instead returns an exception ID
and message.
2014-01-15 21:23:31 +00:00
xyb
3e4ed25138
add more tests and remove debug code
2014-01-15 20:37:17 +08:00
xyb
3270fb4be6
int() test passed
2014-01-15 19:58:11 +08:00
John R. Lenton
fca456bc3c
added filter()
2014-01-15 01:37:08 +00:00
John R. Lenton
39b174e00a
Added map
2014-01-15 01:10:09 +00:00
Paul Sokolovsky
36c4499d36
Implement str() and repr() builtin functions.
2014-01-15 02:15:47 +02:00
Paul Sokolovsky
76d982ef34
type->print(): Distinguish str() and repr() variety by passing extra param.
2014-01-15 02:15:38 +02:00
John R. Lenton
ff8007c7d6
Merge remote-tracking branch 'upstream/master' into builtins
2014-01-14 23:58:05 +00:00
John R. Lenton
9daa78943e
added enumerate()
2014-01-14 23:55:01 +00:00
Damien George
11cc694aa0
Merge pull request #173 from pfalcon/file-readall
...
Generic implementation if stream readall() method, immediately reused in unix io.FileIO implementation
2014-01-14 15:35:50 -08:00
Damien George
39eab8de96
Merge pull request #161 from pfalcon/exc-more-pythonic
...
Move towards Python-compliant interface of exceptions
2014-01-14 15:27:59 -08:00
Damien George
66a5bf681d
Merge pull request #142 from chipaca/containment
...
Implemented support for `in` and `not in` operators.
2014-01-14 15:23:09 -08:00
Damien George
0f59203e37
Tidy up.
2014-01-14 23:18:35 +00:00
Damien George
6c2401e935
Merge pull request #165 from chipaca/builtins
...
added zip()
2014-01-14 15:13:40 -08:00
Paul Sokolovsky
8bc96471f0
Implement "is" and "is not" operators.
...
So far, don't work for strings as expected.
2014-01-15 00:32:09 +02:00
Paul Sokolovsky
ddf2178d83
Refactor exception objects to have better impl of Python-side interface.
...
This implements internal args tuple of arguments, while still keeping
object useful for reporting C-side errors.
Further elaboration is needed.
2014-01-15 00:03:23 +02:00
Paul Sokolovsky
8eec8bcad9
Add objtuple.h to allow embedding of tuples inside other objects.
...
This is useful because tuple is closest analog of C static array.
2014-01-14 23:59:18 +02:00
xyb
82e61bdc24
support int(str, basbase)
2014-01-14 22:43:18 +08:00
xyb
c178ea471e
Implemented int(str) in UNIX
2014-01-14 21:39:05 +08:00
John R. Lenton
93451002f0
Merge remote-tracking branch 'upstream/master' into builtins
...
Conflicts:
py/builtin.c
py/builtin.h
py/runtime.c
2014-01-13 23:14:35 +00:00
John R. Lenton
f5a0a7d2b3
Merge remote-tracking branch 'upstream/master' into containment
2014-01-13 23:09:04 +00:00
Paul Sokolovsky
5225450b9f
Add generic impl of stream .readall() method. Use one for unix io.FileIO.
2014-01-13 23:31:06 +02:00
Paul Sokolovsky
5d2499c638
Add "buffer management" and "shrink" API calls to vstr.
...
vstr is initially intended to deal with arbitrary-length strings. By
providing a bit lower-level API calls, it will be also useful to deal
with arbitrary-length I/O buffers (the difference from strings is that
buffers are filled from "outside", via I/O).
Another issue, especially aggravated by I/O buffer use, is alloc size
vs actual size length. If allocated 1Mb for buffer, but actually
read 1 byte, we don't want to keep rest of 1Mb be locked by this I/O
result, but rather return it to heap ASAP ("shrink" buffer before passing
it to qstr_from_str_take()).
2014-01-13 23:31:06 +02:00
Paul Sokolovsky
ca318bba0d
mp_obj_equal(): Compare small and long ints properly.
...
By dispatching to long int methods.
2014-01-13 22:41:16 +02:00
Paul Sokolovsky
76a90f2f60
Move mp_obj_int_t definition to objint.h, to reuse in long int impls.
2014-01-13 22:36:49 +02:00
John R. Lenton
88cb1e60e0
Made sorted() raise an exception instead of aborting when given no arguments; moved around some things in objfun.c as a consequence
2014-01-13 19:55:18 +00:00
John R. Lenton
2ded68db77
Cleaned up sorted() as per Damien's suggestions.
2014-01-13 19:52:28 +00:00
Damien George
f62d33aa1d
Consolidate rt_make_function_[0123] to rt_make_function_n.
2014-01-13 19:50:05 +00:00
Damien George
f88a72a88e
Merge pull request #168 from dhylands/add-strstr
...
Added public domain implementations of strchr and strstr.
2014-01-13 11:43:57 -08:00
Damien George
2300537c79
Cleanup built-ins, and fix some compiler warnings/errors.
2014-01-13 19:39:01 +00:00
Dave Hylands
44332ec9ea
Initialize is_kw for dynamically allocated mp_obj_fun_native_t ojects.
...
This should fix issue #171
2014-01-13 08:55:51 -08:00
Dave Hylands
c8effff937
Added public domain implementations of strchr and strstr.
2014-01-12 22:34:58 -08:00
John R. Lenton
5c76839559
sorted
2014-01-13 05:12:50 +00:00
John R. Lenton
07205ec323
added zip()
2014-01-13 02:31:00 +00:00
John R. Lenton
189c8e1cc4
Fixed the merge so it worked and compiled and stuff
2014-01-13 00:52:06 +00:00
John R. Lenton
13e64f0660
Merge remote-tracking branch 'upstream/master' into containment
2014-01-13 00:41:12 +00:00
Damien George
34f813ee29
Merge pull request #162 from chipaca/str_find
...
Implement a basic str.find; fixes #67
2014-01-12 16:34:03 -08:00
Damien George
ec3e14e2af
Merge pull request #160 from pfalcon/elaborate-int
...
Elaborate small-int/long-int
2014-01-12 16:32:21 -08:00
John R. Lenton
7244a14439
oops, nasty off-by-one in set_copy
2014-01-12 23:37:45 +00:00
John R. Lenton
be790f94d5
Implemented set binary ops.
2014-01-12 23:09:10 +00:00
John R. Lenton
e820491f7a
Implement a basic str.find; fixes #67
2014-01-12 21:53:52 +00:00
Paul Sokolovsky
48b3572f7e
Add framework to support alternative implementations of long int Python type.
2014-01-12 22:04:21 +02:00
Paul Sokolovsky
80f60e1aee
Parse long Python ints properly.
...
Long int is something which doesn't fit into SMALL_INT partion of
machine_int_t. But it's also something which doesn't fit into
machine_int_t in the first place.
2014-01-12 22:04:21 +02:00
Paul Sokolovsky
757ac81a69
Add proper checks for fits-in-small-int. Make it reusable.
...
We likely should make mp_obj_new_int() inline, and rely on its
encapsulated check rather than inline checks everywhere explicitly.
Also, parser for big small int values is still broken.
2014-01-12 22:04:21 +02:00
Paul Sokolovsky
c260bc58e6
Add WORD_MSBIT_HIGH define - machine_int_t with the highest bit set.
2014-01-12 22:04:21 +02:00
Paul Sokolovsky
fc5aac82cb
Move BITS_PER_BYTE, BITS_PER_WORD to mpconfig.h for reuse.
2014-01-12 22:04:20 +02:00
John R. Lenton
0de386bffe
Implemented set.update
2014-01-12 19:50:50 +00:00
John R. Lenton
ae00d334c6
Implemented set.remove
2014-01-12 19:16:59 +00:00
John R. Lenton
4a08067c0c
Implemented set.isdisjoint
2014-01-12 18:03:21 +00:00
John R. Lenton
f1ae6b48fb
Implemented set.intersection and set.intersection_update
2014-01-12 17:54:03 +00:00
John R. Lenton
032129f3b5
Implemented set.difference and set.difference_update
2014-01-12 17:07:17 +00:00
John R. Lenton
2a24172cdc
Implemented set.discard
2014-01-12 16:39:39 +00:00
John R. Lenton
3b0bd87906
Implemented set.copy
2014-01-12 15:56:25 +00:00
John R. Lenton
1d7fb2f21b
Implemented set.clear
2014-01-12 15:44:26 +00:00
John R. Lenton
19b14d3d8a
Implemented set.add
2014-01-12 15:29:11 +00:00
John R. Lenton
0ce03b48a0
make sets iterable
2014-01-12 15:17:42 +00:00
Damien George
69a818d418
py: Improve memory management for parser; add lexer error for bad line cont.
2014-01-12 13:55:24 +00:00
Damien George
97eb73cf84
Merge pull request #148 from pfalcon/list-cmp
...
Implement type virtual equality method support and implement comparisons for lists
2014-01-12 04:58:25 -08:00
Damien George
e5863d9301
py: AssertionError is loaded from global, to match CPython.
2014-01-12 12:35:08 +00:00
Damien George
c0876f7ca8
Merge pull request #146 from pfalcon/assert-exc
...
Add AssertionError.
2014-01-12 04:26:54 -08:00
Paul Sokolovsky
1945e60aeb
list: Implement comparison operators.
2014-01-12 03:34:04 +02:00
Paul Sokolovsky
cc57bd2663
mp_obj_equal(): For non-trivial types, call out to type's special method.
2014-01-12 03:33:56 +02:00
Paul Sokolovsky
729e9cce7b
rt_binary_op(): Don't fall thru in case small_int op result doesn't fit back.
...
Currently it would report "operation not supported" which is confusing. Overall,
this is thinko leading to undefined behavior.
2014-01-12 03:33:01 +02:00
Paul Sokolovsky
c698d266d1
list: Add extend() methods and += operator.
2014-01-12 00:54:10 +02:00
Paul Sokolovsky
b81e1fdef7
Add AssertionError.
2014-01-12 00:20:49 +02:00
Damien George
eae16445d5
py: Implement staticmethod and classmethod (internally).
...
Still need to make built-ins by these names, and write tests.
2014-01-11 19:22:29 +00:00
John R. Lenton
813edf63a3
Merge remote-tracking branch 'upstream/master' into containment
...
Conflicts:
py/runtime.c
2014-01-11 16:34:56 +00:00
John R. Lenton
c1bef21920
Implemented support for in
and not in
operators.
2014-01-11 12:39:33 +00:00
Damien George
bcbeea0a47
py: Fix bug where == and != not handled for small_ints.
2014-01-11 10:47:22 +00:00
Damien George
bc1d36924d
py: Fix emitcpy and emitnative's binary_op.
2014-01-11 09:47:06 +00:00
Damien George
8d4ccc49ed
Merge branch 'master' of github.com:dpgeorge/micropython
2014-01-11 09:37:41 +00:00
Damien George
25042b19d2
py: Make arg to MP_BC_RAISE_VARARGS a byte.
2014-01-11 09:33:39 +00:00
John R. Lenton
b8698fca75
unified the bops
2014-01-11 00:58:59 +00:00
Damien George
ad97f2a49e
Merge pull request #136 from pfalcon/for-range-downto
...
compile_for_stmt_optimised_range(): Properly handle negative & unknown s...
2014-01-10 15:21:50 -08:00
Damien George
e9b4b7ac75
Merge pull request #135 from pfalcon/simple-raise
...
Crude attempt to implement RAISE_VARARGS (with args=1 so far only).
2014-01-10 15:20:08 -08:00
Damien George
46c9e97132
Merge pull request #134 from pfalcon/list-mul
...
list: Implement list multiplication.
2014-01-10 15:17:17 -08:00
Damien George
745ce4c2ad
Merge pull request #131 from chipaca/dict_fromkeys
...
Added dict.fromkeys.
2014-01-10 15:11:56 -08:00
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