Skip to content

Instantly share code, notes, and snippets.

@leonoel
leonoel / deps.edn
Created February 28, 2019 11:47
Injure implementation of the toy stores & factories example from https://docs.racket-lang.org/guide/units.html
{:paths ["."]
:deps {injure {:mvn/version "1"}}}
@leonoel
leonoel / deps.edn
Created February 18, 2019 20:17
happy eyeballs
{:paths ["."]
:deps {missionary {:mvn/version "a.3"}}}
@leonoel
leonoel / asyncawait.clj
Created December 6, 2018 20:17
cloroutine-based async/await
(ns asyncawait
(:refer-clojure :exclude [await])
(:require [cloroutine.core :refer [cr]]))
(defmacro async [& body]
`(js/Promise. (fn [s# f#]
(spawn (cr {await thunk}
(try (s# (do ~@body))
(catch :default e# (f# e#))))))))
@leonoel
leonoel / primassign.clj
Last active December 7, 2017 15:31
primitive field assignment
(import (clojure.asm Type ClassWriter Opcodes)
(clojure.asm.commons Method GeneratorAdapter)
(clojure.lang DynamicClassLoader Compiler$HostExpr))
(require '[clojure.string :as s])
(defn- struct-bytecode [cname slots]
(let [objtype (Type/getType ^Class Object)
cv (new ClassWriter (. ClassWriter COMPUTE_MAXS))]
(. cv (visit (. Opcodes V1_5) (+ (. Opcodes ACC_PUBLIC) (. Opcodes ACC_FINAL))