From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keisuke Nishida To: guile-emacs@sourceware.cygnus.com Subject: import-lisp-macro Date: Fri, 17 Mar 2000 09:40:00 -0000 Message-id: X-SW-Source: 2000-q1/msg00034.html Hello, OK, I did it. Now we can import some lisp macros like this: (import-lisp-macro save-excursion) This works only for (NAME BODY...) style macros for now. The new version is available from CVS: http://sourceforge.net/cvs/?group_id=3545 It seems this version has some GC-related bugs, and the code is not very clean. I'll rewrite them before long. An important change has been made. All imported lisp functions now returns a kind of pointer to a lisp value. The new scheme code looks like this: ;; Call a lisp function with a return value from a lisp function (let ((str (buffer-substring start end))) (insert str)) ;; Call a scheme function with a return value from a lisp function (let ((str (buffer-substring start end))) (eval-string (str))) ;; Another way of writing (eval-string ((buffer-substring start end))) The difference is additional parentheses around the return value. It actually converts a lisp value to a scheme value. I think this is a necessary but a confusing feature. We shouldn't write too many code in this manner. Now we are almost ready to write Emacs Scheme programs. I'd like to write some more experimental programs and to think about a better way of writing scheme programs. Since I'm going to be busy from this weekend, I am not sure if I can work a lot for a while... -- Kei