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

release-1.8: Backports for julia 1.8-beta1/2 #44237

Merged
merged 26 commits into from
Feb 23, 2022

Conversation

KristofferC
Copy link
Member

@KristofferC KristofferC commented Feb 18, 2022

Backported PRs:

Non-merged PRs with backport label:

@KristofferC KristofferC added the release Release management and versioning. label Feb 18, 2022
martinholters and others added 10 commits February 19, 2022 18:05
Previously, there were special cases for `T[]`, `T[a]`, `T[a,b]` and
`T[a,b,c]`. Together with the general case for more elements, that meant
five methods to consider in cases like `T[x...]` where the length of `x`
was not known at compile time. That was beyond the inference limit and
such a call would be inferred as `Any`. So this change gets rid of all
the special cases.

The loop-based general case worked well if all arguments were of the
same type, but otherwise suffered from type-instability inside the loop.
Without the special cases for low element count this would be hit more
often, so for the non-homogeneous case, the loop is replaced with a call
to `afoldl` that basically unrolls the loop for up to 32 elements.

(cherry picked from commit b8e5d7e)
Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com>
Co-authored-by: Jameson Nash <vtjnash@gmail.com>
(cherry picked from commit 39e849a)
This got missed in #43671.

(cherry picked from commit 6c51d9e)
`std::vector::size()` returns a `size_t`, so we need to cast the int
`jl_n_threads` to a `size_t` for the comparison.

(cherry picked from commit 15dcd5b)
Co-authored-by: Jameson Nash <vtjnash@gmail.com>
Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com>
(cherry picked from commit f5d9b86)
#44210)

As with loop, it's hard to prove termination of recursive call automatically.
But with this commit we can manually specify termination at least.
```julia
Base.@assume_effects :terminates_globally function recur_termination1(x)
    x == 1 && return 1
    1 < x < 20 || throw("bad")
    return x * recur_termination1(x-1)
end
@test fully_eliminated() do
    recur_termination1(12)
end

Base.@assume_effects :terminates_globally function recur_termination2(x)
    x == 1 && return 1
    1 < x < 20 || throw("bad")
    return _recur_termination2(x)
end
_recur_termination2(x) = x * recur_termination2(x-1)
@test fully_eliminated() do
    recur_termination2(12)
end
```
#44282)

A return type derived by const-prop' inference can be wider than that of
non const-prop' inference in rare cases e.g. when there are cycles but
cached result is still accurate. This commit checks if the const-prop'ed
result is really more accurate than non-const result.

fix Ferrite-FEM/Tensors.jl#178
* [CPUID] Rework how current ISA is determined

* [CPUID] Add ISA entry for A64FX

* [CPUID] Add ISA entry for Apple Silicon M1

* [CPUID] Simplify collection of full set of features for architecture

* [CPUID] Remove AES from A64FX ISA, not all chips appear to have it

(cherry picked from commit f45b6ad)
@KristofferC
Copy link
Member Author

@nanosoldier runtests(["AbstractDifferentiation", "AbstractTrees", "AdaStress", "AdventOfCode", "Alexya", "AnyMOD", "ApproxFun", "ApproxFunFourier", "ApproxFunOrthogonalPolynomials", "ApproxFunSingularities", "ArrayLayouts", "AssociativeArrays", "AtomicGraphNets", "AxisKeys", "AxisSets", "AxisTables", "BDisposal", "BEASTXMLConstructor", "BIDSTools", "BPFnative", "BSON", "BioServices", "BlockArrays", "Bonsai", "CBinding", "CGAL", "CUDAKernels", "Caching", "Cassette", "Causal", "ChainRules", "ChainRulesCore", "ChainRulesOverloadGeneration", "Checkpointing", "ClassicalOrthogonalPolynomials", "ClimaCore", "ClimaCorePlots", "ClimaCoreTempestRemap", "ClimaCoreVTK", "ClimatePlots", "ClimateTools", "Cloudy", "CodeInfoTools", "CombinedParsers", "CompactBases", "CompilerPluginTools", "ConditionalDists", "Conductor", "ConjugatePriors", "ControlSystems", "CovarianceFunctions", "CxxWrap", "DLMReader", "DSP", "DailyTreasuryYieldCurve", "Dash", "DataFrames", "DataKnots", "DataStructures", "DeIdentification", "DeepDiffs", "DelayDiffEq", "DescriptorSystems", "DiffEqCallbacks", "DiffEqParamEstim", "DiscreteEvents", "Dispatcher", "DynamicBoundsBase", "DynamicPPL", "DynamicalBilliards", "EconJobMarket", "ElasticArrays", "Enzyme", "EquationsOfStateOfSolids", "EquivalentCircuits", "ExSup", "FHIRClient", "FMIFlux", "FastJet", "FastTransforms", "FeatureEng", "FeatureSelectors", "FillArrays", "FinEtoolsVoxelMesher", "FinRua", "FindClosest", "FlightMechanics", "FlowAtlas", "FlxQTL", "FormattedTables", "FvCFD", "GPUCompiler", "GalacticOptim", "GarishPrint", "GeneralizedSVD", "GenericSchur", "GeoDataFrames", "GeoEfficiency", "GeoStatsDevTools", "GeometricFlux", "GeometryPrimitives", "GoogleCodeSearch", "GroebnerBasis", "HDF5", "HDF5Utils", "HalfIntegers", "Hamburg", "HarmonicOrthogonalPolynomials", "HierarchicalUtils", "HighFrequencyCovariance", "HomotopyContinuation", "Hypatia", "IBMQClient", "ITensorGaussianMPS", "ITensorUnicodePlots", "ITensorVisualizationBase", "ImageCore", "ImageQuilting", "ImageSegmentation", "ImplicitArrays", "InMemoryDatasets", "InfiniteArrays", "InverseLaplace", "JET", "JSONPointer", "Jive", "JuliaInterpreter", "JuliennedArrays", "Juniper", "KernelAbstractions", "KernelGradients", "LCIO", "LMDB", "LRSLib", "LazyArrays", "LazySets", "LegibleLambdas", "LinearMaps", "LiterateOrg", "LiterateTest", "LocalRegistry", "LogParser", "LogRoller", "LoweredCodeUtils", "Luxor", "MEstimation", "MIRT", "MIRTjim", "MPSKit", "MPSToolkit", "MakieLayout", "Mamba", "MambaModels", "MappedArrays", "MarketCycles", "MaskArrays", "Memento", "MeshCore", "MeshViz", "MetaArrays", "Metatheory", "MinimallyDisruptiveCurves", "Modia3D", "MultinomialRegression", "MultipleTesting", "MultivariateOrthogonalPolynomials", "NMRTools", "NeXLSpectrum", "NeuralArithmetic", "NicePipes", "NotebookToLaTeX", "OpenEphysLoader", "OrbitalTrajectories", "OscillatoryIntegrals", "PLCTag", "POMDPPolicies", "POMDPSimulators", "PProf", "PSIS", "PackageAnalyzer", "ParallelUtilities", "Parallelism", "Pathfinder", "PerfChecker", "PkgDeps", "Plotly", "Plots", "Poltergeist", "Polyhedra", "Porta", "PowerGraphics", "PowerModelsWildfire", "PredictMDExtra", "ProfileSVG", "ProgressiveHedging", "QML", "QXTns", "QXTools", "QuantizedArrays", "QuantumCliffordPlots", "QuantumESPRESSOCommands", "QuantumOptics", "QuasiArrays", "Qwind", "ROCKernels", "RPRMakie", "RSCG", "RangeHelpers", "RedefStructs", "RemoteS", "Revise", "RiemannHilbert", "RobotDescriptions", "RobotOSData", "RobustAndOptimalControl", "Runner", "SIAN", "SIMD", "SOM", "SemiclassicalOrthogonalPolynomials", "SemiseparableMatrices", "Signals", "SimplePadics", "SingularIntegralEquations", "SlackThreads", "SnoopCompile", "SocialSolver", "SolverTraces", "Soss", "SparseTimeSeries", "SpatialBoundaries", "SpatialJackknife", "SpecialFunctions", "SpinGlassEngine", "StableDQMC", "StackOverflow", "StarAlgebras", "StatProfilerHTML", "StaticKernels", "StaticTrafficAssignment", "StochasticDiffEq", "StorageMirrorServer", "StrBase", "StrRegex", "Strided", "StructuralIdentifiability", "StructuredArrays", "TORA", "TaylorModels", "TensorKitManifolds", "Tensors", "TexasHoldem", "TheFix", "ThreadPools", "ThresholdStability", "TimeSeries", "TimeZones", "Tracker", "TraitSimulation", "TupleVectors", "TurbulenceConvection", "VortexDistributions", "Wikidata", "WriteVTK", "YAActL", "YaoQX", "Zarr", "ZfpCompression", "Zomato"], vs = ":release-1.7")

@nanosoldier
Copy link
Collaborator

Your package evaluation job has completed - possible new issues were detected. A full report can be found here.

tkf and others added 13 commits February 23, 2022 13:39
…ltiplication (#44219)

Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com>
(cherry picked from commit 928f63c)
On Windows, we observed occasional issues where an error within the
function callback to the `open(::Function, ::Cmd)` method would cause
problems due to assuming that the opened process had finished by the
time the `open()` call was finished.  In most cases this was true,
however on Windows, it was found that we need to explicitly `wait()`
upon the process object to ensure that all file handles held by the
subprocess were properly closed by the time `open()` is finished.

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
(cherry picked from commit 623ceb7)
…ent variable when running the `generate_precompile.jl` script (#44281)

(cherry picked from commit e454858)
This slipped through in 955d427, as we aren't building for
32 bit ARM during CI right now.

GitHub: Fixes #44254.
(cherry picked from commit c9ac2ea)
…-thread backtrace buffer in ptls (#44116)

* Fix thread-safety violation in Allocations Profiler:

Re-use the shared `ptls->bt_data` buffer from the thread-local storage
for the buffer, to ensure that each thread has a separate buffer.

This buffer is shared with the exception throwing mechanism, but is safe
to share since julia exception throwing never interleaves with
allocations profiling.

* Approach two: Create a separate per-thread allocations backtrace buffer.

* Update src/gc-alloc-profiler.cpp

Co-authored-by: Jameson Nash <vtjnash@gmail.com>

* Update src/gc-alloc-profiler.cpp

Co-authored-by: Jameson Nash <vtjnash@gmail.com>

* fix type error (#44235)

* Update src/gc-alloc-profiler.cpp

Co-authored-by: Jameson Nash <vtjnash@gmail.com>
Co-authored-by: Pete Vilter <7341+vilterp@users.noreply.github.com>
(cherry picked from commit 4e57966)
(cherry picked from commit 333a3a3)
@KristofferC KristofferC merged commit a10115e into release-1.8 Feb 23, 2022
@KristofferC KristofferC deleted the backports-release-1.8 branch February 23, 2022 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Release management and versioning.
Projects
None yet
Development

Successfully merging this pull request may close these issues.