elisp: Get rid of load-relative hack
authorVasilij Schneidermann <mail@vasilij.de>
Tue, 19 Feb 2019 20:10:15 +0000 (21:10 +0100)
committerVasilij Schneidermann <mail@vasilij.de>
Tue, 19 Feb 2019 20:10:15 +0000 (21:10 +0100)
17 files changed:
elisp/core.el
elisp/func.el
elisp/mal-env.el [moved from elisp/env.el with 97% similarity]
elisp/printer.el
elisp/reader.el
elisp/run
elisp/step1_read_print.el
elisp/step2_eval.el
elisp/step3_env.el
elisp/step4_if_fn_do.el
elisp/step5_tco.el
elisp/step6_file.el
elisp/step7_quote.el
elisp/step8_macros.el
elisp/step9_try.el
elisp/stepA_mal.el
elisp/types.el

index 7f4beca..1d97f16 100644 (file)
 
     (elisp-eval . ,(mal-fn (lambda (string) (elisp-to-mal (eval (read (mal-value string)))))))
     ))
+
+(provide 'core)
index a7bc220..55b33b6 100644 (file)
@@ -15,3 +15,5 @@
 
 (defun mal-func-macro-p (mal-func)
   (aref (aref mal-func 1) 4))
+
+(provide 'func)
similarity index 97%
rename from elisp/env.el
rename to elisp/mal-env.el
index 2712dbc..e7eea80 100644 (file)
@@ -30,3 +30,5 @@
     (if (not value)
         (error "'%s' not found" key)
       value)))
+
+(provide 'mal-env)
index 4829352..5c08a04 100644 (file)
@@ -54,3 +54,5 @@
                   (lambda (item) (concat (car item) " " (cdr item)))
                   (nreverse pairs) " ")))
       (concat "{" items "}"))))
+
+(provide 'printer)
index af68fd1..2461bdd 100644 (file)
           ;; assume anything else is a symbol
           (mal-symbol (intern token))))
       (signal 'end-of-token-stream nil))))
+
+(provide 'reader)
index 405cce4..c68e97b 100755 (executable)
--- a/elisp/run
+++ b/elisp/run
@@ -1,2 +1,2 @@
 #!/bin/bash
-exec emacs -Q --batch --eval "(setq text-quoting-style 'straight)" --load $(dirname $0)/${STEP:-stepA_mal}.el "${@}"
+exec emacs -Q --batch -L $(dirname $0) --eval "(setq text-quoting-style 'straight)" --load $(dirname $0)/${STEP:-stepA_mal}.el "${@}"
index af3ff7b..1f56733 100644 (file)
@@ -1,11 +1,6 @@
-(defun load-relative (file)
-  (let* ((current-file (or load-file-name buffer-file-name))
-         (current-file-directory (file-name-directory current-file)))
-    (load (expand-file-name file current-file-directory) nil t)))
-
-(load-relative "types.el")
-(load-relative "reader.el")
-(load-relative "printer.el")
+(require 'types)
+(require 'reader)
+(require 'printer)
 
 (defun READ (input)
   (read-str input))
index b5f0723..8ff9510 100644 (file)
@@ -1,11 +1,6 @@
-(defun load-relative (file)
-  (let* ((current-file (or load-file-name buffer-file-name))
-         (current-file-directory (file-name-directory current-file)))
-    (load (expand-file-name file current-file-directory) nil t)))
-
-(load-relative "types.el")
-(load-relative "reader.el")
-(load-relative "printer.el")
+(require 'types)
+(require 'reader)
+(require 'printer)
 
 (defvar repl-env (make-hash-table :test 'eq))
 (puthash '+ (lambda (a b) (mal-number (+ (mal-value a) (mal-value b)))) repl-env)
index 1544b1f..05dac6d 100644 (file)
@@ -1,12 +1,7 @@
-(defun load-relative (file)
-  (let* ((current-file (or load-file-name buffer-file-name))
-         (current-file-directory (file-name-directory current-file)))
-    (load (expand-file-name file current-file-directory) nil t)))
-
-(load-relative "types.el")
-(load-relative "env.el")
-(load-relative "reader.el")
-(load-relative "printer.el")
+(require 'types)
+(require 'mal-env)
+(require 'reader)
+(require 'printer)
 
 (defvar repl-env (mal-env))
 (mal-env-set repl-env '+ (lambda (a b) (mal-number (+ (mal-value a) (mal-value b)))))
index 4eb141b..21df7b8 100644 (file)
@@ -1,15 +1,10 @@
 ;; -*- lexical-binding: t; -*-
 
-(defun load-relative (file)
-  (let* ((current-file (or load-file-name buffer-file-name))
-         (current-file-directory (file-name-directory current-file)))
-    (load (expand-file-name file current-file-directory) nil t)))
-
-(load-relative "types.el")
-(load-relative "env.el")
-(load-relative "reader.el")
-(load-relative "printer.el")
-(load-relative "core.el")
+(require 'types)
+(require 'mal-env)
+(require 'reader)
+(require 'printer)
+(require 'core)
 
 (defvar repl-env (mal-env))
 
index 86babe8..31a9d0c 100644 (file)
@@ -1,16 +1,12 @@
 ;; -*- lexical-binding: t; -*-
 
-(defun load-relative (file)
-  (let* ((current-file (or load-file-name buffer-file-name))
-         (current-file-directory (file-name-directory current-file)))
-    (load (expand-file-name file current-file-directory) nil t)))
-
-(load-relative "types.el")
-(load-relative "env.el")
-(load-relative "func.el")
-(load-relative "reader.el")
-(load-relative "printer.el")
-(load-relative "core.el")
+(setq debug-on-error t)
+(require 'types)
+(require 'func)
+(require 'mal-env)
+(require 'reader)
+(require 'printer)
+(require 'core)
 
 (defvar repl-env (mal-env))
 
index ba363d4..aef72f6 100644 (file)
@@ -1,16 +1,11 @@
 ;; -*- lexical-binding: t; -*-
 
-(defun load-relative (file)
-  (let* ((current-file (or load-file-name buffer-file-name))
-         (current-file-directory (file-name-directory current-file)))
-    (load (expand-file-name file current-file-directory) nil t)))
-
-(load-relative "types.el")
-(load-relative "env.el")
-(load-relative "func.el")
-(load-relative "reader.el")
-(load-relative "printer.el")
-(load-relative "core.el")
+(require 'types)
+(require 'func)
+(require 'mal-env)
+(require 'reader)
+(require 'printer)
+(require 'core)
 
 (defvar repl-env (mal-env))
 
index aefde0e..e31aa34 100644 (file)
@@ -1,16 +1,11 @@
 ;; -*- lexical-binding: t; -*-
 
-(defun load-relative (file)
-  (let* ((current-file (or load-file-name buffer-file-name))
-         (current-file-directory (file-name-directory current-file)))
-    (load (expand-file-name file current-file-directory) nil t)))
-
-(load-relative "types.el")
-(load-relative "env.el")
-(load-relative "func.el")
-(load-relative "reader.el")
-(load-relative "printer.el")
-(load-relative "core.el")
+(require 'types)
+(require 'func)
+(require 'mal-env)
+(require 'reader)
+(require 'printer)
+(require 'core)
 
 (defvar repl-env (mal-env))
 
index ee9f220..1e0fa38 100644 (file)
@@ -1,16 +1,11 @@
 ;; -*- lexical-binding: t; -*-
 
-(defun load-relative (file)
-  (let* ((current-file (or load-file-name buffer-file-name))
-         (current-file-directory (file-name-directory current-file)))
-    (load (expand-file-name file current-file-directory) nil t)))
-
-(load-relative "types.el")
-(load-relative "env.el")
-(load-relative "func.el")
-(load-relative "reader.el")
-(load-relative "printer.el")
-(load-relative "core.el")
+(require 'types)
+(require 'func)
+(require 'mal-env)
+(require 'reader)
+(require 'printer)
+(require 'core)
 
 (defvar repl-env (mal-env))
 
index 154111b..d157892 100644 (file)
@@ -1,16 +1,11 @@
 ;; -*- lexical-binding: t; -*-
 
-(defun load-relative (file)
-  (let* ((current-file (or load-file-name buffer-file-name))
-         (current-file-directory (file-name-directory current-file)))
-    (load (expand-file-name file current-file-directory) nil t)))
-
-(load-relative "types.el")
-(load-relative "env.el")
-(load-relative "func.el")
-(load-relative "reader.el")
-(load-relative "printer.el")
-(load-relative "core.el")
+(require 'types)
+(require 'func)
+(require 'mal-env)
+(require 'reader)
+(require 'printer)
+(require 'core)
 
 (defvar repl-env (mal-env))
 
index f0250ba..10445bf 100644 (file)
@@ -1,16 +1,11 @@
 ;; -*- lexical-binding: t; -*-
 
-(defun load-relative (file)
-  (let* ((current-file (or load-file-name buffer-file-name))
-         (current-file-directory (file-name-directory current-file)))
-    (load (expand-file-name file current-file-directory) nil t)))
-
-(load-relative "types.el")
-(load-relative "env.el")
-(load-relative "func.el")
-(load-relative "reader.el")
-(load-relative "printer.el")
-(load-relative "core.el")
+(require 'types)
+(require 'func)
+(require 'mal-env)
+(require 'reader)
+(require 'printer)
+(require 'core)
 
 (defvar repl-env (mal-env))
 
index 591b7fd..e9d914c 100644 (file)
@@ -100,3 +100,5 @@ Defaults to `error'."
 (define-error 'unterminated-sequence "Unterminated token sequence" 'mal)
 (define-error 'end-of-token-stream "End of token stream" 'mal)
 (define-error 'mal-custom "Custom error" 'mal)
+
+(provide 'types)