Live data from Hacker News

I used Fable to rewrite 65kLoC of Go in Rust. It cost $400

iurii.net

1–10 of 76 posts

Re: I used Fable to rewrite 65kLoC of Go in Rust. It cost $400

#3

Following the recent "Rewriting bun in Rust" I thought to run an experiment which turned out to be success.

How much did the verification cost on top? how did you gate it? was it a Go test suite you ran against the Rust or what? I always wonder how ppl are testing these rewrites, rewriting the tests can also lead to bug. I really wonder how reliable are rewrites like that, a 65k lines you didn't actually read. How did you confirm the semantic equivalence, same behaviour?

Re: I used Fable to rewrite 65kLoC of Go in Rust. It cost $400

#4
post #3

Following the recent "Rewriting bun in Rust" I thought to run an experiment which turned out to be success.

How much did the verification cost on top? how did you gate it? was it a Go test suite you ran against the Rust or what? I always wonder how ppl are testing these rewrites, rewriting the tests can also lead to bug. I really wonder how reliable are rewrites like that, a 65k lines you didn't actually read. How did you confirm the semantic equivalence, same behaviour?

All very good questions.

Agents are actively destroy QA gates in many ways, usually by cheating ("the test is buggy, not my changes" — changes the test), or just rot QA slowly by writing buggy overcomplicated tests

What works for me 10/10 is fuzzing and my own constant usage. For this project specifically (text editor), I asked LLM to create human-like fuzzing session, it sends keystrokes like: "the user is searching for a file, editing, , saves changes".

On top of it, I run https://mutants.rs/ which is kind of tests fuzzing. It flips random switches in the app itself, and if tests are silent - they missed a bug.

The downside of this, is I usually find bugs after 1-2 hours of running. I use local Qwen to babysit these sessions, to make initial investigation, a repro case, and file a ticket.

Re: I used Fable to rewrite 65kLoC of Go in Rust. It cost $400

#5
post #3

Following the recent "Rewriting bun in Rust" I thought to run an experiment which turned out to be success.

How much did the verification cost on top? how did you gate it? was it a Go test suite you ran against the Rust or what? I always wonder how ppl are testing these rewrites, rewriting the tests can also lead to bug. I really wonder how reliable are rewrites like that, a 65k lines you didn't actually read. How did you confirm the semantic equivalence, same behaviour?

Well the author “cannot simply dye my hair blue” so maybe they can’t confirm semantic equivalence or behavior? Poke aside (and unserious intro?) seems like a general and loose question of if the conversion can happen.

*be me over eager

Re: I used Fable to rewrite 65kLoC of Go in Rust. It cost $400

#6
post #3

Following the recent "Rewriting bun in Rust" I thought to run an experiment which turned out to be success.

How much did the verification cost on top? how did you gate it? was it a Go test suite you ran against the Rust or what? I always wonder how ppl are testing these rewrites, rewriting the tests can also lead to bug. I really wonder how reliable are rewrites like that, a 65k lines you didn't actually read. How did you confirm the semantic equivalence, same behaviour?

I realized that I haven't answered the question. These $400 also include the tests. Fable ported "human fuzzing session" (the best bug hunter) from Go to Rust and used it to validate everything else. I used hierarchical state machines, so a lot of my QA gates were encoded into the implementation — impossible states are, well, impossible.

(I ported first 80% practically in one shot, planning and then leaving Fable overnight to orchestrate). Then I added a bunch of features, so at the end I ported more like 150% of the original code, I added tree-sitter, and a bunch of syntaxes highlighters. At the end with all that, price went up to ~$650

Re: I used Fable to rewrite 65kLoC of Go in Rust. It cost $400

#7
post #5
post #3

Earlier quoted context omitted.

How much did the verification cost on top? how did you gate it? was it a Go test suite you ran against the Rust or what? I always wonder how ppl are testing these rewrites, rewriting the tests can also lead to bug. I really wonder how reliable are rewrites like that, a 65k lines you didn't actually read. How did you confirm the semantic equivalence, same behaviour?

Well the author “cannot simply dye my hair blue” so maybe they can’t confirm semantic equivalence or behavior? Poke aside (and unserious intro?) seems like a general and loose question of if the conversion can happen. *be me over eager

I consider a wig. I'm still on a fence with Rust at this point. see comments above

Re: I used Fable to rewrite 65kLoC of Go in Rust. It cost $400

#9
post #8

what did i read? genuinely? its only a few words, and even that had to be AI written. The topic in the title barely was mentioned.

Human-written. I was trying to be short and straight to the point.

LLM-powered rewrites and huge refactors are better done using 1 additional step "convert the code to that represents it best".

The simplest example is, for a CRUD app it can be swagger description. The more complex behaviour exhibit the app, the more raw information should be provided.

Like ontologies, "A is a child of B" model can derive and enforce that "B is a parent of A", and so on.

On top of that, I write that Fable is reasonably cheap if one uses it solely for agent orchestration.

Re: I used Fable to rewrite 65kLoC of Go in Rust. It cost $400

#10

Following the recent "Rewriting bun in Rust" I thought to run an experiment which turned out to be success.

Porting something to a language you don't know doesn't seem very helpful to me. You've locked yourself out of doing useful work except with continued application of more AI. Without the ability to verify it, except with even more AI maybe, you're starting on a slippy slope to slop.

If the experiment was "spend 400 bucks to see if it'll work" then that's awesome, and fun, and a cool use of AI. It's impressive that AI can do that.

If it was to make something useful ... has it?

Post reply on HN