diff --git a/README.md b/README.md index 9f52ed44..c30a0ded 100644 --- a/README.md +++ b/README.md @@ -425,6 +425,12 @@ than just the difference in data durability and running mode: * Datoms in a transaction are committed together as a batch, rather than being saved by `with-datom` one at a time. +* ACID transaction and rollback are supported. + +* Lazy results set and spill to disk are supported. + +* Entity and transaction integer ids are 64 bits long, instead of 32 bits. + * Respects `:db/valueType`. Currently, most [DatomicĀ® value types](https://docs.datomic.com/on-prem/schema.html#value-types) are supported, except uri. Values of the attributes that diff --git a/bench/README.md b/bench/README.md index 0ec0f75e..39a377a8 100644 --- a/bench/README.md +++ b/bench/README.md @@ -10,8 +10,6 @@ cd bench ./bench.clj ``` -If you are on a version of JVM newer than JDK 8, you may get some warnings. Please ignore them. - Some of the benchmarks are commented out for they take a long time to run. You can uncomment the appropriate lines in [default-benchmarks](https://github.com/juji-io/datalevin/blob/master/bench/bench.clj#L112) in `bench.clj` to run them. You can also comment out the appropriate line to run the same benchmark for DataScript. For more comparisons with other alternatives, you may also consult [this fork](https://github.com/joinr/datalevinbench). diff --git a/native/test-jar/test.sh b/native/test-jar/test.sh index 9c3de34f..f2930369 100755 --- a/native/test-jar/test.sh +++ b/native/test-jar/test.sh @@ -12,14 +12,16 @@ fi export JAVA_HOME=$GRAALVM_HOME export PATH=$GRAALVM_HOME/bin:$PATH +export USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM=false + export DTLV_LIB_EXTRACT_DIR=/tmp clojure -X:uberjar :jar target/test-jar.jar - "$GRAALVM_HOME/bin/native-image" \ -H:CLibraryPath=${DTLV_LIB_EXTRACT_DIR} \ - -jar target/test-jar.jar \ - jar-test + --verbose \ + --features=InitAtBuildTimeFeature \ + -jar target/test-jar.jar jar-test ./jar-test diff --git a/project.clj b/project.clj index 5a60435c..6ad09c00 100644 --- a/project.clj +++ b/project.clj @@ -68,8 +68,7 @@ :source-paths ["src" "test"] :java-source-paths ["native/src/java"] :jvm-opts - ["-XX:+IgnoreUnrecognizedVMOptions" - "--add-opens=java.base/java.nio=ALL-UNNAMED" + ["--add-opens=java.base/java.nio=ALL-UNNAMED" "--add-opens=java.base/sun.nio.ch=ALL-UNNAMED" "--add-opens=java.base/java.lang=ALL-UNNAMED" "--add-opens=java.base/jdk.internal.ref=ALL-UNNAMED"] @@ -87,7 +86,8 @@ *unchecked-math* :warn-on-boxed *warn-on-reflection* true}}} :jar-exclusions [#"graal" #"datalevin.ni"] - :jvm-opts ["-Dclojure.compiler.direct-linking=true"] + :jvm-opts ["-XX:+IgnoreUnrecognizedVMOptions" + "-Dclojure.compiler.direct-linking=true"] :uberjar-exclusions [#"pod.huahaiy.datalevin-test"] :deploy-repositories [["clojars" {:url "https://repo.clojars.org" :username :env/clojars_username diff --git a/release.clj b/release.clj index d7679838..b47f1c38 100755 --- a/release.clj +++ b/release.clj @@ -76,15 +76,16 @@ (sh "git" "push" "origin" "master")) (defn run-tests [] - (println "\n\n[ Running tests ]\n") - (sh "./lein-test") + ;; TODO this will fail as graalvm dropped support for java 8 + ;; (println "\n\n[ Running tests ]\n") + ;; (sh "script/lein-test") (println "\n\n[ Testing jar ]\n") - (sh "./jar") + (sh "./jar" :dir "script") (sh "test-jar/test.sh") (println "\n\n[ Testing uberjar ]\n") - (sh "./uberjar") + (sh "./uberjar" :dir "script") (sh "test-jar/test-uber.sh") (println "\n\n[ Testing native jar ]\n") @@ -134,7 +135,7 @@ (update-version) (make-commit) (github-release) - (sh "./deploy") + (sh "./deploy" :dir "script") (sh "script/deploy" :dir "native") (System/exit 0) ) diff --git a/deploy b/script/deploy similarity index 95% rename from deploy rename to script/deploy index e93fc1fa..72f595f2 100755 --- a/deploy +++ b/script/deploy @@ -5,5 +5,7 @@ set -eou pipefail export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH +cd .. + lein clean lein deploy clojars diff --git a/jar b/script/jar similarity index 95% rename from jar rename to script/jar index a0a7315c..c5968aa2 100755 --- a/jar +++ b/script/jar @@ -5,5 +5,7 @@ set -eou pipefail export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH +cd .. + lein clean lein jar diff --git a/lein-test b/script/lein-test similarity index 95% rename from lein-test rename to script/lein-test index a0479c3b..36ae0511 100755 --- a/lein-test +++ b/script/lein-test @@ -5,5 +5,7 @@ set -eou pipefail export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH +cd .. + lein clean lein test diff --git a/uberjar b/script/uberjar similarity index 95% rename from uberjar rename to script/uberjar index d6ba3dc1..c9f5fffb 100755 --- a/uberjar +++ b/script/uberjar @@ -5,5 +5,7 @@ set -eou pipefail export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH +cd .. + lein clean lein uberjar diff --git a/test-jar/test-uber.sh b/test-jar/test-uber.sh index aa6deed1..77e9a475 100755 --- a/test-jar/test-uber.sh +++ b/test-jar/test-uber.sh @@ -2,6 +2,9 @@ set -eou pipefail +export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 +export PATH=$JAVA_HOME/bin:$PATH + jvm_version=$(java -version 2>&1 | head -1 | cut -d'"' -f2 | sed '/^1\./s///' | cut -d'.' -f1 ) echo $jvm_version diff --git a/test-jar/test.sh b/test-jar/test.sh index 82b1047c..d671e8c1 100755 --- a/test-jar/test.sh +++ b/test-jar/test.sh @@ -2,6 +2,9 @@ set -eou pipefail +export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 +export PATH=$JAVA_HOME/bin:$PATH + jvm_version=$(java -version 2>&1 | head -1 | cut -d'"' -f2 | sed '/^1\./s///' | cut -d'.' -f1 ) echo "Java version $jvm_version"