Clément Béra: Google Software Engineer

Clément Béra: Google Software Engineer

Programming Language & Virtual Machine

Android Compilers D8 and R8 [2019-Present]

D8 and R8 are the Android compilers present by default in Android Studio. D8 is an incremental compiler, mainly used at development time, while R8 is an application shrinker used to release applications. My initial focus has been on supporting recent Java features, such as the Java 8 Stream and Time libraries. Then I worked on reducing the size on disk of Android applications mainly by unboxing enums to integer.

D8 and R8 repositories ~ Release of Java 8 libraries on Android

Sista [2013-2018]

Sista is an adaptive optimiser for the Cog VM. It speculates on the program behavior based on the first runs to recompile at runtime the code into optimized code. Performance gain is currently ranging from 1.5x to 10x. Sista is the main result of my Ph.D.

Last release

Mate & Virtual CPU [2012-2014]

Mate & Virtual CPU project goals were to increase virtual machine skills in the RMoD research team at Inria Lille. Mate was mainly in a Memory simulator to experiment with the memory representation of objects. My main contribution was the simulation of a garbage collector. Virtual CPU was an abstract assembly front-end, featuring multiple concrete back-ends (x86, ARMv5, x64) and a simulation back-end for debugging purposes.

OpenSmalltalk-VM [2013-2020]

OpenSmalltalk-VM is the default virtual machine for Squeak, Cuis and Pharo. My main contributions here were different bug fixes and improvements in the JIT, in the interpreter and in the Memory Manager. An example is the implementation of read-only objects.

My Blog ~ Cog blog ~ Git page

Opal [2012-2014]

Opal is the Pharo sources to bytecode compiler. My main contribution was to help Marcus Denker productizing the Opal compiler from the existing prototype. Later, I contributed again to the project when I improved the closure implementation and when I implemented and productized a new bytecode set.


Video Games

Spider Invasion [2017]

Spider Invasion is a real-time Space Invaders-like game, implemented with Pharo, Cairo & SDL2 (Heavy client). I developed it with Olivier Auverlot and we wrote together a popularization article about it. We've also done all the graphics ourselves.

Git page

Easnoth [2012-2013]

Easnoth is a turn-based strategy game, implemented with Amber and deployed using exclusively Javascript (Light client). I developed it entirely myself using the open-source graphics from the Wesnoth video game.

About ~ Play ~ Play (debug version) ~ Git page

Wizard Battle Arena [2016]

Wizard Battle Arena is a real-time bomberman-like game, implemented with Pharo, Cairo & SDL2 (Heavy client). I developed it entirely myself using the open-source graphics from openGameArt and the Liberated Pixel Cup.

About ~ Demo ~ Git page

Game1 [2010]

Game1 is the first big video game I implemented. Unavailable to the crowd (At that time I was not really careful with license protected graphics...), it is a turn-based strategy game, with a very, very high number of features compared to the other games I've implemented. I implemented the whole game myself and extracted graphics from the web (disregarding the licence). The game had a small community (a dozen of players) for some months.

Local page