marler8997 / zigup Goto Github PK
View Code? Open in Web Editor NEWDownload and manage zig compilers.
License: MIT No Attribution
Download and manage zig compilers.
License: MIT No Attribution
I don't know if it would be one of the goals, but it would help a lot if there was this integration.
e.g.:
https://github.com/corrosion-rs/corrosion/blob/master/cmake/FindRust.cmake
Although you have thought of a similar proposal.
https://gist.github.com/marler8997/d1e8d54fc3966fbcd619a137ed4dd1f7#file-readme-md
Switched to a new branch 'fordep'
/mnt/c/Users/Natu/Desktop/Desktop/zigup/dep/ziget/build.zig:194:61: error: expected type '?Build.LazyPath', found '[]const u8'
configure_openssl.cwd = openssl_repo.getPath(&configure_openssl.step);
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/home/natu/.bun/install/global/node_modules/@oven/zig-linux-x64/lib/std/Build.zig:1904:22: note: union declared here
pub const LazyPath = union(enum) {
^~~~~
referenced by:
addZigetModule: /mnt/c/Users/Natu/Desktop/Desktop/zigup/dep/ziget/build.zig:153:9
addZigupExe: /mnt/c/Users/Natu/Desktop/Desktop/zigup/build2.zig:119:15
remaining reference traces hidden; use '-freference-trace' to see all reference traces
error: the following build command failed with exit code 255:
/mnt/c/Users/Natu/Desktop/Desktop/zigup/zig-cache/o/9bd5c5e1df548935c0e44c27108e3f2d/build /home/natu/.bun/install/global/node_modules/@oven/zig-linux-x64/zig /mnt/c/Users/Natu/Desktop/Desktop/zigup /mnt/c/Users/Natu/Desktop/Desktop/zigup/zig-cache /home/natu/.cache/zig
It would be nice if when doing zigup master
, it would auto delete the previous day's master instead of just keeping it.
I guess the code tries to guess the URL instead of using the one from the index
The current install location for zigup
is ~/bin
on posix systems. The reason for this is that
PATH
However, another default location could be the path to the zigup
binary itself. This solves the PATH
issue because it means zig
will be reachable in the same manner that the user is calling zigup
. For example, if the user installed zigup
to a location that is in the PATH
, then zig
will be available in the same PATH
entry. If zigup
is not availabe in PATH
, then maybe the user didn't want it to be.
Note that the default install location doesn't preclude other solutions. For example, this default solution is not viable for the "Nix Package Manager" because zigup
would be installed to its own directory (which should be readonly). In this case I expect the Nix expression to create the zigup
and configure a different default install location, perhaps ~/bin
. It seems fine to change the default install location for versions of zigup that are installed by package managers and a version that is meant to be a standalone executable installed by the user.
Currently, all zig compiler installs through zigup are stored in $HOME/zig
by default. I would like to configure that my compilers be stored in $HOME/.zigup/compilers
. In the current version of zigup, I need to pass --install-dir $HOME/.zigup/compilers
each time I fetch a compiler version. I would like to set a globally configured "install dir" that zigup respects unless explicitly passed an --install-dir
argument.
There are a couple ways to do this.
The simplest way would be to create an environment variable:
# This might store a `$ZIGUP_HOME` env var?
zigup --set-install-dir $HOME/.zigup
And subsequent calls to zigup might check for $ZIGUP_HOME
existence before proceeding.
Rustup, the zigup equivalent for rust, has a default $RUSTUP_HOME
at $HOME/.rustup
which can be overridden by setting the env var. The settings.toml
file provides configuration options to set the default toolchain and to allow for project-specific toolchain overrides (configured through the CLI):
default_toolchain = "stable-x86_64-unknown-linux-musl"
profile = "default"
version = 12
[overrides]
"/home/username/d/example_project_using_nightly_build" = "nightly-x86_64-unknown-linux-musl"
"/home/username/d/example_project_using_specific_build" = "1.67-x86_64-unknown-linux-musl"
Zigup might follow a similar convention and have a settings.toml
or settings.json
file at $ZIGUP_HOME
that allows for fine-grained configuration. This also addresses issue #69.
zls uses a configuration file called zls.json
which is stored in a known folder. The known-folders project provides the set of utilities needed for this. zigup can take a similar approach and search for a zigup.json
configuration file in known folders. (And for MacOS also look for $HOME/.config/zigup
)
Folder | Windows | xdg | MacOS |
---|---|---|---|
Roaming Configuration | %APPDATA% | XDG_CONFIG_HOME | HOME/Library/Preferences |
Local Configuration | %LOCALAPPDATA% | XDG_CONFIG_HOME | HOME/Library/Application Support |
In order to accommodate for various config options, zigup might prioritize an env var (e.g., $ZIGUP_HOME
) over a config, and if not found, search for a config file, and if not found, use the default.
This is obviously my preference, but the actual implementation would require discussion with the community to reach a consensus. Moving the compiler storage dir to $HOME/.zigup/compilers
enables storage of other metadata and info in the $HOME/.zigup
dir including the index file (allowing for a quick search for available versions), and potentially a settings/config file as specified in 2.1.
Note: my reasoning for this is that I like to store all zig bins in $HOME/.zig/bin
. Cargo stores bins in $HOME/.cargo/bin
and rustup toolchains are stored in $HOME/.rustup/toolchains
As listed on the zig download page.
Using zigup would be more convenient if it had completions for shells. These would have to be installed seperately right now, but once theres an AUR package they could be included. Here's some shells that I think might be worth supporting:
Unfortunately zigup does not build on the latest zig master since the last update was all the way back in May. The ci binaries appear to have expired. Does anyone know of another way to download specific older zig versions?
To reproduce, download zigup to $HOME/download/zigup, and symbolic link it to $HOME/bin/zigup, whereas $HOME/download is not in PATH and $HOME/bin is.
When zigup is executed, /proc/self/exe points to $HOME/download/zigup and not $HOME/bin/zigup, even if $HOME/bin/zigup was what was found in PATH, because kernel already resolved symbolic link.
Hello! Thank you for making zigup.
Looking at the listed commands when running zigup master
I don't see any that download the signature or verify the downloaded zig package in any way.
Are there any plans to add this?
$> zigup 0.11.0-dev.1393+38eebf3c4
install directory '/Users/pfg/zig'
mkdir '/Users/pfg/zig'
compiler '/Users/pfg/zig/0.11.0-dev.1393+38eebf3c4' already installed
error: path-link '/Users/pfg/bin/zig' is lower priority in PATH than '/usr/local/bin/zig'
$> zigup 0.11.0-dev.1393+38eebf3c4
install directory '/Users/pfg/zig'
mkdir '/Users/pfg/zig'
compiler '/Users/pfg/zig/0.11.0-dev.1393+38eebf3c4' already installed
error: the path link '/Users/pfg/bin/zig' is not in PATH
Expected:
~/bin/zig
is still created or updated despite the warning
What happens:
~/bin/zig
is not created, or if it exists it is not updated
I would expect path issues to be a warning rather than an error, something like:
$> zigup master
… downloading
Zig installed to ~/bin/zig
warning: ~/bin is not in your PATH.
or:
warning: There is already a zig compiler in your PATH with higher priority.
It seems some people are using zigup to get the nightly version of zig. And some people also seem to occasionally miss new breaking changes in master. Wouldn't it be great if zigup would notify you about any breaking changes that happened between the last time you fetched? I imagine it a bit like how changes in plugins are displayed when running :PackerUpdate
in neovim:
Here you can see no breaking changes because there weren't any, but they would be marked red. The other commits might be interesting for some, but not essential. The feature would only be relevant for master
.
I am using Linux
latest build of zigup v2023_07_27
zigup.ubuntu-latest-x86_64.zip
I looked into it and seems like ln -s
(syslink) for /usr/bin
requires sudo access.
if I run zigup
with sudo, then it requires root access to run zig.
$ zigup 0.12.0-dev.899+027aabf49
install directory '/home/saurabh/zig'
mkdir '/home/saurabh/zig'
rm -rf '/home/saurabh/zig/0.12.0-dev.899+027aabf49.installing'
mkdir '/home/saurabh/zig/0.12.0-dev.899+027aabf49.installing'
downloading 'https://ziglang.org/builds/zig-linux-x86_64-0.12.0-dev.899+027aabf49.tar.xz' to '/home/saurabh/zig/0.12.0-dev.899+027aabf49.installing/zig-linux-x86_64-0.12.0-dev.899+027aabf49.tar.xz'
[RUN] tar xf /home/saurabh/zig/0.12.0-dev.899+027aabf49.installing/zig-linux-x86_64-0.12.0-dev.899+027aabf49.tar.xz -C /home/saurabh/zig/0.12.0-dev.899+027aabf49.installing
rm -rf '/home/saurabh/zig/0.12.0-dev.899+027aabf49.installing/zig-linux-x86_64-0.12.0-dev.899+027aabf49.tar.xz'
mv '/home/saurabh/zig/0.12.0-dev.899+027aabf49.installing/zig-linux-x86_64-0.12.0-dev.899+027aabf49' '/home/saurabh/zig/0.12.0-dev.899+027aabf49.installing/files'
mv '/home/saurabh/zig/0.12.0-dev.899+027aabf49.installing' '/home/saurabh/zig/0.12.0-dev.899+027aabf49'
error: AccessDenied
/opt/hostedtoolcache/zig/0.11.0-dev.4002/x64/lib/std/os.zig:2355:19: 0x278722 in unlinkZ (zigup)
/opt/hostedtoolcache/zig/0.11.0-dev.4002/x64/lib/std/os.zig:2341:9: 0x24b43a in unlink (zigup)
/home/runner/work/zigup/zigup/zigup.zig:462:9: 0x24b137 in loggyUpdateSymlink (zigup)
/home/runner/work/zigup/zigup/zigup.zig:676:13: 0x24ce2d in setDefaultCompiler (zigup)
/home/runner/work/zigup/zigup/zigup.zig:394:9: 0x24dae7 in fetchCompiler (zigup)
/home/runner/work/zigup/zigup/zigup.zig:307:9: 0x25326c in main2 (zigup)
/home/runner/work/zigup/zigup/zigup.zig:176:17: 0x253722 in main (zigup)
The zig default
command is meant to set the default compiler without fetching it. In contrast, when referencing the zig master
version, the latest version is requested from the zig download site each time. This would mean that zigup default master
would fail with "compiler not installed" if the website has published a new version since it was last fetched. That being said, the "spirit" of the default command is not to fetch anything, so in this case, I think it makes more sense to have zigup default master
set the default compiler to the last master version that was fetched, rather than trying to get the latest version and fail most of the time.
On my Linux laptop Zig failed to be downloaded by Zigup after a timeout. However, under the same network, my MacOS Air downloads Zig just fine.
Linux david-laptop 5.19.12-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 28 Sep 2022 13:21:25 +0000 x86_64 GNU/Linux
Stack trace of random breakpoint during the wait:
#0 0x0000000000220f4a in std.os.linux.x86_64.syscall3 (number=connect, arg1=3, arg2=140737488341368, arg3=16)
at /opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os/linux/x86_64.zig:46
#1 0x000000000026c1db in std.os.linux.connect (fd=3, addr=0x7fffffffc978, len=16) at /opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os/linux.zig:1229
#2 0x000000000025753c in std.os.connect (sock=3, sock_addr=0x7fffffffc978, len=16) at /opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig:3954
#3 0x0000000000252dbf in std.net.tcpConnectToAddress (address=...) at /opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig:713
#4 0x0000000000250a87 in std.net.tcpConnectToHost (allocator=..., name=..., port=443) at /opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig:692
#5 0x000000000024fa0e in .ziget.ziget.request.downloadHttpOrRedirect (httpUrl=..., writer=..., options=...) at /home/runner/work/zigup/zigup/dep/ziget/ziget/request.zig:174
#6 0x000000000024ef2a in .ziget.ziget.request.download (url=..., writer=..., options=..., state=0x7fffffffd558) at /home/runner/work/zigup/zigup/dep/ziget/ziget/request.zig:71
#7 0x000000000024ecb7 in download (allocator=..., url=..., writer=...) at zigup.zig:52
#8 0x000000000024e6dd in downloadToString (allocator=..., url=...) at zigup.zig:69
#9 0x0000000000248e7a in fetchDownloadIndex (allocator=<error reading variable: Cannot access memory at address 0x10>) at zigup.zig:410
#10 0x00000000002492af in fetchCompiler (allocator=..., version_arg=..., set_default=set_default) at zigup.zig:372
#11 0x000000000024780a in main2 () at zigup.zig:307
#12 0x0000000000243bfd in main () at zigup.zig:174
strace
output:
execve("/home/david/dev/zigup/zigup", ["zigup", "master", "--install-dir", "/home/david/dev/master-zig"], 0x7ffc49d4b768 /* 42 vars */) = 0
arch_prctl(ARCH_SET_FS, 0x361028) = 0
prlimit64(0, RLIMIT_STACK, {rlim_cur=16384*1024, rlim_max=16384*1024}, NULL) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x2439b0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x220fa0}, NULL, 8) = 0
rt_sigaction(SIGILL, {sa_handler=0x2439b0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x220fa0}, NULL, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x2439b0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x220fa0}, NULL, 8) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f022000
write(2, "install directory '", 19install directory ') = 19
write(2, "/home/david/dev/master-zig", 26/home/david/dev/master-zig) = 26
write(2, "'\n", 2'
) = 2
write(2, "mkdir '", 7mkdir ') = 7
write(2, "/home/david/dev/master-zig", 26/home/david/dev/master-zig) = 26
write(2, "'\n", 2'
) = 2
mkdir("/home/david/dev/master-zig", 0755) = -1 EEXIST (File exists)
mmap(0x7f4b9f023000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f023000
openat(AT_FDCWD, "/etc/hosts", O_RDONLY|O_NOCTTY|O_CLOEXEC) = 3
read(3, "# Static table lookup for hostna"..., 4096) = 65
read(3, "", 4031) = 0
close(3) = 0
openat(AT_FDCWD, "/etc/resolv.conf", O_RDONLY|O_NOCTTY|O_CLOEXEC) = 3
read(3, "# Generated by NetworkManager\nna"..., 4096) = 93
socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 4
ioctl(4, SIOCGIFINDEX, {ifr_name="wlan0", ifr_ifindex=3}) = 0
close(4) = 0
read(3, "", 4003) = 0
close(3) = 0
socket(AF_INET6, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 3
bind(3, {sa_family=AF_INET6, sin6_port=htons(0), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::", &sin6_addr), sin6_scope_id=0}, 28) = 0
sendto(3, "\376\252\1\0\0\1\0\0\0\0\0\0\7ziglang\3org\0\0\1\0\1", 29, MSG_NOSIGNAL, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("8.8.8.8")}, 28) = 29
sendto(3, "\376\252\1\0\0\1\0\0\0\0\0\0\7ziglang\3org\0\0\1\0\1", 29, MSG_NOSIGNAL, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("8.8.4.4")}, 28) = 29
sendto(3, "\376\252\1\0\0\1\0\0\0\0\0\0\7ziglang\3org\0\0\1\0\1", 29, MSG_NOSIGNAL, {sa_family=AF_INET6, sin6_port=htons(53), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "fe80::1", &sin6_addr), sin6_scope_id=if_nametoindex("wlan0")}, 28) = 29
sendto(3, "\3#\1\0\0\1\0\0\0\0\0\0\7ziglang\3org\0\0\34\0\1", 29, MSG_NOSIGNAL, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("8.8.8.8")}, 28) = 29
sendto(3, "\3#\1\0\0\1\0\0\0\0\0\0\7ziglang\3org\0\0\34\0\1", 29, MSG_NOSIGNAL, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("8.8.4.4")}, 28) = 29
sendto(3, "\3#\1\0\0\1\0\0\0\0\0\0\7ziglang\3org\0\0\34\0\1", 29, MSG_NOSIGNAL, {sa_family=AF_INET6, sin6_port=htons(53), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "fe80::1", &sin6_addr), sin6_scope_id=if_nametoindex("wlan0")}, 28) = 29
poll([{fd=3, events=POLLIN}], 1, 2500) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\376\252\201\0\0\1\0\1\0\0\0\0\7ziglang\3org\0\0\1\0\1\300\f\0"..., 512, 0, {sa_family=AF_INET6, sin6_port=htons(53), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "fe80::1", &sin6_addr), sin6_scope_id=if_nametoindex("wlan0")}, [28]) = 45
recvfrom(3, 0x7ffe30542e70, 512, 0, 0x7ffe305428d8, [28]) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, 2495) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\3#\201\200\0\1\0\10\0\0\0\0\7ziglang\3org\0\0\34\0\1\300\f\0"..., 512, 0, {sa_family=AF_INET6, sin6_port=htons(53), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::ffff:8.8.8.8", &sin6_addr), sin6_scope_id=0}, [28]) = 253
recvfrom(3, 0x7ffe30542e70, 512, 0, 0x7ffe305428d8, [28]) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, 2399) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\376\252\201\200\0\1\0\4\0\0\0\0\7ziglang\3org\0\0\1\0\1\300\f\0"..., 512, 0, {sa_family=AF_INET6, sin6_port=htons(53), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::ffff:8.8.4.4", &sin6_addr), sin6_scope_id=0}, [28]) = 93
recvfrom(3, 0x7ffe30542e70, 512, 0, 0x7ffe305428d8, [28]) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, 2393) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\3#\201\200\0\1\0\10\0\0\0\0\7ziglang\3org\0\0\34\0\1\300\f\0"..., 512, 0, {sa_family=AF_INET6, sin6_port=htons(53), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::ffff:8.8.4.4", &sin6_addr), sin6_scope_id=0}, [28]) = 253
recvfrom(3, 0x7ffe30542e70, 512, 0, 0x7ffe305428d8, [28]) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, 2392) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\376\252\201\200\0\1\0\4\0\0\0\0\7ziglang\3org\0\0\1\0\1\300\f\0"..., 512, 0, {sa_family=AF_INET6, sin6_port=htons(53), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::ffff:8.8.8.8", &sin6_addr), sin6_scope_id=0}, [28]) = 93
recvfrom(3, 0x7ffe30542e70, 512, 0, 0x7ffe305428d8, [28]) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, 2390) = 0 (Timeout)
sendto(3, "\3#\1\0\0\1\0\0\0\0\0\0\7ziglang\3org\0\0\34\0\1", 29, MSG_NOSIGNAL, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("8.8.8.8")}, 28) = 29
sendto(3, "\3#\1\0\0\1\0\0\0\0\0\0\7ziglang\3org\0\0\34\0\1", 29, MSG_NOSIGNAL, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("8.8.4.4")}, 28) = 29
sendto(3, "\3#\1\0\0\1\0\0\0\0\0\0\7ziglang\3org\0\0\34\0\1", 29, MSG_NOSIGNAL, {sa_family=AF_INET6, sin6_port=htons(53), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "fe80::1", &sin6_addr), sin6_scope_id=if_nametoindex("wlan0")}, 28) = 29
poll([{fd=3, events=POLLIN}], 1, 2500) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\3#\201\200\0\1\0\10\0\0\0\0\7ziglang\3org\0\0\34\0\1\300\f\0"..., 512, 0, {sa_family=AF_INET6, sin6_port=htons(53), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::ffff:8.8.4.4", &sin6_addr), sin6_scope_id=0}, [28]) = 253
recvfrom(3, 0x7ffe30542e70, 512, 0, 0x7ffe305428d8, [28]) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, 2425) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\3#\201\200\0\1\0\10\0\0\0\0\7ziglang\3org\0\0\34\0\1\300\f\0"..., 512, 0, {sa_family=AF_INET6, sin6_port=htons(53), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::ffff:8.8.8.8", &sin6_addr), sin6_scope_id=0}, [28]) = 253
recvfrom(3, 0x7ffe30542e70, 512, 0, 0x7ffe305428d8, [28]) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, 2422) = 0 (Timeout)
close(3) = 0
socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("192.168.112.254")}, 16) = -1 ETIMEDOUT (Connection timed out)
close(3) = 0
write(2, "error: failed to download '", 27error: failed to download ') = 27
write(2, "https://ziglang.org/download/ind"..., 39https://ziglang.org/download/index.json) = 39
write(2, "': ", 3': ) = 3
write(2, "error.", 6error.) = 6
write(2, "ConnectionTimedOut", 18ConnectionTimedOut) = 18
write(2, "\n", 1
) = 1
write(2, "error: ", 7error: ) = 7
write(2, "ConnectionTimedOut", 18ConnectionTimedOut) = 18
write(2, "\n", 1
) = 1
ioctl(2, TIOCGWINSZ, 0x7ffe30545650) = -1 ENOTTY (Inappropriate ioctl for device)
mmap(0x7f4b9f02d000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f02d000
openat(AT_FDCWD, "/proc/self/exe", O_RDONLY|O_NOCTTY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=2848216, ...}) = 0
mmap(NULL, 2848216, PROT_READ, MAP_SHARED, 3, 0) = 0x7f4b9ec00000
close(3) = 0
mmap(0x7f4b9f02e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f02e000
mmap(0x7f4b9f030000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f030000
mmap(0x7f4b9f035000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f035000
mmap(0x7f4b9f03d000, 90112, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f03d000
mmap(0x7f4b9f053000, 229376, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f053000
mmap(0x7f4b9f08b000, 552960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f08b000
mmap(0x7f4b9f112000, 1298432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f112000
mmap(0x7f4b9f24f000, 3006464, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f24f000
mmap(0x7f4b9f52d000, 6889472, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b9f52d000
write(2, "/home/runner/work/zigup/zigup/zi"..., 39/home/runner/work/zigup/zigup/zigup.zig) = 39
write(2, ":", 1:) = 1
write(2, "69", 269) = 2
write(2, ":", 1:) = 1
write(2, "5", 15) = 1
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "24e711", 624e711) = 6
write(2, " in ", 4 in ) = 4
write(2, "downloadToString", 16downloadToString) = 16
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/home/runner/work/zigup/zigup/zigup.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/home/runner/work/zigup/zigup/zi"..., 39/home/runner/work/zigup/zigup/zigup.zig) = 39
write(2, ":", 1:) = 1
write(2, "413", 3413) = 3
write(2, ":", 1:) = 1
write(2, "13", 213) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "248eb4", 6248eb4) = 6
write(2, " in ", 4 in ) = 4
write(2, "fetchDownloadIndex", 18fetchDownloadIndex) = 18
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/home/runner/work/zigup/zigup/zigup.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/home/runner/work/zigup/zigup/zi"..., 39/home/runner/work/zigup/zigup/zigup.zig) = 39
write(2, ":", 1:) = 1
write(2, "372", 3372) = 3
write(2, ":", 1:) = 1
write(2, "35", 235) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "249300", 6249300) = 6
write(2, " in ", 4 in ) = 4
write(2, "fetchCompiler", 13fetchCompiler) = 13
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/home/runner/work/zigup/zigup/zigup.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/home/runner/work/zigup/zigup/zi"..., 39/home/runner/work/zigup/zigup/zigup.zig) = 39
write(2, ":", 1:) = 1
write(2, "307", 3307) = 3
write(2, ":", 1:) = 1
write(2, "9", 19) = 1
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "246f21", 6246f21) = 6
write(2, " in ", 4 in ) = 4
write(2, "main2", 5main2) = 5
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/home/runner/work/zigup/zigup/zigup.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/home/runner/work/zigup/zigup/zi"..., 39/home/runner/work/zigup/zigup/zigup.zig) = 39
write(2, ":", 1:) = 1
write(2, "176", 3176) = 3
write(2, ":", 1:) = 1
write(2, "17", 217) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "243c2c", 6243c2c) = 6
write(2, " in ", 4 in ) = 4
write(2, "main", 4main) = 4
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/home/runner/work/zigup/zigup/zigup.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig) = 87
write(2, ":", 1:) = 1
write(2, "89", 289) = 2
write(2, ":", 1:) = 1
write(2, "31", 231) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "25f47b", 625f47b) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.net.Address.parseIp4", 24std.net.Address.parseIp4) = 24
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/fmt.zig) = 87
write(2, ":", 1:) = 1
write(2, "1857", 41857) = 4
write(2, ":", 1:) = 1
write(2, "25", 225) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "25fbea", 625fbea) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.fmt.charToDigit", 19std.fmt.charToDigit) = 19
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/fmt.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig) = 87
write(2, ":", 1:) = 1
write(2, "378", 3378) = 3
write(2, ":", 1:) = 1
write(2, "31", 231) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "256175", 6256175) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.net.Ip6Address.parse", 24std.net.Ip6Address.parse) = 24
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig) = 87
write(2, ":", 1:) = 1
write(2, "81", 281) = 2
write(2, ":", 1:) = 1
write(2, "32", 232) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "25f532", 625f532) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.net.Address.parseIp6", 24std.net.Address.parseIp6) = 24
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig) = 87
write(2, ":", 1:) = 1
write(2, "45", 245) = 2
write(2, ":", 1:) = 1
write(2, "9", 19) = 1
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "25f734", 625f734) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.net.Address.parseIp", 23std.net.Address.parseIp) = 23
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig) = 87
write(2, ":", 1:) = 1
write(2, "75", 275) = 2
write(2, ":", 1:) = 1
write(2, "29", 229) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "254728", 6254728) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.net.Address.parseExpectingFa"..., 36std.net.Address.parseExpectingFamily) = 36
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 93/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/io/reader.zig) = 93
write(2, ":", 1:) = 1
write(2, "233", 3233) = 3
write(2, ":", 1:) = 1
write(2, "31", 231) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "260d9d", 6260d9d) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.io.reader.Reader(*std.io.buf"..., 297std.io.reader.Reader(*std.io.buffered_reader.BufferedReader(4096,std.io.reader.Reader(std.fs.file.File,std.os.ReadError,std.fs.file.File.read)),std.os.ReadError,std.io.buffered_reader.BufferedReader(4096,std.io.reader.Reader(std.fs.file.File,std.os.ReadError,std.fs.file.File.read)).read).readByte) = 297
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/io/reader.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig) = 87
write(2, ":", 1:) = 1
write(2, "228", 3228) = 3
write(2, ":", 1:) = 1
write(2, "17", 217) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "255af6", 6255af6) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.net.Ip4Address.parse", 24std.net.Ip4Address.parse) = 24
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig) = 87
write(2, ":", 1:) = 1
write(2, "89", 289) = 2
write(2, ":", 1:) = 1
write(2, "31", 231) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "25f47b", 625f47b) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.net.Address.parseIp4", 24std.net.Address.parseIp4) = 24
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/fmt.zig) = 87
write(2, ":", 1:) = 1
write(2, "1857", 41857) = 4
write(2, ":", 1:) = 1
write(2, "25", 225) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "25fbea", 625fbea) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.fmt.charToDigit", 19std.fmt.charToDigit) = 19
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/fmt.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/fmt.zig) = 87
write(2, ":", 1:) = 1
write(2, "1781", 41781) = 4
write(2, ":", 1:) = 1
write(2, "23", 223) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "26711d", 626711d) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.fmt.parseWithSign", 21std.fmt.parseWithSign) = 21
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/fmt.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/fmt.zig) = 87
write(2, ":", 1:) = 1
write(2, "1680", 41680) = 4
write(2, ":", 1:) = 1
write(2, "5", 15) = 1
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "265e85", 6265e85) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.fmt.parseInt", 16std.fmt.parseInt) = 16
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/fmt.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 93/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/io/reader.zig) = 93
write(2, ":", 1:) = 1
write(2, "233", 3233) = 3
write(2, ":", 1:) = 1
write(2, "31", 231) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "260d9d", 6260d9d) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.io.reader.Reader(*std.io.buf"..., 297std.io.reader.Reader(*std.io.buffered_reader.BufferedReader(4096,std.io.reader.Reader(std.fs.file.File,std.os.ReadError,std.fs.file.File.read)),std.os.ReadError,std.io.buffered_reader.BufferedReader(4096,std.io.reader.Reader(std.fs.file.File,std.os.ReadError,std.fs.file.File.read)).read).readByte) = 297
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/io/reader.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 86/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig) = 86
write(2, ":", 1:) = 1
write(2, "6460", 46460) = 4
write(2, ":", 1:) = 1
write(2, "27", 227) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "26ab5e", 626ab5e) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.os.recvfrom", 15std.os.recvfrom) = 15
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 86/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig) = 86
write(2, ":", 1:) = 1
write(2, "6460", 46460) = 4
write(2, ":", 1:) = 1
write(2, "27", 227) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "26ab5e", 626ab5e) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.os.recvfrom", 15std.os.recvfrom) = 15
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 86/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig) = 86
write(2, ":", 1:) = 1
write(2, "6460", 46460) = 4
write(2, ":", 1:) = 1
write(2, "27", 227) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "26ab5e", 626ab5e) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.os.recvfrom", 15std.os.recvfrom) = 15
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 86/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig) = 86
write(2, ":", 1:) = 1
write(2, "6460", 46460) = 4
write(2, ":", 1:) = 1
write(2, "27", 227) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "26ab5e", 626ab5e) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.os.recvfrom", 15std.os.recvfrom) = 15
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 86/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig) = 86
write(2, ":", 1:) = 1
write(2, "6460", 46460) = 4
write(2, ":", 1:) = 1
write(2, "27", 227) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "26ab5e", 626ab5e) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.os.recvfrom", 15std.os.recvfrom) = 15
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 86/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig) = 86
write(2, ":", 1:) = 1
write(2, "6460", 46460) = 4
write(2, ":", 1:) = 1
write(2, "27", 227) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "26ab5e", 626ab5e) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.os.recvfrom", 15std.os.recvfrom) = 15
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 86/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig) = 86
write(2, ":", 1:) = 1
write(2, "6460", 46460) = 4
write(2, ":", 1:) = 1
write(2, "27", 227) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "26ab5e", 626ab5e) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.os.recvfrom", 15std.os.recvfrom) = 15
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig) = 87
write(2, ":", 1:) = 1
write(2, "1570", 41570) = 4
write(2, ":", 1:) = 1
write(2, "21", 221) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "2696fc", 62696fc) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.net.dnsParse", 16std.net.dnsParse) = 16
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 86/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig) = 86
write(2, ":", 1:) = 1
write(2, "3973", 43973) = 4
write(2, ":", 1:) = 1
write(2, "26", 226) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "2574f6", 62574f6) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.os.connect", 14std.os.connect) = 14
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/os.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig) = 87
write(2, ":", 1:) = 1
write(2, "713", 3713) = 3
write(2, ":", 1:) = 1
write(2, "9", 19) = 1
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "252de9", 6252de9) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.net.tcpConnectToAddress", 27std.net.tcpConnectToAddress) = 27
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/opt/hostedtoolcache/zig/zig-lin"..., 87/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig) = 87
write(2, ":", 1:) = 1
write(2, "696", 3696) = 3
write(2, ":", 1:) = 1
write(2, "21", 221) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "250ad8", 6250ad8) = 6
write(2, " in ", 4 in ) = 4
write(2, "std.net.tcpConnectToHost", 24std.net.tcpConnectToHost) = 24
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.3027+0e26c6149/x64/lib/std/net.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/home/runner/work/zigup/zigup/de"..., 57/home/runner/work/zigup/zigup/dep/ziget/ziget/request.zig) = 57
write(2, ":", 1:) = 1
write(2, "174", 3174) = 3
write(2, ":", 1:) = 1
write(2, "18", 218) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "24fa36", 624fa36) = 6
write(2, " in ", 4 in ) = 4
write(2, ".ziget.ziget.request.downloadHtt"..., 43.ziget.ziget.request.downloadHttpOrRedirect) = 43
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/home/runner/work/zigup/zigup/dep/ziget/ziget/request.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/home/runner/work/zigup/zigup/de"..., 57/home/runner/work/zigup/zigup/dep/ziget/ziget/request.zig) = 57
write(2, ":", 1:) = 1
write(2, "71", 271) = 2
write(2, ":", 1:) = 1
write(2, "32", 232) = 2
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "24ef86", 624ef86) = 6
write(2, " in ", 4 in ) = 4
write(2, ".ziget.ziget.request.download", 29.ziget.ziget.request.download) = 29
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/home/runner/work/zigup/zigup/dep/ziget/ziget/request.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "/home/runner/work/zigup/zigup/zi"..., 39/home/runner/work/zigup/zigup/zigup.zig) = 39
write(2, ":", 1:) = 1
write(2, "52", 252) = 2
write(2, ":", 1:) = 1
write(2, "5", 15) = 1
write(2, ": ", 2: ) = 2
write(2, "0x", 20x) = 2
write(2, "24ec24", 624ec24) = 6
write(2, " in ", 4 in ) = 4
write(2, "download", 8download) = 8
write(2, " (", 2 () = 2
write(2, "zigup", 5zigup) = 5
write(2, ")", 1)) = 1
write(2, "\n", 1
) = 1
openat(AT_FDCWD, "/home/runner/work/zigup/zigup/zigup.zig", O_RDONLY|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
exit_group(1) = ?
+++ exited with 1 +++
It would be convenient if Windows users could install zigup using the WinGet package manager (manifests).
Thanks.
I'd like to address an issue that I realized when I switched zigup to using an exe rather than a batch file for its "default compiler". Zigup creates a zig executable in PATH, and users would expect that when they run zigup to change the version, then the "zig" command would use the new version (at least in the same console environment). However, if there is another zig executable or script in PATH that appears before the one zigup creates, then this won't be the case.
I think the solution here is whenever zigup sets the compiler version, it should check to make sure its executable is the highest priority in PATH
, otherwise print an error or warning that it isn't.
I think it would be valuable for there to be a way of building zigup
without having to guess which compiler version is compatible with it. Even better would be to have be a single build
command which sets up all the required build tools and produces the binary regardless of which operating system is used. I understand that this "single build command" is supposed to be zig build
, but I need to have a working zig
installation for that, which is what this tool is supposed to help me with (i.e. a "chicken and egg situation").
getting non descript errors on zigup 0.11.0-dev.3771+128fd7dd0
install directory '/Users/ben/zig'
mkdir '/Users/ben/zig'
rm -rf '/Users/ben/zig/0.11.0-dev.3771+128fd7dd0.installing'
mkdir '/Users/ben/zig/0.11.0-dev.3771+128fd7dd0.installing'
downloading 'https://ziglang.org/builds/zig-macos-x86_64-0.11.0-dev.3771+128fd7dd0.tar.xz' to '/Users/ben/zig/0.11.0-dev.3771+128fd7dd0.installing/zig-macos-x86_64-0.11.0-dev.3771+128fd7dd0.tar.xz'
[RUN] tar xf /Users/ben/zig/0.11.0-dev.3771+128fd7dd0.installing/zig-macos-x86_64-0.11.0-dev.3771+128fd7dd0.tar.xz -C /Users/ben/zig/0.11.0-dev.3771+128fd7dd0.installing
rm -rf '/Users/ben/zig/0.11.0-dev.3771+128fd7dd0.installing/zig-macos-x86_64-0.11.0-dev.3771+128fd7dd0.tar.xz'
mv '/Users/ben/zig/0.11.0-dev.3771+128fd7dd0.installing/zig-macos-x86_64-0.11.0-dev.3771+128fd7dd0' '/Users/ben/zig/0.11.0-dev.3771+128fd7dd0.installing/files'
mv '/Users/ben/zig/0.11.0-dev.3771+128fd7dd0.installing' '/Users/ben/zig/0.11.0-dev.3771+128fd7dd0'
error: NotLink
???:?:?: 0x104b6ef6a in _std.os.mkdirZ (???)
???:?:?: 0x104b6ee2f in _std.os.mkdir (???)
???:?:?: 0x104b6ec38 in _std.fs.makeDirAbsolute (???)
???:?:?: 0x104b6e251 in _loggyMakeDirAbsolute (???)
???:?:?: 0x104bb44c9 in _std.os.faccessatZ (???)
???:?:?: 0x104b6f344 in _std.fs.Dir.accessZ (???)
???:?:?: 0x104b6f25a in _std.fs.Dir.access (???)
???:?:?: 0x104c54524 in _std.os.unlinkatZ (???)
???:?:?: 0x104bf8401 in _std.fs.Dir.deleteFileZ (???)
???:?:?: 0x104ba7c2c in _std.fs.Dir.deleteFile (???)
???:?:?: 0x104bf972e in _std.os.openatZ (???)
???:?:?: 0x104bae390 in _std.fs.Dir.openFileZ (???)
???:?:?: 0x104bae100 in _std.fs.Dir.openFile (???)
???:?:?: 0x104bf972e in _std.os.openatZ (???)
???:?:?: 0x104bae390 in _std.fs.Dir.openFileZ (???)
???:?:?: 0x104bae100 in _std.fs.Dir.openFile (???)
???:?:?: 0x104bab509 in _std.os.readlinkZ (???)
???:?:?: 0x104bab3c1 in _std.os.readlink (???)
???:?:?: 0x104bab042 in _std.fs.readLinkAbsolute (???)
???:?:?: 0x104ba4c73 in _loggyUpdateSymlink (???)
???:?:?: 0x104b6a0b1 in _setDefaultCompiler (???)
???:?:?: 0x104b67251 in _fetchCompiler (???)
???:?:?: 0x104b6302d in _main2 (???)
???:?:?: 0x104b61b3a in _main.0 (???)
Add option to create shims like these on all platforms zig supports for zig drop-in features : ziglang/zig#8716 (comment)
I suggest that default and list command to show some more details, namely:
POC commit at my fork: iddev5@b346122
Which version of Zig is required to build zigup? I'm on 0.10.0-dev.1419+338bf55e8
and I get
./GitRepoStep.zig:183:10: error: type '@typeInfo(@typeInfo(@TypeOf(std.child_process.ChildProcess.init)).Fn.return_type.?).ErrorUnion.error_set!*std.child_process.ChildProcess' does not support field access
child.stdin_behavior = .Ignore;
Might that be related to an outdated version of Zig on my part?
Proposed command is:
zigup run VERSION ARGS...
#equivalent to
/path/to/zig/VERSION/zig ARGS...
MacOS Homebrew:
use cURL install:
curl
download installation script here, which can be used if needed. install:zigup:
cmds:
- mkdir -p $HOME/.local/bin/;
- cd $HOME/.local/bin/; curl -LJO https://github.com/marler8997/zigup/releases/download/v2022_08_25/zigup.macos-latest-aarch64.zip && unzip zigup.macos-latest-aarch64.zip && rm zigup.macos-latest-aarch64.zip
- chmod +x $HOME/.local/bin/zigup;
- zigup
ignore_error: true
set -gx PATH "$PATH:~/.local/bin"
similar to how you can run zigup master
to get the latest commit from github, i think you should also be able to use latest
to use the latest installed version
example: zigup run latest build
Hello! I've come to suggest support for two environment variables.
Since these two vars always need to be passed as args and they don't change often, I think they would be good to have as a fallback.
# fallback for --install-dir
export ZIGUP_INSTALL_DIR=~/.cache/zigup
# fallback for --path-link
export ZIGUP_PATH_LINK=~/.local/bin/zig
# we don't need to specify them here!
zigup master
I suppose this can be done with a wrapper script, but I don't really see a reason not to add it, as (I think) it's a pretty standard thing to do.
Also: I might be able to work on this, so expect a pull request soon :))
Currently, when i run zigup fetch master
i need to run zigup default master
right after in order to switch to the version i just downloaded. I think that if your default is master, when you run zigup fetch master
, it should automatically switch to the latest master version.
Hello,
Is there a way to specify arch ?
Current issue:
$ zigup master
retrieves zig-macos-x86_64 but I would like zig-macos-aarch64
Thanks!
There was no activity for a 4 months and issues are not fixed. So I am asking the question is the project still maintained?
I need to fix the CI to build cross-compilation targets, not native ones.
My zigup
was built using zig build -Dtarget=x86_64-windows-gnu
on a Linux machine running Ubuntu 20.04, using zig
commit 0e6d2184c.
William@DESKTOP-H0PMN4M C:\Users\William\zig\bin
$ zigup master
install directory 'C:\Users\William\zig\bin\zig'
mkdir "C:\Users\William\zig\bin\zig"
rd /s /q "C:\Users\William\zig\bin\zig\0.10.0-dev.555+1b6a1e691.installing"
mkdir "C:\Users\William\zig\bin\zig\0.10.0-dev.555+1b6a1e691.installing"
downloading 'https://ziglang.org/builds/zig-windows-x86_64-0.10.0-dev.555+1b6a1e691.zip' to 'C:\Users\William\zig\bin\zig\0.10.0-dev.555+1b6a1e691.installing\zig-windows-x86_64-0.10.0-dev.555+1b6a1e691.zip'
extracting archive to "C:\Users\William\zig\bin\zig\0.10.0-dev.555+1b6a1e691.installing"
extracted archive in 162.98 s
rd /s /q "C:\Users\William\zig\bin\zig\0.10.0-dev.555+1b6a1e691.installing\zig-windows-x86_64-0.10.0-dev.555+1b6a1e691.zip"
mv 'C:\Users\William\zig\bin\zig\0.10.0-dev.555+1b6a1e691.installing\zig-windows-x86_64-0.10.0-dev.555+1b6a1e691' 'C:\Users\William\zig\bin\zig\0.10.0-dev.555+1b6a1e691.installing\files'
mv 'C:\Users\William\zig\bin\zig\0.10.0-dev.555+1b6a1e691.installing' 'C:\Users\William\zig\bin\zig\0.10.0-dev.555+1b6a1e691'
error: AccessDenied
Unable to dump stack trace: FileNotFound
William@DESKTOP-H0PMN4M C:\Users\William\zig\bin
$ zigup master
install directory 'C:\Users\William\zig\bin\zig'
mkdir "C:\Users\William\zig\bin\zig"
rd /s /q "C:\Users\William\zig\bin\zig\0.10.0-dev.555+1b6a1e691.installing"
error.Unexpected NTSTATUS=0xc0000056
Unable to dump stack trace: FileNotFound
error: Unexpected
Unable to dump stack trace: FileNotFound
[00:20:28] <marler8997_> 0xC0000056
[00:20:28] <marler8997_> STATUS_DELETE_PENDING
[00:21:11] <cr1901> Also a probably related error: AccessDenied
The third attempt of running zigup master
succeeded, but I didn't capture the stdout of that before cls
the command prompt (oops!). No errors were reported.
💻: Mac os M1 Max
OS: 13.1
Zig Version: 0.10.1
info: [RUN] "git" "-C" "/Users/eryue0220/cin/zig/zigup/dep/iguanaTLS" "checkout" "24b465f8330edd7085450da305b1c75fd6d480e7" "-b" "fordep"
Switched to a new branch 'fordep'
/Users/eryue0220/cin/zig/zigup/dep/iguanaTLS/src/ciphersuites.zig:312:56: error: no field named 'type' in struct 'builtin.Type.StructField'
if (!comptime std.meta.trait.is(.Array)(field_info.type) or std.meta.Elem(field_info.type) != u8)
^~~~
/opt/homebrew/Cellar/zig/0.10.1/lib/zig/std/builtin.zig:283:29: note: struct declared here
pub const StructField = struct {
^~~~~~
/Users/eryue0220/cin/zig/zigup/dep/iguanaTLS/src/ciphersuites.zig:323:28: note: called from here
key_field_width(cs.Keys, .client_key).? +
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/Users/eryue0220/cin/zig/zigup/dep/iguanaTLS/src/ciphersuites.zig:335:29: note: called from here
data: [key_data_size(ciphersuites)]u8,
~~~~~~~~~~~~~^~~~~~~~~~~~~~
error: zigup...
error: The following command exited with error code 1:
/opt/homebrew/Cellar/zig/0.10.1/bin/zig build-exe /Users/eryue0220/cin/zig/zigup/zigup.zig --cache-dir /Users/eryue0220/cin/zig/zigup/zig-cache --global-cache-dir /Users/eryue0220/.cache/zig --name zigup --pkg-begin build_options /Users/eryue0220/cin/zig/zigup/zig-cache/options/YlIhfB2NyOIjaFu_elfbPcNHrz1bry-eT_AAiCBXWsahD6UwUcWXZUFIetT057fK --pkg-end --pkg-begin ziget /Users/eryue0220/cin/zig/zigup/dep/ziget/ziget.zig --pkg-begin ssl /Users/eryue0220/cin/zig/zigup/dep/ziget/iguana/ssl.zig --pkg-begin iguana /Users/eryue0220/cin/zig/zigup/dep/iguanaTLS/src/main.zig --pkg-end --pkg-end --pkg-end --enable-cache
error: the following build command failed with exit code 1:
/Users/eryue0220/cin/zig/zigup/zig-cache/o/7e64739f5fd0571bf7c4d8cae7846bb1/build /opt/homebrew/Cellar/zig/0.10.1/bin/zig /Users/eryue0220/cin/zig/zigup /Users/eryue0220/cin/zig/zigup/zig-cache /Users/eryue0220/.cache/zig -Dfetch
The following command exited with error code 1 (expected 0):
cd /Users/eryue0220/cin/zig/zigup && /opt/homebrew/Cellar/zig/0.10.1/bin/zig build --build-file /Users/eryue0220/cin/zig/zigup/build2.zig --cache-dir /Users/eryue0220/cin/zig/zigup/zig-cache -Dfetch
error: the following build command failed with exit code 255:
/Users/eryue0220/cin/zig/zigup/zig-cache/o/45db0ab0ffb62e8fc8660ded1aa410a5/build /opt/homebrew/Cellar/zig/0.10.1/bin/zig /Users/eryue0220/cin/zig/zigup /Users/eryue0220/cin/zig/zigup/zig-cache /Users/eryue0220/.cache/zig -Dfetch
I get the error
/home/clouds/Downloads/zigup/GitRepoStep.zig:60:14: error: expected type '[]const u8', found 'Build.Cache.Directory'
b.build_root,
~^~~~~~~~~~~
/home/clouds/zig/0.11.0-dev.1782+b52be973d/files/lib/std/Build/Cache.zig:5:23: note: struct declared here
pub const Directory = struct {
^~~~~~
referenced by:
buildOrFail: /home/clouds/Downloads/zigup/build.zig:22:35
buildNoreturn: /home/clouds/Downloads/zigup/build.zig:14:17
remaining reference traces hidden; use '-freference-trace' to see all reference traces
/home/clouds/Downloads/zigup/build.zig:52:43: error: expected type '[]const u8', found 'Build.Cache.Directory'
run_step.addArg(self.pathFromRoot(self.cache_root));
~~~~^~~~~~~~~~~
/home/clouds/zig/0.11.0-dev.1782+b52be973d/files/lib/std/Build/Cache.zig:5:23: note: struct declared here
pub const Directory = struct {
^~~~~~
/home/clouds/zig/0.11.0-dev.1782+b52be973d/files/lib/std/Build.zig:1344:35: note: parameter type declared here
pub fn pathFromRoot(b: *Build, p: []const u8) []u8 {
^~~~~~~~~~
/home/clouds/Downloads/zigup/GitRepoStep.zig:186:24: error: expected type '?[]const u8', found 'Build.Cache.Directory'
child.cwd = builder.build_root;
~~~~~~~^~~~~~~~~~~
/home/clouds/zig/0.11.0-dev.1782+b52be973d/files/lib/std/Build/Cache.zig:5:23: note: struct declared here
pub const Directory = struct {
when compiling on version 0.11.0-dev.1782+b52be973d
Yay, a Zig version manager!
Could we get some shell install commands, to help first-time users who may not already have a Zig compiler installed? Similar to how rustup works.
Specifically, the user should not be required to have zig installed at the time zigup is installed. Rather, zigup could obtain a precompiled zig binary and put it in a zigup-friendly place on behalf of the user, so that the user only needs to know how to run a curl command, and zigup does 100% of the rest of the work of preparing zig's. Most version managers work this way.
Not sure how to use the --path-link
argument, I'd like to put the zig.exe
symlink that points to the default compiler in the specified directory but I get this error:
❯ zigup 0.11.0 --path-link "C:Users\$USER\scoop\apps\zigup\current\zig\"
install directory 'C:\Users\$USER\scoop\apps\zigup\current\zig'
mkdir "C:\Users\$USER\scoop\apps\zigup\current\zig"
compiler 'C:\Users\$USER\scoop\apps\zigup\current\zig\0.11.0' already installed
thread 25068 panic: reached unreachable code
???:?:?: 0x7ff66fd4537c in ??? (zigup.exe)
???:?:?: 0x7ff66fd11357 in ??? (zigup.exe)
???:?:?: 0x7ff66fcdecd8 in ??? (zigup.exe)
???:?:?: 0x7ff66fce148b in ??? (zigup.exe)
???:?:?: 0x7ff66fce3baa in ??? (zigup.exe)
???:?:?: 0x7ff66fce489d in ??? (zigup.exe)
???:?:?: 0x7ff66fce9de2 in ??? (zigup.exe)
???:?:?: 0x7ff66fcea2f5 in ??? (zigup.exe)
???:?:?: 0x7ff66fcea3f3 in ??? (zigup.exe)
???:?:?: 0x7ff8c4ab257c in ??? (KERNEL32.DLL)
???:?:?: 0x7ff8c524aa57 in ??? (ntdll.dll)
Kindly rewrite this repo so it's at least barely usable. Currently it not working at all
Regards,
Rahul,
India, Abu-Jila.
I'm using Zig master to build my C projects.
One of the tools I use requires the location of the standard library to function. As I use master, this location changes each time I update the compiler.
If zigup created a symbolic link to the files, as well as the compiler itself, I could simply pass the symbolic link.
zig\files
> zig\<default-version>\files
I appreciate this is likely a niche use case and I can create a batch file to handle it myself, but thought I'd double check.
i would guess that i run $ zigup master
maybe twice a month. its much more common that i switch between 0.11 and my most recent local version. to do so i need to run these commands:
$ zigup 0.11.0 # this is nice. one command to switch to 0.11
# later on when i want to switch back i need to run two commands, and paste the version into the second.
$ zigup list
0.11.0
0.12.0-dev.2341+92211135f
$ zigup 0.12.0-dev.2341+92211135f
this isn't bad but would be nice if there were a single command i could run. the only reason i bring it up is that its my most common usage of zigup. i wonder if this is possible?
this is what i'd like to be able to do.
$ zigup local-master # don't download anything. switch to local version 0.12.0-dev.2341+92211135f
Edit: I'm dumb I just needed to install xz
tar (child): xz: Cannot exec: No such file or directory
btw I'm using wsl
this is the entire output
install directory '/home/me/zig'
mkdir '/home/me/zig'
rm -rf '/home/me/zig/0.10.0-dev.694+0b7347fd1.installing'
mkdir '/home/me/zig/0.10.0-dev.694+0b7347fd1.installing'
downloading 'https://ziglang.org/builds/zig-linux-x86_64-0.10.0-dev.694+0b7347fd1.tar.xz' to '/home/me/zig/0.10.0-dev.694+0b7347fd1.installing/zig-linux-x86_64-0.10.0-dev.694+0b7347fd1.tar.xz'
[RUN] tar xf /home/me/zig/0.10.0-dev.694+0b7347fd1.installing/zig-linux-x86_64-0.10.0-dev.694+0b7347fd1.tar.xz -C /home/me/zig/0.10.0-dev.694+0b7347fd1.installing
tar (child): xz: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
rm -rf '/home/me/zig/0.10.0-dev.694+0b7347fd1.installing/zig-linux-x86_64-0.10.0-dev.694+0b7347fd1.tar.xz'
mv '/home/me/zig/0.10.0-dev.694+0b7347fd1.installing/zig-linux-x86_64-0.10.0-dev.694+0b7347fd1' '/home/me/zig/0.10.0-dev.694+0b7347fd1.installing/files'
error: FileNotFound
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/net.zig:81:32: 0x262b12 in std.net.Address.parseIp6 (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/net.zig:45:9: 0x262d14 in std.net.Address.parseIp (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/net.zig:75:29: 0x257d18 in std.net.Address.parseExpectingFamily (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/io/reader.zig:233:31: 0x26509d in std.io.reader.Reader(*std.io.buffered_reader.BufferedReader(4096,std.io.reader.Reader(std.fs.file.File,std.os.ReadError,std.fs.file.File.read)),std.os.ReadError,std.io.buffered_reader.BufferedReader(4096,std.io.reader.Reader(std.fs.file.File,std.os.ReadError,std.fs.file.File.read)).read).readByte (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/io/reader.zig:233:31: 0x26509d in std.io.reader.Reader(*std.io.buffered_reader.BufferedReader(4096,std.io.reader.Reader(std.fs.file.File,std.os.ReadError,std.fs.file.File.read)),std.os.ReadError,std.io.buffered_reader.BufferedReader(4096,std.io.reader.Reader(std.fs.file.File,std.os.ReadError,std.fs.file.File.read)).read).readByte (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:5980:27: 0x26eabe in std.os.recvfrom (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:3608:28: 0x25aa8e in std.os.connect (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:3608:28: 0x25aa8e in std.os.connect (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:3608:28: 0x25aa8e in std.os.connect (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:3608:28: 0x25aa8e in std.os.connect (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:3608:28: 0x25aa8e in std.os.connect (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:3608:28: 0x25aa8e in std.os.connect (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:3608:28: 0x25aa8e in std.os.connect (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:3608:28: 0x25aa8e in std.os.connect (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:2210:19: 0x2a55a7 in std.os.renameZ (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:2187:9: 0x2a5404 in std.os.rename (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/fs.zig:253:5: 0x2a51ec in std.fs.renameAbsolute (zigup)
/home/runner/work/zigup/zigup/zigup.zig:404:5: 0x2a0a2a in loggyRenameAbsolute (zigup)
/home/runner/work/zigup/zigup/zigup.zig:908:9: 0x29f09b in installCompiler (zigup)
/home/runner/work/zigup/zigup/zigup.zig:339:5: 0x24d6bf in fetchCompiler (zigup)
/home/runner/work/zigup/zigup/zigup.zig:299:9: 0x24ba1f in main2 (zigup)
/home/runner/work/zigup/zigup/zigup.zig:171:17: 0x24372c in main (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:4111:19: 0x2e7a81 in std.os.faccessatZ (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/fs.zig:2080:9: 0x2a0bc7 in std.fs.Dir.accessZ (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/fs.zig:2062:9: 0x2a0b05 in std.fs.Dir.access (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/os.zig:2129:19: 0x31e384 in std.os.unlinkatZ (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/fs.zig:1642:25: 0x2e7d4b in std.fs.Dir.deleteFileZ (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/fs.zig:1623:13: 0x2a2007 in std.fs.Dir.deleteFile (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/net.zig:228:17: 0x2590e6 in std.net.Ip4Address.parse (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/net.zig:89:31: 0x262a5b in std.net.Address.parseIp4 (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/fmt.zig:1856:25: 0x2631ca in std.fmt.charToDigit (zigup)
/opt/hostedtoolcache/zig/zig-linux-x86_64-0.10.0-dev.555+1b6a1e691/x64/lib/std/net.zig:378:31: 0x259765 in std.net.Ip6Address.parse (zigup)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.