EDIT2: This is actually not a bug, no worry, just ignore me, and is equivalent it seems, and disabled “the” startup-file. It happens either way and I only confirmed, with strace, the file opened when not trying to disable it, and actually then also a different file I didn’t know of…:
statx(AT_FDCWD, "/home/pharaldsson/.julia/juliaup/julia-1.11.0-rc2+0.x64.linux.gnu/etc/julia/startup.jl", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=162, ...}) = 0
statx(AT_FDCWD, "/home/pharaldsson/.julia/juliaup/julia-1.11.0-rc2+0.x64.linux.gnu/etc/julia/startup.jl", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=162, ...}) = 0
openat(AT_FDCWD, "/home/pharaldsson/.julia/juliaup/julia-1.11.0-rc2+0.x64.linux.gnu/etc/julia/startup.jl", O_RDONLY|O_CLOEXEC) = 21
read(21, "# This file should contain site-"..., 32768) = 162
close(21) = 0
statx(AT_FDCWD, "/home/pharaldsson/.julia/config/startup.jl", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0664, stx_size=54, ...}) = 0
statx(AT_FDCWD, "/home/pharaldsson/.julia/config/startup.jl", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0664, stx_size=54, ...}) = 0
openat(AT_FDCWD, "/home/pharaldsson/.julia/config/startup.jl", O_RDONLY|O_CLOEXEC) = 21
EDIT: It’s actually not slower, my timing was bad, machine loaded, comparable with hyperfine.
strace show a lot of intriguing work happening, that I waded through, such as not opening some files, and others I didn’t know of, some for juliaup actually (for best timing, slightly faster you run julia directly, not indirectly through juliaup):
statx(AT_FDCWD, "/home/pharaldsson/.julia/juliaup/juliaup.json", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0664, stx_size=4424, ...}) = 0
mkdir("/home/pharaldsson/.julia/juliaup", 0777) = -1 EEXIST (File exists)
statx(AT_FDCWD, "/home/pharaldsson/.julia/juliaup", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=4096, ...}) = 0
openat(AT_FDCWD, "/home/pharaldsson/.julia/juliaup/.juliaup-lock", O_RDWR|O_CREAT|O_CLOEXEC, 0666) = 3
flock(3, LOCK_SH|LOCK_NB) = 0
openat(AT_FDCWD, "/home/pharaldsson/.julia/juliaup/juliaup.json", O_RDONLY|O_CLOEXEC) = 4
read(4, "{\n \"Default\": \"1.10\",\n \"Instal"..., 8192) = 4424
getrandom("\x96\x2e\xc4\xd4\x78\x77\x46\x2b\xb4\xed\xeb\x96\xa7\x48\xac\x71", 16, GRND_INSECURE) = 16
read(4, "", 8192) = 0
close(4) = 0
openat(AT_FDCWD, "/home/pharaldsson/.julia/juliaup/juliaupself.json", O_RDONLY|O_CLOEXEC) = 4
..
openat(AT_FDCWD, "/home/pharaldsson/.julia/juliaup/julia-1.11.0-rc2+0.x64.linux.gnu/bin/../lib/julia/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
..
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libjulia-codegen.so.1.11", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libjulia-codegen.so.1.11", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
..
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
getrandom("\xc9\x02\x9c\x9d\xe0\x2f\xa9\x88", 8, 0) = 8
openat(AT_FDCWD, "/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 20
..
openat(AT_FDCWD, "/proc/meminfo", O_RDONLY|O_CLOEXEC) = 20
read(20, "MemTotal: 32754160 kB\nMemF"..., 4095) = 1419
..
openat(AT_FDCWD, "/home/pharaldsson/.julia/juliaup/julia-1.11.0-rc2+0.x64.linux.gnu/bin/../lib/julia/libpcre2-8", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/pharaldsson/.julia/juliaup/julia-1.11.0-rc2+0.x64.linux.gnu/bin/../lib/julia/../libpcre2-8", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
No, that’s buggy, and I’m not sure what it does without =no
, but at least it’s slower:
time julia --startup-file no -e ""
real 0m0,904s
user 0m0,298s
sys 0m0,330s
compared to:
time julia --startup-file=no -e ""
real 0m0,228s
user 0m0,137s
sys 0m0,106s
and even better for RC2:
time julia +1.11 --startup-file=no -e ""
real 0m0,181s
user 0m0,133s
sys 0m0,063s