Прогресс по 0.17.0:
16 Открыто
146 Закрыто
90%
Остались в основном баги и регрессии. Плюс две фичи и один пулл-реквест:
build server protocol (самое важное, и вроде как приоритет для Эндрю. Полезно для ZLS, ZigBrains и т.д.)
introduce the concept of adding path dependencies of the build script itself
Resolve relative install directories against install prefix
#upstream
В "Brno University of Technology, Faculty of Information Technology" уже вторая по счету команда на дисциплине по компиляторам пишет "компилятор Zig на Си"
https://github.com/IFJ-zig/Zig-compiler
https://github.com/MarekPazur/IFJ-2024
Odin таки смог и дошел, впрочем и до этого у них была намного лучше история с стабильностью и обновлениями, чем у Zig…
Когда он выйдет, мы еще на 0.17 будем наверно
Returning to Zig
Автор статьи ушел из Zig в Rust в 2020 году, теперь вернулся обратно.
#блоги
Pledging Another $400,000 to the Zig Software Foundation
Больше денег, можно в том числе и для core team новые контракты создать, их уже 15 человек!
https://ziglang.org/news/welcoming-new-team-members/
These folks are next in line for ZSF contracts once funds are available.
1. Andrew Kelley (andrewrk)
2. Loris Cro (kristoff)
3. Isaac Freund (ifreund)
4. Veikka Tuominen (Vexu)
5. Michael Dusan (mikdusan)
6. Jacob Young (jacobly)
7. Matthew Lugg (mlugg)
8. Alex Rønne Petersen (alexrp)
9. Mason Remaley (MasonRemaley)
10. Ryan Liptak (squeek502)
11. Frank Denis (jedisct1)
12. Ali Cheraghi (alichraghi)
13. Justus Klausecker (justusk)
14. Casey Banner (kcbanner)
15. Pavel Verigo (pavelverigo)
Если вдруг кто думал, что Zig «крадёт» последний или первый бит и что @sizeOf(?u63) == @sizeOf(u64), это не так:
x86-windows-gnu:
========================
Type: u63
@sizeOf: 8
@bitSizeOf: 63
@alignOf: 8
========================
Type: u64
@sizeOf: 8
@bitSizeOf: 64
@alignOf: 8
========================
Type: ?u63
@sizeOf: 16
@bitSizeOf: 128
@alignOf: 8
========================
Type: ?u64
@sizeOf: 16
@bitSizeOf: 128
@alignOf: 8
========================Читать полностью…
Type: u63
@sizeOf: 8
@bitSizeOf: 63
@alignOf: 4
========================
Type: u64
@sizeOf: 8
@bitSizeOf: 64
@alignOf: 4
========================
Type: ?u63
@sizeOf: 12
@bitSizeOf: 96
@alignOf: 4
========================
Type: ?u64
@sizeOf: 12
@bitSizeOf: 96
@alignOf: 4
ZON парсер для Python (если кому надо)
https://pypi.org/project/natizon/
https://github.com/BratishkaErik/natizon
Чтобы парсить build.zig.zon в питоне вполне хватает, но не только для них.
Сгенерированные EPUB для language reference
https://codeberg.org/ziglang/ziglang.org/issues/623
https://codeberg.org/simenandre/ziglang-docs-epub
Пример модуля на Zig для ядра Linux:
https://codeberg.org/usebeforefree/zig-kernel-module
https://ziggit.dev/t/linux-kernel-module-example-in-zig/15923
/channel/ziglang_en/162535
Хорошие новости. Команда zls (techatrix) и zig core team пообщались как сделать так чтобы zls мог работать и дальше. https://codeberg.org/ziglang/zig/issues/35538
Читать полностью…
https://github.com/foxnne/fizzy/
https://fizzyed.it/
Pixi переименовали в Fizzy:
https://github.com/foxnne/fizzy/pull/162
Анализ от Gemini на Python
(потом более нормальные сделаю)
@**Chris Boesch** Я просто хочу заверить вас и всех остальных, кто пытается внести свой вклад в проект, что вы всё делаете правильно. Что касается меня, причина, по которой вы, возможно, в последнее время не получали отзывов по ревью, заключается в следующем:Читать полностью…
* я был сосредоточен на завершении своей ветки системы сборки для выпуска 0.17.0
* уходил в отпуск на 1 неделю
* решал личные вопросы в жизни
У других участников основной команды есть свои причины касательно того, сколько времени они уделяют очереди PR. Напоминаю, что никто, включая меня, не брал на себя обязательств по конкретному количеству времени. Всё это делается исключительно на основе добровольных усилий и доброй воли.
Тем не менее, с учётом вышесказанного, здесь назрела более масштабная дискуссия, которая также проходит на Ziggit.
После выпуска 0.17.0 я планирую сосредоточиться на улучшении пайплайна для контрибьюторов. Нам ещё многое предстоит обсудить, как публично, так и внутри команды, но в целом я хотел бы попытаться создать среду с более высоким уровнем доверия, где у большего числа людей будет больше возможностей помогать друг другу и самим себе, не упираясь в бутылочное горлышко из 4-5 активных участников основной команды. Кроме того, я бы хотел решить техническую проблему частых сбоев в работе Codeberg — либо путём самостоятельного хостинга, либо выбрав другую технологию, устойчивую к простоям.
В заключение: если контрибьюторы сейчас чувствуют разочарование из-за очереди на ревью, стабильности и производительности платформы для разработки и тому подобных вещей, вы не одиноки. Давайте придумаем способ повысить доверие и автономность контрибьюторов без ущерба для целостности проекта — как с точки зрения качества программного обеспечения, так и с точки зрения сообщества людей, стремящихся оттачивать свои навыки и улучшать резюме.
Мне бы хотелось просто кодить в свое удовольствие, но иногда приходится отвлекаться на оптимизацию процессов.
https://kotlinlang.org/docs/whatsnew-eap.html#improved-compile-time-constants
Ещё больше comptime в Kotlin
https://github.com/Kotlin/KEEP/blob/main/proposals/KEEP-0444-improve-compile-time-constants.md
https://lalinsky.com/2026/05/11/async-io-in-zig-016-today.html
https://github.com/lalinsky/zio
Рантайм для std.Io как рабочая альтернатива std.Io.Evented
#библиотеки #блоги
Даже три:
https://github.com/matusmihaljevic/butfit-ifj
Походу им преподаватель задание такое дает
Rewriting Bun in Rust
Кусок про stack size:
Rust's LLVM IR codegen emits LLVM's llvm.lifetime.start and llvm.lifetime.end intrinsics for stack variables when they are no longer in use, which lets LLVM reuse stack space slots. This lets large functions with nested scopes use significantly less stack space.
Previously, we manually worked around an open issue by refactoring particularly large functions into many smaller functions.
@bitCast переделали и работу чисел с "нетипичными" размерами (u3, u17, u63 etc.):
Devlog и запрос на слияние от mlugg:
* https://ziglang.org/devlog/2026/#2026-06-25
* https://codeberg.org/ziglang/zig/pulls/35711
Основной proposal (от jacobly):
* https://github.com/ziglang/zig/issues/19755
Чет я писал и писал, но получилось запутанно, так что на потом оставил.
#upstream #блоги
Просто чтоб не забыть (x86_64-windows-gnu)
sizes.zig:25:5: error:Читать полностью…
========================
Type: u63
@sizeOf: 8
@bitSizeOf: 63
@alignOf: 8
========================
Type: u64
@sizeOf: 8
@bitSizeOf: 64
@alignOf: 8
========================
Type: ?u63
@sizeOf: 16
@bitSizeOf: 128
@alignOf: 8
========================
Type: ?u64
@sizeOf: 16
@bitSizeOf: 128
@alignOf: 8
@compileError(buffer);
^~~~~~~~~~~~~~~~~~~~~
Ownership checker для Zig, через комментарии или comptime
https://github.com/sophatvathana/zigsafe
https://www.reddit.com/r/Zig/comments/1txqvl7/built_an_optional_ownership_checker_for_zig/
Библиотека для детерминированного тестирования IO на Zig:
https://sb2bg.github.io/marionette/
https://github.com/sb2bg/marionette
#библиотеки
Тот ZigC заглох, зато Zig++ появился:
https://github.com/nktkt/zigpp
https://github.com/nktkt/zigpp-design-draft
Как ранний C++, который транслировался в Си, в этом случае Zig++ транслируется в Zig
Большое интервью с Эндрю:
https://www.youtube.com/watch?v=iqddnwKF8HQ
/channel/ziglang_ru/66141
После обновления NCDU с 0.14-0.15 на 0.16 решил проверить размеры бинарника:
/channel/ziglang_en/161590-Dtarget=x86_64-linux-gnu-Dcpu= x86_64_v4
0.16.0:
Debug: 17846221 (18M)
Debug + Dstrip: 4702669 (4,7M)
ReleaseSafe: 4598512 (4,6M)
ReleaseSafe + Dstrip: 521416 (521k)
ReleaseFast: 4847384 (4,8M)
ReleaseFast + Dstrip: 459768 (460k)
ReleaseSmall: 2862632 (2,9M)
ReleaseSmall + Dstrip: 284488 (284k)
0.15.2:
Debug: 16956152 (17M)
Debug + Dstrip: 4247949 (4,2M)
ReleaseSafe: 3615416 (3,6M)
ReleaseSafe + Dstrip: 320016 (320k)
ReleaseFast: 2539824 (2,5M)
ReleaseFast + Dstrip: 326000 (326k)
ReleaseSmall: 1467968 (1,5M)
ReleaseSmall + Dstrip: 180648 (181k)
@**Chris Boesch** I just want to reassure you along with everyone else who is trying to contribute that you're not doing anything wrong. On my end the reason you might not have gotten any review feedback lately is:Читать полностью…
* focusing on finishing my own build system branch for the 0.17.0 tag
* going on vacation for 1 week
* dealing with personal matters in my life
The other core team members have their own reasons for how much time they spend on the PR queue. As a reminder, nobody including myself has committed to any particular amount of time. It's all best effort, goodwill type of situation.
With that in mind, however, there's a greater discussion to be had here, which is also taking place on ziggit.
After the 0.17.0 tag, I plan to focus on improving the contribution pipeline. We still have a lot to discuss, both publicly and internally, but in general I'd like to try to create a higher trust environment, where more people have more capability to unblock each other and themselves without bottlenecking on ~4.5 active core team members. Furthermore I'd like to solve the technical problem of the frequent codeberg downtime - either by self-hosting or by choosing a different technology that is resilient to outages.
In conclusion if contributors are feeling frustrated right now with the review queue, code forge stability and performance, and similar matters, you're not alone. Let's come up with a way to increase contributor trust and autonomy without compromising the integrity of the project, both from software quality perspective and as a community of people looking to hone their skills and resumes.
I would have preferred to just continue cooking, but sometimes you gotta sharpen your knives
zig.exe fetch --save=blabla ../
на 0.15 все нормально было, на 0.16 в рекурсию уходит и диск сжирает за секунды буквально!
Кладите в другую папку или чистите .paths в build.zig.zon
У меня грубо говоря такой сетап был:
1. Пакет с build.zig и пустым paths в build.zig.zon (т.е. дефолт - всё включено)
2. Хотел импортировать его в примерах внутри папки examples/
3. С этой командой получается рекурсия zig-pkg/name.../examples/zig-pkg/name.../examples/zig-pkg/...
Я пофиксил, прописав конкретные paths.
Это на Windows 11 было, на других не тестил.
#предупреждение