Skip to content
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

Make OncePerX subtype Function #57289

Merged
merged 1 commit into from
Feb 8, 2025

Conversation

christiangnrd
Copy link
Contributor

These are essentially functions, and by subtyping Function, it allows them to be passed into functions that accept a function as an argument without having to update code on the package side.

For example, the macOS version getters are defined as OncePerProcess constants for 1.12+, without this PR, code that accepts a function where the macos_version is passed in would break.

Should be backported to 1.12.

@giordano giordano added the backport 1.12 Change should be backported to release-1.12 label Feb 6, 2025
@nsajko nsajko added parallelism Parallel or distributed computation multithreading Base.Threads and related functionality labels Feb 6, 2025
Copy link
Member

@vtjnash vtjnash left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having an API declare an argument as being ::Function is a bit of an anti-pattern in Julia, but there doesn't seem likely to be any harm to doing this here anyways

@vtjnash vtjnash added the merge me PR is reviewed. Merge when all tests are passing label Feb 6, 2025
@IanButterworth IanButterworth merged commit dbd5280 into JuliaLang:master Feb 8, 2025
7 checks passed
@christiangnrd christiangnrd deleted the onceperfunc branch February 8, 2025 20:19
KristofferC pushed a commit that referenced this pull request Feb 11, 2025
(cherry picked from commit dbd5280)
@KristofferC KristofferC mentioned this pull request Feb 11, 2025
32 tasks
KristofferC added a commit that referenced this pull request Feb 13, 2025
Backported PRs:
- [x] #57142 <!-- Add reference to time_ns in time -->
- [x] #57241 <!-- Handle `waitpid` race condition when `SIGCHLD` is set
to `SIG_IGN` -->
- [x] #57249 <!-- restore non-freebsd-unix fix for profiling -->
- [x] #57211 <!-- Ensure read/readavailable for BufferStream are
threadsafe -->
- [x] #57262 <!-- edit NEWS for v1.12 -->
- [x] #57226 <!-- cfunction: reimplement, as originally planned, for
reliable performance -->
- [x] #57253 <!-- bpart: Fully switch to partitioned semantics -->
- [x] #57273 <!-- fix "Right arrow autocompletes at line end"
implementation -->
- [x] #57280 <!-- dep: Update JuliaSyntax -->
- [x] #57229 <!-- staticdata: Close data race after backedge insertion
-->
- [x] #57298 <!-- Updating binding version to fix MMTk CI -->
- [x] #57248 <!-- improve concurrency safety for `Compiler.finish!` -->
- [x] #57312 <!-- Profile.print: de-focus sleeping frames as gray -->
- [x] #57289 <!-- Make `OncePerX` subtype `Function` -->
- [x] #57310 <!-- Make ptls allocations at least 128 byte aligned -->
- [x] #57311 <!-- Add a warning for auto-import of types -->
- [x] #57338 <!-- fix typo in Float32 random number generation -->
- [x] #57293 <!-- Fix getfield_tfunc when order or boundscheck is Vararg
-->
- [x] #57349 <!-- docs: fix-up world-age handling for META access -->
- [x] #57344 <!-- Add missing type asserts when taking the queue out of
the task struct -->
- [x] #57348 <!-- 🤖 [master] Bump the SparseArrays stdlib from 212981b
to 72c7cac -->
- [x] #55040 <!-- Allow macrocall as function sig -->
- [x] #57299 <!-- Add missing latestworld after parameterized type alias
-->
@KristofferC KristofferC removed the backport 1.12 Change should be backported to release-1.12 label Feb 13, 2025
@giordano giordano removed the merge me PR is reviewed. Merge when all tests are passing label Feb 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
multithreading Base.Threads and related functionality parallelism Parallel or distributed computation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants