Skip to content

Instantly share code, notes, and snippets.

Researching and Lecturing

Stefan Marr smarr

Researching and Lecturing
View GitHub Profile
smarr /
Created Jun 8, 2022
Java 8 vs Java 17 Perf Difference
  exe mean
Bounce Java JDK8 C2 1
  Java JDK17 C2 1.04
  Java JDK8 Int 37.97
  Java JDK17 Int 39.25
CD Java JDK8 C2 1
  Java JDK17 C2 1.01
  Java JDK8 Int 50.37
  Java JDK17 Int 69.61
smarr /
Created May 8, 2022
Assumption Checks in Liquid Benchmarks

Which Assumptions are Checked Most, and From Where?

This is a bit of an investigation into where the interpreter spends its time checking assumptions, which is currently one of the most prominent elements in profiles.

The benchmarks under investigation are:

jt --use jvm-ce ruby --experimental-options --engine.Compilation=false harness.rb LiquidCartRender 1 1
jt --use jvm-ce ruby --experimental-options --engine.Compilation=false harness.rb LiquidRenderBibs 1 1
smarr /
Last active May 3, 2022
Quick and Dirty TruffleRuby Liquid Stats
jt --use jvm-ce ruby --experimental-options --engine.Compilation=false harness.rb LiquidRenderBibs  1 1
jt --use jvm-ce ruby --experimental-options --engine.Compilation=false harness.rb LiquidCartParse   1 1
jt --use jvm-ce ruby --experimental-options --engine.Compilation=false harness.rb LiquidCartRender  1 1
jt --use jvm-ce ruby --experimental-options --engine.Compilation=false harness.rb LiquidMiddleware  1 1

All Counts are Activation Counts

  • Trivial Calls: 662363
smarr / mplr-cfp.txt
Last active Mar 15, 2022
MPLR'22 Call for Papers
View mplr-cfp.txt
Call for Papers
MPLR 2022 - 19th International Conference
on Managed Programming Languages & Runtimes
September 14-16, 2022 in Brussels, Belgium
Follow us @MPLR_Conf
smarr /
Created Jun 9, 2021
Filter RPython traces for diffing
import fileinput
import sys
import re
pointer = re.compile("0x[0-9a-f]{9,12}")
target_token = re.compile("TargetToken\\([0-9]*\\)")
address = re.compile("\\[[0-9a-f]{8,12}]")
line_num = re.compile("^\\+\\d*:")
long_number = re.compile("\\d{8,}")
smarr / comment-on-github.ts
Created Aug 11, 2020
Using TypeScript and Octokit/rest.js to Comment on Pull Request or Commit
View comment-on-github.ts
import { Octokit } from '@octokit/rest';
import { createAppAuth } from '@octokit/auth-app';
import { readFileSync } from 'fs';
// authorize on app level
const app = new Octokit({
authStrategy: createAppAuth,
auth: {
type: "app",
id: 12345,
smarr / MS To Do Delete All Tasks.html
Created Feb 17, 2020
Delete All Tasks from Microsoft To Do app
View MS To Do Delete All Tasks.html
<script type="text/javascript" src=""></script>
<script type="text/javascript" src=""></script>
smarr / fib.S
Created Nov 6, 2019
8-bit implementation of a recursive fibonacci
View fib.S
; Fibonacci
; executable with
; Result is in register A
JMP .start
; fib(n) <- n is in register A
CMP A, 1 ; compare n to a
JE .fibReturnOne
JB .fibReturnZero
smarr / somns-trace.tcl
Created Aug 12, 2019
SOMns Trace file Binary Template for Hex Fiend
View somns-trace.tcl
## Binary Template for Hex Fiend
## This gives a very basic way to navigate through a trace file
set event_types [dict create \
smarr / SOM.g4
Last active May 20, 2019
A Grammar for SOM
View SOM.g4
grammar SOM;
/* Not maintained here, but complete and accepts all SOM code in the core-lib and are-we-fast-yet benchmarks. */
/* This parser accepts valid programs adhering to the following grammar. Comments
and white space are not dealt with in the grammar. Names of non-terminals begin
with a lower-case letter; terminals, with an upper-case one. */
Identifier Equal superclass