Marc Nieper-Wißkirchen
1f9b4796d6
Parse syntax-rules more strictly
...
See issue #767 .
2021-08-03 17:05:37 +02:00
Alex Shinn
18d0adf13b
signal error on improper lists passed to map/for-each
2021-07-28 17:00:40 +09:00
Alex Shinn
9710962cd2
don't assume map works on improper lists in cpp-define
2021-07-28 10:35:05 +09:00
Jürgen Geßwein
b23db00aed
Fix indentation of test runner output
...
Fix standard test runner so that its output is properly indented and
lines are properly terminated.
Refactor standard test runner so that it is possible to plug in another
runner with different output.
2021-07-25 13:21:34 +02:00
Alex Shinn
5b8e196e0f
parse-seq should check for ignored value in fast paths as well (issue #757 )
2021-07-19 21:49:39 +09:00
Roger Crew
3337049811
shorter factor (issue #751 cont.)
2021-06-30 00:29:54 -07:00
Roger Crew
2759aaa306
add factor-alist and export it (chibi math prime)
...
a more useful version of factor
2021-06-29 23:48:12 -07:00
Roger Crew
680aede9ae
totient and aliquot rewrite + corrected tests for n=1 (issue #751 cont.)
2021-06-29 23:48:12 -07:00
Roger Crew
b89bd9f889
faster factor, (factor 1) = () (issue #751 cont.)
...
no need to go up to sqrt(n), Instead track i^2 and quit when that gets
larger than the (remaining) n (i.e., not the original n)
2021-06-29 23:48:12 -07:00
Roger Crew
41aa1a918e
miller-rabin-composite? rewrite (issue #751 )
...
modular-root-of-one? is replaced with the correct witness tester
2021-06-29 23:48:09 -07:00
Roger Crew
7d39108e72
factor-twos cps version using first-bit-set
...
first-bit-set is way faster than looping
2021-06-29 23:43:53 -07:00
Alex Shinn
73da0a88d4
scan for appropriate 2nd element to take the mean with when calling vector-find-median on an even length vector (issue #754 )
2021-06-29 21:09:41 +09:00
Alex Shinn
f3bccf1f7b
removing unintended export
2021-06-28 17:31:14 +09:00
Alex Shinn
378b56a0c3
adding opt-lambda* and define-opt*
2021-06-28 17:27:22 +09:00
Alex Shinn
0fbd89dd00
ignore keywords in non-keyword positions (issue #753 )
2021-06-28 16:19:43 +09:00
Alex Shinn
05c546e38d
match fix for (a ...) patterns where a was already bound - thanks to Andy Wingo
2021-06-21 16:44:02 +09:00
Alex Shinn
5207bdfde2
Defining list->u8vector (issue #749 ).
2021-06-18 13:04:20 +09:00
Alexei Lozovsky
6f35aa75f4
Fix usage of signbit() in SRFI 144
...
C standard defines signbit() as a macro returning "non-zero value" for
negative arguments (see 7.12.3.6 of C11 standard). SRFI 144's flsign-bit
is defined to return exactly 1.
Make sure to convert the result of signbit() call into "boolean int"
which is either 0 or 1.
This is not a theoretical issue. This causes SRFI 144 test suite to fail
on many architectures that are not x86_64.
GCC on x86_64 compiles signbit() as
movmskpd %xmm0, %eax
andl $1, %eax
which indeed returns either 0 or 1. movmskpd extracts 2-bit sign mask
from the FP value in src register and stores that in low-order bits of
the dst register. Then the unneded extra bit is masked out, leaving only
the lowest bit set or unset.
However, other architectures don't have such conveniences and go with
more direct approach. For example, GCC on ARMv7 produces this:
sub sp, sp, #8
vstr.64 d0, [sp]
ldr r0, [sp, #4 ]
and r0, r0, #0x80000000
add sp, sp, #8
bx lr
which effectively returns either 0 or -1. Generated code masks out
everything but the sign bit and returns the result as is. The value
0x80000000 is the representation of -1.
Even on i386 signbit() is compiled as
fldl 4(%esp)
fxam
fnstsw %ax
fstp %st(0)
andl $512, %eax
ret
which effectively returns either 0 or 512: fxam sets C1 bit FPU status
word to the sign of FP value, then the status word is extracted, the
"sign bit" is masked out, and left as is.
2021-06-06 13:49:44 +09:00
Alex Shinn
5610653c20
servlets should assume html if no Content-Type is specified
2021-05-28 12:07:23 +09:00
Alex Shinn
05ca40fa51
chibi doc fixes for irregex manual
2021-05-14 13:49:07 +09:00
Alex Shinn
4a06997978
guard against failed module-ref
2021-05-13 22:10:30 +09:00
Alex Shinn
037a7b24fc
exporting array-coeffs
2021-05-10 22:56:36 +09:00
Alex Shinn
7b2fbb0bf2
fixing ffi doc extraction for cond-expanded procedures
2021-05-10 18:40:33 +09:00
Alex Shinn
3eab7bf226
package SRFI 179
2021-05-10 17:49:02 +09:00
Alex Shinn
6e5278b7a1
separating out SRFI 179 base library
2021-05-07 22:39:53 +09:00
Alex Shinn
ca47a41ccf
array simplification and performance tweaks
2021-05-07 16:15:48 +09:00
Alex Shinn
12ad1d37d8
add docs and tests for assert, unify with SRFI 145
2021-05-06 20:34:03 +09:00
Alex Shinn
249f4f21ba
allow tracing macros
2021-05-06 10:17:03 +09:00
Alex Shinn
1db8a573f1
more extensive list of constructs not to descend into
2021-05-05 08:08:12 +09:00
Alex Shinn
9a9f974d69
assert improvements: dedup vars, ignore lambdas, allow report:
2021-05-05 07:56:14 +09:00
Alex Shinn
e3083062fa
Flattening indexing further.
...
We can pre-subtract each coeff times its lower bound from the
base coefficient in SRFI 179 indexers.
2021-04-30 14:25:39 +09:00
Alex Shinn
d11106b2f7
Fix upper bounds checks in u64vectors.
2021-04-30 14:02:29 +09:00
Alex Shinn
3c138dc808
Fix validation on specialized-array-reshape.
2021-04-30 13:38:53 +09:00
Alex Shinn
76284f79f0
flattening array indexers
2021-04-28 22:53:16 +09:00
Alex Shinn
ef9daf22c8
handle include-shared in analyze-module
2021-04-26 14:27:11 +09:00
Alex Shinn
cd5bf03537
Merge pull request #740 from lassik/219
...
Add SRFI 219: Define higher-order lambda
2021-04-18 18:58:39 +09:00
Lassi Kortela
7178d22928
Add SRFI 219: Define higher-order lambda
2021-04-18 12:21:32 +03:00
Alex Shinn
d0510bebe6
simplify array-reduce
2021-04-16 23:35:16 +09:00
Alex Shinn
c8f5f49890
add initial SRFI 179 implementation
2021-04-16 19:53:51 +09:00
Alex Shinn
487ea21d77
check value domains on uvector-set! ops
2021-04-16 10:13:37 +09:00
Alex Shinn
d64f159608
fix docs on test-group
2021-04-16 10:10:18 +09:00
Alex Shinn
fc6e5da915
make-u1vector takes an optional fill
2021-04-15 17:02:44 +09:00
Alex Shinn
e74614d4b3
removing redundant uvector definitions
2021-04-14 17:06:34 +09:00
Alex Shinn
cfbd64f085
fixing bug in prime-above
2021-04-14 16:47:29 +09:00
Alex Shinn
3fc9c22245
fix regression from shadowed bindings in process->output+error+status
2021-04-09 23:09:53 +09:00
Alex Shinn
4bd4f08b59
fix longstanding todo and get signature from analyzed procedure forms
2021-04-08 23:00:12 +09:00
Alex Shinn
8c45c3fb19
better text display
2021-04-08 22:59:34 +09:00
Alex Shinn
f7b546769c
update logging tests for fixes in string-split
2021-04-08 10:08:19 +09:00
Alex Shinn
8b27ce9726
add proper grammar support to srfi 130 string-split
2021-04-02 13:51:02 +09:00
Alex Shinn
d80589144d
close stdout/err in process->foo utilities
...
Relying on gc can accumulate many open fd's,
which is bad for code outside of chibi.
2021-03-31 09:23:21 +09:00