CrossBridge
{{Infobox software
| title = CrossBridge
| logo =
| logo caption =
| logo alt =
| logo size =
| collapsible =
| screenshot =
| screenshot size =
| screenshot alt =
| caption =
| other_names = Project Alchemy
| author =
| developer = Adobe Systems
| released = {{Start date and age|2008||df=yes/no}}
| ver layout =
| latest release version =
| latest release date =
| latest preview version =
| latest preview date =
| repo =
| qid =
| programming language =
| middleware =
| engine =
| operating system =
| platform =
| included with =
| replaces =
| replaced_by =
| service_name =
| size =
| standard =
| language =
| language count =
| language footnote =
| genre =
| license = Open-source
| website =
| AsOf =
}}
CrossBridge is an open-source toolset developed by Adobe Systems, that cross-compiles C and C++ code to run in Adobe Flash Player or Adobe AIR.[https://adobe-flash.github.io/crossbridge/ CrossBridge by Adobe], at GitHub Projects compiled with CrossBridge run up to 10 times faster than ActionScript 3 projects.{{cite web |url=http://labs.adobe.com/wiki/index.php/Alchemy:FAQ |title=Alchemy:FAQ |accessdate=May 5, 2012 |url-status=dead |archiveurl=https://web.archive.org/web/20120505202706/http://labs.adobe.com/wiki/index.php/Alchemy%3AFAQ |archivedate=May 5, 2012 }}, Adobe Labs, "ASC performs few optimizations at this time"{{cite web |last=Zotov |first=Peter |url=http://whitequark.org/blog/2012/05/06/reaching-the-limits-of-adobe-stupidity/ |title=Reaching the Limits of Adobe Stupidity – whitespace |publisher=Whitequark.org |date=2012-05-06 |accessdate=2012-10-27 |archive-date=2012-10-15 |archive-url=https://web.archive.org/web/20121015232628/http://whitequark.org/blog/2012/05/06/reaching-the-limits-of-adobe-stupidity/ |url-status=dead }}[http://labs.adobe.com/wiki/index.php/Alchemy:FAQ Alchemy:FAQ] {{webarchive|url=https://web.archive.org/web/20120505202706/http://labs.adobe.com/wiki/index.php/Alchemy%3AFAQ |date=May 5, 2012 }}, Adobe Labs[http://llvm.org/devmtg/2009-10/Petersen_OptimizingActionScriptBytecode.pdf Optimizing ActionScript Bytecode using LLVM], Adobe[http://unitzeroone.com/blog/2008/11/28/adobe-alchemy-is-it-actionscript-heresy/ Adobe Alchemy, is it ActionScript heresy?] {{Webarchive|url=https://web.archive.org/web/20120819072030/http://unitzeroone.com/blog/2008/11/28/adobe-alchemy-is-it-actionscript-heresy/ |date=2012-08-19 }}, Unit Zero One CrossBridge was also known as "Alchemy" and the "Flash Runtime C++ Compiler", or "FlasCC".[http://blogs.adobe.com/labs/archives/2008/11/alchemy_release.html Alchemy Released on Labs], Adobe Blogs, November 17, 2008[http://blogs.adobe.com/labs/archives/2008/12/alchemy_updates.html Alchemy Updates Released on Labs], Adobe Blogs, December 11, 2008[http://blogs.adobe.com/labs/archives/2012/10/project-alchemy-is-now-the-flash-runtime-c-compiler-flascc.html Project “Alchemy” is now the Flash Runtime C++ Compiler (FlasCC)], Adobe Blogs, October 8, 2012
CrossBridge uses high-performance memory-access opcodes in the Flash Player (known as "Domain Memory") to work with in-memory data quickly.[http://gaming.adobe.com/technologies/flascc/ FlasCC for Flash Player], Adobe Gaming {{webarchive |url=https://web.archive.org/web/20130525005202/http://gaming.adobe.com/technologies/flascc/ |date=May 25, 2013 }} CrossBridge uses the LLVM and GCC as compiler backends, in order to compile C++ code, optimize it, and transform it to run within AVM2 (ActionScript Virtual Machine 2). Programs built with CrossBridge are up to 10 times faster than normal ActionScript code, but up to 2× to 10× slower than native C++ code.[http://labs.adobe.com/technologies/alchemy/ Alchemy] {{Webarchive|url=https://web.archive.org/web/20201004192135/https://labs.adobe.com/technologies/alchemy/ |date=2020-10-04 }}, Adobe Labs
CrossBridge can generate Flash Player movies (.swf files), or Flash Libraries (.swc files), which can then be used by larger projects written in ActionScript 3 and compiled using the free Apache Flex SDK (formerly the Adobe Flex SDK). CrossBridge also uses the GPU-based 3D rendering acceleration present in Flash Player 11 (known as Stage3D).[http://gaming.adobe.com/technologies/xc/ XC APIs], Adobe Gaming {{webarchive |url=https://web.archive.org/web/20130425014349/http://gaming.adobe.com/technologies/xc/ |date=April 25, 2013 }}
Using CrossBridge, Adobe ported OpenGL for use within Flash Player Stage3D and released it as an open-source project in 2012.[https://github.com/adobe/GLS3D OpenGL for Stage3D], GitHub project hosting The Lua programming language (version 5.1) was also ported to run in Flash Player using CrossBridge, and released on Google Code.[https://code.google.com/p/lua-alchemy/ lua-alchemy], Port of the Lua programming language for ActionScript using Alchemy, Google Code CrossBridge-compiled projects also enabled running client-side digital signal processing in real-time,[https://temptonik.com/en/news/Temptonik%20Manifesto,589824 Real-time pitch detection in AVM2], Temptonik, January 2015 including fast Fourier transform and Mexican hat wavelet transform.
History
In 2008, CrossBridge was released by Adobe as "Project Alchemy", on the Adobe Labs website. It enabled compilation of specially modified C++ projects to SWF, using the LLVM and GCC compilers.
In 2012, in an attempt to monetize Flash Player, Adobe restricted use of the Stage3D and Domain Memory features of Flash Player under the "Premium Features" brand. The "Premium Features" were licensed for use and publishers were to pay royalties to Adobe for use of the same.[http://blogs.adobe.com/flashplayer/2012/07/premium-features-update.html Premium Features for Flash Player] {{Webarchive|url=https://web.archive.org/web/20140719123650/http://blogs.adobe.com/flashplayer/2012/07/premium-features-update.html |date=2014-07-19 }}, Adobe Flash Team Blog, Adobe Project Alchemy was commercially released as the Flash Runtime C++ Compiler.
In 2013, Adobe open-sourced the Flash Runtime C++ Compiler as CrossBridge, and released it on the GitHub code hosting website.[http://blogs.adobe.com/flashplayer/2013/06/open-source-flash-c-compiler-crossbridge.html Open Source Flash C++ Compiler, CrossBridge] {{Webarchive|url=https://web.archive.org/web/20140325084106/http://blogs.adobe.com/flashplayer/2013/06/open-source-flash-c-compiler-crossbridge.html |date=2014-03-25 }}, Adobe Blogs, June 25, 2013 The "Premium Features" were also made free for use, and no longer required licensing or royalties.[https://www.adobe.com/devnet/flashplayer/articles/premium-features.html Adobe Premium Features for Flash Player], Adobe Devnet
See also
- asm.js
- Emscripten
- Google Native Client (NaCl)
- WebAssembly – an in-development bytecode for browsers
References
{{Reflist}}
External links
- {{official website|https://adobe-flash.github.io/crossbridge/index.htm}}
- [https://www.adobe.com/devnet-docs/flascc/README.html Adobe Flash C++ Compiler (FlasCC)] from Adobe devnet
- {{github|adobe-flash/crossbridge|adobe-flash / crossbridge}}
- {{sourceForge|crossbridge|CrossBridge}}
- {{github|vpmedia/crossbridge|vpmedia / crossbridge}}
- {{sourceForge|crossbridge-community|CrossBridge-Community}}
{{Adobe Flash}}