RFTW

347 posts

RFTW banner
RFTW

RFTW

@ZH1YGD

Katılım Ağustos 2015
35 Takip Edilen6 Takipçiler
RFTW
RFTW@ZH1YGD·
@lcamtuf Like it or not, the rewrites in Rust are only in the starting phase. The entire Linux kernel will end up rewritten in Rust.
English
0
0
2
2K
lcamtuf
lcamtuf@lcamtuf·
The coreutils Rust rewrite story is pretty funny. Coreutils are tools like rm, mv, mkdir, etc. Unlike binutils, this isn't a fertile ground for memory safety bugs. But, the rewrite was completed, and in the spirit of progress, Canonical decided to switch. 🡇
English
33
57
892
131.4K
RFTW
RFTW@ZH1YGD·
@bloeys @valigo the macro will operate before the code is even sent to the compiler. It is something like pre-comptime :) Anyways, I appreciate the information and the explanations. Thanks.
English
0
0
1
12
RFTW
RFTW@ZH1YGD·
@bloeys @valigo thanks a lot. It is similar, but the semantics are a bit different in Rust. You example, in Rust could be expressed as below (non idiomatic rust though) and would at the call site one can control if it will be compiled or not (as I understand it). In my original example 1/2
RFTW tweet media
English
1
0
0
14
Valentin Ignatev
Valentin Ignatev@valigo·
I know Jai isn't public so noone but 1.5 thousand people in the world can adequately critique it, but on Twitter the main discourse is "my monitor can't display control_message_header, so he should have named it cmsghdr"
English
17
0
153
10.8K
RFTW
RFTW@ZH1YGD·
@Feoramund I asked you a couple of days ago, if you will continue to use Odin. Unfortunately your older streams are lost and I can't watch them. It would be very interesting if you could post something about it (at least to me).
English
0
0
0
9
Feoramund
Feoramund@Feoramund·
I cannot imagine the world in which I do not read the assembly output of the various compilers I use, both with and without optimizations. It is needed for debugging, for learning, and it is the shape most close to the truth of what the computer is doing.
English
1
0
7
329
Ben Dicken
Ben Dicken@BenjDicken·
Also this is proving to be a nice coding + learning + agent setup. Ghostty with two panes: nvim on one side, cursor-agent on the other. Zigs a new language to me, and can ask questions about functionality as I go.
Ben Dicken tweet media
English
1
0
16
1.4K
Ben Dicken
Ben Dicken@BenjDicken·
ZIG IS SO COOL I've been learning about Zig's memory allocators, specifically ArenaAllocator are amazing. Also love the simplicity of `defer` for guaranteeing code execution on function /scope end. Going to stream on Zig + Philosophy of Software Design tomorrow 10am.
Ben Dicken tweet media
English
20
10
332
14.1K
RFTW
RFTW@ZH1YGD·
@bloeys @valigo Interesting. Can you create jai macro that defines two alternatives based on some configuration? For example: when unstable=true, the second branch gets compiled, otherwise the first.
RFTW tweet media
English
1
0
0
40
bloeys
bloeys@bloeys·
@ZH1YGD @valigo Jai macros are very powerful, and very simple to use. For error-heavy codepaths I usually have a 2-3 line macro that does error handling. My code becomes like: ```jai ok, result := something_that_fails(); maybe_return(); ```
English
2
0
2
41
RFTW
RFTW@ZH1YGD·
@antirez Are the array elements pointers to individual texts or something else?
English
0
0
0
36
antirez
antirez@antirez·
ARGREP was the *last* command I added to the specification. I realized that the Array type was perfect to store text files only very later during the development :)
English
2
0
9
1.6K
antirez
antirez@antirez·
One thing to understand about the new Array type of Redis, and the support of ARGREP, is that you can store, in Redis keys, different markdown documents (skills) that are collectively used and updated by a multitude of remote agents.
English
2
10
100
8.4K
RFTW
RFTW@ZH1YGD·
@valigo Go is not my main language, but I was thinking that the usual error handling pattern is the most idiomatic way to write Go. lol
English
0
0
0
288
Valentin Ignatev
Valentin Ignatev@valigo·
@ZH1YGD Think why it becomes verbose? Why do you have so many codepaths that have failure state in them? Could you improve them by handling errors earlier? Can you collapse error paths? Usually, in my experience, having a lot of verbose error handling everywhere is a signal to action :)
English
1
0
4
331
RFTW
RFTW@ZH1YGD·
@valigo I understand what you mean
English
0
0
2
45
Valentin Ignatev
Valentin Ignatev@valigo·
@ZH1YGD It boils down to intellectual masturbation vs field reality. You can add a bunch of fancy things to any programming language, but the best practice is to handle errors as early as you can, and as rigorous as you can. And most fancy PLT stuff favors passing it up for someone else
English
1
0
2
93
RFTW
RFTW@ZH1YGD·
@valigo how to think about it. In Go my code becomes annoyingly verbose very soon. But Odin is absolutely lovely to use, so :)
English
1
0
0
355
RFTW
RFTW@ZH1YGD·
@valigo Interesting. I will check it out. What makes me wonder is that someone who is an expert in the language, compiler etc area, absolutely hates error handling in Go. Now I Odin and Jai use the same pattern. I am spoiled by Rust in terms of error handling and don't know 1/2
English
2
0
0
449
RFTW
RFTW@ZH1YGD·
@valigo Thanks a lot. How does error handling work in Jai?
English
1
0
0
503
Valentin Ignatev
Valentin Ignatev@valigo·
Both are system's programming languages. Both use similar variable declaration syntax. Both have _some_ similar semantics, but I'd say that's where similarities end. E.g. Jai has the most advanced metaprogramming and compile-time capabilities in the world (definitely among staticly-typed compiled languages, and maybe second only to LISPs), while Odin is explicitly very light on these things, because Bill is notorious LISP hater.
English
1
0
9
967
RFTW
RFTW@ZH1YGD·
@esrtweet To give you an additional example. If you compile Emacs 30.x with the same flags as CachyOs uses, it might become unstable.
English
0
0
0
265
Eric S. Raymond
Eric S. Raymond@esrtweet·
More thoughts as Eric wanders through the wilderness of possible next Linux distributions... My core criterion has strengthened to "rolling-release, *and* must have a convincing story about rollback tools". This means, at minimum, that package installations need to automatically create restorable system states. I also want broad repository coverage, so I don't have to do a lot of downloading and compiling. This steers me away from several niche distributions that are technically interesting but have communities too small to generate a broad range of installable packages. I have some other criteria as well, which will become apparent as you read this list of updates. CachyOS with Snapper integration into the package manager: still the top contender. To displace it, anything else needs to have at least as convincing a story about easy rollback. EndeavourOS: can also be Snapper enabled. Probably okay, but CachyOS seems to have a larger and more vigorous community, and that does matter. Omarchy: It's clever, it's doing a good thing for new Linux users, it has a strong rollback story, but. It's very opinionated, and I don't need DHH to have good taste for me, I can manage that for myself. By the time I got done customizing it, the value he added would probably be gone. So, no advantage over a friendly but less opinionated Arch reskin like CachyOS. Vanilla Arch: now has an installation TUI, so not the ridiculous pain in the ass to set up that it used to be. Could be configured with the package installer calling snapper, yes. But if I'm going to install Arch, I don't see any reason not to use the work other people have done on making Arch a better out-of-the-box experience. Which redirects me to CachyOS, EndevourOS, and Omarchy. Gentoo is out. It doesn't have a convincing rollback story. Also, I do not welcome long compile times - especially since Rust is becoming more popular and the Rust compiler is painfully slow. Void Linux looks really interesting, technically, and has a good rollback story. The design of its package manager looks very thoughtful. But immature Cosmic Desktop integration is a crash landing, and I'm concerned about its repository breadth. Regretfully, no. Debian, and the Debian derivatives such as Ubuntu and Mint and Pop!_OS, are out because I really do want rolling-release. If I hadn't decided that, I'd just stick with Pop!_OS, which has overall been pretty good to me. NixOS might be back in contention if (as some on X allege) the gay race communists got fired late last year and have fucked off to ruin something else. Possibly the project might recover. I am investigating this. Alas, Guix is still out. Narrow repositories and an extremely purist culture leading to annoyingly limited hardware support. I'm told people will scream at you if you even mention the distribution channels for non-free software. Fedora: only semi-rolling. No integrated rollback tools. Nope. OpenSUSE Tumbleweed: possible. I had Grok compare it head to head with Cachy OS and they look very similar with respect to my criteria, except that CachyOS probably has much broader repository coverage. AUR is a huge advantage that way for anything Arch-based. I'm sure I've missed some possibilities, and I'm sure people will tell me about them in the comments.
English
70
3
175
7.3K
RFTW
RFTW@ZH1YGD·
@esrtweet OpenSUSE is the best for your criteria. Example of package not available on OS. OpenSUSE does not include ghostty because it depends heavily on a specific older version of Zig.
English
1
0
0
321
RFTW
RFTW@ZH1YGD·
If you want to pick up Zig, that's an outstandingly good introduction. It is also auto-dabbed to english youtu.be/MMtvGA1YhW4?si…
YouTube video
YouTube
English
0
0
0
94
RFTW retweetledi
Grady Booch
Grady Booch@Grady_Booch·
Thoughts and prayers.
Grady Booch tweet media
English
159
211
2.2K
1.6M
RFTW
RFTW@ZH1YGD·
@waozixyz Crazy idea: Implement something like Emacs magit in acme.
English
1
0
2
22
Waozi (哇子)
Waozi (哇子)@waozixyz·
a few more days and i might be switching to acme permanently. I absolutely love that i can type anywhere, select the command and execute it with a middle click. so convenient
Waozi (哇子) tweet media
English
2
0
10
170