source: oct.asd @ 77f7b1

cvs-ids
Last change on this file since 77f7b1 was 77f7b1, checked in by Raymond Toy <toy.raymond@…>, 5 years ago

o Use arrays if we're not running with cmucl.

  • Property mode set to 100644
File size: 3.4 KB
Line 
1;;;; -*- Mode: lisp -*-
2;;;;
3;;;; Copyright (c) 2007 Raymond Toy
4;;;;
5;;;; Permission is hereby granted, free of charge, to any person
6;;;; obtaining a copy of this software and associated documentation
7;;;; files (the "Software"), to deal in the Software without
8;;;; restriction, including without limitation the rights to use,
9;;;; copy, modify, merge, publish, distribute, sublicense, and/or sell
10;;;; copies of the Software, and to permit persons to whom the
11;;;; Software is furnished to do so, subject to the following
12;;;; conditions:
13;;;;
14;;;; The above copyright notice and this permission notice shall be
15;;;; included in all copies or substantial portions of the Software.
16;;;;
17;;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18;;;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19;;;; OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20;;;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21;;;; HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22;;;; WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23;;;; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24;;;; OTHER DEALINGS IN THE SOFTWARE.
25
26;;; This is the asdf definition for oct.  I don't normally use this,
27;;; so it might be out of date.  Use at your own risk.
28
29;; If you want all core functions to be inline (like the C++ code
30;; does), add :qd-inline to *features* by enabling the following line.
31;; This makes compilation much, much slower, but the resulting code
32;; conses much less and is significantly faster.
33#+(not (and cmu x86))
34(eval-when (:load-toplevel :compile-toplevel :execute)
35  (pushnew :qd-inline *features*))
36
37;; To be able to inline all the functions, we need to make
38;; *inline-expansion-limit* much larger.
39;;
40;; Not sure we really want to inline everything, but the QD C++ code
41;; inlines all of the functions so we do the same.  This makes CMUCL
42;; take a very long time to compile the code, and the resulting
43;; functions are huge.  (I think div-qd is 8 KB, and sqrt-qd is a
44;; whopping 30 KB!)
45;;
46#+(and cmu qd-inline)
47(eval-when (:load-toplevel :compile-toplevel :execute)
48  (setf ext:*inline-expansion-limit* 1600))
49
50;;
51;; For all Lisps other than CMUCL, oct uses arrays to store the
52;; quad-double values.  This is denoted by the feature :oct-array.
53;; For CMUCL, quad-doubles can be stored in a (complex
54;; double-double-float) object, which is an extension in CMUCL.
55;; If you want CMUCL to use an array too, add :oct-array to *features*.
56#-cmu
57(pushnew :oct-array *features*)
58
59(defpackage #:oct-system
60  (:use #:cl))
61
62(in-package #:oct-system)
63
64(asdf:defsystem oct
65  :description "A portable implementation of quad-double arithmetic.  See <http://www.common-lisp.net/project/oct>."
66  :author "Raymond Toy"
67  :maintainer "See <http://www.common-lisp.net/project/oct>"
68  :licence "MIT"
69  :version "0.0"                        ; No real version yet
70  :components
71  ((:file "qd-package")
72   (:file "qd-rep" :depends-on ("qd-package"))
73   #-cmu
74   (:file "qd-dd" :depends-on ("qd-package" "qd-rep"))
75   (:file "qd"
76          :depends-on ("qd-rep" #-cmu "qd-dd"))
77   (:file "qd-io"
78          :depends-on ("qd"))
79   (:file "qd-const"
80          :depends-on ("qd-io"))
81   (:file "qd-fun"
82          :depends-on ("qd" "qd-const"))
83   (:file "qd-class"
84          :depends-on ("qd-fun"))
85   (:file "qd-methods"
86          :depends-on ("qd-class"))
87   (:file "qd-format"
88          :depends-on ("qd-methods"))
89   (:file "qd-complex"
90          :depends-on ("qd-methods"))
91   ))
Note: See TracBrowser for help on using the repository browser.