Commit graph

47 commits

Author SHA1 Message Date
70376c6529 Careful debugging of the memory leak problem. At this stage,
stack frames for interpreted (but not primitive) functions appear not to be being
reclaimed, and the oblist doesn't seem to be being fully reclaimed.
2026-02-20 19:39:19 +00:00
b97401bfde Work on the equality of numbers. The good news: two additional unit tests pass.
The bad news: I'm getting segfaults.
2026-02-15 00:50:30 +00:00
08a7c4153c Reformatted code; made paths in generated documentation relative. 2026-02-14 15:32:59 +00:00
222368bf64 Stage one clean up of test files. Some unit tests are still creating temporary files in
the project root directory, which is still to be fixed; and *I think* known-failing
tests which I don't intend to fix immediately should be marked in some way.
2026-02-14 14:04:41 +00:00
5e6363e6ae Fixed the horrendous 'unbound symbol nil' bug. Also work on documentation and
unit tests.
2026-02-14 11:40:52 +00:00
f6d7fcea1e Woohoo! Huge decrease in cells not cleaned up, with fixing one stupid bug. 2026-02-13 12:50:02 +00:00
004ff6737c feature-2: allocating cells with count = 1; 7 unit tests (all bignums) fail. 2026-02-12 10:17:11 +00:00
351ca5bd17 Work on reducing allocation leaks in read_number(). This is now improved, but not yet satisfactory. 2026-02-04 22:57:10 +00:00
36696254f2 Work on the bignum problem, ongoing. 2025-07-05 13:58:18 +01:00
7c84cb433a Changed from using bit-shifts to using arithmetic operators. More tests fail, but... 2025-03-16 09:38:00 +00:00
bef9be4914 Merge branch 'master' into develop 2025-03-14 10:27:30 +00:00
e9f49d06a6 Added code::blocks project experimentally; also, added macro for bits 2025-03-13 18:26:38 +00:00
cbcced70b2
Just poking around and trying to remember where the problems are. 2023-04-08 11:17:18 +01:00
2b8f31d2ce
Paths of #include files 2021-09-12 15:03:18 +01:00
2c96e7c30d
Sanitising debug-printf formats, mostly. 2021-09-12 13:41:27 +01:00
b0a49fb71d
Restandardised formatting. 2021-08-17 16:37:04 +01:00
93d4bd14a0
Generally, changed working with tags as strings to as values.
This seems both cheaper and safer; what's not to like?
2021-08-17 16:09:00 +01:00
70d176982b
Work on exception handling, especially around ratio arithmetic
Much simplified but will break things!
2021-07-25 17:02:28 +01:00
baf8d6669d OK, it is BETTER, but not FIXED.
(expt 2 63) goes weirdly wrong - returns T.

Internal representation is correct, so fault is in print.
2019-02-15 18:49:52 +00:00
71354d0f86 Woohoo! Actual goddamned progress! Multiply might be working!
Print definitely isn't!
2019-02-15 14:19:41 +00:00
23e4f0befa A bit of work on time, but it doesn't actually work yet. 2019-02-05 09:59:05 +00:00
b15c0e8f89 Tactical commit 2019-01-28 15:02:46 +00:00
a355a28ffa Tactical commit whilst converting to URL_FILE 2019-01-24 19:36:00 +00:00
f8c20ab3b1 Still broken, but I believe we're moving in the right direction. 2019-01-24 10:12:08 +00:00
bf72ae379d Getting closer. WARNING: GC disabled in this commit. 2019-01-22 09:48:26 +00:00
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
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
22fa7314d6 Mostly fixing and standardising documentation. 2019-01-20 20:37:44 +00:00
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
46a4132823 Made it easier to run individual unit tests 2019-01-18 20:55:03 +00:00
7f93b04b72 Various refactorings around bignum arithmetic 2019-01-17 17:04:14 +00:00
d624c671cd Major refactoring, all tests still pass
Bignum issues not yet folly resolved.
2019-01-05 11:42:17 +00:00
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
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
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
4295b6e57f This isn't working, but it's VERY promising. 2019-01-01 15:04:44 +00:00
6d2cf313cb Very small fix to formatting integers. 2018-12-31 16:24:38 +00:00
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
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
47f4b4c7f7 Bug was in integer_to_string; all tests now pass. 2018-12-30 12:07:38 +00:00
61573d85d9 /all-integers-are-bignums: broken, but I don't know why. 2018-12-30 11:10:14 +00:00
489f008044 Printing of bignums basically done, not tested. 2018-12-29 23:44:28 +00:00
342f0308d3 The beginning of bignums is in place, tests still pass. 2018-12-29 22:30:07 +00:00
75abfb4050 Much better debugging, but it still doesn't work 2018-12-27 21:37:38 +00:00
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
ad9b1cd7f8 Ratio arithmetic separated out into its own files. 2018-12-24 21:06:58 +00:00
a5e1d3ccd8 Reorganised source files to make navigation easier
All tests still pass (slightly to my surprise)
2018-12-24 19:27:04 +00:00
Renamed from src/integer.c (Browse further)