From: Akshay S. <ak...@us...> - 2013-01-27 09:20:13
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "matlisp". The branch, tensor has been updated via bee3634bf96916ccb63248bd8fa61c16d7c25da3 (commit) from 0c9fe59c75989013c9154326a382abd22fc056f0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit bee3634bf96916ccb63248bd8fa61c16d7c25da3 Author: Akshay Srinivasan <aks...@gm...> Date: Sun Jan 27 01:15:23 2013 -0800 Added macrology to ignore multiple outputs inside the callback. diff --git a/src/ffi/f77-ffi.lisp b/src/ffi/f77-ffi.lisp index 1870a0d..b03b2c5 100644 --- a/src/ffi/f77-ffi.lisp +++ b/src/ffi/f77-ffi.lisp @@ -252,9 +252,6 @@ ,@(mapcar #'second return-vars))))))))) ;;TODO: Outputs are messed up inside the callback - ;;TODO: Define callbacks outside the function call and lexically bind functions inside the - ;; call. Callbacks allocate memory in some non-GC'ed part of the heap. Runs out of memory - ;; quite quickly. (defun %f77.def-fortran-callback (func callback-name return-type parm) (let* ((hack-return-type `,return-type) (hack-parm `(,@parm)) @@ -333,8 +330,9 @@ `(let (,@array-vars))) ;; `(multiple-value-bind (,retvar ,@(mapcar #'car return-vars)) (funcall ,func ,@func-pars) - ,@(when (eq hack-return-type :void) - `((declare (ignore ,retvar)))) + (declare (ignore ,@(mapcar #'car return-vars) + ,@(when (eq hack-return-type :void) + `(,retvar)))) ,@(mapcar #'(lambda (decl) (destructuring-bind (func-var ffi-var type) decl (if (member type '(:complex-single-float :complex-double-float)) ----------------------------------------------------------------------- Summary of changes: src/ffi/f77-ffi.lisp | 8 +++----- 1 files changed, 3 insertions(+), 5 deletions(-) hooks/post-receive -- matlisp |