[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
re: define and set! with multiple-values
- To: info-dylan@cambridge.apple.com
- Subject: re: define and set! with multiple-values
- From: bhyde@gensym.com (Ben A. Hyde)
- Date: Wed, 6 Jan 93 10:04:41 EST
- Cc: @harvard.harvard.edu:rwk@world.std.com
I want to thank the many people for improving my knowledge of how to
implement multiple values.
I think I'm now completely convinced that multiple values tax only
those forms that do catch, unwind-protect, specbinding, return
multiple values, bind multiple values, prog1, and unoptimized tail
recursive calls.
Unoptimized tail recursive calls are, of course, useful for debugging, but
I believe that the FAQ for Dylan says that optimization of tail recursive
calls is "required."
While I'm convinced that the tax is only a very few instructions on
those forms I notice that in CMU Lisp on my sparc:
(defun f (x) (g x)) -> 80 bytes
(defun f (x) (declare (special x)) (g x)) -> 312 bytes
(defun f (x) (declare (special x)
(values fixnum)) (g x)) -> 173 bytes
- ben hyde