Commit graph

30 commits

Author SHA1 Message Date
Simon Brooke f8c20ab3b1 Still broken, but I believe we're moving in the right direction. 2019-01-24 10:12:08 +00:00
Simon Brooke bf72ae379d Getting closer. WARNING: GC disabled in this commit. 2019-01-22 09:48:26 +00:00
Simon Brooke 3fd322af6f Major progress, multiply now almost works
There's a premature free() somewhere, and I'm not sure why.

Print depends on divide, which is easy, but also on mod and floor (of rationals) which isn't.
2019-01-21 16:14:25 +00:00
Simon Brooke 64fc43e9fc OK, my idea that long multiplication is like long addition is wrong.
It's still broken, but it's broken because of fundamental misunderstanding which tinkering won't solve.
2019-01-20 23:34:46 +00:00
Simon Brooke 22fa7314d6 Mostly fixing and standardising documentation. 2019-01-20 20:37:44 +00:00
Simon Brooke 0f8bc990f2 Much investigation of bignum problems
bignum multiply is still not working, but as bignum read and bignum divide depend on it, it's the problem to hit first.
2019-01-19 16:28:15 +00:00
Simon Brooke 46a4132823 Made it easier to run individual unit tests 2019-01-18 20:55:03 +00:00
Simon Brooke 7f93b04b72 Various refactorings around bignum arithmetic 2019-01-17 17:04:14 +00:00
Simon Brooke d624c671cd Major refactoring, all tests still pass
Bignum issues not yet folly resolved.
2019-01-05 11:42:17 +00:00
Simon Brooke 67443e1d46 OK, adding bignums works; multiplying bignums does not work.
There's no evidence of a bug in reading/printing, because the only way I can currently get a number big enough to trigger the supposed bug is by multiplying, which doesn't work.
2019-01-04 11:04:55 +00:00
Simon Brooke 67802a07b8 Now successfully reading/printing 2 cell bignums
Something is wrong with n-cell bignums, but let's make haste slowly.
2019-01-04 10:40:15 +00:00
Simon Brooke d9d789fdd0 Now creating the correct internal bignum representation
add_integers returns an integer which by inspection of the internal representation is correct, but the print representation is not correct.
2019-01-03 11:21:08 +00:00
Simon Brooke 4295b6e57f This isn't working, but it's VERY promising. 2019-01-01 15:04:44 +00:00
Simon Brooke 6d2cf313cb Very small fix to formatting integers. 2018-12-31 16:24:38 +00:00
Simon Brooke e5f40032e9 Now safely detecting (but not dealing with) integer overflow.
Also printing and reading integers with comma separators.
2018-12-31 16:15:14 +00:00
Simon Brooke 02fe5669d8 Complete reworking of the REPL
which is good in itself, but not what I was meant to be working on.
2018-12-30 17:56:15 +00:00
Simon Brooke 47f4b4c7f7 Bug was in integer_to_string; all tests now pass. 2018-12-30 12:07:38 +00:00
Simon Brooke 61573d85d9 /all-integers-are-bignums: broken, but I don't know why. 2018-12-30 11:10:14 +00:00
Simon Brooke 489f008044 Printing of bignums basically done, not tested. 2018-12-29 23:44:28 +00:00
Simon Brooke 342f0308d3 The beginning of bignums is in place, tests still pass. 2018-12-29 22:30:07 +00:00
Simon Brooke c21a762413 Much better GC, still a few things being missed. 2018-12-29 20:34:31 +00:00
Simon Brooke 40e1f3ca64 Whitespace only changes 2018-12-29 07:40:01 +00:00
Simon Brooke e52ccce0eb Much progress! Half the unit tests pass. 2018-12-28 15:50:37 +00:00
Simon Brooke 75abfb4050 Much better debugging, but it still doesn't work 2018-12-27 21:37:38 +00:00
Simon Brooke 3d5c27cb10 Horribly broken, may have to rethink. 2018-12-26 21:10:24 +00:00
Simon Brooke 9937f344dc Major refactoring. Major problems!
On the right path but it doesn't work yet.
2018-12-26 20:30:14 +00:00
Simon Brooke ae8ba67ed7 Better exceptions, investigation on failure to read/print wide chars. 2018-12-25 15:32:53 +00:00
Simon Brooke 6ee9f9b59a Begun work on bignums; changed integer size to 64 bits
I'm fairly sure the size of a long int on my machines is 64 bit anyway, but for portability it needs to be explicit.
2018-12-25 13:18:37 +00:00
Simon Brooke ad9b1cd7f8 Ratio arithmetic separated out into its own files. 2018-12-24 21:06:58 +00:00
Simon Brooke a5e1d3ccd8 Reorganised source files to make navigation easier
All tests still pass (slightly to my surprise)
2018-12-24 19:27:04 +00:00