<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/objint_longlong.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: Implement power op for long-long implementation of bignum.</title>
<updated>2015-04-25T22:28:10+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-04-25T22:28:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0f553fe10b14051aca25818b0aeac175c60889e0'/>
<id>urn:sha1:0f553fe10b14051aca25818b0aeac175c60889e0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Support conversion of bignum to bytes.</title>
<updated>2015-04-25T22:16:39+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-04-25T22:16:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=271d18eb08ec488ee45f8e6cd852e8236074f082'/>
<id>urn:sha1:271d18eb08ec488ee45f8e6cd852e8236074f082</id>
<content type='text'>
This gets int.to_bytes working for bignum, and also struct.pack with 'q'
and 'Q' args on 32-bit machines.

Addresses issue #1155.
</content>
</entry>
<entry>
<title>py: Fix builtin abs so it works for bools and bignum.</title>
<updated>2015-03-14T22:07:30+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-03-14T22:07:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6837d46c1da0e7dd9cf73969bb58649222f455a4'/>
<id>urn:sha1:6837d46c1da0e7dd9cf73969bb58649222f455a4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Use float-to-int classifications for mp_obj_new_int_from_float() functions</title>
<updated>2015-01-24T20:54:28+00:00</updated>
<author>
<name>David Steinberg</name>
<email>david.steinberg.dev@gmail.com</email>
</author>
<published>2015-01-13T15:22:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0fb17f6ef46ade018a3fda8d4266f15638ddf5e3'/>
<id>urn:sha1:0fb17f6ef46ade018a3fda8d4266f15638ddf5e3</id>
<content type='text'>
</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: Partially fix float to int conversion.</title>
<updated>2014-12-29T22:22:50+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-12-29T22:22:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=12033df511a5a5f0237a764379aacfbceb6c45dd'/>
<id>urn:sha1:12033df511a5a5f0237a764379aacfbceb6c45dd</id>
<content type='text'>
This fixes conversion when float type has more mantissa bits than small int,
and float value has small exponent. This is for example the case of 32-bit
platform using doubles, and converting value of time.time(). Conversion of
floats with larg exponnet is still not handled correctly.
</content>
</entry>
<entry>
<title>py: Rename mp_obj_int_get to mp_obj_int_get_truncated; fix struct.pack.</title>
<updated>2014-12-05T23:13:52+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-12-05T23:13:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=be6d8be91e133e98117025062df0e63aaf87efd2'/>
<id>urn:sha1:be6d8be91e133e98117025062df0e63aaf87efd2</id>
<content type='text'>
mp_obj_int_get_truncated is used as a "fast path" int accessor that
doesn't check for overflow and returns the int truncated to the machine
word size, ie mp_int_t.

Use mp_obj_int_get_truncated to fix struct.pack when packing maximum word
sized values.

Addresses issues #779 and #998.
</content>
</entry>
<entry>
<title>py: Enable struct/binary-helper to parse q and Q sized ints.</title>
<updated>2014-09-10T21:10:33+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2014-09-10T21:10:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=953074315e594f5a30f455dc6a1a67340a3e6ea7'/>
<id>urn:sha1:953074315e594f5a30f455dc6a1a67340a3e6ea7</id>
<content type='text'>
Addresses issue #848.
</content>
</entry>
<entry>
<title>py: Correctly set sys.maxsize value for 64-bit.</title>
<updated>2014-09-06T17:22:06+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2014-09-06T16:17:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=722e562736f83865333d8b3dd942f903b9db8a7c'/>
<id>urn:sha1:722e562736f83865333d8b3dd942f903b9db8a7c</id>
<content type='text'>
Type representing signed size doesn't have to be int, so use special value
which defaults to SSIZE_MAX, but as it's not defined by C standard (but rather
by POSIX), allow ports to set it.
</content>
</entry>
</feed>
