| 1 | <!-- -*- mode: HTML; time-stamp-line-limit: -18; -*- --> |
|---|
| 2 | <?xml version="1.0" encoding="iso-8859-1"?> |
|---|
| 3 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
|---|
| 4 | <html xmlns="http://www.nw3.org/1999/xhtml"> |
|---|
| 5 | <head> |
|---|
| 6 | <link rel="stylesheet" href="style.css" type="text/css"/> |
|---|
| 7 | <title>GSLL Development</title> |
|---|
| 8 | </head> |
|---|
| 9 | <body> |
|---|
| 10 | <div class="body"> |
|---|
| 11 | |
|---|
| 12 | <div class="header"> |
|---|
| 13 | <h1>GSLL Development</h1> |
|---|
| 14 | <h2>GSLL Development</h2> |
|---|
| 15 | </div> |
|---|
| 16 | |
|---|
| 17 | <h3>Goals</h3> |
|---|
| 18 | <p>The goal of this project is to provide as complete an interface |
|---|
| 19 | to the GSL as possible in as Lisp-natural a way as is reasonable. It is |
|---|
| 20 | written only in Common Lisp (no C), with access to the foreign library |
|---|
| 21 | through CFFI. |
|---|
| 22 | |
|---|
| 23 | <h3>Non-goals</h3> |
|---|
| 24 | The following is not part of the plan for the GSLL interface: |
|---|
| 25 | <ul> |
|---|
| 26 | <li>Anything that is defined solely in C header files and not in the .so |
|---|
| 27 | library will not be a part of GSLL, because of the lack of access |
|---|
| 28 | through the library. For example, Physical Constants |
|---|
| 29 | are all defined as C macros.</li> |
|---|
| 30 | <li>Anything for which there are two near-equivalent GSL functions |
|---|
| 31 | and for which one is already provided. For example, all of the |
|---|
| 32 | special functions have two forms, one which provides the answer(s) |
|---|
| 33 | with an estimated error as a structure, and one which just provides |
|---|
| 34 | the answer as a double. This makes a |
|---|
| 35 | difference when C programming, but GSLL always uses the form with the |
|---|
| 36 | error estimate and returns the error as a later multiple value so |
|---|
| 37 | that it can easily be ignored.</li> |
|---|
| 38 | <li>Anything for which there is a Common Lisp |
|---|
| 39 | equivalent probably won't be done, unless there is a need to have it |
|---|
| 40 | present for some other GSL functionality that isn't present in CL. |
|---|
| 41 | </li> |
|---|
| 42 | <li>Data types that are not defined in Common Lisp portably (such as |
|---|
| 43 | uint) may not be well supported. Others may be added but it |
|---|
| 44 | may be difficult to do so in a portable way. There are several |
|---|
| 45 | macros to help with the definitions. |
|---|
| 46 | </li> |
|---|
| 47 | </ul> |
|---|
| 48 | |
|---|
| 49 | <h3>Status</h3> |
|---|
| 50 | <div class="content"> |
|---|
| 51 | <p>There is a <a href="http://trac.common-lisp.net/gsll">Trac page</a> |
|---|
| 52 | for development information and for reporting bugs. There is a <a |
|---|
| 53 | href="http://common-lisp.net/cgi-bin/mailman/listinfo/gsll-devel">mailing |
|---|
| 54 | list</a> for all aspects of this project. |
|---|
| 55 | </p> |
|---|
| 56 | |
|---|
| 57 | <p>Most of the interface is complete, with a few chapters missing |
|---|
| 58 | and some functionality missing. See the <a |
|---|
| 59 | href="documentation.html">documentation</a> for details, |
|---|
| 60 | particularly known failures. |
|---|
| 61 | It is possible that the library API will change but probably not |
|---|
| 62 | substantially; most of the remaining work is to fix bugs. |
|---|
| 63 | <p> |
|---|
| 64 | Wishlist features include:<ul> |
|---|
| 65 | <li>Native vectors like <code>sb-sys:vector-sap</code> in SBCL. |
|---|
| 66 | </ul> |
|---|
| 67 | |
|---|
| 68 | |
|---|
| 69 | <h3>Contributions</h3> |
|---|
| 70 | Contributions to the development of GSLL are welcome; see |
|---|
| 71 | the <a href="http://trac.common-lisp.net/gsll">Trac page</a> . |
|---|
| 72 | This make take the form of bug reports and fixes, suggestions for new |
|---|
| 73 | interface design, or of porting the remaining unported functions. |
|---|
| 74 | The supplied macros |
|---|
| 75 | <code>defmfun</code> and <code>defmpar</code> |
|---|
| 76 | define virtually all of the interface functions and variables |
|---|
| 77 | respectively, which simplifies the process of porting. |
|---|
| 78 | The arguments and defaults provide a convenient way of defining new |
|---|
| 79 | functions and variables. |
|---|
| 80 | </div> |
|---|
| 81 | |
|---|
| 82 | <h3>Regression tests</h3> |
|---|
| 83 | <div class="content"> |
|---|
| 84 | <p>Regression tests using <a |
|---|
| 85 | href="http://www.cs.northwestern.edu/academics/courses/325/readings/lisp-unit.html">lisp-unit</a> |
|---|
| 86 | (provided) are given for many of the functions defined. These |
|---|
| 87 | also serve as examples. Note that most of the result have not been verified |
|---|
| 88 | with an independent source; the values given are from previous |
|---|
| 89 | tests. To run the tests, |
|---|
| 90 | <pre> |
|---|
| 91 | (lisp-unit:run-tests) |
|---|
| 92 | </pre> |
|---|
| 93 | See <a href="documentation.html">documentation</a> regarding known failures. |
|---|
| 94 | </p> |
|---|
| 95 | |
|---|
| 96 | <hr> |
|---|
| 97 | <address><a href="mailto:gsll-devel@common-lisp.net">Liam Healy</a></address> |
|---|
| 98 | <small> |
|---|
| 99 | Time-stamp: <2008-03-08 11:07:51EST development.html> |
|---|
| 100 | </small> |
|---|
| 101 | <!-- hhmts end --> |
|---|
| 102 | </div> |
|---|
| 103 | <script type="text/javascript"> |
|---|
| 104 | var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); |
|---|
| 105 | document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); |
|---|
| 106 | </script> |
|---|
| 107 | <script type="text/javascript"> |
|---|
| 108 | var pageTracker = _gat._getTracker("UA-3669275-1"); |
|---|
| 109 | pageTracker._initData(); |
|---|
| 110 | pageTracker._trackPageview(); |
|---|
| 111 | </script> |
|---|
| 112 | </body> |
|---|
| 113 | </html> |
|---|