HackerTrans
TopNewTrendsCommentsPastAskShowJobs

ifreund

no profile record

Submissions

How Austral’s Linear Type Checker Works

borretti.me
2 points·by ifreund·قبل 3 سنوات·0 comments

The First Zig Website Redesign

kristoff.it
2 points·by ifreund·قبل 6 سنوات·0 comments

comments

ifreund
·قبل 3 سنوات·discuss
(plz read the article, pkgconf is discussed)
ifreund
·قبل 4 سنوات·discuss
Maybe try opening the PDF instead of the PNG, the PNG images of text look off to me as well but the font rendering in the PDF looks fine.
ifreund
·قبل 4 سنوات·discuss
comptime is absolutely the biggest difference, in Zig you'll find high quality, performant generic hash map implementations in the standard library. In hare there are no generics and you are encouraged to write your own hash maps as needed: https://harelang.org/blog/2021-03-26-high-level-data-structu...
ifreund
·قبل 4 سنوات·discuss
For example:

zig cc -target x86_64-linux-gnu.2.28
ifreund
·قبل 5 سنوات·discuss
> it actually builds a stub program and runs it in qemu for your target arch

That's not at all how the implementation works, the zig compiler does not depend on qemu. The comptime evaluation works much more like evaluating an interpreted language such as python.
ifreund
·قبل 5 سنوات·discuss
From that spamhaus link .xyz has a lower bad percentage (4.4%) than .com (5.1%) and .net (10.5%).
ifreund
·قبل 5 سنوات·discuss
> Andrew: In release fast mode, which is unsafe, you will get actual undefined behavior. So, you might crash or you might get overflow. You might go down to zero or you might run an unrelated function.

Are you perhaps confusing this with statements made about the debug and release safe build modes?
ifreund
·قبل 5 سنوات·discuss
This comment is a perfect example of what Andrew was talking about here:

> Andrew: It’s funny how it just kind of changes course as the language gets taken more and more seriously. And now, all the comments are even starting to shift to kind of like the philosophy of memory safety and whether Zig is immoral.

I'd suggest you go listen to the podcast or at least read the "Zig Is Immoral and Unsafe" section of the transcript as well as the following one.
ifreund
·قبل 5 سنوات·discuss
This person has been for many months now: https://www.youtube.com/watch?v=124wdTckHNY

We hope to be using TigerBeetle which is written in zig in production in 2022: https://github.com/coilhq/tigerbeetle
ifreund
·قبل 5 سنوات·discuss
The fact that the author was able to find success with Zig so quickly speaks not only to the author's abilities but to the simplicity of Zig. Learning enough C++ or Rust to be productive in the same amount of time would be a much greater challenge.
ifreund
·قبل 5 سنوات·discuss
zig's standard library `std.fmt` functions support named arguments as well:

  var tuple_params = html.create("{[foo]} ... {[bar]} ... {[observable]}", .{
    .foo = a,
    .bar = b+c,
    .observable = observable,
  });
It's verbose and explicit to be sure, but quite readable IMO.
ifreund
·قبل 5 سنوات·discuss
This is due to zig enabling clangs UBSAN by default in unoptimized builds. This can be disabled with `-fno-sanitize=undefined` or by enabling optimizations with `-O2` or `-O3`.

https://github.com/ziglang/zig/issues/4830#issuecomment-6054...
ifreund
·قبل 5 سنوات·discuss
The zig standard library also has a ComptimeStringMap type for this use case which is used by the self hosted tokenizer for example.

https://github.com/ziglang/zig/blob/master/lib/std/comptime_...
ifreund
·قبل 5 سنوات·discuss
The implementation of the pinned keyword proposed here should fix most if not all @fieldParentPtr() footguns https://github.com/ziglang/zig/issues/7769
ifreund
·قبل 6 سنوات·discuss
Compile times of the stage1 zig compiler may seem fast compared to e.g. rust or C++ but they are slow compared to what the WIP stage2 compiler can do :)
ifreund
·قبل 6 سنوات·discuss
You're totally right that at least 90% of the infrastructure is there. Andrew's been threatening to implement hot code swapping in a live stream but has been busy with other tasks it seems.
ifreund
·قبل 6 سنوات·discuss
It already does, dynamic linking is orthogonal to @import() semantics.
ifreund
·قبل 6 سنوات·discuss
Incremental debug builds will of course not be reproducible. Release builds will be.
ifreund
·قبل 6 سنوات·discuss
Why nest them? Wayland already has multi-seat.
ifreund
·قبل 6 سنوات·discuss
Here's one example: https://github.com/ziglang/zig/pull/2701