Как новый std.Progress будет выглядеть в режиме дерева (как у zig build --summary all):
https://asciinema.org/a/gDna9RnicwYjDRIDn4e07NFSc
#upstream
https://asciinema.org/a/gDna9RnicwYjDRIDn4e07NFSc
#upstream
Язык Zig (канал)
Как новый std.Progress будет выглядеть в режиме дерева (как у zig build --summary all): https://asciinema.org/a/gDna9RnicwYjDRIDn4e07NFSc #upstream
This media is not supported in your browser
VIEW IN TELEGRAM
agg https://asciinema.org/a/gDna9RnicwYjDRIDn4e07NFSc demo.gif --fps-cap 60 --rows 15 --cols 50
🔥6❤2
Язык Zig (канал)
Как новый std.Progress будет выглядеть в режиме дерева (как у zig build --summary all): https://asciinema.org/a/gDna9RnicwYjDRIDn4e07NFSc #upstream
GitHub
rework std.Progress by andrewrk · Pull Request #20059 · ziglang/zig
Demo
simple asciinema demo source
demo: building a music player with zig build source
Motivation
The previous implementation of std.Progress had the design limitation that it could not assume owner...
simple asciinema demo source
demo: building a music player with zig build source
Motivation
The previous implementation of std.Progress had the design limitation that it could not assume owner...
Неофициальная неполная таблица от matu3ba с функциями из compiler_rt для разных архитектур, плюс галочка реализовано или нет в Zig.
Если у вас во время компиляции появилась ошибка по типу:
То скорее всего эту функцию ещё не портировали на Zig, можете свериться с таблицей.
https://github.com/matu3ba/zig_unofficial_compiler_rt_docs
Если у вас во время компиляции появилась ошибка по типу:
ld.lld: error: undefined symbol: _bla_bla
То скорее всего эту функцию ещё не портировали на Zig, можете свериться с таблицей.
https://github.com/matu3ba/zig_unofficial_compiler_rt_docs
Язык Zig (канал)
Неофициальная неполная таблица от matu3ba с функциями из compiler_rt для разных архитектур, плюс галочка реализовано или нет в Zig. Если у вас во время компиляции появилась ошибка по типу: ld.lld: error: undefined symbol: _bla_bla То скорее всего эту функцию…
ой блин, вообще не ту ссылку вставил, исправил
Ещё одна библиотека для корутин и асинхронного I/O (на этот раз два-в-одном, а не раздельно как с zigcoro + libxev):
https://cloudef.github.io/zig-aio
https://github.com/Cloudef/zig-aio
#библиотеки
https://cloudef.github.io/zig-aio
https://github.com/Cloudef/zig-aio
#библиотеки
GitHub
GitHub - Cloudef/zig-aio: io_uring like asynchronous API and coroutine powered IO tasks for zig
io_uring like asynchronous API and coroutine powered IO tasks for zig - Cloudef/zig-aio
https://ziggy-lang.io/
https://github.com/kristoff-it/ziggy
Ещё одна (если считать ZON) зигоподобная альтернатива JSON/YAML/TOML/т.д. . В отличии от ZON, синтаксис вдохновлен Зиг, но не копирует его (поэтому есть прикольные новые фичи, которых не в Zig и ZON):
https://github.com/kristoff-it/ziggy
Ещё одна (если считать ZON) зигоподобная альтернатива JSON/YAML/TOML/т.д. . В отличии от ZON, синтаксис вдохновлен Зиг, но не копирует его (поэтому есть прикольные новые фичи, которых не в Zig и ZON):
.id = @uuid("..."),
.time = 1710085168,
.payload = Command {
.do = @action("clear_chat"),
.sender = "kristoff-it",
.roles = ["admin", "mod"],
.extra = {
"agent": "Mozilla/5.0",
"os": "Linux/x64",
},
}ziggy-lang.io
Home - Ziggy
Ziggy: A JSON/YAML/TOML alternative.
👀4🔥2
Экспериментальная поддержка Zig в re2c (генераторе лексера, юзается в ninja, php, т.д.), это вдобавок к C/C++/Rust.
https://github.com/skvadrik/re2c/commit/5cd48a8ffb1bfc82b17bd7f381437efd1678b188
https://github.com/skvadrik/re2c/issues/451#issuecomment-2229461380
https://github.com/skvadrik/re2c/commit/5cd48a8ffb1bfc82b17bd7f381437efd1678b188
https://github.com/skvadrik/re2c/issues/451#issuecomment-2229461380
GitHub
Add basic support for Zig (no documentation). · skvadrik/re2c@5cd48a8
Lexer generator for C, C++, Go and Rust. Contribute to skvadrik/re2c development by creating an account on GitHub.
👍3👀1
Язык Zig (канал)
Экспериментальная поддержка Zig в re2c (генераторе лексера, юзается в ninja, php, т.д.), это вдобавок к C/C++/Rust. https://github.com/skvadrik/re2c/commit/5cd48a8ffb1bfc82b17bd7f381437efd1678b188 https://github.com/skvadrik/re2c/issues/451#issuecomment-2229461380
Пример:
Конвертируется в:
// re2zig $INPUT -o $OUTPUT
const std = @import("std");
fn lex(yyinput: [:0]const u8) bool {
var yycursor: u32 = 0;
/*!re2c
re2c:define:YYCTYPE = u8;
re2c:yyfill:enable = 0;
number = [1-9][0-9]*;
number { return true; }
* { return false; }
*/
}
test {
try std.testing.expect(lex("1234"));
}
Конвертируется в:
// Generated by re2c
// re2zig $INPUT -o $OUTPUT
const std = @import("std");
fn lex(yyinput: [:0]const u8) bool {
var yycursor: u32 = 0;
var yych: u8 = 0;
var yystate: u32 = 0;
while (true) {
switch (yystate) {
0 => {
yych = yyinput[yycursor];
yycursor += 1;
switch (yych) {
0x31...0x39 => {
yystate = 2;
continue;
},
else => {
yystate = 1;
continue;
},
}
},
1 => { return false; },
2 => {
yych = yyinput[yycursor];
switch (yych) {
0x30...0x39 => {
yycursor += 1;
yystate = 2;
continue;
},
else => {
yystate = 3;
continue;
},
}
},
3 => { return true; },
else => { @panic("internal lexer error"); },
}
}
}
test {
try std.testing.expect(lex("1234"));
}
👍1
Язык Zig (канал)
Пример: // re2zig $INPUT -o $OUTPUT const std = @import("std"); fn lex(yyinput: [:0]const u8) bool { var yycursor: u32 = 0; /*!re2c re2c:define:YYCTYPE = u8; re2c:yyfill:enable = 0; number = [1-9][0-9]*; number…
с labeled switch было бы ещё легче, но тот PR пока не смержили, так шо вот... тут та же стратегия что и в Rust версии используется емнип, в C/C++ как раз goto-шный switch (на который похож наш будущий labeled switch), чет тип такого:
state: switch (yystate) {
0 => {
yych = yyinput[yycursor];
yycursor += 1;
switch (yych) {
'1'...'9' => continue :state 2,
else => continue :state 1
}
},
1 => { return false; },
2 => {
yych = yyinput[yycursor];
switch (yych) {
'0'...'9' => {
yycursor += 1;
continue :state 2;
},
else => continue :state 3,
}
},
3 => { return true; },
else => { @panic("internal lexer error"); },
}https://github.com/ziglang/zig/issues/20663
Планируют удалить
#upstream
Планируют удалить
usingnamespace. Полная фигня ИМХО, но я хз что туда написать, пока не собрал все мысли.#upstream
GitHub
Remove `usingnamespace` · Issue #20663 · ziglang/zig
This is a proposal to eliminate the usingnamespace keyword from the Zig programming language. I know this is a controversial one, but please read the whole thing before leaving any comments. Overvi...
🤔3
Язык Zig (канал)
https://github.com/ziglang/zig/issues/20663 Планируют удалить usingnamespace. Полная фигня ИМХО, но я хз что туда написать, пока не собрал все мысли. #upstream
У нас и так нет способа создать структуру/перечисления/т.д. с нужными объявлениями в комптайме (если в
@Type поле .decls будет не пустое, компилятор ошибку выдаст), а без usingnamespace вообще придется каждую такую генерируемую декларацию дублировать. Плюс у нас нет способа легко создать анонимные функции, так шо будет куча внутренных структур с чисто одной функцией, полная туфта короче.
Язык Zig (канал)
У нас и так нет способа создать структуру/перечисления/т.д. с нужными объявлениями в комптайме (если в @Type поле .decls будет не пустое, компилятор ошибку выдаст), а без usingnamespace вообще придется каждую такую генерируемую декларацию дублировать. Плюс…
Короче, я пока что просто кину ссылку на zalgebra и zig-libgccjit, не представляю как там можно сделать "хотя бы не хуже" без usingnamespace, надеюсь не заигнорят (особенно zalgebra, пушто в zig-libgccjit можно сделать без usingnamespace, но читаемость и качество ошибок компиляции очень пострадает)
Веб-интерфейс для fuzz-тестинга. Помимо прочего показывает рабочее покрытие кода (в красных точках код не достигался, в зелёных — достигался)
https://github.com/ziglang/zig/pull/20958
#upstream
https://github.com/ziglang/zig/pull/20958
#upstream
🔥11
Forwarded from Leggy Flomb
🔥2🥴2