<commit_before><!doctype html>
<html lang="en">

  <head>
    <meta charset="utf-8">

    <title>Fast C++ on the Web using Emscripten and asm.js</title>

    <meta name="description" content="Big Web App? Compile It!">
    <meta name="author" content="<NAME>">

    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />

    <link rel="stylesheet" href="css/reveal.min.css">
    <link rel="stylesheet" href="css/theme/default.css" id="theme">

    <!-- For syntax highlighting -->
    <link rel="stylesheet" href="lib/css/zenburn.css">

    <!-- If the query includes 'print-pdf', use the PDF print sheet -->
    <script>
      document.write( '<link rel="stylesheet" href="css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
    </script>

    <!--[if lt IE 9]>
    <script src="lib/js/html5shiv.js"></script>
    <![endif]-->

    <style type="text/css">
      b {
        color: #f85;
      }
    </style>

  </head>

  <body>

    <div class="reveal">

      <!-- Any section element inside of this container is displayed as a slide -->
      <div class="slides">

        <section>
          <h1><div style="color: #f85">Emscripten<br>and asm.js</div></h1>
          <h2 style="color: #fda">Mozilla Research Party</h2>
          <h3><NAME> - Mozilla</h3>
        </section>

        <section>
          <h2>Emscripten</h2>
          <p><b>Emscripten</b> is a compiler from C/C++ to JavaScript</p>
          <div style="height: 0.66em"></div>
          <hr>
          <p><b style="color: #f85">C/C++</b>&nbsp&nbsp<b style="color: #fff">=></b>&nbsp&nbsp<b style="color: #7af">LLVM</b>&nbsp&nbsp<b style="color: #fff">=></b>&nbsp&nbsp<b style="color: #8f5"><a href="http://emscripten.org">Emscripten</a></b>&nbsp&nbsp<b style="color: #fff">=></b>&nbsp&nbsp<b style="color: #f58">JavaScript</b></p>
          <hr>
        </section>

        <section>
          <h2>Why is this useful?</h2>
        </section>

        <section>
          <h2>JavaScript is Everywhere</h2>
          <p>JavaScript is the only <b>standards-based</b> language in all web browsers</p>
        </section>

        <section>
          <h2>Reuse existing code</h2>
          <p><b>Automatically</b> convert to JavaScript, no need for time-consuming manual rewrites</p>
        </section>

        <section>
          <h2>Why is this cool?</h2>
        </section>

        <section>
          <h2>JavaScript is an odd target</h2>
          <p>No <b>goto</b> statements, so invented the <b>Relooper</b> algorithm</p>
          <p>Many more interesting optimizations still to be done</p>
        </section>

        <section>
          <h2>Useful for things like games</h2>
          <p><b>Even AAA games!</b> We announced last week that we worked with Epic to port their <b>Unreal Engine 3</b> to HTML5</p>
          <hr>
          <p><iframe width="640" height="360" src="http://www.youtube.com/embed/XsyogXtyU9o?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
          <hr>
        </section>

        <section>
          <h2>AAA Games? Isn't JavaScript slow?</h2>
          <p><b>Modern JavaScript VMs</b> are quite speedy already, but compiled code can be even <b>faster</b> than handwritten JavaScript (!)</p>
          <p class="fragment">What? How? Compiling into JavaScript still produces... <b>JavaScript</b>, right?</p>
        </section>

        <section>
          <h2>asm.js</h2>
          <hr>
          <p><b style="color: #fda">asm.js is an extraordinarily optimizable,<br>low-level subset of JavaScript</b></p>
          <hr>
          <p>A <b>type system</b> for compiled code in JavaScript</p>
          <p class="fragment">Makes it easy for JavaScript VMs to <b>detect types</b> and ensures they do not change unexpectedly</p>
        </section>

        <section>
          <h2>Benchmarks</h2>
          <img width="1122" height="453" src="macro4b.png">
        </section>

        <section>
          <h2>Seeing is believing</h2>
          <p><iframe width="800" height="800" src="ammo/ammo.html"></iframe></p>
        </section>

        <section>
          <h2>That's it!</h2>
        </section>
      </div>

    </div>

    <script src="lib/js/head.min.js"></script>
    <script src="js/reveal.min.js"></script>

    <script>

      // Full list of configuration options available here:
      // https://github.com/hakimel/reveal.js#configuration
      Reveal.initialize({
        controls: true,
        progress: true,
        history: true,
        center: true,

        theme: 'default', //Reveal.getQueryHash().theme, // available themes are in /css/theme
        transition: Reveal.getQueryHash().transition || 'fade', // default/cube/page/concave/zoom/linear/fade/none

        // Optional libraries used to extend on reveal.js
        dependencies: [
          { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
          { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },

          // { src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } }
        ]
      });

    </script>

  </body>
</html>
<commit_msg>links<commit_after><!doctype html>
<html lang="en">

  <head>
    <meta charset="utf-8">

    <title>Fast C++ on the Web using Emscripten and asm.js</title>

    <meta name="description" content="Big Web App? Compile It!">
    <meta name="author" content="<NAME>">

    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />

    <link rel="stylesheet" href="css/reveal.min.css">
    <link rel="stylesheet" href="css/theme/default.css" id="theme">

    <!-- For syntax highlighting -->
    <link rel="stylesheet" href="lib/css/zenburn.css">

    <!-- If the query includes 'print-pdf', use the PDF print sheet -->
    <script>
      document.write( '<link rel="stylesheet" href="css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
    </script>

    <!--[if lt IE 9]>
    <script src="lib/js/html5shiv.js"></script>
    <![endif]-->

    <style type="text/css">
      b {
        color: #f85;
      }
    </style>

  </head>

  <body>

    <div class="reveal">

      <!-- Any section element inside of this container is displayed as a slide -->
      <div class="slides">

        <section>
          <h1><div style="color: #f85">Emscripten<br>and asm.js</div></h1>
          <h2 style="color: #fda">Mozilla Research Party</h2>
          <h3>Alon Zakai - Mozilla</h3>
        </section>

        <section>
          <h2>Emscripten</h2>
          <p><b>Emscripten</b> is a compiler from C/C++ to JavaScript</p>
          <div style="height: 0.66em"></div>
          <hr>
          <p><b style="color: #f85">C/C++</b>&nbsp&nbsp<b style="color: #fff">=></b>&nbsp&nbsp<b style="color: #7af">LLVM</b>&nbsp&nbsp<b style="color: #fff">=></b>&nbsp&nbsp<b style="color: #8f5"><a href="http://emscripten.org">Emscripten</a></b>&nbsp&nbsp<b style="color: #fff">=></b>&nbsp&nbsp<b style="color: #f58">JavaScript</b></p>
          <hr>
        </section>

        <section>
          <h2>Why is this useful?</h2>
        </section>

        <section>
          <h2>JavaScript is Everywhere</h2>
          <p>JavaScript is the only <b>standards-based</b> language in all web browsers</p>
        </section>

        <section>
          <h2>Reuse existing code</h2>
          <p><b>Automatically</b> convert to JavaScript, no need for time-consuming manual rewrites</p>
        </section>

        <section>
          <h2>Why is this cool?</h2>
        </section>

        <section>
          <h2>JavaScript is an odd target</h2>
          <p>No <b>goto</b> statements, so invented the <b>Relooper</b> algorithm</p>
          <p>Many more interesting optimizations still to be done</p>
        </section>

        <section>
          <h2>Useful for things like games</h2>
          <p><b>Even AAA games!</b> We announced last week that we worked with Epic to port their <b>Unreal Engine 3</b> to HTML5</p>
          <hr>
          <p><iframe width="640" height="360" src="http://www.youtube.com/embed/XsyogXtyU9o?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
          <hr>
        </section>

        <section>
          <h2>AAA Games? Isn't JavaScript slow?</h2>
          <p><b>Modern JavaScript VMs</b> are quite speedy already, but compiled code can be even <b>faster</b> than handwritten JavaScript (!)</p>
          <p class="fragment">What? How? Compiling into JavaScript still produces... <b>JavaScript</b>, right?</p>
        </section>

        <section>
          <h2>asm.js</h2>
          <hr>
          <p><b style="color: #fda">asm.js is an extraordinarily optimizable,<br>low-level subset of JavaScript</b></p>
          <hr>
          <p>A <b>type system</b> for compiled code in JavaScript</p>
          <p class="fragment">Makes it easy for JavaScript VMs to <b>detect types</b> and ensures they do not change unexpectedly</p>
        </section>

        <section>
          <h2>Benchmarks</h2>
          <img width="1122" height="453" src="macro4b.png">
        </section>

        <section>
          <h2>Seeing is believing</h2>
          <p><iframe width="800" height="800" src="ammo/ammo.html"></iframe></p>
        </section>

        <section>
          <h2>That's it!</h2>
          <br>
          <br>
          <p><a href="http://emscripten.org">emscripten.org</a></p>
          <p><a href="http://asmjs.org">asmjs.org</a></p>
        </section>
      </div>

    </div>

    <script src="lib/js/head.min.js"></script>
    <script src="js/reveal.min.js"></script>

    <script>

      // Full list of configuration options available here:
      // https://github.com/hakimel/reveal.js#configuration
      Reveal.initialize({
        controls: true,
        progress: true,
        history: true,
        center: true,

        theme: 'default', //Reveal.getQueryHash().theme, // available themes are in /css/theme
        transition: Reveal.getQueryHash().transition || 'fade', // default/cube/page/concave/zoom/linear/fade/none

        // Optional libraries used to extend on reveal.js
        dependencies: [
          { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
          { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },

          // { src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } }
        ]
      });

    </script>

  </body>
</html>

{'fraction_non_alphanumeric': 0.1742730953257269, 'fraction_numerical': 0.013065881486934118, 'mean_word_length': 2.437381404174573, 'pattern_counts': {'":': 0, '<': 380, '<?xml version=': 0, '>': 386, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1112733', 'n_tokens_mistral': 3678, 'n_tokens_neox': 3503, 'n_words': 821}