Fix gc test

This commit is contained in:
Michiel Borkent 2022-09-09 18:13:29 +02:00
parent ea4f56886d
commit 267646fbe7
7 changed files with 11 additions and 21 deletions

View file

@ -20,7 +20,7 @@
"reify/src"],
:deps {org.clojure/clojure {:mvn/version "1.11.1"},
org.babashka/sci {:local/root "sci"}
org.babashka/babashka.impl.reify {:mvn/version "0.1.2"}
org.babashka/babashka.impl.reify {:mvn/version "0.1.3"}
org.babashka/sci.impl.types {:mvn/version "0.0.2"}
babashka/babashka.curl {:local/root "babashka.curl"}
babashka/fs {:local/root "fs"}

View file

@ -26,7 +26,7 @@
[nrepl/bencode "1.1.0"]
[borkdude/sci.impl.reflector "0.0.1"]
[org.babashka/sci.impl.types "0.0.2"]
[org.babashka/babashka.impl.reify "0.1.2"]
[org.babashka/babashka.impl.reify "0.1.3"]
[org.clojure/core.async "1.5.648"]
[org.clojure/test.check "1.1.1"]
[com.github.clj-easy/graal-build-time "0.1.0"]

2
reify/bb.edn Normal file
View file

@ -0,0 +1,2 @@
{:tasks {install (clojure "-T:build install")
deploy (clojure "-T:build deploy")}}

View file

@ -3,7 +3,7 @@
[clojure.tools.build.api :as b]))
(def lib 'org.babashka/babashka.impl.reify)
(def version "0.1.2")
(def version "0.1.3")
(def class-dir "target/classes")
(def basis (b/create-basis {:project "deps.edn"}))
(def jar-file (format "target/%s-%s.jar" (name lib) version))

View file

@ -61,19 +61,6 @@
java.lang.Object
(toString [this] (toString-fn this)))))
(defn reify-runnable [m]
(let [methods (:methods m)
run-fn (or (get methods 'run)
(fn [_]))]
(reify
sci.impl.types.IReified
(getMethods [_] (:methods m))
(getInterfaces [_] (:interfaces m))
(getProtocols [_] (:protocols m))
java.lang.Runnable
(run [this] (run-fn this))))
)
(defmacro gen-reify-fn []
`(fn [~'m]
(when (> (count (:interfaces ~'m)) 1)
@ -91,9 +78,7 @@
["clojure.lang.IFn"
`(reify-ifn ~'m)
"java.lang.Object"
`(reify-object ~'m)
"java.lang.Runnable"
`(reify-runnable ~'m)]
`(reify-object ~'m)]
(for [i interfaces]
(let [in (.getName ^Class i)]
[in

View file

@ -19,6 +19,7 @@
clojure.lang.Reversible
clojure.lang.Seqable
java.lang.Iterable
java.lang.Runnable
java.net.http.WebSocket$Listener
java.util.Iterator
java.util.function.Consumer

View file

@ -2,6 +2,7 @@
(:require
[babashka.test-utils :as test-utils]
[clojure.edn :as edn]
[clojure.string :as str]
[clojure.test :as test :refer [deftest is testing]]))
(defn bb [input & args]
@ -52,7 +53,7 @@
(deftest reify-object
(testing "empty methods"
(is (clojure.string/starts-with?
(is (str/starts-with?
(bb nil "
(str (reify Object))")
"babashka.impl.reify")))
@ -144,7 +145,8 @@
(let [t (atom (Object.))
wr (java.lang.ref.WeakReference. @t)]
(reset! t nil)
(while (.get wr)
(while (or (.get wr)
(not @deleted?))
(System/gc)
(System/runFinalization))))
(make-cleanable-ref)