Matthew Flatt
3a99a19c56
reduce double major GCs
...
When a major GC triggers finalization, another major
GC is scheduled immediately on the grounds that the
finalizer may release other values. That was important
at once time, but the finalization and weak-reference
implementation has improved to the point where the
extra ful GC no longer seems necessary or useful.
2015-12-20 08:58:21 -07:00
Matthew Flatt
513849c1e3
incremental GC: make accounting incremental for the root custodian
2015-12-20 08:58:21 -07:00
Matthew Flatt
9711000b70
drop generation 1/2 except in incremental mode
...
Originally, generation 1/2 was intended to delay major
collections when the heap is especially large. It doesn't
seem to be effective in that case, and it can slow down
minor GCs, so continue to use it only in incremental
mode (where it helps significantly with fragmentation).
2015-12-20 08:58:21 -07:00
Matthew Flatt
6957780cd5
incremental GC: tune departure from incremental mode
...
At the completion of an incremental major GC, if incremental
mode wasn't requested recently, schedule an immediate major
GC to reduce the heap back to its normal footprint.
2015-12-20 08:58:21 -07:00
Robby Findler
15e24fce78
adjust set/c to follow the late-neg protocol
...
and make it do some work earlier
2015-12-19 22:17:59 -06:00
Robby Findler
53fa16fc9c
adjust hash/c to more completely follow the late-neg protocol
2015-12-19 22:17:59 -06:00
Robby Findler
bd4b243963
port xml contracts to late-neg
2015-12-19 22:17:58 -06:00
Robby Findler
3b1e535049
port recursive-contract to late-neg
2015-12-19 22:17:58 -06:00
Robby Findler
a712117030
adjust syntax-parse's contract support to use the late-neg projections
2015-12-19 22:17:58 -06:00
Robby Findler
00c0ddb7f6
port vector/c to late-neg projection (and throw away some redundant code)
2015-12-19 22:17:58 -06:00
Robby Findler
efcbd12116
port class/c and friends to late-neg projections
2015-12-19 22:17:58 -06:00
Robby Findler
93d286914e
port new-∀/c and new-∃/c to late-neg
2015-12-19 11:41:38 -06:00
Robby Findler
8e2179a6eb
port struct-type-property/c to late-neg and add some tests for it
2015-12-19 11:41:37 -06:00
Robby Findler
557b039f3c
add more racket/contract non late-neg projection warnings
2015-12-19 11:41:37 -06:00
Robby Findler
4a29792934
port ->i to late-neg
2015-12-19 11:41:37 -06:00
Matthew Flatt
7d2b538293
fix marshaling of a compiled top-level begin-for-syntax
...
Closes #1174
2015-12-19 09:37:32 -07:00
Matthew Flatt
2fad028fd5
fix incremental GC bug
...
Also, fix reporting of whether a minor GC was in incremental mode.
2015-12-19 09:37:32 -07:00
Robby Findler
506c9be0cd
add the ability to make chaperone contracts to ->i
2015-12-18 20:41:51 -06:00
Sam Tobin-Hochstadt
962a72dfda
Properly handle (place ...) in submodules.
...
Closes #1173 and PR 12934.
2015-12-17 19:35:08 -05:00
Sam Tobin-Hochstadt
e5c5feca6d
Bind channel properly in place/context
.
...
Closes #1169 .
2015-12-17 19:17:28 -05:00
Matthew Flatt
074202bdd2
raco setup: don't completely ignore a collection without compilation
...
A collection's "info.rkt" might have `(define compile-omit-paths
'all)` but also other setup actions, so don't completely ignore
a collection directory just because there's nothing to compile.
2015-12-17 07:55:39 -07:00
Matthew Flatt
ad1fe0c529
raco setup: make "nothing to do" count as success
2015-12-17 07:50:20 -07:00
Matthew Flatt
d7184227e1
fix mutation of shared "self" module path index for submodules
2015-12-17 06:21:05 -07:00
ben
0d633fefd3
typo: string-contains precondition
2015-12-16 14:07:16 -05:00
Matthew Flatt
ca237910b3
fix make-syntax-delta-introducer
with a #f argument
...
Closes PR 15202
2015-12-15 17:11:45 -07:00
Vincent St-Amour
3dc49139cf
Fix more missing parties in contract instrumentation.
2015-12-15 14:31:38 -06:00
Vincent St-Amour
d0d6d719af
Abstract contract instrumentation.
2015-12-15 13:37:47 -06:00
Andrew Kent
b4afecab97
slightly more explicit error msg
2015-12-15 11:33:16 -06:00
Gustavo Massaccesi
6985150e0b
Don't drop expressions with side effects in eq? reduction
...
The expression (eq? x y) is reduced to #f when the types of
x and y are known. Reduce this to (begin x y #f) when they
have side effects.
2015-12-15 00:25:00 -03:00
Vincent St-Amour
b8df0a38a2
Add instrumentation for optimized struct/dc.
2015-12-14 13:57:07 -06:00
Robby Findler
bd77a0102c
add blame-missing-party? and document it and blame-add-missing-party
2015-12-14 12:53:35 -06:00
Vincent St-Amour
8bd47f3f8a
Fix instrumentation of struct/dc.
...
Unbreaks the contract profiler.
2015-12-14 10:52:23 -06:00
Matthew Flatt
f7c67f5c45
incremental GC: always use generation 1/2 in incremental mode
...
Also, make nursery 1/4 as big in incremental mode, and
correspondingly tune the amount of work to perform per
collection by 1/4 its old value. Using generation 1/2
reduces fragmentation that would otherwise be increase
by a smaller nursery.
2015-12-13 17:16:05 -07:00
Matthew Flatt
d01aec1b32
JIT: always use buffer padding of 200
...
The main intent of this change is to raise the buffer size
for ARM, but that would leave only 32-bit x86 at size 100, so
just make it size large for all machines.
2015-12-12 14:11:17 -07:00
Matthew Flatt
c6b8ba7c4a
JIT: add missing checks for buffer space
2015-12-12 08:13:34 -07:00
Matthew Flatt
d66af86a58
JIT on ARM: add assertion to check long-jump mode
...
The same assertion is present already in Thumb mode, but
add it to non-Thumb mode.
2015-12-12 07:48:14 -07:00
Sam Tobin-Hochstadt
e45e5712de
Use quote-srcloc
to avoid paths in the compiled code.
...
Closes #1165 .
2015-12-11 13:12:11 -05:00
Robby Findler
6593594ebf
port struct/dc to late-neg style projections
2015-12-10 18:41:37 -06:00
Robby Findler
4aabe505be
fix missing party and indy blame interaction
...
(also add all of the fields to the equal and hashing
functions)
2015-12-10 18:37:50 -06:00
Robby Findler
a952f11bc5
unbreak the creation of first-order contracts that
...
don't supply a val-first projection
2015-12-10 09:21:41 -06:00
Matthew Flatt
f5d5277ae7
fix binding table when shadowing imports
2015-12-10 04:56:14 -07:00
Matthew Flatt
b7dd829a6f
bump version number
2015-12-09 21:06:55 -07:00
Matthew Flatt
835d098eb2
racket/contract: fix blame in arre case
...
Remove an incorrect syntax quote that could cause the contract
system to be blamed (and also lead to an absolute path in
bytecode).
2015-12-09 21:06:55 -07:00
Matthew Flatt
1d7429f1d7
match: avoid recording full paths
...
Use a syntax object to store a source location, letting the
marshal process for syntax objects deal with non-relative
paths.
2015-12-09 21:06:55 -07:00
Matthew Flatt
2743ea06bb
avoid paths in case-lambda
names
...
Filter absolute path names for `case-lambda` in the same way as for
`lambda`.
2015-12-09 21:06:55 -07:00
Robby Findler
3d7d906cc1
tweak and clean up the contract combinators api
...
- uniformly remove the extra layers of calls to unknown functions for
chapereone-of? checks that make sure that chaperone contracts are
well-behaved (put those checks only in contracts that are created
outside racket/contract)
- clean up and simplify how missing projection functions are created
(val-first vs late-neg vs the regular ones)
- add some logging to more accurately tell when late-neg projections
aren't being used
- port the contract combinator that ->m uses to use late-neg
- port the </c combinator to use late-neg
2015-12-09 21:55:58 -06:00
Matthew Flatt
c0f4eb8287
inctemental GC: make finalization more incremental
...
Allow the process of discovering finalizers to be incremental,
including allow interruptions in later levels of ordered
finalization.
2015-12-08 07:53:03 -07:00
Matthew Flatt
6f106d9adc
incremental GC: more precising counting of work done
2015-12-08 05:17:44 -07:00
Leif Andersen
5cd2220366
Add coverall support and use new TravisCI Infrastructure
2015-12-07 17:54:28 -05:00
Vincent St-Amour
5353dd1076
free-vars: add mode that also reports module-bound variables
...
As a separate mode, for backwards compatibility.
2015-12-07 10:42:12 -06:00