SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Future Tense




                           mozilla

           1


Friday, April 29, 2011
Future Tense

           • “No fate but what we make.” - Sarah Connor, T2




                                                              mozilla

           1


Friday, April 29, 2011
Future Tense

           • “No fate but what we make.” - Sarah Connor, T2


           • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that
             kid in the Terminator movies.” - Finn, Glee




                                                                                      mozilla

           1


Friday, April 29, 2011
Future Tense

           • “No fate but what we make.” - Sarah Connor, T2


           • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that
             kid in the Terminator movies.” - Finn, Glee


           • This talk is about the future, both what it will bring and what we want from it.




                                                                                           mozilla

           1


Friday, April 29, 2011
Future Tense

           • “No fate but what we make.” - Sarah Connor, T2


           • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that
             kid in the Terminator movies.” - Finn, Glee


           • This talk is about the future, both what it will bring and what we want from it.


           • At Mozilla Summit 2010, we launched Rust, a new programming language
             motivated by safety and concurrency for parallel hardware, the “manycore”
             future which is upon us.




                                                                                           mozilla

           1


Friday, April 29, 2011
Future Tense

           • “No fate but what we make.” - Sarah Connor, T2


           • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that
             kid in the Terminator movies.” - Finn, Glee


           • This talk is about the future, both what it will bring and what we want from it.


           • At Mozilla Summit 2010, we launched Rust, a new programming language
             motivated by safety and concurrency for parallel hardware, the “manycore”
             future which is upon us.


           • This talk is a recap of motivation and a status report...

                                                                                           mozilla

           1


Friday, April 29, 2011
Mobile vs. desktop slowdown

           • From “Fast and Parallel Webpage Layout”, Meyerovich & Bodik, WWW2010, this
             chart shows how “the power wall” hurts mobile single-core performance, driving
             mobile to manycore and requiring a parallel browser engine “real soon now”:




                                                                                     mozilla

           2


Friday, April 29, 2011
Data flow in a browser engine

           • Traditionally mostly single-threaded, using C++ as implementation language,
             with threads for image decoding, speculative script prefetching, rendering.




                                                                                      mozilla

           3


Friday, April 29, 2011
Must parallelize every stage to win

           • Even use data-parallel (SIMD) instructions as well... Amdahl’s Law bites.




                                                                                         mozilla

           4


Friday, April 29, 2011
The “pwn2own” problem




                                   mozilla

           5


Friday, April 29, 2011
The “pwn2own” problem

           • Every browser has endless security vulnerabilities due to lack of safety in the
             main implementation language (C++, formerly C -- used for speed not safety).




                                                                                        mozilla

           5


Friday, April 29, 2011
The “pwn2own” problem

           • Every browser has endless security vulnerabilities due to lack of safety in the
             main implementation language (C++, formerly C -- used for speed not safety).


           • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from
             Mozilla on this count. And Chrome has been hacked elsewhere, too.




                                                                                        mozilla

           5


Friday, April 29, 2011
The “pwn2own” problem

           • Every browser has endless security vulnerabilities due to lack of safety in the
             main implementation language (C++, formerly C -- used for speed not safety).


           • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from
             Mozilla on this count. And Chrome has been hacked elsewhere, too.


           • We have millions of lines of C++ in Gecko, both too-often unsafe due to memory
             management bugs, and mostly single-threaded -- so slow on manycore mobile
             devices.




                                                                                        mozilla

           5


Friday, April 29, 2011
The “pwn2own” problem

           • Every browser has endless security vulnerabilities due to lack of safety in the
             main implementation language (C++, formerly C -- used for speed not safety).


           • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from
             Mozilla on this count. And Chrome has been hacked elsewhere, too.


           • We have millions of lines of C++ in Gecko, both too-often unsafe due to memory
             management bugs, and mostly single-threaded -- so slow on manycore mobile
             devices.


           • Adding more threads to utilize multiple cores while fighting security bugs is like
             team-juggling chainsaws to music where the record player has been sped up!


                                                                                         mozilla

           5


Friday, April 29, 2011
Project Servo




                           mozilla

           6


Friday, April 29, 2011
Project Servo
               • A new, safer systems programming language, Rust, instead of C++




                                                                                   mozilla

           6


Friday, April 29, 2011
Project Servo
               • A new, safer systems programming language, Rust, instead of C++


               • Research building parallel browser engine stages in Rust




                                                                                   mozilla

           6


Friday, April 29, 2011
Project Servo
               • A new, safer systems programming language, Rust, instead of C++


               • Research building parallel browser engine stages in Rust


               • Experiment with Andreas Gal’s DOM implemented in JavaScript




                                                                                   mozilla

           6


Friday, April 29, 2011
Project Servo
               • A new, safer systems programming language, Rust, instead of C++


               • Research building parallel browser engine stages in Rust


               • Experiment with Andreas Gal’s DOM implemented in JavaScript


               • For a scalably-faster-on-manycore, much safer Browser from the Future




                                                                                         mozilla

           6


Friday, April 29, 2011
Project Servo
               • A new, safer systems programming language, Rust, instead of C++


               • Research building parallel browser engine stages in Rust


               • Experiment with Andreas Gal’s DOM implemented in JavaScript


               • For a scalably-faster-on-manycore, much safer Browser from the Future


               • Rust is good for Servers and other Software from the Future, too




                                                                                         mozilla

           6


Friday, April 29, 2011
nbody.rs




                         mozilla

           7


Friday, April 29, 2011
Rust performance results (nbody)




                                              mozilla

           8


Friday, April 29, 2011
fannkuchredux.rs




                              mozilla

           9


Friday, April 29, 2011
Rust performance results (fannkuch)




                                                 mozilla

           10


Friday, April 29, 2011
What it all means




                               mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.




                                                                                        mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.


           • The -rust-unsafe versions are competitive with their -gcc and -clang
             counterparts (fannkuch-rust-unsafe actually wins!).




                                                                                        mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.


           • The -rust-unsafe versions are competitive with their -gcc and -clang
             counterparts (fannkuch-rust-unsafe actually wins!).


           • The -rust (safe) versions are currently about twice as slow as the C versions.




                                                                                         mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.


           • The -rust-unsafe versions are competitive with their -gcc and -clang
             counterparts (fannkuch-rust-unsafe actually wins!).


           • The -rust (safe) versions are currently about twice as slow as the C versions.


           • We will reduce the cost of safety with ongoing, serious optimization effort.




                                                                                            mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.


           • The -rust-unsafe versions are competitive with their -gcc and -clang
             counterparts (fannkuch-rust-unsafe actually wins!).


           • The -rust (safe) versions are currently about twice as slow as the C versions.


           • We will reduce the cost of safety with ongoing, serious optimization effort.


           • Rust allows unsafe modules and functions, so we can dial in the remaining cost
             that is not forgiven due to speedups on parallel hardware.


                                                                                            mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.


           • The -rust-unsafe versions are competitive with their -gcc and -clang
             counterparts (fannkuch-rust-unsafe actually wins!).


           • The -rust (safe) versions are currently about twice as slow as the C versions.


           • We will reduce the cost of safety with ongoing, serious optimization effort.


           • Rust allows unsafe modules and functions, so we can dial in the remaining cost
             that is not forgiven due to speedups on parallel hardware.


           • The Servo parallel browser engine project is starting, here and now.
                                                                                            mozilla

           11


Friday, April 29, 2011
mozilla

           12


Friday, April 29, 2011

Mais conteúdo relacionado

Mais procurados

シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門
icchy
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
Timothy Spann
 

Mais procurados (20)

シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門
 
WebIDLを見てみる
WebIDLを見てみるWebIDLを見てみる
WebIDLを見てみる
 
An Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersAn Introduction to Gradle for Java Developers
An Introduction to Gradle for Java Developers
 
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
 
Second Level Cache in JPA Explained
Second Level Cache in JPA ExplainedSecond Level Cache in JPA Explained
Second Level Cache in JPA Explained
 
Cypress Automation Testing Tutorial (Part 1).pdf
Cypress Automation Testing Tutorial (Part 1).pdfCypress Automation Testing Tutorial (Part 1).pdf
Cypress Automation Testing Tutorial (Part 1).pdf
 
ASTERIAxJP1で開発工数を削減
ASTERIAxJP1で開発工数を削減ASTERIAxJP1で開発工数を削減
ASTERIAxJP1で開発工数を削減
 
Async History - javascript
Async History - javascriptAsync History - javascript
Async History - javascript
 
AngularJS Architecture
AngularJS ArchitectureAngularJS Architecture
AngularJS Architecture
 
アジャイルプラクティスは家庭内のコミュニケーションもカイゼンできちゃうのか?
アジャイルプラクティスは家庭内のコミュニケーションもカイゼンできちゃうのか?アジャイルプラクティスは家庭内のコミュニケーションもカイゼンできちゃうのか?
アジャイルプラクティスは家庭内のコミュニケーションもカイゼンできちゃうのか?
 
Angular 2
Angular 2Angular 2
Angular 2
 
golang.tokyo #6 (in Japanese)
golang.tokyo #6 (in Japanese)golang.tokyo #6 (in Japanese)
golang.tokyo #6 (in Japanese)
 
Trees and Hierarchies in SQL
Trees and Hierarchies in SQLTrees and Hierarchies in SQL
Trees and Hierarchies in SQL
 
Code Quality Lightning Talk
Code Quality Lightning TalkCode Quality Lightning Talk
Code Quality Lightning Talk
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
Front-End Testing: Demystified
Front-End Testing: DemystifiedFront-End Testing: Demystified
Front-End Testing: Demystified
 
AES-NI@Sandy Bridge
AES-NI@Sandy BridgeAES-NI@Sandy Bridge
AES-NI@Sandy Bridge
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
 
ASTERIA WARP開発前に知っておくべき10の鉄則(AUG関西支部編)
ASTERIA WARP開発前に知っておくべき10の鉄則(AUG関西支部編)ASTERIA WARP開発前に知っておくべき10の鉄則(AUG関西支部編)
ASTERIA WARP開発前に知っておくべき10の鉄則(AUG関西支部編)
 
Bypassing anti virus using powershell
Bypassing anti virus using powershellBypassing anti virus using powershell
Bypassing anti virus using powershell
 

Destaque

Kalpana Chawla
Kalpana ChawlaKalpana Chawla
Kalpana Chawla
mbvanara
 
B aby
B abyB aby
B aby
Noa02
 
Curriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio SoledadCurriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio Soledad
Rocio Soledad Garcia
 
Sabarasa Videojuegos America Latina
Sabarasa Videojuegos America LatinaSabarasa Videojuegos America Latina
Sabarasa Videojuegos America Latina
Futura Networks
 
Turbine manufacturing process
Turbine manufacturing processTurbine manufacturing process
Turbine manufacturing process
physics101
 
Chemical translocation & molecular fate
Chemical  translocation & molecular fateChemical  translocation & molecular fate
Chemical translocation & molecular fate
Sumer Pankaj
 

Destaque (20)

Facebook F8 2016
Facebook F8 2016Facebook F8 2016
Facebook F8 2016
 
Kalpana Chawla
Kalpana ChawlaKalpana Chawla
Kalpana Chawla
 
Fate And Freewill In Oedipus The King
Fate And Freewill In Oedipus The KingFate And Freewill In Oedipus The King
Fate And Freewill In Oedipus The King
 
Semplicissimo cucito
Semplicissimo cucitoSemplicissimo cucito
Semplicissimo cucito
 
Romeo & juliet themes lesson
Romeo & juliet themes lessonRomeo & juliet themes lesson
Romeo & juliet themes lesson
 
S1
S1S1
S1
 
The State of Marketing - Insights from 2500 Marketers
The State of Marketing - Insights from 2500 MarketersThe State of Marketing - Insights from 2500 Marketers
The State of Marketing - Insights from 2500 Marketers
 
EIA2016 Turin - Mattias Liivak. Payment Localisation
EIA2016 Turin - Mattias Liivak. Payment LocalisationEIA2016 Turin - Mattias Liivak. Payment Localisation
EIA2016 Turin - Mattias Liivak. Payment Localisation
 
Bt freestyle 2500 User Guide from Telephones Online www.telephonesonline.co.uk
Bt freestyle 2500 User Guide from Telephones Online  www.telephonesonline.co.ukBt freestyle 2500 User Guide from Telephones Online  www.telephonesonline.co.uk
Bt freestyle 2500 User Guide from Telephones Online www.telephonesonline.co.uk
 
1216webskbaexp
1216webskbaexp1216webskbaexp
1216webskbaexp
 
Basics of Stock Markets
Basics of Stock MarketsBasics of Stock Markets
Basics of Stock Markets
 
Messenger wars 2: How Facebook climbed back to number 1
Messenger wars 2: How Facebook climbed back to number 1Messenger wars 2: How Facebook climbed back to number 1
Messenger wars 2: How Facebook climbed back to number 1
 
WordPress State of the Word 2012
WordPress State of the Word 2012WordPress State of the Word 2012
WordPress State of the Word 2012
 
VKontakte (ВКонтакте) demographics
VKontakte (ВКонтакте) demographicsVKontakte (ВКонтакте) demographics
VKontakte (ВКонтакте) demographics
 
Escape the fate
Escape the fateEscape the fate
Escape the fate
 
B aby
B abyB aby
B aby
 
Curriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio SoledadCurriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio Soledad
 
Sabarasa Videojuegos America Latina
Sabarasa Videojuegos America LatinaSabarasa Videojuegos America Latina
Sabarasa Videojuegos America Latina
 
Turbine manufacturing process
Turbine manufacturing processTurbine manufacturing process
Turbine manufacturing process
 
Chemical translocation & molecular fate
Chemical  translocation & molecular fateChemical  translocation & molecular fate
Chemical translocation & molecular fate
 

Semelhante a Future Tense

Multi Handset Development - ETE 2010
Multi Handset Development - ETE 2010Multi Handset Development - ETE 2010
Multi Handset Development - ETE 2010
Kevin Griffin
 

Semelhante a Future Tense (20)

Mozilla Research Party Talk
Mozilla Research Party TalkMozilla Research Party Talk
Mozilla Research Party Talk
 
MSR Talk
MSR TalkMSR Talk
MSR Talk
 
ES.next
ES.nextES.next
ES.next
 
Browsers (2011)
Browsers (2011)Browsers (2011)
Browsers (2011)
 
Web Browsers
Web BrowsersWeb Browsers
Web Browsers
 
Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016
 
Google chrome operating system
Google chrome operating systemGoogle chrome operating system
Google chrome operating system
 
Introduction to Rust Programming Language
Introduction to Rust Programming LanguageIntroduction to Rust Programming Language
Introduction to Rust Programming Language
 
Multi Handset Development - ETE 2010
Multi Handset Development - ETE 2010Multi Handset Development - ETE 2010
Multi Handset Development - ETE 2010
 
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
 
Web browser
Web browserWeb browser
Web browser
 
Felczak Pkp 2009
Felczak Pkp 2009Felczak Pkp 2009
Felczak Pkp 2009
 
BROWSERS!
BROWSERS!BROWSERS!
BROWSERS!
 
MozillaPH Rust Users Group Kick Off Meeting
MozillaPH Rust Users Group Kick Off MeetingMozillaPH Rust Users Group Kick Off Meeting
MozillaPH Rust Users Group Kick Off Meeting
 
Python: the secret weapon of Fedora - FLISoL 2015
Python: the secret weapon of Fedora - FLISoL 2015Python: the secret weapon of Fedora - FLISoL 2015
Python: the secret weapon of Fedora - FLISoL 2015
 
Rust 101 (2017 edition)
Rust 101 (2017 edition)Rust 101 (2017 edition)
Rust 101 (2017 edition)
 
Web Browsers
 Web Browsers Web Browsers
Web Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Long Life Software
Long Life SoftwareLong Life Software
Long Life Software
 

Mais de Brendan Eich

Mais de Brendan Eich (20)

Int64
Int64Int64
Int64
 
Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016
 
dotJS 2015
dotJS 2015dotJS 2015
dotJS 2015
 
Extensible Operators and Literals for JavaScript
Extensible Operators and Literals for JavaScriptExtensible Operators and Literals for JavaScript
Extensible Operators and Literals for JavaScript
 
Fluent15
Fluent15Fluent15
Fluent15
 
The Same-Origin Saga
The Same-Origin SagaThe Same-Origin Saga
The Same-Origin Saga
 
Taysom seminar
Taysom seminarTaysom seminar
Taysom seminar
 
Fluent14
Fluent14Fluent14
Fluent14
 
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Value Objects, Full Throttle (to be updated for spring TC39 meetings)Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
 
My dotJS Talk
My dotJS TalkMy dotJS Talk
My dotJS Talk
 
Web futures
Web futuresWeb futures
Web futures
 
JS Responsibilities
JS ResponsibilitiesJS Responsibilities
JS Responsibilities
 
Value objects in JS - an ES7 work in progress
Value objects in JS - an ES7 work in progressValue objects in JS - an ES7 work in progress
Value objects in JS - an ES7 work in progress
 
Splash
SplashSplash
Splash
 
JSLOL
JSLOLJSLOL
JSLOL
 
Capitol js
Capitol jsCapitol js
Capitol js
 
Paren free
Paren freeParen free
Paren free
 
Txjs talk
Txjs talkTxjs talk
Txjs talk
 
Mozilla's NodeConf talk
Mozilla's NodeConf talkMozilla's NodeConf talk
Mozilla's NodeConf talk
 
Proxies are Awesome!
Proxies are Awesome!Proxies are Awesome!
Proxies are Awesome!
 

Future Tense

  • 1. Future Tense mozilla 1 Friday, April 29, 2011
  • 2. Future Tense • “No fate but what we make.” - Sarah Connor, T2 mozilla 1 Friday, April 29, 2011
  • 3. Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee mozilla 1 Friday, April 29, 2011
  • 4. Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee • This talk is about the future, both what it will bring and what we want from it. mozilla 1 Friday, April 29, 2011
  • 5. Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee • This talk is about the future, both what it will bring and what we want from it. • At Mozilla Summit 2010, we launched Rust, a new programming language motivated by safety and concurrency for parallel hardware, the “manycore” future which is upon us. mozilla 1 Friday, April 29, 2011
  • 6. Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee • This talk is about the future, both what it will bring and what we want from it. • At Mozilla Summit 2010, we launched Rust, a new programming language motivated by safety and concurrency for parallel hardware, the “manycore” future which is upon us. • This talk is a recap of motivation and a status report... mozilla 1 Friday, April 29, 2011
  • 7. Mobile vs. desktop slowdown • From “Fast and Parallel Webpage Layout”, Meyerovich & Bodik, WWW2010, this chart shows how “the power wall” hurts mobile single-core performance, driving mobile to manycore and requiring a parallel browser engine “real soon now”: mozilla 2 Friday, April 29, 2011
  • 8. Data flow in a browser engine • Traditionally mostly single-threaded, using C++ as implementation language, with threads for image decoding, speculative script prefetching, rendering. mozilla 3 Friday, April 29, 2011
  • 9. Must parallelize every stage to win • Even use data-parallel (SIMD) instructions as well... Amdahl’s Law bites. mozilla 4 Friday, April 29, 2011
  • 10. The “pwn2own” problem mozilla 5 Friday, April 29, 2011
  • 11. The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). mozilla 5 Friday, April 29, 2011
  • 12. The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from Mozilla on this count. And Chrome has been hacked elsewhere, too. mozilla 5 Friday, April 29, 2011
  • 13. The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from Mozilla on this count. And Chrome has been hacked elsewhere, too. • We have millions of lines of C++ in Gecko, both too-often unsafe due to memory management bugs, and mostly single-threaded -- so slow on manycore mobile devices. mozilla 5 Friday, April 29, 2011
  • 14. The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from Mozilla on this count. And Chrome has been hacked elsewhere, too. • We have millions of lines of C++ in Gecko, both too-often unsafe due to memory management bugs, and mostly single-threaded -- so slow on manycore mobile devices. • Adding more threads to utilize multiple cores while fighting security bugs is like team-juggling chainsaws to music where the record player has been sped up! mozilla 5 Friday, April 29, 2011
  • 15. Project Servo mozilla 6 Friday, April 29, 2011
  • 16. Project Servo • A new, safer systems programming language, Rust, instead of C++ mozilla 6 Friday, April 29, 2011
  • 17. Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust mozilla 6 Friday, April 29, 2011
  • 18. Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust • Experiment with Andreas Gal’s DOM implemented in JavaScript mozilla 6 Friday, April 29, 2011
  • 19. Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust • Experiment with Andreas Gal’s DOM implemented in JavaScript • For a scalably-faster-on-manycore, much safer Browser from the Future mozilla 6 Friday, April 29, 2011
  • 20. Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust • Experiment with Andreas Gal’s DOM implemented in JavaScript • For a scalably-faster-on-manycore, much safer Browser from the Future • Rust is good for Servers and other Software from the Future, too mozilla 6 Friday, April 29, 2011
  • 21. nbody.rs mozilla 7 Friday, April 29, 2011
  • 22. Rust performance results (nbody) mozilla 8 Friday, April 29, 2011
  • 23. fannkuchredux.rs mozilla 9 Friday, April 29, 2011
  • 24. Rust performance results (fannkuch) mozilla 10 Friday, April 29, 2011
  • 25. What it all means mozilla 11 Friday, April 29, 2011
  • 26. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. mozilla 11 Friday, April 29, 2011
  • 27. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). mozilla 11 Friday, April 29, 2011
  • 28. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. mozilla 11 Friday, April 29, 2011
  • 29. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. • We will reduce the cost of safety with ongoing, serious optimization effort. mozilla 11 Friday, April 29, 2011
  • 30. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. • We will reduce the cost of safety with ongoing, serious optimization effort. • Rust allows unsafe modules and functions, so we can dial in the remaining cost that is not forgiven due to speedups on parallel hardware. mozilla 11 Friday, April 29, 2011
  • 31. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. • We will reduce the cost of safety with ongoing, serious optimization effort. • Rust allows unsafe modules and functions, so we can dial in the remaining cost that is not forgiven due to speedups on parallel hardware. • The Servo parallel browser engine project is starting, here and now. mozilla 11 Friday, April 29, 2011
  • 32. mozilla 12 Friday, April 29, 2011