Skip to content

Instantly share code, notes, and snippets.

View Glavo's full-sized avatar
😇

Glavo Glavo

😇
View GitHub Profile
@Glavo
Glavo / TimingsListener.kts
Created October 15, 2021 05:44
Task TimingsListener Kotlin DSL
// Log timings per task.
class TimingsListener : TaskExecutionListener, BuildListener {
private var startTime: Long = 0L
private val timings = mutableListOf<Pair<Long, String>>()
@Override
override fun beforeExecute(task: Task) {
startTime = System.nanoTime()
}
@Glavo
Glavo / PanamaJIT.java
Last active November 23, 2021 10:43
PanamaJIT Demo
import jdk.incubator.foreign.*;
import java.lang.invoke.*;
// Original code (C++): https://stackoverflow.com/a/40937610/7659948
public class PanamaJIT {
public static final int MEM_COMMIT = 0x00001000;
public static final int PAGE_READWRITE = 0x04;
public static final int PAGE_EXECUTE_READ = 0x20;
import com.google.common.jimfs.Jimfs;
import org.openjdk.jmh.annotations.*;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.FileSystem;
import java.nio.file.Files;
import java.nio.file.Path;
@Glavo
Glavo / NoRepl.java
Created January 20, 2023 16:53
New NoRepl.java
package org.glavo.jmh;
import com.google.common.jimfs.Jimfs;
import org.openjdk.jmh.annotations.*;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.lang.foreign.*;
import java.lang.invoke.*;
import java.util.Arrays;
import static java.lang.foreign.ValueLayout.*;
public class Test {
@FunctionalInterface
public interface Callback {
int invoke(MemorySegment a, MemorySegment b);