Emilie Burgun
20735ea34c
Fix integer overflow in >>/2 and <</2
2025-01-27 00:10:47 +01:00
Emilie Burgun
f3a92c6551
Fix min/2 and max/2 returning the cast version of its arguments
...
It now behaves the same way as SWI-Prolog.
2025-01-27 00:06:06 +01:00
Emilie Burgun
e2d1a2b6bc
Fix X is gcd(1, 2 ^ 64) triggering a panic
...
The implementation for gcd/2 would cast the second argument to an isize.
2025-01-27 00:06:06 +01:00
Emilie Burgun
d3361c16d8
Fix round() losing precision on bigints
...
The original issue can be reproduced with `X is round(2 ^ 54 + 1) - 2 ^ 54, X = 1.`
2025-01-27 00:05:30 +01:00
Emilie Burgun
9420c7e41e
Fix rnd_i clipping floats that don't fit in Fixnum
...
Fixes #2772 .
The current implementation of `rnd_i` incorrectly casts `f` (an `f64`)
into an `i64`, before casting it into an `Integer`.
This fixes that issue by using `Integer::try_from(f)` instead,
and failing if `f` is infinite or NaN.
A fixme is left for a future PR to properly handle the resulting errors
in floor/1 and friends (right now they can only be triggered through FFI).
2025-01-27 00:02:04 +01:00
bakaq
ada9ba98cc
Make macros private
2024-09-06 17:17:04 -03:00
Bennet Bleßmann
409f56ea37
use an enum for OpDesc spec
2024-08-05 21:25:36 +02:00
Bennet Bleßmann
b1f057b67d
resolve problems from deps upgrade
...
- downgrade reqwest to 0.11.27
- fixes problems with missmatched transitive dependencies between it and warp, mainly http
- replace deprecated ripemd160 with ripemd (as specified in the formers readme)
- indexmap: replace deprecated remove with functionally identical swap_remove
2024-08-04 01:57:25 +02:00
Bennet Bleßmann
fcb41542c3
fix stream.rs UB
2024-07-06 14:30:03 +02:00
Bennet Bleßmann
722975d77e
clippy: use type associated constants
2024-07-06 13:08:59 +02:00
Mark
42f4827854
make indexer downcast Integers to Fixnums when possible, be slightly more judicious about allocating Integers instead of Fixnums ( #2340 )
2024-02-29 16:15:28 -07:00
bakaq
f02c0eacd8
Make "cargo miri test" actually run
2024-01-09 04:38:53 -03:00
Mark
a3e83d59be
fix error detection in int_pow ( #2161 )
2023-11-21 08:32:26 -07:00
Mark Thom
4be320abc8
fix shr crash ( #2158 )
2023-11-14 08:15:19 +01:00
infogulch
9444e62df9
Resolve lints and format
2023-11-04 02:16:54 -05:00
Mark
8f06ef965a
remove non-conforming hyperbolic and log10 evaluable functors
2023-10-28 18:17:43 -06:00
Mark
ae7cf15c70
fix signed modulus bug ( #2134 )
2023-10-28 18:13:42 -06:00
Mark
63cbeb9a3c
correct modulus bug ( #2118 , #2119 )
2023-10-24 14:20:26 -06:00
Mark
1ea397a807
correct (mod)/2 ( #2103 , #2107 )
2023-10-13 14:33:50 -06:00
Mark
62c23166fa
implement ListElisionPolicy to restore previous printer behavior
2023-09-30 16:00:15 -06:00
Jacob
adb5fcf708
Upgrade dashu and some changes
2023-09-13 12:29:12 -04:00
Fayeed Pawaskar
7f0536b51d
Merge branch 'master' into dashu-fixes
2023-09-10 21:51:02 +05:30
Fayeed Pawaskar
af76659830
Removed value method and use deref to get type
2023-09-10 21:40:22 +05:30
Skgland
b2130c2a48
run cargo fmt
2023-09-05 19:12:17 +02:00
Fayeed Pawaskar
7b921fc767
Implemented num_order methods on Integer & Rational numbers
2023-09-04 14:12:47 +05:30
Mark
af44d91568
Merge branch 'dashu' of https://github.com/coasys/scryer-prolog into coasys-dashu
2023-07-24 11:47:57 -06:00
Fayeed Pawaskar
c89217903a
fix all the move errors
2023-07-24 10:12:14 +05:30
Mark
60d9d01a55
Merge branch 'add_float_integer_part_and_float_fractional_part_standard_functions' of https://github.com/pmoura/scryer-prolog into pmoura-add_float_integer_part_and_float_fractional_part_standard_functions
2023-07-21 15:35:28 -06:00
Fayeed Pawaskar
b4e7000eb2
Fixed missing functionality in dashu with their methods still has some issue with move
2023-07-21 14:21:32 +05:30
Mark
1697cd5c7f
add log10, hyperbolic tan and inverse hyperbolic tan functions ( #1898 )
2023-07-20 12:33:51 -06:00
Fayeed Pawaskar
cf345d8174
wip dashu move
2023-07-17 20:40:41 +05:30
Mark
a9cb826bf3
arith_eval_by_metacall may receive a stack variable
2023-07-13 13:58:51 -06:00
Mark
b656700294
read from machine stack in stackful pre-order iterator ( #1812 )
2023-05-28 12:59:01 -06:00
Mark Thom
2c2a9fe01e
correct shl stub_gen
2023-02-03 22:27:15 -07:00
Mark Thom
17450520ba
shift by usize instead of u32 in shl and shr ( #1718 , #1719 )
2023-02-02 20:49:39 -07:00
Adrián Arroyo Calle
36b3150225
Negative shifts ( fixes #1719 and #1718 )
2023-01-30 18:56:37 +01:00
Mark Thom
1ffbf63d20
inline metacalls
2022-10-26 23:36:07 -06:00
Manos Pitsidianakis
a9a06b5297
Fix xor/2 type error reporting wrong argument
...
If first argument n1 in xor/2 is of wrong numerical type, the match
patterns fall through to a catch all case that reports the second
argument in the type error.
Fixes #1626
`xor/2 function reports the wrong argument in type error #1626`
https://github.com/mthom/scryer-prolog/issues/1626
2022-10-24 19:26:43 +03:00
Mark Thom
c36d4a9c9a
unmark cells in arith_eval_by_metacall ( #1497 )
2022-06-01 00:02:11 -06:00
Mark Thom
85b4f235ef
throw errors on cyclic terms when evaluating is/2 expressions
2022-04-07 23:06:58 -06:00
Mark Thom
3b6138eaaa
limit use of stackless iterator to test suite
2022-04-05 21:02:39 -06:00
Mark Thom
f3167f6b5f
add forwarding bit to all heap cells ( #1384 )
2022-04-05 20:34:27 -06:00
Mark Thom
8c99d748e2
allocate floats in dedicated buffer
2022-04-05 20:34:27 -06:00
Mark Thom
0ab928063e
make marker into an iterators, recover post_order_iterator
2022-04-05 20:34:27 -06:00
Mark Thom
c9a34bde3f
removal of old stackless iterator, implementation of new more faithful one
2022-04-05 20:34:27 -06:00
Mark Thom
c2fc33afec
correct float version of sign/1 ( #1360 )
2022-03-19 15:55:23 -06:00
Mark Thom
c5cda99f9d
evaluate floats referenced from the heap by tagged pointers ( #1203 )
2022-01-11 18:42:01 -07:00
Mark Thom
955e1799c8
flatten the instruction dispatch loop
2022-01-06 22:09:36 -07:00
Mark Thom
0404c3bd94
use new heap term representation
2022-01-06 21:44:38 -07:00
Paulo Moura
7a576ee36e
Fix bitwise shift functions type error in the second argument
2021-05-09 19:58:35 +01:00