public
is a new keyword. Symbols marked withpublic
are considered public API. Symbols marked withexport
are now also treated as public API. The difference betweenpublic
andexport
is thatpublic
names do not become available whenusing
a package/module. ([#50105])ScopedValue
implement dynamic scope with inheritance across tasks ([#50958]).
- Updated GC heuristics to count allocated pages instead of individual objects ([#50144]).
- A new
LazyLibrary
type is exported fromLibdl
for use in building chained lazy library loads, primarily to be used within JLLs ([#50074]).
- The entry point for Julia has been standardized to
Main.main(ARGS)
. This must be explicitly opted into using the@main
macro (see the docstring for further details). When opted-in, and julia is invoked to run a script or expression (i.e. usingjulia script.jl
orjulia -e expr
), julia will subsequently run theMain.main
function automatically. This is intended to unify script and compilation workflows, where code loading may happen in the compiler and execution ofMain.main
may happen in the resulting executable. For interactive use, there is no semantic difference between defining amain
function and executing the code directly at the end of the script. ([50974])
- The new
Libc.mkfifo
function wraps themkfifo
C function on Unix platforms ([#34587]). hardlink(src, dst)
can be used to create hard links. ([#41639])diskstat(path=pwd())
can be used to return statistics about the disk. ([#42248])copyuntil(out, io, delim)
andcopyline(out, io)
copy data into anout::IO
stream ([#48273]).eachrsplit(string, pattern)
iterates split substrings right to left.
replace(string, pattern...)
now supports an optionalIO
argument to write the output to a stream rather than returning a string ([#48625]).
rand
now supports sampling overTuple
types ([#35856], [#50251]).rand
now supports sampling overPair
types ([#28705]).- When seeding RNGs provided by
Random
, negative integer seeds can now be used ([#51416]). - Seedable random number generators from
Random
can now be seeded by a string, e.g.seed!(rng, "a random seed")
([#51527]).
- Tab complete hints now show in lighter text while typing in the repl. To disable
set
Base.active_repl.options.hint_tab_completes = false
([#51229])
- Statistics is now an upgradeable standard library.([#46501])
pmap
now defaults to using aCachingPool
([#33892]).
tput
is no longer called to check terminal capabilities, it has been replaced with a pure-Julia terminfo parser.