# Internals & Design

**URL:** https://discourse.julialang.org/c/dev/5.md?no_subcategories=false&page=1

[Latest](https://discourse.julialang.org/latest.md) · [Categories](https://discourse.julialang.org/categories.md) · [Tags](https://discourse.julialang.org/tags.md)

**Page:** 2

---

## [Sum types as sealed abstract types](https://discourse.julialang.org/t/sum-types-as-sealed-abstract-types/138065)

<div class="topic-metadata">

**Author:** [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)\
**Replies:** 9\
**Last updated:** [July 12, 2026, 4:57pm UTC](https://discourse.julialang.org/t/sum-types-as-sealed-abstract-types/138065 "2026-07-12T16:57:04Z")

</div>

In the various discussions about sum types in Julia, I don’t recall seeing any discussion of how sum types would interact with the existing type system. So, here’s one idea that comes to mind: Perhaps a sum type could b…

---

## [Can we have non-blocking precompilation? 🙏](https://discourse.julialang.org/t/can-we-have-non-blocking-precompilation/138083)

<div class="topic-metadata">

**Author:** [@MilesCranmer](https://discourse.julialang.org/u/MilesCranmer)\
**Replies:** 15\
**Last updated:** [July 11, 2026, 8:53pm UTC](https://discourse.julialang.org/t/can-we-have-non-blocking-precompilation/138083 "2026-07-11T20:53:46Z")

</div>

Can we have non-blocking precompilation? I think this would be great. So, currently, when I type using MyPackage at the REPL and the cache is stale, I have to sit through precompilation before I can touch anything in My…

---

## [Testing and Validating the Strided Array Interface](https://discourse.julialang.org/t/testing-and-validating-the-strided-array-interface/135083)

<div class="topic-metadata">

**Author:** [@nhz2](https://discourse.julialang.org/u/nhz2)\
**Replies:** 6\
**Last updated:** [July 9, 2026, 5:57pm UTC](https://discourse.julialang.org/t/testing-and-validating-the-strided-array-interface/135083 "2026-07-09T17:57:00Z")

</div>

The strided array interface is documented in Interfaces · The Julia Language New AbstractArray subtypes can implement this interface to enable fast BLAS, LAPACK, IO, and Python interop methods. In addition, we would lik…

---

## [Does Julia's use of LLVM compilation guarantee identical machine code for repetition of a given function compilation?](https://discourse.julialang.org/t/does-julias-use-of-llvm-compilation-guarantee-identical-machine-code-for-repetition-of-a-given-function-compilation/137617)

<div class="topic-metadata">

**Author:** [@Henri\_Laurie](https://discourse.julialang.org/u/Henri_Laurie)\
**Replies:** 6\
**Last updated:** [June 16, 2026, 6:03pm UTC](https://discourse.julialang.org/t/does-julias-use-of-llvm-compilation-guarantee-identical-machine-code-for-repetition-of-a-given-function-compilation/137617 "2026-06-16T18:03:37Z")

</div>

Hi – I can’t seem to find the answer in the docs or on Discourse (apologies if I searched badly). To be specific: suppose the first call to a function happens more than once (say in different Julia working sessions, but…

---

## [Why don't error messages name offending variables/function returns?](https://discourse.julialang.org/t/why-dont-error-messages-name-offending-variables-function-returns/137602)

<div class="topic-metadata">

**Author:** [@ducksoverip](https://discourse.julialang.org/u/ducksoverip)\
**Replies:** 12\
**Last updated:** [June 15, 2026, 10:01pm UTC](https://discourse.julialang.org/t/why-dont-error-messages-name-offending-variables-function-returns/137602 "2026-06-15T22:01:46Z")

</div>

While I’m generally loving the experience of learning and using Julia, a frequent source of frustration is parsing its error messages. Even when I understand the content of the error message and I’m given the offending l…

---

## [Could we have a shortcut for \`\] activate\`?](https://discourse.julialang.org/t/could-we-have-a-shortcut-for-activate/137616)

<div class="topic-metadata">

**Author:** [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Replies:** 6\
**Last updated:** [June 15, 2026, 4:09am UTC](https://discourse.julialang.org/t/could-we-have-a-shortcut-for-activate/137616 "2026-06-15T04:09:49Z")

</div>

This is the most typed command besides status, add and update. We already have shortcuts for status (st) and update (up), could we also have one for activate (at) ? \] at folder \] st \] up I know we can type ac, press TA…

---

## [Stack size of a Task in its lifetime](https://discourse.julialang.org/t/stack-size-of-a-task-in-its-lifetime/137264)

<div class="topic-metadata">

**Author:** [@Benny](https://discourse.julialang.org/u/Benny)\
**Replies:** 12\
**Last updated:** [May 30, 2026, 3:01pm UTC](https://discourse.julialang.org/t/stack-size-of-a-task-in-its-lifetime/137264 "2026-05-30T15:01:13Z")

</div>

Does a Task preallocate reserved\_stack::Int virtual bytes for its stack, or is it an upper limit for a dynamically resizing stack? Does it diverge from how stack size is managed for calls in the main thread? If it’s vers…

---

## [Should Julia have rsqrt? And e.g. support RSQRTSS](https://discourse.julialang.org/t/should-julia-have-rsqrt-and-e-g-support-rsqrtss/125969)

<div class="topic-metadata">

**Author:** [@Palli](https://discourse.julialang.org/u/Palli)\
**Replies:** 16\
**Last updated:** [May 26, 2026, 7:00pm UTC](https://discourse.julialang.org/t/should-julia-have-rsqrt-and-e-g-support-rsqrtss/125969 "2026-05-26T19:00:05Z")

</div>

Neither Python (Numpy) nor C++ have rsqrt, but pytorch and tensorflow have it (I didn’t confirm in Flux.jl or Lux.jl or look carefully, though CUDA.jl/Nvidia and JavaScript stdlib have for single and double, and AMD/HIP …

---

## [Document Expr(:symbolicgoto, ...) and :symboliclabel](https://discourse.julialang.org/t/document-expr-symbolicgoto-and-symboliclabel/137267)

<div class="topic-metadata">

**Author:** [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Replies:** 10\
**Last updated:** [May 24, 2026, 1:26pm UTC](https://discourse.julialang.org/t/document-expr-symbolicgoto-and-symboliclabel/137267 "2026-05-24T13:26:13Z")

</div>

To get something equivalent to @goto foo and @label foo in a macro, one has to use Expr(:symbolicgoto, :foo) or Expr(:symbolicgoto, :foo) (see eg this and similar topics). Would it make sense to document this in the doc…

---

## [Multi-threaded compilation of project packages hang, works after Julia restart](https://discourse.julialang.org/t/multi-threaded-compilation-of-project-packages-hang-works-after-julia-restart/137226)

<div class="topic-metadata">

**Author:** [@sob](https://discourse.julialang.org/u/sob)\
**Replies:** 0\
**Last updated:** [May 21, 2026, 4:46pm UTC](https://discourse.julialang.org/t/multi-threaded-compilation-of-project-packages-hang-works-after-julia-restart/137226 "2026-05-21T16:46:52Z")

</div>

I’m running Julia 1.12 julia\> versioninfo() Julia Version 1.12.6 Commit 15346901f00 (2026-04-09 19:20 UTC) Build Info: Official https://julialang.org release Platform Info: OS: Linux (x86\_64-linux-gnu) CPU: 128 × …

---

## [Varargs overloads for \`minmax\`?](https://discourse.julialang.org/t/varargs-overloads-for-minmax/137171)

<div class="topic-metadata">

**Author:** [@jecs](https://discourse.julialang.org/u/jecs)\
**Replies:** 2\
**Last updated:** [May 18, 2026, 10:13pm UTC](https://discourse.julialang.org/t/varargs-overloads-for-minmax/137171 "2026-05-18T22:13:13Z")

</div>

Both min and max have two-argument and Vararg versions. However, minmax only has 2-argument versions. It would be nice to extend minmax to the Vararg case, such that minmax(x...) is equivalent to returning (min(x...),…

---

## [Proposal to add method \`Base.read(io::IO, ::Type{T}) where T \<: IO\`](https://discourse.julialang.org/t/proposal-to-add-method-base-read-io-io-type-t-where-t-io/137044)

<div class="topic-metadata">

**Author:** [@hhaensel](https://discourse.julialang.org/u/hhaensel)\
**Replies:** 4\
**Last updated:** [May 8, 2026, 4:11pm UTC](https://discourse.julialang.org/t/proposal-to-add-method-base-read-io-io-type-t-where-t-io/137044 "2026-05-08T16:11:12Z")

</div>

Currently Base.read() does support read(src, String) read(src, Int32) but the following signatures are failing read(src, IOBuffer) read(src, Base.SecretBuffer) What do you think about introducing """ read(io::IO…

---

## [Resolving UnionAlls with a single concrete instance in struct declarations](https://discourse.julialang.org/t/resolving-unionalls-with-a-single-concrete-instance-in-struct-declarations/136754)

<div class="topic-metadata">

**Author:** [@brainandforce](https://discourse.julialang.org/u/brainandforce)\
**Replies:** 6\
**Last updated:** [May 4, 2026, 9:26am UTC](https://discourse.julialang.org/t/resolving-unionalls-with-a-single-concrete-instance-in-struct-declarations/136754 "2026-05-04T09:26:58Z")

</div>

This is something I’ve encountered far too often, and it’s one of my biggest gripes with Julia. @Tamas\_Papp explained it best: I’ve encountered issues with this in the past with CliffordNumbers.jl: subtypes of Abstract…

---

## [Limitations of generated functions versus macros or functions](https://discourse.julialang.org/t/limitations-of-generated-functions-versus-macros-or-functions/136910)

<div class="topic-metadata">

**Author:** [@Benny](https://discourse.julialang.org/u/Benny)\
**Replies:** 11\
**Last updated:** [April 29, 2026, 3:46pm UTC](https://discourse.julialang.org/t/limitations-of-generated-functions-versus-macros-or-functions/136910 "2026-04-29T15:46:31Z")

</div>

Tentatively writing a generated function and relearning things, and ran into a couple questions: The most warned limitation of generated functions is most side effects in the method body (throwing errors is a notable e…

---

## [Set theoretic semantics of the type system](https://discourse.julialang.org/t/set-theoretic-semantics-of-the-type-system/136772)

<div class="topic-metadata">

**Author:** [@wujinq](https://discourse.julialang.org/u/wujinq)\
**Replies:** 7\
**Last updated:** [April 22, 2026, 8:33am UTC](https://discourse.julialang.org/t/set-theoretic-semantics-of-the-type-system/136772 "2026-04-22T08:33:56Z")

</div>

Not sure if I should post under Offtopic but anyway… In Bezanson’s PhD thesis in 2015, he mentions that Set-theoretic types are a natural basis for such a system. A set-theoretic type is a symbolic expression that den…

---

## [LLVM Cannot select: v16bf16 = insert\_subvector on Float32→BFloat16 vector store (Julia 1.12.6, znver5)](https://discourse.julialang.org/t/llvm-cannot-select-v16bf16-insert-subvector-on-float32-bfloat16-vector-store-julia-1-12-6-znver5/136766)

<div class="topic-metadata">

**Author:** [@cscherrer](https://discourse.julialang.org/u/cscherrer)\
**Replies:** 3\
**Last updated:** [April 18, 2026, 5:20pm UTC](https://discourse.julialang.org/t/llvm-cannot-select-v16bf16-insert-subvector-on-float32-bfloat16-vector-store-julia-1-12-6-znver5/136766 "2026-04-18T17:20:50Z")

</div>

Hello all — is this a known LLVM codegen bug? Minimal repro using BFloat16s: BFloat16 function f!(dst, src) for j in eachindex(dst) dst\[j\] = src\[j\] end end f!(Vector{BFloat16}(undef, 16), rand(Float32…

---

## [Can a package detect whether it was imported in the REPL vs inside another package?](https://discourse.julialang.org/t/can-a-package-detect-whether-it-was-imported-in-the-repl-vs-inside-another-package/136449)

<div class="topic-metadata">

**Author:** [@goerz](https://discourse.julialang.org/u/goerz)\
**Replies:** 3\
**Last updated:** [March 30, 2026, 5:02am UTC](https://discourse.julialang.org/t/can-a-package-detect-whether-it-was-imported-in-the-repl-vs-inside-another-package/136449 "2026-03-30T05:02:00Z")

</div>

Continuing the discussion from \[ANN\] UseAll.jl – Temporarily Demodularize Julia Code: Even outside of the specific context of what makes sense for that UseAll package, that seems like an interesting question by itself. …

---

## [Why did the doubly recursive fibonacci microbenchmark become relatively slower?](https://discourse.julialang.org/t/why-did-the-doubly-recursive-fibonacci-microbenchmark-become-relatively-slower/136248)

<div class="topic-metadata">

**Author:** [@Benny](https://discourse.julialang.org/u/Benny)\
**Replies:** 39\
**Last updated:** [March 28, 2026, 5:48pm UTC](https://discourse.julialang.org/t/why-did-the-doubly-recursive-fibonacci-microbenchmark-become-relatively-slower/136248 "2026-03-28T17:48:33Z")

</div>

In the original microbenchmarks, Julia was a bit behind C/Fortran (~1.3x) on fib(n) = n \< 2 ? n : fib(n - 1) + fib(n - 2) (note this is 64-bit on Julia, 32-bit on the others, but making fib type-generic didn’t make a dif…

---

## [Should reduce throw an error on infinite iterators?](https://discourse.julialang.org/t/should-reduce-throw-an-error-on-infinite-iterators/136389)

<div class="topic-metadata">

**Author:** [@HMegh](https://discourse.julialang.org/u/HMegh)\
**Replies:** 4\
**Last updated:** [March 26, 2026, 5:27pm UTC](https://discourse.julialang.org/t/should-reduce-throw-an-error-on-infinite-iterators/136389 "2026-03-26T17:27:40Z")

</div>

Currently, reduce (and by extension mapreduce, sum and other functions) operate on iterators without checking whether they are finite or not. For example julia\> sum(Iterators.cycle(\[1,2,3\])) would run forever. I wanted…

---

## [Moving away from "manual JLL packages" in the General registry](https://discourse.julialang.org/t/moving-away-from-manual-jll-packages-in-the-general-registry/135754)

<div class="topic-metadata">

**Author:** [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Replies:** 33\
**Last updated:** [March 25, 2026, 12:05am UTC](https://discourse.julialang.org/t/moving-away-from-manual-jll-packages-in-the-general-registry/135754 "2026-03-25T00:05:32Z")

</div>

By “manual JLL”, I mean a JLL package that does not come from Yggdrasil, the Julia community build tree. In the past, we’ve allowed some manual JLLs to be registered in the General registry. However, after some internal…

---

## [mg/LLVM-21 commits in Julia repo](https://discourse.julialang.org/t/mg-llvm-21-commits-in-julia-repo/136331)

<div class="topic-metadata">

**Author:** [@obsidianjulua](https://discourse.julialang.org/u/obsidianjulua)\
**Replies:** 0\
**Last updated:** [March 22, 2026, 1:07pm UTC](https://discourse.julialang.org/t/mg-llvm-21-commits-in-julia-repo/136331 "2026-03-22T13:07:47Z")

</div>

Just wanted to say Im really happy these commits are going in and theirs a major llvm-21 compatibility push, mlir 22 just hit and I ducked almost everything and my project was fully compatible with mlir/llvm-21/22 and wh…

---

## [Dotdot: The double-broadcast operator enabling Float32..(a)](https://discourse.julialang.org/t/dotdot-the-double-broadcast-operator-enabling-float32-a/136260)

<div class="topic-metadata">

**Author:** [@RainerHeintzmann](https://discourse.julialang.org/u/RainerHeintzmann)\
**Replies:** 18\
**Last updated:** [March 21, 2026, 2:10pm UTC](https://discourse.julialang.org/t/dotdot-the-double-broadcast-operator-enabling-float32-a/136260 "2026-03-21T14:10:10Z")

</div>

Programming Julia for years, I have always missed a way to use double-broadcasting. Ref is preventing a broadcast, but often one wants to also apply a broadcast operation to each element of an iterable. This can be done…

---

## [Macros and Type Piracy](https://discourse.julialang.org/t/macros-and-type-piracy/136192)

<div class="topic-metadata">

**Author:** [@goerz](https://discourse.julialang.org/u/goerz)\
**Replies:** 5\
**Last updated:** [March 16, 2026, 12:49pm UTC](https://discourse.julialang.org/t/macros-and-type-piracy/136192 "2026-03-16T12:49:41Z")

</div>

Motivated by Seeking feedback on Chainables before registering it, I initially thought that that proposed new package was modifying the behavior of existing macros (like @chain from Chain.jl). I think that was a misunder…

---

## [Explicitly disable extensions in Project.toml](https://discourse.julialang.org/t/explicitly-disable-extensions-in-project-toml/136126)

<div class="topic-metadata">

**Author:** [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Replies:** 1\
**Last updated:** [March 11, 2026, 4:46am UTC](https://discourse.julialang.org/t/explicitly-disable-extensions-in-project-toml/136126 "2026-03-11T04:46:07Z")

</div>

Could it make sense to explicitly disable package extensions? For my project, for example, precompiling the DataInterpolationsMakieExtension takes a long time even though I do not need it. Installing and pre-compiling …

---

## [Argument-specific docstrings or comments](https://discourse.julialang.org/t/argument-specific-docstrings-or-comments/32189)

<div class="topic-metadata">

**Author:** [@jules](https://discourse.julialang.org/u/jules)\
**Replies:** 23\
**Last updated:** [March 2, 2026, 2:15pm UTC](https://discourse.julialang.org/t/argument-specific-docstrings-or-comments/32189 "2026-03-02T14:15:52Z")

</div>

I think it would be great if there was some official syntax for specifying a docstring directly for function arguments. “Official”, as in, the information should be readable by third-party packages like Juno, to build to…

---

## [Compiler guarantees for floating-point rounding modes](https://discourse.julialang.org/t/compiler-guarantees-for-floating-point-rounding-modes/135808)

<div class="topic-metadata">

**Author:** [@OlivierHnt](https://discourse.julialang.org/u/OlivierHnt)\
**Replies:** 6\
**Last updated:** [February 26, 2026, 10:54pm UTC](https://discourse.julialang.org/t/compiler-guarantees-for-floating-point-rounding-modes/135808 "2026-02-26T22:54:10Z")

</div>

One of the recurring roadblocks in improving IntervalArithmetic.jl is the lack of support for changing the floating-point rounding mode (R.I.P. setrounding). LLVM supports changing rounding modes (see also: Setting Floa…

---

## [I find it hard to develop in Julia](https://discourse.julialang.org/t/i-find-it-hard-to-develop-in-julia/135497)

<div class="topic-metadata">

**Author:** [@fonsp](https://discourse.julialang.org/u/fonsp)\
**Replies:** 71\
**Last updated:** [February 13, 2026, 6:32pm UTC](https://discourse.julialang.org/t/i-find-it-hard-to-develop-in-julia/135497 "2026-02-13T18:32:34Z")

</div>

Julia is awesome to use, absolutely. But as an application developer, Julia can be frustrating. I wanted to write a post to outline my view on this. I write this post in a subjective tone because I want to share how I fe…

---

## [Iterators.cat?](https://discourse.julialang.org/t/iterators-cat/43399)

<div class="topic-metadata">

**Author:** [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)\
**Replies:** 3\
**Last updated:** [February 8, 2026, 10:04pm UTC](https://discourse.julialang.org/t/iterators-cat/43399 "2026-02-08T22:04:08Z")

</div>

Is there any appetite for an Iterators.cat function? I often use Iterators.flatten like this: Iterators.flatten((itr1, itr2, itr3)) But it feels kind of silly to put the iterators in a tuple just so I can concatenate t…

---

## [Designing a Paths Julep](https://discourse.julialang.org/t/designing-a-paths-julep/124335)

<div class="topic-metadata">

**Author:** [@tecosaur](https://discourse.julialang.org/u/tecosaur)\
**Replies:** 198\
**Last updated:** [February 8, 2026, 4:36pm UTC](https://discourse.julialang.org/t/designing-a-paths-julep/124335 "2026-02-08T16:36:51Z")

</div>

Prompted by a gripe I made on Slack, thoughts I’ve had on paths have coalesed into the start of a Julep and a prototpye. At this stage, I’d love to get wider input on the idea and help shoring it up into a solid propo…

---

## [Union structs type tag memory layout](https://discourse.julialang.org/t/union-structs-type-tag-memory-layout/133816)

<div class="topic-metadata">

**Author:** [@PatrickHaecker](https://discourse.julialang.org/u/PatrickHaecker)\
**Replies:** 12\
**Last updated:** [February 1, 2026, 6:55am UTC](https://discourse.julialang.org/t/union-structs-type-tag-memory-layout/133816 "2026-02-01T06:55:16Z")

</div>

Structs containing isbits fields of type Union use the isbits Union structs optimization. I was surprised to learn that The type tag byte for a type’s Union field is stored directly after the field’s computed Union mem…

[Previous page](https://discourse.julialang.org/c/dev/5.md?no_subcategories=false)

[Next page](https://discourse.julialang.org/c/dev/5.md?no_subcategories=false&page=2)
