Matthew Flatt
15587d84fe
cs & schemify: repair bad cross-module copy propagation
...
Closes #2732
2019-07-09 15:20:24 -06:00
Matthew Flatt
0284bdaa58
cs & thread: fix chaperone-evt
on will executors
...
Closes #2730
2019-07-09 13:48:30 -06:00
Matthew Flatt
8c052df959
cs & thread: repair for custodian sync witth future host thread
2019-07-09 13:37:24 -06:00
Matthew Flatt
9c0a3abfdb
cs: repair for 32-bit ELF
2019-07-09 09:04:58 -06:00
Matthew Flatt
8e85441410
repairs for procedure-spcialize
2019-07-08 11:48:15 -06:00
John Clements
003f0dd72e
Post-release version for the v7.4 release
2019-07-08 02:33:57 -07:00
Matthew Flatt
839fb84eec
cs & io: fix security-guard call in current-directory
2019-07-07 10:11:37 -06:00
Matthew Flatt
79d6b9bc18
json: preserve old behavior in terminating a number
...
The json parser has allowed "1x" as "1" and "1e-0x" as "1.0", so
keep that behavior for now.
2019-07-06 05:59:14 -06:00
Dmitry Moskowski
bbb8707a4a
json: fixing scientific notation exponent sign bug
...
if exponent contains leading zeroes it's sign will be always `+`. example:
$ racket (6s 38ms)
Welcome to Racket v7.3.
> (require json)
> (jsexpr->string 0.000001)
"1e-06"
> (string->jsexpr (jsexpr->string 0.000001))
1000000.0
2019-07-06 05:57:22 -06:00
Matthew Flatt
c0104a29ef
CS bootstrap: avoid pessimizing primitives
...
Speed up the bootstrap process by more directly referencing primitives
that won't be replaced in the top-lvel namespace for simulating Chez
Scheme.
2019-07-05 15:22:02 -06:00
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