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 "CMU Common Lisp".
The branch, master has been updated via 3533a13a8cc53e43a7c4d7d27b3e6b8bcc004672 (commit) via 250d2511450366c4e9f07c1515f04ccaf37ebf68 (commit) from b6bd0b590e541a159c4b5eb7e31b64c2ef0b47dc (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 3533a13a8cc53e43a7c4d7d27b3e6b8bcc004672 Author: Raymond Toy toy.raymond@gmail.com Date: Fri Jul 25 22:17:11 2014 -0700
Rename sin/cos/tan/sincos so we don't collide with libm.
Update def-math-rtn to allow specifying the C function name and the lisp function name so we can use def-math-rtn with the new trig functions.
diff --git a/src/code/irrat.lisp b/src/code/irrat.lisp index f2b0e9b..032a6ac 100644 --- a/src/code/irrat.lisp +++ b/src/code/irrat.lisp @@ -28,13 +28,17 @@ ;;; call, and saves number consing to boot. ;;; (defmacro def-math-rtn (name num-args) - (let ((function (intern (concatenate 'simple-string + (multiple-value-bind (c-name lisp-name) + (if (listp name) + (values (first name) (second name)) + (values name + (intern (concatenate 'simple-string "%" (string-upcase name))))) `(progn - (declaim (inline ,function)) - (export ',function) - (alien:def-alien-routine (,name ,function) double-float + (declaim (inline ,lisp-name)) + (export ',lisp-name) + (alien:def-alien-routine (,c-name ,lisp-name) double-float ,@(let ((results nil)) (dotimes (i num-args (nreverse results)) (push (list (intern (format nil "ARG-~D" i)) @@ -65,9 +69,12 @@ ;; For x86 (without sse2), we can use x87 instructions to implement ;; these. With sse2, we don't currently support that, so these ;; should be disabled. - (def-math-rtn "sin" 1) - (def-math-rtn "cos" 1) - (def-math-rtn "tan" 1) +;; (def-math-rtn "sin" 1) +;; (def-math-rtn "cos" 1) + ;; (def-math-rtn "tan" 1) + (def-math-rtn ("fdlibm_sin" %sin) 1) + (def-math-rtn ("fdlibm_cos" %cos) 1) + (def-math-rtn ("fdlibm_tan" %tan) 1) (def-math-rtn "atan" 1) (def-math-rtn "atan2" 2)) (def-math-rtn "asin" 1) @@ -198,7 +205,7 @@ (y1 double-float :out))
(declaim (inline %%sincos)) -(alien:def-alien-routine ("sincos" %%sincos) c-call:void +(alien:def-alien-routine ("lisp_sincos" %%sincos) c-call:void (x double-float) (s double-float :out) (c double-float :out)) diff --git a/src/lisp/s_cos.c b/src/lisp/s_cos.c index a897133..9ae05d8 100644 --- a/src/lisp/s_cos.c +++ b/src/lisp/s_cos.c @@ -45,9 +45,9 @@ #include "fdlibm.h"
#ifdef __STDC__ - double cos(double x) + double fdlibm_cos(double x) #else - double cos(x) + double fdlibm_cos(x) double x; #endif { diff --git a/src/lisp/s_sin.c b/src/lisp/s_sin.c index 1dba1c8..a7ad61d 100644 --- a/src/lisp/s_sin.c +++ b/src/lisp/s_sin.c @@ -45,9 +45,9 @@ #include "fdlibm.h"
#ifdef __STDC__ - double sin(double x) + double fdlibm_sin(double x) #else - double sin(x) + double fdlibm_sin(x) double x; #endif { diff --git a/src/lisp/s_tan.c b/src/lisp/s_tan.c index 4761a4c..0b90762 100644 --- a/src/lisp/s_tan.c +++ b/src/lisp/s_tan.c @@ -44,9 +44,9 @@ #include "fdlibm.h"
#ifdef __STDC__ - double tan(double x) + double fdlibm_tan(double x) #else - double tan(x) + double fdlibm_tan(x) double x; #endif { diff --git a/src/lisp/sincos.c b/src/lisp/sincos.c index f5db8b3..edd0eca 100644 --- a/src/lisp/sincos.c +++ b/src/lisp/sincos.c @@ -1,6 +1,6 @@ #include "fdlibm.h"
-void sincos (double x, double *s, double *c) +void lisp_sincos (double x, double *s, double *c) { int ix; union { int i[2]; double d; } ux;
commit 250d2511450366c4e9f07c1515f04ccaf37ebf68 Author: Raymond Toy toy.raymond@gmail.com Date: Fri Jul 25 21:08:05 2014 -0700
Add declaration to ignore unused variable.
diff --git a/src/code/irrat.lisp b/src/code/irrat.lisp index f95e32c..f2b0e9b 100644 --- a/src/code/irrat.lisp +++ b/src/code/irrat.lisp @@ -208,6 +208,7 @@ (declare (double-float x)) (multiple-value-bind (ign s c) (%%sincos x) + (declare (ignore ign)) (values s c)))
#||
-----------------------------------------------------------------------
Summary of changes: src/code/irrat.lisp | 24 ++++++++++++++++-------- src/lisp/s_cos.c | 4 ++-- src/lisp/s_sin.c | 4 ++-- src/lisp/s_tan.c | 4 ++-- src/lisp/sincos.c | 2 +- 5 files changed, 23 insertions(+), 15 deletions(-)
hooks/post-receive