1 | == CHICKEN SRFI compliance |
---|
2 | |
---|
3 | What follows is a listing of the current SRFIs, along with the status |
---|
4 | of the SRFI in CHICKEN. Notes appear after the table. |
---|
5 | |
---|
6 | The following statuses are defined. |
---|
7 | |
---|
8 | ; builtin : the SRFI is provided in the basic CHICKEN system. |
---|
9 | ; library : the SRFI is provided with the basic CHICKEN system, but a {{(use ...)}} must be performed in order to access it. |
---|
10 | ; ''{{egg-name}}'' : the SRFI is provided in a separate egg, which can be downloaded via {{chicken-install}}. |
---|
11 | ; NA : the SRFI is not presently available for CHICKEN. (This doesn't necessarily mean that the SRFI ''can't'' be implemented, only that it hasn't been so far.) |
---|
12 | |
---|
13 | '''Final SRFIs''' |
---|
14 | |
---|
15 | <table> |
---|
16 | <tr><th>SRFI</th><th>Description</th><th>Status</th><th>Notes</th></tr> |
---|
17 | <tr><td>0</td><td>Feature-based conditional expansion</td><td>builtin</td><td></td></tr> |
---|
18 | <tr><td>1</td><td>List library</td><td>library</td><td></td></tr> |
---|
19 | <tr><td>2</td><td>{{AND-LET*}}</td><td>builtin</td><td></td></tr> |
---|
20 | <tr><td>4</td><td>Homogeneous numeric vector datatypes</td><td>library, {{srfi-4-utils}}</td><td></td></tr> |
---|
21 | <tr><td>5</td><td>{{let}} form with signatures and rest arguments</td><td>NA</td><td></td></tr> |
---|
22 | <tr><td>6</td><td>Basic string ports</td><td>builtin</td><td></td></tr> |
---|
23 | <tr><td>7</td><td>Feature-based program configuration language</td><td>NA</td><td></td></tr> |
---|
24 | <tr><td>8</td><td>{{receive}}: binding to multiple values</td><td>builtin</td><td></td></tr> |
---|
25 | <tr><td>9</td><td>Defining record types</td><td>builtin</td><td></td></tr> |
---|
26 | <tr><td>10</td><td>Sharp-comma external form</td><td>builtin</td><td></td></tr> |
---|
27 | <tr><td>11</td><td>Syntax for receiving multiple values</td><td>builtin</td><td>2</td></tr> |
---|
28 | <tr><td>13</td><td>String library</td><td>library</td><td></td></tr> |
---|
29 | <tr><td>14</td><td>Character-set library</td><td>library</td><td></td></tr> |
---|
30 | <tr><td>16</td><td>Syntax for procedures of variable arity</td><td>builtin</td><td></td></tr> |
---|
31 | <tr><td>17</td><td>Generalized set!</td><td>builtin</td><td></td></tr> |
---|
32 | <tr><td>18</td><td>Multithreading support</td><td>library</td><td></td></tr> |
---|
33 | <tr><td>19</td><td>Time data types and procedures</td><td>{{date-literals}}, {{srfi-19}}</td><td></td></tr> |
---|
34 | <tr><td>21</td><td>Real-time multithreading support</td><td>NA</td><td></td></tr> |
---|
35 | <tr><td>22</td><td>Running Scheme scripts on unix</td><td>NA</td><td>3</td></tr> |
---|
36 | <tr><td>23</td><td>Error reporting mechanism</td><td>builtin</td><td></td></tr> |
---|
37 | <tr><td>25</td><td>Multi-dimensional array primitives</td><td>{{srfi-25}}, {{array-lib}}</td><td></td></tr> |
---|
38 | <tr><td>26</td><td>Specializing parameters without currying</td><td>builtin</td><td>2</td></tr> |
---|
39 | <tr><td>27</td><td>Sources of random bits</td><td>{{srfi-27}}, {{gsl-srfi-27}}</td><td></td></tr> |
---|
40 | <tr><td>28</td><td>Basic format strings</td><td>builtin</td><td>2</td></tr> |
---|
41 | <tr><td>29</td><td>Localization</td><td>{{srfi-29}}</td><td></td></tr> |
---|
42 | <tr><td>30</td><td>Nested multi-line comments</td><td>builtin</td><td></td></tr> |
---|
43 | <tr><td>31</td><td>Special form for recursive evaluation</td><td>builtin</td><td>2</td></tr> |
---|
44 | <tr><td>34</td><td>Exception handling for programs</td><td>{{srfi-34}}</td><td>4</td></tr> |
---|
45 | <tr><td>35</td><td>Conditions</td><td>NA</td><td></td></tr> |
---|
46 | <tr><td>36</td><td>I/O Conditions</td><td>NA</td><td></td></tr> |
---|
47 | <tr><td>37</td><td>{{args-fold}}: a program argument processor</td><td>{{srfi-37}}</td><td></td></tr> |
---|
48 | <tr><td>38</td><td>External representation for data</td><td>{{srfi-38}}</td><td></td></tr> |
---|
49 | <tr><td>39</td><td>Parameter objects</td><td>builtin</td><td></td></tr> |
---|
50 | <tr><td>40</td><td>A library of streams (deprecated)</td><td>{{srfi-40}}</td><td></td></tr> |
---|
51 | <tr><td>41</td><td>Streams</td><td>{{srfi-41}}</td><td></td></tr> |
---|
52 | <tr><td>42</td><td>Eager comprehensions</td><td>{{srfi-42}}, {{srfi-4-comprehensions}}</td><td></td></tr> |
---|
53 | <tr><td>43</td><td>Vector library</td><td>{{vector-lib}}, {{dyn-vector}}</td><td></td></tr> |
---|
54 | <tr><td>44</td><td>Collections</td><td>NA</td><td></td></tr> |
---|
55 | <tr><td>45</td><td>Expressing iterative lazy algorithms</td><td>{{srfi-45}}</td><td></td></tr> |
---|
56 | <tr><td>46</td><td>Basic {{syntax-rules}} Extensions</td><td>NA</td><td></td></tr> |
---|
57 | <tr><td>47</td><td>Array</td><td>{{srfi-47}}, {{array-lib}}</td><td></td></tr> |
---|
58 | <tr><td>48</td><td>Intermediate Format Strings</td><td>{{format}}, {{format-modular}}</td><td>5</td></tr> |
---|
59 | <tr><td>49</td><td>Indentation-sensitive syntax</td><td>NA</td><td></td></tr> |
---|
60 | <tr><td>51</td><td>Handling rest list</td><td>NA</td><td></td></tr> |
---|
61 | <tr><td>54</td><td>Formatting</td><td>NA</td><td></td></tr> |
---|
62 | <tr><td>55</td><td>{{require-extension}}</td><td>builtin</td><td></td></tr> |
---|
63 | <tr><td>57</td><td>Records</td><td>NA</td><td></td></tr> |
---|
64 | <tr><td>58</td><td>Array notation</td><td>{{array-lib}}</td><td>6</td></tr> |
---|
65 | <tr><td>59</td><td>Vicinity</td><td>NA</td><td></td></tr> |
---|
66 | <tr><td>60</td><td>Integers as bits</td><td>{{srfi-60}}</td><td></td></tr> |
---|
67 | <tr><td>61</td><td>A more general {{cond}} clause</td><td>{{extended-cond}}</td><td></td></tr> |
---|
68 | <tr><td>62</td><td>S-expression comments</td><td>builtin</td><td>2</td></tr> |
---|
69 | <tr><td>63</td><td>Homogeneous and heterogeneous arrays</td><td>{{array-lib}}</td><td></td></tr> |
---|
70 | <tr><td>64</td><td>A Scheme API for test suites</td><td>NA</td><td></td></tr> |
---|
71 | <tr><td>66</td><td>Octet vectors</td><td>{{srfi-66}}</td><td></td></tr> |
---|
72 | <tr><td>67</td><td>Compare procedures</td><td>NA</td><td></td></tr> |
---|
73 | <tr><td>69</td><td>Basic hash tables</td><td>builtin</td><td></td></tr> |
---|
74 | <tr><td>70</td><td>Numbers</td><td>NA</td><td></td></tr> |
---|
75 | <tr><td>71</td><td>{{let}} syntax for multiple values</td><td>NA</td><td></td></tr> |
---|
76 | <tr><td>72</td><td>Simple hygienic macros</td><td>{{simple-macros}}</td><td></td></tr> |
---|
77 | <tr><td>74</td><td>Octet-addressed binary blocks</td><td>NA</td><td></td></tr> |
---|
78 | <tr><td>78</td><td>Lightweight testing</td><td>{{check}}</td><td></td></tr> |
---|
79 | <tr><td>86</td><td>{{MU}} and {{NU}}</td><td>NA</td><td></td></tr> |
---|
80 | <tr><td>87</td><td>{{=>}} in case clauses</td><td>{{extended-cond}}</td><td></td></tr> |
---|
81 | <tr><td>88</td><td>Keyword objects</td><td>builtin</td><td>7</td></tr> |
---|
82 | <tr><td>89</td><td>Optional and named parameters</td><td>{{srfi-89}}</td><td></td></tr> |
---|
83 | <tr><td>90</td><td>Extensible hash table constructor</td><td>builtin</td><td>8</td></tr> |
---|
84 | <tr><td>94</td><td>Type-restricted numerical functions</td><td>NA</td><td></td></tr> |
---|
85 | <tr><td>95</td><td>Sorting and merging</td><td>{{srfi-95}}</td><td></td></tr> |
---|
86 | </table> |
---|
87 | |
---|
88 | '''Notes''' |
---|
89 | |
---|
90 | 1. ''Note deleted''. |
---|
91 | |
---|
92 | 2. Only documented under {{eval-when}}. |
---|
93 | |
---|
94 | 3. CHICKEN supports a shebang line, but executable names don't comply |
---|
95 | with SRFI-22. |
---|
96 | |
---|
97 | 4. CHICKEN also implements the now-withdrawn SRFI-12 for error |
---|
98 | handling. |
---|
99 | |
---|
100 | 5. SRFI 48 is supported except for {{~W}} (write circular) by both the {{format}} and {{format-modular}} eggs. |
---|
101 | |
---|
102 | 6. SRFI 58 is supported by the {{array-lib}} egg except for the {{#<dimensions>...}} form (to be released). |
---|
103 | |
---|
104 | 7. SRFI 88 is builtin except that keywords are symbols. |
---|
105 | |
---|
106 | 8. SRFI 90 is builtin except that {{weak-keys}} and {{weak-values}} are ignored. The SRFI states that these are purely advisory parameters, and that implementations may ignore them. |
---|
107 | |
---|
108 | '''Withdrawn SRFIs''' |
---|
109 | |
---|
110 | <table> |
---|
111 | <tr><th>SRFI</th><th>Description</th><th>Status</th><th>Notes</th></tr> |
---|
112 | <tr><td>12</td><td>Exception handling</td><td>builtin</td><td>1</td></tr> |
---|
113 | <tr><td>85</td><td>Recursive equivalence predicates</td><td>{{srfi-85}}</td><td></td></tr> |
---|
114 | </table> |
---|
115 | |
---|
116 | '''Notes''' |
---|
117 | |
---|
118 | 1. CHICKEN implements the now-withdrawn SRFI-12 for error |
---|
119 | handling. Users can choose to install the {{srfi-34}} egg instead. |
---|
120 | |
---|