Pluto.jl icon indicating copy to clipboard operation
Pluto.jl copied to clipboard

Julia 1.12 + PythonCall => Crash

Open behinger opened this issue 1 month ago • 5 comments

This is a crosspost to PythonCall.jl https://github.com/JuliaPy/PythonCall.jl/issues/711

Pluto is on v0.20.21

Julia 1.12.0 (1.12.1 also crashes) Image

Julia 1.11.5

Image

(please ignore the different browser, both were run on the same computer just different browsers)

julia1.11.jl.txt

julia1.12.jl.txt

The micromamba ENV doesnt matter for the crash - but I need to use it also in REPL-mode, else I run into a weird Pixi-infinite loop, and the 1.11 version hangs forever :)

behinger avatar Nov 13 '25 12:11 behinger

Julia 1.12 is cursed 👻

Does this only happen in Pluto?

fonsp avatar Nov 13 '25 20:11 fonsp

My claude code's analysis of Julia's 1.12.2 "release notes"

Julia v1.12.2 - Release Notes

Overview

Release Type: Patch release (backward compatible)

Status: Testing period (as of November 13, 2025)

What's Included:

  • Bug fixes only
  • Performance enhancements
  • No new features
  • Non-breaking changes for existing code
  • 26 commits total

Bug Fixes

TOML Parsing (#59999)

  • Fixed fractional seconds parsing in TOML dates/times
  • Example: "00:00:00.2" now correctly parses as 200ms instead of 12ms
  • Only the first three digits after the decimal point are considered

Concurrent Programming Fixes

waitall fixes:

  • Fixed waitall throwing errors when all tasks are done (#59905)
  • Fixed waitall deadlock when errors occur with failfast mode (#60030)
    • When errors occur, waitall may skip allocating Channel producers, leading to deadlock
    • Simplified to use separate loops for wait and return computation

Interpreter improvements:

  • Fixed accidental save/restore of sigmask when interpreting try blocks (#59878)
    • Improves performance for interpreter-executed try blocks
    • Noticed during bug hunting of LicenseCheck.jl issue

Inference & Compilation

Inference cycle handling (#59974):

  • Fixed to revisit all methods in cycles
  • When encountering complicated cycles within cycles, make sure to revisit all applicable methods explicitly
  • Prevents caching of incorrect Union{} return types
  • Fixes #59943

Other compiler fixes:

  • Fixed pointerarith_tfunc for Const ptr (#60011)
  • Set types of boxed variables in abstract_eval_nonlinearized_foreigncall_name (#59921)
    • Prevents invalidations of isready() from loading Distributed on 1.12

Markdown Parser (#59977)

  • Fixed to disallow spaces between ] and ( in links
  • Now consistent with other Markdown implementations
  • Links must be written as [desc](URL) without space between ] and (
  • Resolves JuliaDocs/Documenter.jl#2681

Workspace/Project Management (#59849)

  • Allow specifying projects in a workspace more than one level under it

REPL Fixes

  • Fixed string completion with cursor in the middle of text
  • Made interactive precompiles test more robust (#60006)

Performance Improvements

Type Stability Enhancements

isfinite type assertion (#59888):

  • Type-assert isfinite(::AbstractFloat) return value

DataType.layout type assertions (#59886):

  • Type-assert DataType.layout in Base functions
  • Prevents many invalidations, especially with UnsafePointers.jl
  • UnsafePointers is a dependency of PythonCall, so widely beneficial
  • Before: .layout field was getting inferred as Any, causing invalidations when UnsafePointers.jl defined new convert() methods
  • After: Proper type assertions prevent these invalidations

TOML type assertions (#59932):

  • Type-assert the return type of collect(...) in TOML

Build System

Git handling (#60023):

  • Don't trigger full rebuild if git is dirty

Stdlib & Dependency Updates

LinearAlgebra

Bumped from 24f5e21 → 5567504

Changes:

  • Overload array constructors for BunchKaufman (#1461)
  • Generic fallback for fillstored! (#1389)

Pkg

  • Bumped to latest 1.12

Security Updates

OpenSSL (#59941):

  • Updated to version 3.5.4

LibCURL (#59983):

  • Bumped LibCURL_jll to 8.15.0

Other Dependencies

p7zip (#60025):

  • Updated to 17.7.0
  • Infrastructure improvements:
    • Moved p7zip binary from bindir to private_libexecdir
    • Added Windows DLL handling for binary builder installs
    • Simplified p7zip_jll.jl by removing LIBPATH handling
    • Added P7ZIP_BUILD_OPTS variable for consistent build flags

Compiler/Interpreter Improvements

Abstract Interpretation (#59908)

  • Allow ad-hoc cancellation of concrete evaluation
  • Particularly useful for JET analyzer
  • Enables fallback to abstract interpretation only when concrete evaluation causes errors
  • Helps avoid tradeoff between precision and error reporting

Reflection (#59915)

  • Enable Base._which with non-base Compiler.MethodTableView
  • Fixes method errors when packages using non-Base compilers call Base._which
  • Properly determines module context of mt::Compiler.MethodTableView

Documentation

  1. llvmcall docs (#59873):

    • Updated to reflect that opaque pointers are now supported
  2. Core.GlobalMethods reference (#59976):

    • Updated left-over reference (renamed in #59158)
  3. Names docstring (#59937):

    • Added compat & implicit using information
    • Follow-up of #54609

Testing Information

How to test:

  • Available via 1.12-nightly channel in juliaup: juliaup add 1.12-nightly
  • Can be tested in GitHub Actions with 1.12-nightly version specifier

Report issues:

  • Julia GitHub issue tracker: https://github.com/JuliaLang/julia/issues

Links

  • Discourse announcement: https://discourse.julialang.org/t/julia-v1-12-2-testing-period/133847/
  • Commit comparison: https://github.com/JuliaLang/julia/compare/v1.12.1...release-1.12
  • Julia repository: https://github.com/JuliaLang/julia

Summary

Julia v1.12.2 is a stability and performance-focused release containing bug fixes, type stability improvements, stdlib updates, and security patches. Key highlights include:

  • Fixes to concurrent programming functions (waitall)
  • TOML parsing corrections
  • Inference improvements preventing incorrect type caching
  • Invalidation prevention optimizations benefiting widely-used packages like PythonCall
  • Security updates for OpenSSL and LibCURL
  • Multiple type stability improvements throughout Base

This release maintains backward compatibility and introduces no new features, focusing entirely on reliability and performance.

says that https://github.com/JuliaLang/julia/pull/59920 may help?

Can you test with julia +1.12-nightly?

Update: it doesn't work 🫠

pankgeorg avatar Nov 13 '25 20:11 pankgeorg

only in pluto - I don't really know much about malt to test it from the REPL unfortunately

behinger avatar Nov 13 '25 21:11 behinger

But can you test it in the REPL without Malt?

fonsp avatar Nov 14 '25 10:11 fonsp

sure, that worksl no error, else I wouldnt be here :-D

behinger avatar Nov 14 '25 10:11 behinger