Lukas Böger
b8a3500222
build with -Wall when using clang or gcc
2021-07-20 15:37:56 +01:00
Lukas Böger
36f7d86cad
fix CMake 3.12 list(REMOVE ...) invocation
2021-07-20 15:37:56 +01:00
Lukas Böger
d7c28021c8
set default build type, add sanitizer build support
2021-07-20 15:37:56 +01:00
Lukas Böger
e9391c93fb
mimic Makefile's ntp and stdint conditional compilation
2021-07-20 15:37:56 +01:00
Lukas Böger
434a36f0b9
remove error on apple/unix and set platform string
2021-07-20 15:37:56 +01:00
Alex Shinn
83aefd12d0
Merge branch 'master' of github.com:ashinn/chibi-scheme
2021-07-19 21:49:57 +09: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
Alex Shinn
2d21500185
updating copyright year
2021-07-19 21:48:47 +09:00
Alex Shinn
31921b4553
Merge pull request #755 from lubgr/cmake-modernization
...
CMake update 1/3: basic modernization (preserving all current functionality)
2021-07-19 09:48:38 +09:00
Lukas Böger
92d5f8eae1
apply static flag for bootstrap exec, too
...
This is required for the Windows configuration to succeed at all. It
should also be beneficial when we start sharing object code between
bootstrap and actual executable.
2021-07-13 14:03:24 +01:00
Lukas Böger
0f1dfad91c
eliminate last global flag, move library definition
2021-07-13 14:03:24 +01:00
Lukas Böger
b0c0afcb73
prefer configure_file over manual file(WRITE ...)
2021-07-13 14:03:24 +01:00
Lukas Böger
514d58264f
Use builtin variable for shared object suffix
2021-07-13 14:03:24 +01:00
Lukas Böger
2f663dff33
fix repeated target_link_libraries on bootstrap target
2021-07-13 14:03:24 +01:00
Lukas Böger
7595ecbc09
replace more global commands by target-based ones
2021-07-13 14:03:24 +01:00
Lukas Böger
4b5ebffa5b
build static libs by default on windows
2021-07-13 14:03:24 +01:00
Lukas Böger
9fab5cf4dd
generate and add clibs.c only for static builds
2021-07-13 14:03:24 +01:00
Lukas Böger
5402d86323
remove trailing whitespace
2021-07-13 14:03:24 +01:00
Lukas Böger
7c46c618d0
don't build bootstrap exec by default
...
This doesn't necessarily have an effect though, as we need the
bootstrapping executable anyhow for building other targets.
2021-07-13 14:03:24 +01:00
Lukas Böger
f6e67edf01
export compilation database
2021-07-13 14:03:24 +01:00
Lukas Böger
4cc384ecac
use VERSION file for project settings and lib output
2021-07-13 14:03:24 +01:00
Lukas Böger
b603e04d9e
align library name with build artifact
2021-07-13 14:03:24 +01:00
Lukas Böger
76bce1ce1c
prefer CMake's builtin BUILD_SHARED_LIBS option
2021-07-13 14:03:23 +01:00
Lukas Böger
eb6c9db857
use unversioned library basename
2021-07-13 14:03:23 +01:00
Lukas Böger
c79145b051
require CMake version >= 3.12
2021-07-13 14:03:23 +01:00
Lukas Böger
3c6ce4e23b
don't ignore CMakeLists.txt
2021-07-13 14:03:23 +01:00
Alex Shinn
c05e820d71
adding contributing file
2021-06-30 18:35:24 +09:00
Alex Shinn
77365ccc6f
Merge pull request #752 from wrog/math_prime_fixes
...
(chibi math prime) fix miller-rabin-composite?, factor, etc (issue #751 ), add factor-alist
2021-06-30 18:25:30 +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
Alex Shinn
ead366870b
Merge pull request #747 from ilammy/sign-bit
...
Fix usage of signbit() in SRFI 144
2021-06-06 13:59:13 +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
d9f5eaac61
Merge pull request #748 from ilammy/ffi-failures
...
Initialize variables in FFI tests
2021-06-06 13:43:09 +09:00
Alexei Lozovsky
cc23efac16
Initialize variables in FFI tests
...
These ones are used to compute averages. If they are not initialized to
zero, they might contain some garbage. In fact, they almost always do
on platforms other that x86_64, failing the FFI tests. If optimizations
are enabled, these tests usually fail on x86_64 too. The reason this
went unnoticed is contrived set of coincidences.
2021-06-06 11:19:52 +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
0388d9880c
Merge branch 'master' of github.com:ashinn/chibi-scheme
2021-05-26 10:06:00 +09:00
Alex Shinn
8247e13baf
remove superfluous + when printing complex numbers with negative ratio imaginary parts
2021-05-26 10:05:40 +09:00
Alex Shinn
fa59b289a6
Merge pull request #746 from lubgr/small-doc-fix-on-static-executable
...
Fix documentation on building a standalone statically linked executable including compiled libs
2021-05-25 11:37:28 +09:00
Lukas Böger
6ffba28b02
use SEXP_USE_STATIC_LIBS_NO_INCLUDE for static build
2021-05-24 22:42:21 +01:00
Alex Shinn
05ca40fa51
chibi doc fixes for irregex manual
2021-05-14 13:49:07 +09:00