Hacker Newsnew | past | comments | ask | show | jobs | submit | odvcencio's commentslogin

i really appreciated this comment the most because of how much work "somehow" is doing here

ii am trying to not take issue with this comment because im aware of the huge stigma around ai generated code.

i needed this project so i made it for my use case and had to build on top of it. the only way to ensure quality is to read it all line by line.

if you give me code that you yourself have not reviewed i will not review it for you.


the 90x figure is on Go source for apples to apples against CGO bound tree-sitter.

your use case is not one i designed for although yeah maybe the readme has some sections too close. the only external scanner missing atm is norg. now that i know your use case i can probably think of a way to close it


So your benchmarks are primarily just “how fast is go’s c interop” rather than any algorithmic improvement on tree-sitter?

Edit: yep, you are just calling a c function in a loop. So your no-op benchmark is just the time it takes for cgo to function. I would not be able to get any perf benefits from e.g. rust


thank you for the kind words! Very cool project! Very happy you can find some utility in it

well how did it do?

Hard to say. Claude’s very good at writing READMEs. In fact, Copilot often complains about docs that sound like they’re about current capabilities when in fact they’re future plans or just plan aspirational.

Without downloading and testing out your software, how can we know if it’s any good? Why would we do that if it’s obviously vibed? The dilemma.

I’m not at all against vibe coding. I’m just pointing out that having a nice README is trivial. And the burden of proof is on you.


Shouldn't you be able to answer that?

yes and if you clicked the links you would know that i did answer it in the readme.

But how do we know the readme isn't also vibecoded?

> Pure-Go tree-sitter runtime — no CGo, no C toolchain, WASM-ready.

No you didn't. The readme is obvious LLM slop. Em-dash, rule of three, "not x, y". Why should anyone spend effort reading something you couldn't be bothered to write? Why did you post it to HN from a burner account?


I read the README and did not find answers to my questions.

yes basically about 70% of the engineering effort was spent porting the external scanners and ensuring parity with original (C) tree-sitter

206 binary blobs = 15MB, so not crazy but i built for this use case where you can declare the registry of languages you want to load and not have to own all the grammar binaries by default

If all the languages together add up to 15MB that is a game changer for me.

It means the CLI I am working on can ship support for many languages whilst still being a smallish (sub 50mb) download

I shall definitely check it out!


re: up to date grammars, yes i found the official grammars in use by the original tree-sitter library today

yeah the tests live with the implementation code always (Go thing) and the repo root thing is like a preference, main is an acceptable package to put stuff in (Go thing), i see this a lot with smaller projects or library type projects

it is interoperable with git. we like git when its good but attempted to ease the pains in UX somewhat. you can take advantage of got locally but still push it to git remote forges jsut the same. when you pull stuff in this way, got will load the entity history into the git repo ensuring that you can still do got stuff locally (inspect entity histories, etc)

primarily, got is structural VCS intended for concurrent edits of the same file.

it does this via gotreesitter and gts-suite abstractions that enable it to: - have entity-aware diffs - not line by line but function by function - structural blame - attribution resolution for the lifetime of the entity - semver from structure - it can recommend bumps because it knows what is breaking change vs minor vs patch - entity history - because entities are tracked independently, file renames or moves dont affect the entity's history

when gotreesitter cant parse a language, the 3way text merge happens as a fallback. what the structural merge enables is no conflicts unless same entity has conflicting changes


I think I understand the situation.

gah,. sincere apologies for formatting of this post. i ahve been on HN for basically 10 years now without ever having made a post (:

use four spaces " " in front of a line for <pre> formatting

    like "    this"

It's 2 or more spaces, not four

today i learned

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: