2014-11-10 20:27:22 +03:00
|
|
|
The following authors have all licensed their contributions to Emscripten
|
2011-06-24 03:07:17 +04:00
|
|
|
under the licensing terms detailed in LICENSE.
|
|
|
|
|
2012-08-25 01:29:51 +04:00
|
|
|
(Authors keep copyright of their contributions, of course; they just grant
|
|
|
|
a license to everyone to use it as detailed in LICENSE.)
|
|
|
|
|
2011-06-24 03:07:17 +04:00
|
|
|
* Alon Zakai <alonzakai@gmail.com> (copyright owned by Mozilla Foundation)
|
2011-06-24 03:49:48 +04:00
|
|
|
* Tim Dawborn <tim.dawborn@gmail.com>
|
2011-06-24 05:15:28 +04:00
|
|
|
* Max Shawabkeh <max99x@gmail.com>
|
2011-10-05 11:15:25 +04:00
|
|
|
* Sigmund Vik <sigmund_vik@yahoo.com>
|
2011-10-14 02:04:31 +04:00
|
|
|
* Jeff Terrace <jterrace@gmail.com>
|
2014-07-04 04:35:36 +04:00
|
|
|
* Benoit Tremblay <trembl.ben@gmail.com>
|
2014-03-07 12:24:31 +04:00
|
|
|
* Andreas Bergmeier <abergmeier@gmx.net>
|
2011-11-28 04:32:35 +04:00
|
|
|
* Ben Schwartz <bens@alum.mit.edu>
|
2011-11-09 01:13:59 +04:00
|
|
|
* David Claughton <dave@eclecticdave.com>
|
2011-12-19 13:02:02 +04:00
|
|
|
* David Yip <yipdw@member.fsf.org>
|
2012-01-04 01:59:09 +04:00
|
|
|
* Julien Hamaide <julien.hamaide@gmail.com>
|
2012-01-17 22:37:45 +04:00
|
|
|
* Ehsan Akhgari <ehsan.akhgari@gmail.com> (copyright owned by Mozilla Foundation)
|
2012-02-14 02:15:13 +04:00
|
|
|
* Adrian Taylor <adrian@macrobug.com>
|
2012-03-06 02:57:46 +04:00
|
|
|
* Richard Assar <richard.assar@gmail.com>
|
2012-03-07 02:51:45 +04:00
|
|
|
* Nathan Hammond <emscripten@nathanhammond.com>
|
2012-03-30 09:02:01 +04:00
|
|
|
* Behdad Esfahbod <behdad@behdad.org>
|
2012-03-29 17:13:51 +04:00
|
|
|
* David Benjamin <davidben@mit.edu>
|
2012-04-04 05:33:17 +04:00
|
|
|
* Pierre Renaux <pierre@talansoft.com>
|
2012-04-10 01:37:12 +04:00
|
|
|
* Brian Anderson <banderson@mozilla.com>
|
2012-04-18 12:02:18 +04:00
|
|
|
* Jon Bardin <diclophis@gmail.com>
|
2013-04-12 14:26:45 +04:00
|
|
|
* Jukka Jylänki <jujjyl@gmail.com>
|
2012-05-28 18:35:04 +04:00
|
|
|
* Aleksander Guryanov <caiiiycuk@gmail.com>
|
2012-09-26 03:10:52 +04:00
|
|
|
* Chad Austin <chad@chadaustin.me> (copyright owned by IMVU)
|
2012-07-11 19:30:29 +04:00
|
|
|
* nandhp <nandhp@gmail.com>
|
2012-04-14 05:21:51 +04:00
|
|
|
* YeZhongWen <linghuye2.0@gmail.com>
|
2012-07-14 19:31:38 +04:00
|
|
|
* Xingxing Pan <forandom@gmail.com>
|
2012-07-27 05:37:27 +04:00
|
|
|
* Justin Kerk <dopefishjustin@gmail.com>
|
2012-08-28 06:10:20 +04:00
|
|
|
* Andrea Bedini <andrea.bedini@gmail.com>
|
2012-08-31 21:40:44 +04:00
|
|
|
* James Pike <totoro.friend@chilon.net>
|
2012-09-05 10:49:16 +04:00
|
|
|
* Mokhtar Naamani <mokhtar.naamani@gmail.com>
|
2012-07-31 05:43:30 +04:00
|
|
|
* Benjamin Stover <benjamin.stover@gmail.com>
|
2012-09-15 16:27:15 +04:00
|
|
|
* Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
|
2012-09-20 16:32:26 +04:00
|
|
|
* Janus Troelsen <janus.troelsen@stud.tu-darmstadt.de>
|
2012-11-01 18:13:06 +04:00
|
|
|
* Lars Schneider <lars.schneider@autodesk.com> (copyright owned by Autodesk, Inc.)
|
|
|
|
* Joel Martin <github@martintribe.org>
|
2012-11-08 05:58:37 +04:00
|
|
|
* Manuel Wellmann <manuel.wellmann@autodesk.com> (copyright owned by Autodesk, Inc.)
|
2012-11-20 01:00:15 +04:00
|
|
|
* Xuejie Xiao <xxuejie@gmail.com>
|
2012-11-30 11:16:00 +04:00
|
|
|
* Dominic Wong <dom@slowbunyip.org>
|
2012-12-20 02:42:01 +04:00
|
|
|
* Alan Kligman <alan.kligman@gmail.com> (copyright owned by Mozilla Foundation)
|
2012-12-28 12:36:13 +04:00
|
|
|
* Anthony Liot <wolfviking0@yahoo.com>
|
2013-01-17 01:52:32 +04:00
|
|
|
* Michael Riss <Michael.Riss@gmx.de>
|
2013-01-17 07:19:06 +04:00
|
|
|
* Jasper St. Pierre <jstpierre@mecheye.net>
|
2013-04-12 14:26:45 +04:00
|
|
|
* Manuel Schölling <manuel.schoelling@gmx.de>
|
2013-01-31 22:25:26 +04:00
|
|
|
* Bruce Mitchener, Jr. <bruce.mitchener@gmail.com>
|
2013-02-19 23:36:06 +04:00
|
|
|
* Michael Bishop <mbtyke@gmail.com>
|
2013-02-20 14:10:55 +04:00
|
|
|
* Roger Braun <roger@rogerbraun.net>
|
2013-02-27 03:43:08 +04:00
|
|
|
* Vladimir Vukicevic <vladimir@pobox.com> (copyright owned by Mozilla Foundation)
|
2013-02-21 05:49:50 +04:00
|
|
|
* Lorant Pinter <lorant.pinter@prezi.com>
|
2013-02-03 14:59:53 +04:00
|
|
|
* Tobias Doerffel <tobias.doerffel@gmail.com>
|
2013-03-06 04:43:46 +04:00
|
|
|
* Martin von Gagern <martin@von-gagern.net>
|
2013-03-19 08:13:29 +04:00
|
|
|
* Ting-Yuan Huang <thuang@mozilla.com>
|
2013-04-05 02:41:16 +04:00
|
|
|
* Joshua Granick <jgranick@blackberry.com>
|
2013-03-31 01:24:11 +04:00
|
|
|
* Felix H. Dahlke <fhd@ubercode.de>
|
2013-04-12 14:26:45 +04:00
|
|
|
* Éloi Rivard <azmeuk@gmail.com>
|
2013-04-03 23:32:55 +04:00
|
|
|
* Alexander Gladysh <ag@logiceditor.com>
|
2013-04-16 12:45:11 +04:00
|
|
|
* Arlo Breault <arlolra@gmail.com>
|
|
|
|
* Jacob Lee <artdent@gmail.com> (copyright owned by Google, Inc.)
|
2013-04-12 07:13:03 +04:00
|
|
|
* Joe Lee <jlee@imvu.com> (copyright owned by IMVU)
|
2013-04-12 14:26:45 +04:00
|
|
|
* Andy Friesen <andy@imvu.com> (copyright owned by IMVU)
|
|
|
|
* Bill Welden <bwelden@imvu.com> (copyright owned by IMVU)
|
|
|
|
* Michael Ey <mey@imvu.com> (copyright owned by IMVU)
|
|
|
|
* Llorens Marti Garcia <lgarcia@imvu.com> (copyright owned by IMVU)
|
|
|
|
* Jinsuck Kim <jkim@imvu.com> (copyright owned by IMVU)
|
|
|
|
* Todd Lee <tlee@imvu.com> (copyright owned by IMVU)
|
2013-04-10 00:32:09 +04:00
|
|
|
* Anthony Pesch <inolen@gmail.com>
|
|
|
|
* Robert Bragg <robert.bragg@intel.com> (copyright owned by Intel Corporation)
|
2013-05-02 15:03:14 +04:00
|
|
|
* Sylvestre Ledru <sylvestre@debian.org>
|
2013-05-03 04:34:20 +04:00
|
|
|
* Tom Fairfield <fairfield@cs.xu.edu>
|
2013-05-04 08:17:04 +04:00
|
|
|
* Anthony J. Thibault <ajt@hyperlogic.org>
|
2013-05-04 01:05:03 +04:00
|
|
|
* John Allwine <jallwine86@gmail.com>
|
2013-05-07 08:50:49 +04:00
|
|
|
* Martin Gerhardy <martin.gerhardy@gmail.com>
|
2013-05-17 00:35:23 +04:00
|
|
|
* James Gregory <jgregory@zynga.com> (copyright owned by Zynga, Inc)
|
2013-05-24 02:20:50 +04:00
|
|
|
* Dan Gohman <sunfish@google.com> (copyright owned by Google, Inc.)
|
2013-05-31 01:06:01 +04:00
|
|
|
* Jeff Gilbert <jgilbert@mozilla.com> (copyright owned by Mozilla Foundation)
|
2013-05-30 01:21:10 +04:00
|
|
|
* Frits Talbot <frits@metapathy.com>
|
2013-06-04 15:26:45 +04:00
|
|
|
* Onno Jongbloed <hey@onnoj.net>
|
2013-06-05 02:01:07 +04:00
|
|
|
* Jez Ng <me@jezng.com>
|
2013-06-05 02:39:55 +04:00
|
|
|
* Marc Feeley <mfeeley@mozilla.com> (copyright owned by Mozilla Foundation)
|
2013-06-05 12:53:45 +04:00
|
|
|
* Ludovic Perrine <jazzzz@gmail.com>
|
2013-06-12 05:37:13 +04:00
|
|
|
* David Barksdale <david.barksdale@adcedosolutions.com>
|
2013-06-17 18:40:03 +04:00
|
|
|
* Manfred Manik Nerurkar <nerurkar*at*made-apps.biz> (copyright owned by MADE, GmbH)
|
2013-07-01 21:35:41 +04:00
|
|
|
* Joseph Gentle <me@josephg.com>
|
2014-07-08 20:21:21 +04:00
|
|
|
* Douglas T. Crosher <dtc-moz@scieneer.com> (copyright owned by Mozilla Foundation)
|
2015-04-14 05:24:31 +03:00
|
|
|
* Douglas T. Crosher <info@jsstats.com> (copyright owned by Scieneer Pty Ltd)
|
2013-07-15 09:12:45 +04:00
|
|
|
* Soeren Balko <soeren.balko@gmail.com>
|
2013-07-16 10:21:33 +04:00
|
|
|
* Ryan Kelly (ryan@rfk.id.au)
|
2013-07-21 23:05:42 +04:00
|
|
|
* Michael Lelli <toadking@toadking.com>
|
2013-07-30 02:49:20 +04:00
|
|
|
* Yu Kobayashi <yukoba@accelart.jp>
|
2013-07-31 06:32:44 +04:00
|
|
|
* Pin Zhang <zhangpin04@gmail.com>
|
2013-08-07 02:23:37 +04:00
|
|
|
* Nick Bray <ncbray@chromium.org> (copyright owned by Google, Inc.)
|
2013-08-18 05:33:15 +04:00
|
|
|
* Aidan Hobson Sayers <aidanhs@cantab.net>
|
2013-08-24 13:20:15 +04:00
|
|
|
* Charlie Birks <admin@daftgames.net>
|
2013-08-28 20:22:37 +04:00
|
|
|
* Ranger Harke <ranger.harke@autodesk.com> (copyright owned by Autodesk, Inc.)
|
2013-09-19 00:59:41 +04:00
|
|
|
* Tobias Vrinssen <tobias@vrinssen.de>
|
2013-03-21 21:26:51 +04:00
|
|
|
* Patrick R. Martin <patrick.martin.r@gmail.com>
|
2013-09-24 23:27:55 +04:00
|
|
|
* Richard Quirk <richard.quirk@gmail.com>
|
2013-09-29 21:42:12 +04:00
|
|
|
* Marcos Scriven <marcos@scriven.org>
|
2013-09-30 14:52:12 +04:00
|
|
|
* Antoine Lambert <antoine.lambert33@gmail.com>
|
2013-10-14 21:56:04 +04:00
|
|
|
* Daniel Aquino <mr.danielaquino@gmail.com>
|
2013-10-07 02:30:07 +04:00
|
|
|
* Remi Papillie <remi.papillie@gmail.com>
|
2013-10-02 22:59:27 +04:00
|
|
|
* Fraser Adams <fraser.adams@blueyonder.co.uk>
|
2013-10-28 17:26:34 +04:00
|
|
|
* Michael Tirado <icetooth333@gmail.com>
|
2013-10-29 19:21:41 +04:00
|
|
|
* Ben Noordhuis <info@bnoordhuis.nl>
|
2013-11-07 21:19:03 +04:00
|
|
|
* Bob Roberts <bobroberts177@gmail.com>
|
2013-11-07 07:08:33 +04:00
|
|
|
* John Vilk <jvilk@cs.umass.edu>
|
2013-11-21 05:56:22 +04:00
|
|
|
* Daniel Baulig <dbaulig@fb.com> (copyright owned by Facebook, Inc.)
|
2013-11-26 00:04:45 +04:00
|
|
|
* Lu Wang <coolwanglu@gmail.com>
|
2013-11-26 03:18:24 +04:00
|
|
|
* Heidi Pan <heidi.pan@intel.com> (copyright owned by Intel)
|
2013-12-07 21:43:33 +04:00
|
|
|
* Vasilis Kalintiris <ehostunreach@gmail.com>
|
2013-12-16 21:23:28 +04:00
|
|
|
* Adam C. Clifton <adam@hulkamaniac.com>
|
2013-12-20 17:16:33 +04:00
|
|
|
* Volo Zyko <volo.zyko@gmail.com>
|
2014-01-06 22:44:18 +04:00
|
|
|
* Andre Weissflog <floooh@gmail.com>
|
2014-01-11 05:43:43 +04:00
|
|
|
* Alexandre Perrot <alexandre.perrot@gmail.com>
|
|
|
|
* Emerson José Silveira da Costa <emerson.costa@gmail.com>
|
2014-01-14 19:04:58 +04:00
|
|
|
* Jari Vetoniemi <mailroxas@gmail.com>
|
2014-01-16 23:21:24 +04:00
|
|
|
* Sindre Sorhus <sindresorhus@gmail.com>
|
2014-01-25 03:03:02 +04:00
|
|
|
* James S Urquhart <jamesu@gmail.com>
|
2014-02-05 08:45:44 +04:00
|
|
|
* Boris Gjenero <boris.gjenero@gmail.com>
|
2014-02-12 13:01:05 +04:00
|
|
|
* jonas echterhoff <jonas@unity3d.com>
|
2014-02-12 01:06:05 +04:00
|
|
|
* Sami Vaarala <sami.vaarala@iki.fi>
|
2014-02-13 06:10:19 +04:00
|
|
|
* Jack A. Arrington <jack@epicpineapple.com>
|
2014-02-15 05:48:42 +04:00
|
|
|
* Richard Janicek <r@janicek.co>
|
2014-02-20 11:18:31 +04:00
|
|
|
* Joel Croteau <jcroteau@gmail.com>
|
2014-02-23 00:24:32 +04:00
|
|
|
* Haneef Mubarak <haneef503@gmail.com>
|
2014-02-26 03:22:51 +04:00
|
|
|
* Nicolas Peri <nicox@shivaengine.com> (copyright owned by ShiVa Technologies, SAS)
|
2014-03-01 00:48:31 +04:00
|
|
|
* Bernhard Fey <e-male@web.de>
|
2014-02-23 07:24:33 +04:00
|
|
|
* Dave Nicponski <dave.nicponski@gmail.com>
|
2014-03-07 13:10:40 +04:00
|
|
|
* Jonathan Jarri <noxalus@gmail.com>
|
2014-03-08 18:02:37 +04:00
|
|
|
* Daniele Di Proietto <daniele.di.proietto@gmail.com>
|
2014-03-25 00:58:19 +04:00
|
|
|
* Dan Dascalescu <dNOSPAMdascalescu@gmail.com>
|
2014-04-02 14:16:34 +04:00
|
|
|
* Thomas Borsos <thomasborsos@gmail.com>
|
2014-04-17 00:18:03 +04:00
|
|
|
* Ori Avtalion <ori@avtalion.name>
|
2014-04-22 15:40:22 +04:00
|
|
|
* Guillaume Blanc <guillaumeblanc.sc@gmail.com>
|
2014-04-16 16:26:30 +04:00
|
|
|
* Usagi Ito <usagi@WonderRabbitProject.net>
|
2014-04-30 01:20:09 +04:00
|
|
|
* Camilo Polymeris <cpolymeris@gmail.com>
|
2014-05-13 17:28:19 +04:00
|
|
|
* Markus Henschel <markus.henschel@yager.de>
|
2014-05-20 23:13:25 +04:00
|
|
|
* Ophir Lojkine <ophir.lojkine@eleves.ec-nantes.fr>
|
2014-04-09 02:17:36 +04:00
|
|
|
* Ryan Sturgell <ryan.sturgell@gmail.com> (copyright owned by Google, Inc.)
|
2014-05-28 00:51:54 +04:00
|
|
|
* Jason Green <jason@transgaming.com> (copyright owned by TransGaming, Inc.)
|
2014-05-29 12:33:08 +04:00
|
|
|
* Ningxin Hu <ningxin.hu@intel.com> (copyright owned by Intel)
|
2014-06-03 12:03:34 +04:00
|
|
|
* Nicolas Guillemot <nlguillemot@gmail.com>
|
2014-06-12 03:58:34 +04:00
|
|
|
* Sathyanarayanan Gunasekaran <gsathya.ceg@gmail.com> (copyright owned by Mozilla Foundation)
|
2014-06-18 17:44:03 +04:00
|
|
|
* Nikolay Vorobyov <nik.vorobyov@gmail.com>
|
2014-06-27 15:59:43 +04:00
|
|
|
* Jonas Platte <mail@jonasplatte.de>
|
2014-06-28 21:35:57 +04:00
|
|
|
* Sebastien Ronsse <sronsse@gmail.com>
|
2014-07-18 01:31:31 +04:00
|
|
|
* Glenn R. Wichman <gwichman@zynga.com>
|
2014-07-25 03:45:25 +04:00
|
|
|
* Hamish Willee <hamishwillee@gmail.com> (copyright owned by Mozilla Foundation)
|
2014-07-25 14:54:03 +04:00
|
|
|
* Sylvain Chevalier <sylvain.chevalier@gmail.com>
|
2014-07-28 05:23:52 +04:00
|
|
|
* Nathan Ross <nross.se@gmail.com>
|
2014-08-05 23:33:07 +04:00
|
|
|
* Zachary Pomerantz <zmp@umich.edu>
|
2014-07-08 15:38:12 +04:00
|
|
|
* Boris Tsarev <boristsarev@gmail.com>
|
2014-08-02 20:25:56 +04:00
|
|
|
* Mark Logan <mark@artillery.com> (copyright owned by Artillery Games, Inc.)
|
2014-08-11 22:54:49 +04:00
|
|
|
* Коренберг Марк <socketpair@gmail.com>
|
2014-08-30 00:37:09 +04:00
|
|
|
* Gauthier Billot <gogoprog@gmail.com>
|
2014-09-02 23:08:17 +04:00
|
|
|
* Árpád Goretity <h2co3@h2co3.org>
|
2014-09-04 13:11:56 +04:00
|
|
|
* Nicholas Wilson <nicholas@nicholaswilson.me.uk>
|
2014-09-12 23:19:36 +04:00
|
|
|
* Aaron Mandle <aaronmandle@gmail.com>
|
2014-09-19 23:18:17 +04:00
|
|
|
* Bailey Hayes <Bailey.Hayes@sas.com> (copyright owned by SAS Institute Inc.)
|
2014-10-01 23:46:10 +04:00
|
|
|
* Paul Holland <pholland@adobe.com>
|
2014-10-02 19:19:52 +04:00
|
|
|
* James Long <longster@gmail.com>
|
2014-10-02 04:30:20 +04:00
|
|
|
* David Anderson <danderson@mozilla.com> (copyright owned by Mozilla Foundation)
|
2014-10-25 02:51:00 +04:00
|
|
|
* Eric Rannaud <e@nanocritical.com> (copyright owned by Nanocritical Corp.)
|
2015-03-04 01:25:05 +03:00
|
|
|
* William Furr <wfurr@google.com> (copyright owned by Google, Inc.)
|
2014-10-30 06:03:50 +03:00
|
|
|
* Dan Glastonbury <dglastonbury@mozilla.com> (copyright owned by Mozilla Foundation)
|
2014-10-09 11:51:01 +04:00
|
|
|
* Warren Seine <warren.seine@aerys.in> (copyright owned by Aerys SAS)
|
2014-11-10 20:27:22 +03:00
|
|
|
* Petr Babicka <babcca@gmail.com>
|
2014-11-18 18:52:15 +03:00
|
|
|
* Akira Takahashi <faithandbrave@gmail.com>
|
2014-12-09 16:41:02 +03:00
|
|
|
* Victor Costan <costan@gmail.com>
|
2015-01-16 15:53:22 +03:00
|
|
|
* Pepijn Van Eeckhoudt <pepijn.vaneeckhoudt@luciad.com> (copyright owned by Luciad NV)
|
2015-01-22 00:45:12 +03:00
|
|
|
* Stevie Trujillo <stevie.trujillo@gmail.com>
|
2015-01-29 18:29:10 +03:00
|
|
|
* Edward Rudd <urkle@outoforder.cc>
|
2015-02-02 23:29:19 +03:00
|
|
|
* Rene Eichhorn <rene.eichhorn1@gmail.com>
|
2015-02-07 03:02:55 +03:00
|
|
|
* Nick Desaulniers <nick@mozilla.com> (copyright owned by Mozilla Foundation)
|
2015-02-16 05:42:06 +03:00
|
|
|
* Luke Wagner <luke@mozilla.com> (copyright owned by Mozilla Foundation)
|
2015-02-15 21:14:53 +03:00
|
|
|
* Matt McCormick <matt.mccormick@kitware.com>
|
2015-02-09 23:21:52 +03:00
|
|
|
* Thaddée Tyl <thaddee.tyl@gmail.com>
|
2015-02-26 01:05:10 +03:00
|
|
|
* Philipp Wiesemann <philipp.wiesemann@arcor.de>
|
2015-03-18 17:45:28 +03:00
|
|
|
* Jan Jongboom <janjongboom@gmail.com> (copyright owned by Telenor Digital AS)
|
2015-04-03 22:21:42 +03:00
|
|
|
* Tiago Quelhas <tiagoq@gmail.com>
|
2015-04-07 14:32:03 +03:00
|
|
|
* Reinier de Blois <rddeblois@gmail.com>
|
2015-04-15 03:54:16 +03:00
|
|
|
* Yuichi Nishiwaki <yuichi.nishiwaki@gmail.com>
|
2015-04-07 18:18:42 +03:00
|
|
|
* Jérôme Bernard <jerome.bernard@ercom.fr> (copyright owned by Ercom)
|
2015-04-22 17:26:43 +03:00
|
|
|
* Chanhwi Choi <ccwpc@hanmail.net>
|
2015-04-22 01:12:22 +03:00
|
|
|
* Fábio Santos <fabiosantosart@gmail.com>
|
2015-04-25 01:57:48 +03:00
|
|
|
* Thibaut Despoulain <thibaut@artillery.com> (copyright owned by Artillery Games, Inc.)
|
2015-04-26 10:48:04 +03:00
|
|
|
* Wei Tjong Yao <weitjong@gmail.com>
|
2015-05-06 04:04:15 +03:00
|
|
|
* Tim Guan-tin Chien <timdream@gmail.com>
|
2015-05-13 00:54:55 +03:00
|
|
|
* Krzysztof Jakubowski <nadult@fastmail.fm>
|
2015-05-27 17:38:07 +03:00
|
|
|
* Vladimír Vondruš <mosra@centrum.cz>
|
2015-06-14 20:57:09 +03:00
|
|
|
* Brion Vibber <brion@pobox.com>
|
2015-06-16 21:30:43 +03:00
|
|
|
* Philip Lafleur <sendsbeak@gmail.com>
|
2015-06-18 00:57:52 +03:00
|
|
|
* Javier Meseguer de Paz <j.meseguer@gmail.com>
|
2015-06-25 19:18:41 +03:00
|
|
|
* Michael A. Balazs <michael.balazs@gmail.com>
|
2015-06-24 19:14:42 +03:00
|
|
|
* Andreas Blixt <me@blixt.nyc>
|
2015-07-08 23:11:24 +03:00
|
|
|
* Haofeng Zhang <h.z@duke.edu>
|
2015-07-13 00:08:22 +03:00
|
|
|
* Cody Welsh <codyw@protonmail.com>
|
2015-07-13 22:58:38 +03:00
|
|
|
* Hoong Ern Ng <hoongern@gmail.com>
|
2015-07-21 21:44:07 +03:00
|
|
|
* Kagami Hiiragi <kagami@genshiken.org>
|
2015-07-24 03:52:33 +03:00
|
|
|
* Jan Bölsche <jan@lagomorph.de>
|
2015-08-04 20:34:31 +03:00
|
|
|
* Sebastian Matthes <sebastianmatthes@outlook.com> (copyright owned by Volkswagen AG)
|
2015-09-11 20:59:58 +03:00
|
|
|
* Robert Goulet <robert.goulet@autodesk.com> (copyright owned by Autodesk, Inc.)
|
2015-09-23 08:31:38 +03:00
|
|
|
* Juha Järvi <befunge@gmail.com>
|
2015-09-22 23:57:25 +03:00
|
|
|
* Louis Lagrange <lagrange.louis@gmail.com>
|
2015-09-01 04:00:01 +03:00
|
|
|
* Ying-Ruei Liang <thumbd03803@gmail.com>
|
2015-09-27 08:53:24 +03:00
|
|
|
* Stuart Geipel <lapimlu@gmail.com>
|
2015-10-21 04:21:14 +03:00
|
|
|
* Yeonjun Lim <yjroot@gmail.com>
|
2015-10-24 21:12:17 +03:00
|
|
|
* Andrew Karpushin <reven86@gmail.com>
|
2015-10-27 19:29:10 +03:00
|
|
|
* Felix Zimmermann <fzimmermann89@gmail.com>
|
2015-11-06 21:25:32 +03:00
|
|
|
* Sven-Hendrik Haase <svenstaro@gmail.com>
|
2015-11-08 14:32:50 +03:00
|
|
|
* Simon Sandström <simon@nikanor.nu>
|
2015-11-12 14:50:16 +03:00
|
|
|
* Khaled Sami <k.sami.mohammed@gmail.com>
|
|
|
|
* Omar El-Mohandes <omar.elmohandes90@gmail.com>
|
2015-11-14 17:19:25 +03:00
|
|
|
* Florian Rival <florian.rival@gmail.com>
|
2015-11-15 22:02:03 +03:00
|
|
|
* Mark Achée <mark@achee.com>
|
2015-11-16 22:42:18 +03:00
|
|
|
* Piotr Paczkowski <kontakt@trzeci.eu>
|
2015-11-25 22:17:39 +03:00
|
|
|
* Braden MacDonald <braden@bradenmacdonald.com>
|
2015-12-03 13:26:50 +03:00
|
|
|
* Kevin Cheung <kevin.cheung@autodesk.com> (copyright owned by Autodesk, Inc.)
|
2015-12-21 22:31:45 +03:00
|
|
|
* Josh Peterson <petersonjm1@gmail.com>
|
2015-12-28 22:35:18 +03:00
|
|
|
* eska <eska@eska.me>
|
2015-12-19 03:43:16 +03:00
|
|
|
* Nate Burr <nate.oo@gmail.com>
|
2016-01-03 12:29:34 +03:00
|
|
|
* Paul "TBBle" Hampson <Paul.Hampson@Pobox.com>
|
2016-01-06 21:36:19 +03:00
|
|
|
* Andreas Plesch <andreasplesch@gmail.com>
|
2015-12-19 05:31:59 +03:00
|
|
|
* Brian Armstrong <brian.armstrong.ece+github@gmail.com>
|
2015-11-23 12:35:55 +03:00
|
|
|
* Vincenzo Chianese <vincenz.chianese@icloud.com>
|
2016-01-27 04:14:37 +03:00
|
|
|
* Noam T.Cohen <noam@ecb.co.il>
|
2016-01-28 01:56:31 +03:00
|
|
|
* Nick Shin <nick.shin@gmail.com>
|
2016-02-09 04:40:48 +03:00
|
|
|
* Gregg Tavares <github@greggman.com>
|
2016-02-11 04:28:21 +03:00
|
|
|
* Tanner Rogalsky <tanner@tannerrogalsky.com>
|
Duplicate function elimination
This change adds support for duplicate function elimination (DFE) to the
JavaScript optimizer. A new JS file has been added -
eliminate-duplicate-functions.js - which is used to postprocess the
output generated by Emscripten. We add a new file, rather than
augmenting the existing JS optimizer file, for a variety of reasons -
pass independence, reduced coupling between Python scripts and the JS
optimizer, etc.
We introduce a multipass algorithm in which each pass consists of the
following four phases:
Phase 1 - identify duplicate functions using a hash of the function body
Phase 2 - identify variable names that would conflict after renaming
function calls
Phase 3 - generate mapping from equivalent functions to their
replacement function - use the information from Phase 2 to ensure that
the replacement function is not a variable name
Phase 4 - use the mapping generated in Phase 3 to perform the reduction
NOTE: In some rare cases, we may actually not be able to move on from
Phase 3 if we find that we cannot generate a mapping because of
conflicts with variable names.
One pass can reveal new sets of identical functions which in turn can be
reduced by further passes. Empirically, four or five passes are
sufficient to eliminate all duplicate functions. Internally, therefore,
the elimination will perform 5 passes by default. This can be overridden
by setting ELIMINATE_DUPLICATE_FUNCTIONS_PASSES to 1 in settings.js or
on the Emscripten command line.
Generated asm.js is broken into several batches (at function boundaries)
to enable parallelization of the elimination. This saves on memory and
makes use of more CPU cores to save on build time. A number of tests
have been introduced to test this functionality as well.
The change also introduces various tweaks to the amount of diagnostic
information that is dumped out by the JavaScript optimizer. Verbose
logging is now only enabled in debug mode (via the EMCC_LOG_DEBUG
environment variable). We also dump backtraces on encountering unhandled
exceptions: this is useful when Emscripten runs as part of a large build
process. In order to view detailed information about which functions
were merged, set the
ELIMINATE_DUPLICATE_FUNCTIONS_DUMP_EQUIVALENT_FUNCTIONS value to 1 in
settings.js or via the Emscripten command line. This generates a log
file in the same directory as the generated JavaScript listing the sets
of merged functions. This can be decoded using the symbol map generated
by Emscripten. It is, therefore, recommended that developers enable
symbol map generation when attempting to modify or debug this feature.
Since DFE increases build time significantly, it is disabled by default.
It can be enabled by setting ELIMINATE_DUPLICATE_FUNCTIONS to 1 either
in settings.js or by adding "-s ELIMINATE_DUPLICATE_FUNCTIONS=1" on the
Emscripten command line. The poppler test has been updated to also run
with the ELIMINATE_DUPLICATE_FUNCTIONS setting set to 1.
Improvements/future work
It has been observed that on average we experience a code size reduction
of 25% when transpiling large C++ code bases. Typically, C++ code that
makes heavy use of templates will experience the greatest reduction in
code size. There are several directions that future work might take:
* Deduplication of code across templates: e.g. reduction of
std::vector<long> and std::vector<int> to single instantiations of
template code when appropriate
* Histogram-based selection of candidates for replacement: improved code
size should be attainable by assigning the shortest identifiers to the
most frequently referenced functions (in the style of Huffman coding)
* Convergence: the five-pass default chosen in this implementation is
based on empirical observations on a 150,000LOC C++ code base
* Candidate selection: this will, most likely, influence both the
convergence time (i.e. number of passes) and the code size reduction;
currently, when selecting candidates, we choose the shortest identifier
from the list that is not also a variable name
2016-01-05 20:58:20 +03:00
|
|
|
* Richard Cook <rcook@tableau.com> (copyright owned by Tableau Software, Inc.)
|
|
|
|
* Arnab Choudhury <achoudhury@tableau.com> (copyright owned by Tableau Software, Inc.)
|
|
|
|
* Charles Vaughn <cvaughn@tableau.com> (copyright owned by Tableau Software, Inc.)
|
2016-02-13 22:55:15 +03:00
|
|
|
* Pierre Krieger <pierre.krieger1708@gmail.com>
|
2016-02-18 23:47:07 +03:00
|
|
|
* Jakob Stoklund Olesen <stoklund@2pi.dk>
|
2014-12-23 16:23:35 +03:00
|
|
|
* Jérémy Anger <angerj.dev@gmail.com>
|
2016-03-02 03:50:18 +03:00
|
|
|
* Derek Schuff <dschuff@chromium.org> (copyright owned by Google, Inc.)
|
2016-03-10 00:47:51 +03:00
|
|
|
* Ashley Sommer <flubba86@gmail.com>
|
2016-03-21 22:22:46 +03:00
|
|
|
* Dave Fletcher <graveyhead@gmail.com>
|
2016-03-19 00:08:56 +03:00
|
|
|
* Lars-Magnus Skog <ralphtheninja@riseup.net>
|
2016-04-08 16:32:48 +03:00
|
|
|
* Pieter Vantorre <pietervantorre@gmail.com>
|
2016-04-14 15:40:55 +03:00
|
|
|
* Maher Sallam <maher@sallam.me>
|
2016-04-21 23:32:47 +03:00
|
|
|
* Andrey Burov <burik666@gmail.com>
|
2016-04-26 20:20:59 +03:00
|
|
|
* Holland Schutte <hgschutte1@gmail.com>
|
2016-04-25 20:15:33 +03:00
|
|
|
* Kerby Geffrard <kerby.geffrard@gmail.com>
|
2016-05-03 23:59:04 +03:00
|
|
|
* cynecx <me@cynecx.net>
|
2016-04-25 20:47:22 +03:00
|
|
|
* Chris Gibson <cgibson@mrvoxel.com>
|
2016-05-17 01:10:40 +03:00
|
|
|
* Harald Reingruber <code*at*h-reingruber.at>
|
2016-05-20 02:56:59 +03:00
|
|
|
* Aiden Koss <madd0131@umn.edu>
|
|
|
|
* Dustin VanLerberghe <good_ol_dv@hotmail.com>
|
2016-05-24 11:29:12 +03:00
|
|
|
* Philip Bielby <pmb45-github@srcf.ucam.org> (copyright owned by Jagex Ltd.)
|
2016-05-27 12:25:18 +03:00
|
|
|
* Régis Fénéon <regis.feneon@gmail.com>
|
2016-06-23 22:26:34 +03:00
|
|
|
* Dominic Chen <d.c.ddcc@gmail.com> (copyright owned by Google, Inc.)
|
2016-08-03 07:45:43 +03:00
|
|
|
* Junji Hashimoto <junji.hashimoto@gmail.com>
|
2016-08-16 01:52:02 +03:00
|
|
|
* Heejin Ahn <aheejin@gmail.com> (copyright owned by Google, Inc.)
|
2016-08-18 01:58:58 +03:00
|
|
|
* Andras Kucsma <andras.kucsma@gmail.com>
|
2016-08-26 19:45:41 +03:00
|
|
|
* Mateusz Borycki <mateuszborycki@gmail.com>
|
2016-08-25 19:17:40 +03:00
|
|
|
* Franklin Ta <fta2012@gmail.com>
|
2016-08-26 20:18:07 +03:00
|
|
|
|