feat: Use GraalVM to beat Clojure startup times
Required a patch[1] to spec-dict. Something about GraalVM initialisation and
Clojure files without packages (i.e. single-level namespaced files). I don't
know!
[1]: 531d629b7f
This commit is contained in:
@@ -1,6 +1,14 @@
|
|||||||
{
|
{
|
||||||
"lock-version": 4,
|
"lock-version": 4,
|
||||||
"git-deps": [],
|
"git-deps": [
|
||||||
|
{
|
||||||
|
"lib": "com.github.msyds/spec-dict",
|
||||||
|
"url": "https://github.com/msyds/spec-dict.git",
|
||||||
|
"rev": "531d629b7f05f37232261cf9e8927a4b5915714f",
|
||||||
|
"git-dir": "https/github.com/msyds/spec-dict",
|
||||||
|
"hash": "sha256-5hMdPsB8OhOCtByPZS+CHXzVLq0H+OBKKnXec21xwmg="
|
||||||
|
}
|
||||||
|
],
|
||||||
"mvn-deps": [
|
"mvn-deps": [
|
||||||
{
|
{
|
||||||
"mvn-path": "babashka/fs/0.5.24/fs-0.5.24.jar",
|
"mvn-path": "babashka/fs/0.5.24/fs-0.5.24.jar",
|
||||||
@@ -42,26 +50,6 @@
|
|||||||
"mvn-repo": "https://repo.clojars.org/",
|
"mvn-repo": "https://repo.clojars.org/",
|
||||||
"hash": "sha256-eUGmk2TB2JzLpi2p+Ge//udJO7t/o339YCaPNt7KFek="
|
"hash": "sha256-eUGmk2TB2JzLpi2p+Ge//udJO7t/o339YCaPNt7KFek="
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"mvn-path": "clojure-lanterna/clojure-lanterna/0.9.7/clojure-lanterna-0.9.7.jar",
|
|
||||||
"mvn-repo": "https://repo.clojars.org/",
|
|
||||||
"hash": "sha256-rv2Pp1B4p64VdjzXBdJskFzPrK6gVZAL7JfWDfHQikU="
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mvn-path": "clojure-lanterna/clojure-lanterna/0.9.7/clojure-lanterna-0.9.7.pom",
|
|
||||||
"mvn-repo": "https://repo.clojars.org/",
|
|
||||||
"hash": "sha256-a1fotCBLdq5aa6ioMIMvLowMJfVYMx4P2oJSj9VS3Cc="
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mvn-path": "com/googlecode/lanterna/lanterna/2.1.7/lanterna-2.1.7.jar",
|
|
||||||
"mvn-repo": "https://repo1.maven.org/maven2/",
|
|
||||||
"hash": "sha256-Xr24XNnqvVTsGf+MoESc23RZWc6NTDGSWbs5rOS3hhg="
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mvn-path": "com/googlecode/lanterna/lanterna/2.1.7/lanterna-2.1.7.pom",
|
|
||||||
"mvn-repo": "https://repo1.maven.org/maven2/",
|
|
||||||
"hash": "sha256-INQIUi0aEHp7mBvoD0f7t3c2NmMtqZS8/VlJb5JKW/4="
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"mvn-path": "com/kohlschutter/junixsocket/junixsocket-common/2.3.2/junixsocket-common-2.3.2.jar",
|
"mvn-path": "com/kohlschutter/junixsocket/junixsocket-common/2.3.2/junixsocket-common-2.3.2.jar",
|
||||||
"mvn-repo": "https://repo1.maven.org/maven2/",
|
"mvn-repo": "https://repo1.maven.org/maven2/",
|
||||||
@@ -296,21 +284,6 @@
|
|||||||
"mvn-path": "org/clojure/spec.alpha/0.5.238/spec.alpha-0.5.238.pom",
|
"mvn-path": "org/clojure/spec.alpha/0.5.238/spec.alpha-0.5.238.pom",
|
||||||
"mvn-repo": "https://repo1.maven.org/maven2/",
|
"mvn-repo": "https://repo1.maven.org/maven2/",
|
||||||
"hash": "sha256-PLp+DcwIXEzpLd3/6iJhJP+sF4vnm9A3m1suMKlpy+o="
|
"hash": "sha256-PLp+DcwIXEzpLd3/6iJhJP+sF4vnm9A3m1suMKlpy+o="
|
||||||
},
|
|
||||||
{
|
|
||||||
"mvn-path": "org/sonatype/oss/oss-parent/7/oss-parent-7.pom",
|
|
||||||
"mvn-repo": "https://repo1.maven.org/maven2/",
|
|
||||||
"hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mvn-path": "spec-dict/spec-dict/0.2.1/spec-dict-0.2.1.jar",
|
|
||||||
"mvn-repo": "https://repo.clojars.org/",
|
|
||||||
"hash": "sha256-a9AvVMvRL/4FoSLQLDjQBMutDIpwWEc7V5wrnjqAp34="
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mvn-path": "spec-dict/spec-dict/0.2.1/spec-dict-0.2.1.pom",
|
|
||||||
"mvn-repo": "https://repo.clojars.org/",
|
|
||||||
"hash": "sha256-pTMOUp6WJneXHxP97KYVULX+Yqn04DJR2uvkXlxxRUQ="
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
babashka/fs {:mvn/version "0.5.24"}
|
babashka/fs {:mvn/version "0.5.24"}
|
||||||
org.clojure/clojure {:mvn/version "1.12.0"}
|
org.clojure/clojure {:mvn/version "1.12.0"}
|
||||||
org.clojure/core.match {:mvn/version "1.1.0"}
|
org.clojure/core.match {:mvn/version "1.1.0"}
|
||||||
spec-dict/spec-dict {:mvn/version "0.2.1"}}
|
com.github.msyds/spec-dict
|
||||||
|
{:git/sha "531d629b7f05f37232261cf9e8927a4b5915714f"}}
|
||||||
:paths ["src"]
|
:paths ["src"]
|
||||||
:aliases
|
:aliases
|
||||||
{:cider
|
{:cider
|
||||||
|
|||||||
@@ -35,7 +35,22 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
packages.default = sydnix;
|
packages.default = clj-nix.lib.mkCljApp {
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
modules = [
|
||||||
|
{
|
||||||
|
name = "msyds/sydnix";
|
||||||
|
version = "1.0";
|
||||||
|
main-ns = "sydnix.main";
|
||||||
|
projectSrc = ./.;
|
||||||
|
|
||||||
|
nativeImage = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
# customJdk.enable = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
inputsFrom = [
|
inputsFrom = [
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
(ns asciidoc.types
|
(ns asciidoc.types
|
||||||
(:require
|
(:require
|
||||||
[clojure.spec.alpha :as s]
|
[clojure.spec.alpha :as s]
|
||||||
[spec-dict :refer [->opt dict]]))
|
[spec-dict.main :refer [->opt dict]]))
|
||||||
|
|
||||||
(defn- make-block-arguments [req opt]
|
(defn- make-block-arguments [req opt]
|
||||||
(let [args (dict req
|
(let [args (dict req
|
||||||
|
|||||||
Reference in New Issue
Block a user