diff --git a/run.el b/run.el new file mode 100644 index 0000000..5619d98 --- /dev/null +++ b/run.el @@ -0,0 +1,21 @@ +(defun update (version) + "update shen-elisp to shen VERSION." + (progn + (require 'org) + (shell-command + (concat + "curl -LO " + "https://github.com/Shen-Language/shen-sources/releases/download/shen-" version "/ShenOSKernel-" version ".zip")) + (shell-command (concat "unzip " "ShenOSKernel-" version ".zip")) + (let ((dl-kl-dir (concat "ShenOSKernel-" version "/klambda/"))) + (dolist (klfile + (nthcdr 2 (directory-files dl-kl-dir nil))) + (copy-file (concat dl-kl-dir klfile) + (concat "KLambda/" klfile) t)) + (message "Updated KLambda/, may need to update shen-elisp.org...") + (org-babel-tangle-file "shen-elisp.org") + (load-file "shen-primitives.el") + (load-file "install.el") + (runner)))) + +(update "39.0") diff --git a/shen-elisp.org b/shen-elisp.org index 5eaff19..4b52e85 100644 --- a/shen-elisp.org +++ b/shen-elisp.org @@ -138,6 +138,7 @@ Once [[Assignments][the assigning mechanism]] is in place the spec requires some (shen/set '*release* emacs-version) (shen/set '*port* 1.7) (shen/set '*os* (symbol-name system-type)) + (shen/set '*version* "S39.0") #+END_SRC ** Boolean Operations Unlike Elisp in KLambda booleans are ~false~ and ~true~, distinct symbols which