You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The LONGLONG longint implementation uses 64-bit long long boxed integers. Because it's conceptually simpler than the MPZ implementation, it could be smaller in terms of firmware size. It would enable using time.monotonic_ns() on small builds, which is the primary reason I looked at this.
However, right now LONGLONG actually builds out to be larger than MPZ. This is primarily due to a few long long conversions to and from float that cause large double-precision floating-point library routines to be included in the firmware. They would not be present otherwise. I disabled these conversions temporarily to see what would happen.
After forcing out the double routines, the difference between a Trinket M0 NONE and LONGLONG is about 4000 bytes. A noticeable chunk of this is the enabling of the time routines` which are disabled when longints are not available. I assume it would take a few hundred bytes to do some other kind of conversion between longints and floats (or we would forbid it).
So this is still a substantial amount of firmware space, and too big for some of the translations, thought it does fit in the smaller languages.
(By comparison, enabling MPZ instead of LONGLONG adds another 3100 bytes or so.)
The text was updated successfully, but these errors were encountered:
The
LONGLONG
longint implementation uses 64-bitlong long
boxed integers. Because it's conceptually simpler than theMPZ
implementation, it could be smaller in terms of firmware size. It would enable usingtime.monotonic_ns()
on small builds, which is the primary reason I looked at this.However, right now LONGLONG actually builds out to be larger than MPZ. This is primarily due to a few
long long
conversions to and fromfloat
that cause large double-precision floating-point library routines to be included in the firmware. They would not be present otherwise. I disabled these conversions temporarily to see what would happen.After forcing out the double routines, the difference between a Trinket M0
NONE
andLONGLONG
is about 4000 bytes. A noticeable chunk of this is the enabling of thetime
routines` which are disabled when longints are not available. I assume it would take a few hundred bytes to do some other kind of conversion between longints and floats (or we would forbid it).So this is still a substantial amount of firmware space, and too big for some of the translations, thought it does fit in the smaller languages.
(By comparison, enabling
MPZ
instead ofLONGLONG
adds another 3100 bytes or so.)The text was updated successfully, but these errors were encountered: