emscripten/AUTHORS

449 строки
21 KiB
Plaintext
Исходник Обычный вид История

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>
* 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>
* Ben Schwartz <bens@alum.mit.edu>
* 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>
* Nathan Hammond <emscripten@nathanhammond.com>
* 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>
* Jukka Jylänki <jujjyl@gmail.com>
* Aleksander Guryanov <caiiiycuk@gmail.com>
* Chad Austin <chad@chadaustin.me> (copyright owned by IMVU)
* 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>
* James Pike <totoro.friend@chilon.net>
2012-09-05 10:49:16 +04:00
* Mokhtar Naamani <mokhtar.naamani@gmail.com>
* Benjamin Stover <benjamin.stover@gmail.com>
* Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
* 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.)
* Xuejie Xiao <xxuejie@gmail.com>
* Dominic Wong <dom@slowbunyip.org>
2012-12-20 02:42:01 +04:00
* Alan Kligman <alan.kligman@gmail.com> (copyright owned by Mozilla Foundation)
* Anthony Liot <wolfviking0@yahoo.com>
* Michael Riss <Michael.Riss@gmx.de>
2013-01-17 07:19:06 +04:00
* Jasper St. Pierre <jstpierre@mecheye.net>
* 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>
* 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>
* É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)
* 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)
* Anthony Pesch <inolen@gmail.com>
* Robert Bragg <robert.bragg@intel.com> (copyright owned by Intel Corporation)
* Sylvestre Ledru <sylvestre@debian.org>
* Tom Fairfield <fairfield@cs.xu.edu>
* Anthony J. Thibault <ajt@hyperlogic.org>
2013-05-04 01:05:03 +04:00
* John Allwine <jallwine86@gmail.com>
* Martin Gerhardy <martin.gerhardy@gmail.com>
* 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>
* 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>
* 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)
* Douglas T. Crosher <info@jsstats.com> (copyright owned by Scieneer Pty Ltd.)
* Soeren Balko <soeren.balko@gmail.com> (copyright owned by Clipchamp Pty Ltd.)
* 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>
* 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>
* Patrick R. Martin <patrick.martin.r@gmail.com>
* 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>
* Fraser Adams <fraser.adams@blueyonder.co.uk>
2013-10-28 17:26:34 +04:00
* Michael Tirado <icetooth333@gmail.com>
* Ben Noordhuis <info@bnoordhuis.nl>
2013-11-07 21:19:03 +04:00
* Bob Roberts <bobroberts177@gmail.com>
* 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>
* Volo Zyko <volo.zyko@gmail.com>
2014-01-06 22:44:18 +04:00
* Andre Weissflog <floooh@gmail.com>
* Alexandre Perrot <alexandre.perrot@gmail.com>
* Emerson José Silveira da Costa <emerson.costa@gmail.com>
* 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>
* jonas echterhoff <jonas@unity3d.com>
2014-02-12 01:06:05 +04:00
* Sami Vaarala <sami.vaarala@iki.fi>
* Jack A. Arrington <jack@epicpineapple.com>
* 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)
* Bernhard Fey <e-male@web.de>
* 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>
* Thomas Borsos <thomasborsos@gmail.com>
2014-04-17 00:18:03 +04:00
* Ori Avtalion <ori@avtalion.name>
* 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.)
* 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)
* Nikolay Vorobyov <nik.vorobyov@gmail.com>
* 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>
* Nathan Ross <nross.se@gmail.com>
2014-08-05 23:33:07 +04:00
* Zachary Pomerantz <zmp@umich.edu>
* Boris Tsarev <boristsarev@gmail.com>
2014-08-02 20:25:56 +04:00
* Mark Logan <mark@artillery.com> (copyright owned by Artillery Games, Inc.)
* Коренберг Марк <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>
* 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)
* Eric Rannaud <e@nanocritical.com> (copyright owned by Nanocritical Corp.)
* William Furr <wfurr@google.com> (copyright owned by Google, Inc.)
* Dan Glastonbury <dglastonbury@mozilla.com> (copyright owned by Mozilla Foundation)
* 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>
* Victor Costan <costan@gmail.com>
* 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>
* Edward Rudd <urkle@outoforder.cc>
* 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)
* 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>
* Jan Jongboom <janjongboom@gmail.com> (copyright owned by Telenor Digital AS)
2015-04-03 22:21:42 +03:00
* Tiago Quelhas <tiagoq@gmail.com>
* 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)
* Chanhwi Choi <ccwpc@hanmail.net>
2015-04-22 01:12:22 +03:00
* Fábio Santos <fabiosantosart@gmail.com>
* Thibaut Despoulain <thibaut@artillery.com> (copyright owned by Artillery Games, Inc.)
* 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>
* Brion Vibber <brion@pobox.com>
* Philip Lafleur <sendsbeak@gmail.com>
* Javier Meseguer de Paz <j.meseguer@gmail.com>
* Michael A. Balazs <michael.balazs@gmail.com>
* Andreas Blixt <me@blixt.nyc>
2015-07-08 23:11:24 +03:00
* Haofeng Zhang <h.z@duke.edu>
* 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>
* 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.)
* Juha Järvi <befunge@gmail.com>
* Louis Lagrange <lagrange.louis@gmail.com>
2015-09-01 04:00:01 +03:00
* Ying-Ruei Liang <thumbd03803@gmail.com>
* 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>
* 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>
* Piotr Paczkowski <kontakt@trzeci.eu>
2015-11-25 22:17:39 +03:00
* Braden MacDonald <braden@bradenmacdonald.com>
* Kevin Cheung <kevin.cheung@autodesk.com> (copyright owned by Autodesk, Inc.)
* Josh Peterson <petersonjm1@gmail.com>
2015-12-28 22:35:18 +03:00
* eska <eska@eska.me>
* Nate Burr <nate.oo@gmail.com>
* 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>
* 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>
* 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>
* Lars-Magnus Skog <ralphtheninja@riseup.net>
* Pieter Vantorre <pietervantorre@gmail.com>
2016-04-14 15:40:55 +03:00
* Maher Sallam <maher@sallam.me>
* Andrey Burov <burik666@gmail.com>
* 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>
* 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.)
* 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>
* Heejin Ahn <aheejin@gmail.com> (copyright owned by Google, Inc.)
* Andras Kucsma <andras.kucsma@gmail.com>
2016-08-26 19:45:41 +03:00
* Mateusz Borycki <mateuszborycki@gmail.com>
* Franklin Ta <fta2012@gmail.com>
* Jacob Gravelle <jgravelle@google.com> (copyright owned by Google, Inc.)
* Kagami Sascha Rosylight <saschanaz@outlook.com>
* Benny Jacobs <benny@gmx.it>
Fix Exception Handling Leak and Crash This patch fixes two issues in the exception handling backend (transforms actual results reported below to expected results reported below). Environment: Branch: incoming Emcc -v: emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.36.11 clang version 3.9.0 (https://github.com/kripken/emscripten-fastcomp-clang/ 271ce598c3d1fe74efadc254f5be1b57edea9f41) (https://github.com/kripken/emscripten-fastcomp/ 61acfb230665464544f2e8db292f8999fc3c628c) (emscripten 1.36.0 : 1.36.0) Target: x86_64-apple-darwin16.0.0 Thread model: posix InstalledDir: /Users/ray/src/gm/emsdk_portable/clang/ fastcomp/build_master_64/bin Issue 1: Re-thrown exceptions leak (and their destructors are not invoked) Repro: #include <iostream> struct NeedsCleanUp { NeedsCleanUp() { std::cout << "Creating cleanup item" << std::endl; } ~NeedsCleanUp() { std::cout << "Destroying cleanup item" << std::endl; } }; int main(int argc, char* argv[]) { try { try { throw NeedsCleanUp {}; } catch (...) { throw; // rethrow causes leak } } catch (...) { } return 0; } Build and run: em++ -g -std=c++11 --emrun -s EXCEPTION_DEBUG=0 -o exc1.html exc1.cpp emrun --browser chrome exc1.html ACTUAL RESULT: pre-main prep time: 23 ms Creating cleanup item ACTUAL RESULT WITH EXCEPTION DEBUG: pre-main prep time: 25 ms Creating cleanup item Compiled code throwing an exception, 5267520,8,357 can_catch on 5267520 cxa_begin_catch 5267520,stack,5267520 addref 5267520 Compiled code RE-throwing an exception, popped 5267520,5267520,stack, can_catch on 5267520 cxa_begin_catch 5267520,stack,5267520 addref 5267520 cxa_end_catch popped 5267520,5267520,stack, decref 5267520 EXPECTED RESULT: pre-main prep time: 23 ms Creating cleanup item Destroying cleanup item EXPECTED RESULT WITH EXCEPTION DEBUG: pre-main prep time: 24 ms Creating cleanup item Compiled code throwing an exception, 5267520,8,357 can_catch on 5267520 cxa_begin_catch 5267520,stack,5267520 addref 5267520 Compiled code RE-throwing an exception, popped 5267520,5267520,stack, 5267520 can_catch on 5267520 cxa_end_catch popped 5267520,5267520,stack, decref 5267520 cxa_begin_catch 5267520,stack,5267520 addref 5267520 cxa_end_catch popped 5267520,0,stack, decref 5267520 Destroying cleanup item decref freeing exception 5267520,0,stack, ======================================================================= Issue 2: Resuming exception unwinding causes crash when resumed exceptions have multiple references Repro: #include <iostream> struct NeedsCleanUp { const int item; NeedsCleanUp(int i) : item { i } { std::cout << "Creating cleanup item " << item << std::endl; } NeedsCleanUp(const NeedsCleanUp& src) : item { 100 + src.item } { std::cout << "Copying cleanup item " << src.item << " to " << item << std::endl; } ~NeedsCleanUp() { std::cout << "Destroying cleanup item " << item << std::endl; } }; int main(int argc, char* argv[]) { NeedsCleanUp ex { 1 }; std::exception_ptr exp1 { std::make_exception_ptr(ex) }; std::exception_ptr exp2 { exp1 }; try { [&exp1] { NeedsCleanUp cl { 2 }; // causes "resuming exception" // ref count reset std::rethrow_exception(exp1); } (); } catch (...) { } return 0; } Build and run: em++ -g -std=c++11 --emrun -s EXCEPTION_DEBUG=0 -o exc2.html exc2.cpp emrun --browser chrome exc2.html ACTUAL RESULT: pre-main prep time: 23 ms Creating cleanup item 1 Copying cleanup item 1 to 101 Copying cleanup item 101 to 201 Destroying cleanup item 101 Creating cleanup item 2 Destroying cleanup item 2 Destroying cleanup item 201 exception thrown: TypeError: Cannot read property 'refcount' of undefined,TypeError: Cannot read property 'refcount' of undefined at Object.decRef (http://localhost:6931/exc2.js:1564:20) at ___cxa_decrement_exception_refcount (http://localhost:6931/exc2.js:1578:18) at __ZNSt13exception_ptrD2Ev (http://localhost:6931/exc2.js:23642:2) at _main (http://localhost:6931/exc2.js:5993:3) at Object.asm._main (http://localhost:6931/exc2.js:65981:19) at Object.callMain (http://localhost:6931/exc2.js:66150:30) at doRun (http://localhost:6931/exc2.js:66208:60) at http://localhost:6931/exc2.js:66219:7 ACTUAL RESULT WITH EXCEPTION DEBUG: pre-main prep time: 22 ms Creating cleanup item 1 Copying cleanup item 1 to 101 Copying cleanup item 101 to 201 Compiled code throwing an exception, 5267520,8,360 can_catch on 5267520 cxa_begin_catch 5267520,stack,5267520 addref 5267520 addref 5267520 cxa_end_catch popped 5267520,5267520,stack, decref 5267520 Destroying cleanup item 101 addref 5267520 Creating cleanup item 2 addref 5267520 Compiled code RE-throwing an exception, popped 5267520,0,stack, can_catch on 5267520 decref 5267520 Destroying cleanup item 2 Resuming exception 5267520,5267520 can_catch on 5267520 cxa_begin_catch 5267520,stack,5267520 addref 5267520 decref 5267520 Destroying cleanup item 201 decref freeing exception 5267520,5267520,stack,5267520 no de-adjustment for unknown exception ptr 5267520 decref 5267520 exception thrown: TypeError: Cannot read property 'refcount' of undefined,TypeError: Cannot read property 'refcount' of undefined at Object.decRef (http://localhost:6931/exc2.js:1568:20) at ___cxa_decrement_exception_refcount (http://localhost:6931/exc2.js:1583:18) at __ZNSt13exception_ptrD2Ev (http://localhost:6931/exc2.js:23654:2) at _main (http://localhost:6931/exc2.js:6005:3) at Object.asm._main (http://localhost:6931/exc2.js:65993:19) at Object.callMain (http://localhost:6931/exc2.js:66162:30) at doRun (http://localhost:6931/exc2.js:66220:60) at http://localhost:6931/exc2.js:66231:7 EXPECTED RESULT: pre-main prep time: 22 ms Creating cleanup item 1 Copying cleanup item 1 to 101 Copying cleanup item 101 to 201 Destroying cleanup item 101 Creating cleanup item 2 Destroying cleanup item 2 Destroying cleanup item 201 Destroying cleanup item 1 EXPECTED RESULT WITH EXCEPTION DEBUG: pre-main prep time: 27 ms Creating cleanup item 1 Copying cleanup item 1 to 101 Copying cleanup item 101 to 201 Compiled code throwing an exception, 5267520,8,360 can_catch on 5267520 cxa_begin_catch 5267520,stack,5267520 addref 5267520 addref 5267520 cxa_end_catch popped 5267520,5267520,stack, decref 5267520 Destroying cleanup item 101 addref 5267520 Creating cleanup item 2 addref 5267520 Compiled code RE-throwing an exception, popped 5267520,0,stack,5267520 can_catch on 5267520 decref 5267520 Destroying cleanup item 2 Resuming exception 5267520,5267520 can_catch on 5267520 cxa_begin_catch 5267520,stack,5267520,5267520 addref 5267520 cxa_end_catch popped 5267520,5267520,stack,5267520 decref 5267520 decref 5267520 decref 5267520 Destroying cleanup item 201 decref freeing exception 5267520,0,stack,5267520 Destroying cleanup item 1
2016-10-09 04:27:05 +03:00
* Ray Brown <code@liquibits.com>
* Christopher Serr <christopher.serr@gmail.com>
2016-11-09 19:09:27 +03:00
* Aaron Ruß <aaron.russ@dfki.de> (copyright owned by DFKI GmbH)
* Vilibald Wanča <vilibald@wvi.cz>
* Alex Hixon <alex@alexhixon.com>
* Vladimir Davidovich <thy.ringo@gmail.com>
2017-09-28 22:23:00 +03:00
* Yuriy Levchenko <irov13@mail.ru>
2017-03-15 00:13:13 +03:00
* Dmitry Tolmachov <dmitolm@gmail.com>
2017-02-12 02:44:03 +03:00
* Dylan McKay <me@dylanmckay.io>
2016-12-19 01:28:23 +03:00
* Christophe Gragnic <cgragnic@netc.fr>
* Murphy McCauley <murphy.mccauley@gmail.com>
* Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
* Brad Grantham <grantham@plunk.org>
* Sam Clegg <sbc@chromium.org> (copyright owned by Google, Inc.)
2017-02-07 18:40:12 +03:00
* Joshua Lind <joshualind007@hotmail.com>
2017-02-15 10:16:05 +03:00
* Hiroaki GOTO as "GORRY" <gorry@hauN.org>
* Mikhail Kremnyov <mkremnyov@gmail.com> (copyright owned by XCDS International)
* Tasuku SUENAGA a.k.a. gunyarakun <tasuku-s-github@titech.ac>
* Vitorio Miguel Prieto Cilia <vdrbandeiras@gmail.com>
* Evan Wallace <evan.exe@gmail.com>
2017-03-10 19:59:35 +03:00
* Henning Pohl <henning@still-hidden.de>
2017-03-22 21:09:00 +03:00
* Tim Neumann <mail@timnn.me>
* Ondrej Stava <ondrej.stava@gmail.com> (copyright owned by Google, Inc.)
* Jakub Jirutka <jakub@jirutka.cz>
* Loo Rong Jie <loorongjie@gmail.com>
* Jean-François Geyelin <jfgeyelin@gmail.com>
* Matthew Collins <thethinkofdeath@gmail.com>
* Satoshi N. M <snmatsutake@yahoo.co.jp>
* Ryan Speets <ryan@speets.ca>
* Fumiya Chiba <fumiya.chiba@nifty.com>
2017-05-01 21:28:28 +03:00
* Ryan C. Gordon <icculus@icculus.org>
* Inseok Lee <dlunch@gmail.com>
* Yair Levinson (copyright owned by Autodesk, Inc.)
* Matjaž Drolc <mdrolc@gmail.com>
* James Swift <james@3dengineer.com> (copyright owned by PSPDFKit GmbH)
* Ryan Lester <ryan@cyph.com> (copyright owned by Cyph, Inc.)
* Nikolay Zapolnov <zapolnov@gmail.com>
* Nazar Mokrynskyi <nazar@mokrynskyi.com>
* Yury Delendik <ydelendik@mozilla.com> (copyright owned by Mozilla Foundation)
* Kenneth Perry <thothonegan@gmail.com>
* Jim Mussared <jim.mussared@gmail.com>
2017-07-25 13:02:31 +03:00
* Dirk Vanden Boer <dirk.vdb@gmail.com>
* Mitchell Foley <mitchfoley@google.com> (copyright owned by Google, Inc.)
* Oleksandr Chekhovskyi <oleksandr.chekhovskyi@gmail.com>
* Michael Siebert <michael.siebert2k@gmail.com>
* Jonathan Hale <squareys@googlemail.com>
* Etienne Brateau <etienne.brateau@gmail.com>
* Zhiming Wang <zmwangx@gmail.com>
* Jameson Ernst <jameson@jpernst.com>
* Yoan Lecoq <yoanlecoq.io@gmail.com>
* Jiajie Hu <jiajie.hu@intel.com> (copyright owned by Intel Corporation)
* Kamil Klimek <naresh@tlen.pl>
* José Carlos Pujol <josecpujol(at)gmail.com>
* Dannii Willis <curiousdannii@gmail.com>
* Erik Dubbelboer <erik@dubbelboer.com>
* Sergey Tsatsulin <tsatsulin@gmail.com>
* varkor <github@varkor.com>
* Stuart Knightley <website@stuartk.com>
* Amadeus Guo <gliheng@foxmail.com>
* Nathan Froyd <froydnj@gmail.com> (copyright owned by Mozilla Foundation)
* Daniel Wirtz <dcode@dcode.io>
* Kibeom Kim <kk1674@nyu.edu>
* Marcel Klammer <m.klammer@tastenkunst.com>
* Axel Forsman <axelsfor@gmail.com>
* Ebrahim Byagowi <ebrahim@gnu.org>
* Thorsten Möller <thorsten.moeller@sbi.ch>
* Michael Droettboom <mdroettboom@mozilla.com>
* Nicolas Bouquet <hgy01@hieroglyphe.net>
* Miguel Saldivar <miguel.saldivar22@hotmail.com>
2018-04-19 22:21:30 +03:00
* Gert Van Hoey <gert.vanhoey@gmail.com>
* Valtteri Heikkilä <rnd@nic.fi>
* Daniel McNab <daniel.mcnab6+emcc(at)gmail.com>
* Tyler Limkemann <tslimkemann42 gmail.com>
* Ben Smith <binji@google.com> (copyright owned by Google, Inc.)
* Sylvain Beucler <beuc@beuc.net>
* Patrik Weiskircher <patrik@weiskircher.name>
* Tobias Widlund <widlundtobias(at)gmail.com>
* Rob Fors <mail@robfors.com>
* Mike Frysinger <vapier@chromium.org> (copyright owned by Google, Inc.)
* Sébasiten Crozet <developer@crozet.re>
* Andrey Nagikh <andrey@nagih.ru>
* Dzmitry Malyshau <dmalyshau@mozilla.com> (copyright owned by Mozilla Foundation)
* Bjorn Swenson <tie.372@gmail.com>
* Ryhor Spivak <grisha@rusteddreams.net>
* Jan Schär <jscissr@gmail.com>
* Ryhor Spivak <grisha@rusteddreams.net>
* Alexander Bich <quyse0@gmail.com>
* Ashleigh Thomas <ashleighbcthomas@gmail.com>
* Veniamin Petrenko <bjpbjpbjp10@gmail.com>
* Ian Henderson <ian@ianhenderson.org>
* Siim Kallas <siimkallas@gmail.com>
* Carl Woffenden <cwoffenden@gmail.com> (copyright owned by Numfum GmbH)
* Patrick Berger <patrick.berger@xmail.net> (copyright owned by Compusoft Group)
* Alexander Frank Lehmann <alexander.frank.lehmann@compusoftgroup.com> (copyright owned by Compusoft Group)
* Tommy Nguyen <tn0502@gmail.com>
* Thomas Schander <info@thomasschander.com> (copyright owned by Enscape GmbH)
* Benjamin S. Rodgers <acdimalev@gmail.com>
* Paul Shapiro <paul@mymonero.com>
2018-08-11 19:19:34 +03:00
* Elmo Todurov <elmo.todurov@eesti.ee>
2018-10-02 05:16:59 +03:00
* Zoltán Žarkov <zeko@freecivweb.org>
* Roman Yurchak <rth.yurchak@pm.me>
* Hampton Maxwell <me@hamptonmaxwell.com>
* Eric Fiselier <ericwf@google.com> (copyright owned by Google, Inc.)
* Sirapop Wongstapornpat <sirapop.wongstapornpat@student.oulu.fi>
* Matt Kane <m@mk.gg>
* Altan Özlü <altanozlu7@gmail.com>
* Mary S <ipadlover8322@gmail.com>
* Martin Birks <mbirks@gmail.com>
* Kirill Smelkov <kirr@nexedi.com> (copyright owned by Nexedi)
* Lutz Hören <laitch383@gmail.com>
* Pedro K Custodio <git@pedrokcustodio.com>
2018-12-04 21:20:16 +03:00
* Nicolas Allemand <contact@nicolasallemand.com>
* Gabriel Cuvillier <contact@gabrielcuvillier.pro>
* Thomas Lively <tlively@google.com> (copyright owned by Google, Inc.)
* Brandon Surmanski <b.surmanski@gmail.com>
* Rian Hunter <rian@alum.mit.edu>
* Kai Ninomiya <kainino@chromium.org> (copyright owned by Google, Inc.)
* Mickaël Schoentgen <contact@tiger-222.fr>
* Renaud Leroy <capitnflam@gmail.com>
* Florian Stellbrink <florian@stellbr.ink>
* Shane Peelar <lookatyouhacker@gmail.com>
* Alessandro Pignotti <alessandro@leaningtech.com>
* Zheng Tao Lee <zhengtao.lee@autodesk.com> (copyright owned by Autodesk, Inc.)
* Martina Kraus <kraus.martina.m@googlemail.com>
* Jacob Adelgren <jake@eevo.com>
* Ingvar Stepanyan <me@rreverser.com>
* Ben Trapani <ben.trapani1995@gmail.com> (copyright owned by Microsoft, Inc.)
* Tim Lander <tim57282hotmail.com>
* Jacob Greenfield <jacob@jacobgreenfield.me>
* Joseph Kogut <joseph.kogut@gmail.com>
* Yi Zhang <milizhang@gmail.com>
2019-03-28 05:41:34 +03:00
* Marc Abramowitz <msabramo@gmail.com>
* Daniel Ruf <daniel@daniel-ruf.de>
* Timothy Trindle <titrindl@microsoft.com> (copyright owned by Microsoft, Inc.)
* Matthew Andres Moreno <m.more500@gmail.com>
* Eric Mandel <eric@cfa.harvard.edu>
* Anthony Catel <paraboul@gmail.com>
* Simon Cooper <simon.d.cooper@hotmail.co.uk>
* Amir Rasouli <arasouli91@gmail.com>
2019-05-13 18:53:37 +03:00
* Nico Weber <thakis@chromium.org>
* Bas Doorn <code@keyn.app> (copyright owned by Keyn B.V.)
* Adam Bujalski <a.bujalski@samsung.com> (copyright owned by Samsung Electronics)
* Guanzhong Chen <gzchen@google.com> (copyright owned by Google, Inc.)
* Denis Serebro <densilver3000@gmail.com>
* Lucas Ramage <ramage.lucas@protonmail.com>
* Andy Wingo <wingo@igalia.com> (copyright owned by Igalia)
* Philipp Gloor <philipp.gloor@pdf-tools.com> (copyright owned by PDF Tools AG)
* Joshua Minter <josh@minteronline.com> (copyright owned by Clipchamp Pty Ltd.)
* Ferris Kwaijtaal <ferrispc@hotmail.com>
* Konstantin Podsvirov <konstantin@podsvirov.pro>
* Eduardo Bart <edub4rt@gmail.com>
* Zoltan Varga <vargaz@gmail.com> (copyright owned by Microsoft, Inc.)
* Fernando Serboncini <fserb@google.com>
* Christian Clauss <cclauss@me.com> (copyright owned by IBM)
* Henry Kleynhans <hkleynhans@bloomberg.net> (copyright owned by Bloomberg L.P.)
* FUJI Goro <g.psy.va@gmail.com>
* Egor Suvorov <esuvorov@think-cell.com> (copyright owned by think-cell Software GmbH)
* James Kuszmaul <jabukuszmaul@gmail.com>
* Wei Mingzhi <whistler_wmz@users.sourceforge.net>
* Sergey karchevsky <sergey.ext@gmail.com>
* Ajay Patel <patel.ajay285@gmail.com>
* Adrien Devresse <adev@adev.name>
* Petr Penzin <petr.penzin@intel.com> (copyright owned by Intel Corporation)
* Tayeb Al Karim <tay@google.com> (copyright owned by Google, Inc.)
* Andrei Alexeyev <akari@taisei-project.org>
* Cesar Guirao Robles <cesar@no2.es>
* Mehdi Sabwat <mehdisabwat@gmail.com>
* MinganMuon <mingan-muon@outlook.com>
* Jonathan Feinberg <feinberg@google.com>
* Osman Turan <osman@osmanturan.com>
* Jaikanth J <jaikanthjay46@gmail.com>
* Gernot Lassnig <gernot.lassnig@gmail.com>
* Christian Boos <cboos@bct-technology.com>
* Erik Scholz <greenNO@SPAMg-s.xyz>
* Michael de Lang <kingoipo@gmail.com>
* Gergely Nagy <ngg@tresorit.com>
* Jan Habermann <jan@habermann.io>
* John Granström <granstrom.john@gmail.com>
* Clemens Backes <clemensb@google.com> (copyright owned by Google, Inc.)
* Tibor Klajnscek <tiborkl@numfum.com>
* Benjamin Golinvaux <benjamin@golinvaux.com>
* Peter Salomonsen <pjsalomonsen@gmail.com>
* Niklas Fiekas <niklas.fiekas@backscattering.de>