Skip to content

Instantly share code, notes, and snippets.

View forax's full-sized avatar

Rémi Forax forax

View GitHub Profile
Slides of FOSDEM 2014 - Java Intrinsic
import java.util.OptionalLong;
public class TimeStat {
private long totalTime;
private long recordCount;
private long minimumTime;
public void record(long elapsedTime) {
totalTime += elapsedTime;
minimumTime = (recordCount == 0)? elapsedTime: Math.min(minimumTime, elapsedTime);
@forax
forax / gist:81a56cf2684bfa2e46ec
Created July 31, 2014 00:16
Json parser 'modern' API in one file
import java.io.Reader;
import java.io.StringReader;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Spliterator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
@forax
forax / gist:ddf39fd28383dd5c72fd
Created September 13, 2014 18:21
To infiny and beyond ...
import java.util.Random;
import java.util.function.IntFunction;
import java.util.stream.Collectors;
public interface SayHi {
public static void main(String[] args) {
IntFunction<String> fun = s -> new Random(s)
.ints(6, 0, 27)
.filter(v -> v != 0)
.mapToObj(v -> "" + (char)('`' + v))
@forax
forax / gist:24620b80b9cd775e0bd1
Last active August 29, 2015 14:07
Proxy 2.0 in one file
package java.lang.invoke;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles.Lookup;
import java.lang.invoke.MethodType;
import java.lang.reflect.Method;
import java.util.Arrays;
import jdk.internal.org.objectweb.asm.ClassWriter;
import jdk.internal.org.objectweb.asm.FieldVisitor;
comments of blog post 'The Selector Pattern'
import java.lang.invoke.CallSite;
import java.lang.invoke.ConstantCallSite;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodHandles.Lookup;
import java.lang.invoke.MethodType;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
package java.lang.invoke;
import java.lang.invoke.MethodHandles.Lookup;
import java.net.URI;
import java.net.URISyntaxException;
// compile with:
// /usr/jdk/jdk-9/bin/javac -Xmodule:java.base -d ../classes java/lang/invoke/FunPIC.java
// execute with:
// /usr/jdk/jdk-9/bin/java -Xpatch:java.base=../classes -m java.base/java.lang.invoke.FunPIC
@forax
forax / FunPIC.java
Last active July 23, 2016 15:00
same PIC but the test code is slighly altered
package java.lang.invoke;
import java.lang.invoke.MethodHandles.Lookup;
import java.net.URI;
import java.net.URISyntaxException;
// compile with:
// /usr/jdk/jdk-9/bin/javac -Xmodule:java.base -d ../classes java/lang/invoke/FunPIC.java
// execute with:
// /usr/jdk/jdk-9/bin/java -Xpatch:java.base=../classes -m java.base/java.lang.invoke.FunPIC