# Internals & Design

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

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

**Page:** 7

---

## [Improved allocation design, with 4-byte pointers, and sometimes 5-byte in effect](https://discourse.julialang.org/t/improved-allocation-design-with-4-byte-pointers-and-sometimes-5-byte-in-effect/123229)

<div class="topic-metadata">

**Author:** [@Palli](https://discourse.julialang.org/u/Palli)\
**Replies:** 10\
**Last updated:** [December 12, 2024, 1:00pm UTC](https://discourse.julialang.org/t/improved-allocation-design-with-4-byte-pointers-and-sometimes-5-byte-in-effect/123229 "2024-12-12T13:00:50Z")

</div>

I want to make default allocations faster (and actually less needed too) than default allocations in C, C++, Rust, and more space-efficient, also the structs containing the Refs/pointers to the allocations (important for…

---

## [\>= 2gb sysimages for Mac?](https://discourse.julialang.org/t/2gb-sysimages-for-mac/123672)

<div class="topic-metadata">

**Author:** [@dgleich](https://discourse.julialang.org/u/dgleich)\
**Replies:** 0\
**Last updated:** [December 10, 2024, 5:52pm UTC](https://discourse.julialang.org/t/2gb-sysimages-for-mac/123672 "2024-12-10T17:52:51Z")

</div>

Is there any limit to the size of a Julia sysimage on macOS? Currently, the answer seems to be yes… 2GB limit to sysimage size? · Issue #1019 · JuliaLang/PackageCompiler.jl · GitHub However, I’m trying to see if Julia c…

---

## [Performance optimization by NPUs](https://discourse.julialang.org/t/performance-optimization-by-npus/123661)

<div class="topic-metadata">

**Author:** [@ShalokShalom](https://discourse.julialang.org/u/ShalokShalom)\
**Replies:** 1\
**Last updated:** [December 10, 2024, 3:10pm UTC](https://discourse.julialang.org/t/performance-optimization-by-npus/123661 "2024-12-10T15:10:01Z")

</div>

This is less about concrete implemention in Julia, and more about curiosity. My understanding suggests, that NPUs would be suitable to calculate method dispatch, pattern matching, and certain other aspects of Julia. Is…

---

## [Should Dict avoid GC allocations for isbits key/value types?](https://discourse.julialang.org/t/should-dict-avoid-gc-allocations-for-isbits-key-value-types/123613)

<div class="topic-metadata">

**Author:** [@greatpet](https://discourse.julialang.org/u/greatpet)\
**Replies:** 3\
**Last updated:** [December 10, 2024, 1:16am UTC](https://discourse.julialang.org/t/should-dict-avoid-gc-allocations-for-isbits-key-value-types/123613 "2024-12-10T01:16:36Z")

</div>

Resizing arrays, when elements have primitive types or more generally isbits types, does not trigger any GC, as this is handled by the C runtime. Dictionaries are also allocation-free during most operations, except durin…

---

## [Sort tuple](https://discourse.julialang.org/t/sort-tuple/110730)

<div class="topic-metadata">

**Author:** [@jar1](https://discourse.julialang.org/u/jar1)\
**Replies:** 11\
**Last updated:** [December 8, 2024, 9:56pm UTC](https://discourse.julialang.org/t/sort-tuple/110730 "2024-12-08T21:56:14Z")

</div>

Any reason this shouldn’t work? julia\> sort((1,2,3)) ERROR: MethodError: no method matching sort(::Tuple{Int64, Int64, Int64})

---

## [Terminal on Windows: git bash](https://discourse.julialang.org/t/terminal-on-windows-git-bash/6005)

<div class="topic-metadata">

**Author:** [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Replies:** 2\
**Last updated:** [December 8, 2024, 3:11pm UTC](https://discourse.julialang.org/t/terminal-on-windows-git-bash/6005 "2024-12-08T15:11:05Z")

</div>

Would it be possible to bundle the Julia dist for Windows with the git bash terminal? It is much more useful than the current Windows terminal (shell mode works!). (See Usable shell on Windows (yay!))

---

## [Init for mutating op: reduce(op!, xs; oninit)](https://discourse.julialang.org/t/init-for-mutating-op-reduce-op-xs-oninit/123516)

<div class="topic-metadata">

**Author:** [@jar1](https://discourse.julialang.org/u/jar1)\
**Replies:** 1\
**Last updated:** [December 5, 2024, 9:25pm UTC](https://discourse.julialang.org/t/init-for-mutating-op-reduce-op-xs-oninit/123516 "2024-12-05T21:25:49Z")

</div>

In reduce(append!, lists, oninit=eltype(lists)) we can’t pass init=eltype(lists)() because that value should be append!ed only once. A new init should be generated each time. Transducers.jl provided OnInit(f) for this, b…

---

## [Symbol is Base.isexported but not Base.isbindingresolved?](https://discourse.julialang.org/t/symbol-is-base-isexported-but-not-base-isbindingresolved/123471)

<div class="topic-metadata">

**Author:** [@ajwheeler](https://discourse.julialang.org/u/ajwheeler)\
**Replies:** 4\
**Last updated:** [December 5, 2024, 3:58pm UTC](https://discourse.julialang.org/t/symbol-is-base-isexported-but-not-base-isbindingresolved/123471 "2024-12-05T15:58:23Z")

</div>

Working on Group import hints by ajwheeler · Pull Request #56753 · JuliaLang/julia · GitHub, I was surprised to see that there are cases of symbols s and modules m for which Base.isbindingresolved(m, s) is false, but Bas…

---

## [Autovectorization in Julia 101](https://discourse.julialang.org/t/autovectorization-in-julia-101/123472)

<div class="topic-metadata">

**Author:** [@Benny](https://discourse.julialang.org/u/Benny)\
**Replies:** 2\
**Last updated:** [December 5, 2024, 11:43am UTC](https://discourse.julialang.org/t/autovectorization-in-julia-101/123472 "2024-12-05T11:43:22Z")

</div>

I’m trying to read up on autovectorization but I might be looking in the wrong place: Auto-Vectorization in LLVM — LLVM 20.0.0git documentation For one, the whole thing talks about Clang and C code, so I have doubts it…

---

## [\`cholesky!\` L.data pointer question](https://discourse.julialang.org/t/cholesky-l-data-pointer-question/123215)

<div class="topic-metadata">

**Author:** [@RoyW](https://discourse.julialang.org/u/RoyW)\
**Replies:** 1\
**Last updated:** [December 2, 2024, 3:00pm UTC](https://discourse.julialang.org/t/cholesky-l-data-pointer-question/123215 "2024-12-02T15:00:04Z")

</div>

In the following code, I was surprised that the pointer for L.L.data isn’t the same as the pointer to B, L.UL.data, L.U.data. using LinearAlgebra, Random, BenchmarkTools T = Float64 D = 3 rng = Random.Xoshiro(0) funct…

---

## [Why can Julia spawn new processes but not new threads?](https://discourse.julialang.org/t/why-can-julia-spawn-new-processes-but-not-new-threads/123267)

<div class="topic-metadata">

**Author:** [@NonDairyNeutrino](https://discourse.julialang.org/u/NonDairyNeutrino)\
**Replies:** 1\
**Last updated:** [November 30, 2024, 5:10am UTC](https://discourse.julialang.org/t/why-can-julia-spawn-new-processes-but-not-new-threads/123267 "2024-11-30T05:10:57Z")

</div>

With Distributed.jl, you can create new worker processes easily with addprocs (each of which can have multiple threads), but once a Julia process starts you can’t add more threads to that process; why?

---

## [Evalpoly without coefficients: ugly errors, zero polynomial?](https://discourse.julialang.org/t/evalpoly-without-coefficients-ugly-errors-zero-polynomial/97666)

<div class="topic-metadata">

**Author:** [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Replies:** 1\
**Last updated:** [November 28, 2024, 11:56am UTC](https://discourse.julialang.org/t/evalpoly-without-coefficients-ugly-errors-zero-polynomial/97666 "2024-11-28T11:56:30Z")

</div>

Consider calls such as these: julia\> evalpoly(3, ()) ERROR: BoundsError: attempt to access Tuple{} at index \[0\] Stacktrace: \[1\] getindex(t::Tuple, i::Int64) @ Base ./tuple.jl:31 \[2\] macro expansion @ ./math.jl:1…

---

## [I want to understand Julia type system, I need some guide for this quest](https://discourse.julialang.org/t/i-want-to-understand-julia-type-system-i-need-some-guide-for-this-quest/121854)

<div class="topic-metadata">

**Author:** [@KZiemian](https://discourse.julialang.org/u/KZiemian)\
**Replies:** 4\
**Last updated:** [November 23, 2024, 9:53am UTC](https://discourse.julialang.org/t/i-want-to-understand-julia-type-system-i-need-some-guide-for-this-quest/121854 "2024-11-23T09:53:50Z")

</div>

I must say that I’m intrigued by Julia type system and I want to understand it more. In particular I want to understand works like this of prof. Jan Vitek and his collaborators mentioned in his 2021 JuliaCon keynote and …

---

## [Standardize code path to reconstruct factorizations](https://discourse.julialang.org/t/standardize-code-path-to-reconstruct-factorizations/122887)

<div class="topic-metadata">

**Author:** [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Replies:** 1\
**Last updated:** [November 21, 2024, 3:45pm UTC](https://discourse.julialang.org/t/standardize-code-path-to-reconstruct-factorizations/122887 "2024-11-21T15:45:03Z")

</div>

What this is about Reading the code for various factorizations in LinearAlgebra, I notized that each define a bunch of methods to reconstruct a factorization (ie obtain an ::AbstractMatrix). Eg Cholesky has AbstractMat…

---

## [Why isn't this Base piracy breaking a Base method call?](https://discourse.julialang.org/t/why-isnt-this-base-piracy-breaking-a-base-method-call/122894)

<div class="topic-metadata">

**Author:** [@Benny](https://discourse.julialang.org/u/Benny)\
**Replies:** 2\
**Last updated:** [November 21, 2024, 1:03pm UTC](https://discourse.julialang.org/t/why-isnt-this-base-piracy-breaking-a-base-method-call/122894 "2024-11-21T13:03:25Z")

</div>

In the middle of reading another question, I used Cthulhu.jl to @descend into maximum(\[1,2,3\]) to find an internal method to pirate, but contrary to my intentions, it didn’t break anything: julia\> @eval Base mapreduce\_f…

---

## [What does “moving compiler out of Base” actually entail?](https://discourse.julialang.org/t/what-does-moving-compiler-out-of-base-actually-entail/122757)

<div class="topic-metadata">

**Author:** [@Tarny\_GG\_Channie](https://discourse.julialang.org/u/Tarny_GG_Channie)\
**Replies:** 4\
**Last updated:** [November 18, 2024, 6:28am UTC](https://discourse.julialang.org/t/what-does-moving-compiler-out-of-base-actually-entail/122757 "2024-11-18T06:28:55Z")

</div>

The compiler is being moved out of base. What does this entail? Does that mean that the compiler extension/custom compiler pass/etc will soon no longer rely on undocumented internals? If so, this could prove very benefic…

---

## [Status of Julia 1.12](https://discourse.julialang.org/t/status-of-julia-1-12/122731)

<div class="topic-metadata">

**Author:** [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Replies:** 5\
**Last updated:** [November 17, 2024, 6:36pm UTC](https://discourse.julialang.org/t/status-of-julia-1-12/122731 "2024-11-17T18:36:04Z")

</div>

What is the current status of Julia 1.12? When can we expect a feature freeze? Which larger new features are to be expected? If I look at 1.12 Milestone · GitHub not much happened in the last 4 weeks. Is that misleadi…

---

## [Why did Julia choose nominal typing over structural typing/traits?](https://discourse.julialang.org/t/why-did-julia-choose-nominal-typing-over-structural-typing-traits/122517)

<div class="topic-metadata">

**Author:** [@serhii](https://discourse.julialang.org/u/serhii)\
**Replies:** 29\
**Last updated:** [November 16, 2024, 3:12pm UTC](https://discourse.julialang.org/t/why-did-julia-choose-nominal-typing-over-structural-typing-traits/122517 "2024-11-16T15:12:40Z")

</div>

I’ve been thinking about Julia’s type system design, particularly how it uses nominal typing rather than structural typing or a trait-based system. I’m curious about the historical and technical reasons behind this choic…

---

## [Build failure](https://discourse.julialang.org/t/build-failure/122467)

<div class="topic-metadata">

**Author:** [@chrstphrbrns](https://discourse.julialang.org/u/chrstphrbrns)\
**Replies:** 14\
**Last updated:** [November 12, 2024, 7:25pm UTC](https://discourse.julialang.org/t/build-failure/122467 "2024-11-12T19:25:32Z")

</div>

Since 683da41, I’m no longer able to build Julia from master (on linux or macOS) Compiling the compiler. This may take several minutes ... Base.Compiler ──── 177.213 seconds flparse.jl JULIA usr/lib/julia/sys.ji Abo…

---

## [Roadmap for small binaries](https://discourse.julialang.org/t/roadmap-for-small-binaries/99266)

<div class="topic-metadata">

**Author:** [@gitboy16](https://discourse.julialang.org/u/gitboy16)\
**Replies:** 126\
**Last updated:** [November 10, 2024, 7:29pm UTC](https://discourse.julialang.org/t/roadmap-for-small-binaries/99266 "2024-11-10T19:29:48Z")

</div>

Hi All, I saw this question first popped up at JuliaCon 2021: Since then I have seen a lot of talk and discussion about it as well as some attempt (StaticCompiler.jl) to address the missing feature of prod…

---

## [Reducing Channel Lock Contention with Batches](https://discourse.julialang.org/t/reducing-channel-lock-contention-with-batches/122215)

<div class="topic-metadata">

**Author:** [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Replies:** 4\
**Last updated:** [November 6, 2024, 11:59pm UTC](https://discourse.julialang.org/t/reducing-channel-lock-contention-with-batches/122215 "2024-11-06T23:59:44Z")

</div>

This has been asked before, but it looks like it didn’t go anywhere. Channels are very powerful, but the lock overhead makes it slow for iterating. Bundling items into batches before take!/put! would help with this overh…

---

## [Adding a type parameter annotation symbol that preserves the original bound](https://discourse.julialang.org/t/adding-a-type-parameter-annotation-symbol-that-preserves-the-original-bound/122015)

<div class="topic-metadata">

**Author:** [@frankwswang](https://discourse.julialang.org/u/frankwswang)\
**Replies:** 16\
**Last updated:** [November 1, 2024, 4:56pm UTC](https://discourse.julialang.org/t/adding-a-type-parameter-annotation-symbol-that-preserves-the-original-bound/122015 "2024-11-01T16:56:29Z")

</div>

Given a defined composite type with multiple constrained type parameters, e.g.: julia\> struct myT{T1\<:Real, T2\<:Integer} end When we reference its type signature elsewhere (e.g., for a method definition), it’s common t…

---

## [Multiple-dispatch depending on output type?](https://discourse.julialang.org/t/multiple-dispatch-depending-on-output-type/7639)

<div class="topic-metadata">

**Author:** [@xiaodai](https://discourse.julialang.org/u/xiaodai)\
**Replies:** 21\
**Last updated:** [October 31, 2024, 3:00pm UTC](https://discourse.julialang.org/t/multiple-dispatch-depending-on-output-type/7639 "2024-10-31T15:00:47Z")

</div>

I was just thinking about multiple-dispatch and something just occurred to me. Currently, there is multiple-dispatch based on input types but what if it can dispatch on output type as well? For example sqrt(-1) will fai…

---

## [Julia 1.11 is slower than 1.10?](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077)

<div class="topic-metadata">

**Author:** [@dqeeq](https://discourse.julialang.org/u/dqeeq)\
**Replies:** 48\
**Last updated:** [October 29, 2024, 12:40pm UTC](https://discourse.julialang.org/t/julia-1-11-is-slower-than-1-10/121077 "2024-10-29T12:40:42Z")

</div>

So I was reading the blog post and decided to test the speedup of the Stdlib excision section, % hyperfine 'julia +1.10 --startup-file=no -e "1+1"' Benchmark 1: julia +1.10 --startup-file=no -e "1+1" Time (mean ± σ): …

---

## [Should memory allocation alignment be increased to e.g. 64 (or 256)?](https://discourse.julialang.org/t/should-memory-allocation-alignment-be-increased-to-e-g-64-or-256/121788)

<div class="topic-metadata">

**Author:** [@Palli](https://discourse.julialang.org/u/Palli)\
**Replies:** 3\
**Last updated:** [October 27, 2024, 2:13am UTC](https://discourse.julialang.org/t/should-memory-allocation-alignment-be-increased-to-e-g-64-or-256/121788 "2024-10-27T02:13:21Z")

</div>

I see it’s 16-byte aligned, for Julia allocations (also if going straight to Libc.malloc). I’m thinking of a 32-bit pointer (Ptr32) idea, that wouldn’t have byte-addressability, i.e. for base pointers, then if you add e…

---

## [Docstrings: Imperative or indicative mood?](https://discourse.julialang.org/t/docstrings-imperative-or-indicative-mood/121524)

<div class="topic-metadata">

**Author:** [@tecosaur](https://discourse.julialang.org/u/tecosaur)\
**Replies:** 19\
**Last updated:** [October 23, 2024, 11:57am UTC](https://discourse.julialang.org/t/docstrings-imperative-or-indicative-mood/121524 "2024-10-23T11:57:22Z")

</div>

Whether this is the best place for this topic is a little muddy, #dev:internals is a “best guess” from me, mostly from it not fitting cleanly into General Usage. I’m currently putting together docstring linter, that goes…

---

## [Allowing for keyword arguments in do-block](https://discourse.julialang.org/t/allowing-for-keyword-arguments-in-do-block/19244)

<div class="topic-metadata">

**Author:** [@bkamins](https://discourse.julialang.org/u/bkamins)\
**Replies:** 11\
**Last updated:** [October 22, 2024, 10:38am UTC](https://discourse.julialang.org/t/allowing-for-keyword-arguments-in-do-block/19244 "2024-10-22T10:38:39Z")

</div>

I wanted to ask if it was considered to add support for keyword arguments in do-block statement? So that something like: fun(args; kwargs) do (args2; kwargs2) #body end would be rewritten as: fun(function(args2;k…

---

## [Suggestion: Pkg inherit-manifest (similar to "Test-specific dependencies")](https://discourse.julialang.org/t/suggestion-pkg-inherit-manifest-similar-to-test-specific-dependencies/121404)

<div class="topic-metadata">

**Author:** [@Arlo](https://discourse.julialang.org/u/Arlo)\
**Replies:** 8\
**Last updated:** [October 22, 2024, 7:58am UTC](https://discourse.julialang.org/t/suggestion-pkg-inherit-manifest-similar-to-test-specific-dependencies/121404 "2024-10-22T07:58:40Z")

</div>

I’m new to Julia, but have been a software engineer for a while working in various languages. I’ve been studying how Julia Pkg behaves in regards to dependency versions, manifests, and test target. I think there’s a need…

---

## [Where is juliac developed](https://discourse.julialang.org/t/where-is-juliac-developed/113004)

<div class="topic-metadata">

**Author:** [@The\_Mastermage](https://discourse.julialang.org/u/The_Mastermage)\
**Replies:** 38\
**Last updated:** [October 21, 2024, 9:27pm UTC](https://discourse.julialang.org/t/where-is-juliac-developed/113004 "2024-10-21T21:27:38Z")

</div>

As i am quite interested in having julia create binaries, and I have been snippets here and there about the juliac development I wanted to ask where exactly (on which branch, or github) juliac is developed such that i co…

---

## [How to implement custom assignment with \`:=\` ? (for tinkering/learning purposes)](https://discourse.julialang.org/t/how-to-implement-custom-assignment-with-for-tinkering-learning-purposes/121467)

<div class="topic-metadata">

**Author:** [@Sevi](https://discourse.julialang.org/u/Sevi)\
**Replies:** 6\
**Last updated:** [October 21, 2024, 7:37am UTC](https://discourse.julialang.org/t/how-to-implement-custom-assignment-with-for-tinkering-learning-purposes/121467 "2024-10-21T07:37:35Z")

</div>

I stumbled across this post and realized I have no idea how I would actually implement := to mean something like “define/assign the variable if it is not already defined, otherwise throw an error”, so I’m looking for som…

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

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