<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython, branch v1.9.4</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.9.4</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=v1.9.4'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2018-05-11T06:39:59+00:00</updated>
<entry>
<title>docs: Bump version to 1.9.4.</title>
<updated>2018-05-11T06:39:59+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-11T06:39:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=421b84af9968e582f324899934f52b3df60381ee'/>
<id>urn:sha1:421b84af9968e582f324899934f52b3df60381ee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tests/float/float_parse: Allow test to run on 32-bit archs.</title>
<updated>2018-05-11T03:51:18+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-11T03:51:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d2c1db1e5cca03c9a34614af6d12045aefe3d719'/>
<id>urn:sha1:d2c1db1e5cca03c9a34614af6d12045aefe3d719</id>
<content type='text'>
Printing of uPy floats can differ by the floating-point precision on
different architectures (eg 64-bit vs 32-bit x86), so it's not possible to
using printing of floats in some parts of this test.  Instead we can just
check for equivalence with what is known to be the correct answer.
</content>
</entry>
<entry>
<title>py/repl: Initialise q_last variable to prevent compiler warnings.</title>
<updated>2018-05-11T03:48:47+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-11T03:48:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6046e68fe19ca3e88e6e55438be9b2dee98723af'/>
<id>urn:sha1:6046e68fe19ca3e88e6e55438be9b2dee98723af</id>
<content type='text'>
Some older compilers cannot deduce that q_last is always written to before
being read.
</content>
</entry>
<entry>
<title>py/objdeque: Fix sign extension bug when computing len of deque object.</title>
<updated>2018-05-11T03:44:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-11T03:44:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=095d3970173f3d4ad6c43bd0c363b727d3a67241'/>
<id>urn:sha1:095d3970173f3d4ad6c43bd0c363b727d3a67241</id>
<content type='text'>
For cases where size_t is smaller than mp_int_t (eg nan-boxing builds) the
difference between two size_t's is not sign extended into mp_int_t and so
the result is never negative.  This patch fixes this bug by using ssize_t
for the type of the result.
</content>
</entry>
<entry>
<title>stm32/README: Update to reflect current MCU support.</title>
<updated>2018-05-11T00:36:46+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-11T00:36:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=b208aa189e948481fb341ddb525c2ec432972462'/>
<id>urn:sha1:b208aa189e948481fb341ddb525c2ec432972462</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/modbuiltins: Make built-in dir support the __dir__ special method.</title>
<updated>2018-05-10T13:14:23+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-10T13:10:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=3678a6bdc6a925f2bce6423c41f911229836f946'/>
<id>urn:sha1:3678a6bdc6a925f2bce6423c41f911229836f946</id>
<content type='text'>
If MICROPY_PY_ALL_SPECIAL_METHODS is enabled then dir() will now delegate
to the special method __dir__ if the object it is listing has this method.
</content>
</entry>
<entry>
<title>py/modbuiltins: In built-in dir make use of mp_load_method_protected.</title>
<updated>2018-05-10T13:07:19+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-10T13:07:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=29d28c2574d6c0b93fd3fc869b389a61dee12102'/>
<id>urn:sha1:29d28c2574d6c0b93fd3fc869b389a61dee12102</id>
<content type='text'>
This gives dir() better behaviour when listing the attributes of a user
type that defines __getattr__: it will now not list those attributes for
which __getattr__ raises AttributeError (meaning the attribute is not
supported by the object).
</content>
</entry>
<entry>
<title>py/repl: Use mp_load_method_protected to prevent leaking of exceptions.</title>
<updated>2018-05-10T13:05:43+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-10T13:05:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7241d90272f4dfe4100723393cc2f348f5d32c0a'/>
<id>urn:sha1:7241d90272f4dfe4100723393cc2f348f5d32c0a</id>
<content type='text'>
This patch fixes the possibility of a crash of the REPL when tab-completing
an object which raises an exception when its attributes are accessed.

See issue #3729.
</content>
</entry>
<entry>
<title>py/modbuiltins: Make built-in hasattr work properly for user types.</title>
<updated>2018-05-10T13:03:30+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-10T13:03:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=529860643bc321267376272356886ef39c4c6bd1'/>
<id>urn:sha1:529860643bc321267376272356886ef39c4c6bd1</id>
<content type='text'>
It now allows __getattr__ in a user type to raise AttributeError when the
attribute does not exist.
</content>
</entry>
<entry>
<title>py/runtime: Add mp_load_method_protected helper which catches exceptions</title>
<updated>2018-05-10T13:00:04+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-10T13:00:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=bc87b862fd22afb38ed7392b69474286fa5fe19f'/>
<id>urn:sha1:bc87b862fd22afb38ed7392b69474286fa5fe19f</id>
<content type='text'>
This new helper function acts like mp_load_method_maybe but is wrapped in
an NLR handler so it can catch exceptions.  It prevents AttributeError from
propagating out, and optionally all other exceptions.  This helper can be
used to fully implement hasattr (see follow-up commit), and also for cases
where mp_load_method_maybe is used but it must now raise an exception.
</content>
</entry>
</feed>
