Emil Pedersen

Home

LLVM Wyvern Logo

A data-driven approach to debug info quality

2024 LLVM Developers' Meeting talk

Debugging optimized code is frustrating: often, variables are missing. But some of these variables could be salvaged. In this talk, we will present a new analysis that detects when variables are lost in the compiler. This has two advantages: It allows to focus work on fixing optimizer passes that lose the most debug variables, and, by running it on real-world code, it also makes it easy to find concrete test cases where variable debug info is lost. We will use the work done on passes in the Swift frontend as an example, where we were able to increase the number of variables available in LLDB using this approach.

YouTube video | Slides | Conference Website

EK Programming Language

EK is a mixfix dynamic functional strict and impure programming language.

Meaning:

Hello World

import std

fn main = print "Hello, World!"

Learn more...

GitHub Repository | Slides (French) | Getting Started with EK (Wiki)

App icon
Screenshot of the main view of the app, with Today date, Converter, and a wheel to scroll through dates Screenshot of the date details view, with day name and other date components

French Republican Calendar

This project is an iOS/watchOS/web Swift app to convert between the Gregorian Calendar and the French Republican Calendar from 1793

Features:

The app is 100% written in Swift, and is open source! (Split in 3 repositories: core converter, iOS/watchOS app, web app)

The web app uses Swift WebAssembly and Tokamak to run in the browser.

View App Store Page | Official Website (French) | Online Converter | Core GitHub Repository

App icon
Screenshot of the main view of the app, with the Informations, next class, and recent grades visible Screenshot of the daily recap view, with the time you start the next day, the subjects you have, the homework to do, the recent changes in subject averages, and the class content to revise Screenshot of the main view of the app in dark mode, scrolled down to see the upcoming exams, a graph of the subject average changes, and the messages from teachers

Orbe pour Pronote

This project is an iOS/watchOS/macOS Swift app to view school information. Most high schools in France use Pronote to handle and share school information with students and parents. The official app for Pronote was very limited, therefore I made this app.

Features:

The app is written in Swift, the backend is written in JavaScript (NodeJS) using Puppeteer, and with a Python watchdog.
The development began in October 2019, it was available on the App Store between 2 September 2020 (version 1.0) and 20 April 2021 (version 4.5).
It has been updated 18 times on iOS and 14 times on macOS, and the monorepo has 1246 commits.

Screenshot of SnowHex on macOS, with syntax highlighting for a GIF image, with two auxiliary windows: one with a preview of the image and one to change the color of a palette element Screenshot of SnowHex, with the Find feature to find a sequence of bytes in a GIF file, and another window to edit the delay between images for the animated GIF

SnowHex

This project is a Java desktop hex file editor, with syntax highlighting.

Features:

The app is written in Java and is open source. You can make your own TokenMaker subclass if you want to support a new file format.

View Product Page | GitHub Repository

This Website

This website is generated using Publish, using some CSS adapted from my older website, ElementalCube. It is deployed automatically using Cloudflare Pages.