Matthew Flatt
1e7dbbe020
CS bootstrap: fix structure-operation simplification
2019-07-05 12:12:13 -06:00
Matthew Flatt
3235f648fb
speed up Chez Scheme bootstrap a little
...
Recognize constructor patterns to avoid some indirections.
2019-07-05 08:13:12 -06:00
Matthew Flatt
f0314ddad7
configure: fix failure handling in configure dispatch
...
Closes #2727
2019-07-05 08:13:12 -06:00
Alexis King
ca8870e964
Add property/c
contract combinator for checking first-order properties
2019-07-04 14:08:30 -05:00
Matthew Flatt
21481421a0
unbreak compilation with gcc < v4.5
2019-07-04 07:38:53 -06:00
Matthew Flatt
62f1243136
expander: fix extract mode to not run and work with a submodule root
...
Also, report an error, for now, if a cache directory is not specified
in extract mode, since extraction doesn't currently work without it.
2019-07-03 10:38:12 -06:00
Paulo Matos
8f85df64d9
Add MZ_ prefix to macros NORETURN and UNREACHABLE ( #2723 )
...
Since the definitions of these live in the public header scheme.h,
adding this prefix reduces clashes with other related macros.
2019-07-03 15:32:48 +02:00
Matthew Flatt
182b1c702f
don't expect Racket CS failures on Travis
2019-07-03 06:24:43 -06:00
Paulo Matos
3ddca35655
Remove MZ_DECLARE_NORETURN
...
Removed in e26d2e1
2019-07-03 09:34:10 +02:00
Paulo Matos
e26d2e11d8
Proper cross-platform no return annotations for error functions ( #2709 )
...
Ensures proper noreturn annotations for error functions. Implemented
cross-platform unreachable annotation. No warnings in tested clang or
gcc with default flags. Tested as well on MacOS and Windows.
2019-07-03 08:31:18 +02:00
Sorawee Porncharoenwase
0ffb16bce3
Fix various typos
2019-07-02 12:52:23 -06:00
Paulo Matos
31e7226e45
RacketCS passes testsuite - disallow failure
2019-07-02 08:18:31 +02:00
Matthew Flatt
b0f77a98a3
schemify: improve cross-module optimization
...
The schemify pass collects known-value information as the first step
of processing a linklet body, but the main pass to process the linklet
body may simplify it in a way that exposes new information. For
example, in
(define (call) (values 1 2))
(define-values (x y) (call))
the main pass will inline `call` and expose the fact that `x` and `y`
are always 1 and 2, respectively.
Adjust schemify to inspect the simplified form of a definition and
potentially add new information to known-value information, which is
useful later in the ame linklet body and also as cross-module
information.
2019-07-01 15:19:28 -06:00
Matthew Flatt
ecabcd385a
schemify: add constant folding
...
Like other optimizations that schemify duplicates, constant folding
helps support cross-module optimization. Related "no-prompt"
declarations for primitives can reduce `call-with-module-prompt`s in
schemified output, too, which can interfere with Chez Scheme's
optimizer.
2019-07-01 14:34:25 -06:00
Paulo Matos
831e75d731
Remove SCHEME_NO_EXN block ( #2718 )
...
This is probably related to #2712 .
It's the only occurrence of SCHEME_NO_EXN pointing to the fact that
this is an historical artifact that can be removed.
2019-07-01 16:17:07 +02:00
Matthew Flatt
0e1af0be89
schemify: recognize define-values
split after inlining
...
Recognize `(define-values (id ...) (values rhs ...))` and split to
multiple `define`s after simplifying the right-hand side of
`define-values`. Also, don't split if a define variable is referenced
too early.
2019-07-01 06:11:17 -06:00
Matthew Flatt
c5523fef02
use fixnum-for-every-platform?
for case
2019-07-01 05:41:08 -06:00
Paulo Matos
e97c85b79e
Mark do_raise as NORETURN and ensure it does not return ( #2717 )
2019-07-01 12:55:30 +02:00
Paulo Matos
26cd03ec8f
Do not add explicit return statement when it doesn't exist ( #2715 )
...
Adding return statement where it doesn't exist, causes problems with
functions marked no return so it should be avoided.
Related to #2709 - with this PR, clang won't complain any longer
about issues with xform generated sources about functions marked
no return that do indeed return.
2019-07-01 12:30:45 +02:00
Paulo Matos
fcddf7e9ba
Whitespace cleanup ( #2716 )
...
Requested as a separate PR in #2714
2019-07-01 12:28:22 +02:00
Paulo Matos
da2d75c81b
Trim spaces ( #2657 )
...
It's a non-functional commit.
2019-07-01 12:27:51 +02:00
Matthew Flatt
f8e5526b28
unbreak some 32-bit x86 builds
2019-06-30 11:40:17 -06:00
Matthew Flatt
020c75792c
add fixnum-for-every-system?
...
The `case` macro needs to use the new predicate instead of `fixnum?`,
but delay swittching over until Typed Racket is ready.
2019-06-29 20:18:23 -06:00
Matthew Flatt
b1a5c86702
cs: disable bytecode loaded with a non-original code inspector
...
Racket CS now passes all tests in the core Racket test suite.
2019-06-29 09:20:36 -06:00
Matthew Flatt
4400b70b87
sandbox test: repair for bytecode directory other than "compiled"
2019-06-29 08:33:17 -06:00
Matthew Flatt
97b2982a1d
schemify: update demo
2019-06-29 08:30:08 -06:00
Matthew Flatt
efeb9116d5
cs & schemify: fix set!
-vs.-define
tracking
2019-06-29 08:13:52 -06:00
Matthew Flatt
2bff59766d
adjust a test for Racket CS
...
The fact that Racket uses double hashing and Racket CS uses single
hashing can show up in a test that supplies a `equal-key-proc`
argument to `{impersonate,chaperone}-hash`.
2019-06-29 06:12:14 -06:00
Matthew Flatt
e0d454040a
doc correction for in-syntax
2019-06-29 06:02:36 -06:00
Matthew Flatt
82d40d1509
use wrappers for trig functions in complex variants
...
Using wrappers applies various "sconfig.h"-configured fixups.
2019-06-29 05:46:10 -06:00
Matthew Flatt
2847d1d22a
improve atan
, asin
, and acos
on complex numbers
...
Replace naive calculations with ones based on Kahan's "Branch Cuts for
Complex Elementary Functions" as implemented in Chez Scheme.
2019-06-28 16:51:48 -06:00
Matthew Flatt
8e1b27592f
cs: disable non-decimal string->number
on inexacts
2019-06-28 10:57:59 -06:00
Matthew Flatt
77bcfde77c
fix a memory-accounting test
2019-06-28 10:57:59 -06:00
Matthew Flatt
75ff7870bd
improve /
precision on mixed exact--inexact complex numbers
2019-06-28 10:57:59 -06:00
Matthew Flatt
ff94c6d8d8
cs: fix variable-reference->module-...
on reference to primitive
2019-06-28 10:57:59 -06:00
Matthew Flatt
032ab4e374
cs: add place logging
2019-06-28 10:57:59 -06:00
Noah W M
c84765b554
Update general-function.scrbl
2019-06-27 23:08:13 -05:00
Matthew Flatt
67a1cd9274
fix OpenSSL ephemeral cipher test
...
Thanks to Sam for the repair.
2019-06-27 15:04:45 -06:00
Matthew Flatt
993563a829
openssl: fix a test to suppress some expected error output
2019-06-27 15:04:45 -06:00
Matthew Flatt
d93c12fcda
raise some test timeouts
2019-06-27 15:04:44 -06:00
Ryan Culpepper
3c12957c7e
template: mark pattern variables as disappeared
...
This fixes a bug introduced in 291565.
2019-06-27 22:22:08 +02:00
Paulo Matos
aaf1127093
Shallow clone LLVM
2019-06-27 10:33:48 +02:00
Matthew Flatt
cbaddd2164
cs & thread: repairs for memory accounting and places
2019-06-26 13:50:06 -06:00
Matthew Flatt
8985a409b8
openssl: fix bytes-terminator problem on Racket CS
...
Make sure the argument to SSL_ctrl has a nul terminator.
2019-06-26 13:50:06 -06:00
Matthew Flatt
5e59ae0586
rktio: use only async-signal safe after fork
...
In particular, `malloc` is not async-signal safe.
2019-06-26 13:50:06 -06:00
Matthew Flatt
0e2805a0db
raise timeout on raco exe
test
2019-06-26 13:50:06 -06:00
Paulo Matos
7422abb42a
Remove reference to NO_SCHEME_EXNS ( #2712 )
2019-06-26 17:03:12 +02:00
Matthew Flatt
f97342b138
raco exe test: add no-GUI mode
2019-06-25 21:03:52 -06:00
Matthew Flatt
a0023d5797
fix environment-variables-copy
and case-normalization
...
Preserve the original case of an environment variable for
round-tripping on systems where environment variable names are
case-normalized.
2019-06-25 14:56:39 -06:00
Matthew Flatt
d4123698b4
fix case-sensitivity in a test
2019-06-25 11:15:30 -06:00