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

Add Base.isrelocatable(pkg) #53906

Merged
merged 2 commits into from
Apr 1, 2024
Merged

Conversation

fatteneder
Copy link
Member

This PR adds a utility function isrelocatable(pkg) that can be used to check if pkg is already precompiled and if the associated cachefile is relocatable.

The reason to implicitly perform the isprecompiled check is that the exact same computation needs to be done to find the right .ji.

A pkg is said to be relocatable if

  1. all include() paths are relocatable (they start with @depot),
  2. all include_dependency() paths are relocatable (they start with @depot and track_content=true was used to include them).

@fatteneder fatteneder added compiler:precompilation Precompilation of modules backport 1.11 Change should be backported to release-1.11 labels Mar 31, 2024
@fatteneder fatteneder added needs news A NEWS entry is required for this change and removed needs news A NEWS entry is required for this change labels Mar 31, 2024
@fatteneder
Copy link
Member Author

@KristofferC I think this should get a news entry once backported.

@staticfloat staticfloat merged commit e9d25ca into JuliaLang:master Apr 1, 2024
10 of 11 checks passed
@fatteneder fatteneder deleted the fa/isrelocatable branch April 2, 2024 12:06
KristofferC pushed a commit that referenced this pull request Apr 9, 2024
This PR adds a utility function `isrelocatable(pkg)` that can be used to
check if `pkg` is already precompiled and if the associated cachefile is
relocatable.

The reason to implicitly perform the `isprecompiled` check is that the
exact same computation needs to be done to find the right `.ji`.

A `pkg` is said to be relocatable if
1. all `include()` paths are relocatable (they start with `@depot`),
2. all `include_dependency()` paths are relocatable (they start with
`@depot` and `track_content=true` was used to include them).

(cherry picked from commit e9d25ca)
@KristofferC KristofferC mentioned this pull request Apr 9, 2024
41 tasks
KristofferC added a commit that referenced this pull request Apr 9, 2024
Backported PRs:
- [x] #53757 <!-- Add an IndexStyle example to the diagind docstring -->
- [x] #53809 <!-- Add missing GC_POP() in emit_cfunction -->
- [x] #53789 <!-- also check that UUID of project is non-null when
treating it as a package -->
- [x] #53805 <!-- precompilepkgs: simplify custom config printing if
only one -->
- [x] #53822 <!-- Bump libuv -->
- [x] #53837 <!-- update MPFR to 4.2.1 -->
- [x] #53862 <!-- precompilepkgs: fix error reporting -->
- [x] #53774 <!-- Remove some duplicates from emitted compilation traces
-->
- [ ] #53696 <!-- add invokelatest to on_done callback in bracketed
paste -->
- [x] #53383 <!-- Add `_unsetindex!` methods for `SubArray`s and
`CartesianIndex`es -->
- [x] #53475 <!-- Fix boundscheck in unsetindex for SubArrays -->
- [x] #53888 
- [x] #53870 <!-- Revert change to checksum for llvm-julia -->
- [x] #53906 <!-- Add `Base.isrelocatable(pkg)` -->
- [x] #53833 <!-- Profile: make heap snapshots viewable in vscode viewer
-->
- [x] #53961 <!-- `LazyString` in `LinearAlgebra.checksquare` error
message -->
- [x] #53962 <!-- Use StringMemory instead of StringVector where
possible -->
- [x] #53825 <!-- profile: doc: update the `Allocs.@profile` doc string
-->
- [x] #53975 <!-- `LazyString` in `DimensionMismatch` error messages in
broadcasting -->
- [x] #53905 <!-- Avoid repeated precompilation when loading from
non-relocatable cachefiles -->
- [x] #53896 <!-- Make reshape and view on Memory produce Arrays and
delete wrap -->
- [x] #53991 <!-- Test and fix non-int-length bug in `view(::Memory,
::Union{UnitRange, Base.OneTo})` -->
@KristofferC KristofferC removed the backport 1.11 Change should be backported to release-1.11 label Apr 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler:precompilation Precompilation of modules
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants