Now, requesting to allocate an array that is too big gives the exception
'array is too big', like numpy.
This does depend on a gcc extension, `__builtin_mul_overflow`, present
since at least version 5. This extension is also supported in clang.
msvc is probably the only compiler of note that does not support it.
Closes: #576
Prior to this fix the code was using the mp_float_t data type for uint16
and producing incorrect sort results.
Signed-off-by: Damien George <damien@micropython.org>
Signed-off-by: Damien George <damien@micropython.org>
* Fix missing comma in type definition
Signed-off-by: Damien George <damien@micropython.org>
* Make sure all files have a new-line at the end
Some very old compilers don't like files without a new-line at the end.
Signed-off-by: Damien George <damien@micropython.org>
* Use math.isclose for universal_functions expm1 test
Signed-off-by: Damien George <damien@micropython.org>
Signed-off-by: Damien George <damien@micropython.org>
* build.sh: Fix unix executable path.
This was updated recently to no longer copy to the ports/unix directory.
Use the version in the build directory instead if available.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
* Update to new style mp_obj_type_t definitions.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
A given use of ULAB_DEFINE_FLOAT_CONST may already have the correct form
of the float constant, so wrapping it in MICROPY_FLOAT_CONST may be the
wrong thing to do. So let the user of ULAB_DEFINE_FLOAT_CONST control how
the constant is formed.
Signed-off-by: Damien George <damien.p.george@gmail.com>
REPR_A is used for e.g., broadcom build raspberrypi_pi4b.
This is a trick, so that the appended 'f' is attached to the "0.".
Without this, a diagnostic occurred:
```
../../extmod/ulab/code/numpy/../ndarray.h:27:34: error: invalid suffix "FF" on floating constant
```
REPR_A is used for e.g., broadcom build raspberrypi_pi4b.
This is a trick, so that the appended 'f' is attached to the "0.".
Infinity plus zero is still zero, and nan plus zero is still zero.
Without this, a diagnostic occurred:
```
../../extmod/ulab/code/numpy/numpy.c:64:60: error: pasting ")" and "F" does not give a valid preprocessing token
```
* Properly register submodules of ulab
This is related to
* https://github.com/adafruit/circuitpython/issues/6066
in which, after the merge of 1.18 into CircuitPython, we lost the ability
to import submodules of built-in modules.
While reconstructing the changes we had made locally to enable this,
I discovered that there was an easier way: simply register the dotted
module names via MP_REGISTER_MODULE.
* Fix finding processor count when no `python` executable is installed
debian likes to install only `python3`, and not `python` (which was,
for many decades, python2).
This was previously done for `build.sh` but not for `build-cp.sh`.
* Only use this submodule feature in CircuitPython
.. as it does not work properly in MicroPython.
Also, modules to be const. This saves a small amount of RAM
* Fix -Werror=undef diagnostic
Most CircuitPython ports build with -Werror=undef, so that use of an
undefined preprocessor flag is an error. Also, CircuitPython's micropython
version is old enough that MICROPY_VERSION is not (ever) defined.
Defensively check for this macro being defined, and use the older style
of MP_REGISTER_MODULE when it is not.
* Fix -Werror=discarded-qualifiers diagnostics
Most CircuitPython ports build with -Werror=discarded-qualifiers.
This detected a problem where string constants were passed to functions
with non-constant parameter types.
* bump version number
* Use MicroPython-compatible registration of submodules
* straggler
* Remove spurious casts
these were build errors for micropython
* Run tests for both nanbox and regular variant during CI
* Fix use of object pointers so code builds with MICROPY_OBJ_REPR_D
Signed-off-by: Damien George <damien.p.george@gmail.com>
* Fix use of float constants so they work with MICROPY_OBJ_REPR_D
Signed-off-by: Damien George <damien.p.george@gmail.com>
* Use new float-const macros to simplify definitions of e,inf,nan,pi.
Signed-off-by: Damien George <damien.p.george@gmail.com>
* Add support for MICROPY_OBJ_REPR_C
Signed-off-by: Damien George <damien.p.george@gmail.com>
* Add unix-nanbox build to build.sh script
Building nanbox requires gcc-multilib because it forces 32-bit mode.
Signed-off-by: Damien George <damien.p.george@gmail.com>
* Bump version to 5.0.8
Signed-off-by: Damien George <damien.p.george@gmail.com>