June 17th 2015: Porting Emacs via Native Client

Time and Location

June 17th, 2015 at 7:00 PM
Townsend Room, Bldg 41, Room 1511, NOTE: THIS IS NOT OUR NORMAL MEETING ROOM!!!!
Microsoft Campus,
156th Ave NE,
Redmond, WA 98052.


As the preferred text editor for a multitude of software developers, Emacs has been ported to a wide range of platforms. Recently, Emacs has come to the Web by way of a technology called Native Client. This talk explores the unique challenges of porting Emacs and Elisp to Native Client and the browser.

Native Client (NaCl), is an open-source technology that allows native machine code to run securely sandboxed in the browser. Two layers of sandboxing, a static verification inner sandbox combined with Chrome’s outer process sandbox, ensure users can safely run untrusted applications. Modified GCC and an LLVM based toolchains allow applications to target NaCl. An I/O API called PPAPI, mirroring the security constraints of Javascript, is provided to NaCl applications.

This talk will focus on the challenges of porting Emacs to NaCl including: emulation of POSIX APIs—processes, sockets, files—on top of Web-centric APIs, porting an X11 server and client libraries, adapting Elisp to NaCl’s memory layout, and packaging for an integrated experience. I will talk about the challenges of debugging the lisp that is a part of the editor itself. I’ll demonstrate Emacs running in Google Chrome and explorer how it can interoperate with other developer tools we’ve ported to the browser.


Pete has worked as a programmer for over 25 years at Boeing, Microsoft, Amazon, Google, and other places. He has been attending NWCPP off and on for a lot of that time.


Video | Slides

A Word From Our Sponsor

CyberData Corporation was founded by Lloyd Moore in 1996. CyberData specializes in providing custom software and hardware solutions for robotics, machine vision, embedded systems and industrial automation applications. Our mission is to create high quality, innovative technology for the global marketplace.

CyberData also conducts internal research into the areas of robotics, machine vision and artificial intelligence. Specific technologies are then either licensed, sold as products or released as open source, depending on the specific nature and goals of the project. Technological developments are also provided directly to our clients through our consulting services.