Brussels / 31 January & 1 February 2015

schedule

Emacs and Elisp on the Chromebook


Emacs contains one of the most widely used Lisp dialects, Elisp. 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.

Speakers

Pete Williamson

Attachments

Links