Why System Package Managers and Language Package Managers Struggle to Cooperate — Andrew Kelley — Software You Can Love 2022
https://youtube.com/watch?v=stChOsejLEQ
#upstream #видео
https://youtube.com/watch?v=stChOsejLEQ
#upstream #видео
YouTube
Stay Together For The Kids - Andrew Kelley - Software You Can Love 2022
Stay Together For The Kids: Why System Package Managers and Language Package Managers Struggle to Cooperate
👍1
That Time I Tried Porting Zig to SerenityOS - sin-ack - Software You Can Love 2022
https://youtube.com/watch?v=Ug3p8vELJqQ
#upstream #видео
https://youtube.com/watch?v=Ug3p8vELJqQ
#upstream #видео
YouTube
That Time I Tried Porting Zig to SerenityOS - sin-ack - Software You Can Love 2022
To celebrate the 0.10.0 release we're going to have a release party like in the old times! Andrew will be present, I'll host, and we'll also have other guests on stream.
This is also a good opportunity to have a Zig RUSH!, the format where members of the community share with us what they're working on.
If you've never seen it, this is a past example: https://www.youtube.com/watch?v=rvfsWm6TckA
This time we want the Zig RUSH to be a little bit different though: to make things smoother and allow us to see more projects, we want you to submit a short video beforehand, in order to avoid issues during the stream. In the video you are free to show us anything that you're working on using Zig, even if you're at a proof-of-concept stage. We don't want to see only polished stuff. You can assume that Andrew and I will be present when watching the video, so you can add comments, make jokes or ask us questions in it. We also won't mind if you put a bit of creativity in the video, and we strongly encourage to perform basic editing because each video will have to be 64 seconds long max. We heard from a guy that 64k milliseconds ought to be enough for anybody.
The stream will be on November 1st on my Twitch channel (https://twitch.tv/kristoff_it) at November 1, 2022 9:00 PM Milan time (tz aware countdown: https://www.timeanddate.com/countdown/wrestling?iso=20221101T21&p0=157&msg=Release+Party+%2B+Zig+RUSH%21&font=slab&csz=1) and the deadline for sending those videos is November 1, 2022 3:00 PM (6h before the start of the stream). To submit a video, just send me an email (loris att zig.show) or a DM on discord. In the DM you can either put a link to the video or directly upload it there.
If you have more than one thing to show, it's up to you if you want to try and squeeze everything in your 64s long video, or if you prefer to save some of the things you're working on for the next Zig RUSH!. In other words, please only one submission per person, thank you. Finally, I'll try to show all submissions on stream but, if we end up in a situation where we have too many videos, the videos we won't be able to play this time will be saved for the next Zig RUSH! for sure.
https://www.reddit.com/r/Zig/comments/ygiir2/release_party_and_zig_rush_november_1st/
#upstream
This is also a good opportunity to have a Zig RUSH!, the format where members of the community share with us what they're working on.
If you've never seen it, this is a past example: https://www.youtube.com/watch?v=rvfsWm6TckA
This time we want the Zig RUSH to be a little bit different though: to make things smoother and allow us to see more projects, we want you to submit a short video beforehand, in order to avoid issues during the stream. In the video you are free to show us anything that you're working on using Zig, even if you're at a proof-of-concept stage. We don't want to see only polished stuff. You can assume that Andrew and I will be present when watching the video, so you can add comments, make jokes or ask us questions in it. We also won't mind if you put a bit of creativity in the video, and we strongly encourage to perform basic editing because each video will have to be 64 seconds long max. We heard from a guy that 64k milliseconds ought to be enough for anybody.
The stream will be on November 1st on my Twitch channel (https://twitch.tv/kristoff_it) at November 1, 2022 9:00 PM Milan time (tz aware countdown: https://www.timeanddate.com/countdown/wrestling?iso=20221101T21&p0=157&msg=Release+Party+%2B+Zig+RUSH%21&font=slab&csz=1) and the deadline for sending those videos is November 1, 2022 3:00 PM (6h before the start of the stream). To submit a video, just send me an email (loris att zig.show) or a DM on discord. In the DM you can either put a link to the video or directly upload it there.
If you have more than one thing to show, it's up to you if you want to try and squeeze everything in your 64s long video, or if you prefer to save some of the things you're working on for the next Zig RUSH!. In other words, please only one submission per person, thank you. Finally, I'll try to show all submissions on stream but, if we end up in a situation where we have too many videos, the videos we won't be able to play this time will be saved for the next Zig RUSH! for sure.
https://www.reddit.com/r/Zig/comments/ygiir2/release_party_and_zig_rush_november_1st/
#upstream
YouTube
Zig ⚡ SHOWTIME #30: Zig RUSH!
Zig RUSH! is our version of lightning talks, with a twist: there's no signup process so nobody knows what we're going to see until the last minute.
🎉2👍1
https://github.com/ziglang/zig/commit/0c1701768d4fefcc4792ebe39b79e31028c53bfa
https://github.com/ziglang/www.ziglang.org/tree/release-0.10.0
✌
#upstream
https://github.com/ziglang/www.ziglang.org/tree/release-0.10.0
✌
#upstream
GitHub
Release 0.10.0 · ziglang/zig@0c17017
General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software. - Release 0.10.0 · ziglang/zig@0c17017
🎉1
Язык Zig (канал)
https://github.com/ziglang/zig/releases/tag/0.10.0 https://ziglang.org/download/0.10.0/release-notes.html #upstream #блоги
Now that the Self-Hosted Compiler is launched, we can move on with the roadmap!
The major themes of the 0.11.0 release cycle will be language changes, compilation speed, and package management.
Some upcoming milestones we will be working towards in the 0.11.0 release cycle:
Finishing the tail end of test coverage - getting the Self-Hosted Compiler to pass a strict superset of tests passed by the Bootstrap Compiler. This is down to a few dozen compile error tests.
Self-Hosted Compiler can build itself with the C Backend. Unlocks ability to replace the Bootstrap Compiler with generated C code (#5246).
Many Accepted Proposals implemented. Expect breakage!
Behavior tests passing for the x86 Backend, aarch64 Backend, or WebAssembly Backend. Unleashes our full compilation speed when targeting the respective architecture.
Experimental first implementation of the official package manager.
Fuzz test incremental compilation so that we can enable it and gain compilation speed for all backends, including the LLVM backend.
Self-Hosted Linker support for ELF and COFF. Eliminate dependency on LLD.
Hot code swapping for Windows, macOS, and Linux.
Introduce Concurrency to semantic analysis to further increase compilation speed.
#upstream
The major themes of the 0.11.0 release cycle will be language changes, compilation speed, and package management.
Some upcoming milestones we will be working towards in the 0.11.0 release cycle:
Finishing the tail end of test coverage - getting the Self-Hosted Compiler to pass a strict superset of tests passed by the Bootstrap Compiler. This is down to a few dozen compile error tests.
Self-Hosted Compiler can build itself with the C Backend. Unlocks ability to replace the Bootstrap Compiler with generated C code (#5246).
Many Accepted Proposals implemented. Expect breakage!
Behavior tests passing for the x86 Backend, aarch64 Backend, or WebAssembly Backend. Unleashes our full compilation speed when targeting the respective architecture.
Experimental first implementation of the official package manager.
Fuzz test incremental compilation so that we can enable it and gain compilation speed for all backends, including the LLVM backend.
Self-Hosted Linker support for ELF and COFF. Eliminate dependency on LLD.
Hot code swapping for Windows, macOS, and Linux.
Introduce Concurrency to semantic analysis to further increase compilation speed.
#upstream
YouTube
Zig Roadmap 2023 - Andrew Kelley
From Zig MiLAN PARTY 2022
Andrew's data oriented talk at Handmade Seattle
https://guide.handmade-seattle.com/c/2021/practical-dod/
Andrew's data oriented talk at Handmade Seattle
https://guide.handmade-seattle.com/c/2021/practical-dod/
⚡2
A library for writing zero-cost, declarative, understandable, generic code in zig. Has built-in error-reporting to guide programmers into writing correct code, and aims to be a ziggy way of implementing traits/interfaces with no runtime overhead.
https://github.com/mov-rax/zig-validate
Насколько я понял, эта библиотека завязана на разделении function body [fn ()] и function pointer [*const fn ()] в self-hosted компиляторе, поэтому будет работать только с ним (0.10.0)
#библиотеки
https://github.com/mov-rax/zig-validate
Насколько я понял, эта библиотека завязана на разделении function body [fn ()] и function pointer [*const fn ()] в self-hosted компиляторе, поэтому будет работать только с ним (0.10.0)
#библиотеки
👍1
Язык Zig (канал)
To celebrate the 0.10.0 release we're going to have a release party like in the old times! Andrew will be present, I'll host, and we'll also have other guests on stream. This is also a good opportunity to have a Zig RUSH!, the format where members of the…
YouTube
Zig 0.10.0 Release Party
👍1
Язык Zig (канал)
Zig ⚡ Using WASI and the C backend to delete the C++ compiler implementation #upstream
Nuke the C++ implementation of Zig from orbit using WASI #13560
The idea here is to use a small WASI binary as a stage1 kernel that is committed to source control and therefore can be used to build any commit from source. We provide a minimal WASI interpreter implementation that is built from C source, and then used to translate the Zig self-hosted compiler source code into C code. The C code is then compiled & linked, again by the system C compiler, into a stage2 binary. The stage2 binary can then be used repeatedly with
The WASI stage1 blob only needs to be updated when a breaking change or new feature affects the self-hosted compiler when building itself. For example, a bug fix that the self-hosted compiler does not trigger when building itself can be ignored. However, if the bug fix is required for zig to build itself, then the stage1 WASI blob needs to be updated. Similarly when the language is changed and the compiler wants to use the changes to build itself, the blob needs to be updated.
The WASI blob is produced with
I built this branch and master branch from source at the same time and got these results:
Big thanks to @jacobly0 who has done significant work on the C backend to enable this possibility, as well as helping write the WASI interpreter and make it go fast, over in the external zig-wasi repo. In fact, after rewriting the interpreter a few times he figured out how to make it run even faster by translating the wasm code to C instead of interpreting it directly.
Closes #5246
Closes #6378
Closes #6485
# Prerequisites:
These are already merged inside this branch:
remove -fstage1 option #13383
WebAssembly-only fast allocator #13513
C backend: unblock progress on #13560 #13561
cbe bug fixes and improvements #13715
# Enhancements Needed
Merge blockers:
✅ make zig1.c detect the host -target and pass correct flags to WASI argv
✅ avoid hard-coding --color on in CMake
✅ fix the -target parameter computation in CMake
Nice to have:
✅ look into compressing zig1.wasm with zstd or gzip and having a mini zstd or gzip decoder in zig1.
✅ enhance C backend so it generates fewer bytes of .c code
✅ enhance C backend so it generates .c code that compiles faster
* enhance C backend so compiling the .c code generates no warnings
* C backend: generate MSVC-compatible code #13574
* C backend: generate GCC-compatible code #13575
#upstream
The idea here is to use a small WASI binary as a stage1 kernel that is committed to source control and therefore can be used to build any commit from source. We provide a minimal WASI interpreter implementation that is built from C source, and then used to translate the Zig self-hosted compiler source code into C code. The C code is then compiled & linked, again by the system C compiler, into a stage2 binary. The stage2 binary can then be used repeatedly with
zig build to build from source from that point on.The WASI stage1 blob only needs to be updated when a breaking change or new feature affects the self-hosted compiler when building itself. For example, a bug fix that the self-hosted compiler does not trigger when building itself can be ignored. However, if the bug fix is required for zig to build itself, then the stage1 WASI blob needs to be updated. Similarly when the language is changed and the compiler wants to use the changes to build itself, the blob needs to be updated.
The WASI blob is produced with
zig build update-zig1 which uses the LLVM backend to produce a ReleaseSmall binary that targets wasm32-wasi with a CPU of generic+bulk_memory. This produces a 2.6 MiB file. It is then optimized with wasm-opt -Oz --enable-bulk-memory bringing the total down to 2.4 MiB. Finally, it is compressed with zstd, bringing the total down to 655 KB. This is offset by the size of the zstd decoder implementation in C, however it is worth it because the zstd implementation will change rarely if ever, saving a total of 1.8 MiB every time the blob is updated.I built this branch and master branch from source at the same time and got these results:
compiling from source with ninja install,
configured with -DCMAKE_BUILD_TYPE=Release -DZIG_NO_LIB=ON:
master branch: 13m20s with 10.3 GiB peak RSS
wasi-bootstrap branch: 10m53s with 3.2 GiB peak RSSBig thanks to @jacobly0 who has done significant work on the C backend to enable this possibility, as well as helping write the WASI interpreter and make it go fast, over in the external zig-wasi repo. In fact, after rewriting the interpreter a few times he figured out how to make it run even faster by translating the wasm code to C instead of interpreting it directly.
Closes #5246
Closes #6378
Closes #6485
# Prerequisites:
These are already merged inside this branch:
remove -fstage1 option #13383
WebAssembly-only fast allocator #13513
C backend: unblock progress on #13560 #13561
cbe bug fixes and improvements #13715
# Enhancements Needed
Merge blockers:
✅ make zig1.c detect the host -target and pass correct flags to WASI argv
✅ avoid hard-coding --color on in CMake
✅ fix the -target parameter computation in CMake
Nice to have:
✅ look into compressing zig1.wasm with zstd or gzip and having a mini zstd or gzip decoder in zig1.
✅ enhance C backend so it generates fewer bytes of .c code
✅ enhance C backend so it generates .c code that compiles faster
* enhance C backend so compiling the .c code generates no warnings
* C backend: generate MSVC-compatible code #13574
* C backend: generate GCC-compatible code #13575
#upstream
GitHub
Nuke the C++ implementation of Zig from orbit using WASI by andrewrk · Pull Request #13560 · ziglang/zig
The idea here is to use a small WASI binary as a stage1 kernel that is committed to source control and therefore can be used to build any commit from source. We provide a minimal WASI interpreter i...
👍1
Язык Zig (канал)
Nuke the C++ implementation of Zig from orbit using WASI #13560 The idea here is to use a small WASI binary as a stage1 kernel that is committed to source control and therefore can be used to build any commit from source. We provide a minimal WASI interpreter…
> We will be temporarily regressing async/await/suspend/resume in master branch.
Компилятор на C++ удалят ДО того, как добавят поддержку вышеуказанного в self–hosted компилятор
> The plan is to merge this into master branch before completing #6025. Users of async functions should stick to 0.10.0 for now.
Компилятор на C++ удалят ДО того, как добавят поддержку вышеуказанного в self–hosted компилятор
> The plan is to merge this into master branch before completing #6025. Users of async functions should stick to 0.10.0 for now.
GitHub
async/await/suspend/resume · Issue #6025 · ziglang/zig
This is a sub-task of #89. Proposal Re-introduce the async/await language feature which existed in the bootstrap compiler, with the same semantics as before. Competes with #23446.
🔥1
Язык Zig (канал)
Nuke the C++ implementation of Zig from orbit using WASI #13560 The idea here is to use a small WASI binary as a stage1 kernel that is committed to source control and therefore can be used to build any commit from source. We provide a minimal WASI interpreter…
Merged два часа назад 🎉🎉🎉
https://github.com/ziglang/zig/commit/e7d28344fa3ee81d6ad7ca5ce1f83d50d8502118
https://github.com/ziglang/zig/commit/e7d28344fa3ee81d6ad7ca5ce1f83d50d8502118
GitHub
Merge pull request #13560 from ziglang/wasi-bootstrap · ziglang/zig@e7d2834
Nuke the C++ implementation of Zig from orbit using WASI
🔥7
In the Zig project, we closed 19% of total open issues during December this year.
This was not the work of a "stale bot", but of humans who painstakingly verified that each and every issue was resolved and had test coverage if applicable.
Finally, our technical debt is being paid off and we can reach for some ambitious goals in 2023.
https://mastodon.social/@andrewrk/109621905821062620
This was not the work of a "stale bot", but of humans who painstakingly verified that each and every issue was resolved and had test coverage if applicable.
Finally, our technical debt is being paid off and we can reach for some ambitious goals in 2023.
https://mastodon.social/@andrewrk/109621905821062620
👍2
In about 30 minutes I'll stream working towards the Zig Package Manager.
This will be a yak-shaving stream - there is much to do before we can work on the package manager logic itself.
https://twitch.tv/andrewrok/
https://mastodon.social/@andrewrk/109627337708582296
This will be a yak-shaving stream - there is much to do before we can work on the package manager logic itself.
https://twitch.tv/andrewrok/
https://mastodon.social/@andrewrk/109627337708582296
Twitch
andrewrok - Twitch
Lead developer & president of Zig Software Foundation.
👍1
Язык Zig (канал)
In about 30 minutes I'll stream working towards the Zig Package Manager. This will be a yak-shaving stream - there is much to do before we can work on the package manager logic itself. https://twitch.tv/andrewrok/ https://mastodon.social/@andrewrk/109627337708582296
Стрим уже начался https://www.twitch.tv/andrewrok
Twitch
andrewrok - Twitch
Lead developer & president of Zig Software Foundation.
