3 ms·
I'm not talking about C++ at all! My entire point is that caching is hard and tightly coupled to the design of the language, and things like typechecking are n
by duped 4y ago
I'm not talking about C++ at all!
My entire point is that caching is hard and tightly coupled to the design of the language, and things like typechecking are not really that slow compared to the other work a compiler has to do. Choosing an in memory representation is not really a secret recipe for performance or utility, designing the way the cache gets updated and what it stores is.
I think the idea of a core language with multiple syntaxes is interesting, but I'd contest that the system to implement it is any faster.
> Everybody involved in the "LSP revolution" would disagree, I think.
I reached this conclusion after writing a language server and researching other language servers. The tide is changing to where the primary compilers for languages are query-oriented compilers like Roslyn that allow for this kind of thing, but they aren't nearly as common as batch compilers so language server authors find themselves writing everything from scratch. Interestingly though, big portions like type checkers can be reused if they have stable input/output IRs because they're not slow (however, compiler authors are loathe to expose those details or make stability guarantees there).