Changeset 10654 for lang/elisp

Show
Ignore:
Timestamp:
04/28/08 17:49:07 (7 months ago)
Author:
lieutar
Message:

I made changes of elisp files to compilable.

Location:
lang/elisp/escm/trunk
Files:
4 added
2 removed
18 modified

Legend:

Unmodified
Added
Removed
  • lang/elisp/escm/trunk/Makefile.in

    r9340 r10654  
    11 
    22EMACS=@EMACS@ 
    3 EMACSFLAGS= -batch -q -L . 
     3SITELISP=@SITELISP@ 
     4 
     5ELDIR=src/elisp 
     6ESCMDIR=src/escm 
     7 
    48ELS= escm-util.minimal.el \ 
    59     escm-test.el \ 
     
    812\ 
    913     escm-base.el \ 
    10      escm-preprocess.el \ 
     14\ 
     15     escm-env.el \ 
    1116\ 
    1217     escm-arity.el \ 
    13      escm-env.el \ 
    1418     escm-proc.el \ 
     19\ 
    1520     escm-syntax.el \ 
     21     escm-iblock-content.el \ 
     22     escm-iblock.el \ 
     23     escm-icode.el \ 
     24     escm-elizer.el \ 
     25     escm-compile.el \ 
     26     escm-port.el \ 
    1627\ 
    17       escm-iblock-content.el \ 
    18       escm-iblock.el \ 
    19       escm-icode.el \ 
    20 \ 
    21       escm-context.el \ 
    22       escm-compile.el \ 
    23 \ 
    24       escm-debug.el \ 
    25       escm-vm.el \ 
    26       escm.el  
     28     escm-debug.el \ 
     29     escm-vm.el \ 
     30     escm.el  
    2731 
    28 .SUFFIXES: .el .elc 
     32EMACSFLAGS= -batch -q -L . 
     33 
     34.SUFFIXES: .el .elc .escm .escmc 
    2935 
    3036.el.elc: 
    3137        $(EMACS) $(EMACSFLAGS) -f batch-byte-compile $< 
    3238 
    33 elc: $(ELS:.el=.elc) 
     39.escm.escmc: 
     40        $(EMACS) $(EMACSFLAGS) -l escm.el -f escm-batch-byte-compile $< 
     41 
     42 
     43 
     44elc: 
     45        cd src/elisp; \ 
     46        make -f ../../Makefile.in elcs EMACS=$(EMACS) 
     47 
     48elcs:  $(ELS:.el=.elc) 
     49 
    3450 
    3551clean: 
    36         rm -rf *.elc 
     52        find . -type f -name \*.elc |xargs rm 
     53 
     54install: install.el 
     55        $(EMACS) $(EMACSFLAGS) -l emacs-config.el 
    3756 
    3857distclean: clean 
  • lang/elisp/escm/trunk/README.rd

    r7842 r10654  
    1212* $BKvHx:F5"$N:GE,2=(B 
    1313* call/cc 
    14  
    1514 
    1615== elisp $B$C$]$$$H$3$m(B 
     
    2928* $BG$0U8D?t$N(BVM$B%$%s%9%?%s%9$,:n$l$k(B 
    3029 
    31  
    3230=end 
    33  
  • lang/elisp/escm/trunk/src/elisp/DEVELOPERSTOOLS.el

    r10036 r10654  
    66 
    77  (require 'escm) 
    8  
    98  (global-set-key [?\C-c ?e ?a] 'escm-debug::activate) 
    109  (global-set-key [?\C-c ?e ?d] 'escm-debug::deactivate) 
     
    2524(when nil 
    2625  (escm-vm::eval (escm-vm::new)  '(+ 0 1 (* 2 3) 4)) 
     26 
    2727  (escm-vm::eval (escm-vm::new)  '(if nil 1 2)) 
    28   (escm-vm::eval 
    29   (escm-vm::new) 
    30   '((lambda () 
    31        (define (fact n) (if (= n 1) n (* n (fact (- n 1))))) 
    32        (fact 10)))) 
     28 
     29  (escm-vm::eval (escm-vm::new) 
     30                '((lambda () 
     31                     (define (fact n) (if (= n 1) n (* n (fact (- n 1))))) 
     32                     (fact 10)))) 
    3333 
    3434  (progn  
     35 
    3536    (defun fib (n) 
    3637      (if (< n 2) 
     
    3839        (+ (fib (- n 2)) 
    3940           (fib (- n 1))))) 
    40     (escm-eval '(fib 10))) 
     41 
     42    (escm-eval '(fib 10)) 
     43 
     44    ) 
    4145 
    4246  (escm-vm::eval 
     
    6569)) 
    6670 
    67 (funcall 
    68 #[(vm) "\306\307\310\307\311\312\306\211\211\211\211&\307\313\306\314\315!\316       \317\320\306BB\"\210    )\320\306%\307\321\322\323\307\303\324\325\326\327\330\331\312\307\310\307\311\332\330\306B\306\211\211\211&\307\333\306\314\315!\316 \330\320\334\335\306BBBB\"\210  )\314\336!\316 \334\306\211BB\"\210    )\307\311\332\330\306B\306\211\211\211&\334\330\306BB&\307\321\322\337\307\303\324\325\326\327\330\331\312\307\310\307\311\340\341\342\330\306BBB\306\211\211\211&\307\333\306\314\315!\316 \341\320\342\335\330\343\306BBBBBB\"\210        )\314\336!\307\311\340\341\342\330\306BBB\306\211\211\211&\330\342\341\306BBB&\307\321\322\344\307\303\330\345\327\324\325\331\312\332\346\306\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\326\370& 
    69 \371$\321\322\372\307\303\330\331\312\373\320\374\375&\335$\321\322\376\307\303\330\345\327\324\325\331\312\332\346\306\347\342\350\351\377\201@\352\340\341\320\201A\354\355\356\357\360\361\362\363\364\365\366\367\201B\326\370&%\371$\321\322\201C\307\303\201B\330\345\327\324\331\312\373\377\201@\332\346\306\347\352\350\351\340\201D\354\355\356\357\360\361\362\363\364\365\366\367\325\326\370&#\371$\321\322\201E\307\303\201B\327\324\325\370\331\312\373\377\201@\332\334\350\354\356\201F\360\201G\362\201H\364\365\374\367&\335$\321\322\201I\307\303\330\331\312\332\374\375&\335$\321\322\201J\307\303\330\345\327\324\325\331\312\332\346\306\347\342\350\351\341\352\201A\354\356\201F\360\201G\362\201H\364\365\374\367\326\370&\371$\321\322\201K\307\303\331\312\201L\201M\201N\201O\201P&\340$&\306\307\201Q\201R\201S#&\350\201T\373\332\334\201U\352\340\346\306\347\320\351\335\354\356\201F\360\201G\362\201H\364\365\374\367\345\370&$\371$\321\322\201K\307\303\331\312\201L\201M\201N\201O\201P&\340$\"\306\307\201Q\201V\201W#&\350\201T\373\332\317\201U\352\340\346\306\347\320\201X\377\201@\335\354\356\201F\360\201G\362\201H\364\365\374\367\345\201B\370&'\343$\321\322\201K\307\303\331\312\201L\201M\201N\201O\201P&\340$\"\306\307\201Q\201Y\201Z#&\211)\211 \201[ !@) 
    70 \211 
    71 \352 I\210*  
    72  
    73 8\355 \2108\206\332\356 ! 
    74 8\357 \3608!\"\210\361 \3628!\"\210\363 \3648 \"\"\210\365 !\210\366 \367\",\207" [escm-util::gensym::18441/32920/95488/8 sym top vm val obj nil vector escm-proc escm-arity 0 escm-fixed-env make-symbol "*dic*" setplist fib 4 make-byte-code (vm *env*) "\306\307\"\210\310C\311\312 
    75         #*\313! \240\210*\306\314\"\210 \315\313!@)D\311\316 
    76         #\210*\306\317\"\210\315\313! \240\210*\306\320\"\210\314 
    77 \321! 
    78 $ 
    79 \307V\203c\322$B$ 
    80 S\211\202Q\323$\"\210+\306\324\"\210\325 
    81 %\326%\327!B\"\210*\306\330\"\210 \315C\311\331 
    82         #* 
    83 &&\206\233\332! 
    84 &\333\334&!\"\210\335\336&!\"\210\337\340&\"\"\210\341!\210\342\343\"+\207" args *object* v *env* n escm-debug 1 escm-dynamic-env iter 5 "*valdic*" "\306\307\"\210\310C\311\312 
    85         #*\313! \240\210*\306\314\"\210 \315\313!@)D\311\316 
    86         #\210*\306\317\"\210\315\313! \240\210*\306\320\"\210\314 
    87 \321! 
    88 \" 
    89 \307V\203c\322\"B\" 
    90 S\211\202Q\323\"\"\210+\306\324\"\210 \305C\311\325 
    91         #*\314\307\321!@)BBB\321! \240\210*\306\326\"\210 \315C\311\327 
    92         #* 
    93 ##\206\254\330! 
    94 #\331\332#!\"\210\333\334#!\"\210\335\336#\"\"\210\337!\210\340\341\"+\207" 3 a b 6 "\306\307\"\210\310\311!     \307V\203 
    95 \312 
    96 B      S\211\202\313 
    97 \"\210+\306\310\"\210\307 \301C 
    98  
    99 \314\315 
    100  #*\311!@)BB 
    101  
    102 \311! 
    103 \240\210*\306\316\"\210 \317C 
    104  
    105 \314\320 
    106  #* 
    107  
    108 \321 \210 
    109 \206i\322! 
    110  
    111 \323\324 
    112 !\"\210\325\326 
    113 !\"\210\327\330 
    114 \"\"\210\331!\210\332\333\"+\207" stack escm-vm::get-arg-stack escm-vm::set-arg-stack escm-cbos::run-method escm-env::gref 2 = escm-env::fref escm-debug::enter escm-vm::current-val escm-vm::push-src escm-proc::get-src escm-vm::push-proc escm-proc::get-body escm-vm::push-env escm-proc::runtime-env escm-vm::pop-arg escm-vm::push-pc -1 proc 7 "\302\303\"\210\304!@)\205 
    115 \305\306    \307!\\\"*\207" escm-vm::get-val-stack escm-vm::set-current-pc escm-vm::current-pc "\306\307\"\210\310\311!      \307V\203 
    116 \312 
    117 B      S\211\202\313 
    118 \"\210+\306\310\"\210 \314C 
    119  
    120 \315\316 
    121  #* 
    122 \"\317\"\320!B\"\210*\306\321\"\210\310\311!  \307V\203a\312 
    123 B      S\211\202Q\313 
    124 \"\210+\306\322\"\210 \314C 
    125  
    126 \315\316 
    127  #* \323C 
    128  
    129 \315\316 
    130  #*\311!@)BB 
    131 #\311!#\240\210*\306\324\"\210 \325C 
    132  
    133 \315\326 
    134  #* 
    135 $\327 \210$\206\266\330! 
    136 $\331\332$!\"\210\333\334$!\"\210\335\336$\"\"\210\337!\210\340\341\"+\207" escm-vm::set-current-arg escm-vm::current-arg + arg "\306\307\"\210\211\310!@)\311  \312!B\"\210*\306\313\"\210\313\314! 
    137 \307V\2037\315 B 
    138 S\211\202'\316 \"\210+\306\317\"\210\313 \302C 
    139  
    140  \320\321  
    141 #*\314!@)BB 
    142 !\314!!\240\210*\306\322\"\210 \323C 
    143  
    144  \320\324  
    145 #* 
    146 \"\325 \210\"\206\206\326! 
    147 \"\327\330\"!\"\210\331\332\"!\"\210\333\334\"\"\"\210\335!\210\336\337\"+\207" - "\306\307\"\210\211\310!@)\311        \312!B\"\210*\306\313\"\210 
    148 \314C 
    149 \315\316 #* 
    150  
    151 \2063\317! 
    152 \320\321 
    153 !\"\210\322\323 
    154 !\"\210\324\325 
    155 \"\"\210\326!\210\327\330\"+\207" escm-vm::set-current-src escm-vm::set-current-proc escm-vm::set-current-env "\302\303\"\210\304\305   \306!\\\"*\207" "\306\307\"\210\310\311! \307V\203 
    156 \312 
    157 B      S\211\202\313 
    158 \"\210+\306\310\"\210 \314C 
    159  
    160 \315\316 
    161  #* \317C 
    162  
    163 \315\316 
    164  #*\311!@)BB 
    165  
    166 \311! 
    167 \240\210*\306\320\"\210 \321C 
    168  
    169 \315\322 
    170  #* 
    171  
    172  
    173 \206p\323! 
    174  
    175 \324\325 
    176 !\"\210\326\327 
    177 !\"\210\330\331 
    178 \"\"\210\332!\210\333\334\"+\207" "\301\302\"\210\303!\210\304!\210\305!\210\306!\210\307 )\207" escm-vm::pop-src escm-vm::pop-proc escm-vm::pop-env escm-vm::pop-pc escm-debug::leave escm-iproc (list (vector (quote escm-iblock) (quote (list nil nil nil)) (quote t)) (vector (quote escm-iblock) (quote (list nil)) (quote t)) (vector (quote escm-iblock) (quote (list nil nil nil nil nil)) (quote t)) (vector (quote escm-iblock) (quote (list nil nil nil nil)) (quote t)) (vector (quote escm-iblock) (quote (list nil nil)) (quote t)) (vector (quote escm-iblock) (quote (list nil)) (quote t)) (vector (quote escm-iblock) (quote (list nil nil nil)) (quote t)) (vector (quote escm-iblock) (quote (list nil)) (quote t))) (lambda (a b n) (if (= n 0) (+ a b) (iter b (+ a b) (- n 1)))) escm-proc::activate escm-env::gset! (list (vector (quote escm-iblock) (quote (list nil nil nil nil nil nil)) (quote t)) (vector (quote escm-iblock) (quote (list nil)) (quote t))) (lambda (n) (define (iter a b n) (if (= n 0) (+ a b) (iter b (+ a b) (- n 1)))) (iter 0 1 n)) 10 (list (vector (quote escm-iblock) (quote (list nil nil nil nil nil nil)) (quote t)) (vector (quote escm-iblock) (quote (list nil)) (quote t))) (lambda nil (define (fib n) (define (iter a b n) (if (= n 0) (+ a b) (iter b (+ a b) (- n 1)))) (iter 0 1 n)) (fib 10)) escm-vm::get-env-stack] 83] 
    179  
    180 (escm-vm::new) 
    181 ) 
    182  
    183  
    184  
    185  
     71(when nil 
    18672 
    18773  (escm-vm::eval 
     
    237123  (escm-eval '(fact 20)) 
    238124  (fact 1) 
    239   ((elambda (a b) (+ a b)) 1 2) 
    240   ) 
     125 
     126  ((elambda (a b) (+ a b)) 1 2) ) 
     127) 
  • lang/elisp/escm/trunk/src/elisp/escm-arity.el

    r10036 r10654  
    2727;;; Code: 
    2828(require 'escm-base) 
    29 ;;(require 'escm-env) 
     29(require 'escm-env) 
    3030 
    3131(escm-cbos::define-class (escm-arity escm-object) 
  • lang/elisp/escm/trunk/src/elisp/escm-base.el

    r10036 r10654  
    2222   (escm-unsupported   ""))) 
    2323 
     24 
     25 
     26 
    2427;; variables 
    25 (defconst escm-compiler-varsion 0.01) 
     28(defconst escm-compiler-version 0.01) 
    2629(defconst escm-icode::indent "" "") 
    2730 
     31;; utilities that only in this project. 
     32 
     33(defun escm-project-directory (purpose) 
     34  "Returns absolute path to the directory that is purposed by PURPOSE." 
     35  (expand-file-name 
     36   (case purpose 
     37     ((test) "test") 
     38     ((escm) "escm") 
     39     (t (signal 'error (list "unknown project-directory type" purpose)))) 
     40   (expand-file-name 
     41    "../" 
     42    (file-name-directory (locate-library "escm"))))) 
    2843 
    2944(provide 'escm-base) 
  • lang/elisp/escm/trunk/src/elisp/escm-cbos.el

    r9340 r10654  
    6464  (get 'escm-cbos::class-fields class)) 
    6565 
    66 (defsubst escm-cbos::register-class (name super fields) 
    67   "" 
    68   (put 'escm-cbos::class-vmt 
    69        name (let ((tbl (make-symbol (format "*spec:%s*" name)))) 
    70               (set tbl 
    71                    (cons name 
    72                          (symbol-value (get 'escm-cbos::class-vmt 
    73                                             super)))) 
    74               tbl)) 
    75   (let ((retval 
     66(defsubst escm-cbos::make-class-info (name super fields) 
     67  "" 
     68  (unless (or (null super) 
     69              (escm-cbos::classp super)) 
     70    (signal 'error `(classp ,super))) 
     71  (let ((fields 
    7672         (if super (append (escm-cbos::get-fields-of super) fields) fields))) 
    77     (put 'escm-cbos::class-fields name retval) 
    78     retval)) 
     73    (cons fields 
     74          `(progn 
     75             (put 'escm-cbos::class-fields ',name ',fields) 
     76             (put 'escm-cbos::class-vmt 
     77                  ',name (let ((*tbl* (make-symbol (format "*spec:%s*" ',name)))) 
     78                           (set *tbl* 
     79                                (cons ',name 
     80                                      ',(symbol-value (get 'escm-cbos::class-vmt 
     81                                                           super)))) 
     82                           *tbl*)))))) 
     83 
     84;;(escm-cbos::make-class-info 'a nil '(c d)) 
     85 
     86(defun escm-cbos::register-class  (name super fields) 
     87  (eval (cdr (escm-cbos::make-class-info name super fields)))) 
    7988 
    8089(defmacro escm-cbos::define-method (class name args &rest body) 
    8190  "defines method of escm-cbos objects."    
    8291  `(progn 
    83      ,(when (not (fboundp 'name)) 
    84         `(defsubst ,name (*object* &rest args) 
     92     (when (not (fboundp ',name)) 
     93        (defun ,name (*object* &rest args) 
    8594           (escm-cbos::run-method ',name *object* args))) 
    8695     ,(if (null class) 
     
    184193  (let* ((name      (car inhspec)) 
    185194         (super     (or (cadr inhspec) 'escm-cbos::Object)) 
    186          (fields    (escm-cbos::register-class name super fields)) 
     195         (classinfo (escm-cbos::make-class-info name super fields)) 
     196         (fields    (car classinfo)) 
    187197         (len       (length fields)) 
    188198         (new       (intern (format "create-%s" name))) 
    189199         (pred      (intern (format "%s-p"      name)))) 
    190200    `(progn 
     201       ,(cdr classinfo) 
    191202       (defsubst ,new () 
    192203         (let ((new (make-vector ,(+ 1 len) nil))) 
     
    292303  (equal a b)) 
    293304 
    294 (escm-cbos::define-method nil escm-cbos::stringify (self) 
    295   (format "#<normal : %S>" self)) 
    296  
    297305(escm-cbos::define-method 
    298306  escm-cbos::Object escm-cbos::stringify (self) 
  • lang/elisp/escm/trunk/src/elisp/escm-compile.el

    r10036 r10654  
    3030(require 'escm-syntax ) 
    3131(require 'escm-icode  ) 
     32 
    3233(require 'escm-env    ) 
    33 (require 'escm-context) 
     34(require 'escm-arity  ) 
     35 
     36;;(require 'escm-context) 
     37(escm-cbos::define-class 
     38 (escm-context escm-object t) 
     39 (vm)            ;; virtual machine. 
     40 (env    :copy)  ;; environment of current context. 
     41 (tail?  :copy)  ;; non nil if current context is terminal. 
     42 (func?  :copy)) 
     43 
     44(defsubst escm-context::new (env &optional vm) 
     45  (let ((new (escm-context::set-env (create-escm-context) env))) 
     46    (escm-context::set-vm     new vm) 
     47    new)) 
     48 
     49(defsubst escm-context::push (self &optional syms) 
     50  (escm-context::new 
     51   (escm-dynamic-env::new (escm-context::get-env self) syms) 
     52   (escm-context::get-vm self))) 
     53;; 
    3454 
    3555(defun escm-elize (context) 
    36   `(lambda (vm) 
    37      (let ,(escm-context::get-all-symbols context) 
    38        ,@(escm-context::build-object-definer context) 
    39        ,@(escm-context::build-vm-manupilator context)))) 
     56  (list 'lambda '(vm) 
     57        (append (list 'let (escm-context::get-all-symbols context)) 
     58                (escm-context::build-object-definer context) 
     59                (escm-context::build-vm-manupilator context)))) 
    4060 
    4161 
     
    6787   ((and sexp 
    6888         (symbolp sexp)) 
    69     (escm-icode `(( ,(if (escm-context::get-func? context) 'fref 'ref) 
    70                     ,sexp 
    71                     ,(escm-context::get-env context))))) 
     89    (escm-icode (list (list (if (escm-context::get-func? context) 'fref 'ref) 
     90                            sexp 
     91                            (escm-context::get-env context))))) 
    7292 
    7393   ;; sexp 
    74    (t (escm-icode `((store  ,sexp)))))) 
     94   (t (escm-icode (list (list 'store  sexp)))))) 
    7595;;(escm-vm::eval (escm-vm::new) '(+ 1 2)) 
    7696 
     
    88108 
    89109    (escm-test varref (equal (escm-test::p 'icode (escm-compile context 'a)) 
    90                              (escm-icode `((ref a ,root))))) 
     110                             (escm-icode (list (list 'ref 'a root))))) 
    91111 
    92112    (escm-test::p 'built (escm-iproc::build (escm-compile context 'a))))) 
     
    105125                            (escm-context::set-func? context t)  head)) 
    106126    (escm-iproc::merge ret 
    107                        (escm-icode `((,(if (escm-context::get-tail? context) 
    108                                            'tcall 
    109                                         'call))))))) 
     127                       (escm-icode (list (list (if (escm-context::get-tail? context) 
     128                                                   'tcall 
     129                                                'call))))))) 
    110130;;; test code 
    111131(escm-test::define-test escm escm-compile-apply 
     
    140160    (when nega1 (escm-iblock::add-contents 
    141161                 posi0 (escm-inimonic::new 'jmp (list (length nega1))))) 
    142     (escm-iproc::merge condx (escm-icode `((ifv ,posi0 ,nega0)))) 
     162    (escm-iproc::merge condx (escm-icode (list (list 'ifv posi0 nega0)))) 
    143163    (escm-iproc::merge condx (escm-iproc::new nega1)))) 
    144164 
     
    150170    (when posi1 (escm-iblock::add-contents 
    151171                 nega0 (escm-inimonic::new 'jmp (list (length posi1))))) 
    152     (escm-iproc::merge condx (escm-icode `((ifv ,posi0 ,nega0)))) 
     172    (escm-iproc::merge condx (escm-icode (list (list 'ifv posi0 nega0)))) 
    153173    (escm-iproc::merge condx (escm-iproc::new posi1)))) 
    154174 
     
    156176  "" 
    157177  (escm-iproc::merge negativex 
    158                      (escm-icode `((jmp ,(escm-iproc::length positivex))))) 
     178                     (escm-icode (list (list 'jmp (escm-iproc::length positivex))))) 
    159179  (escm-iproc::merge condx 
    160                      (escm-icode `((jt  ,(escm-iproc::length negativex))))) 
     180                     (escm-icode (list (list 'jt  (escm-iproc::length negativex))))) 
    161181  (escm-iproc::merge condx negativex) 
    162182  (escm-iproc::merge condx positivex)) 
     
    212232(defun escm-compile-elamba (context sexp) 
    213233  (let* ((elfun (byte-compile (cons 'lambda (cdr sexp))))) 
    214     (escm-icode `((store ,(escm-wrapped-proc::new elfun)))))) 
    215  
    216 (defun escm-compile-elmeth () 
     234    (escm-icode (list (list 'store (escm-wrapped-proc::new elfun)))))) 
     235 
     236(defun escm-compile-elmeth (context sexp) 
    217237  (let* ((elfun (byte-compile (cons 'lambda (cdr sexp))))) 
    218     (escm-icode `((store ,(escm-wrapped-vm-method::new elfun)))))) 
    219  
     238    (escm-icode (list (list 'store (escm-wrapped-vm-method::new elfun)))))) 
     239 
     240(defun escm-compile-set! (context sexp) 
     241  (let* ((sym   (cadr sexp)) 
     242         (val   (caddr sexp)) 
     243         (iproc (escm-compile (escm-context::set-tail? context nil) val))) 
     244    (escm-iproc::merge iproc 
     245                       (escm-icode (list (list 'set! sym (escm-context::get-env context))))))) 
    220246 
    221247 
     
    223249  (let* ((bindings (cadr sexp)) 
    224250         (body     (cddr sexp)) 
    225          (name     (unless (listp binding) 
     251         (name     (unless (listp bindings) 
    226252                     (let ((name bindings)) 
    227253                       (setq bindings (car body)) 
     
    238264     bindings) 
    239265    (when name (setq syms (cons name syms))) 
    240     (let ((proc (escm-compile context `(lambda ,syms ,body))) 
     266    (let ((proc (escm-compile context (list 'lambda syms body))) 
    241267          (ret  (escm-iproc::new ()))) 
    242268      
    243269      (mapcar 
    244270       (lambda (v) (escm-iproc::merge ret v)) 
    245        (if name (cons (escm-iproc `((store-to-arg ,proc))) vals) 
     271       (if name (cons (escm-iproc (list (list 'store-to-arg proc))) vals) 
    246272         vals)) 
    247273      ret))) 
     
    257283                      name 
    258284                      (escm-syntax::new proc)) 
    259     (escm-icode `((store ',name))))) 
     285    (escm-icode (list (list 'store (list 'quote name)))))) 
    260286 
    261287(escm-test::define-test escm define-syntax 
     
    322348;; 
    323349(defun escm-compile-lambda (context sexp) 
    324   (escm-icode `((store-proc ,(escm-compile-lambda1 context sexp))))) 
     350  (escm-icode (list (list 'store-proc (escm-compile-lambda1 context sexp))))) 
    325351 
    326352;; 
     
    340366     "compiled" 
    341367     (escm-iproc::to-string 
    342       (escm-icode `((store-proc ,(escm-compile-lambda1 context sexp)))))) 
     368      (escm-icode (list (list 'store-proc (escm-compile-lambda1 context sexp)))))) 
    343369    (funcall test (escm-compile-lambda1 context sexp)) 
    344370    (funcall test (escm-vm::eval vm sexp)))) 
     
    349375  (let ((body (cdr sexp))) 
    350376    (escm-icode 
    351      `((store-proc 
    352         ,(escm-wrapped-proc::new 
    353           (if  (= (length body) 1) 
    354               body 
    355             (byte-compile (cons 'lambda body))))))))) 
     377     (list (list 'store-proc 
     378                 (escm-wrapped-proc::new 
     379                  (if  (= (length body) 1) 
     380                      body 
     381                    (byte-compile (cons 'lambda body))))))))) 
    356382 
    357383;; 
     
    359385  (let* ((spec (cadr sexp))) 
    360386    (if (listp spec) 
    361         `(,(car spec) (lambda ,(cdr spec) ,@(cddr sexp))) 
    362       `(, name ,(caddr sexp))))) 
     387        (list (car spec) 
     388              (append (list 'lambda (cdr spec)) 
     389                      (cddr   sexp))) 
     390      (list spec 
     391            (caddr sexp))))) 
    363392 
    364393;; 
     
    370399    (escm-env::define  env  name) 
    371400    (escm-iproc::merge (escm-compile context body) 
    372                        (escm-icode `((set!  ,name ,env) 
    373                                      (store ',name)))))) 
     401                       (escm-icode (list (list 'set!  name env) 
     402                                         (list 'store (list 'quote name))))))) 
    374403 
    375404;; 
     
    402431;; 
    403432(defun escm-compile-quote (context sexp) 
    404   (escm-icode `((store ',(cadr sexp))))) 
     433  (escm-icode (list (list 'store (list 'quote (cadr sexp)))))) 
    405434 
    406435;; 
     
    411440     (escm-define-builtin-syntax 
    412441