Commit Graph

40219 Commits

Author SHA1 Message Date
Matthew Flatt
8b916fc5c1 expander & cs: sync lists of internal primitives
The expander and the rumble layer of Racket CS need to agree on a set
of extra primitives that are referenced by schemified linklets.
2019-07-23 17:49:45 -06:00
Matthew Flatt
c1bc49e45b update racket HISTORY.txt for v7.4 2019-07-23 13:01:31 -06:00
Matthew Flatt
05c82d877c rktio: fix problem with lazy ltps
Don't try to wait on a kqueue or epoll fd that is not yet initialized.
2019-07-23 11:00:05 -06:00
Matthew Flatt
491081eefd cgc: don't use GC_free on runstacks
Using GC_free() on runstacks was a way of reducing leaks with
conservative GC, but the implementation of prompts for delimited
continuations evolved in a way that is incompatible with using
GC_free(). The recent change to make certain runstack links weak
particularly exposed the mismatch.
2019-07-22 14:15:30 -06:00
Paulo Matos
710dc3b67a Remove native cs job
This is now a duplicate thanks to the job explosion work
2019-07-22 17:10:08 +02:00
Paulo Matos
b5b5247279 Explode CI job configuration for Gitlab pipelines
To obtained more fine grained results, I have exploded the pipeline by
splitting jobs compiling each of the versions of racket (cgc, 3m and
cs). I have then used each of these to run the respective tests, and
each test collection have its own job as well. This is a refactoring
to obtain better results and part of the long term plan of being able
to generate a user/contributor readable at-a-glance dashboard for the
racket ci system.

Unfortunately we are hitting the capabilities of gitlab, due to its
inability to represent pipeline dags. Although Gitlab CI maintainers
are aware of this a solution within the platform is being constantly
delayed - we might have to look elsewhere or if we are really
motivated, develop an in-Racket CI system.
2019-07-22 16:49:46 +02:00
Paulo Matos
7b3766ae84 Generate new certificate (valid for 10 yrs) for testing using 2048bits
Fixes #2748

Steps to create this certificate:
openssl genrsa -out key.pem 2048
openssl req -new -sha256 -key key.pem -out csr.csr
openssl req -x509 -sha256 -key key.pem -days 3650 -in csr.csr -out certificate.pem
cat key.pem certificate.pem > test.pem

When filling out the information for the certificate, keep the same
details - some tests depend on it.
2019-07-22 13:17:35 +02:00
Matthew Flatt
fa754ee333 unsafe-poller: fix result handling
Closes #2754
2019-07-21 18:05:57 -06:00
Matthew Flatt
91f5ec3c9b fix GC registration for scheme_unsafe_poller_proc 2019-07-21 18:05:57 -06:00
Matthew Flatt
23cb7c6a1a sgc: fix finalization callback data marking
Callback data should be treated accessible before conaidering any
finalized or weak references.

Relevant to #2734
2019-07-21 18:05:57 -06:00
Matthew Flatt
ab9a5d261e ffi: fix recording of foreign function names
The internal change to a curried mode caused a generic name to be
used.
2019-07-21 18:05:57 -06:00
Matthew Flatt
0f6cd01489 conservative GC: break weak links after finalization
Bring CGC and 3m in line by breaking weak links in CGC only after
ready level-1 finalizations (which correspond to will executors) have
been queued. The chage delays clearing of the weak link until after
the finalizer is run.
2019-07-21 18:05:57 -06:00
Matthew Flatt
deca030d34 fix finalization pessimization
Recurring during finalization marking could potentially delay
finalization that should happen in the same collection.
2019-07-21 18:05:57 -06:00
Robby Findler
93f4c9226b change the way +1 arity functions work so the code is generated
by `contract-out` instead of `->`

This seems to save about a second of startup time in (non-cs) DrRacket
and about .1 seconds in drracketcs.

The code is also theoretically more easily inlined. Still not easy enough, however.
2019-07-20 10:45:23 -05:00
Paulo Matos
2045c4abd8
Fix processor-count for windows systems (#2752)
DOS_FILE_SYSTEM is not defined in rktio, use RKTIO_SYSTEM_WINDOWS instead

Fixes #2674
2019-07-20 16:20:19 +02:00
Geoffrey Knauth
8a1677aff4 change as to has for readability (#2749) 2019-07-19 13:04:38 -04:00
Matthew Flatt
41fb8b4964 cs: fix math test suite
Adjust a recent addition to be guarded by a
`(single-flonum-available?)` check.

Closes #2747
2019-07-19 04:39:29 -06:00
Matthew Flatt
43ba15ca38 expander: fix performance problem with datum->syntax
In a pattern like

 (let loop ([l l])
   (define v (syntax-e l))
   (cond
     [(null? v) 'done]
     [else
      (loop (datum->syntax #f (cdr v)))]))

the running time was O(N^2) for a list of syntax objects of length N.
That pattern is relevant for traversals that use `syntax-case` like

 (let loop ([l l])
   (syntax-case l ()
     [(a . b) (loop #'b)]
     [() 'done]))

Avoid bad behavior by recording in an weak hash table certain pairs
that were previously been produced by `datum->syntax` internally so
that they can be used as-is.
2019-07-18 12:19:29 -06:00
John Clements
68bbd79b3a note about installers-from-built makefile target 2019-07-18 08:13:46 -04:00
Matthew Flatt
e4c6a2560b cs & thread: fix problems with future-shutdown synchronization
Relevant to #2725
2019-07-18 06:05:53 -06:00
Matthew Flatt
91cdc06c91 tanh: single flonum result for range of arguments
Fix the case for > 1.29f-08 and <= 0.549f0.

Closes #2736
2019-07-18 06:05:53 -06:00
Robby Findler
cec813fef6 fix multi-core variant of the racket contract tests 2019-07-18 03:13:57 -05:00
Matthew Flatt
4d361187a2 add extra tests related to procedure-reduce-arity
Related to #2746, but repair was at the Chez Scheme level,
fixing a (currently) Racket-specific patch there.
2019-07-17 17:09:37 -06:00
Matthew Flatt
c397dba145 cs: better build-time error if lz4 isn't available
Mainly for cross-compilation with a Windows target, the Racket CS
build process may need to run `lz4` as an external program. In that
case, complain when `lz4` isn't found, instead of letting `system*`
complain about getting `#f`.
2019-07-17 13:15:50 -06:00
Matthew Flatt
0801478e75 tests/file: fix a tar-gzip test and incorrect raco test setup
Related to #2744
2019-07-17 08:39:48 -06:00
Luke Nelson
9dbf729cdd Fix doc typo "debuG" -> "debug" (#2743) 2019-07-16 23:22:50 -04:00
Ben Greenman
c6a0d3cdb5 doc: chaperones, fix links 2019-07-15 21:58:09 -04:00
Ben Greenman
7001c04e44 typo: 'any' -> 'any/c' 2019-07-15 20:56:35 -04:00
Sam Tobin-Hochstadt
997f5b583c Support chaperoning tcp-listeners as evts.
Found by the Typed Racket test suite.
2019-07-15 09:18:33 -04:00
Ryan Culpepper
228c3132ca openssl: fix test comment, use different listener port 2019-07-15 09:15:39 +02:00
Matthew Flatt
fa155727df cs: unbreak Windows build
Add pe-made "cs_config.h" for Windows.
2019-07-12 11:49:39 -06:00
Ryan Culpepper
b4d7885b16 openssl: fix ssl-addresses, docs for ports->ssl-ports 2019-07-12 00:22:28 +02:00
Ryan Culpepper
65e2d802dd openssl: add key and cert-chain args to ssl-make-{client,server}-context 2019-07-12 00:22:28 +02:00
Ben Greenman
eef651743e
contract: collapsible, prune leaves if eq? and trusted (#2706)
Change the condition for filtering leaf contracts via `eq?`.

Before, we looked for flat or chaperone contracts.
After, look for flat or trusted contracts. So:

1. untrusted chaperones with side effects that are unsafe to drop are not
   dropped, and
2. impersonator contracts can now be dropped (object/c, recursive-contract)
2019-07-11 15:53:16 -04:00
Matthew Flatt
ef4eb585d7 reader: repair readtable re-mapping of # comment forms
Thanks to @LiberalArtist for the bug report and examples.
2019-07-11 12:09:21 -06:00
Matthew Flatt
bad64945e7 racket/fasl: support unsafe-undefined
Since a literal unsafe-undefined can be serialized in compiled code,
support in fasl.
2019-07-11 05:13:39 -06:00
Paulo Matos
e6922e76ea
Ensure that src variable type to test mbsrtowcs is correct (#2735)
When compiling with -Werror (./configure CFLAGS="-Werror" ...),
the test to see if mbsrtowcs exists
failed with pointer type of incompatible type, is char **, should be
const char **. It would proceed to assume mbsrtowcs didn't exist.
2019-07-11 12:20:36 +02:00
Matthew Flatt
85f4fc1337 cs & schemify: fix incorrect constant-folding for {fx,fl}vector
Closes #2729
2019-07-09 17:56:15 -06:00
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