Язык Zig (канал)
Релиз 0.14.0, но пока что архивы не сгенерировались
Только-только архивы собрались, теперь release notes ждать (но уже можете с сайта скачать, они в master разделе)
Язык Zig (канал)
0.13 релиз! Коммит есть, но на сайте и в GitHub Releases пока нету... #upstream
Выпуск 0.14.0!
https://ziglang.org/download/0.14.0/release-notes.html
#upstream
потом мб наберу на Opennet новость
https://ziglang.org/download/0.14.0/release-notes.html
#upstream
потом мб наберу на Opennet новость
This media is not supported in your browser
VIEW IN TELEGRAM
JetBrains что-то мутят с поддержкой Zig в Fleet...
https://plugins.jetbrains.com/plugin/26070-zig
Плагин новый (с декабря), скаичаанийй пока что мало
https://plugins.jetbrains.com/plugin/26070-zig
Плагин новый (с декабря), скаичаанийй пока что мало
Язык Zig (канал)
эксперимент с async/await в стандартной библиотеке вместо самого языка:
https://github.com/ziglang/zig/commits/async-await-demo/
https://github.com/ziglang/zig/commits/async-await-demo/
GitHub
Commits · ziglang/zig
General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software. - Commits · ziglang/zig
Язык Zig (канал)
эксперимент с async/await в стандартной библиотеке вместо самого языка: https://github.com/ziglang/zig/commits/async-await-demo/
...и низкоуровневые куски в самом языке:
https://github.com/ziglang/zig/issues/23446
т.е. await будут в библиотеке, а suspend/resume в языке, так можно будет другие await библиотеки использовать
https://github.com/ziglang/zig/issues/23446
т.е. await будут в библиотеке, а suspend/resume в языке, так можно будет другие await библиотеки использовать
GitHub
Proposal: stackless coroutines as low-level primitives · Issue #23446 · ziglang/zig
This proposal assumes the existence of #23367. Background At the time of writing, @andrewrk and @jacobly0 are exploring the idea of implementing async/await in userland, based on the new Io interfa...
Язык Zig (канал)
https://www.twitch.tv/andrewrok Стрим, merging pull requests (5 минут и полностью начнется).
аааа, я с самого начала смотрел, а он уже 30 минут идет, сорри стрим уже наяался оказывается
Forwarded from kortexcmd
This media is not supported in your browser
VIEW IN TELEGRAM
Язык Zig. #1. Первая программа
Deus Lex Machina - Validark's Blog
Другая версия токенайзера для Zig, с упором на производительность
https://validark.dev/posts/deus-lex-machina/
#блоги
Другая версия токенайзера для Zig, с упором на производительность
https://validark.dev/posts/deus-lex-machina/
#блоги
Validark's Blog
Deus Lex Machina - Validark's Blog
A new compaction-based tokenizer for the Zig programming language
Язык Zig (канал)
https://github.com/Validark/Accelerated-Zig-Parser
это вторая версия того же токенайзера
Язык Zig (канал)
Гайд по Zig на русском https://thecodepunk.com/zigbook/ #блоги
Автор https://t.me/thecodepunk
Telegram
TheCodePunk
Буду переодически бухтеть тут про разработку на Zig, Rust, DDD, Clean и немного вероятно на манагерские темы. Иногда можем подушнить на какую-нибудь новость или статью.
Forwarded from TheCodePunk
Опубликовал новую главу о работе с файлами и директориями — рассказываю, как их создавать, читать, удалять и обходить. Как всегда, буду рад, если материал окажется полезным. Приятного чтения! - https://thecodepunk.com/posts/zigbook23/
Forwarded from Андрей Краевский
YouTube
Zig Build System Basics (Zig 0.14)
https://ziglang.org/learn/build-system/
https://github.com/kristoff-it
https://github.com/allyourcodebase
https://zig.day
https://www.twitch.tv/kristoff_it
0:25 Basics
1:24 Zig Package
4:38 Declaring Zig Modules
6:30 Declaring Executables
11:31 Adding Dependencies
https://github.com/kristoff-it
https://github.com/allyourcodebase
https://zig.day
https://www.twitch.tv/kristoff_it
0:25 Basics
1:24 Zig Package
4:38 Declaring Zig Modules
6:30 Declaring Executables
11:31 Adding Dependencies
Forwarded from Андрей Краевский
наконец то официальный материал про билд систему
Comptime аллокатор от mlugg:
https://zigbin.io/9a46a9
https://zigbin.io/9a46a9
pub const comptime_allocator: Allocator = .{
.ptr = undefined,
.vtable = &.{ .alloc = &comptimeAlloc, .resize = &comptimeResize, .remap = &comptimeRemap, .free = &Allocator.noFree },
};
fn comptimeAlloc(_: *anyopaque, len: usize, alignment: Alignment, ra: usize) ?[*]u8 {
_ = ra;
if (!@inComptime()) @panic("comptimeAlloc called at runtime");
var buf: [len]u8 align(alignment.toByteUnits()) = undefined;
return &buf;
}
fn comptimeResize(_: *anyopaque, mem: []u8, alignment: Alignment, new_len: usize, ra: usize) bool {
_ = alignment;
_ = ra;
if (!@inComptime()) @panic("comptimeResize called at runtime");
return new_len <= mem.len; // allow shrinking in-place
}
fn comptimeRemap(_: *anyopaque, mem: []u8, alignment: Alignment, new_len: usize, ra: usize) ?[*]u8 {
_ = alignment;
_ = ra;
if (!@inComptime()) @panic("comptimeRemap called at runtime");
return if (new_len <= mem.len) mem.ptr else null; // allow shrinking in-place
}
comptime {
var al: std.ArrayListUnmanaged(u32) = .empty;
defer al.deinit(comptime_allocator);
al.appendSlice(comptime_allocator, &.{ 1, 2, 3 }) catch unreachable;
al.appendNTimes(comptime_allocator, 42, 256) catch unreachable;
std.debug.assert(al.items.len == 256 + 3);
std.debug.assert(al.items[0] == 1);
std.debug.assert(al.items[1] == 2);
std.debug.assert(al.items[2] == 3);
for (al.items[3..]) |x| {
std.debug.assert(x == 42);
}
}
const std = @import("std");
const Allocator = std.mem.Allocator;
const Alignment = std.mem.Alignment;