Gauche:srfi

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:18SRFI: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で

Scheme(界)のこの一年」「最近のSRFI」に興味がある

なんてのがあったので、調査ついでにページを作ってみました。

参考

More ...