{"id":1663,"date":"2014-07-21T09:52:00","date_gmt":"2014-07-21T09:52:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/typescript\/2014\/07\/21\/new-compiler-and-moving-to-github\/"},"modified":"2019-02-20T10:46:28","modified_gmt":"2019-02-20T17:46:28","slug":"new-compiler-and-moving-to-github","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/typescript\/new-compiler-and-moving-to-github\/","title":{"rendered":"New Compiler and Moving to GitHub"},"content":{"rendered":"<p>Today we&rsquo;re announcing two changes to the TypeScript project.<\/p>\n<h2>Introducing the New Compiler<\/h2>\n<p>The first change we&rsquo;re making to TypeScript is that we&rsquo;ve been taking a good, hard look at the compiler performance we had with 1.0.&nbsp; We knew we could leverage the experience from building the original compiler over the last two years.&nbsp; This led to experimenting with a new, lighter-weight compiler core.&nbsp; The early results with this new compiler core were so positive that we&rsquo;re now focused on growing this core into the new TypeScript compiler and language service.<\/p>\n<p>The first stage of this effort is to build a complete standalone compiler based on this new core architecture.&nbsp; The new compiler follows the same TypeScript 1.0 language spec, has the same compiler flags and compiler functionality, and outputs nearly identical code to the currently shipping TypeScript compiler.&nbsp; Once complete, the new compiler should be drop-in compatible with the existing one.&nbsp; The goal here isn&#8217;t new compiler features, but rather a cleaner compiler architecture that has better performance and allows us to add new features with greater ease in releases to come.<\/p>\n<p>Our work to date on the new compiler has been very promising.&nbsp; At its current level of completeness, the new compiler is able to compile existing real-world TypeScript code 5x faster than the currently shipping compiler.&nbsp; These results are still early. Once the compiler has reached parity, we&#8217;ll be able to report out a more complete picture of the performance improvements.<\/p>\n<p>We have a good start, but there&rsquo;s a lot of work to do.&nbsp;For the experiment to mature into a full-featured compiler, in addition to making sure the code is robust and correct, we still need to flesh out the following features:&nbsp;<\/p>\n<ul>\n<li><strong>Parser<\/strong> &ndash; Strict mode, incremental parsing for the language service (if necessary).<\/li>\n<li><strong>Type checking <\/strong>&ndash; Get type checker to parity with 1.0 in terms of error coverage.&nbsp; This is nearing completion.<\/li>\n<li><strong>Compiler options<\/strong> &ndash; Support for &#8211;propagateEnumConstants, &#8211;watch, &#8211;locale, &#8211;logFile and &#8211;version.&nbsp;<\/li>\n<li><strong>Language service <\/strong>&ndash; Adapt the language service to work with new compiler.<\/li>\n<li><strong>Emitter<\/strong> &ndash; .d.ts output and comment preservation.<\/li>\n<\/ul>\n<p>As we reach parity with our existing compiler, we&rsquo;re looking forward to moving on to ECMAScript 6 features and exploring the top user requests.<\/p>\n<p>If you&rsquo;d like to help us out, you can find the new compiler at our new <a href=\"https:\/\/github.com\/Microsoft\/TypeScript\">TypeScript repository on GitHub<\/a>, which leads us to change #2.<\/p>\n<h2>Moving to GitHub<\/h2>\n<p>We&rsquo;ve <a href=\"https:\/\/typescript.codeplex.com\/workitem\/2420\">heard your feedback<\/a>, and we&rsquo;re making the move to GitHub.&nbsp; We&rsquo;re continually looking for ways to improve how TypeScript works with the community, and we&rsquo;re excited about what the move to GitHub could help us do in the coming months.<\/p>\n<p>The new site will work similarly to the current one.&nbsp;<\/p>\n<ul>\n<li>Source code moves to the <a href=\"https:\/\/github.com\/Microsoft\/TypeScript\">TypeScript git repository on GitHub<\/a><\/li>\n<li>Issues move to the <a href=\"https:\/\/github.com\/Microsoft\/TypeScript\/issues\">TypeScript issues on GitHub<\/a><\/li>\n<ul>\n<li><strong><em>Please note: <\/em><\/strong><em>since we&rsquo;re moving to a new issue tracker and a new codebase, we are not copying all issues over.&nbsp; If you have issues in the current CodePlex issue tracker, please try them against the new codebase and file them in the GitHub issue tracker if they still repro.<\/em><\/li>\n<\/ul>\n<li>Wiki documentation moves to the <a href=\"https:\/\/github.com\/Microsoft\/TypeScript\/wiki\">TypeScript wiki on GitHub<\/a><\/li>\n<li>Forums will now be more organized.&nbsp;<\/li>\n<ul>\n<li>For questions about how to use TypeScript and how to work with various JavaScript libraries and patterns, please use the <a href=\"http:\/\/stackoverflow.com\/questions\/tagged\/typescript\">TypeScript StackOverflow site<\/a>.&nbsp; This helps users have a one-stop place to find the best answers and get started quickly.&nbsp;<\/li>\n<li>For feature requests and design discussions, please post to the <a href=\"https:\/\/github.com\/Microsoft\/TypeScript\/issues\">TypeScript issues on GitHub<\/a>&nbsp;<\/li>\n<\/ul>\n<\/ul>\n<p>The blog will continue to be hosted on MSDN and will not change at this time.<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we&rsquo;re announcing two changes to the TypeScript project. Introducing the New Compiler The first change we&rsquo;re making to TypeScript is that we&rsquo;ve been taking a good, hard look at the compiler performance we had with 1.0.&nbsp; We knew we could leverage the experience from building the original compiler over the last two years.&nbsp; This [&hellip;]<\/p>\n","protected":false},"author":375,"featured_media":1797,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1663","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-typescript"],"acf":[],"blog_post_summary":"<p>Today we&rsquo;re announcing two changes to the TypeScript project. Introducing the New Compiler The first change we&rsquo;re making to TypeScript is that we&rsquo;ve been taking a good, hard look at the compiler performance we had with 1.0.&nbsp; We knew we could leverage the experience from building the original compiler over the last two years.&nbsp; This [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/typescript\/wp-json\/wp\/v2\/posts\/1663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/typescript\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/typescript\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/typescript\/wp-json\/wp\/v2\/users\/375"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/typescript\/wp-json\/wp\/v2\/comments?post=1663"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/typescript\/wp-json\/wp\/v2\/posts\/1663\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/typescript\/wp-json\/wp\/v2\/media\/1797"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/typescript\/wp-json\/wp\/v2\/media?parent=1663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/typescript\/wp-json\/wp\/v2\/categories?post=1663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/typescript\/wp-json\/wp\/v2\/tags?post=1663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}