On 13 April 2012 18:25, Jakob Ovrum <jakobov...@gmail.com> wrote: > On Friday, 13 April 2012 at 13:08:51 UTC, deadalnix wrote: > >> SDC have a lot of theses, and I proposed a similar stuff for its >> evolution. I think it is easier for SDC than it is for dmd considering the >> codebase of both. >> > > I think we've got the lexer and parser completely separate from > most of the rest of the codebase (like the codegen), due to > repeated requests from people who wanted to use these parts for > IDEs and other tools. > > I've yet to see anyone actually go through with using it though, > possibly because there is no documentation for a lot of it. > Documenting these parts fully into something of a public API and > then putting it online is definitely on the todo list. Perhaps > there would be more motivation to do this rather than work on > something else if someone actually tried using SDC in their > project instead of just talking about it, so it's kind of a > catch-22. > > That said, the parser is currently evolving alongside the > codegen. When we want to start implementing new parts of the > language, we iteratively add it to the parser, hence it's not > complete. It's very easy to work with though and it's mostly a > menial task (although it's kind of fun to produce beautiful > parser errors :P). > > Anyway, for anyone interested, you can find us on Github and > #d.sdc on FreeNode. >
Just out of curiosity, why would anyone write a code gen these days? With projects like LLVM, which can perform great codegen to basically any architecture, you'd be crazy not to use that... Surely 90% of the value of writing your own D compiler would be the unique front end, which may have different design principles (like use as a lib, usable on tools and stuff as discussed here) ? I'm sorry to say, if you write your own codegen, I would never use your compiler. If you use LLVM in the back end, I'll definitely give it a look, then merit will depend entirely on the front end (speed, flexibility, quality of error messages, runtime error detection, etc). I know it's a fun exercise to write a codegen, so from an educational perspective, sure, it's valuable to you as a programmer, but I don't think it helps your project at all.