Lassi Kortela
3a5f884144
Simplify snprintf usage
...
snprintf(buf, sizeof(buf), ...) is the canonical idiom.
2021-08-07 23:17:38 +03:00
Alex Shinn
d11106b2f7
Fix upper bounds checks in u64vectors.
2021-04-30 14:02:29 +09:00
Alex Shinn
bf03c1cfa1
restore sexp_make_ephemeron even when not unifying filenos
2021-04-27 19:11:36 +09:00
Alex Shinn
4d22949f71
disable fileno unification by default
2021-04-27 18:30:43 +09:00
Alex Shinn
3cf62f033a
store stack traces directly in top-level exceptions to more consistently be able to report them from C
2021-04-26 21:40:39 +09:00
Alex Shinn
ade90906f9
only reify a fileno from an integer if the fileno is still open
2021-04-18 07:01:10 +09:00
Alex Shinn
af43c3214f
add sexp_user_exception_ls variadic convenience
2021-04-16 10:06:03 +09:00
Alex Shinn
7ea15f3810
check for wrapping to negative in hash lookup of cell (issue #735 )
...
Without this chibi can crash after 129 open file descriptors.
Note the bug referenced would also indirectly be fixed if
process->string-list properly closed its ports, but we
shouldn't rely on that.
2021-03-31 06:43:27 +09:00
Alex Shinn
1828ef068e
fix env size (issue #453 )
2020-12-28 12:07:54 +09:00
Alex Shinn
54f55569e2
document sexp_lookup_type (issue #718 )
2020-11-25 14:36:54 +09:00
Alex Shinn
77aab98784
Merge branch 'master' of github.com:ashinn/chibi-scheme
2020-09-22 17:37:33 +09:00
Alex Shinn
4ef6c57d3e
propagating #i prefix across radix prefixes (issue #706 )
2020-09-22 17:37:22 +09:00
Ben Davenport-Ray
9278222396
Prevent crashing from arithmetic exception when spawning lots of commands
...
This fix is rather dumb, but it prevents things from crashing when
forking a lot and creating file handles. I assume that this is where
the filehandles go, but I don't have a good guess.
2020-09-18 17:08:25 -04:00
Alex Shinn
9793fa0edf
inc fileno count on sexp_make_input_port (issue #690 )
2020-08-27 10:23:56 +09:00
Alex Shinn
60c4007e6f
adding thread-interrupt! so that (chibi repl) can preserve continuations (issue #686 )
2020-08-25 14:09:29 +09:00
Alex Shinn
0f6e0f56e0
assume polar tail for inexact complex following / (issue #333 )
2020-08-20 10:30:23 +09:00
Alex Shinn
287753f2e3
fix inexact polar notation (issue #333 )
2020-08-20 09:54:09 +09:00
Alex Shinn
60ee6d70d0
move remaining fields to start of types
2020-07-30 00:19:21 +09:00
Alex Shinn
23e62275df
fixing scheme bytevector for 32bit arch
2020-07-28 15:09:40 +09:00
Alex Shinn
edcddd7299
fixing 64-bit uvectors
2020-07-27 16:08:24 +09:00
Alex Shinn
983829cab1
better inexact computation for ratios which overflow double (issue #671 )
2020-07-15 16:38:56 +09:00
Alex Shinn
2bdaebe8c7
wrap uncaught non-exceptions (issue #664 )
2020-07-06 16:20:40 +09:00
Alex Shinn
2b82ef68d4
fix placement of dl in context (issue #657 )
2020-06-09 01:13:28 +09:00
Alex Shinn
4ec2167f62
making the abi a little more stable by default
2020-06-08 00:54:36 +09:00
Alex Shinn
6caca77426
adding (scheme bytevector)
2020-05-31 23:24:51 +09:00
Alex Shinn
95310e5823
no more strcpy/sprintf (issue #653 )
2020-05-27 18:35:18 +09:00
Alex Shinn
61f2983fad
apply an explicit max vector length check (issue #636 )
2020-05-22 14:13:48 +09:00
Vitaliy Mysak
5726c2e490
Prevent stack overflow in sexp_mark_one (issue #601 )
...
Replace explicit recursion by heap allocations
in sexp_mark_one code.
This prevents crashes caused by stack overflow.
In particular, fixes issue #601 .
As an optimization, allocate a fixed sized stack buffer first,
which should be enough for "normal" uses.
When that stack overflows, switch to heap.
Also, store "ranges" on the stack, instead of the actual sexp's,
using the fact that sexp's of a single parent are continous in memory.
This patch doesn't remove recursion on the context saves
because it didn't seem like they overflow in practice.
But changing that is simple having the stack interface.
2020-05-15 20:11:50 +02:00
Vitaliy Mysak
f449bd157d
fix compilation under std=c89
...
There were few things that prevented successful compilation
using c89 standard. (and other c* standards in case of gcc).
Fix them in this small patch.
Changes in 27/rand.c:
- Use __GNU_SOURCE__ instead of __GNU_LIBRARY__
or else any of -std=c* options don't work with gcc
- Add a check before using rand_r() as suggested in rand_r(3)
- Move _WIN_32 definitions to "else" branch because it uses the most portable version
2020-05-13 11:12:02 +02:00
Alex Shinn
83e82f55a7
tweaks for fixed-size heaps, fix issue #632
2020-05-11 10:43:36 +09:00
Alex Shinn
e3db106f96
instrumenting alloc times and sizes
2020-05-06 23:39:01 +09:00
Alex Shinn
9100909ae1
better defaults and debugging for fixed size chunks
2020-05-05 00:41:20 +09:00
Alex Shinn
1795014dae
throw an error on get-output-string on non-string-ports (issue #621 )
2020-03-25 17:15:06 +09:00
Alex Shinn
72971fd4f4
pipes should be escaped in symbols (fixes issue #571 )
2019-09-23 11:53:54 +08:00
Andrew Gwozdziewycz
e5ae89c9c6
Define / detect explicit features for BSD platforms
2019-08-02 11:33:59 -07:00
Andrew Gwozdziewycz
ac467ea314
Add features for the various BSDs.
...
This could and should be done cleaner. Works as a proof of concept at
this point in time.
2019-08-02 01:56:51 -07:00
Alex Shinn
4cba9d3e6c
Merge branch 'master' of github.com:ashinn/chibi-scheme
2019-04-02 22:31:45 +08:00
Alex Shinn
08140baa3e
making builtin write bounded to avoid cycles (fixes issue #532 )
2019-04-02 22:31:33 +08:00
Ondřej Majerech
7d82b76bc3
Fix tests on Windows
2019-03-13 22:56:06 +01:00
Alex Shinn
a94a2c7902
uvector fixes
2019-02-25 23:01:35 +08:00
Alex Shinn
7b3413ec1a
fixing bounds checks on u32 and u64 vectors
2019-02-21 02:55:35 +08:00
Alex Shinn
ef0a8bd199
restoring efficient read-line
2019-01-27 22:10:35 +08:00
Alex Shinn
9569460a58
add compile-time option to store precomputed index->cursor tables for strings
2019-01-26 05:35:27 +08:00
Alex Shinn
2b4394ea74
adding initial support for SRFI 160 uniform vectors
2019-01-15 23:43:50 +08:00
Alex Shinn
2c37dfedd3
Merge pull request #500 from mnieper/syntax-case
...
Implement syntax-case
2018-12-09 04:08:31 +08:00
Alex Shinn
521e23e3c7
Reduce error in sexp_read_float_tail (from Taylor R Campbell)
...
scale*10 is computed exactly until scale exceeds 2^54/10; in
contrast, scale*0.1 may not be computed exactly, and fl(0.1) is not
even 0.1.
WARNING: This change is not complete -- it does nothing to prevent
overflow with very long strings of digits after the decimal point.
2018-12-02 12:22:14 +08:00
Marc Nieper-Wisskirchen
152b20f244
Implement syntax-case
2018-12-01 13:48:25 +01:00
Alex Shinn
5bbef040c5
BSD portability fixes from Taylor Campbell
2018-11-27 23:01:23 +08:00
Marc Nieper-Wisskirchen
5519679dcd
Display zeros in bytevectors as '0'
2018-11-08 16:16:07 +01:00
Marc Nieper-Wisskirchen
f9be5c8d46
Make write/display output bytevectors with hex constants (issue #483 )
2018-11-06 14:22:38 +01:00