Zig - это язык программирования с открытым исходным кодом, разработанный для обеспечения надежности, оптимальности и ясности.
1 ответ

Зиг "перевод с" не переводит основную функцию

Я создал файл C: int main() { return 1; } Я использовал Зиг translate-c опция командной строки для создания файла zig, и я получаю только некоторые объявления глобальных переменных, такие как pub const __GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1; pub cons…
18 апр '18 в 05:50
1 ответ

Как я могу создать 256-битную маску

У меня есть массив uint64_t[4], и мне нужно сгенерировать маску, чтобы массив, если он был 256-битным целым, равнялся (1 << w) - 1, где w переходит от 1 до 256. Лучшее, что я придумал - это безветвление, но оно требует МНОГИХ инструкций. Это в Zig, …
15 апр '19 в 15:21
1 ответ

В каких языках программирования типы рассматриваются как значения?

Язык программирования Zig продвигает концепцию "типы - это значения", которая кажется мне очень мощной концепцией, и мне интересно, какие другие языки программирования поддерживают эту концепцию. Я знаю, что, например, шаблоны C++ могут использоват…
23 июн '19 в 21:04
1 ответ

Ожидаемый тип? Extern fn

Я не знаю ни C, ни Zig. Но я пробую кое-что, и я действительно впечатлен до сих пор. Я пытаюсь запустить веб-сервер в Zig, используя библиотеку C "lwan". Оно работает. Но у меня возникли некоторые проблемы с работой моего обработчика. /mnt/c/www/zig…
22 июн '19 в 21:59
1 ответ

Как включить (msvc) libc при сборке кода c компилятором Zig

Я недавно обнаружил зиг и нахожу его очень интересным. Сейчас я пытаюсь узнать, как использовать zig в качестве кросс-компилятора, и следующая сборка и работает нормально (на Windows) zig cc -Wno-everything src/ctest.c однако когда я использую коман…
27 июн '19 в 16:23
0 ответов

Установить привязку ядра для потока в зигзаг

Каков предлагаемый способ установить привязку ядра к потоку на языке программирования zig? Не могу найти ничего похожего в документах ниже: https://ziglang.org/documentation/master/ https://ziglang.org/documentation/master/std/
26 авг '20 в 12:02
0 ответов

Добавление символов вокруг раздела отладки приводит к утрате размера двоичного файла

Я хотел бы добавить начальный и конечный символы вокруг каждого раздела отладочной информации, чтобы я мог получить к ним доступ из моей программы. Я пробовал такую ​​схему: .debug.info ALIGN(4K) : { DEBUG_INFO_START = .; *(.debug.info) DEBUG_INFO_E…
19 сен '19 в 13:48
1 ответ

Изменение значения в списке массивов в Zig

Вопрос новичка: Я хочу изменить значение, которое существует в списке массивов. Сначала я пытался просто захватить индексированный элемент и напрямую изменить значение его поля. const Foo = struct { const Self = @This(); foo: u8, }; pub fn main() an…
10 апр '20 в 08:08
1 ответ

Генерация типов в зиге (язык зиг)

Можно ли создать comptimeфункция в zig, которая создаст новый тип структуры? Функция получит массив строк и массив типов. Строки - это имена последующих полей структуры.
27 апр '20 в 22:19
1 ответ

Malloc к списку структур в Zig?

Как я могу динамически выделить пространство памяти и получить указатель на список структур в Zig. Как в C: struct Foo* my_array_of_foo = (struct Foo*) malloc(10*sizeof(Foo));
25 апр '20 в 10:39
2 ответа

Текущий способ получения пользовательского ввода в Zig

Я слежу за этим сообщением в блоге о comptime в Zig. Следующая строка больше не компилируется в Zig 0.6.0. const user_input = try io.readLineSlice(buf[0..]); Ниже представлена ​​полная функция: fn ask_user() !i64 { var buf: [10]u8 = undefined; std.d…
26 май '20 в 11:57
1 ответ

Ошибка при добавлении преобразованного u8 (из i8) в ArrayList только в определенной программе

Мне нужно преобразовать номер i8 в u8 (@intCast()), чтобы он был добавлен в ArrayList (мне все равно, как это преобразование будет выполнено, если число отрицательное). Запуск этой программы с zig test intcast.zig он возвращается All 1 tests passed.…
11 июл '20 в 03:22
1 ответ

определение структуры с помощью var вместо const в языке zig

Я сейчас учусь zigязык. Я видел определения структур сconst ключевое слово вроде const X = struct { n: i32, }; Насколько я понимаю, const является своего рода дополнением к var, последний допускает изменения, а первый - нет. Но что означало бы опред…
24 июн '20 в 14:38
1 ответ

Расчет внешнего интерфейса дизайна компилятора в функции main для Clang и Zig

Я начал читать исходный код clang а также zig-lang. К сожалению, исходные коды сложны, и я не могу узнать, где интерфейс этих компиляторов вызывается в основной функции. В clang, более близкое место, которое я нашел, находится здесь, но оно не похож…
21 июн '20 в 08:32
0 ответов

OpenGL Vertex Array Object не может связать Vertex Buffer

Я изучаю OpenGL через https://learnopengl.com/. Из этого сайта и из моих исследований в Интернете при попытке решить эту проблему я узнал, что объекты массива вершин полезны, потому что вы можете связать их сglBindVertexArray, а также Будут установл…
07 май '20 в 03:02
1 ответ

Каков рабочий процесс для внедрения ERTS NIF в Zig?

Каков рабочий процесс для внедрения ERTS NIF в Zig? Есть ли что-то сопоставимое с Rustler для NIF, написанных на Rust?
10 сен '20 в 19:53
2 ответа

почему пользовательские типы в zig должны быть константными?

Если мне нужно объявить структуру в Zig, я должен добавить к ней префикс const const Arith = struct { x: i32, y: i32, fn add(self: *Arith) i32 { return self.x + self.y; } }; test &quot;struct test&quot; { var testArith = Arith{ .x = 9, .y = 9, }; ex…
27 окт '20 в 22:55
1 ответ

Как напечатать строку Unicode в Zig?

Я пытался закодировать строковую структуру Unicode, и хотя стандартная библиотека предоставляет unicode модуль, похоже, он не предоставляет способ распечатать фрагмент u16. Я пробовал это: const std = @import(&quot;std&quot;); const unicode = std.un…
20 ноя '20 в 23:03
1 ответ

Доступ к структурам, возвращаемым по значению из функций C в Zig

Вот код C, который я импортирую в Zig через @cImport. Когда я напрямую создаю struct Point struct в Zig работает должным образом, но когда я возвращаю единицу по значению из getPointметод имеют неверные данные (см. "вывод" ниже). Я что-то не так дел…
02 дек '20 в 23:07
1 ответ

Рассматривает ли компилятор Zig массивы с переменной длиной во время компиляции как возможные массивы нулевой длины?

Я экспериментирую с n-мерными массивами в Zig. const expectEqual = std.testing.expectEqual; fn NdArray(comptime n: comptime_int, comptime shape: [n]comptime_int) type { if (shape.len == 0) { // zero dimensional array, return the scalar type return u…
22 сен '20 в 15:24