News for hackers. Stuff that matters.
Re:Rust's 2019 Roadmap by oaiey on Tuesday April 23, 2019 @02:18PM (#19731322)
I happily read that rustc is split into a incremental parsing frontend and a supporting backend. This capability is key in modern compilers and editors. I read about this like 8 years ago in the C# Roslyn compiler project. Roslyn also aimed in supporting IDEs (here the language server) using the compiler frontend.

My question is: are there any compiler which predate Roslyn in this aspect? Anders Heijlsberg said in a video once, that this is modern compiler architecture (compared to the outdated Dragon and Tiger) but did not mention that the Roslyn team invented it.

Re:Rust's 2019 Roadmap by raphlinus on Tuesday April 23, 2019 @02:37PM (#19731465)
I'm not super-expert, but know of some background. I think Rosyln grew very much out of Delphi, and Anders Hejlsberg is the common thread to both. Before that, he did Turbo Pascal, which might have been incremental in some ways (it certainly was very fast).

Another earlier example of successful incremental technology was the Java compiler in Eclipse.

I'm sure there are academic efforts as well, but don't know as much about these.

Re:Rust's 2019 Roadmap by lostmsu on Wednesday April 24, 2019 @02:23AM (#19736024)
I thought the main technology behind Roslyn is some researched or customly engineered parser/semantic analyzer that came out of MSR. The original C# parser was quite typical.
Re:Rust's 2019 Roadmap by pjmlp on Wednesday April 24, 2019 @03:30AM (#19736307)
Phoenix, it was a kind of LLVM (search for "Frameworks for Research in Code Generation and Execution").
Re:Rust's 2019 Roadmap by kibwen on Tuesday April 23, 2019 @02:23PM (#19731365)
Indeed, I recall hearing that Roslyn was an inspiration for the Rust developers in this regard.
Re:Rust's 2019 Roadmap by matklad on Wednesday April 24, 2019 @10:15AM (#19738520)
IntelliJ predates Roslyn. While it’s not a full compiler (doesn’t do codegen), it naturally does all the front-end bits which are required for IDEs.

Note that “incremental parsing” is a nice to have, but is not required for IDEs. What is required are lazy name resolution and lazy type inference.

Re:Rust's 2019 Roadmap by oaiey on Wednesday April 24, 2019 @11:50AM (#19739609)
That Visual Studio also did. That is the reason why Roslyn was financed. Because they did not want to write many parsers for the same stuff.

Well, I think you need incremental compilation of you want to a achieve the performance in the ms range an editor needs.

Re:Rust's 2019 Roadmap by fnord123 on Thursday April 25, 2019 @12:07PM (#19749549)
Is that like GCC having front ends and backends connected by GIMPLE? That was first released in GCC 4.0 from 2005.
Re:Rust's 2019 Roadmap by fxfan on Tuesday April 23, 2019 @02:41PM (#19731502)
look up Microsoft research Phoenix.