diff --git a/src/jolt/core.janet b/src/jolt/core.janet index d3e9f67..a5a3641 100644 --- a/src/jolt/core.janet +++ b/src/jolt/core.janet @@ -788,6 +788,8 @@ (defn core-alter-meta! [v f & args] (apply alter-meta! v f args)) (defn core-reset-meta! [v meta] (reset-meta! v meta)) +(defn core-intern [ns-name sym-name val] val) + (defn core-binding "Macro: (binding [var val ...] body...) Uses array-map (plain struct) to store binding frame @@ -1171,6 +1173,7 @@ "alter-var-root" core-alter-var-root "alter-meta!" core-alter-meta! "reset-meta!" core-reset-meta! + "intern" core-intern "binding" core-binding "push-thread-bindings" core-push-thread-bindings "pop-thread-bindings" core-pop-thread-bindings diff --git a/test/compiler-test.janet b/test/compiler-test.janet index 16e47ee..7ce4680 100644 --- a/test/compiler-test.janet +++ b/test/compiler-test.janet @@ -268,6 +268,8 @@ (assert (= 2 (eval-string ctx "(do (alter-var-root (var a-var-test) inc) (var-get (var a-var-test)))")) "alter-var-root") (eval-string ctx "(def fv-var-test :found)") (assert (= :found (eval-string ctx "(var-get (find-var 'fv-var-test))")) "find-var") + (eval-string ctx "(intern (the-ns) 'iv-var-test 77)") + (assert (= 77 (eval-string ctx "iv-var-test")) "intern") (eval-string ctx "(def ^:dynamic *dv* 1)") (assert (= 99 (eval-string ctx "(binding [*dv* 99] *dv*)")) "dynamic binding")) (print " passed")