DConf 2013 Day 1 Talk 3: Distributed Caching Compiler for D by Robert Schadek

Guillaume Chatelet chatelet.guillaume at gmail.com
Tue May 14 12:57:09 PDT 2013


> On promising consequence of such compiler daemonization I have 
> always had in mind since got familiar with the concept is that 
> you can have convenience of separate compilation system AND 
> speed of single step compilation at the same time, even if no 
> stuff is actually distributed network-wise.

Dicebot, Sönke, how about a vibe.d based compiler ? :P

Compilation stages could be pipelined/distributed through 
localhost or distant url calls (of course it shouldn't go through 
the network stack in case of local calls). We could even make use 
of resource caching to speedup the compilation. Maybe it's a 
crazy idea but I see vibe.d as an excellent framework for a 
parallel compiler (local and distributed). Also it becomes almost 
trivial to distribute over a farm if you see a compilation stage 
as a web resource. Lexing could be streamed to a Parsing url. 
Semantic analysis could be done in parallel and load balanced, 
Linking of course... well... linking is the brutally sequential 
part - nothing fancy here. I'm not familiar enough with vibe.d to 
see if it could work, it's just an idea.

The RestFul model act as an interface and allows for thinking in 
terms of services (or components) and abstracts away the 
execution location as well as the implementation. Each url could 
be seen as a pure function, allowing for caching (memoizing). And 
with no state (restful) : distribution becomes almost free. It's 
a very simplistic view of a compiler and Walter will surely have 
myriads of objections, but I wanted to share my thoughts. This 
kind of infrastructure could pay on massive codebase compilation 
( like at Facebook or Google )

--
Guillaume


More information about the Digitalmars-d-announce mailing list