<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/objint_mpz.c, branch 3.0.0</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=3.0.0</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=3.0.0'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2018-03-29T11:42:10+00:00</updated>
<entry>
<title>Fix assertion failure in mpz_divmod_inpl</title>
<updated>2018-03-29T11:42:10+00:00</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@unpythonic.net</email>
</author>
<published>2018-03-25T21:01:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a55988a547011c04978a1661325062397ef74110'/>
<id>urn:sha1:a55988a547011c04978a1661325062397ef74110</id>
<content type='text'>
.. turning this from an assertion failure into an exception:
    pow(1,1,0)
</content>
</entry>
<entry>
<title>all: Remove inclusion of internal py header files.</title>
<updated>2017-10-04T01:37:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-10-04T01:37:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a3dc1b1957d2c96d7c60c2c629c95077b03488a1'/>
<id>urn:sha1:a3dc1b1957d2c96d7c60c2c629c95077b03488a1</id>
<content type='text'>
Header files that are considered internal to the py core and should not
normally be included directly are:
    py/nlr.h - internal nlr configuration and declarations
    py/bc0.h - contains bytecode macro definitions
    py/runtime0.h - contains basic runtime enums

Instead, the top-level header files to include are one of:
    py/obj.h - includes runtime0.h and defines everything to use the
        mp_obj_t type
    py/runtime.h - includes mpstate.h and hence nlr.h, obj.h, runtime0.h,
        and defines everything to use the general runtime support functions

Additional, specific headers (eg py/objlist.h) can be included if needed.
</content>
</entry>
<entry>
<title>py/modbuiltins: Implement abs() by dispatching to MP_UNARY_OP_ABS.</title>
<updated>2017-09-17T21:06:43+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2017-09-17T21:06:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9dce823cfd0a9991350184f08a1373f3887134f4'/>
<id>urn:sha1:9dce823cfd0a9991350184f08a1373f3887134f4</id>
<content type='text'>
This allows user classes to implement __abs__ special method, and saves
code size (104 bytes for x86_64), even though during refactor, an issue
was fixed and few optimizations were made:

* abs() of minimum (negative) small int value is calculated properly.
* objint_longlong and objint_mpz avoid allocating new object is the
  argument is already non-negative.
</content>
</entry>
<entry>
<title>py/runtime0.h: Put inplace arith ops in front of normal operations.</title>
<updated>2017-09-07T21:10:10+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2017-09-07T21:10:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=b8ee7ab5b988f424e34e778fe3a679710d675efa'/>
<id>urn:sha1:b8ee7ab5b988f424e34e778fe3a679710d675efa</id>
<content type='text'>
This is to allow to place reverse ops immediately after normal ops, so
they can be tested as one range (which is optimization for reverse ops
introduction in the next patch).
</content>
</entry>
<entry>
<title>py/runtime0.h: Move relational ops to the beginning of mp_binary_op_t.</title>
<updated>2017-09-07T07:55:43+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2017-09-07T07:55:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d4d1c45a553c6361a72053383f0fe242f05cad3d'/>
<id>urn:sha1:d4d1c45a553c6361a72053383f0fe242f05cad3d</id>
<content type='text'>
This is to allow to encode arithmetic operations more efficiently, in
preparation to introduction of __rOP__ method support.
</content>
</entry>
<entry>
<title>all: Convert mp_uint_t to mp_unary_op_t/mp_binary_op_t where appropriate</title>
<updated>2017-08-29T03:16:30+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-08-29T03:04:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=58321dd9854d71a96e5db2d361e0efc05d9de8cf'/>
<id>urn:sha1:58321dd9854d71a96e5db2d361e0efc05d9de8cf</id>
<content type='text'>
The unary-op/binary-op enums are already defined, and there are no
arithmetic tricks used with these types, so it makes sense to use the
correct enum type for arguments that take these values.  It also reduces
code size quite a bit for nan-boxing builds.
</content>
</entry>
<entry>
<title>all: Use the name MicroPython consistently in comments</title>
<updated>2017-07-31T08:35:40+00:00</updated>
<author>
<name>Alexander Steffen</name>
<email>devel.20.webmeister@spamgourmet.com</email>
</author>
<published>2017-06-30T07:22:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=55f33240f3d7051d4213629e92437a36f1fac50e'/>
<id>urn:sha1:55f33240f3d7051d4213629e92437a36f1fac50e</id>
<content type='text'>
There were several different spellings of MicroPython present in comments,
when there should be only one.
</content>
</entry>
<entry>
<title>py: Implement raising a big-int to a negative power.</title>
<updated>2017-07-25T01:49:22+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-07-25T01:49:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=04552ff71b6c722b21597d93481f024c72457cef'/>
<id>urn:sha1:04552ff71b6c722b21597d93481f024c72457cef</id>
<content type='text'>
Before this patch raising a big-int to a negative power would just return
0.  Now it returns a floating-point number with the correct value.
</content>
</entry>
<entry>
<title>extmod/moductypes: Fix bigint handling for 32-bit ports.</title>
<updated>2017-04-21T13:43:21+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2017-04-21T13:40:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9e8f3163924c1f429f16f44a4a27b0cd33064719'/>
<id>urn:sha1:9e8f3163924c1f429f16f44a4a27b0cd33064719</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/objint: Consolidate mp_obj_new_int_from_float to one implementation.</title>
<updated>2017-04-04T06:45:49+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-04-04T06:45:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=fc245d1ca4367f9876ac32c7e08e169da7db79b9'/>
<id>urn:sha1:fc245d1ca4367f9876ac32c7e08e169da7db79b9</id>
<content type='text'>
This reduces code duplication and allows to make mp_classify_fp_as_int
static, which reduces code size.
</content>
</entry>
</feed>
