Paul Sokolovsky
36dd19ae27
py: Revert mp_load_attr() to its previous state (not supporting default val).
...
Based on the discussion in #433 . mp_load_attr() is critical-path function,
so any extra check will slowdown any script. As supporting default val
required only for getattr() builtin, move correspending implementation
there (still as a separate function due to concerns of maintainability
of such almost-duplicated code instances).
2014-04-06 02:15:23 +03:00
Damien George
4e1ed82583
Merge branch 'master' of github.com:micropython/micropython
2014-04-05 23:33:37 +01:00
Damien George
d0e824387e
py: Make mp_map_lookup not allocate memory on removal.
2014-04-05 23:33:12 +01:00
Paul Sokolovsky
080d99b7a8
py: Optimize locals()/globals() implementation.
2014-04-06 01:18:58 +03:00
Damien George
09af5364d4
Merge branch 'master' of github.com:micropython/micropython
2014-04-05 23:04:22 +01:00
Damien George
27e735fd18
py: Replace stream_p with *stream_p in mp_obj_type_t.
...
This is to reduce ROM usage. stream_p is used in file and socket types
only (at the moment), so seems a good idea to make the protocol
functions a pointer instead of the actual structure.
It saves 308 bytes of ROM in the stmhal/ port, 928 in unix/.
2014-04-05 23:02:23 +01:00
Paul Sokolovsky
cc0af3d727
py: Implement globals() and locals() builtins.
2014-04-06 01:01:36 +03:00
Damien George
17520224fa
py: Make all objects and instances derive from object.
...
This makes isinstance(X, object) and issubclass(X, object) true for all
X.
2014-04-05 22:45:23 +01:00
Damien George
7efc5b3f34
py: Make globals and locals proper dictionary objects.
...
Finishes addressing issue #424 .
In the end this was a very neat refactor that now makes things a lot
more consistent across the py code base. It allowed some
simplifications in certain places, now that everything is a dict object.
Also converted builtins tables to dictionaries. This will be useful
when we need to turn builtins into a proper module.
2014-04-05 22:36:42 +01:00
Damien George
8b0535e23f
py: Change module globals from mp_map_t* to mp_obj_dict_t*.
...
Towards addressing issue #424 .
Had a small increase to ROM usage (order 60 bytes).
2014-04-05 21:53:54 +01:00
Damien George
60be1cf3b9
py: Fix float printing on stmhal.
2014-04-05 20:51:29 +01:00
Damien George
12bab72d93
Improve GC finalisation code; add option to disable it.
2014-04-05 20:35:48 +01:00
Damien George
8123a3339d
Merge pull request #425 from iabdalkader/del
...
Implement del
2014-04-05 18:49:39 +01:00
Damien George
ea13f407a3
py: Change nlr_jump to nlr_raise, to aid in debugging.
...
This does not affect code size or performance when debugging turned off.
To address issue #420 .
2014-04-05 18:32:08 +01:00
Damien George
2a037408af
tests: Add test to check issue #429 .
2014-04-05 18:17:51 +01:00
Damien George
efccbf6f27
Merge pull request #436 from dhylands/pfenv-print-int
...
Change pfenv_print_int to take machine_uint_t rather than unsinged in
2014-04-05 18:11:02 +01:00
Damien George
327a3e2faa
Merge pull request #435 from dhylands/str-modulo-float
...
Allow floating point arguments with %d,i,u,o,x,X formats
2014-04-05 18:10:11 +01:00
Damien George
23419a2f8a
Merge pull request #433 from pfalcon/getattr-3arg
...
py: Support 3-arg getattr() builtin (with default value).
2014-04-05 18:00:04 +01:00
Dave Hylands
64ef5d7f4e
Change pfenv_print_int to take machine_uint_t rather than unsinged in
...
With this change, the following works:
>>> print('%#x' % 0x1234567890abcdef)
0x1234567890abcdef
2014-04-05 09:42:20 -07:00
Damien George
6d508666ea
Merge branch 'master' of github.com:micropython/micropython
2014-04-05 17:19:03 +01:00
Damien George
95004e5114
py: Fix delete operation on map/dict and set objects.
...
Hash table can now be completely full (ie now NULL entry) before a
resize is triggered. Use sentinel value to indicate delete entry in the
table.
2014-04-05 17:17:19 +01:00
Damien George
e20b6b418c
stmhal: autoflash now enters serial comms after flashing.
2014-04-05 17:16:00 +01:00
Dave Hylands
f81a49e464
Allow floating point arguments with %d,i,u,o,x,X formats
2014-04-05 08:26:51 -07:00
Paul Sokolovsky
e99841be69
mp_obj_get_int(): Add warning against adding implicit float->int conversion.
2014-04-05 17:46:47 +03:00
mux
cc849f70f4
Move del to locals
2014-04-05 15:49:03 +02:00
Damien George
09a4d8305d
py: Fix bug in DELETE_SUBSCR bytecode, decreasing sp too much.
2014-04-05 13:47:41 +01:00
Damien George
b6ec51bbf0
tests: Add test for dict delete. It fails.
2014-04-05 13:26:00 +01:00
Damien George
66edc5d899
py: Implement DELETE_SUBSCR bytecode; implement mp_obj_dict_delete.
2014-04-05 13:25:13 +01:00
Damien George
3c8aecf62c
Merge pull request #431 from pfalcon/unbreak-map-remove
...
map: When removing a key, don't NULL the entry, but mark as deleted.
2014-04-05 12:09:09 +01:00
Paul Sokolovsky
586bfce10d
objfun: Add equality support.
2014-04-05 13:53:39 +03:00
Damien George
38d3430320
stmhal: Add more escape seqs; add debugging output for escape seq.
2014-04-05 11:45:59 +01:00
Paul Sokolovsky
bfb7d6a26d
py: Support 3-arg getattr() builtin (with default value).
2014-04-05 13:34:02 +03:00
Damien George
80c59c06e3
Merge branch 'xterm-home-end' of github.com:pfalcon/micropython into pfalcon-xterm-home-end
2014-04-05 11:22:34 +01:00
Paul Sokolovsky
438d504e27
objtype: Add equality test for type types.
2014-04-05 13:10:56 +03:00
Paul Sokolovsky
91cbe6033a
py: Allow types to be hashable.
...
Quite natural to have d[int] = handle_int .
2014-04-05 12:51:58 +03:00
Paul Sokolovsky
c6813d92db
py: Put default namespace into module __main__.
...
That's how CPython has it, in particular, "import __main__" should work.
2014-04-05 12:29:15 +03:00
Paul Sokolovsky
4a088f4b61
map: When removing a key, don't NULL the entry, but mark as deleted.
...
When searching next time, such entry should be just skipped, not terminate
the search. It's known that marking techique is not efficient at the presense
of many removes, but namespace usage should not require many deletes, and
as for user dictionaries - well, open addressing map table with linear
rehashing and load factor of ~1 is not particularly efficient at all ;-).
TODO: May consider "shift other entries in cluster" approach as an
alternative.
2014-04-05 05:11:12 +03:00
Paul Sokolovsky
a0d32991ed
mp_load_name(): Optimize for outer scope where locals == globals.
2014-04-05 05:10:12 +03:00
Paul Sokolovsky
e3f58c8380
map: Add mp_map_dump() (#ifdef'ed) to be handy when debugging maps.
2014-04-05 05:10:02 +03:00
Paul Sokolovsky
cdffa32699
stmhal readline: Parse XTERM Home/End key codes.
...
Which are ESC O H, ESC O F.
2014-04-05 02:47:26 +03:00
Paul Sokolovsky
c39368427c
unix: Rename module sources per latest naming conventions (mod*.c).
2014-04-04 20:34:10 +03:00
Paul Sokolovsky
cd31d826bf
unix: Use STATIC modifier to enable code size analysis via map file.
2014-04-04 20:34:02 +03:00
Damien George
6582a4170d
Merge pull request #421 from dhylands/git-version
...
Add the git version and build-date to the banner
2014-04-04 16:09:29 +01:00
Paul Sokolovsky
70193b2b4c
unix: Routines related to terminal reading should use system malloc.
...
Otherwise we have mixup between system and GC alloc.
2014-04-04 17:50:02 +03:00
Paul Sokolovsky
a7752a4540
run-tests: Elaborate python3 command override capabilities.
2014-04-04 17:28:34 +03:00
Damien George
e8208a7f02
py: Make False and True act like 0 and 1 for integer arithmetic.
2014-04-04 15:08:23 +01:00
Damien George
d7aadcfe1b
py: Allow dict constructor to take keyword arguments.
2014-04-04 15:08:00 +01:00
Damien George
36f0ee1a54
py: Remove mp_obj_less (use mp_binary_op(MP_BINARY_OP_LESS..) instead).
2014-04-04 15:07:17 +01:00
Damien George
bd17e1b3ae
unix: Allocate more heap memory by default on 64 bit machines.
...
Pointers are 2x bigger on 64 bit machines, so we should allocate twice
the memory to have a comparable heap size.
2014-04-04 14:29:00 +01:00
Damien George
9b1599c663
Merge pull request #422 from dhylands/str-modulo
...
Str modulo
2014-04-04 12:37:52 +01:00