Skip to content

Instantly share code, notes, and snippets.

View smarr's full-sized avatar
👨‍🏫
Researching and Lecturing

Stefan Marr smarr

👨‍🏫
Researching and Lecturing
View GitHub Profile
@smarr
smarr / build.log
Last active November 7, 2017 08:31
Build Script: https://github.com/smarr/are-we-fast-yet/blob/master/implementations/build-topaz.sh
Topaz|STD:Build Topaz
Topaz|STD:~/builds/5be4c5b4/0/stefan.marr/awfy-runs/awfy/implementations ~/builds/5be4c5b4/0/stefan.marr/awfy-runs/awfy/implementations
Topaz|STD:Load ./Topaz
Topaz|STD:Synchronizing submodule url for 'Topaz'
Topaz|STD:~/builds/5be4c5b4/0/stefan.marr/awfy-runs/awfy/implementations/Topaz ~/builds/5be4c5b4/0/stefan.marr/awfy-runs/awfy/implementations ~/builds/5be4c5b4/0/stefan.marr/awfy-runs/awfy/implementations
Topaz|STD:Collecting invoke
Topaz|STD: Downloading invoke-0.21.0-py2-none-any.whl (154kB)
Topaz|STD:Installing collected packages: invoke
@smarr
smarr / MixinTests.ns
Created December 10, 2017 22:16
Mixin Issue Newspeak
class MyModule platform: platform = (
| private Transcript = platform squeak Transcript. |
) (
public class A new = () (
public mixinA = ( ^ #Amixin )
)
public class B new = () (
public mixinB = ( ^ #Bmixin )
)
@smarr
smarr / Makefile
Created February 15, 2018 13:49
Example Latex-MK
# This Makefile relies on LaTeX-Mk
# See: http://latex-mk.sourceforge.net/
NAME=paper
KNITR=$(wildcard sections/*.Rnw)
KNITR_TEX=$(KNITR:.Rnw=.tex)
KNITR_TEX=$(patsubst sections/%.Rnw,gen/%.tex,$(KNITR))
TEXSRCS=$(NAME).tex $(wildcard scripts/*.tex) $(wildcard sections/*.tex) $(KNITR_TEX)
USE_PDFLATEX=true
@smarr
smarr / reduce.sh
Created March 15, 2018 16:54
Reduce Eclipse Release for to Code Formatting
#!/bin/bash
# Manually remove the product setting from configuration/config.ini
echo Manually remove the product setting from configuration/config.ini
# delete sources jars and other things
find ../eclipse -name "*.source*.jar" -delete
find ../eclipse -name "*.html" -delete
find ../eclipse -name "*.bmp" -delete
rm ../eclipse/icon.xpm
@smarr
smarr / Race-in-object-model.patch
Created March 25, 2018 11:01
Debugging helpers code for race conditions in object model
From 0d1d5b9ebf01d65ecffc93c8425528be9e6d8e64 Mon Sep 17 00:00:00 2001
From: Stefan Marr <git@stefan-marr.de>
Date: Sat, 24 Mar 2018 16:24:23 +0000
Subject: [PATCH] Race condition in object model, further debugging needed
This debugging code helps debugging a race condition in the object model.
This seems to be observable rather reliably with accesses to cached class fields.
Specifically, we can see that in Parser.ns, we read the slot `R`, and retrieve an `A class` instead of `R class` rather reliably.
@smarr
smarr / note.md
Last active April 3, 2018 08:09
Specializations, Types, and subsumption

Truffle Specializations do not automatically have exclusive semantics. Instead, the rules of the Java type system apply.

Let's take the following node with three specializations as example. Note, I return an int here, usually you'd return a boolean, but the int allows me to get the point across more precisely in the later tests.

@NodeChild(value = "e", type = ExprNode.class)
public abstract class IsNumberNode extends Node {
@smarr
smarr / 01-run.sh
Last active September 2, 2018 21:50
Optimization issues with latest Graak
git clone https://github.com/smarr/SOMns.git
cd SOMns
ant compile -Dskip.graal=true
./debug -i -vv -t1 -EG core-lib/Benchmarks/AsyncHarness.ns Savina.TrapezoidalApproximation 25 0 100:1000000:1:5
@smarr
smarr / SOM.g4
Last active May 20, 2019 16:13
A Grammar for SOM
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. */
classdef:
Identifier Equal superclass
@smarr
smarr / somns-trace.tcl
Created August 12, 2019 12:06
SOMns Trace file Binary Template for Hex Fiend
## Binary Template for Hex Fiend
## https://github.com/ridiculousfish/HexFiend
## This gives a very basic way to navigate through a trace file
set event_types [dict create \
0 "ACTOR_CREATION" \
1 "ACTOR_CONTEXT" \
2 "MESSAGE" \
3 "PROMISE_MESSAGE" \
4 "SYSTEM_CALL" \
@smarr
smarr / fib.S
Created November 6, 2019 14:13
8-bit implementation of a recursive fibonacci
; Fibonacci
; executable with https://schweigi.github.io/assembler-simulator/
; Result is in register A
JMP .start
; fib(n) <- n is in register A
fib:
CMP A, 1 ; compare n to a
JE .fibReturnOne
JB .fibReturnZero