BROWSIX: Bridging the Gap Between Unix and the Browser Bobby Powers, John Vilk, Emery D
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Emscripten: an LLVM to Javascript Compiler
Emscripten: An LLVM to JavaScript Compiler Alon Zakai Mozilla What? Why? Compiling to JavaScript ● The web is everywhere – PCs to iPads – No plugins, no installation required – Built on standards ● The web runs JavaScript Existing Compilers to JavaScript ● Google Web Toolkit: Java (Gmail, etc.) ● CoffeeScript ● Pyjamas: Python ● SCM2JS: Scheme ● JSIL: .NET bytecode ● (and many more) ● But C and C++ are missing! Emscripten ● Enables compiling C and C++ into JavaScript ● Written in JavaScript ● Open source http://emscripten.org https://github.com/kripken/emscripten Demos! ● Bullet ● SQLite ● Python, Ruby, Lua ● Real-world code – Large, complex codebases ● Manual ports exist – Typically partial and not up to date The Big Picture C or C++ LLVM Bitcode JavaScript Low Level Virtual Machine (LLVM) ● A compiler project (cf. GCC) ● Intermediate Representation: LLVM bitcode – Very well documented – Great tools ● Much easier to compile LLVM bitcode than compile C or C++ directly! How? Code Comparison #include <stdio.h> int main() { printf(“hello, world!\n”); return 0; } Code Comparison @.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 define i32 @main() { entry: %retval = alloca i32, align 4 call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) store i32 0, i32* %retval ret i32 %retval } Code Comparison define i32 @main() { function _main() { entry: %retval = alloca i32, var _retval; align 4 call i32 (i8*, ...)* _printf (..); @printf (..) store i32 0, i32* _retval = 0; %retval ret -
X E TEX Live
X TE EX Live Jonathan Kew SIL International Horsleys Green High Wycombe Bucks HP14 3XL, England jonathan_kew (at) sil dot org 1 X TE EX in TEX Live in the preamble are sufficient to set the typefaces through- out the document. ese fonts were installed by simply e release of TEX Live 2007 marked a milestone for the dropping the .otf or .ttf files in the computer’s Fonts X TE EX project, as the first major TEX distribution to in- folder; no .tfm, .fd, .sty, .map, or other TEX-related files clude X TE EX (version 0.996) as an integral part. Prior to had to be created or installed. this, X TE EX was a tool that could be added to a TEX setup, Release 0.996 of X T X also provides some enhance- but version and configuration differences meant that it was E E ments over earlier, pre-T X Live versions. In particular, difficult to ensure smooth integration in all cases, and it was E there are new primitives for low-level access to glyph infor- only available for users who specifically chose to seek it out mation (useful during font development and testing); some and install it. (One exception to this is the MacTEX pack- preliminary support for the use of OpenType math fonts age, which has included X TE EX for the past year or so, but (such as the Cambria Math font shipped with MS Office this was just one distribution on one platform.) Integration 2007); and a variety of bug fixes. -
Tlaunch: a Launcher for a TEX Live System
TLaunch: a launcher for a TEX Live system Siep Kroonenberg June 29, 2017 This manual is for tlaunch, the TEX Live Launcher, version 0.5.3. Copyright © 2017 Siep Kroonenberg. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty. Contents 1 The launcher5 1.1 Introduction............................5 1.1.1 Localization........................6 1.2 Modes...............................6 1.2.1 Normal mode.......................6 1.2.2 Initializing.........................6 1.2.3 Forgetting.........................6 1.3 Using scripts............................7 1.4 The ini file.............................7 1.4.1 Location..........................7 1.4.2 Encoding..........................7 1.4.3 Syntax...........................7 1.4.4 The Strings section....................9 1.4.5 Sections for filetype associations (FTAs)........9 1.4.6 Sections for utility scripts................ 10 1.4.7 The built-in functions.................. 10 1.4.8 Menus and buttons.................... 11 1.4.9 The General section.................... 12 1.5 Editor choice............................ 12 1.6 Launcher-based installations................... 13 1.6.1 The tlaunchmode script................. 14 1.6.2 TEX Live Manager..................... 14 2 The launcher at the RUG 15 2.1 Historical.............................. 15 2.2 RES desktops........................... 16 2.3 Components of the rug TEX installation............ 16 2.4 Directory organization...................... 17 2.5 Fixes for add-ons......................... 17 2.5.1 TeXnicCenter....................... 17 2.5.2 TeXstudio......................... 18 2.5.3 SumatraPDF........................ 18 2.5.4 LyX............................. 18 3 CONTENTS 4 2.6 Moving the XeTEX font cache................. -
Webassembly a New World of Native Exploits on the Web Agenda
WebAssembly A New World Of Native Exploits On The Web Agenda • Introduction • The WebAssembly Platform • Emscripten • Possible Exploit Scenarios • Conclusion Wasm: What is it good for? ● Archive.org web emulators ● Image/processing ● Video Games ● 3D Modeling ● Cryptography Libraries ● Desktop Application Ports Wasm: Crazy Incoming ● Browsix, jslinux ● Runtime.js (Node), Nebulet ● Cervus ● eWASM Java Applet Joke Slide ● Sandboxed ● Virtual Machine, runs its own instruction set ● Runs in your browser ● Write once, run anywhere ● In the future, will be embedded in other targets What Is WebAssembly? ● A relatively small set of low-level instructions ○ Instructions are executed by browsers ● Native code can be compiled into WebAssembly ○ Allows web developers to take their native C/C++ code to the browser ■ Or Rust, or Go, or anything else that can compile to Wasm ○ Improved Performance Over JavaScript ● Already widely supported in the latest versions of all major browsers ○ Not limited to running in browsers, Wasm could be anywhere Wasm: A Stack Machine Text Format Example Linear Memory Model Subtitle Function Pointers Wasm in the Browser ● Wasm doesn’t have access to memory, DOM, etc. ● Wasm functions can be exported to be callable from JS ● JS functions can be imported into Wasm ● Wasm’s linear memory is a JS resizable ArrayBuffer ● Memory can be shared across instances of Wasm ● Tables are accessible via JS, or can be shared to other instances of Wasm Demo: Wasm in a nutshell Emscripten ● Emscripten is an SDK that compiles C/C++ into .wasm binaries ● LLVM/Clang derivative ● Includes built-in C libraries, etc. ● Also produces JS and HTML code to allow easy integration into a site. -
Travels in TEX Land: Choosing a TEX Environment for Windows
The PracTEX Journal TPJ 2005 No 02, 2005-04-15 Rev. 2005-04-17 Travels in TEX Land: Choosing a TEX Environment for Windows David Walden The author of this column wanders through world of TEX, as a non-expert, reporting what he observes and learns, which hopefully will be interesting to other non-expert users of TEX. 1 Introduction This column recounts my experiences looking at and thinking about different ways TEX is set up for users to go through the document-composition to type- setting cycle (input and edit, compile, and view or print). First, I’ll describe my own experience randomly trying various TEX environments. I suspect that some other users have had a similar introduction to TEX; and perhaps other users have just used the environment that was available at their workplace or school. Then I’ll consider some categories for thinking about options in TEX setups. Last, I’ll suggest some follow-on steps. Since I use Microsoft Windows as my computer operating system, this note focuses on environments that are available for Windows.1 2 My random path to choosing a TEX environment 2 I started using TEX in the late 1990s. 1But see my offer in Section 4. 2 While I started using TEX, I switched from TEX to using LATEX as soon as I discovered LATEX existed. Since both TEX and LATEX are operated in the same way, I’ll mostly refer to TEX in this note, since that is the more basic system. c 2005 David C. Walden I don’t quite remember my first setup for trying TEX. -
Javascript to Webassembly Cross Compiler Studienarbeit
JavaScript to WebAssembly Cross Compiler Studienarbeit Abteilung Informatik Hochschule für Technik Rapperswil Herbstsemester 2018 Autoren: Matteo Kamm, Mike Marti Betreuer: Prof. Dr. Luc Bläser Projektpartner: Institute for Networked Solutions Inhaltsverzeichnis 1 Abstract 3 2 Einführung 4 2.1 Ausgangslage . .4 2.2 Übersicht . .5 2.2.1 Beispiel . .6 2.3 Struktur des Berichts . .7 3 Language Set 8 3.1 Grundsatz des Subsets . .8 3.2 Typen . .9 3.3 Unterstützte Sprachkonstrukte . .9 4 Cross Compilation 11 4.1 Typinferenz . 11 4.2 Template-Based Code Generation . 11 4.2.1 Unäre Operatoren . 12 4.2.2 Binäre Operationen . 12 4.2.3 Expression Statements . 13 4.2.4 Arrayzugriffe . 13 4.3 Control Flow . 15 4.3.1 Block Statement . 15 4.3.2 Branching . 15 4.3.3 While-Loop . 17 4.3.4 For-Loop . 19 4.4 Variablen-Allokation . 19 4.5 Funktionsaufrufe . 20 5 Laufzeitunterstützung 21 5.1 Prüfen der Funktionssignatur . 21 5.2 Kopieren der Array Parameter . 21 5.3 Konvertieren des zurückgegebenen Resultats . 21 5.4 Out Parameter . 21 5.5 Speicher . 22 5.5.1 Import . 22 5.5.2 Export . 22 6 Auswertung 23 6.1 Testfälle . 23 6.2 Setup . 23 6.3 Resultate . 24 6.3.1 Speedup . 24 6.3.2 Varianz . 26 6.3.3 Vergleich zu C++ . 27 6.3.4 Webpack Development Modus . 28 6.4 Fazit . 28 7 Schlussfolgerung 29 7.1 Ausblick . 29 1 Anhang 30 A Erläuterung Language Set 30 A.1 Typen . 30 A.2 Numerische Erweiterung . 30 A.3 Abweichungen der binären Operatoren zu JavaScript . -
About Basictex-2021
About BasicTeX-2021 Richard Koch January 2, 2021 1 Introduction Most TeX distributions for Mac OS X are based on TeX Live, the reference edition of TeX produced by TeX User Groups across the world. Among these is MacTeX, which installs the full TeX Live as well as front ends, Ghostscript, and other utilities | everything needed to use TeX on the Mac. To obtain it, go to http://tug.org/mactex. 2 Basic TeX BasicTeX (92 MB) is an installation package for Mac OS X based on TeX Live 2021. Unlike MacTeX, this package is deliberately small. Yet it contains all of the standard tools needed to write TeX documents, including TeX, LaTeX, pdfTeX, MetaFont, dvips, MetaPost, and XeTeX. It would be dangerous to construct a new distribution by going directly to CTAN or the Web and collecting useful style files, fonts and so forth. Such a distribution would run into support issues as the creators move on to other projects. Luckily, the TeX Live install script has its own notion of \installation packages" and collections of such packages to make \installation schemes." BasicTeX is constructed by running the TeX Live install script and choosing the \small" scheme. Thus it is a subset of the full TeX Live with exactly the TeX Live directory structure and configuration scripts. Moreover, BasicTeX contains tlmgr, the TeX Live Manager software introduced in TeX Live 2008, which can install additional packages over the network. So it will be easy for users to add missing packages if needed. Since it is important that the install package come directly from the standard TeX Live distribution, I'm going to explain exactly how I installed TeX to produce the install package. -
Tugboat, Volume 33 (2012), No. 1 53 TEX on Windows: Miktex Or TEX Live? Joseph Wright on Windows, There Are Two Actively-Develop
TUGboat, Volume 33 (2012), No. 1 53 TEX on Windows: MiKTEX or TEX Live? A reminder that MiKTEX and TEX Live are not the only choices. W32TEX (Kakuto, 2012) is popular Joseph Wright in the far east. As well as being a TEX system in On Windows, there are two actively-developed free its own right, it is the source of the Windows binar- TEX systems with similar coverage: MiKTEX (Schenk, ies for TEX Live, and TEX Live acquires more CJK 2011) and TEX Live (TEX Users Group, 2011). The support from it every year. For users focussed on good news is that there is a lot of similarity between ConTEXt, ConTEXt standalone (Pragma ADE, 2012) the two systems, so for most users both systems is probably the best way to go (it uses the W32TEX are equally usable, and (LA)TEX documents are port- binaries on Windows). There are also the commer- able between them. However, there are differences cial options, for example BaKoMa TEX (BaKoMa and depending on what you need these might be Soft., 2011) or PCTEX (Personal TEX, Inc., 2011). important. However, for most users it comes down to a choice between the ‘big two’. • The default settings install everything for TEX Live, but only a minimal set of packages for References MiKT X. MiKT X will then install extra pack- E E BaKoMa Soft. “BaKoMa T X 9.77”. ages ‘on the fly’, while T X Live does not (there E E http://www.bakoma-tex.com/, 2011. is a package to do that in TEX Live, but it is aimed at GNU/Linux users). -
Hi, My Name Is Chad Ausen, Technical Director at IMVU, and Today We're Go
Hi, my name is Chad Aus0n, technical director at IMVU, and today we’re going to talk about a library we’ve developed for connec0ng C++ and JavaScript with Emscripten. 1 2 IMVU is an online social plaorm where you can sign up, dress up an avatar, and meet people from all around the world. We offer other ac0vi0es such as games as well. 3 The content in our world is created by our customers, and to our knowledge, we have the largest catalog of 3D virtual goods on the Internet. 4 We currently offer a downloadable applicaon for Windows and Mac. Windows and Mac are great plaorms, but in recent years, other plaorms have grown to prominence. We’d like our content available everywhere: mobile plaorms, desktop, server-side renderers, and even the web browser! For almost all plaorms, it’s obvious that C++ is a great choice for the core engine. However, our big ques0on was, what about the web browser? In 2011, I benchmarked an upcoming tool called Emscripten and was quite impressed. 5 Emscripten works very well in prac0ce, so the implicaon is that C++ is the portable, high-performance language EVERYWHERE. 6 Here is our Emscripten applicaon running in Firefox. UI is HTML and CSS. Chat over WebSockets, graphics in WebGL. 7 asm.js is the subset of JavaScript that can be stacally compiled into machine code. More informaon at h`p://asmjs.org/ 8 The C heap is stored in an ArrayBuffer in JavaScript. One con0guous blob of memory. This memory is indexed by eight different typed array views that alias each other. -
TEX-Collection 2003 the TEX Live Guide Sebastian Rahtz, Editor [email protected]
TEX-Collection 2003 The TEX Live Guide Sebastian Rahtz, editor [email protected] http://tug.org/texlive/ TEX Collection TEX Live + CTAN 2CDs+DVD Edition 9/2003 DANTE e.V. Postfach 10 18 40 69008 Heidelberg [email protected] www.dante.de Editor of TEX Live: Sebastian Rahtz – http://www.tug.org/texlive Editor of CTAN snapshot: Manfred Lotz – http://www.ctan.org AsTEX – CervanTEX – CSTUG – CTUG – CyrTUG – DK-TUG – Estonian User Group – εφτ – GUit – GUST – GUTenberg – GUTpt – ITALIC – KTUG – Lietuvos TEX’o Vartotoju˛Grupe˙ – MaTEX – Nordic TEX Group – NTG – TEXCeH – TEX México – Tirant lo TEX – TUG – TUGIndia – TUG-Philippines – UK TUG – ViêtTUG Documentation contacts: Czech/Slovak Petr Sojka [email protected] Janka Chlebíková chlebikj (at) dcs.fmph.uniba.sk English Karl Berry [email protected] French Fabrice Popineau [email protected] German Volker RW Schaa [email protected] Polish Staszek Wawrykiewicz [email protected] Russian Boris Veytsman [email protected] 9 January 2004 1 CONTENTS 2 Contents 1 Introduction 3 1.1 Basic usage of TEX Live ................................... 3 1.2 Getting help .......................................... 3 2 Structure of TEX Live 4 2.1 Multiple distributions: live, inst, demo ............................ 4 2.2 Top level directories ...................................... 5 2.3 Extensions to TEX ....................................... 5 2.4 Other notable programs in TEX Live ............................. 5 3 Unix installation 6 3.1 Running TEX Live directly from media (Unix) ........................ 6 3.2 Installing TEX Live to disk .................................. 8 3.3 Installing individual packages to disk ............................. 10 4 Post-installation 12 4.1 The texconfig program .................................... 12 4.2 Testing the installation .................................... 13 5 Mac OS X installation 14 5.1 i-Installer: Internet installation ............................... -
Static Typescript
1 Static TypeScript 56 2 57 3 An Implementation of a Static Compiler for the TypeScript Language 58 4 59 5 60 6 Thomas Ball Peli de Halleux Michał Moskal 61 7 Microsoft Research Microsoft Research Microsoft Research 62 8 Redmond, WA, United States Redmond, WA, United States Redmond, WA, United States 63 9 [email protected] [email protected] [email protected] 64 10 Abstract 65 11 66 12 While the programming of microcontroller-based embed- 67 13 dable devices typically is the realm of the C language, such 68 14 devices are now finding their way into the classroom forCS 69 15 education, even at the level of middle school. As a result, the 70 16 use of scripting languages (such as JavaScript and Python) 71 17 for microcontrollers is on the rise. 72 18 We present Static TypeScript (STS), a subset of TypeScript (a) (b) 73 19 (itself, a gradually typed superset of JavaScript), and its com- 74 20 piler/linker toolchain, which is implemented fully in Type- Figure 1. Two Cortex-M0 microcontroller-based educational 75 21 Script and runs in the web browser. STS is designed to be use- devices: (a) the BBC micro:bit has a Nordic nRF51822 MCU 76 22 ful in practice (especially in education), while being amenable with 16 kB RAM and 256 kB flash; (b) Adafruit’s Circuit Play- 77 23 to static compilation targeting small devices. A user’s STS ground Express (https://adafruit.com/products/3333) has an 78 24 program is compiled to machine code in the browser and Atmel SAMD21 MCU with 32 kB RAM and 256 kB flash. -
Editorial Manager 1
LaTeX Guide, FAQs, and Resources for EM/PM (Updated May 2021) Aries Systems Corporation 50 High Street, Suite 21 • North Andover, MA 01845 PH +1 978.975.7570 CONFIDENTIAL AND PROPRIETARY Copyright © 2021, Aries Systems Corporation This document is the confidential and proprietary information of Aries Systems Corporation, and may not be disseminated or copied without the express written permission of Aries Systems Corporation. The information contained in this document is tentative, and is provided solely for planning purposes of the recipient. The features described for this software release are likely to change before the release design and content are finalized. Aries Systems Corporation assumes no liability or responsibility for decisions made by third parties based upon the contents of this document, and shall in no way be bound to performance therefore. Contents LaTeX Guide: Submitting LaTeX Files to Editorial Manager ............................................... 1 Quick troubleshooting............................................................................................................................ 1 Recommended upload order of LaTeX submission files ...................................................... 1 Submission process ................................................................................................................................ 2 Frequently Asked Questions ........................................................................................................ 5 Which TeX system is included in EM?