Damien George
d02c6d8962
Implement eval.
11 years ago
Paul Sokolovsky
9953ca432b
Add unbuffered readline() implementation for Raw I/O files.
11 years ago
Damien George
e2fb2baaa4
Implement repr.
11 years ago
Damien George
9528cd66d7
Convert parse errors to exceptions.
Parser no longer prints an error, but instead returns an exception ID
and message.
11 years ago
John R. Lenton
fca456bc3c
added filter()
11 years ago
John R. Lenton
39b174e00a
Added map
11 years ago
John R. Lenton
9daa78943e
added enumerate()
11 years ago
Damien George
0f59203e37
Tidy up.
11 years ago
Paul Sokolovsky
8bc96471f0
Implement "is" and "is not" operators.
So far, don't work for strings as expected.
11 years ago
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.
11 years ago
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.
11 years ago
Paul Sokolovsky
5225450b9f
Add generic impl of stream .readall() method. Use one for unix io.FileIO.
11 years ago
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()).
11 years ago
Paul Sokolovsky
ca318bba0d
mp_obj_equal(): Compare small and long ints properly.
By dispatching to long int methods.
11 years ago
Paul Sokolovsky
76a90f2f60
Move mp_obj_int_t definition to objint.h, to reuse in long int impls.
11 years ago
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
11 years ago
John R. Lenton
2ded68db77
Cleaned up sorted() as per Damien's suggestions.
11 years ago
Damien George
f62d33aa1d
Consolidate rt_make_function_[0123] to rt_make_function_n.
11 years ago
Damien George
2300537c79
Cleanup built-ins, and fix some compiler warnings/errors.
11 years ago
Dave Hylands
44332ec9ea
Initialize is_kw for dynamically allocated mp_obj_fun_native_t ojects.
This should fix issue #171
11 years ago
Dave Hylands
c8effff937
Added public domain implementations of strchr and strstr.
11 years ago
John R. Lenton
5c76839559
sorted
11 years ago
John R. Lenton
07205ec323
added zip()
11 years ago
John R. Lenton
189c8e1cc4
Fixed the merge so it worked and compiled and stuff
11 years ago
John R. Lenton
7244a14439
oops, nasty off-by-one in set_copy
11 years ago
John R. Lenton
be790f94d5
Implemented set binary ops.
11 years ago
John R. Lenton
e820491f7a
Implement a basic str.find; fixes #67
11 years ago
Paul Sokolovsky
48b3572f7e
Add framework to support alternative implementations of long int Python type.
11 years ago
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.
11 years ago
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.
11 years ago
Paul Sokolovsky
c260bc58e6
Add WORD_MSBIT_HIGH define - machine_int_t with the highest bit set.
11 years ago
Paul Sokolovsky
fc5aac82cb
Move BITS_PER_BYTE, BITS_PER_WORD to mpconfig.h for reuse.
11 years ago
John R. Lenton
0de386bffe
Implemented set.update
11 years ago
John R. Lenton
ae00d334c6
Implemented set.remove
11 years ago
John R. Lenton
4a08067c0c
Implemented set.isdisjoint
11 years ago
John R. Lenton
f1ae6b48fb
Implemented set.intersection and set.intersection_update
11 years ago
John R. Lenton
032129f3b5
Implemented set.difference and set.difference_update
11 years ago
John R. Lenton
2a24172cdc
Implemented set.discard
11 years ago
John R. Lenton
3b0bd87906
Implemented set.copy
11 years ago
John R. Lenton
1d7fb2f21b
Implemented set.clear
11 years ago
John R. Lenton
19b14d3d8a
Implemented set.add
11 years ago
John R. Lenton
0ce03b48a0
make sets iterable
11 years ago
Damien George
69a818d418
py: Improve memory management for parser; add lexer error for bad line cont.
11 years ago
Damien George
e5863d9301
py: AssertionError is loaded from global, to match CPython.
11 years ago
Paul Sokolovsky
1945e60aeb
list: Implement comparison operators.
11 years ago
Paul Sokolovsky
cc57bd2663
mp_obj_equal(): For non-trivial types, call out to type's special method.
11 years ago
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.
11 years ago
Paul Sokolovsky
c698d266d1
list: Add extend() methods and += operator.
11 years ago
Paul Sokolovsky
b81e1fdef7
Add AssertionError.
11 years ago
Damien George
eae16445d5
py: Implement staticmethod and classmethod (internally).
Still need to make built-ins by these names, and write tests.
11 years ago