----- Original Message -----
> On Fri, Jul 13, 2012 at 1:40 AM, Andrew McCreight <
> amccrei...@mozilla.com > wrote:
> Type preserving compilers are pretty great, because you can spot a
> large number of compiler bugs without even running the program
> you've compiled, but due to the very new nature of Rust and the use
> of LLVM as the backend it seems unsuitable for Rust.
> 
> That's not necessarily so ... there has been interesting research,
> which I can't find citations for right now, on retrofitting
> certifying compilation to production compilers. Basically after each
> code transformation pass you compare the before and after code and
> use an inference procedure (possibly guided by breadcrumbs from the
> transformation pass) to generate a proof that the code is equivalent
> or at least preserves the properties you want.

Maybe you are thinking of translation validation [1]?  (Amusingly, even 
CompCert is (or possibly was) a mixture of certified and certifying 
compilation, as it does not attempt to verify register allocation.)

> I still think "make Servo actually work and be fast" >> "worry about
> exploitable bugs in runtimes and JS JIT" >> "worry about bugs in the
> Rust compiler".

Definitely!  It is interesting to ponder how the Servo risk profile will differ 
from the Firefox one.  I think we'll find a larger percentage of security 
critical bugs for Servo in the Rust compiler than we do for Firefox in 
GCC/MSVC, both because the Rust compiler is younger, and because we're leaning 
on the safety guarantees provided by the runtime, but hopefully there will be 
less overall.

Andrew

[1] http://www.eecs.berkeley.edu/~necula/Papers/tv_pldi00.pdf

_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to