Changeset 9340 for lang/elisp
- Timestamp:
- 04/12/08 09:26:15 (8 months ago)
- Location:
- lang/elisp/escm/trunk
- Files:
-
- 4 added
- 2 modified
- 21 moved
-
Makefile.el (modified) (1 diff)
-
Makefile.in (modified) (1 diff)
-
src (added)
-
src/elisp (added)
-
src/elisp/DEVELOPERSTOOLS.el (moved) (moved from lang/elisp/escm/trunk/DEVELOPERSTOOLS.el) (2 diffs)
-
src/elisp/escm-arity.el (moved) (moved from lang/elisp/escm/trunk/escm-arity.el)
-
src/elisp/escm-base.el (moved) (moved from lang/elisp/escm/trunk/escm-base.el)
-
src/elisp/escm-cbos.el (moved) (moved from lang/elisp/escm/trunk/escm-cbos.el)
-
src/elisp/escm-compile.el (moved) (moved from lang/elisp/escm/trunk/escm-compile.el)
-
src/elisp/escm-context.el (moved) (moved from lang/elisp/escm/trunk/escm-context.el)
-
src/elisp/escm-debug.el (moved) (moved from lang/elisp/escm/trunk/escm-debug.el)
-
src/elisp/escm-env.el (moved) (moved from lang/elisp/escm/trunk/escm-env.el)
-
src/elisp/escm-iblock-content.el (moved) (moved from lang/elisp/escm/trunk/escm-iblock-content.el)
-
src/elisp/escm-iblock.el (moved) (moved from lang/elisp/escm/trunk/escm-iblock.el)
-
src/elisp/escm-icode.el (moved) (moved from lang/elisp/escm/trunk/escm-icode.el)
-
src/elisp/escm-port.el (moved) (moved from lang/elisp/escm/trunk/escm-port.el) (8 diffs)
-
src/elisp/escm-preprocess.el (moved) (moved from lang/elisp/escm/trunk/escm-preprocess.el)
-
src/elisp/escm-proc.el (moved) (moved from lang/elisp/escm/trunk/escm-proc.el)
-
src/elisp/escm-syntax.el (moved) (moved from lang/elisp/escm/trunk/escm-syntax.el) (2 diffs)
-
src/elisp/escm-test.el (moved) (moved from lang/elisp/escm/trunk/escm-test.el)
-
src/elisp/escm-util.el (moved) (moved from lang/elisp/escm/trunk/escm-util.el)
-
src/elisp/escm-util.file.el (moved) (moved from lang/elisp/escm/trunk/escm-util.file.el)
-
src/elisp/escm-util.minimal.el (moved) (moved from lang/elisp/escm/trunk/escm-util.minimal.el)
-
src/elisp/escm-vm.el (moved) (moved from lang/elisp/escm/trunk/escm-vm.el) (3 diffs)
-
src/elisp/escm.el (moved) (moved from lang/elisp/escm/trunk/escm.el)
-
src/escm (added)
-
src/test (added)
Legend:
- Unmodified
- Added
- Removed
-
lang/elisp/escm/trunk/Makefile.el
r9197 r9340 44 44 (defun escm-make.elc () 45 45 (mapcar (function escm-make::compile) escm-make::els)) 46 47 (defun escm) 48 46 49 ;;(escm-make.elc) -
lang/elisp/escm/trunk/Makefile.in
r9339 r9340 35 35 clean: 36 36 rm -rf *.elc 37 38 distclean: clean 39 rm -rf config.log config.status Makefile -
lang/elisp/escm/trunk/src/elisp/DEVELOPERSTOOLS.el
r9197 r9340 25 25 (when nil 26 26 27 (escm-vm::eval (escm-vm::new) '(+ 0 1 2 3))28 27 (escm-vm::eval (escm-vm::new) '(+ 0 1 (* 2 3) 4)) 29 28 (escm-vm::eval (escm-vm::new) '(if nil 1 2)) … … 106 105 ((elambda (a b) (+ a b)) 1 2) 107 106 ) 108 109 -
lang/elisp/escm/trunk/src/elisp/escm-port.el
r9197 r9340 28 28 29 29 (require 'escm-base) 30 (require 'escm-preprocess) 30 31 31 32 (escm-cbos::define-class (escm-port)) … … 35 36 36 37 ;; [R5RS] 37 (escm-cbos::define-method escm-port escmp-port::input-port? (self) nil)38 38 ;; [R5RS] 39 (escm-cbos::define-method escm-port escm p-port::output-port? (self) nil)40 39 (escm-cbos::define-method escm-port escm-port::input-port? (self) nil) 40 (escm-cbos::define-method escm-port escm-port::output-port? (self) nil) 41 41 42 42 (escm-cbos::define-class (escm-output-port escm-port)) … … 45 45 ;; [R5RS] Closes input and output port, respectively 46 46 47 (escm-cbos::define-class (escm-input-port escm-port)) 48 (escm-cbos::define-method escm-input-port escm-port::input-port? (self) t) 49 (escm-cbos::define-method escm-input-port escm-input-port::read (self)) 50 (escm-cbos::define-method escm-input-port escm-input-port::close-input-port (self)) 51 (escm-cbos::define-method escm-input-port escm-input-port::read-char (self)) 52 (escm-cbos::define-method escm-input-port escm-input-port::peek-char (self)) 53 (escm-cbos::define-method escm-input-port escm-input-port::char-ready? (self)) 47 54 48 (escm-cbos::define-class (escm-input-port escm-port)) 49 50 (escm-cbos::define-method escm-input-port 51 escm-input-port::read (self)) 52 53 (escm-cbos::define-method escm-input-port 54 escm-input-port::close-input-port (self)) 55 56 (escm-cbos::define-method escm-input-port 57 escm-input-port::read-char (self)) 58 59 (escm-cbos::define-method escm-input-port 60 escm-input-port::peek-char (self)) 61 62 (escm-cbos::define-method escm-input-port 63 escm-input-port::char-ready? (self)) 64 65 66 67 (escm-cbos::define-class (escm-input-file escm-input-port) buffer position) 55 (escm-cbos::define-class (escm-input-file escm-input-port) buffer position file) 68 56 69 57 (defsubst escm-input-file::new (file) 70 " creates a filehandle that bound to given path."58 "Create input port that associated the FILE." 71 59 (let* ((self (create-escm-input-file)) 72 60 (buf (find-file-noselect file nil nil))) … … 74 62 (set-buffer buf) 75 63 (rename-buffer (format " *escm-open %s*" file))) 76 (escm-input-file::set-buffer buf) 77 (escm-input-file::set-positon 1) 64 (escm-input-file::set-file self file) 65 (escm-input-file::set-buffer self buf) 66 (escm-input-file::set-positon self 1) 78 67 self)) 68 69 (defsubst escm-input-file::read (self) 70 "Reads sexp from port." 71 (let ((buf (escm-input-file::get-buffer self)) 72 (ret nil)) 73 (save-excursion 74 (set-buffer buf) 75 (goto-char (escm-input-file::get-positon self)) 76 (setq ret (escm-preprocess::process-elisp-quotes (read buf))) 77 (escm-input-file::set-positon self (point)) 78 ret))) 79 79 80 80 (defsubst escm-input-file::at-eof? (self) … … 93 93 (when r (aref r 0))))) 94 94 95 96 95 (defsubst escm-input-file::peek-char (self) 97 96 (if (escm-input-file::at-eof? self) nil … … 105 104 106 105 (defsubst escm-input-file::close-input-port (self) 107 " closes filehandle."106 "Closes the port that is givened as SELF." 108 107 (kill-buffer (escm-input-file::get-buffer self)) 109 108 (escm-input-file::set-buffer self nil)) … … 112 111 (not (escm-input-file::at-eof? self))) 113 112 113 (escm-cbos::define-method escm-input-file 114 escm-input-port::read (self) 115 (escm-input-file::read self)) 114 116 115 117 (escm-cbos::define-method escm-input-file … … 129 131 (escm-input-file::char-ready? self)) 130 132 131 132 133 (escm-test::define-test ) 133 134 134 135 (provide 'escm-stream) -
lang/elisp/escm/trunk/src/elisp/escm-syntax.el
r9113 r9340 56 56 self)) 57 57 58 59 58 (defsubst escm-builtin-syntax::new (proc) 60 59 (let ((self (create-escm-builtin-syntax))) … … 66 65 name 67 66 (escm-builtin-syntax::new fun))) 67 68 68 (put 'escm-define-builtin-syntax 'lisp-indent-function 'defun) 69 69 -
lang/elisp/escm/trunk/src/elisp/escm-vm.el
r9197 r9340 32 32 (require 'escm-compile ) 33 33 (require 'escm-debug ) 34 34 (require 'escm-port ) 35 35 36 36 (defvar escm-vm::init-hook ()) … … 170 170 ;;(escm-test::run 'escm 'escm-vm-eval) 171 171 172 (defsubst escm-vm::compile (vm sexp) 173 (escm-iproc::merge 174 (escm-compile (escm-context::set-tail? 175 (escm-context::new (escm-vm::current-env vm) vm) t) 176 (escm-preprocess::process-elisp-quotes sexp)) 177 (escm-icode '((ret))))) 178 179 (defsubst escm-vm::compile-top-level (vm sexp) 180 (let ((iproc (escm-vm::compile vm sexp))) 181 (escm-iproc::set-src iproc sexp) 182 (escm-iproc::to-proc iproc 183 (escm-arity::new ()) 184 (escm-vm::current-env vm)))) 185 186 (defun escm-vm::eval (vm sexp) 187 (escm-vm::apply vm (escm-vm::compile-top-level vm sexp) nil)) 172 (escm-util::expand 173 (let ((build 174 (lambda (suffix pp) 175 `((defsubst ,(intern (concat "escm-vm::compile" suffix)) (vm sexp) 176 (escm-iproc::merge 177 (escm-compile (escm-context::set-tail? 178 (escm-context::new 179 (escm-vm::current-env vm) vm) t) 180 ,(funcall pp 'sexp)) 181 (escm-icode '((ret))))) 182 183 (defsubst ,(intern (concat "escm-vm::compile-top-level" suffix)) (vm sexp) 184 (let ((iproc (escm-vm::compile vm sexp))) 185 (escm-iproc::set-src iproc sexp) 186 (escm-iproc::to-proc iproc 187 (escm-arity::new ()) 188 (escm-vm::current-env vm)))) 189 190 (defun ,(intern (concat "escm-vm::eval" suffix)) (vm sexp) 191 (escm-vm::apply vm (escm-vm::compile-top-level vm sexp) nil)) 192 )))) 193 194 `( ,@(funcall build "" (lambda (sexp) 195 `(escm-preprocess::process-elisp-quotes ,sexp))) 196 ,@(funcall build "1" (lambda (sexp) sexp))))) 197 188 198 189 199 (defsubst escm-vm::define (vm sym val) … … 211 221 ret)) 212 222 213 (defsubst escm-vm::load1 (vm path)214 215 )216 217 223 (defun escm-vm::load (vm name) 218 224 (let ((path (escm-vm::locate-library vm name))) 219 225 (when path (escm-vm::load1 path)))) 220 226 227 (defsubst escm-vm::load1 (vm path) 228 (let ((port (escm-input-file::new path)) 229 (sexp )) 230 (while (setq sexp (escm-input-file::read port)) 231 (escm-vm::eval vm sexp)))) 232 221 233 (provide 'escm-vm) 222 234 ;;; escm-vm.el ends here
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)