Commit Graph

39979 Commits

Author SHA1 Message Date
Paulo Matos
35d269c29e Implement cross-architectural and native testing on Gitlab
This change implements, on gitlab.com/racket/racket CI pipelines,
cross architectural and native testing using virtualized hardware
using user mode qemu.

It also fixes use of caches/artifacts to deal with passing of the qemu
build and llvm build through stages.

Testing added for Racket:
Native: armv7l (running on rpi3), x86_64
Emulated: arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el,
s390x

Testing added for Racket CS:
Native: x86_64
Emulation: i386
2019-04-02 09:17:42 +02:00
Matthew Flatt
cbd565a3fd fix interpreted begin0 to for a 0-result case
In some cases, 0 results will be represented by a NULL results-array
pointer. Fix the interpreter to detect a single result completion
through a count of 1 instead of a NULL result-array pointer.

Also, remove a bug extra push operation in the JIT-generated code for
`begin0`. (Other features of the JIT-generated code compensated for
the extra push in cases where the bytecode compiler did't optimize
away the `begin0`, so it turns out not to have caused a problem, but
that's a surprising and fragile set of coincidences.)

Closes #2571
2019-03-30 20:41:01 -06:00
Matthew Flatt
e7456d3e9e io: avoid some unneeded work when sending paths to rktio 2019-03-30 20:41:01 -06:00
Michael MacLeod
fdf13f9dfc Fix: make-complex -> make-rectangular 2019-03-29 20:26:39 -03:00
Matthew Flatt
dd9e11e1c7 cs: fix $value confusion in schemify and begin0
The attempted repair for `$value` in 6c195d521c was wrong.
2019-03-29 11:00:44 -06:00
Matthew Flatt
253f0f4383 cs: add guard for prop:arity-string
Relevant to #2569
2019-03-29 10:59:04 -06:00
Matthew Flatt
fdad73df32 cs: fix keyword-procedure chaperone with properties
Closes #2569
2019-03-29 10:46:29 -06:00
Matthew Flatt
793d655770 cs: limit linklet performance stats to main place
Avoids crashes due to a lack of synchronization, and makes
Racket CS consistent with Racket.
2019-03-29 10:21:15 -06:00
Matthew Flatt
6c195d521c cs: fix compilation of begin0 with only one expression
The problem was especially bad in the fallback interpreter,
where an ill-formed `begin` was created as a nested expression.
2019-03-29 10:06:26 -06:00
Paulo Matos
957b3d9aec Clarify in job names what's native and what's emulation 2019-03-29 08:56:47 +01:00
Robby Findler
7a9b1d065e Adjust ->i so that it sorts the pre/post conditions based on the dependency
order (like it does with the argument and result contracts), but ensuring
that the pre and post conditions come before the arguments (if possible)

closes #2560
2019-03-28 17:08:25 -05:00
Robby Findler
e1835074f5 refactor ->i implementation
so that it collects the pre/post conditions into sorted order with the
arguments (based on the dependencies), but then discards that
information and always evaluates the pre and post conditions after the
argument/result contract checks
2019-03-28 17:08:25 -05:00
Matthew Flatt
8aa357b517 repair test to reflect improved tanh precision 2019-03-28 07:41:14 -06:00
bdeket
eea771ea64 improve accuracy of tanh function (#2565)
improve accuracy of tanh function

using the implementation of https://www.math.utah.edu/~beebe/software/ieee/tanh.pdf

by changing from (/ (- 1 exp2z) (+ 1 exp2z)) to (- 1 (/ 2 (+ 1 exp2z)) the accuracy after rounding is increased (I was comparing with bftanh) and removes the fluctuations around z=18.35
using the polynomial for z ϵ(1.290e-8 to 0.549) seems to increase the accuracy after rounding even further
see comparison: http://pasterack.org/pastes/48436

especially the fact that  (< (tanh 18.36)(tanh 18.37)) ;=> #t was tripping me up
the two extra conditions (z . < . 1.29e-8) and (z . < . 0.549) are optional to solve this
2019-03-28 05:36:18 -06:00
Matthew Flatt
82d5b46819 ELF tools: don't treat non-allocated section as allocated
For example, don't fail in shifting file offsets by misinterpreting an
unallocated section's null address as requiring a shift of virtual
addresses.
2019-03-27 15:07:08 -06:00
Paulo Matos
a4704f861c Clarify how string-split separates the input 2019-03-27 08:26:33 -06:00
Matthew Butterick
16a6542735 emphasize that fixnums can be compared with eq? (#2562) 2019-03-27 08:22:16 -06:00
Matthew Flatt
db677018d0 remove unused debugging code
Closes #2564
2019-03-27 08:19:29 -06:00
Ryan Culpepper
0502e537d7 syntax/parse: update fix #1452
- Propagate disappeared uses from any pattern stx, not only those
  attached to forms that themselves have a disappearing use.
- Fix for new local-apply-transformer handling of scopes.
2019-03-26 18:30:43 +01:00
Ryan Culpepper
6c3031a5f7 add optional intro? argument to record-disappeared-uses 2019-03-26 18:30:43 +01:00
Georges Dupéron
85fe092ed9 Fixes #1452 syntax-parse discards the 'disappeared-uses property added by pattern-expanders 2019-03-26 18:30:43 +01:00
Georges Dupéron
c618ec803a Merge pull request #1691 from jsmaniac/syntax-parse-regexp
Adds built-in syntax classes which match regular expressions
2019-03-26 17:20:10 +01:00
Ryan Culpepper
22a9b0cf35 syntax/parse: fix spurious description for eh-alt-set
closes #2551
2019-03-26 16:58:46 +01:00
Ryan Culpepper
076621558e syntax/parse: document that define-eh-alternative-set does not delimit cuts
closes #2552
2019-03-26 16:44:02 +01:00
Alexis King
db3c1d4cb9 units: Avoid use-before-initialization errors in signature contracts
This commit fixes an issue with the fix for contracted bindings in
signatures implemented in commit 5fb75e9f82. While the previous fix
worked in simple cases, it introduced a problem: although signatures
that define contracted bindings were able to refer to other bindings
in the signature in the binding contracts, but anyone doing so was
at the mercy of the exporting unit’s definition order. For example,
given a signature

  (define-signature a^
    [(contracted
      [ctc contract?]
      [val ctc])])

then a unit exporting the signature would cause a
use-before-initialization error if its definition for val appeared above
its definition for ctc.

This limitation did not exist in the units implementation prior to the
introduction of the sets-of-scopes expander in Racket v6.3 (after which
contracted bindings were broken until the aforementioned fix in Racket
v7.2). However, the fact that they worked at all seems semi-accidental:
instead of properly indirecting references to signature bindings within
binding contracts, the contract expressions were simply placed in a
context in which the existing names were bound. However, this meant that
any export that renamed identifiers could cause problems, which the
implementation strategy taken in this commit handles just fine.
2019-03-25 13:58:51 -05:00
Lassi Kortela
1600bc5dc6 file/untar: allow leading as well as trailing blanks (#2553)
Some really old tar files can have both leading and trailing
blanks (nul/space characters) in the same octal number field in the
header.
2019-03-24 18:33:52 -06:00
Robby Findler
683492f6fe allow some redirections in the url that looks for the new version 2019-03-24 19:21:07 -05:00
Matthew Flatt
70e0cac062 compiler/cm: fix ".zo" file locking in -MCR mode 2019-03-23 14:47:36 -06:00
Matthew Flatt
3127b324c4 cs: more attempts to fix Chez Scheme submodule update
When `#:extra-repo-dir` is used in a site configuration, the
extra repos need to have a "master" branch to enable updates.
2019-03-23 10:40:59 -06:00
Matthew Flatt
32330c1327 cs: another fix for Windows build repo update 2019-03-22 20:35:47 -06:00
Matthew Flatt
0736898ccd cs: fix Windows build repo update
repair for 66efceee0e
2019-03-22 17:36:16 -06:00
Matthew Flatt
0fc4f69d1e cs: add needed header space for Mac OS executables 2019-03-22 11:55:24 -06:00
Matthew Flatt
66efceee0e cs: fix Windows script for updating Chez Scheme checkout 2019-03-22 08:41:08 -06:00
Matthew Flatt
e34dbdc4f4 defend against bad hash type in bytecode
The change to make `#hash()`, etc., unique made it easy for the fuzz
tester to crash the bytecode reader.
2019-03-22 07:34:36 -06:00
Matthew Flatt
3501fce192 expander: syntax-make-delta-introducer and mpi shifts
When the result of `syntax-make-delta-introducer` adds scopes,
it needs to carry along any shifts that might be relevant.

The new implementation risks adding lots of redundant shifts. In this
case, it might be worth spending extra effort at shift-transfer time
to check whether the shift is redundant.

Closes #2542
2019-03-22 07:18:06 -06:00
Matthew Flatt
7332060b69 raco make: fix parallel-build prefetch for relative submodule paths
Closes #2543
2019-03-21 18:58:20 -06:00
Matthew Flatt
0020332810 raco demod: discard unusable macro implementations
Prune away "phase -1" macro registrations, because they're useless,
and because the expander's evaluation of linklets now actively rejects
them.
2019-03-21 18:12:49 -06:00
Matthew Flatt
4a26420b14 update "INSTALL.txt" to explain the describe-clients target 2019-03-21 10:40:31 -06:00
Matthew Flatt
ccf8c525fa makefile: add describe-clients target
The `describe-clients` target is a debugging aid for viewing
distro-build site configurations.
2019-03-21 10:12:24 -06:00
Matthew Flatt
1fb8e744dd makefile: build distro packages as machine-independent by default 2019-03-21 07:52:48 -06:00
Matthew Flatt
0be2178f0e cs: fix build of cross-compile racket 2019-03-21 07:52:48 -06:00
Matthew Flatt
d0a98cb42a cs: update for LZ4 compression 2019-03-21 07:52:48 -06:00
Alexis King
8910ff0a39 units: Fix mistake in 86bb85931d that could cause compile-time failures
Specifically, if a contracted binding was applied as a function inside
another contract, it would lead to a syntax error.
2019-03-19 14:24:41 -05:00
AlexKnauth
b471b18876 document procedure behavior of make-variable-like-transformer 2019-03-19 15:43:04 +01:00
AlexKnauth
780647f0eb return a procedure from make-variable-like-transformer
So that make-variable-like-transformer produces a value that passes both procedure? and set!-transformer?
2019-03-19 15:43:04 +01:00
Paulo Matos
1efe1ebbf1 Revert "Fix typo"
This reverts commit 9a731f45f9.

Not a typo as pointed out in 9a731f45f9 (commitcomment-32813840)
2019-03-19 08:38:33 +01:00
Paulo Matos
9a731f45f9
Fix typo
s/intensionally/intentionally
2019-03-18 23:52:32 +01:00
Matthew Flatt
201015a4b6 cs: avoid uppercase in Windows header and library references 2019-03-18 13:10:43 -06:00
Matthew Flatt
f94fba12da struct: disallow #:extra-name with #:omit-define-syntaxes 2019-03-17 06:54:55 -06:00
Robby Findler
ed2381ee59 when collapsing use contract-stronger only on trustworthy contracts 2019-03-17 07:04:23 -05:00