cake[0] might interest you. Basically transpiles C into C89. [0]: https://github.com/thradams/cake
As I understand it, WASM GC provides a number of low level primitives that are managed by the WASM host runtime, which would theoretically allow languages like Go or Python to slim down how much of their own language…
> anti-Rust sentiment I have not seen much of any anti-Rust sentiment in the community. There's a lot of people in the community who do Rust, like rust, and work on rust projects. If the Zig community has an…
The negative aspects of Electron have little to nothing to do with CSS, and you're only invoking it here to poison the well by association.
> Linux is stupid and sucks. None of this is Linux's fault. I'd argue this is both C's and GNU's fault. The need for a copy of the library, seems to be just a tooling convention. GCC's linker requires it, so others do…
Zig already has an Allocator interface that gets passed around, and the convention is that libraries don't select an Allocator. Only provide APIs that accept allocators. If there's a certain process that works best with…
Breaking changes is just another Tuesday for Zig.
Zig on Linux already directly interfaces with syscalls,[0] unless your library or application directly links libc. [0]: https://ziglang.org/documentation/master/std/#std.os.linux
In Zig, the main function can return either a u8 or void (which always returns 0) or it can return an error union !void, where if you allow an error to bubble up to main, it'll print an error trace and return 1.
> What prevents anyone from dedicating a Zig memory allocator to the job (and all of its subtasks), and simply freeing the entire allocator at the end of the job? No baby-sitting needed. Given the whole ecosystem is…
Yes. In fact, Aro is already in the main Zig compiler's repo, although currently I don't think it actually does any compilation of C (unless you explicitly disable LLVM) and is mostly used for Zig's "translate-c"…
> Is it still so after ditching LLVM? Zig hasn't ditched LLVM, nor does it really plan to. What's planned is for the main Zig executable to not directly depend on LLVM, that way contributors to the compiler can still…
Yeah, LLVM is here to stay for Zig. The plan is to have a custom backend for fast Debug builds for use during development, while emitting LLVM bitcode for release builds that can then be fed to LLVM. Not linking to LLVM…
Does an ecosystem designed with custom allocators (including gc) in mind not count for anything?
You can always use a garbage collecting allocator with Zig, if you're that paranoid anout it.
This is only still at the proposal stage. The Github issue is mostly for posting usecases for and against, etc… It's not "Accepted".
Zig's C/C++ compiler is just clang, but with header files for most major platforms included, and sane defaults, so there's no hassle getting it it to cross-compile. Some companies have been using Zig solely for an…
With Zig, you just write something like: const c = @cImport({ @cDefine("SOME_MACRO", "1"); @cInclude("raylib.h"); }); Which translates the header files directly into Zig and allows you to call into them under whatever…
> Microsoft's .NET There's your problem. Sure, .NET is technically cross-platform, but that's a relatively recent development, and WASM has runtimes that let it run in most environments, even microcontrollers. Also,…
Last I checked, the GC primitives in WASM are rather low level, and are more for building a GC system on top of, rather than relying on it to be your whole GC.
"self-hosted compiler" in this case means moving all the non-LLVM code (which was previously in C++) to Zig itself.
See the previous paragraph, describing things that "could go wrong."
I'd been wanting to see this, preferably with JS being optional, and just allowing direct DOM access. I initially thought this was what Azul was, but it's only just using Servo's WebRender compositor, and rolls its own…
As far as I understand, it's more geared towards embedded systems, game ui, and gui icons. Places where a full SVG renderer is absolutely overkill. I think they see the tooling being used to create SVGs as usual, but…
Its simpler format should make it faster to parse & decode, at least. Whether that might affect render times is likely to depend on the renderer itself.
cake[0] might interest you. Basically transpiles C into C89. [0]: https://github.com/thradams/cake
As I understand it, WASM GC provides a number of low level primitives that are managed by the WASM host runtime, which would theoretically allow languages like Go or Python to slim down how much of their own language…
> anti-Rust sentiment I have not seen much of any anti-Rust sentiment in the community. There's a lot of people in the community who do Rust, like rust, and work on rust projects. If the Zig community has an…
The negative aspects of Electron have little to nothing to do with CSS, and you're only invoking it here to poison the well by association.
> Linux is stupid and sucks. None of this is Linux's fault. I'd argue this is both C's and GNU's fault. The need for a copy of the library, seems to be just a tooling convention. GCC's linker requires it, so others do…
Zig already has an Allocator interface that gets passed around, and the convention is that libraries don't select an Allocator. Only provide APIs that accept allocators. If there's a certain process that works best with…
Breaking changes is just another Tuesday for Zig.
Zig on Linux already directly interfaces with syscalls,[0] unless your library or application directly links libc. [0]: https://ziglang.org/documentation/master/std/#std.os.linux
In Zig, the main function can return either a u8 or void (which always returns 0) or it can return an error union !void, where if you allow an error to bubble up to main, it'll print an error trace and return 1.
> What prevents anyone from dedicating a Zig memory allocator to the job (and all of its subtasks), and simply freeing the entire allocator at the end of the job? No baby-sitting needed. Given the whole ecosystem is…
Yes. In fact, Aro is already in the main Zig compiler's repo, although currently I don't think it actually does any compilation of C (unless you explicitly disable LLVM) and is mostly used for Zig's "translate-c"…
> Is it still so after ditching LLVM? Zig hasn't ditched LLVM, nor does it really plan to. What's planned is for the main Zig executable to not directly depend on LLVM, that way contributors to the compiler can still…
Yeah, LLVM is here to stay for Zig. The plan is to have a custom backend for fast Debug builds for use during development, while emitting LLVM bitcode for release builds that can then be fed to LLVM. Not linking to LLVM…
Does an ecosystem designed with custom allocators (including gc) in mind not count for anything?
You can always use a garbage collecting allocator with Zig, if you're that paranoid anout it.
This is only still at the proposal stage. The Github issue is mostly for posting usecases for and against, etc… It's not "Accepted".
Zig's C/C++ compiler is just clang, but with header files for most major platforms included, and sane defaults, so there's no hassle getting it it to cross-compile. Some companies have been using Zig solely for an…
With Zig, you just write something like: const c = @cImport({ @cDefine("SOME_MACRO", "1"); @cInclude("raylib.h"); }); Which translates the header files directly into Zig and allows you to call into them under whatever…
> Microsoft's .NET There's your problem. Sure, .NET is technically cross-platform, but that's a relatively recent development, and WASM has runtimes that let it run in most environments, even microcontrollers. Also,…
Last I checked, the GC primitives in WASM are rather low level, and are more for building a GC system on top of, rather than relying on it to be your whole GC.
"self-hosted compiler" in this case means moving all the non-LLVM code (which was previously in C++) to Zig itself.
See the previous paragraph, describing things that "could go wrong."
I'd been wanting to see this, preferably with JS being optional, and just allowing direct DOM access. I initially thought this was what Azul was, but it's only just using Servo's WebRender compositor, and rolls its own…
As far as I understand, it's more geared towards embedded systems, game ui, and gui icons. Places where a full SVG renderer is absolutely overkill. I think they see the tooling being used to create SVGs as usual, but…
Its simpler format should make it faster to parse & decode, at least. Whether that might affect render times is likely to depend on the renderer itself.