libera/clasp - IRC Chatlog
Search
17:46:23
yitzi
bike: #1577 is ready for a review whenever you have time. I just copied the updated function from SBCL versus rewriting the whole thing. Didn't really think it was worth the time since someelse has already solved this.
1:40:37
paulapatience
Ok, I think it's just the uintptr_t type which is a problem in the number converter
2:17:04
paulapatience
I think I fixed it. It might be neater to add more overloads to Bignum_O::create, but this way the PR is more localized.
2:18:02
paulapatience
The build error was quite clear, actually, once I devoted 100 % of my attention to it for a few minutes
2:19:37
paulapatience
The only possible issue I see with the PR now is whether long on !Linux && !FreeBSD (i.e., macOS) is guaranteed to fit in a Fixnum and unsigned long not. But the behavior right now should be the same as it was before.
2:59:47
paulapatience
This is what is confusing with Bignum_O::create in the templated Integer_O::create functions: if we actually call Integer_O::create<I>, we end up calling Bignum_O::create(I v), and the only available overloads for that are int64_t, uint64_t, double, gc::Fixnum, and sometimes (unsigned) long long.
3:00:19
paulapatience
So in fact, this PR, although it seems to be building in CI, is not quite complete.
3:00:55
paulapatience
The two options I see are the following: make Bignum_O::create templated, or cast the arguments to Bignum_O::create in the various implementations of Integer_O::create.