Commit Graph

42440 Commits

Author SHA1 Message Date
Matthew Flatt
d8c3edd3e1 io: tiny performance tweak for path-element checking 2019-06-11 18:38:19 -06:00
Matthew Flatt
b1632232ca cs: reduce PLT_LINKLET_TIMES overhead 2019-06-11 16:44:15 -06:00
Matthew Flatt
41dc6f1335 measure resolver time instead of resolve calls in instantiate
The total time of module name resolver calls is more useful, because
each one takes longer, there should be many fewer, and there are
tasks that end up resolving module paths.
2019-06-11 15:53:37 -06:00
Matthew Flatt
e8bd9b83cd repair {Free,Open,Net}BSD build
Use OSSP UUID on {Free,Open}BSD and native UUID on NetBSD.

Building on OpenBSD requires a filesystem mounted with wxneeded.

original commit: e964d7d01a6d115e469c01626896b683d421d599
2019-06-11 09:34:09 -06:00
Matthew Flatt
a0ce64c5c4 rktio: add missing header
NetBSD needs <sys/time.h>.
2019-06-11 08:06:29 -06:00
Ben Greenman
bcd10a9114 file/tar: add #:timestamp parameter
Add a keyword argument that matches the arg. to `zip`

Fixes an "unbound" id in the docs
2019-06-10 13:24:11 -04:00
Matthew Flatt
6a8b48bd72 repair some safeongoodargs in "primdata.ss"
@gus-massa's adjustments to the Racket test suite exposed more places
where the "primdata.ss" spec was wrong.

original commit: 5cb4996c7b317307299e8dd55a25e8e58144a30e
2019-06-10 10:26:55 -06:00
Paulo Matos
451a535fc6
Upgrade to Z3 4.8.5 for static analysis 2019-06-10 17:21:33 +02:00
Matthew Flatt
d75b525170 adjust some error tests that should run only once
The change to `err/rt-test` exposed several compiler bugs by putting
error expressions in multiple contexts, but some error tests depend on
trying to run just once.
2019-06-10 07:25:24 -06:00
Gustavo Massaccesi
845dada257 add some check to err/rt-test 2019-06-10 07:23:24 -06:00
Gustavo Massaccesi
589bd920a9 more tests for (inexact->exact +inf.0)
Add test where the expression is not in tail position, to ensure that the optimizer doesn't remove it.
2019-06-10 07:23:18 -06:00
Matthew Flatt
d136245e3b expander as pkg: repair source mode
When support for machine-independent bytecode was added, the bootstrap
implementation of linklets ended up being slightly uncooperative.
Source terms from the bootstrap became wrapped as machine-independent
form. For various reasons, things worked anyway, except that
`--linklets` mode prints bytecode instead of S-expressions. Fix the
bootstrap implementation to cooperate correctly.

Related to #2688
2019-06-10 07:22:55 -06:00
Matthew Flatt
c020bd4feb racket/fasl: repair for +nan.f
The `racket/fasl` implementation wasn't updated with the change
to disable reading for lfoating-point literals.
2019-06-10 07:22:55 -06:00
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
Gustavo Massaccesi
2089562e73 fix flag in signature of inexact->exact
It fails when the argument is +inf.0, so it's not possible to make it unsafe
automatically when the argument is a number.

original commit: 4d31d65b0e685adca7c01973cf7f30e716356a6b
2019-06-07 23:44:06 -03:00
Ben Greenman
4530a39db8 doc: fasl, add for-label require for serialize 2019-06-07 17:59:34 -04:00
Matthew Flatt
81191397b5 Merge github.com:cisco/ChezScheme
original commit: bb65f1a8e429683e2925cf1678145efe0ade59bb
2019-06-07 08:56:14 -06:00
Paulo Matos
af63b73bad Update shift left that might cause ub
A few shift lefts cause ub because of `(1 << n)` where `n` is 31. 
The constant 1 is signed causing ub. Initially my fix was to do `(1U << n)` however, I have seen the pattern `((U32)1 << n)` elsewhere in the file so decided to follow this.

Caught by ubsan racketcs.
original commit: a902c9ab67010f521f786e2027d4e197d78975a4
2019-06-06 08:57:25 -06:00
Matthew Flatt
a0fea7f0a8 Merge pull request #6 from pmatos/patch-4
Make variables unsigned to avoid ub in calculation
original commit: 2c404b7232555b405027819fd1841cefe5322180
2019-06-06 08:56:48 -06: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
Paulo Matos
4988a45c06 Make variables unsigned to avoid ub in calculation
According to ubsan we get several times into undefined behaviour due to signed overflow:
foreign.c:91:21: runtime error: signed integer overflow: 3291370622602663862 * 3 cannot be represented in type 'long int'

This happens only when the symbol name is relatively large like as for the call:
symhash (s=0x5555558caab8 "(cs)set_enable_object_backreferences")
original commit: 1e1c91869443d8a22beeebfcbe6fa14f9c3e2a6e
2019-06-05 22:49:55 +02: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
Steven Watson
21c7dd839d Added support for building chez with VS2019. (#435)
added support for Microsoft Visual Studio 2019 on Windows
original commit: 549b4468b619a9377332509472a4346ac223b5ae
2019-06-04 16:37:57 -04: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
Gustavo Massaccesi
6a353c5a0e make bootfiles in travis-ci
original commit: af7ea3bab08aa0d64b4b06373a0d9d9be320fd0f
2019-06-02 09:03:09 -03: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