diff --git a/CHANGELOG.md b/CHANGELOG.md index 56a05e21..c6ec70c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ A preview of the next release can be installed from [Babashka](https://github.com/babashka/babashka): Native, fast starting Clojure interpreter for scripting +## Unreleased + +- Upgrade SCI reflector based on clojure 1.12 and remove specific workaround for + `Thread/sleep` interop + ## 1.4.192 (2024-09-12) - Upgrade Clojure to `1.12.0` diff --git a/project.clj b/project.clj index edfc0d55..8be833c6 100644 --- a/project.clj +++ b/project.clj @@ -27,7 +27,7 @@ [org.clojure/tools.cli "1.0.214"] [cheshire "5.13.0"] [nrepl/bencode "1.2.0"] - [borkdude/sci.impl.reflector "0.0.1"] + [borkdude/sci.impl.reflector "0.0.2"] [org.babashka/sci.impl.types "0.0.2"] [org.babashka/babashka.impl.java "0.1.8"] [org.clojure/core.async "1.6.673"] diff --git a/sci b/sci index 337d6c67..0da3ffc6 160000 --- a/sci +++ b/sci @@ -1 +1 @@ -Subproject commit 337d6c674fcf2a9bc5d71fe11b47a9fe350ad976 +Subproject commit 0da3ffc6a5873e5cd2bb864ebc80beaeddb11f0c diff --git a/src/babashka/impl/classes.clj b/src/babashka/impl/classes.clj index dcf7e6e5..a8821946 100644 --- a/src/babashka/impl/classes.clj +++ b/src/babashka/impl/classes.clj @@ -664,19 +664,7 @@ ([_# ^String class-name#] (Class/forName class-name#)) ([_# ^String class-name# initialize# ^java.lang.ClassLoader clazz-loader#] - (Class/forName class-name#)))}) - (= 'java.lang.Thread c) - (assoc :static-methods - {(list 'quote 'sleep) - `(fn - ([_# x#] - (if (instance? Number x#) - (let [x# (long x#)] - (Thread/sleep x#)) - (let [^java.time.Duration x# x#] - (Thread/sleep x#)))) - ([_# ^java.lang.Long millis# ^java.lang.Long nanos#] - (Thread/sleep millis# nanos#)))}))]] + (Class/forName class-name#)))}))]] c)) m (assoc m :public-class (fn [v] diff --git a/test/babashka/interop_test.clj b/test/babashka/interop_test.clj index 83fc4faa..096f0bca 100644 --- a/test/babashka/interop_test.clj +++ b/test/babashka/interop_test.clj @@ -52,8 +52,7 @@ (is (pos? (bb nil "(.count (.codePoints \"woof🐕\"))")))) (deftest Thread-sleep-test - (is (bb nil "(Thread/sleep (/ 1 200)) - (Thread/sleep (/ 1 200) (/ 1 200)) + (is (bb nil "(Thread/sleep (int 1)) (Thread/sleep (java.time.Duration/ofMillis 1)) true")))