Commit Graph

39979 Commits

Author SHA1 Message Date
Sorawee Porncharoenwase
53da8f2bc8 Add parameters that are incompatible with prefab 2019-06-09 10:27:31 -06:00
Matthew Flatt
2f47629f74 optimize: repair some make-struct-type[-property] handling
Don't discard expressions that will fail due to trying to make a
prefab struct type from a parent that isn't a prefab. Similarly, don't
discard a `make-struct-type` with a built-in property that has a
guard. Don't discard a `make-struct-type-property` with a literal
guard procedure that has the wrong arity.

Related to #2685
2019-06-09 07:27:35 -06:00
Matthew Flatt
07e35566e2 optimizer: repair unsafe-mutable-hash-iterate-next and similar
Related to #2685
2019-06-09 07:27:35 -06:00
Matthew Flatt
b133bea92e optimizer: abs expects and produces reals, not numbers
Related to #2685
2019-06-09 07:27:35 -06:00
Matthew Flatt
34cd1e2a2b optimizer: don't discard potential hash errors
If `hasheq` is given an odd number of arguments or if `make-hasheq` is
given a bad argument, then the error should be preserved.

Related to #2685
2019-06-09 07:27:35 -06:00
Paulo Matos
2cd3679d8b
Fix typo s/assuptions/assumptions/ 2019-06-08 22:46:42 +02:00
Ben Greenman
4530a39db8 doc: fasl, add for-label require for serialize 2019-06-07 17:59:34 -04:00
Matthew Flatt
b2e95542d8 io and expander: performance tweaks 2019-06-05 17:52:37 -06:00
Matthew Flatt
a72220a3ac bytecode optimizer: remove exact->inexact on known flonum
And similar for `real->double-flonum`. Also, convert those to
`unsafe-fx->fl` when the argument is known to be a fixnum.
2019-06-05 15:21:49 -06:00
Andreas Düring
3b4cff1bfd Change which values are shown after the copying example
This fixes a possible typing error, as it doesn't make much sense to show
the same value twice.
Show the elements of both structs instead.
2019-06-05 17:19:50 -04:00
Robby Findler
a51231ffa2 use regular old append when possible 2019-06-05 12:52:51 -05:00
Matthew Flatt
c8e9083f0e repair for JIT-inlined unsafe-make-flrectangular 2019-06-05 10:07:04 -06:00
Matthew Flatt
32542de937 doc clarification for syntax-source-module 2019-06-05 08:03:27 -06:00
Matthew Flatt
edd74d6ecf makefile: configure with --enable-racket => no 3m dependency CS
Adjust the makefile that ends up in <builddir> with `--enable-cs` or
`--enable-csdefault` (as opposed to `--enable-csonly`) so that `make
racketcs` doesn't imply `make racket3m` if `--enable-racket` has
supplied an existing Racket.

Also fix `make install-cs` related to GRacket for the case that Racket
3m/CGC isn't built.

Relevant to #2683
2019-06-05 07:07:32 -06:00
Paulo Matos
eec118f4fb
Do not memcpy with null pointer as 2nd arg (#2682)
Caught by test:ubsan:cs
2019-06-05 14:40:23 +02:00
Gustavo Massaccesi
4cf03b7dcd fix typo in reference/read.scrbl 2019-06-05 09:37:08 -03:00
Paulo Matos
c40b24d0d3 Remove stray right paren from configure docs for ubsan 2019-06-04 23:51:27 +02:00
Matthew Flatt
0ca19cfa08 avoid retaining unneeded runstacks in continuations
While a continuation is set up to avoid retaining runstacks, partly by
storing a prompt ID instead of a prompt record, prompt records can
remain on the C stack and get captured anyway. Mitigate that problem
by making the runstack link weak in some prompt record.

Racket CS doesn't have this problem, of course.

Relevant to jeapostrophe/lux#10
2019-06-04 13:53:15 -06:00
Paulo Matos
6eb2175f7a
Fix UNSAFE_FX use of type for v, instead of intptr_t (#2653) 2019-06-04 20:56:10 +02:00
Matthew Flatt
b8617c24e9 unbreak cify build 2019-06-04 09:27:44 -06:00
Matthew Flatt
758e02fa39 schemify: fix bad check on mutated state 2019-06-04 07:34:13 -06:00
Paulo Matos
bcac9682f1
Increase memory limit 10 fold for sandbox test (#2679)
CI tests which run with ubsan enabled and under emulation can intermittently fail due to timeout when there is actually no problem with them.
2019-06-04 15:29:35 +02:00
Matthew Flatt
03710757ef io: fix newline on custom output port
Closes #2677
2019-06-04 07:24:31 -06:00
Matthew Flatt
fcdd8a91dc disable single-flonum reading by default
Add `single-flonum-available?` and `read-single-flonum`, where the
latter controls whether numbers that have an "s" or "f" exponent
marker are parsed as single-flonums are normal flonums. The parameter
is disabled by default, which changes the meaning of most existing
code that has a literal number with "s" or "f", including `+inf.f`,
`inf.f`, and `+nan.f`.

The compiler constant-folds `single-flonum-available?` and
`real->single-flonum` on a literal number, so use a combination of
those to replace most uses of a single-flonum literal. Single-flonums
within quoted data are less convenient.
2019-06-04 06:46:53 -06:00
Paulo Matos
04e89b9445 Add --disable-generation targets to emulated archs
These jobs are currently only running on schedules in order
to avoid blocking out day time activity CI.

It also fixes a build in the build and test script used by gitlab ci
for emulation where configuration arguments are not recursively passed
properly.
2019-06-03 22:51:51 +02:00
Alexis King
88b00d75f7 syntax/parse: Fix syntax instead of quote-syntax in def-litset
fixes #2673
2019-06-01 23:47:05 -05:00
Matthew Flatt
a4545594f6 fix make include setup in configure for Racket CS
Relevant to #2669
2019-05-31 06:44:07 -06:00
Gustavo Massaccesi
daba5db44a simplify code and test for print-pair-curly-braces
After the change that makes printing of struct ignore print-pair-curly-braces
it is possible to simplify the code in io/print and the associated tests.
2019-05-30 13:55:00 -03:00
Matthew Flatt
bdb578606e repairs for bytes-utf-8-index
For traditional Racket, fix `bytes-utf-8-index` to accept 5 arguments
as documented. For Racket CS, fix `bytes-utf-8-index` to return an
index relative to the byte string's start.

Closes #2670
2019-05-30 08:13:38 -06:00
Matthew Flatt
8c652de835 net/url: avoid failure on bad proxy environment variable
Related to #2663
2019-05-29 15:13:03 -06:00
Matthew Flatt
6381e3c009 print-pair-curly-braces: don't affect constructor output
When `print-pair-curly-braces` is true, change the built-in printer to
not use curly braces to group a constructor with its argument.
Restrict its effect to quoted lists, which is more what you expect and
more consistent with `pretty-print`.

Also, change `pretty-print` to not use `{` when using the `list`,
`list*`, `cons`, or `mcons` constructors.

Closes #2662
2019-05-28 19:14:48 -06:00
Gustavo Massaccesi
a121f45aac cs: use print-pair-curly-braces 2019-05-28 10:04:23 -03:00
Gustavo Massaccesi
006265e447 cs: use print-mpair-curly-braces 2019-05-28 10:04:23 -03:00
Jesse Alama
674242dfcf Say "GRacketCS" rather than "GracketCS"
On case-sensitive filesystems on macOS, these are
distinct (leads to a file not found error). On
case-insensitive systems, the change should not matter.
2019-05-28 06:34:58 -06:00
Matthew Flatt
155733eada io: fix function name in some error messages 2019-05-27 13:56:20 -06:00
Matthew Flatt
40846e3ed9 racket/system: add some missing synchronization
These changes are intended to address "input port is closed" errors
that have been showing up with Racket CS, possibly because its
scheduler exposed missing synchronization.
2019-05-27 10:39:19 -06:00
Matthew Flatt
0bffb7035d cs: fix weak equal? hash tables
The pruning step was wrong, causing lists of cleared weak boxes to
accumulate. This leak particularly affected `datum-intern-literal`.
2019-05-27 08:23:52 -06:00
Matthew Flatt
9d3a49f265 cs: move letrec conversion to schemify
Instead of having schemify generate `letrec*` and convert as needed
through a Chez Scheme macro, have schemify perform any necessary
conversion to get the right use-before-definition error messages and
`call/cc` interaction.

This change improves the conversion, since schemify has more
information about bindings, but it also avoids sending Racket terms
through a macro-generating macro at the Chez Scheme level. Avoiding
the macro-generating macro avoids a kind of leak in Chez Scheme, where
a gensym used in a template may become ineligible for GC due to the
way `free-id=?` may both reify the gensym's unique name and attach a
property to the gensym.
2019-05-27 06:03:50 -06:00
Matthew Flatt
fe708871bd cs: avoid a leak due to prefab declarations 2019-05-26 11:56:25 -06:00
Matthew Flatt
f0c39b1f81 cs & threads: fix weak reference from custodian
Using a will executor to turn a reference from weak to strong still
seems like an ok idea, but it needs to be a regular will executor,
because a custodian-registered value is likely to involve have a
nested self-reference.
2019-05-25 18:31:15 -06:00
Ben Greenman
f70b776831 typo: 'any/v' -> 'any/c' 2019-05-25 20:17:01 -04:00
Ben Greenman
870536e698 typo: 'exn:fail:contract:mismatch' -> 'exn:fail:contract' 2019-05-25 13:46:53 -04:00
Matthew Flatt
e43bfd5767 cs: fix compression-conversion build step to support LZ4 2019-05-25 07:36:06 -06:00
Matthew Flatt
fb8368e373 cs: fix handling of non-typical make-struct-type forms
Some checks were missing to guard the transformation of a `struct`
expansion into a Chez Scheme `define-record-type` expansion.
2019-05-25 07:36:06 -06:00
Matthew Flatt
a45115398c makefile: remove incorrect cross-build dependency 2019-05-25 07:36:06 -06:00
Matthew Flatt
b33075f4c5 raco setup: fix target machine reporting 2019-05-25 07:36:06 -06:00
Matthew Flatt
3d3f1a408c get-lib-search-dirs: repair for cross-compile mode
More generally, repair the internal `exe-relative-path->complete-path`
function to work when the current directory is not the original
current directory and `racket` is started with a relative path.
Currently, it happens that `exe-relative-path->complete-path` is
called with a potentially different directory only by
`get-lib-search-dirs`.
2019-05-25 07:36:06 -06:00
Ben Greenman
c63c5168be typo: remove extra 'is'
because `exnraise[foo]` renders "the `foo` exception is raised"
2019-05-25 09:33:01 -04:00
Sam Tobin-Hochstadt
1f2be77387
Create FUNDING.yml 2019-05-24 12:09:34 -04:00
Robby Findler
b49c280706 adjust the recommended location for no-contract.rkt files (and their filenames) 2019-05-23 16:29:09 -05:00