Doctor Chris Seaton

I'm a Researcher (Senior Staff Engineer) at Shopify, where I work on the Ruby programming Language, and a Visitor at the University of Manchester.
I was formerly a Research Manager at the Oracle Labs Virtual Machine Research Group, where I led the TruffleRuby implementation of Ruby, and worked on other language and virtual machine projects. Before this I completed a PhD at Manchester where I researched programming languages and irregular parallelism, and an MEng at the University of Bristol on languages with mutable syntax and semantics.
In my spare time I'm Squadron Leader of the Cheshire Yeomanry squadron of the Queen's Own Yeomanry, Cheshire's historic reserve light cavalry squadron.
Projects
TruffleRuby
TruffleRuby started as my internship project at Oracle Labs in early 2013. It is an implementation of the Ruby programming language on the JVM, using the Graal JIT compiler and the Truffle AST interpreter framework. RubyTruffle can achieve peak performance well beyond that possible in JRuby at the same time as being a significantly simpler system. In early 2014 it was open sourced and integrated into JRuby, then in 2017 it became its own project, and now it is part of GraalVM. It was the subject of my PhD, and since 2019 Shopify has sponsored development.
- Finalist, Ruby Prize, 2016
Mersey Burns
Mersey Burns is a free iPhone® app for doctors to calculate how much fluid to give to a burns patient, making a traditional pen-and-paper method faster and more accurate. It is the first app in the UK regulated and CE marked as a medical device.
- Winner, Excellence in Mobile Healthcare and overall winner, eHealth Awards, 2013
- Highly Commended, Improving Care with Technology, Health Service Journal Awards, 2013
- Highly Commended, Innovative Mobile App of the Year, BCS UK IT Industry Awards, 2013
- Highly Commended, eHealth Awards, 2012
- Winner, NHS North West Innovations Awards, 2011
The Ruby Bibliography
The Ruby Bibliography is the central list of academic research papers and theses about the Ruby programming language. I compile and currate the list as a community service.
Katahdin
Katahdin was my master’s work at the University of Bristol. It is a research programming language where the syntax and semantics of the language are mutable at runtime. This allows for multiple languages to be implemented in a single runtime, and for different languages to be used in different parts of the same program, the same function, or even the same line. My research built on contemporary work on parsing expression grammars and packrat parsing.
- Winner, Hele Shaw Prize, 2007
Publications
All publications hosted here are the authors' pre-prints or otherwise freely available.
Theses
-
C. Seaton. Specialising Dynamic Techniques for Implementing the Ruby Programming Language. PhD thesis, University of Manchester, 2015.
Abstract, PDF
Finalist, Ruby Prize -
C. Seaton. A programming language where the syntax and semantics are mutable at runtime. MEng thesis, University of Bristol, 2007.
PDF, Code, Slides
Winner, Hele Shaw Prize
Research Papers, Journal Articles and Editorials
-
K. Menard, C. Seaton, and B. Daloze. Specializing Ropes for Ruby. In Proceedings of 15th International Conference on Managed Languages & Runtimes (ManLang), 2018.
PDF -
M. Van De Vanter, C. Seaton, M. Haupt, C. Humer, and T. Würthinger. Fast, Flexible, Polyglot Instrumentation Support for Debuggers and other Tools. In The Art, Science, and Engineering of Programming, Vol. 2, No. 3, 2018.
PDF -
M. Grimmer, R. Schatz, C. Seaton, T. Würthinger, M. Luján. Cross-Language Interoperability in a Multi-Language Runtime. In ACM Transactions on Programming Languages and Systems (TOPLAS), Vol. 40, No. 2, 2018.
PDF -
T. Würthinger, C. Wimmer, C. Humer, A. Wöss, L. Stadler, C. Seaton, G. Duboscq, D. Simon, M. Grimmer. Practical Partial Evaluation for High-Performance Dynamic Language Runtimes. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI), 2017.
PDF -
C. Seaton. AST Specialisation and Partial Evaluation for Easy High-Performance Metaprogramming. In Proceedings of the 1st Workshop on Meta-Programming Techniques and Reflection (META), 2016.
PDF, Slides -
M. Grimmer, C. Seaton, R. Schatz, T. Würthinger, H. Mössenböck. High-Performance Cross-Language Interoperability in a Multi-Language Runtime. In Proceedings of 11th Dynamic Languages Symposium (DLS), 2015.
PDF -
B. Daloze, C. Seaton, D. Bonetta, H. Mössenböck. Techniques and Applications for Guest-Language Safepoints. In Proceedings of the 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS), 2015.
PDF -
M. Grimmer, R. Schatz, C. Seaton, T. Würthinger, H. Mössenböck. Memory-safe Execution of C on a Java VM. In Proceedings of the 10th Workshop on Programming Languages and Analysis for Security (PLAS), 2015.
PDF -
S. Marr, C. Seaton, S. Ducasse. Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and without Compromises. In Proceedings of the 36th Conference on Programming Language Design and Implementation (PLDI), 2015.
PDF -
M. Grimmer, C. Seaton, T. Würthinger, H. Mössenböck. Dynamically Composing Languages in a Modular Way: Supporting C Extensions for Dynamic Languages. In Proceedings of the 14th International Conference on Modularity, 2015.
PDF -
A. Wöß, C. Wirth, D. Bonetta, C. Seaton, C. Humer, and H. Mössenböck. An object storage model for the Truffle language implementation framework. In Proceedings of the International Conference on Principles and Practices of Programming on the Java Platform (PPPJ), 2014.
PDF -
J. Barnes, A. Duffy, N. Hamnett, J. McPhail, C. Seaton, K. Shokrollahi, M. I. James, P. McArthur, and R. Pritchard-Jones, The Mersey Burns App: evolving a model of validation, Emerg Med J, pp. emermed–2013–203416, Nov. 2014.
PDF (BMJ paywall) -
C. Seaton, M. L. Van De Vanter, and M. Haupt. Debugging at full speed. In Proceedings of the 8th Workshop on Dynamic Languages and Applications (DYLA), 2014.
PDF, Code -
D. Goodman, S. Khan, C. Seaton, Y. Guskov, B. Khan, M. Luján, and I. Watson. DFScala: High level dataflow support for Scala. In Proceedings of the 2nd International Workshop on Data-Flow Models For Extreme Scale Computing (DFM), 2012.
PDF, Code, Slides -
S. S. Sofos, R. Pritchard-Jones, C. Seaton, J. Dingley, P. McArthur, and K. Shokrollahi. Medical innovation—a starting point for plastic surgeons. Annals of Plastic Surgery, 69(3):225–7, Sep 2012.
Publisher -
C. Seaton, D. Goodman, M. Luján, and I. Watson. Applying dataflow and transactions to Lee routing. In Proceedings of the 7th Workshop on Programmability Issues for Heterogeneous Multicores (MULTIPROG), 2012.
PDF, Slides
Winner, Best Paper Award
Summer Schools
-
Chris Seaton. Self-Specialising Interpreters and Partial Evaluation. At the Metaprogramming Summer School. 2016.
Slides -
Chris Seaton. JRuby+Truffle: Why it's important to optimise the tricky parts. At the Virtual Machines Summer School (VMSS). 2016.
Slides, Video -
Chris Seaton. Implementing Ruby Using Truffle and Graal. At the European Conference on Object Oriented Programming (ECOOP) Summer School. 2014.
Slides
Other Presentations and Blog Posts
-
Chris Seaton. Seeing Escape Analysis Working. Blog post. 2020.
Blog post -
Chris Seaton. Understanding Graal IR. Keynote at VMIL. 2020.
Video -
Chris Seaton. Understanding Basic Truffle Graphs. Blog post. 2020.
Blog post -
Chris Seaton. Context on STM in Ruby. Blog post. 2020.
Blog post -
Chris Seaton. Seeing Register Allocation Working in Java. Blog post. 2020.
Blog post -
Chris Seaton. Understanding Basic Graal Graphs. Blog post. 2020.
Blog post -
Chris Seaton. Understanding Programs Using Graphs. Blog post. 2020.
Blog post -
Chris Seaton. Visualizing Graal. At Science, Art, Voodoo: Using and Developing The Graal Compiler. 2020.
Slides, Video -
Chris Seaton. The TruffleRuby Compilation Pipeline At Wroclove.rb. 2019.
Video, Slides -
Chris Seaton. Graal: where it's from and where it's going, keynote. At the Graal Workshop. 2019.
Slides -
Chris Seaton. Ten Things To Do With GraalVM. At Oracle Code One. 2018.
Slides -
Chris Seaton. Low Overhead Polling For Ruby. Blog post. 2018.
Blog post -
Chris Seaton. Top 10 Things To Do With GraalVM. Blog post. 2018.
Blog post -
Eric Sedlar and Chris Seaton. Run Programs Faster with GraalVM. At Oracle Code Boston 2018.
Video -
Chris Seaton. Ruby Objects as C Structs and Vice Versa. Blog post. 2018.
Blog post -
Chris Seaton. Understanding How Graal Works - a Java JIT Compiler Written in Java. At JokerConf 2017.
Video, Slides, Blog post -
Chris Seaton. Polyglot From the Very Old to the Very New. At PolyConf 2017 (invited keynote).
Video, Slides -
Chris Seaton. Turning the JVM into a Polyglot VM with Graal. At Oracle Code London 2017.
Video, Slides -
Chris Seaton. Ruby's C Extension Problem and How We're Fixing It. At RubyConf 2016.
Video, Slides -
Chris Seaton. Faster Ruby and JavaScript with GraalVM. At JavaOne 2016.
Slides -
Chris Seaton. Using LLVM and Sulong for Language C Extensions. At the LLVM Cauldron. 2016.
Video, Slides -
Chris Seaton. Guilt Free Ruby on the JVM. At JavaOne. 2015.
Slides -
Chris Seaton. A Tour Through a New Ruby Implementation. At FOSDEM. 2015.
Slides -
Chris Seaton. Flip-Flops — the 1-in-10-million operator. Blog post. 2015.
Blog post -
Chris Seaton. Deoptimizing Ruby. At RubyConf. 2014.
Video, Slides, Blog post -
Chris Seaton. Very High Performance C Extensions For JRuby+Truffle. Blog post. 2014.
Blog post -
Chris Seaton. Optimising Small Data Structures in JRuby+Truffle. Blog post. 2014.
Blog post -
Chris Seaton. Pushing Pixels with JRuby+Truffle. Blog post. 2014.
Blog post -
Chris Seaton. Tracing With Zero Overhead in JRuby+Truffle. Blog post. 2014.
Blog post -
Chris Seaton. How Method Dispatch Works in JRuby/Truffle. Blog post. 2014.
Blog post -
Chris Seaton. A Truffle/Graal High Performance Backend for JRuby. Blog post. 2014.
Blog post -
Christian Wimmer and Chris Seaton. One VM to Rule Them All. At the JVM Language Summit. 2013.
Video, Slides -
Chris Seaton. The Challenges of Irregular Parallelism. At the University of Manchester Computer Science Research Showcase. 2012.
Video, Slides -
Chris Seaton, Medicapps Ltd. Developing an app from idea to market and awards success with no funding. At the Mobile Healthcare Industry Summit. 2012.
Slides -
C. Seaton, D. Goodman, M. Luján, and I. Watson. Applying dataflow and transactions to Lee routing. At the 1st EuroTM Workshop on Transactional Memory (EuroTM). 2012.
Slides
Posters
-
Chris Seaton. The Challenges of Irregular Parallelism. At the University of Manchester School of Computer Science Research Symposium. 2012.
Poster
Winner, Best Poster Award -
Mr R Pritchard Jones, Mr C Seaton, Mr N Hamnett, Mr I James, Professor P McArthur. Mersey Burns Tool — Improving Assessment and Resuscitation. British Association of Plastic and Reconstructive Surgeons Summer Meeting. 2011.
Patents
Education
- MEng (Bristol 2007), PhD (Manchester 2015) in computer science
- Stanford Online Machine Learning course (completed with certificate 2016)
Community
- Squadron Leader of C (Cheshire Yeomanry) Squadron, the Queen's Own Yeomanry, reserve military service in a light cavalry squadron
- Academic Visitor at the University of Manchester
- Maintainer of The Ruby Bibliography
- Trustee of the Cheshire Yeomanry Association, registered charity 256143
- Contributor to the Oxford Specialist Handbooks in Surgery, Burns, Oxford University Press, 2019
- Technical reviewer, 500 Lines or Less, 2016
- Contributed technical advice to Deploying with JRuby 9k, 2016, and Optimizing Java, 2018
- Program Language Design and Implementation (PLDI) program committee member, 2020, external review committee member, 2019
- Science, Art, Voodoo: Using and Developing The Graal Compiler program committee member, 2021, 2020
- Software Language Engineering (SLE) program committee member, 2020
- Dynamic Languages Symposium (DLS) program committee member, 2019, 2017, 2016, 2014
- Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS) program committee member, 2020, 2017
- JavaOne emerging languages program committee member, 2017, 2016