Commit graph

898 commits

Author SHA1 Message Date
Justin Ethier
8875c534dc Issue #519 - allow fixnum results from Cyc_div_op
Need to extend this to fast_div, but this is another good edge case.
2024-01-06 09:14:01 -08:00
Justin Ethier
8bf60e9239 Free memory 2023-11-27 19:43:38 -08:00
Justin Ethier
132c745330 Cleanup 2023-11-27 19:33:19 -08:00
Justin Ethier
08bd333701 Cleanup 2023-11-27 18:59:42 -08:00
Justin Ethier
4d902f9a77 WIP - support for bignums in rational parsing 2023-11-20 19:44:17 -08:00
Justin Ethier
bb4e176e42 WIP, read rationals as inexact nums 2023-11-16 19:37:36 -08:00
Justin Ethier
c599dbb62a WIP 2023-11-15 19:43:25 -08:00
Justin Ethier
9c197965b3 Cleanup, add TODO 2023-11-14 19:48:02 -08:00
Justin Ethier
abaed9f6f2 Issue #510 - Implement exact using runtime functions 2023-09-12 19:20:38 -07:00
Justin Ethier
29a27098a8 Issue #510 - Stage macos compat fix
Apparently mp_set_double does not compile on OSX. Need to fix up this portion of the code.
2023-09-11 19:53:43 -07:00
Justin Ethier
0533d3eab0 Merge branch 'issue-509' 2023-09-04 18:31:58 -07:00
Justin Ethier
20fe02d9d9 Issue #509 - Raise error on invalid complex ops
Error on more types of complex comparison operations.
2023-08-23 20:00:44 -07:00
Justin Ethier
cc24c6be6d Issue #511 - Properly recognize +inf.0 / -inf.0 2023-08-21 19:11:59 -07:00
Justin Ethier
ca931300e3 WIP 2023-08-17 19:56:41 -07:00
Justin Ethier
ad1ac3a135 Issue #490 - Proper assv and memv implementations
Both were previously implemented in terms of `assq` and `memq`, respectively.
2022-07-24 10:56:41 -04:00
Justin Ethier
6ffd229dcd Add memory-streams to list of features 2022-05-28 08:21:11 -07:00
Justin Ethier
5101de1547 Issue #143 - Track recursion depth of equalp
This prevents the possibility of segfaulting when traversing arbitrarily complex circular structures.
2022-05-26 13:02:24 -04:00
Justin Ethier
d3f7262414 Issue #143 - Max recursion depth for printing
Enforce a maximum C recursion depth when printing data structures. This protects against cases where a circular data structure may produce infinite output, blowing the stack. The recursive limit is sufficiently large such that a non-circular structure should not be impacted.
2022-05-25 22:28:08 -04:00
Justin Ethier
43267e2939 WIP 2022-05-24 23:02:18 -04:00
Justin Ethier
2e84aaac9c Issue #484 - Improve handling of exporting prims
To fixes:
- Prevent segfault setting a global variable to itself
- Do not throw an error when exporting a primitive that is not defined in the current module, as built-ins are always available in any context.
2021-12-13 19:05:18 -08:00
Justin Ethier
d2915abe6a Issue #477 - Clean up 2021-08-12 23:01:04 -04:00
Justin Ethier
4ff0bca100 Issue #477 - Added CYC_PTHREAD_SET_STACK_SIZE 2021-08-12 22:46:13 -04:00
Justin Ethier
14d4c27eac Issue #472 - Avoid races with tracing GC when allocating large vectors 2021-07-28 22:26:33 -04:00
Justin Ethier
2a9d0ea604 Issue #279 - Support end-result and return from thread-join 2021-07-25 23:02:31 -04:00
Justin Ethier
d99d4a9459 Cleanup 2021-07-23 15:45:08 -04:00
Justin Ethier
efece6a413 Handle complex numbers better for numerator/denominator
Peel off real part if there is no imaginary part
2021-07-22 21:45:08 -04:00
Justin Ethier
48a7958c33 Initial numerator/denominator complex num support 2021-07-22 17:21:52 -04:00
Justin Ethier
826e7895ae Issue #433 - Special case, denominator of 0 is 1 2021-07-22 17:16:53 -04:00
Justin Ethier
f17102178b Continue building-out new numerator/denominator 2021-07-21 19:47:42 -07:00
Justin Ethier
63b7c12ede TODO: numerator/denominator support 2021-07-21 15:47:06 -04:00
Justin Ethier
d9d1b35a62 Issue #351 - Prevent compiled warnings on clang
Cleaned up code to prevent compiler warnings with respect to comparing uint8 with EOF (IE, -1).
2021-07-15 19:20:47 -07:00
Justin Ethier
71cca38b44 Issue #379 - Fix read-line to be compatible with other I/O functions
The function now uses the same port buffer as our other I/O functions.
2021-07-14 23:00:42 -04:00
Justin Ethier
215552cfe7 Working version of Cyc_io_read_line_slow 2021-07-14 17:28:59 -04:00
Justin Ethier
5a50814a61 WIP for read_line slow 2021-07-14 13:40:32 -04:00
Justin Ethier
92bc2364fe WIP 2021-07-13 20:00:36 -07:00
Justin Ethier
8aec6c4c83 Stub out approach for fully-integrated read-line 2021-07-13 19:45:10 -07:00
Justin Ethier
358fe01fc2 Issue #211 - production version of (char-ready?) 2021-06-08 13:38:33 -04:00
Justin Ethier
fd5406a195 Explicitly include sys/select.h 2021-06-08 11:03:27 -04:00
Justin Ethier
766b9066f5 Issue #211 - Initial char-ready implementation 2021-06-07 19:57:13 -07:00
Justin Ethier
61d0f3396b Revert "Eliminate unnecessary code"
This reverts commit 8802ec2a67.
2021-05-25 21:30:25 -04:00
Justin Ethier
8802ec2a67 Eliminate unnecessary code 2021-05-24 19:07:09 -07:00
Justin Ethier
100c9c50ab Fix primitive_type declarations so module compiles 2021-05-24 18:49:45 -07:00
Justin Ethier
6ac96ea5c2 Simplify num argument checks for apply
Avoid calling (length) twice, cleanup, and simplify related code.
2021-05-24 12:41:19 -04:00
Justin Ethier
8526a0676f Require num_args for primitive_type
This will allow us to use the same validation code as for closures.
2021-05-24 12:35:50 -04:00
Justin Ethier
a05959cb90 Converted primitive functions to new calling conventions 2021-05-22 19:45:52 -07:00
Justin Ethier
3baeb7c98e Converted prims to new calling convention 2021-05-21 19:36:27 -07:00
Justin Ethier
6ec2eb4854 Convert primitives to new calling conventions 2021-05-21 13:34:45 -04:00
Justin Ethier
c44f7fcc0b WIP conversion 2021-05-20 19:58:14 -07:00
Justin Ethier
92896d2202 Issue #459 - R7RS #d decimal specifier 2021-05-19 18:50:45 -07:00
Justin Ethier
7be18ce9c5 Use faster integer unbox function, since we know we are receiving a fixnum 2021-05-18 19:14:30 -07:00