# What's Base.Int and Base.UInt32\_cold? And will former (both?) "change or be removed in future versions"?

**URL:** <https://discourse.julialang.org/t/whats-base-int-and-base-uint32-cold-and-will-former-both-change-or-be-removed-in-future-versions/133077>\
**Category:** General Usage\
**Created:** [October 11, 2025, 8:21pm UTC](https://discourse.julialang.org/t/whats-base-int-and-base-uint32-cold-and-will-former-both-change-or-be-removed-in-future-versions/133077 "2025-10-11T20:21:49Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [October 11, 2025, 8:21pm UTC](https://discourse.julialang.org/t/whats-base-int-and-base-uint32-cold-and-will-former-both-change-or-be-removed-in-future-versions/133077/1 "2025-10-11T20:21:49Z")

</div>

I noticed Base.Int in code and it seems Base. prefix is redundant, but:

> help?\> Base.Int  
> │ Warning  
> │  
> │ The following bindings may be internal; they may change or be removed in future versions:  
> │  
> │ • Base.Int

Note unlike for Core.Int, seemingly another synonym with no such warning. All three otherwise have same text.

> <https://github.com/apache/arrow-julia/blob/c75d0e964697e152614f48e012f8b610b5582032/src/metadata/File.jl#L19>

There’s also in the codebase in a struct:  
isSigned::Base.Bool

is it just out of habit or in some sense meaningful/better in some [struct] code? [Note, Base.length has no warning, also redundant to use there…]

At first I was just looking at this line:

```julia-auto
const ZSTD_COMPRESSOR = Lockable{ZstdCompressor}[]

```

and there apparently Base. actually missing, since Base.Lockable actually only exported in 1.12, so unclear why also working in 1.11 (even before when absent? I do not see Compat.jl used).

Should Lockable be made public, since it’s used? That started this investigation…

---

<div class="post-metadata">

**Author:** ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)\
**Post date:** [October 11, 2025, 10:13pm UTC](https://discourse.julialang.org/t/whats-base-int-and-base-uint32-cold-and-will-former-both-change-or-be-removed-in-future-versions/133077/2 "2025-10-11T22:13:27Z")

</div>

Never thought to check, but `Base.Int`, `Base.Int32`, `Base.Float64`, etc all are non-public names that happen to be assigned to same objects as the original `Core` names. `?Main.#` doesn’t show that, so that suggests `Base` assigns `Core` types instead of importing, despite having an export list in exports.jl that suggests reexporting all these names from `Core`. No idea where or why.

Not really sure if you meant to talk about `UInt32_cold(c::Char) = UInt32(c)` because the rest of the topic doesn’t address it, but I’m pretty sure “cold” is an informal hint of a rarely executed path, opposite of a hot path. As for being a separate function, it appears to be marked `@noinline`, so it probably just helps limit the compiled code size of the caller function.
