forked from racket/racket
-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] master from racket:master #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
pull
wants to merge
1,974
commits into
sandutsar:master
Choose a base branch
from
racket:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Normally, `check-for-break` is not reached in atomic mode, but explicit calls can be inserted by `parameterize-break`, for example.
The `--force-strip` flag implies a subset of `--force` behavior that relates only to source versus built versus binary mismatches. The flag is needed to bridge a mismatch for adding missing packages to a source-distribution build on Windows, Mac OS, or natipkg Linux.
Distinguish the custodian lock from atomic mode, change file ports to use the custodian lock as needed instead of atomic mode, split the rktio lock into sleep-relevant and other, and remove the atomicity requirement for (internally) pushing/popping kill callbacks on threads, repair logging synchronization, and miscellaneous clean up.
A callback during the scheduler's own sleeping function runs in a context where there is no current thread. Closes racket/drracket#762
Also repair `tcp-accept-evt` to use the right custodian, and fix `#%pthread` inlines in "thread" and "io".
Allow reading bytes, writing bytes, checking existence, and listing directories without requiring a place-wide rktio lock. This change sets up a pattern that can be applied to more parts of rktio, making it able to incrementally support more fine-grained parallelism.
Using `SO_KEEPALIVE` on TCP ports makes network communication much slower on Mac OS. The reason is not clear, but for now, it makes the most sense to revert back to not using `SO_KEEPALIVE` on Mac OS.
Thanks to @pkazmier for pointing out the problem!
Even when futures and places disabled, `processor-count` now returns the value that would be returned if futures and places were supported. This brings BC in line with CS, and it means that `racobc setup` will use process-based parallelism by default on AArch64 Mac OS. That's useful, in turn, to avoid timeouts in tests (like "unix-installer-test.rkt" in "distro-build") that have been historically run on x86_64 and expect a reasonably fast setup phase.
Replace a non-atomic `vector-copy!` with an atomic `box-cas!` to avoid a race among threads (especially parallel ones).
Internally, `make-base-namespace` can trigger changes (such as forcing instantiations) in the initial namespace, so take its registry lock.
Like some other problems exaposed by parallel threads, this one was broken for coroutine threads, too.
Also, remove outdated "FIXME" in "foreign-test.rktl".
In the case of waiting for an output port to be flushed, the port lock wasn't being taken as it should be. In some other cases, more locks were taken than needed, or there were rednudant checks where an earlier implementation had released and reacquired a lock.
An immobile cell's addresss might flow into a place that claims not to be GCable and then back to `free-immobile-cell`, which did not handle those pointers correctly. This became broken with 8c586f9. The JPEG encoder ran into this problem, but the main effect is an extremely slow leak. Also, clean up locking of struct results from foreign calls, which are not necessarily allocated as GCable.
Internally, this change adds a `file-has-signature?` function to `compiler/private/mach-o` that isn't used, after all. I've wanted this function enough times to keep it, anyway. Related to #5413
Also, use it in "class-internal.rkt".
The `object=?` and `object-or-false=?` functions involve checking for an impersonator property via `has-original-object?`. It turns out that impersonator-property predicates are slow. They could be made faster, but for now, add an `inspector?` guard, which is cheap and covers the comon case than an object is not impersonated. Related, make `object?` a little faster by basing it on a struct-type predicate instead of a struct-type property predicate. Using the struct-type property was important in the distant past when classes could be derived from existing structure types, but this functionality has not been documented or used for a long time, and it seems safe to stop supporting it.
Support HTTP Basic authentication for proxy servers when using CONNECT tunnels for HTTPS or Git URLs. Credentials can be specified in proxy environment variables using the standard URL format: http://user:password@proxy-host:port Note: this changes the contents of `current-proxy-servers` to be a list of 4-element lists instead of 3-element lists. The parameter guard will coerce 3-element lists to have the needed 4th element.
Macro-introduced module-level bindings that end up being the only binding in the defining module (or, more likely, the only relevant binding after an earlier round of pruning via compilation) could get dropped. The problem was exposed by compiling Rhombus with the `LogReceiver` addition, where a reference to `sync5` (from the expansion of `Evt.sync`) was lost.
* add char-indic-break-property * turn `grapheme-char-step` into a table lookup * move $char-extended-pictographic? to unicode-char-cases
it seems like there can be some complex thread switching that can get this thread-cell to still have #f in it, even after update-cache has been called, and (even worse) control can enter the function that dereferences the thread cell and cause an application of #f. Avoid that possibility by not looking at the thread cell in the body of the function
The threshold needs to be a bit higher to avoid failing.
The internal `expand-for-clause` function changed to expect an extra argument, and I missed that it's exported and used by public functions. The new extra argument lazily indicates whether flattening `in-parallel` is ok. Flattening is not ok at the `for` level when the new `#:on-length-mismatch` clause is used. Still, sending `(lambda () keeps expansions the same, and it seems right for the two uses of `expand-for-clause` in registered packages. It's possible that we'll want to expose the ability to choose, but this commit is intended as a minimal repair.
When `rktio_sleep` is called with a submillisecond timeout and the `poll` system interface is being used, then `rktio_sleep` could return too soon, because `poll` takes a timeout in miliseconds. To avoid that, in the case that `poll` returns immediately with nothing ready, add a `nanosleep` call. This change addresses an occassional failure on Linux in a stress test that is meant check for execessive polling at the Racket scheduler level.
Allowing port reuse may avoid an "Address already in use" error.
Avoid a test failure frmo trying to use the same port as `openssl s_server`.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )