Язык Zig (канал) – Telegram
Язык Zig (канал)
181 subscribers
28 photos
3 videos
6 files
246 links
Download Telegram
Язык Zig (канал)
С Новым 2026 Годом всех зигастиков!
В предстоящем году нас скорее всего ждет два выпуска, весной (0.16, async) и осенью-зимой (0.17). Фокус будет на стандартной библиотеке и постепенно стабилизации языка. Эндрю обещал большинство накопившихся предложений отклонить!

Есть шанс что в 2027 или 2028 будет релиз 1.0 (я думаю скорее всего 2028).
😍12😁3👍1
Всем привет.

Недавно увидел, что Karl Seguin (автор блога OpenMyMind и кучи библиотек для Zig) активно использует Claude для разработки на Zig (судя по его собственным словам, весьма успешно):
- https://bsky.app/profile/karlseguin.com/post/3m4coasigyc24
- https://bsky.app/profile/karlseguin.com/post/3mahrn2mrhc2d

Он пишет, что "сейчас почти не пишет код без параллельной сессии с Claude Pro, и что комфорт работы с LLM напрямую зависит от умения работать в режиме совместного кодинга".

У меня в прошлом не очень получалось с LLM-ками и Zig, но ему я доверяю и поэтому решил пере-проверить. На примере портирования с Zig 0.14 до Zig 0.15.
😐4👍1
Язык Zig (канал)
Всем привет. Недавно увидел, что Karl Seguin (автор блога OpenMyMind и кучи библиотек для Zig) активно использует Claude для разработки на Zig (судя по его собственным словам, весьма успешно): - https://bsky.app/profile/karlseguin.com/post/3m4coasigyc24 …
Портирование с 0.14 на 0.15 прошло очень хорошо, руками я бы запарился usingnamespace заменять везде.
Основной код Claude (Code) портировал сам, но забыл про examples, я ему сказал что вообще-то там тоже есть код на Zig и он дофиксил.

https://git.sr.ht/~bratishkaerik/zig-libgccjit/commit/5052cad69dc0328a060e8c565e7cd6e4f7cec94b

В целом я доволен.
👍3
Еще (ужасно) потестил в браузере онлайн ИИшки простым вопросом (поиск и thinking помечал как optional или врубал, но в идеале без него или сам должен был догадаться включить их):

For porting Zig 0.14 code to Zig 0.15: what is the correct replacement for `readByte()` on a file/reader, and where is it called from?


Рандомы:
GLM 4.6:
GLM 4.7:
Mistral:

Что я обычно юзаю:
ChatGPT:
Gemini 3 Thinking:
DeepSeek:
Claude Sonnet 4.5:
Kimi K2:
🔥1
Язык Zig (канал)
Еще (ужасно) потестил в браузере онлайн ИИшки простым вопросом (поиск и thinking помечал как optional или врубал, но в идеале без него или сам должен был догадаться включить их): For porting Zig 0.14 code to Zig 0.15: what is the correct replacement for `readByte()`…
Из тех, кто "не угадал", только DeepSeek был ближе всех к правде.
Он почему-то думал, что в новом API:
* takeByte: i8
* takeByteUnsigned: u8

И предложил второе. А на деле там:
* takeByte: u8
* takeByteSigned: i8

ChatGPT и прочие вообще далеко ушли, какие то allocByte и ownByte стали придумывать.
Язык Zig (канал)
https://bun.com/blog/bun-joins-anthropic
Мейби после этой покупки они натренируют еще больше. Если я правильно все помню у bun был самый большой репозиторий Zig кода, больше чем даже сам ziglang/zig. После покупки плюс люди знающие этот язык, и вуаля!
Live stream started
Live stream finished (3 seconds)
mak
https://codeberg.org/ziglang/zig/pulls/30776
Куча фиксов и немного фич:
* switch с void и другими пустыми типами теперь работает нормально
* Теперь можно ловить теги без inline switch:
* Result type теперь нормально передается:

Для функций по типу @intCast или @enumFromInt:
const a: u16 = 0;
const b: u32 = 0;
switch (a) {
@intCast(b) => ..., // теперь работает
}

const Enum = enum(u8) { ... };

const c: Enum = ...;
switch (c) {
@enumFromInt(0) => ..., // теперь работает
}
2👍1
Язык Zig (канал)
Или Decl literals: const Tot = enum { a, b, pub const c: Tot = .a; } switch (...) { .b => ..., .c => ... }
switch (...) {
.a => |_, tag| {} // теперь можно теги ловить в обычной ветке, не только inline
}
👍2
Finding and Fixing Ghostty's Largest Memory Leak

Интересный трюк для macOS аллокаторов:

inline fn pageAllocator() Allocator {
// In tests we use our testing allocator so we can detect leaks.
if (builtin.is_test) return std.testing.allocator;

// On non-macOS we use our standard Zig page allocator.
if (!builtin.target.os.tag.isDarwin()) return std.heap.page_allocator;

// On macOS we want to tag our memory so we can assign it to our
// core terminal usage.
const mach = @import("../os/mach.zig");
return mach.taggedPageAllocator(.application_specific_1);
}


И помечают свою память для отладчиков и прочих вещей на MacOS. Жалко только скриншотов в посте нет.
🔥4