# Internals & Design

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

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

**Page:** 5

---

## [State of currying-PR](https://discourse.julialang.org/t/state-of-currying-pr/71885)

<div class="topic-metadata">

**Author:** [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Replies:** 18\
**Last updated:** [June 30, 2025, 7:44am UTC](https://discourse.julialang.org/t/state-of-currying-pr/71885 "2025-06-30T07:44:20Z")

</div>

I have found this PR from years ago: https://github.com/JuliaLang/julia/pull/24990 I would love this feature, and I am not alone. Does anyone have a status/summary on this? The discussion is too technical at several po…

---

## [Should Julia use MLIR in the future?](https://discourse.julialang.org/t/should-julia-use-mlir-in-the-future/110459)

<div class="topic-metadata">

**Author:** [@dafmdev](https://discourse.julialang.org/u/dafmdev)\
**Replies:** 20\
**Last updated:** [November 27, 2025, 9:08pm UTC](https://discourse.julialang.org/t/should-julia-use-mlir-in-the-future/110459 "2025-11-27T21:08:28Z")

</div>

I saw that MLIR technology is already driving a new programming language called MOJO with the ability to be very fast, make difficult-to-do optimizations and give instructions to many types of hardware such as CPU, GPU, …

---

## [Are modules intended to work as type parameters?](https://discourse.julialang.org/t/are-modules-intended-to-work-as-type-parameters/130267)

<div class="topic-metadata">

**Author:** [@Benny](https://discourse.julialang.org/u/Benny)\
**Replies:** 2\
**Last updated:** [June 27, 2025, 3:45am UTC](https://discourse.julialang.org/t/are-modules-intended-to-work-as-type-parameters/130267 "2025-06-27T03:45:30Z")

</div>

Currently these are documented as valid type parameters: Both abstract and concrete types can be parameterized by other types. They can also be parameterized by symbols, by values of any type for which isbits returns t…

---

## [Regression in 1.12.\*? conflicting functions using libjulia](https://discourse.julialang.org/t/regression-in-1-12-conflicting-functions-using-libjulia/130257)

<div class="topic-metadata">

**Author:** [@gvanuxem](https://discourse.julialang.org/u/gvanuxem)\
**Replies:** 1\
**Last updated:** [June 26, 2025, 9:03pm UTC](https://discourse.julialang.org/t/regression-in-1-12-conflicting-functions-using-libjulia/130257 "2025-06-26T21:03:37Z")

</div>

Hello, I am trying Julia-1.12.\* and when I use a module which has conflicting function names it used in the past to show conflicting names. My solution was to use first the prior function and later package call them if …

---

## [Method to unsafely close a mmap](https://discourse.julialang.org/t/method-to-unsafely-close-a-mmap/129900)

<div class="topic-metadata">

**Author:** [@nhz2](https://discourse.julialang.org/u/nhz2)\
**Replies:** 1\
**Last updated:** [June 16, 2025, 7:41am UTC](https://discourse.julialang.org/t/method-to-unsafely-close-a-mmap/129900 "2025-06-16T07:41:38Z")

</div>

Currently the Mmap.mmap function uses a finalizer to handle calling munmap or UnmapViewOfFile when the array is garbage collected. It is useful to be able to do this finalization eagerly despite the potential risks if t…

---

## [Pre-release versions of packages](https://discourse.julialang.org/t/pre-release-versions-of-packages/26926)

<div class="topic-metadata">

**Author:** [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Replies:** 22\
**Last updated:** [June 16, 2025, 5:32pm UTC](https://discourse.julialang.org/t/pre-release-versions-of-packages/26926 "2025-06-16T17:32:57Z")

</div>

My understanding is that since Pkg uses SemVer, pre-release versions like 2.0.0-rc.1 and similarly alpha and beta would be technically allowed for package versions. What I would like to avoid is unsuspecting users upgra…

---

## [How is \`Symbol\` special?](https://discourse.julialang.org/t/how-is-symbol-special/129885)

<div class="topic-metadata">

**Author:** [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Replies:** 8\
**Last updated:** [June 14, 2025, 4:18pm UTC](https://discourse.julialang.org/t/how-is-symbol-special/129885 "2025-06-14T16:18:02Z")

</div>

Symbol is a mutable struct, just like Expr: julia\> dump(Expr) mutable struct Expr \<: Any head::Symbol args::Vector{Any} julia\> dump(Symbol) mutable struct Symbol \<: Any Although it’s not possible to mutate it, as…

---

## [Why is \`Expr\` mutable?](https://discourse.julialang.org/t/why-is-expr-mutable/129850)

<div class="topic-metadata">

**Author:** [@PatrickHaecker](https://discourse.julialang.org/u/PatrickHaecker)\
**Replies:** 9\
**Last updated:** [June 14, 2025, 11:32am UTC](https://discourse.julialang.org/t/why-is-expr-mutable/129850 "2025-06-14T11:32:34Z")

</div>

Expr does not have object identity have field equality, i.e. julia\> Expr(:call, println) == Expr(:call, println) true I was surprised to learn that Expr nevertheless is mutable. I can easily imagine why Expr does not h…

---

## [Ahead of Time Compilation in 1.11](https://discourse.julialang.org/t/ahead-of-time-compilation-in-1-11/115423)

<div class="topic-metadata">

**Author:** [@Jakub\_Mitura](https://discourse.julialang.org/u/Jakub_Mitura)\
**Replies:** 7\
**Last updated:** [June 10, 2025, 7:30am UTC](https://discourse.julialang.org/t/ahead-of-time-compilation-in-1-11/115423 "2025-06-10T07:30:01Z")

</div>

how to use julia Ahead of Time Compilation in 1.11 version? I have a series of long compiling functions (minimum 15 minut each up to 54 - Enzyme related kernels) would love to save the compiled version locally and then j…

---

## [Documenting nested functions](https://discourse.julialang.org/t/documenting-nested-functions/129708)

<div class="topic-metadata">

**Author:** [@maxwell3025](https://discourse.julialang.org/u/maxwell3025)\
**Replies:** 2\
**Last updated:** [June 9, 2025, 6:15am UTC](https://discourse.julialang.org/t/documenting-nested-functions/129708 "2025-06-09T06:15:53Z")

</div>

I’m currently working on a project and I came across an issue with using nested functions. In particular, I have a nested function that I want to document, and I am getting a warning about “replacing docs”. This seems …

---

## [Default Real (Float) kind?](https://discourse.julialang.org/t/default-real-float-kind/129631)

<div class="topic-metadata">

**Author:** [@VinceNeede](https://discourse.julialang.org/u/VinceNeede)\
**Replies:** 50\
**Last updated:** [June 7, 2025, 8:47am UTC](https://discourse.julialang.org/t/default-real-float-kind/129631 "2025-06-07T08:47:43Z")

</div>

This is somehow a follow-up to this question: Disable promotion from Float64 to BigFloat The most used Fortran compilers offer the possibility to select which real kind should be used as default, i.e. the type (or bette…

---

## [Could introducing formal interfaces be nonbreaking?](https://discourse.julialang.org/t/could-introducing-formal-interfaces-be-nonbreaking/129567)

<div class="topic-metadata">

**Author:** [@araujoms](https://discourse.julialang.org/u/araujoms)\
**Replies:** 36\
**Last updated:** [June 4, 2025, 2:10pm UTC](https://discourse.julialang.org/t/could-introducing-formal-interfaces-be-nonbreaking/129567 "2025-06-04T14:10:18Z")

</div>

I’m surprised by the talk about formal interfaces coming to the base language. I thought that was impossible before Julia 2.0, as they will necessarily break all the packages who don’t conform to the new interface. For e…

---

## [Destructuring syntax in julia 1.7](https://discourse.julialang.org/t/destructuring-syntax-in-julia-1-7/68236)

<div class="topic-metadata">

**Author:** [@xfcjscn](https://discourse.julialang.org/u/xfcjscn)\
**Replies:** 66\
**Last updated:** [October 27, 2022, 7:21am UTC](https://discourse.julialang.org/t/destructuring-syntax-in-julia-1-7/68236 "2022-10-27T07:21:46Z")

</div>

1.7 introduced new language feature: (; a, b) = x can now be used to destructure properties a and b of x . This syntax is equivalent to a = getproperty(x, :a); b = getproperty(x, :b) From a reader perspective(much more…

---

## [Better error message for modified structs in Julia \>= 1.12](https://discourse.julialang.org/t/better-error-message-for-modified-structs-in-julia-1-12/129265)

<div class="topic-metadata">

**Author:** [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)\
**Replies:** 5\
**Last updated:** [May 23, 2025, 4:33pm UTC](https://discourse.julialang.org/t/better-error-message-for-modified-structs-in-julia-1-12/129265 "2025-05-23T16:33:08Z")

</div>

In Julia 1.12 it is now possible to edit structs (finally!!), with the objects instantiated using the “old” structs “assigned” to a world age table rather than the last “version” of the type. The issue is when you try t…

---

## [Thought: Move GC to packages](https://discourse.julialang.org/t/thought-move-gc-to-packages/129225)

<div class="topic-metadata">

**Author:** [@Tarny\_GG\_Channie](https://discourse.julialang.org/u/Tarny_GG_Channie)\
**Replies:** 4\
**Last updated:** [May 22, 2025, 5:18am UTC](https://discourse.julialang.org/t/thought-move-gc-to-packages/129225 "2025-05-22T05:18:35Z")

</div>

Here’s some thought. Provide an abstract interface for writing a custom garbage collection. Objects created under garbage collector A gets managed by A (perhaps unless transfer ownership or something). Now, things might…

---

## [How is data routed between distributed processes?](https://discourse.julialang.org/t/how-is-data-routed-between-distributed-processes/129102)

<div class="topic-metadata">

**Author:** [@NonDairyNeutrino](https://discourse.julialang.org/u/NonDairyNeutrino)\
**Replies:** 0\
**Last updated:** [May 17, 2025, 3:59pm UTC](https://discourse.julialang.org/t/how-is-data-routed-between-distributed-processes/129102 "2025-05-17T15:59:16Z")

</div>

Say there are two machines, the local L and remote R. I start my “director” julia process (myid() == 1) on machine L. Then the director process (L.1) spawns two worker processes R.2, R.3 on R with addprocs(\[("R", 2)\]).…

---

## [Julia 2.0, new scope rules, and other breaking changes](https://discourse.julialang.org/t/julia-2-0-new-scope-rules-and-other-breaking-changes/129083)

<div class="topic-metadata">

**Author:** [@Leon\_Niceday](https://discourse.julialang.org/u/Leon_Niceday)\
**Replies:** 4\
**Last updated:** [May 17, 2025, 8:53am UTC](https://discourse.julialang.org/t/julia-2-0-new-scope-rules-and-other-breaking-changes/129083 "2025-05-17T08:53:08Z")

</div>

I’m interested in potentially better scoping rules but those will be breaking changes. (I have read the PSA: Julia is not at that stage of development anymore ). When is Julia 2.0 planned to come? Is changing scoping r…

---

## [Remove the soft scope altogether and make it global](https://discourse.julialang.org/t/remove-the-soft-scope-altogether-and-make-it-global/33333)

<div class="topic-metadata">

**Author:** [@Wenjie](https://discourse.julialang.org/u/Wenjie)\
**Replies:** 49\
**Last updated:** [May 17, 2025, 5:03am UTC](https://discourse.julialang.org/t/remove-the-soft-scope-altogether-and-make-it-global/33333 "2025-05-17T05:03:15Z")

</div>

I see that the Julia community are currently debating on the new scope rules in v1.0, in an attempt to return to the deprecated soft/hard local scopes in v0.6. In my opinion, neither solution is ideal. Here, let me give …

---

## [Why does runtime dispatch allocate when the return type is inferred?](https://discourse.julialang.org/t/why-does-runtime-dispatch-allocate-when-the-return-type-is-inferred/129061)

<div class="topic-metadata">

**Author:** [@Benny](https://discourse.julialang.org/u/Benny)\
**Replies:** 5\
**Last updated:** [May 17, 2025, 2:00am UTC](https://discourse.julialang.org/t/why-does-runtime-dispatch-allocate-when-the-return-type-is-inferred/129061 "2025-05-17T02:00:25Z")

</div>

The usual explanation for why runtime dispatches allocate is that falling back to inferring ::Any for the return type requires boxing the instance at runtime. Thing is, there seems to be a workaround. If the compiler kno…

---

## [Datatypes SIMD by default? (as in Mojo)](https://discourse.julialang.org/t/datatypes-simd-by-default-as-in-mojo/128777)

<div class="topic-metadata">

**Author:** [@alexandergunnarson](https://discourse.julialang.org/u/alexandergunnarson)\
**Replies:** 14\
**Last updated:** [May 15, 2025, 4:40pm UTC](https://discourse.julialang.org/t/datatypes-simd-by-default-as-in-mojo/128777 "2025-05-15T16:40:22Z")

</div>

Hello all! Super excited to use Julia. It won out in a lengthy evaluation of mine against Rust, “modern” C++ (\>= C++23), modern Java (\>= Java 24), Mojo, etc. as the basis of my startup’s backend. Thank you to all who hav…

---

## [Lexical scope vs. Dynamic scope](https://discourse.julialang.org/t/lexical-scope-vs-dynamic-scope/78829)

<div class="topic-metadata">

**Author:** [@Iulian.Cioarca](https://discourse.julialang.org/u/Iulian.Cioarca)\
**Replies:** 28\
**Last updated:** [May 14, 2025, 11:13pm UTC](https://discourse.julialang.org/t/lexical-scope-vs-dynamic-scope/78829 "2025-05-14T23:13:59Z")

</div>

What are the advantages of the lexical scope in general compared to dynamic scope? Isn’t inheriting from the parent scope similar to global variables? Why did Julia chose this approach and what are the perfomance differ…

---

## [Calling convension, should Julia "preserve\_none"?](https://discourse.julialang.org/t/calling-convension-should-julia-preserve-none/128898)

<div class="topic-metadata">

**Author:** [@Palli](https://discourse.julialang.org/u/Palli)\
**Replies:** 3\
**Last updated:** [May 11, 2025, 1:32am UTC](https://discourse.julialang.org/t/calling-convension-should-julia-preserve-none/128898 "2025-05-11T01:32:27Z")

</div>

https://clang.llvm.org/docs/AttributeReference.html#preserve-none It seems to be low-hanging fruit to faster performance. What does Julia do currently? It seems to require C23 and “clang::preserve\_none”, and new opt-in…

---

## [Interfaces/traits in julia 2.0 and multiple inheritance](https://discourse.julialang.org/t/interfaces-traits-in-julia-2-0-and-multiple-inheritance/124011)

<div class="topic-metadata">

**Author:** [@serhii](https://discourse.julialang.org/u/serhii)\
**Replies:** 37\
**Last updated:** [May 7, 2025, 5:53pm UTC](https://discourse.julialang.org/t/interfaces-traits-in-julia-2-0-and-multiple-inheritance/124011 "2025-05-07T17:53:09Z")

</div>

Recently, I started programming in Rust, and like many others, I noticed how powerful the design language and solutions around traits can be. This prompted me to investigate Julia’s interface and trait-related packages: …

---

## [Behavior changes with introduction of binding partitions](https://discourse.julialang.org/t/behavior-changes-with-introduction-of-binding-partitions/128660)

<div class="topic-metadata">

**Author:** [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)\
**Replies:** 4\
**Last updated:** [May 4, 2025, 8:05pm UTC](https://discourse.julialang.org/t/behavior-changes-with-introduction-of-binding-partitions/128660 "2025-05-04T20:05:49Z")

</div>

Recently Keno merged a few PRs (like this one) that introduce binding partitions. One consequence is that we will now be able to redefine structs. However, there are some other consequences. According to this PR, those c…

---

## [Juliaup: a modest suggestion](https://discourse.julialang.org/t/juliaup-a-modest-suggestion/128465)

<div class="topic-metadata">

**Author:** [@lewis](https://discourse.julialang.org/u/lewis)\
**Replies:** 62\
**Last updated:** [May 4, 2025, 9:48am UTC](https://discourse.julialang.org/t/juliaup-a-modest-suggestion/128465 "2025-05-04T09:48:07Z")

</div>

I might suggest that juliaup not be the recommended way to install julia and manage julia installations. Before the cognoscenti jump on me, let me explain why and, then, propose a compromise position, if indeed any easy…

---

## [Redesigning String, optimising small strings and comparison](https://discourse.julialang.org/t/redesigning-string-optimising-small-strings-and-comparison/119716)

<div class="topic-metadata">

**Author:** [@tecosaur](https://discourse.julialang.org/u/tecosaur)\
**Replies:** 71\
**Last updated:** [May 3, 2025, 6:26am UTC](https://discourse.julialang.org/t/redesigning-string-optimising-small-strings-and-comparison/119716 "2025-05-03T06:26:33Z")

</div>

Whenever I’ve had to do large-scale string work in Julia, I tend to be less impressed with performance than when doing numerical work. This has produced a niggle, and that niggle as lead to some investigation, which has …

---

## [BroadcastStyle of a SubArray](https://discourse.julialang.org/t/broadcaststyle-of-a-subarray/128181)

<div class="topic-metadata">

**Author:** [@RainerHeintzmann](https://discourse.julialang.org/u/RainerHeintzmann)\
**Replies:** 0\
**Last updated:** [April 18, 2025, 7:50am UTC](https://discourse.julialang.org/t/broadcaststyle-of-a-subarray/128181 "2025-04-18T07:50:46Z")

</div>

The broadcast style of SubArrray (i.e. as obtained using view) is a DefaultArrayStyle: julia\> Base.BroadcastStyle(typeof(view(rand(10,10),2:3,3:4))) Base.Broadcast.DefaultArrayStyle{2}() yet it would be extremely usefu…

---

## [Function definition Expr that prints incorrectly but evals correctly](https://discourse.julialang.org/t/function-definition-expr-that-prints-incorrectly-but-evals-correctly/128038)

<div class="topic-metadata">

**Author:** [@cstjean](https://discourse.julialang.org/u/cstjean)\
**Replies:** 1\
**Last updated:** [April 14, 2025, 6:29am UTC](https://discourse.julialang.org/t/function-definition-expr-that-prints-incorrectly-but-evals-correctly/128038 "2025-04-14T06:29:29Z")

</div>

@MilesCranmer and I have a discussion over whether MacroTools.longdef is correct or not. For reference, longdef is meant to take a short-form function definition and turn it into long-form julia\> MacroTools.longdef(:(f(…

---

## [Absence of method to convert NamedTuple -\> Dictionary?](https://discourse.julialang.org/t/absence-of-method-to-convert-namedtuple-dictionary/127472)

<div class="topic-metadata">

**Author:** [@Jordan\_Cluts](https://discourse.julialang.org/u/Jordan_Cluts)\
**Replies:** 4\
**Last updated:** [March 28, 2025, 8:28pm UTC](https://discourse.julialang.org/t/absence-of-method-to-convert-namedtuple-dictionary/127472 "2025-03-28T20:28:14Z")

</div>

Is there a reason why we don’t and/or can’t have a method that converts a named tuple into a Dictionary? Currently passing a named tuple to a Dictionary constructor simply errors as there is no defined method. The soluti…

---

## [What's under the hood of Julia's remote call procedure?](https://discourse.julialang.org/t/whats-under-the-hood-of-julias-remote-call-procedure/127572)

<div class="topic-metadata">

**Author:** [@NonDairyNeutrino](https://discourse.julialang.org/u/NonDairyNeutrino)\
**Replies:** 2\
**Last updated:** [April 2, 2025, 6:21am UTC](https://discourse.julialang.org/t/whats-under-the-hood-of-julias-remote-call-procedure/127572 "2025-04-02T06:21:16Z")

</div>

As I’ve been using Julia’s Distributed.jl for my master’s thesis (which has been really easy to use; thanks!), I was interested to learn more about distributed computing in general. I’ve just gone down the rabbit hole o…

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

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