Hacker News new | past | comments | ask | show | jobs | submit login

What's your angle?



Normalizing source code, storing it as annotated ASTs. Designing a structure editor that is actually usable for real code. Applying precise version control to those ASTs' nodes.

Some features:

- Optional GC with per-type granularity

- Trying to wedge uniqueness[1] into the type system too

- Can compile statically, extremely convenient C FFI

- Codifying the environment/context that a function wants/needs. E.g. a function "void render3DScene(void)" might spec its env requirements as {OpenGLContext, NonBlocking, SceneGraphState}. Similar to state monads, but intuitive, composable, and not anal.

[1] http://en.wikipedia.org/wiki/Uniqueness_type


Versioning ASTs -- very interesting. Are you documenting the development anywhere? I'd love to hear more.

I've been quite fascinated by ASTs (and verification thereof) ever since poking around Python's approach to it.


Well, there isn't really a body of code to version control yet, as the AST forms still aren't quite finished, and so all the ASTs will have to be generated from text code (yes, Python) until the language is properly bootstrapped.

So the versioning is still vapor. Thing is, once you've done the structures correctly (i.e. copied git) the versioning just falls right out. The whole project really started off as a logical extrapolation of git's data structures.

I don't have a dev log at all, sorry. It would be good to get my insights down on paper.


Versioning AST's has been on my mind for some time as well, I got interested it as a way to store source-code in a coding-style-neutral way (check it in & out with whatever coding style you're used to), and to be able to categorize check-ins based on the type of changes to the code (only comments, moved code, variable renames, etc).

Probably you already know about it, but have a look at papers aboht the tree edit/tree distance problem:

http://scholar.google.nl/scholar?q=tree+edit+problem&hl=...

It's exactly what you would need to store versioned trees such as AST's.


I´m about dreaming such a language for years. But I already have a forever project so I never really did anything about it :/ Got anything online? I´d love to watch this project.



All this sounds very interesting and promising. Good luck! :)




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: