Всем привет.
Недавно увидел, что 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.
Недавно увидел, что 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 прошло очень хорошо, руками я бы запарился
Основной код Claude (Code) портировал сам, но забыл про examples, я ему сказал что вообще-то там тоже есть код на Zig и он дофиксил.
https://git.sr.ht/~bratishkaerik/zig-libgccjit/commit/5052cad69dc0328a060e8c565e7cd6e4f7cec94b
В целом я доволен.
usingnamespace заменять везде. Основной код Claude (Code) портировал сам, но забыл про examples, я ему сказал что вообще-то там тоже есть код на Zig и он дофиксил.
https://git.sr.ht/~bratishkaerik/zig-libgccjit/commit/5052cad69dc0328a060e8c565e7cd6e4f7cec94b
В целом я доволен.
👍3
Еще (ужасно) потестил в браузере онлайн ИИшки простым вопросом (поиск и thinking помечал как optional или врубал, но в идеале без него или сам должен был догадаться включить их):
Рандомы:
GLM 4.6: ❌
GLM 4.7: ❌
Mistral: ❌
Что я обычно юзаю:
ChatGPT: ❌
Gemini 3 Thinking: ✅
DeepSeek: ❌
Claude Sonnet 4.5: ✅
Kimi K2: ✅
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:
*
*
И предложил второе. А на деле там:
*
*
ChatGPT и прочие вообще далеко ушли, какие то allocByte и ownByte стали придумывать.
Он почему-то думал, что в новом API:
*
takeByte: i8*
takeByteUnsigned: u8И предложил второе. А на деле там:
*
takeByte: u8*
takeByteSigned: i8ChatGPT и прочие вообще далеко ушли, какие то allocByte и ownByte стали придумывать.
Язык Zig (канал)
https://bun.com/blog/bun-joins-anthropic
Мейби после этой покупки они натренируют еще больше. Если я правильно все помню у bun был самый большой репозиторий Zig кода, больше чем даже сам ziglang/zig. После покупки плюс люди знающие этот язык, и вуаля!
Forwarded from mak
Codeberg.org
frontend: rewrite `switch` logic
Supersedes [#24720](https://github.com/ziglang/zig/pull/24720)
Supersedes [#25467](https://github.com/ziglang/zig/pull/25467)
Resolves #30660
Resolves #30606
Resolves #30157
Resolves #30154
Resolves #30153
Resolves [#25644](https://github.com/ziglang/zig/issues/25644)…
Supersedes [#25467](https://github.com/ziglang/zig/pull/25467)
Resolves #30660
Resolves #30606
Resolves #30157
Resolves #30154
Resolves #30153
Resolves [#25644](https://github.com/ziglang/zig/issues/25644)…
👍3
mak
https://codeberg.org/ziglang/zig/pulls/30776
Куча фиксов и немного фич:
* switch с void и другими пустыми типами теперь работает нормально
* Теперь можно ловить теги без inline switch:
* Result type теперь нормально передается:
Для функций по типу
* 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 (канал)
Куча фиксов и немного фич: * switch с void и другими пустыми типами теперь работает нормально * Теперь можно ловить теги без inline switch: * Result type теперь нормально передается: Для функций по типу @intCast или @enumFromInt: const a: u16 = 0; const b:…
Или Decl literals:
const Tot = enum {
a,
b,
pub const c: Tot = .a;
}
switch (...) {
.b => ...,
.c => ...
}🔥2
Язык 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 аллокаторов:
И помечают свою память для отладчиков и прочих вещей на MacOS. Жалко только скриншотов в посте нет.
Интересный трюк для 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