Commit Graph

42181 Commits

Author SHA1 Message Date
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
Matthew Flatt
204d9d6f01 Chez Scheme: increase available registers on Arm64 2020-08-05 05:55:28 -06:00
Matthew Flatt
744e69c0c1 add flsingle
The `flsingle` function takes a flonum and discards precision that
wouldn't fit in a single-flonum. If single-precision arithmetic is
somehow useful, then combine flonum operations with `flsingle` to
discard precision on the result; even on Racket BC, that's likely to
perform better than using generic arithmetic on single flonums.
2020-08-05 05:55:28 -06:00
sorawee
dcf034280e
Preserve multivalued-ness of stream in stream operations 2020-08-04 07:02:40 -06:00
Sorawee Porncharoenwase
e2b8fdb553 cs: change multiple values mismatch error to match bc
Related to #3325
2020-08-04 06:53:11 -06:00
Matthew Flatt
85497fe230 bc: another test repair for raco exe 2020-08-03 17:00:26 -06:00
Alexis King
6683e17fdc makefile: Add a PKG_UPDATE_OPTIONS config variable
This is analogous to PLT_SETUP_OPTIONS, but for the `raco pkg update`
step. This is useful for adding an option like `--pull try` to ignore
failures to update local clones.
2020-08-03 15:29:33 -05:00
Paulo Matos
2ee8807298
Clean up uuid dependencies from workflows (#3331) 2020-08-03 19:21:48 +02:00
Paulo Matos
e62b3b8c1c
Fix tool name in SARIF files depending on racket build mode (#3328)
This should replace the toolname in sarif files to workaround the lack of tags when uploading them.

See here for a request to add that:
https://github.com/github/codeql-action/issues/129
2020-08-03 17:46:04 +02:00
Jay McCarthy
09ff1344e8 git-checkout display repo on error 2020-08-03 10:30:11 -04:00
Paulo Matos
77fd6936b1
Fix target names post-CS becoming the default (#3327)
Fixes target names to fix ubsan workflows.
2020-08-03 16:16:36 +02:00
Matthew Flatt
181d08ad9a reference: fix sorting in in-directory example 2020-08-03 06:27:34 -06:00
Matthew Flatt
0f910e391c raco exe test: adapt to "bc" suffix 2020-08-03 05:54:28 -06:00
Matthew Flatt
fcd7295457 remove uuid lib from linking specs 2020-08-03 05:37:27 -06:00
Matthew Flatt
2d0961adcf avoid dependency on libuuid by using /dev/urandom on non-Windows 2020-08-02 18:33:13 -06:00
Matthew Flatt
2cca030eff Chez Scheme: fix tests to work outside of source directory 2020-08-02 18:30:43 -06:00
Matthew Flatt
0866ddea01 fix a test for racketbc 2020-08-02 16:18:05 -06:00
Matthew Flatt
b32b3178bc raco: recognize racobc when trying to distinguish from setup-plt 2020-08-02 14:58:51 -06:00
Matthew Flatt
9b5dd35adc makefile: fix cross builds 2020-08-02 14:28:45 -06:00