<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/objint_longlong.c, branch 3.0.0-rc.1</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-rc.1</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=3.0.0-rc.1'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2017-10-04T01:37:50+00:00</updated>
<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>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>all: Make more use of mp_raise_{msg,TypeError,ValueError} helpers.</title>
<updated>2017-06-15T01:54:41+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-06-15T01:54:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=48d867b4a68e53901aac87c2ff0f2a7e65f735c7'/>
<id>urn:sha1:48d867b4a68e53901aac87c2ff0f2a7e65f735c7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Cleanup use of global DEBUG preprocessor definition</title>
<updated>2017-04-30T11:28:37+00:00</updated>
<author>
<name>stijn</name>
<email>stijn@ignitron.net</email>
</author>
<published>2017-04-26T11:17:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=2f0ce2a6f50ba9472ce4bd8f9fe984d830e99ade'/>
<id>urn:sha1:2f0ce2a6f50ba9472ce4bd8f9fe984d830e99ade</id>
<content type='text'>
The standard preprocessor definition to differentiate debug and non-debug
builds is NDEBUG, not DEBUG, so don't rely on the latter:
- just delete the use of it in objint_longlong.c as it has been stale code
  for years anyway (since commit [c4029e5]): SUFFIX isn't used anywhere.
- replace DEBUG with MICROPY_DEBUG_NLR in nlr.h: it is rarely used anymore
  so can be off by default
</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>
<entry>
<title>py/objint_longlong: Implement mp_obj_int_from_bytes_impl().</title>
<updated>2017-03-09T23:22:53+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2017-03-09T23:22:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=776883cb80be675fad1fee1ffae5dcdb75f14f64'/>
<id>urn:sha1:776883cb80be675fad1fee1ffae5dcdb75f14f64</id>
<content type='text'>
This makes int.from_bytes() work for MICROPY_LONGINT_IMPL_LONGLONG.
</content>
</entry>
<entry>
<title>py/objint: Convert mp_uint_t to size_t where appropriate.</title>
<updated>2017-02-16T05:51:17+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-02-16T05:41:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=da36f5232dcf02c448ee9933e358b711cfe03f30'/>
<id>urn:sha1:da36f5232dcf02c448ee9933e358b711cfe03f30</id>
<content type='text'>
</content>
</entry>
</feed>
