Commit Graph

42787 Commits

Author SHA1 Message Date
Sorawee Porncharoenwase
e9c5d1535a cs: correct a result-arity error test 2020-12-14 19:03:03 -07:00
Matthew Flatt
0a28dd1064 cs: adjust result-arity error messages
Relevant to #3325
2020-12-14 16:10:14 -07:00
Matthew Flatt
f76b814dd7 cs: tweaks for mpairs 2020-12-14 15:10:38 -07:00
Matthew Flatt
e90c2a2138 openssl: doc clarification on supported TLS versions
Closes #3551
2020-12-14 13:41:51 -07:00
Matthew Flatt
0561d71e60 reader: fix imprecision reading some flonums
Reading `1.0e45` produced a different (and less precise) result than
`1e35`. The problem was in the reader's fast path for simple flonum
conversions, where it converts the mantissa and exponent separately
and then combines them. 10^44 is not represented exactly as a flonum,
so there's imprecision when multiplicy it by 10 versus multiplying
1e45 by 1.

Closes #3548
2020-12-14 13:41:11 -07:00
Matthew Flatt
986c73244e racket/port: fix spinning by peeking-input-port on blocked input 2020-12-14 10:13:18 -07:00
Matthew Flatt
a959c7f988 cs: enable GC during atomic callbacks
Callbacks from C generally need to be in atomic mode, but they don't
need to have interrupts disabled at the Chez Scheme level, because
that disables GC.

Without this change, dragging a scrollbar or resizing the window in
DrRacket would suspend GCs as long as the mouse button is pressed ---
which could allocate arbitrary amounts of memory fairly quickly
meanwhile.
2020-12-14 07:17:24 -07:00
Paulo Matos
131557a20f Add texlive to racketci image 2020-12-14 06:45:35 +01:00
Matthew Flatt
635005e882 Chez Scheme: unbreak $app/value rendering for expand/optimize 2020-12-13 19:59:19 -07:00
shuhung
2c26dc1e1a
Format the name of continuation prompt tags
This change recovers Racket-BC style formatting
of continuation prompt tags for Racket CS.
2020-12-13 16:29:14 -07:00
Matthew Flatt
b4a3c7d3da Chez Scheme: unbreak app rendering for expand/optimize
Also, fix some cp0 tests for interpret mode.
2020-12-13 11:06:53 -07:00
Matthew Flatt
1e19e660c9 expander: track core #%datum expansion in 'origin 2020-12-12 20:23:35 -07:00
Matthew Flatt
400f4fa4fb expander: 'implicit-made-explicit property on introduced #%app, etc. 2020-12-12 11:02:58 -07:00
Matthew Flatt
79ccd514c3 Chez Scheme: allow some extra inlining of system primitives
Cross-library inlining is willing to inline a procedure body that
refers to a system primitive, but wasn't willing to propagate a
system primitive directly. Enable that, and use it to simplify
`unsafe-struct` inlining.

Related to #3546
2020-12-12 10:30:40 -07:00
Matthew Flatt
e7cef677ad expander: attach original property to #%app made explicit
Copy any syntax-original property from the parentheses assodictaed
with a `#%app` made explicit, so that originalness is tracked in
the 'origin property.
2020-12-12 08:50:03 -07:00
Matthew Flatt
426b6adc79 bc: sync expanded expander 2020-12-12 08:50:03 -07:00
sorawee
5412211a7c CI: fixes a typo that causes CI to fail 2020-12-12 09:23:08 -05:00
Matthew Flatt
6603fe3ad4 cs: improve single-value and no-return tracking
New `#%app/no-return` and `#%app/value` functions at the Chez Scheme
level allow schemify to communicate that function calls will not
return or will return a single value. The schmeify pass may have this
information because a Racket-level primitive is declared that way
(such as `error` or `raise-argument-error` for no-return, or most
functions for single-valued) or because single-valuedness is inferred.

There's currently no inference for no-return functions, because those
are relatively rare. An `#%app/value` is used by schemify only for
imported, non-inlined functions, since cp0 can already deal with local
functions and primitives.

There's a start here at adapting the "optimize.rktl" test suite for CS
--- and that effort triggered these improvements plus some other
low-hanging fruit. But a lot more is needed to adapt "optimize.rktl"
and to make some additional optimizations happen.
2020-12-11 13:29:35 -07:00
Sam Tobin-Hochstadt
9b1b85015a
Try adding slack notification for GitHub actions. 2020-12-10 12:17:22 -05:00
Matthew Flatt
d228aeb060 cs: fix name of pending-unmarshal procedures
The new encoding of struct constructors and predicates collided with
the encoding of another kind of procedures --- ones that are
unmarshaled on demand in especially large modules. The resulting
symptom was that `object-name` was broken for on-demand procedures.
2020-12-09 12:54:43 -07:00
Sam Tobin-Hochstadt
1173006212 Create racket/place/dynamic to reduce dependencies.
Also adjust implementation of th-places slightly to avoid startup
time dependencies.
2020-12-09 11:50:24 -07:00
sorawee
ef96d98b04 doc: fix typo 2020-12-09 09:48:19 -07:00
Joel Dueck
3260489fd3 Clarify use of build-path/convention-type in scribble docs (fixes #3424)
I constructed this PR using GitHub's edit feature, so the commit has not been tested.
2020-12-09 09:48:03 -07:00
Jack Firth
9b6f02238b Fix bug in example for in-indexed 2020-12-09 09:47:47 -07:00
Matthew Flatt
5986bc9250 Chez Scheme: adjust optimizer test for profiling mode 2020-12-09 09:45:38 -07:00
Matthew Flatt
e02c417de0 cs: change struct procedure representation and inlining
Avoid a global table to register structure procedures, and instead use
a wrapper procedure. At the same time, adjust schemify to more
agressively inline structure operations, which can avoid a significant
performance penalty for local structure types.

Closes #3535
2020-12-09 07:53:52 -07:00
Matthew Flatt
0de549800e Chez Scheme: repair cp0 record optimization 2020-12-09 07:53:51 -07:00
Matthew Flatt
535fa16813 Chez Scheme: make inlining see through make-wrapper-procedure
For example,

 (let ([f (make-wrapper-procedure (lambda (x) x) 2 'metadata)])
   (f 5))

optimizes to just 5.
2020-12-09 07:53:51 -07:00
yjqww6
cbd7a2b2af add cross-library inlining support for procedure with improper formals 2020-12-09 07:53:45 -07:00
Matthew Flatt
d7a226053e cs & schemify: repair treatment of property procedures
A procedures that is a value for a structure-type property was not
always inspected correctly. For example, if such a procedure was the
only one to mutate a module variable, then the variable might not be
detected as mutable.
2020-12-07 20:40:27 -07:00
Matthew Flatt
3c382284a4 cs: better equal-secondary-hash-code
Since CS doesn't use secondary hash code internally, the
`equal-secondary-hash-code` function wasn't really implemented.
Implement it reasonably for applications that might use it to
implement other data structures.

Testing exposed other problems related to error reporting for a broken
hash-function result and for using values within immutable hash
tables.

Closes #3536
2020-12-07 20:40:27 -07:00
Matthew Flatt
a2a456cd2d Chez Scheme: fix a test for weak memory ordering 2020-12-07 16:20:54 -07:00
Jack Firth
5cedca2183 Add an example of how to use in-indexed 2020-12-07 16:19:06 -07:00
Bogdan Popa
ad284de366 assemble-distribution: convert string relative bases to paths
Fixes an issue where the distribution assembler expects these to be
`path?`s.

I originally considered making this change in the ctool command in
`cext-lib` instead, but then I noticed the documented contract for
`assemble-distribution` is `(or/c #f path-string?)`.
2020-12-07 16:17:04 -07:00
yjqww6
c71e6289af add #%$app/no-inline to some raise functions 2020-12-07 05:03:06 -07:00
yjqww6
d81fa3bba0 get rid of rtd-mutables for non-prefab struct 2020-12-07 05:02:47 -07:00
Mark
72809879a4 Tiny English fix 2020-12-07 06:04:56 -05:00
Matthew Flatt
a31a5a6d37 cs makefile: repair for cross-compile for Mac OS (on Mac OS) 2020-12-06 07:57:25 -07:00
Matthew Flatt
ef0b97c65e Chez Scheme: fix error escape during fasl read with W^X
Go back to execution mode when fasl-read escapes with an error.
2020-12-05 19:24:20 -07:00
Matthew Flatt
0e08807d3f Chez Scheme: adapt AArch64 ABI for Mac OS
Apple doesn't follow quite the standard ABI when there are enough
arguments involved to use the stack.
2020-12-05 19:20:57 -07:00
Matthew Flatt
ebffdb1600 fix AArch64 Mach-O update for cross-compile 2020-12-05 17:02:15 -07:00
Matthew Flatt
24076aa4f1 Chez Scheme: update list of supported platforms 2020-12-05 16:12:33 -07:00
Matthew Flatt
daee6485d2 bc: repairs for AArch64 Mac OS 2020-12-05 12:43:45 -07:00
Matthew Flatt
96dd901780 repair Mach-O ad hoc signing 2020-12-05 09:40:38 -07:00
Matthew Flatt
10ea287f3b cs: repair for build's GRacket install step 2020-12-04 17:23:43 -07:00
Matthew Flatt
aa2f163f15 ad hoc signing of generate executables for AArch64 Mac OS
AArch64 Mac OS will not run an unsigned executable. But it will happily run an
executable with an "ad hoc" signature, which is little more than a sequence of
SHA-256 hashes of the file content.
2020-12-04 13:41:10 -07:00
Matthew Flatt
4e05a0d058 repairs for AArch64 Mac OS
Still needed: code signing for installed dylibs and generated executables.
2020-12-04 11:05:40 -07:00
Matthew Flatt
908156b92f repairs to build and run on AArch64 Mac OS 2020-12-03 14:25:18 -07:00
Matthew Flatt
6201055c7a docs: build guide correction on PLT_SETUP_OPTIONS 2020-12-03 06:42:31 -07:00
Matthew Flatt
8ec9bf72d7 docs: clarify which compiled-code literals go through datum-intern-literal
it's only strings and byte strings.
2020-12-02 17:24:16 -07:00