Live data from Hacker News

Show HN: I ported Tree-sitter to Go

github.com

11–20 of 116 posts

Re: Show HN: I ported Tree-sitter to Go

#11
post #8

That is very very interesting. I work on a similar project https://replicated.wiki/blog/partII.html I use CRDT merge though, cause 3-way metadata-less merges only provide very incremental improvements over e.g. git+mergiraf. How do you see got's main improvement over git?

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

Re: Show HN: I ported Tree-sitter to Go

#12
post #3

Wouldn't `got` be confused with OpenBSD's Got: https://gameoftrees.org/index.html

oh wow! i really thought i was being too clever but i shouldve assumed nothing new under the sun. well im taking name suggestions now!

Well, find and sed have modern "fd" and "sd" alternatives. Naming it "gt" allows you to claim that your version save 33% compared to typing "git".

Re: Show HN: I ported Tree-sitter to Go

#13
post #9

How about making 'got' compatible with git repos like jujutsu? It would be a lot easier to try out.

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)

Re: Show HN: I ported Tree-sitter to Go

#14
post #7

Earlier quoted context omitted.

oh wow! i really thought i was being too clever but i shouldve assumed nothing new under the sun. well im taking name suggestions now!

YAGOT (Yet Another GOT)

Probably taken already, better use YAGOT-NG (Next Generation) just to be safe.

Re: Show HN: I ported Tree-sitter to Go

#16
post #8

That is very very interesting. I work on a similar project https://replicated.wiki/blog/partII.html I use CRDT merge though, cause 3-way metadata-less merges only provide very incremental improvements over e.g. git+mergiraf. How do you see got's main improvement over git?

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 h…

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

Re: Show HN: I ported Tree-sitter to Go

#17
post #8

That is very very interesting. I work on a similar project https://replicated.wiki/blog/partII.html I use CRDT merge though, cause 3-way metadata-less merges only provide very incremental improvements over e.g. git+mergiraf. How do you see got's main improvement over git?

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 h…

I think I understand the situation.

Re: Show HN: I ported Tree-sitter to Go

#18

Is it a go-ism that source for implementation and test code lives in the root of the repo or is this an LLM thing?

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

Re: Show HN: I ported Tree-sitter to Go

#19

Earlier quoted context omitted.

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 h…

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
 formatting

    like "    this"

Re: Show HN: I ported Tree-sitter to Go

#20
Interesting. I have a similar usecase but intended to use CGo tree-sitter with Zig

Are these pretty up-to-date grammars? I'm awfully tempted to switch to your project

How large are your binaries getting? I was concerned about the size of some of the grammars

Post reply on HN