Gauche:srfi
SRFI対応の現状や今後の予定、戦略など。
一覧表
No | Final | Support | Title |
SRFI:0 | 1999/05/07 | ○ | Feature-based conditional expansion construct |
SRFI:1 | 1999/10/09 | ○ | List Library |
SRFI:2 | 1999/03/01 | ○ | AND-LET*: an AND with local bindings, a guarded LET* special form |
SRFI:4 | 1999/05/22 | ○ | Homogeneous numeric vector datatypes |
SRFI:5 | 1999/04/26 | ○ | A compatible let form with signatures and rest arguments |
SRFI:6 | 1999/07/01 | ○ | Basic String Ports |
SRFI:7 | 1999/08/19 | ○ | Feature-based program configuration language |
SRFI:8 | 1999/08/30 | ○ | receive: Binding to multiple values |
SRFI:9 | 1999/09/09 | ○ | Defining Record Types |
SRFI:10 | 2000/01/13 | ○ | Sharp-Comma External Form |
SRFI:11 | 2000/03/15 | ○ | Syntax for receiving multiple values |
SRFI:13 | 2000/12/28 | ○ | String Library |
SRFI:14 | 2000/12/28 | ○ | Character-Set Library |
SRFI:16 | 2000/03/10 | ○ | Syntax for procedures of variable arity |
SRFI:17 | 2000/07/24 | ○ | Generalized set! |
SRFI:18 | 2001/03/14 | ○ | Multithreading support |
SRFI:19 | 2000/08/31 | ○ | Time Data Types and Procedures |
SRFI:21 | 2001/03/02 | × | Real-time multithreading support |
SRFI:22 | 2002/01/20 | ○ | Running Scheme Scripts on Unix |
SRFI:23 | 2001/06/22 | ○ | Error reporting mechanism |
SRFI:25 | 2002/05/21 | ○ | Multi-dimensional Array Primitives |
SRFI:26 | 2002/02/14 | ○ | Notation for Specializing Parameters without Currying |
SRFI:27 | 2002/06/03 | ○ | Sources of Random Bits |
SRFI:28 | 2002/06/25 | ○ | Basic Format Strings |
SRFI:29 | 2002/08/01 | ○ | Localization |
SRFI:30 | 2002/08/07 | ○ | Nested Multi-line Comments |
SRFI:31 | 2002/12/02 | ○ | A special form for recursive evaluation |
SRFI:34 | 2002/12/01 | ○ | Exception Handling for Programs |
SRFI:35 | 2002/12/01 | ○ | Conditions |
SRFI:36 | 2002/12/01 | △ | I/O Conditions |
SRFI:37 | 2003/01/13 | ○ | args-fold: a program argument processor |
SRFI:38 | 2003/04/02 | ○ | External Representation for Data With Shared Structure |
SRFI:39 | 2003/06/30 | ○ | Parameter objects |
SRFI:40 | 2004/08/22 | ○ | A Library of Streams |
SRFI:42 | 2003/07/07 | ○ | Eager Comprehensions |
SRFI:43 | 2004/10/26 | ○ | Vector Library |
SRFI:44 | 2004/03/07 | × | Collections |
SRFI:45 | 2004/04/05 | ○ | Primitives for expressing iterative lazy algorithms |
SRFI:46 | 2005/02/28 | ○ | Basic Syntax-rules Extensions |
SRFI:47 | 2004/06/14 | × | Array |
SRFI:49 | 2005/07/22 | × | Indentation-sensitive syntax |
SRFI:48 | 2004/03/02 | × | Intermediate Format Strings |
SRFI:51 | 2004/06/07 | × | Handling rest list |
SRFI:54 | 2004/06/24 | × | Formatting |
SRFI:55 | 2004/11/05 | ○ | require-extension |
SRFI:57 | 2005/03/07 | × | Records |
SRFI:58 | 2005/03/08 | × | Array Notation |
SRFI:59 | 2005/03/08 | × | Vicinity |
SRFI:60 | 2005/03/08 | ○ | Integers as Bits |
SRFI:61 | 2005/07/21 | ○ | A more general cond clause |
SRFI:62 | 2005/07/21 | ○ | S-expression comments |
SRFI:63 | 2005/04/27 | × | Homogeneous and Heterogeneous Arrays |
SRFI:64 | 2006/06/18 | × | A Scheme API for test suites |
SRFI:66 | 2005/12/15 | △ | Octet Vectors |
SRFI:67 | 2005/09/11 | × | Compare Procedures |
SRFI:69 | 2005/09/14 | × | Basic hash tables |
SRFI:70 | 2005/09/11 | × | Numbers |
SRFI:71 | 2005/08/12 | × | LET-syntax for multiple values |
SRFI:72 | 2005/09/21 | × | Simple hygienic macros |
SRFI:74 | 2005/12/15 | Octet-Addressed Binary Blocks | |
SRFI:78 | 2006/03/06 | Lightweight testing | |
SRFI:86 | 2006/06/20 | MU and NU simulating VALUES & CALL-WITH-VALUES, and their related LET-syntax | |
SRFI:87 | 2006/10/18 | ○ | => in case clauses |
SRFI:88 | 2007/07/03 | Keyword Objects | |
SRFI:89 | 2007/07/10 | Optional and named parameters | |
SRFI:90 | 2007/07/10 | Extensible hash table constructor | |
SRFI:94 | 2007/01/30 | Type-Restricted Numerical Functions | |
SRFI:95 | 2007/01/29 | Sorting and Merging | |
SRFI:96 | 2008/07/07 | SLIB Prerequisites | |
SRFI:97 | 2008/12/22 | SRFI Libraries | |
SRFI:98 | 2008/09/19 | ○ | An interface to access environment variables |
SRFI:99 | 2009/10/07 | ○ | ERR5RS Records |
SRFI:100 | 2010/06/21 | define-lambda-object | |
SRFI:101 | 2013/02/24 | Purely Functional Random-Access Pairs and Lists | |
SRFI:105 | 2012/11/06 | Curly-infix-expressions | |
SRFI:106 | 2013/08/20 | ○ | Basic socket interface |
SRFI:107 | 2013/12/22 | XML reader syntax | |
SRFI:108 | 2013/06/21 | Named quasi-literal constructors | |
SRFI:109 | 2013/06/21 | Extended string quasi-literals | |
SRFI:110 | 2013/09/09 | Sweet-expressions (t-expressions) | |
SRFI:111 | 2013/07/03 | Boxes | |
SRFI:112 | 2013/09/12 | Environment Inquiry | |
SRFI:114 | 2014/03/31 | Comparators |
- 記号の意味
- ○ : サポート済み
- △ : 部分的にサポート済み
- × : 未サポート
※StatusがFinalのSRFIを列挙しています。
質問
Gauche0.8はSRFI:34をサポートしてますよね?
一応関数はそろっているようなのですが、どうなのでしょう。 挙動などがSRFI:34とは違ったりしてるのでしょうか?
Shiro: raiseの仕様が、SRFI:18とSRFI:34で微妙に違うんです。 Gaucheは今はSRFI:18の方に合わせてあります。
簡単に言えば、SRFI:18のraiseはその時点での継続を伴ってexception handlerを呼ぶので、exception handler中でなにもせずにraiseすると 無限ループします。SRFI:34のraiseはexception handlerだけ 「外側の」handlerに置き換えてからhandlerを呼ぶので、 exception handler中でraiseすると外側のhandlerに制御が移ります。 詳しくはSRFI:34のdiscussion mailing listを参照して下さい。
どうしようかは思案中。
SRFI:44のサポート予定は?
パターン | GaucheRefj:gauche.collection | SRFI:44 |
A | × | × |
B | × | ○ |
C | ○ | × |
D | ○ | ○ |
Aは無いとして、過去を捨ててSRFIを取るB、現状維持のC、やり方は何通りも有るのD。 Gaucheがとる戦略は、はたしてどれなのか?
Shiro: SRFI:44自体はあんまり使い易そうじゃないので、互換用にモジュールで サポートし、Gaucheのcollectionフレームワークはそのままにすると思います。 融合できればそれに越したことはないですが。
「このSRFIはサポートするつもり無し」ってやつはありますか?
議論
hira: LLWeekendのMLで
なんてのがあったので、調査ついでにページを作ってみました。