<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/map.c, branch v1.4.5</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.4.5</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.4.5'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2015-05-12T21:46:02+00:00</updated>
<entry>
<title>py: Convert hash API to use MP_UNARY_OP_HASH instead of ad-hoc function.</title>
<updated>2015-05-12T21:46:02+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-05-11T12:25:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=c2a4e4effc81d8ab21bb014e34355643e5ca0da2'/>
<id>urn:sha1:c2a4e4effc81d8ab21bb014e34355643e5ca0da2</id>
<content type='text'>
Hashing is now done using mp_unary_op function with MP_UNARY_OP_HASH as
the operator argument.  Hashing for int, str and bytes still go via
fast-path in mp_unary_op since they are the most common objects which
need to be hashed.

This lead to quite a bit of code cleanup, and should be more efficient
if anything.  It saves 176 bytes code space on Thumb2, and 360 bytes on
x86.

The only loss is that the error message "unhashable type" is now the
more generic "unsupported type for __hash__".
</content>
</entry>
<entry>
<title>py: Some trivial cosmetic changes, for code style consistency.</title>
<updated>2015-04-04T14:53:11+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-04-04T14:53:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=2801e6fad8b8b3ecdd9c8bc58f9515ff66eca46c'/>
<id>urn:sha1:2801e6fad8b8b3ecdd9c8bc58f9515ff66eca46c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Clarify API for map/set lookup when removing&amp;adding at once.</title>
<updated>2015-03-20T17:41:37+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-03-20T17:41:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d1cee02783666338b526ac686c19440c5f44b258'/>
<id>urn:sha1:d1cee02783666338b526ac686c19440c5f44b258</id>
<content type='text'>
Addresses issue #1160.
</content>
</entry>
<entry>
<title>py: Implement core of OrderedDict type.</title>
<updated>2015-03-20T17:26:10+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2015-03-17T23:25:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0ef01d0a75b8b2f48a72f0041e048a390b9e75b6'/>
<id>urn:sha1:0ef01d0a75b8b2f48a72f0041e048a390b9e75b6</id>
<content type='text'>
Given that there's already support for "fixed table" maps, which are
essentially ordered maps, the implementation of OrderedDict just extends
"fixed table" maps by adding an "is ordered" flag and add/remove
operations, and reuses 95% of objdict code, just making methods tolerant
to both dict and OrderedDict.

Some things are missing so far, like CPython-compatible repr and comparison.

OrderedDict is Disabled by default; enabled on unix and stmhal ports.
</content>
</entry>
<entry>
<title>py, unix: Allow to compile with -Wsign-compare.</title>
<updated>2015-01-16T17:47:07+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-01-16T17:47:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=963a5a3e82ded7ee75adae72ae7cb14796fa150e'/>
<id>urn:sha1:963a5a3e82ded7ee75adae72ae7cb14796fa150e</id>
<content type='text'>
See issue #699.
</content>
</entry>
<entry>
<title>py: Move to guarded includes, everywhere in py/ core.</title>
<updated>2015-01-01T20:32:09+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-01-01T20:27:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=51dfcb4bb7613ed164952712d9a5235a7b833cde'/>
<id>urn:sha1:51dfcb4bb7613ed164952712d9a5235a7b833cde</id>
<content type='text'>
Addresses issue #1022.
</content>
</entry>
<entry>
<title>py: Allow to properly disable builtin "set" object.</title>
<updated>2014-12-27T17:33:30+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-12-27T17:07:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e37dcaafb43c1246ab55d79ebb8889a61f280533'/>
<id>urn:sha1:e37dcaafb43c1246ab55d79ebb8889a61f280533</id>
<content type='text'>
This patch makes MICROPY_PY_BUILTINS_SET compile-time option fully
disable the builtin set object (when set to 0).  This includes removing
set constructor/comprehension from the grammar, the compiler and the
emitters.  Now, enabling set costs 8168 bytes on unix x64, and 3576
bytes on stmhal.
</content>
</entry>
<entry>
<title>map: Add empty fixed map.</title>
<updated>2014-11-27T17:37:07+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-11-26T19:17:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e5dbe1e28340a9d1a7b651b35d8de449c46fcf23'/>
<id>urn:sha1:e5dbe1e28340a9d1a7b651b35d8de449c46fcf23</id>
<content type='text'>
Useful when need to call kw-receiving functions  without any keywords
from C, etc.
</content>
</entry>
<entry>
<title>py: Fix some macros defines; cleanup some includes.</title>
<updated>2014-11-05T21:16:41+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-11-05T21:16:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7860c2a68acd1ccd28cb4bb87819487fd6966a9e'/>
<id>urn:sha1:7860c2a68acd1ccd28cb4bb87819487fd6966a9e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Make map, dict, set use mp_int_t/mp_uint_t exclusively.</title>
<updated>2014-08-30T12:23:35+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-08-30T12:23:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=93965e726fb307739c31b0fc61d972391ffba677'/>
<id>urn:sha1:93965e726fb307739c31b0fc61d972391ffba677</id>
<content type='text'>
Part of code cleanup, towards resolving issue #50.
</content>
</entry>
</feed>
