Commit Graph

42299 Commits

Author SHA1 Message Date
Mauer-Oats
da5f77e277 add guards to two uses of seen 2020-08-20 18:42:28 -06:00
Stephen De Gabrielle
2ebb44781f fix typo
removed p from subdirectopry
2020-08-20 18:39:33 -06:00
Sorawee Porncharoenwase
c4ecada443 methods in struct can be supplied multiple times 2020-08-20 18:38:09 -06:00
Bogdan Popa
d259596a35 pkg: deduplicate dependency list for install command 2020-08-20 18:37:37 -06:00
Matthew Flatt
20cac0056c fix 32-bit ARM barrier preprocessor conditional 2020-08-20 08:58:00 -06:00
Matthew Flatt
ee467fbbb4 pb interpreter: work around old compiler bug 2020-08-20 08:51:36 -06:00
Matthew Flatt
9bde4bc009 update some native-lib build notes 2020-08-20 07:48:15 -06:00
Matthew Flatt
85f3e9f5cb arm32: using ARMv6 memory fence 2020-08-20 07:34:56 -06:00
Matthew Flatt
7a373de4cb Chez Scheme: repair ptr <-> void* conversions for pb on 32-bit 2020-08-20 06:46:23 -06:00
Matthew Flatt
1260f888c9 Chez Scheme: add test case for recent continuation GC repair 2020-08-19 09:04:21 -06:00
Matthew Flatt
2742962988 update "racket/src/native-libs" scripts
Repairs for tool drift and over-specific patch rules.
2020-08-18 16:40:44 -06:00
Robby Findler
afb68b29d4 improve contract0stronger? for between/c vs integer-in 2020-08-18 14:28:26 -05:00
Matthew Flatt
7d8a95a943 for/set: same body handling as for/list, etc.
Change `for/set` to use `split-for-body`. Also, adjust the
documentation of `for/fold/derived` to recommend using
`split-for-body`.

Closes #3351
2020-08-16 16:41:38 -06:00
Matthew Flatt
413106413d cs configure: use strip -S on racket with --enable-embedfw on Mac OS
Closes #3349
2020-08-16 16:00:38 -06:00
Matthew Flatt
4a4e12bc8c cs: repair register-finalizer-and-custodian-shutdown
Refine the approach in 91abd020d1 so that it's only used when needed
to work for the combination of custodian management and unsafe
finalization.

Also, improve the documentation to clarify the constraints on
`register-finalize` due to its implementation in CS by ordered
finalization. This constraint is also reflected in a new `#:ordered?`
argument to `register-custodian-shutdown`. Any existing code that uses
`register-custodian-shutdown` plus `register-finalizer` directly
instead of `register-finalizer-and-custodian-shutdown` would need to
be updated for Racket CS, but code like that should be rare to
nonexistent.

Closes #3352
2020-08-16 07:37:22 -06:00
Matthew Flatt
bf06162210 cs: revert custodian change that creates a leak
Reverts the repair attempt in 91abd020d1. The problem with switching
to a "late" reference is that it's based on ordered finalization in
Racket CS, which doesn't work on values that can refer back to
themselves.
2020-08-16 06:29:18 -06:00
Matthew Flatt
f42ddd2853 cs: scale GC trigger by number of running places
Since all places share the same pool of memory, scale the
amount of memory allowed before trigger a (minor) GC by
the number of running processes.
2020-08-15 19:29:32 -06:00
Matthew Flatt
e47260cb36 cs: fix memory accounting for large objects 2020-08-15 18:46:00 -06:00
Matthew Flatt
a2bc613a4c cs configure: improve propoagation of LIBS
Propagate `LIBS` to rktio's configure, and also move some flags in
`LIBS` that should be in `LDFLAGS`. The immediate result is to repair
the detection of iconv for rktio on FreeBSD.

Closes #3353
2020-08-15 16:22:28 -06:00
Matthew Flatt
61f701dcff io: avoid atomic-mode crash when locale converter is not available
Related to #3353
2020-08-15 16:11:24 -06:00
Matthew Flatt
91abd020d1 cs: allow unsafe finalizers on managed objects
Change the regular weak reference in a custodian, which allows
`will-executor`-based finalization, to a "late" weakk reference, which
allows both `will-executor` and `register-finalizer` finalization.

Closes #3352
2020-08-15 12:58:29 -06:00
Matthew Flatt
7b3850eab0 doc repair for register-finalizer-and-custodian-shutdown
There's no `#:weak?` argument, because `#f` is the only sensible
value.
2020-08-15 12:58:29 -06:00
Matthew Flatt
0f530dd9f4 cs: fix custodian callbackks to run on exit
Related to #3352
2020-08-15 12:58:29 -06:00
Matthew Flatt
c96673d198 Chez Scheme: repair for MinGW 2020-08-15 12:58:29 -06:00
Matthew Flatt
57be9a7702 fix FORCEINLINE for MinGW 2020-08-15 07:49:07 -06:00
Matthew Flatt
5894550833 makefile: adjust pb fetch for older git clients
Use `git fetch -q origin $(PB_BRANCH):remotes/origin/$(PB_BRANCH)` to
make sure a `remotes` branch is added locally.
2020-08-15 07:46:11 -06:00
Matthew Flatt
9619205a9d cs: update Rumble layer for incremental promotion in GC 2020-08-14 17:43:54 -06:00
Matthew Flatt
3aa2d99000 repairs to initial merge of incremental promotion of objects 2020-08-14 17:43:54 -06:00
dyb
48487ed6fb Added support for incremental promotion of objects
- the collector now promotes objects one generation higher at a time
  by default.  previously, it promoted every live oldspace object to
  the selected target generation, which could result in objects
  prematurely skipping one or more generations and thus being
  retained longer than their ages justify.  the biggest cost in
  terms of code complexity and performance is the recording of
  pointers from older newspace objects to younger newspace objects
  that could not previously occur.
    gc.c, alloc.c, externs.h
- the collect procedure now takes an additional optional minimum
  target generation argument to allow the new default behavior to
  be overridden.
    7.ss, primdata.ss,
    gcwrapper.c,
    7.ms, root-experr*,
    smgmt.stex, release_notes.stex
- added cn flag to control collect-notify
    mats/Mf-base
- resweep_weak_pairs now sets sweep_loc to orig_next_loc rather than
  first_loc since the latter could result in unnecessary sweeping of
  existing target-generation weak pairs.
    gc.c
- added set of S_child_processes[newg] to S_child_processes[oldg]
  in S_do_gc code handling decreases in the maximum generation.
    gcwrapper.c
- a specialized variant of the collector is used in the common case
  where the max copied generation is 0, the min and max target
  generations are 1, and there are no locked generation 0 objects
  is now used. with the default collection parameters and no locking
  of generation 0 objects, these collections account for 3/4 of all
  collections.
    gc.c, gc-011.c (new), gcwrapper.c, externs.h, c/Mf-base
- maybe-fire-collector no longer tries to be so precise and instead
  just counts the number of generation-bytes allocated since the
  last gc.  suprisingly, rebuilding the s directory requires about
  the same number of collections with this coarser (and less
  expensive) measurement.  this change also fixes a problem with
  too-frequent collections when the maximum-generation is set to
  zero.  to make the determination even less expensive, a running
  total of bytes in each generation is now maintained in a new
  bytes_of_generation vector, and maybe-fire-collector is no longer
  called when the collector is running.
    alloc.c, gc.c, gcwrapper.c, globals.h
- copy now copies two pairs at once only if they are in the same
  segment, which saves a few memonry references and tests and turns
  out not to reduce the number of opportunities significantly in
  tested programs.
    gc.c
- occupied_segments, first_loc, base_loc, next_loc, bytes_left,
  bytes_of_space, sweep_loc, and orig_next_loc are now indexed
  by [g][s] rather than [s][g] to improve locality in the default
  (and common) case where there are only a handful of active
  generations.
    globals.h, types.h, segment.c, gc.c, gcwrapper.c, prim5.c
- now maintaining 16-byte architectural stack alignment (if the
  incoming stack is so aligned) on all x86 platforms except
  i3nt/ti3nt.  more recent versions of gcc sometimes generate sse
  instructions that require 16-byte stack alignment.
    x86.ss

[Merge for Racket includes additional changes to combine with in-place
 marking - mflatt]
2020-08-14 17:08:04 -06:00
Matthew Flatt
45a84dcb97 schemify: drop variable names that are unused for errors
Using just a number makes the code smaller, and it makes the
checked-in ".scm" vary less going forward.
2020-08-13 16:04:20 -06:00
Matthew Flatt
be6312314b cs: check linklet imports when a procedure is expected 2020-08-13 15:52:45 -06:00
Matthew Flatt
ab1b164982 cs ffi: fix handling of struct results 2020-08-13 13:54:10 -06:00
Matthew Flatt
1e91db8053 raco setup: add debug logging to report available concurrency 2020-08-13 13:54:10 -06:00
Jesse Alama
b722d81059
Remove dead store identified by a static analyzer (#3341)
Evaluate to_quoted, possibly for side effect (emitting a
quote), but ignore its return value.

Co-authored-by: Jesse Alama <jesse@lisp.sh>
2020-08-11 19:11:54 +02:00
Matthew Flatt
983601f611 makefile: update for distro-build cooperation 2020-08-10 06:37:09 -06:00
Matthew Flatt
543dab5964 cs: fix iteration on copy of a mutable hash table
Incorrect initialization of the copy's iteration state for a hash
table meant that table sizes larger than 32 looked like tables of only
32 elements when iterating (including when printing).

Closes #3344
2020-08-09 15:51:39 -06:00
Matthew Flatt
4f0290186b cs: fix optimizer bug
An optimization pass used mostly for inlining did not reqcognize
`quote`, and it could replace a quoted name with a constant-propagated
value.

Closes #3339
2020-08-08 13:03:40 -06:00
evdubs
980a9fbd4d Ensure sorting is applied for in-directory
In initial-state, the call to dir-list will sort the results of directory-list. However, in initial-state, there is a different path that will call directory-list without sorting. This change makes these paths consistent.
2020-08-07 07:59:00 -06:00
Matthew Flatt
776b69e399 avoid race on places and initialization for eval
Force visits on internal Chez Scheme modules before starting a place,
so that there won't be a race among places to visit the modules.
2020-08-07 07:19:58 -06:00
Paulo Matos
5faf14c45b
Fetch PB to start LGTM build 2020-08-07 12:17:17 +02:00
Matthew Flatt
52ca857796 makefile: repair BC cross build 2020-08-06 16:52:56 -06:00
Fred Fu
e4dc27a2b8 fix typos in comments 2020-08-06 16:29:58 -06:00
Matthew Flatt
581f02d6f8 expander: fix make for generating BC source
Also, update "README.txt" to explain both CS and BC setup.
2020-08-06 14:09:53 -06:00
Matthew Flatt
06ed5bf8f5 cs gracket: unbreak zero-argument case on Unix 2020-08-06 07:45:19 -06:00
Matthew Flatt
6317669f51 cs gracket: fix handling of X11 flags and -singleInstance
X11 flags and -singlreInstance were being filtered from the command
line but not propagated to the `racket/gui`.
2020-08-05 18:01:21 -06:00
Matthew Flatt
adabeeb249 reference: restore accidentally removed docs 2020-08-05 10:43:46 -06:00
Matthew Flatt
65b69a91e5 add needed store fence in list-bits management 2020-08-05 06:25:12 -06:00
Paulo Matos
342e95cf32
Fix variable replacement (#3337)
By using `{$threadLibs}` it meant we ended up with a command line with `{hreadLibs}`, which breaks the arm32le build.
2020-08-05 14:10:17 +02:00
Matthew Flatt
29a6ca6737 Chez Scheme: increase FP registers for x86_64 2020-08-05 05:55:28 -06:00
Matthew Flatt
2b73b20704 Chez Scheme: on Arm64, implement popcount with CNT and ADDV
Initial measurements suggest that performance is unchanged, but it
at least generates less code.
2020-08-05 05:55:28 -06:00