# Internals & Design

**URL:** https://discourse.julialang.org/c/dev/5.md?page=8

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

**Page:** 9

---

## [Julia's Broadcast vs Jax's vmap](https://discourse.julialang.org/t/julias-broadcast-vs-jaxs-vmap/38990)

<div class="topic-metadata">

**Author:** [@jessebett](https://discourse.julialang.org/u/jessebett)\
**Replies:** 42\
**Last updated:** [August 6, 2024, 8:17pm UTC](https://discourse.julialang.org/t/julias-broadcast-vs-jaxs-vmap/38990 "2024-08-06T20:17:15Z")

</div>

My (high-level) understanding of jax.vmap is that it automatically vectorizes vectorizes a function along a specified axis of its input by introducing an “abstract” axis and compiling the code as though the inputs were s…

---

## [New features targeting the strict subset of Julia](https://discourse.julialang.org/t/new-features-targeting-the-strict-subset-of-julia/117226)

<div class="topic-metadata">

**Author:** [@FHell](https://discourse.julialang.org/u/FHell)\
**Replies:** 20\
**Last updated:** [July 26, 2024, 12:07pm UTC](https://discourse.julialang.org/t/new-features-targeting-the-strict-subset-of-julia/117226 "2024-07-26T12:07:10Z")

</div>

I just came across Add \`strict\` mechanism for opting into stricter subsets of the language · Issue #54903 · JuliaLang/julia · GitHub For me, this would be an extremely welcome development. If I can just tell my students…

---

## [Why assignment operators return the right-hand-side](https://discourse.julialang.org/t/why-assignment-operators-return-the-right-hand-side/109954)

<div class="topic-metadata">

**Author:** [@Mason](https://discourse.julialang.org/u/Mason)\
**Replies:** 18\
**Last updated:** [July 23, 2024, 7:10pm UTC](https://discourse.julialang.org/t/why-assignment-operators-return-the-right-hand-side/109954 "2024-07-23T19:10:36Z")

</div>

This maybe my biggest syntax gripe in julia. I really think that assignment should have returned the value on the left, not the right, and I find it really unfortunate that we chose the right hand side. It makes so man…

---

## [Julia on ARM64 Windows?](https://discourse.julialang.org/t/julia-on-arm64-windows/117293)

<div class="topic-metadata">

**Author:** [@be5invis](https://discourse.julialang.org/u/be5invis)\
**Replies:** 4\
**Last updated:** [July 22, 2024, 2:14am UTC](https://discourse.julialang.org/t/julia-on-arm64-windows/117293 "2024-07-22T02:14:59Z")

</div>

I am wondering how hard is to support ARM64 Windows for Julia. Natively, not through emulation. Some information that I know: LLVM do have support for ARM64 Windows. The only Fortran compiler that could target ARM64 …

---

## [Developing stdlib workflow](https://discourse.julialang.org/t/developing-stdlib-workflow/117282)

<div class="topic-metadata">

**Author:** [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Replies:** 2\
**Last updated:** [July 21, 2024, 2:27pm UTC](https://discourse.julialang.org/t/developing-stdlib-workflow/117282 "2024-07-21T14:27:45Z")

</div>

I wanted to poke around Distributed.jl. But the tests on the current commit included in Julia 1.10 are failing. I tried to clone Distributed.jl, activate its project, and then import it (per the instructions in the Pkg.j…

---

## [Names from Base appear in modules](https://discourse.julialang.org/t/names-from-base-appear-in-modules/117205)

<div class="topic-metadata">

**Author:** [@jar1](https://discourse.julialang.org/u/jar1)\
**Replies:** 4\
**Last updated:** [July 19, 2024, 2:51am UTC](https://discourse.julialang.org/t/names-from-base-appear-in-modules/117205 "2024-07-19T02:51:04Z")

</div>

The standard behavior is that names from Base are accessible as properties of normal modules. julia\> module Foobar end Main.Foobar julia\> Main.Foobar.:\* \* (generic function with 237 methods) Do we like this? It seems …

---

## [Io\_uring support?](https://discourse.julialang.org/t/io-uring-support/48666)

<div class="topic-metadata">

**Author:** [@sashmit](https://discourse.julialang.org/u/sashmit)\
**Replies:** 4\
**Last updated:** [July 18, 2024, 12:38am UTC](https://discourse.julialang.org/t/io-uring-support/48666 "2024-07-18T00:38:56Z")

</div>

I’m currently experimenting with rust creating “glue” static analysis/bridge/compilers/abstract interpreters across some other langs (rust since it has a 2nd strong borrow checker that can just drop 1 bit refs and has ML…

---

## [How to check for unwanted specialization and how to prevent specialization?](https://discourse.julialang.org/t/how-to-check-for-unwanted-specialization-and-how-to-prevent-specialization/117117)

<div class="topic-metadata">

**Author:** [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Replies:** 2\
**Last updated:** [July 17, 2024, 11:25am UTC](https://discourse.julialang.org/t/how-to-check-for-unwanted-specialization-and-how-to-prevent-specialization/117117 "2024-07-17T11:25:21Z")

</div>

Take this simple function: f(::Any) = 7. Its only argument is never used, so ideally Julia wouldn’t ever have to specialize for it, to prevent unnecessary compilation latency. The manual suggests using @nospecialize and B…

---

## [Preserve against garbage collection in LibGit2](https://discourse.julialang.org/t/preserve-against-garbage-collection-in-libgit2/117095)

<div class="topic-metadata">

**Author:** [@emmt](https://discourse.julialang.org/u/emmt)\
**Replies:** 4\
**Last updated:** [July 16, 2024, 5:11pm UTC](https://discourse.julialang.org/t/preserve-against-garbage-collection-in-libgit2/117095 "2024-07-16T17:11:25Z")

</div>

Maybe I am wrong but I have a concern about the implementation of LibGit2 regarding garbage collection. To ilustrate this, please have a look at the code of a simple function such as: function Base.length(blob::GitBlob)…

---

## [Better support for wrapper types](https://discourse.julialang.org/t/better-support-for-wrapper-types/114395)

<div class="topic-metadata">

**Author:** [@f.ij](https://discourse.julialang.org/u/f.ij)\
**Replies:** 11\
**Last updated:** [July 11, 2024, 12:02pm UTC](https://discourse.julialang.org/t/better-support-for-wrapper-types/114395 "2024-07-11T12:02:38Z")

</div>

I’m sure I cannot be the only one who sometimes feels that writing wrappers for types in Julia that I just want to either extend with some custom methods or change the functionality of just a few built-in functions can s…

---

## [Anonymous function's type and methods last forever?](https://discourse.julialang.org/t/anonymous-functions-type-and-methods-last-forever/116676)

<div class="topic-metadata">

**Author:** [@Benny](https://discourse.julialang.org/u/Benny)\
**Replies:** 8\
**Last updated:** [July 5, 2024, 8:24pm UTC](https://discourse.julialang.org/t/anonymous-functions-type-and-methods-last-forever/116676 "2024-07-05T20:24:58Z")

</div>

My understanding is that an anonymous function is implemented as an instance of a type assigned to a generated name in the global scope, and the type and its methods should thus persist for the rest of the process. Howev…

---

## [Dispatching on values with constraints](https://discourse.julialang.org/t/dispatching-on-values-with-constraints/116716)

<div class="topic-metadata">

**Author:** [@MilesCranmer](https://discourse.julialang.org/u/MilesCranmer)\
**Replies:** 2\
**Last updated:** [July 7, 2024, 3:33pm UTC](https://discourse.julialang.org/t/dispatching-on-values-with-constraints/116716 "2024-07-07T15:33:54Z")

</div>

Within a where expression, I can create upper bounds on types with \<: Array{T} where {T\<:Real} I am just wondering if it will ever be possible to use :: or isa within where expressions to dispatch on type parameter val…

---

## [\`findmax\` and friends: confusing behaviour to be introduced in 1.7](https://discourse.julialang.org/t/findmax-and-friends-confusing-behaviour-to-be-introduced-in-1-7/61904)

<div class="topic-metadata">

**Author:** [@aplavin](https://discourse.julialang.org/u/aplavin)\
**Replies:** 96\
**Last updated:** [July 6, 2024, 6:16pm UTC](https://discourse.julialang.org/t/findmax-and-friends-confusing-behaviour-to-be-introduced-in-1-7/61904 "2024-07-06T18:16:19Z")

</div>

Several people, including myself, have tried to raise this issue during last months. There were multiple posts on slack, and even a GH issue (https://github.com/JuliaLang/julia/issues/39203). I’ll try to raise it once mo…

---

## [Decidable Subtyping of Existential Types for Julia](https://discourse.julialang.org/t/decidable-subtyping-of-existential-types-for-julia/116423)

<div class="topic-metadata">

**Author:** [@xiaoxi](https://discourse.julialang.org/u/xiaoxi)\
**Replies:** 1\
**Last updated:** [July 5, 2024, 2:17pm UTC](https://discourse.julialang.org/t/decidable-subtyping-of-existential-types-for-julia/116423 "2024-07-05T14:17:47Z")

</div>

This week, during PLDI 2024, there was a talk on how to make Julia’s subtyping decidable. Congratulations to the four authors!

---

## [Passing a Julia variable to a callback](https://discourse.julialang.org/t/passing-a-julia-variable-to-a-callback/116370)

<div class="topic-metadata">

**Author:** [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Replies:** 4\
**Last updated:** [June 29, 2024, 1:28pm UTC](https://discourse.julialang.org/t/passing-a-julia-variable-to-a-callback/116370 "2024-06-29T13:28:24Z")

</div>

In HDF5.jl, I have a randomly failing test. Upstream HDF5 started testing HDF5.jl, and noticed that the test would also randomly fail, though at times it seems quite consistent. Thr failing tests involve iteration whe…

---

## [How's the progress in garbage-collecting unused functions?](https://discourse.julialang.org/t/hows-the-progress-in-garbage-collecting-unused-functions/116300)

<div class="topic-metadata">

**Author:** [@Tarny\_GG\_Channie](https://discourse.julialang.org/u/Tarny_GG_Channie)\
**Replies:** 5\
**Last updated:** [June 27, 2024, 9:36pm UTC](https://discourse.julialang.org/t/hows-the-progress-in-garbage-collecting-unused-functions/116300 "2024-06-27T21:36:48Z")

</div>

When a function compilation in Julia no longer gets used, it doesn’t go away. Instead, it stays in memory. Normally, this is not a problem because you don’t generate so many functions in the first place, and each functio…

---

## [Nice talk about Go PGO. What is the state in Julia?](https://discourse.julialang.org/t/nice-talk-about-go-pgo-what-is-the-state-in-julia/115715)

<div class="topic-metadata">

**Author:** [@Dan](https://discourse.julialang.org/u/Dan)\
**Replies:** 8\
**Last updated:** [June 24, 2024, 4:40pm UTC](https://discourse.julialang.org/t/nice-talk-about-go-pgo-what-is-the-state-in-julia/115715 "2024-06-24T16:40:48Z")

</div>

These devs get it! The first 10 minutes are about the Go ecosystem and are worth it for any language devs. The rest are a great introduction to optimization issues and PGO. P.S. What is the state of PGO in Julia? I wo…

---

## [Non-mutating array functions](https://discourse.julialang.org/t/non-mutating-array-functions/115948)

<div class="topic-metadata">

**Author:** [@jar1](https://discourse.julialang.org/u/jar1)\
**Replies:** 5\
**Last updated:** [June 20, 2024, 9:08pm UTC](https://discourse.julialang.org/t/non-mutating-array-functions/115948 "2024-06-20T21:08:49Z")

</div>

I sometimes want non-mutating versions of push! and append! which copy their mutable inputs. Another thread asks about non-mutating versions of splice! and deleteat!. Do we already have these somewhere? Can we add them …

---

## [Potential issue with multiple registrations of same handler in error hint](https://discourse.julialang.org/t/potential-issue-with-multiple-registrations-of-same-handler-in-error-hint/115389)

<div class="topic-metadata">

**Author:** [@arhik](https://discourse.julialang.org/u/arhik)\
**Replies:** 5\
**Last updated:** [June 13, 2024, 4:06am UTC](https://discourse.julialang.org/t/potential-issue-with-multiple-registrations-of-same-handler-in-error-hint/115389 "2024-06-13T04:06:17Z")

</div>

Currently the experimental api for error hint registration allows same handler to be registered multiple times. And the handler is called multiple times when triggered. Bear with me on this not so minimal example: usin…

---

## [Suggestion: Allow type variables with \`do\` syntax](https://discourse.julialang.org/t/suggestion-allow-type-variables-with-do-syntax/115276)

<div class="topic-metadata">

**Author:** [@sgaure](https://discourse.julialang.org/u/sgaure)\
**Replies:** 3\
**Last updated:** [June 7, 2024, 7:54am UTC](https://discourse.julialang.org/t/suggestion-allow-type-variables-with-do-syntax/115276 "2024-06-07T07:54:47Z")

</div>

It came up in Do-Block Syntax with Where Keyword - #16 by sgaure whether it was possible to use type variables in anonymous functions created with the do syntax. Although I do not think it would solve the particular prob…

---

## [Cost model of weak references](https://discourse.julialang.org/t/cost-model-of-weak-references/115207)

<div class="topic-metadata">

**Author:** [@cstjean](https://discourse.julialang.org/u/cstjean)\
**Replies:** 1\
**Last updated:** [June 6, 2024, 9:49pm UTC](https://discourse.julialang.org/t/cost-model-of-weak-references/115207 "2024-06-06T21:49:21Z")

</div>

A long time ago, on another system (SBCL), I’ve been bitten by weak references having a quadratic O(n²) GC cost. I’m curious about Julia. Is there any admonition against using WeakRef and WeakDict a lot? The sweep phase…

---

## [Memory buffer type?](https://discourse.julialang.org/t/memory-buffer-type/15345)

<div class="topic-metadata">

**Author:** [@loisel](https://discourse.julialang.org/u/loisel)\
**Replies:** 9\
**Last updated:** [June 6, 2024, 1:16pm UTC](https://discourse.julialang.org/t/memory-buffer-type/15345 "2024-06-06T13:16:54Z")

</div>

I thought I saw somewhere that multidimensional arrays ought to be built on top of arrays of bytes. This would be useful to me for a thing. Is this happening?

---

## [For .... if ... syntax?](https://discourse.julialang.org/t/for-if-syntax/64559)

<div class="topic-metadata">

**Author:** [@dstarerstor](https://discourse.julialang.org/u/dstarerstor)\
**Replies:** 10\
**Last updated:** [June 3, 2024, 5:43pm UTC](https://discourse.julialang.org/t/for-if-syntax/64559 "2024-06-03T17:43:40Z")

</div>

I was just wondering what thoughts people have on the following syntax for iter if cond #stuff here end which would basically be short for for iter if cond #stuff here end end Obviously this isn’t…

---

## [Heuristic for checking if a Method always errors](https://discourse.julialang.org/t/heuristic-for-checking-if-a-method-always-errors/115125)

<div class="topic-metadata">

**Author:** [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Replies:** 2\
**Last updated:** [June 3, 2024, 9:12pm UTC](https://discourse.julialang.org/t/heuristic-for-checking-if-a-method-always-errors/115125 "2024-06-03T21:12:12Z")

</div>

@oxinabox mused here that it should be possible to use effect analysis to figure out if a method always, sometimes, or never errors. I don’t know enough about the internals to dig into that at the moment, but it did l…

---

## [Julia GC, heap fragmentation, out of memory, push!/append!](https://discourse.julialang.org/t/julia-gc-heap-fragmentation-out-of-memory-push-append/85224)

<div class="topic-metadata">

**Author:** [@Steven\_Sagaert](https://discourse.julialang.org/u/Steven_Sagaert)\
**Replies:** 30\
**Last updated:** [May 20, 2024, 7:53am UTC](https://discourse.julialang.org/t/julia-gc-heap-fragmentation-out-of-memory-push-append/85224 "2024-05-20T07:53:44Z")

</div>

I saw the juliacon22 video from Christine Flood about Julia GC. I’m glad to see that the GC is finally getting some attention and not just the compiler. It’s long overdue. Let’s just address the elephant in the room: Th…

---

## [Enzyme.jl Assertion Error in geom\_generator Function](https://discourse.julialang.org/t/enzyme-jl-assertion-error-in-geom-generator-function/114436)

<div class="topic-metadata">

**Author:** [@Arijit\_Bhattacharya](https://discourse.julialang.org/u/Arijit_Bhattacharya)\
**Replies:** 6\
**Last updated:** [May 19, 2024, 5:07pm UTC](https://discourse.julialang.org/t/enzyme-jl-assertion-error-in-geom-generator-function/114436 "2024-05-19T17:07:31Z")

</div>

Hi everyone, I’m encountering an issue with my implementation using Enzyme.jl in Julia. The error message I’m receiving is: julia: /buildworker/worker/package\_linux64/build/src/llvm-late-gc-lowering.cpp:870: std::vecto…

---

## [Type-inference and the dot operator](https://discourse.julialang.org/t/type-inference-and-the-dot-operator/114432)

<div class="topic-metadata">

**Author:** [@dmbates](https://discourse.julialang.org/u/dmbates)\
**Replies:** 3\
**Last updated:** [May 18, 2024, 3:48pm UTC](https://discourse.julialang.org/t/type-inference-and-the-dot-operator/114432 "2024-05-18T15:48:34Z")

</div>

I had naively assumed the type-inference used only the types of the arguments to a function call then realized that in an important special case - the dot operator - it must be able to use the value of the second argumen…

---

## [Division by zero runs without warning -\> complicates finding bugs](https://discourse.julialang.org/t/division-by-zero-runs-without-warning-complicates-finding-bugs/113441)

<div class="topic-metadata">

**Author:** [@lisapisa](https://discourse.julialang.org/u/lisapisa)\
**Replies:** 31\
**Last updated:** [May 17, 2024, 12:31pm UTC](https://discourse.julialang.org/t/division-by-zero-runs-without-warning-complicates-finding-bugs/113441 "2024-05-17T12:31:13Z")

</div>

Heyy :slight\_smile: Not sure if this is the right place to post this. Also not sure if this is a valid complaint, that’s why I’m posting here to get other peoples opinion. This post is coming from a place of frustatio…

---

## [Public Reflection API](https://discourse.julialang.org/t/public-reflection-api/114062)

<div class="topic-metadata">

**Author:** [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Replies:** 1\
**Last updated:** [May 10, 2024, 3:51pm UTC](https://discourse.julialang.org/t/public-reflection-api/114062 "2024-05-10T15:51:05Z")

</div>

@oxinabox, noted paragon of virtue, has done some amazing work for the ecosystem making tools for reflection, but those tools rely on internals. She has had this issue open for 7 years: Does anyone have a sense of if…

---

## [Diamond dependency: why allow 2 packages with the same name but not 2 versions of same package?](https://discourse.julialang.org/t/diamond-dependency-why-allow-2-packages-with-the-same-name-but-not-2-versions-of-same-package/113924)

<div class="topic-metadata">

**Author:** [@Benny](https://discourse.julialang.org/u/Benny)\
**Replies:** 11\
**Last updated:** [May 10, 2024, 1:45pm UTC](https://discourse.julialang.org/t/diamond-dependency-why-allow-2-packages-with-the-same-name-but-not-2-versions-of-same-package/113924 "2024-05-10T13:45:28Z")

</div>

I’m tidying up some old notes. I don’t run into this in practice, but two packages with the same name can exist in the same dependency graph if they don’t directly conflict. For a simpler example and using : to indicate …

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

[Next page](https://discourse.julialang.org/c/dev/5.md?page=9)
