Commit Graph

41059 Commits

Author SHA1 Message Date
Matthew Flatt
571944f868 doc: repairs for some impersonate-... arity descriptions
Closes #3003
2020-02-19 17:33:49 -07:00
Sam Tobin-Hochstadt
1d383863d4 Increase timeout to reduce intermittent failures.
Relevant to racket/racket-ci#1.
2020-02-18 17:00:41 -05:00
Ben Greenman
5377d00c90 pkg/lib: change pkg-stage contract to return set
Before: contract expected list but the function returns a set
After: contract expects a set

fix #3029
2020-02-17 16:51:17 -05:00
Ben Greenman
feb70a40c7 doc: pkg/lib, 'force-string?' -> 'force-strip?' 2020-02-17 16:51:17 -05:00
Matthew Flatt
3519f8f3fc racket/class: mark internal wrapped-object as authentic
Combined with a schemify improvement that inlines imported predicates
to expose the record-type test to Chez Scheme, this chage enables
cptypes to prune useless inlined `wrapped-object` selector branches.
That improvement, in turn, reduces code size and redundant checks on
objects that have contracts.
2020-02-17 10:54:05 -07:00
Matthew Flatt
c7059c7c94 cs: encode procedure methodness statically
When a `lambda` form is marked as a method (for arity error reporting)
through a property, translate that to a static flag on the procedure,
instead of a call to `procedure->method`.

The only way we have to attach static information is through the
procedure name, so the encoding already in place for "no name" and
"path-based name" is extended to support a method flag.
2020-02-17 09:02:04 -07:00
Matthew Flatt
5412a4c5fa schemify: remove procedure-naming lets
Since procedures have names that are attached more directly by the
schemify pass, remove simple `let-values` forms wrapping procedures.
This shortcut improves the result of the lifting pass in some cases.
2020-02-17 09:02:04 -07:00
Matthew Flatt
e1c1269939 cs: improve chaperoned structure-property access
Avoid looking up the property twice.
2020-02-17 09:02:04 -07:00
Xu Chunyang
5555019ec2
fix doc typo (#3047) 2020-02-17 10:49:43 -05:00
Matthew Flatt
cdd0659438 cs: fix GC:major logging on exit
Also, add `PLT_GCS_ON_EXIT` to force 2 major GCs on exit, which
is useful for checking peak and end memory use.
2020-02-15 09:11:44 -08:00
Matthew Flatt
e63433c4fd makefile: change INSTALLER_OPTIONS_q to INSTALLER_OPTIONS
Trying to support multiple command-line arguments doesn't work so
easily with nmake, so avoid that.
2020-02-15 08:54:56 -08:00
Matthew Flatt
6738c4e9e2 makefile: add INSTALLER_OPTIONS_q for installer-building options
This change makes it easier for `distro-build` to define new options
that get communicated from "site.rkt" to `distro-build/installer`.
2020-02-14 08:02:49 -08:00
Matthew Flatt
e90df3f2f2 adjust build of libssl for x64-bit Mac OS 2020-02-12 13:49:21 -07:00
Matthew Flatt
760b2924c6 expander: fix typo
Misplaced paren created a misapplication of `weak-box-value`.
2020-02-11 06:37:08 -07:00
Matthew Flatt
7279a59c27 cs: improve make-struct-type on large field counts 2020-02-11 05:43:08 -07:00
Matthew Flatt
56fe13e6f7 cs: small interpreter clean-ups 2020-02-10 20:11:18 -07:00
Matthew Flatt
5e45dd2e1c cs: use anonymous-field record types
Record types with unnamed fields can be significantly more compact,
excdeption in combination with the constrain the the fields all
contain Scheme objects. Saves 2% for DrRacket's initial footprint.
2020-02-10 19:12:00 -07:00
Paulo Matos
fb63f399ef
Add option --enable-werror (#3038)
This adds configure option `--enable-werror` to `./configure` script which adds `-Werror` to build time CFLAGS.
2020-02-10 20:07:20 +01:00
Matthew Flatt
e8fa0613db cs: fix internal issues in struct [property] layer 2020-02-09 18:27:14 -07:00
Matthew Flatt
fd9a5f0357 cs: clean up and improve dump-memory-stats 2020-02-09 11:34:44 -07:00
Matthew Flatt
c5dc0841c1 cs: mark some parameters a always-succeeds 2020-02-08 14:02:15 -07:00
Matthew Flatt
a3f1ab8b60 cs: tweak for chaperoned structure reference
No need for `|#%app|` on chaperoned operation.
2020-02-08 10:13:44 -07:00
Matthew Flatt
7f729a1a2b cs: fix structure property accessor & predicate names 2020-02-08 09:06:57 -07:00
Matthew Flatt
e4c5d54e37 cs: avoid locks on struct-related tables
Avoing a lock speeds up predicates like `struct-predicate-procedure?`,
which speeds up creation of struct chaperones.
2020-02-08 08:20:06 -07:00
Matthew Flatt
1900c0e57a cs: faster struct impersonation 2020-02-08 07:42:58 -07:00
Matthew Flatt
615e4f707a cs: sync with Chez Scheme change for trap check, again
We had to give back some space savings to avoid potential problems
with allocating in the event callback and running out of stack
space[?] when passing an argument. We get to keep most of the
improvement though.
2020-02-07 16:20:21 -07:00
Matthew Flatt
595b62a038 cs: change code generated for defining module variables
Makes a small difference in code + relocation sizes (about 1%)
2020-02-07 08:57:49 -07:00
Matthew Flatt
df039c1b73 cs: sync with Chez Scheme change for trap check
Less code for a trap check saves about 5% code space for DrRacket,
which is about 2% of the overall starting footprint.
2020-02-06 18:54:35 -07:00
Matthew Flatt
65d77ee00c build 64-bit Mac OS native libraries against the 10.9 SDK 2020-02-06 15:12:47 -07:00
Matthew Flatt
7eb0b8534d improve makefile's bundle target
Use `--no-user` for the `raco setup` that is supposed to finish a
bundle. Otherwise, things installed in user scope for the same Racket
version (i.e., the one being bundled) can interfere with the bundling
process.
2020-02-06 12:40:05 -07:00
Leo Shen
08d33a773d net/http-client: add support of deflate content encoding 2020-02-06 11:16:32 -07:00
Matthew Flatt
41175b7e05 cs & zo-parse: preserve marshaled bytes
To support `zo-marshal`, keep original byte-string form of linklets.
2020-02-05 17:11:37 -07:00
Matthew Flatt
3b3bc7ce95 fix documentation history typo 2020-02-05 16:51:02 -07:00
Matthew Flatt
ce85e3c66d ffi/unsafe: fix _enum for non-fixnums
Use `assv` instead of `assq`, because an `_enum` variant's value might
be a non-fixnum integer.

Closes #3036
2020-02-05 06:20:37 -07:00
Matthew Flatt
f615be26a3 cs: fix log-level? and related
Broken cache clearing caused out-of-date results to be returned
sometimes.
2020-02-04 18:04:52 -07:00
Matthew Flatt
e45d0ab9d8 add 'GC:major logging
Racket CS already had a form of 'GC:major logging, but normalize it
and add it to traditional Racket.
2020-02-04 17:36:51 -07:00
Matthew Flatt
4ed253d66e fix line counting with mixed CR and LF
A CR by itself could be incorrectly treated as preceding a later LF,
which would form a CRLF combination if they had been adjacent.

Closes #3033
2020-02-03 17:21:51 -07:00
Matthew Flatt
654f821919 correct pretty-print and improve consistency
Fix a regression in 712494312a, and change other other two printers to
be more consistent for

 #lang racket
 (struct s () #:transparent)
 (define a (s))
 (pretty-print (list (cons a 0) (cons a 0)))
2020-02-03 17:21:51 -07:00
Jon Zeppieri
c358df6de4 [CS] regexp-replace: handle #f submatches
A regexp can match while having sub-patterns that are not used in
the match. In regexp-replace, the "insert" argument can refer to
these unused sub-matches. If a function is given for the "insert"
argument, it will receive these unused submatches as #f values.
If a string or byte-string is given, then any reference to an
unused sub-match (by means of a back-reference) is treated as the
empty string or byte-string.

Fixes #3032.
2020-02-03 17:21:38 -07:00
Matthew Flatt
c81228f31e cs: more clearing of a terminated thread
In particular, clear out the `suspend+resume-callbacks` field so that
retaining the thread object does not retain those callbacks.
2020-02-01 08:15:50 -07:00
Matthew Flatt
67595cc255 cs: include accounting time in reports GC time
When logging GC debugging, a pecentage after the time for a GC reports
what fraction was extra steps after GCing proper, especially the extra
step of memory acounting when that is enabled.

Also, avoid Chez Scheme gensyms even more. Otherwise, using low-level
facilities like `dump-memory-stats` can force the unique name of a
gensym used for a structure type, which causes it to be permanent,
which could be exactly what you don't want when debugging a
memory-rentention problem.
2020-02-01 07:30:00 -07:00
Matthew Flatt
eeb73a6c05 expander: avoid keeping thread in registry lock
Weakly retain the lock holder in a namespace registry. Otherwise, it
can retain a thread that should have been unreachable.
2020-02-01 07:14:49 -07:00
Matthew Flatt
519e4aa9a3 add -O2 for CI builds 2020-01-31 13:30:16 -07:00
Matthew Flatt
2c9bf94451 cs: faster struct hashing and struct->vector
Take advantage of `$record-type-field-count` to replace
`record-type-field-names`, which isn't constant-time.
2020-01-31 13:29:07 -07:00
Matthew Flatt
9a9a5eef3b cs: improve jitify letrec output 2020-01-31 06:12:42 -07:00
Matthew Flatt
cbcd9505aa racocs decompile: handle linklets in 'interpret mode 2020-01-31 06:10:33 -07:00
Matthew Flatt
4acf864b0e delay cross-system-library-subpath call
In `compiler/private/mach-o` --- which is reachable via `racket` due
to being a dependency of `setup/dirs` --- delay the call to
`cross-system-library-subpath` until needed.
2020-01-31 05:23:18 -07:00
Matthew Flatt
8da6e9bd6b cs: use black hole for unsafe-undefined representation 2020-01-30 20:18:12 -07:00
Matthew Flatt
ad9dc342f8 cs: suppress reundant letrec-variable checking
The schmiefy pass already ensures that variables are defined before
use, so skip cpvalid in Chez Scheme. The difference is tiny, though.
2020-01-30 18:59:02 -07:00
Matthew Flatt
37ce9478cd move symbol->immutable-string and keyword->immutable->string out of racket/base
Move them to new `racket/symbol` and `racket/keyword` libraries to
avoid conflicts with existing packages.
2020-01-30 15:53:16 -07:00