| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
| |
Extract 18 (64-bit) or 8 (32-bit) digits per big division.
This gives a 2.5x speedup for a 1024-bit bigint.
|
| | |
|
| |
|
|
| |
Fix #5931 and add test case for it.
|
| |
|
|
| |
This change was made in order to allow things produced with Odin and using Odin's core library, to not require the LICENSE to also be distributed alongside the binary form.
|
| |
|
|
|
|
| |
`core:math/big` has been verified against Python's big integer implementation long enough.
Turn it into a regular regression test using the `core:testing` framework, testing against
a generated corpus of test vectors.
|
| | |
|
| | |
|
| |\
| |
| | |
Add flags to show/export defineable values and warn if a -define is unused in the project
|
| | | |
|
| | | |
|
| |/
|
|
|
| |
This is in line with the other tests, and it does not seem to affect
building the library.
|
| |
|
|
| |
This should tidy up the CI output logs a bit.
|
| | |
|
| |
|
|
|
|
|
|
| |
In September 2022, the Python team addressed a possible DoS issue converting big integers to and from base 10 strings: https://github.com/python/cpython/issues/95778
Converting to/from base 10 is a quadratic operation, so they limited it to 4300 digits: https://discuss.python.org/t/int-str-conversions-broken-in-latest-python-bugfix-releases/18889/83
Github CI still uses an old Python version which parsed our test suite just fine. This patch converts them to hex literals to ensure our test doesn't break when Github does update to a non-vulnerable Python version released after September 2022.
|
| |\
| |
| | |
Changed `//+ignore` to `//+build ignore` and emit a warning for unknown tags
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
This reverts commit a40a53b10447c9223c24cccf565a95f1773d3922, reversing
changes made to 5422a3b17eae821df4adf869960995e922eb0e76.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Introduce new `Path` type and an array of build paths on the build context.
- Resolve input and output paths/files early (before parsing).
- Error early if inputs are missing or outputs are directories.
- Plumb new file path generation into linker stage instead of its adhoc method.
TODO:
- Remove more adhoc file path generation in parser and linker stage.
- Make intermediate object file generation use new path system.
- Round out and robustify Path helper functions.
|
| |/
|
|
|
|
|
|
|
|
|
| |
`_DIGIT_NAILS` is defined as 4, meaning that we use 60 out of every 64 bits.
We can use as few as 1 nail, using 63 bits out of every 64, and all tests will still pass.
However, it needs more testing to see if that's a worthwhile change to make.
For the tests to work properly when changing the nails, Python needs to know about it as well.
In addition, compile the big math code with `-o:speed` going forward.
|
| |
|
|
|
| |
Same for the SHR variant. These are pure implementation details to shift by a leg/word at a time.
Prevent accidental usage.
|
| | |
|
| | |
|
| | |
|
| |
|