News for hackers. Stuff that matters.

conaclos

Re:Changing How We Develop Ladybird on Friday June 05, 2026 @05:07AM (#48409925)
I lost all trust in the project since the LLM rewrite. This new step is another red flag to me.
Re:VoidZero Is Joining Cloudflare on Thursday June 04, 2026 @12:02PM (#48400590)
Same here. I prefer bet on community-led projects like Node.js, ESbuild and BiomeJS (or Prettier / eslint).
Re:Bijou64: A variable-length integer encoding on Friday May 29, 2026 @01:29PM (#48326400)
This is pretty close to SQLite's varints [0]

[0]: https://www.sqlite.org/src4/doc/1433690d7b/www/varint.wiki

Re:Async Rust never left the MVP state on Wednesday May 06, 2026 @02:12PM (#48039550)
> For now the best option to write code that wants to live in both worlds is sans-io

Thanks for sharing! Reading the articles, it looks at me, it is a kind of manual reimplementation of the state machine generated by async? This also makes the code harder to reason with. I am unsure if it is worth the complexity.

Re:Async Rust never left the MVP state on Tuesday May 05, 2026 @04:14PM (#48027871)
One of the issue I face is a blocking function that takes a generic constrained by a `trait` and its async version takes a generic constrained by an `async trait`.
Re:Async Rust never left the MVP state on Tuesday May 05, 2026 @04:38AM (#48019653)
I recently started working with Rust async. The main issue I am currently facing is code duplication: I have to duplicate every function that I want to support both asynchronous and blocking APIs. This could be great to have a `maybe-async`. I took a look at the available crates to work around this (maybe-async, bisync), but they all have issues or hard limitations.
Re:4-bit floating point FP4 on Saturday April 18, 2026 @05:24PM (#47819647)
There is a relevant Wikipedia page about minifloats [0]

> The smallest possible float size that follows all IEEE principles, including normalized numbers, subnormal numbers, signed zero, signed infinity, and multiple NaN values, is a 4-bit float with 1-bit sign, 2-bit exponent, and 1-bit mantissa.

[0] https://en.wikipedia.org/wiki/Minifloat

Have you tried `firefox --no-remote --profile <path>`?

In my case, I am able to launch several Firefox instances with distinct profiles.

Re:Notes on Switching to Helix from Vim on Friday October 10, 2025 @06:18PM (#45544482)
I tried Helix two years ago, unfortunately the default keymap was a bit frustrating to me. I don't mind changing my habits, however I had difficulty I made sense of the keymap design.

For example, typing `w` select the word. However, typing `2w` select the second word and not two words. To select two words you have to enter in visual mode (`v2w`). To remove two words you thus need to type `v2wd` or `wdwd`. In Vim you can type `d2w`. I miss this composability. In Kakoune (one of the main inspiration of Helix), you can type `2Wd` (`2wd` has the same behavior as Helix).

I was also hoping that the use of Ctrl/Alt modifiers be completely removed. Why not fully embrace modal editing?

Re:The evolution of Lua, continued [pdf] on Wednesday October 08, 2025 @07:20AM (#45514853)
If I remember correctly, TCO is now part of the ECMAScript standard. Safari has implemented it. The issue is that others engines have not because they are concerned about stack unwinding and stacktraces.
Re:A Review of Nim 2: The Good and Bad with Example Code on Monday September 01, 2025 @03:51PM (#45096013)
UFCS and the implicit `result` variable remember me the Eiffel programming language [0].

[0] https://en.wikipedia.org/wiki/Eiffel_(programming_language)

Re:Trying to get error backtraces in Rust libraries right on Saturday August 30, 2025 @07:55AM (#45073874)
The following articles may also be of interest to the audience:

- The definitive guide to error handling in Rust [0]

- Error Handling for Large Rust Projects - Best Practice in GreptimeDB [1]

- Designing error types in Rust [2]

- Modular Errors in Rust [3]

[0]: https://www.howtocodeit.com/articles/the-definitive-guide-to... [1]: https://greptime.com/blogs/2024-05-07-error-rust [2]: https://mmapped.blog/posts/12-rust-error-handling [3]: https://sabrinajewson.org/blog/errors

I was quite excited by the description and then I noted that Bolt heavily relies on double floating point numbers. I am quite disappointed because this doesn't allow me to use Bolt in my context: embedded systems where floating point numbers are rarely supported... So I realized that I misinterpreted `embedded`.
Re:Zig's Lovely Syntax on Sunday August 10, 2025 @07:26PM (#44859337)
I like the idea of repeating the delimiter on every line. However `//` looks like a comment to me. I could simply choose double quote:

    const still_raw =
        "const raw =
        "    "Roses are red
        "    "  Violets are blue,
        "    "Sugar is sweet
        "    "  And so are you.
        "    "
        ";
        "
    ;
This cannot be confused with a string literal because a string literal cannot contain newline feeds.
Re:Requesting Funding for 90s.dev on Wednesday July 30, 2025 @04:28PM (#44739120)
I got a 404. IS the website still online?
Re:Bits 0x02: switching to orion as a browser on Monday July 28, 2025 @05:02AM (#44708803)
Yes, and I think it's unlikely that it will support other platforms in future because it's based on Safari.
Re:He Rewrote Everything in Rust – Then We Got Fired on Tuesday July 22, 2025 @04:11AM (#44644424)
> Rust didn’t fire us. But a Rust rewrite without team buy-in can change who the team even is.

Perhaps the most valuable paragraph of this sad story.

Re:Why Lua Beats MicroPython for Serious Embedded Devs on Sunday July 13, 2025 @01:11PM (#44551863)
It is a RP2040. We plan to eventually upgrade to RP2350B.
Re:Why Lua Beats MicroPython for Serious Embedded Devs on Sunday July 13, 2025 @11:45AM (#44551241)
I am currently working on an embedded system with 264Kb of RAM and 4Mb of flash. Do you think Lua could be used in such limited settings? I am also considering the berry scripting language [0].

[0] https://berry-lang.github.io/

Re:Why Lua Beats MicroPython for Serious Embedded Devs on Sunday July 13, 2025 @11:43AM (#44551223)
Is Sol2 a Lua VM or just a wrapper to the standard Lua VM?
Re:Optimizing a Math Expression Parser in Rust on Thursday July 10, 2025 @07:26AM (#44519768)
I am a bit surprised that the author didn't try to implement a stream parser. This could avoid loading the entire file in memory or relying on OS features like memory-mapped files.
Re:Error handling in Rust on Monday June 30, 2025 @05:38PM (#44428178)
Sure, but it's an additional dependency. I would prefer it if some of this machinery were added to `core`.
Re:Error handling in Rust on Monday June 30, 2025 @05:46AM (#44421308)
Thanks for sharing!

The only thing I disagree with is error wrapping. While I agree that the main error should not expose dependencies, I find it useful to keep a `cause` field that corresponds to the inner error. It's important to trace the origin of an error and have more context about it. By the way, Rust's [Error] trait has a dedicated `cause` method for that!

[Error] https://doc.rust-lang.org/nightly/core/error/trait.Error.htm...

Re:Error handling in Rust on Monday June 30, 2025 @05:21AM (#44421164)
I accept, however this requires to create many types with corresponding implementations (`impl From`, `impl Display`, ...). This is a lot of boilerplate.
Re:Biome v2–Codename: Biotype on Tuesday June 17, 2025 @10:11AM (#44299474)
Hi! Biome core contributor here.

It could be nice to have a more descriptive title like:

    "Biome 2: first type-aware linter that doesn't require TSC"
Some details about this reelase:

- Type-aware lint rules

- Plugins

- Monorepo support

- Revamped, configurable import sorting

- Linter domains

- Bulk suppressions

- Analyzer assist

Our HTML formatter is ready and will be part of the upcoming Biome v2 release.
Re:Parser Combinators Beat Regexes on Thursday April 10, 2025 @05:12AM (#43642148)
I once tried to use parser combinators and I was quite disappointed by the result. I find it harder to read and to handle error than regular recursive descendant parsers.
Re:Pitfalls of Safe Rust on Monday April 07, 2025 @08:48AM (#43610666)
Another limitation I face is the impossibility of using `usize::from(n)` in `const` context.
Re:Pitfalls of Safe Rust on Sunday April 06, 2025 @05:42PM (#43605200)
I find it strange that the article doesn't talk about the alternative to checked arithmetic: explicit Wrapping [0] and Saturating [1] types, also provided as methods on numeric types (e.g. `usize::MAX.saturating_add(1)`).

Regarding `as` casting, I completely agree. I am trying to use safe `From::from` instead. However, this is a bit noisy: `usize::from(n)` vs `n as usize`.

[0] https://doc.rust-lang.org/std/num/struct.Wrapping.html [1] https://doc.rust-lang.org/std/num/struct.Saturating.html

Older »