Reasons for withdrawal
scgmille@xxxxxx
(28 Oct 2003 20:35 UTC)
|
Re: Reasons for withdrawal
Tom Lord
(28 Oct 2003 21:24 UTC)
|
RE: Reasons for withdrawal
Anton van Straaten
(28 Oct 2003 22:05 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(28 Oct 2003 22:36 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(28 Oct 2003 22:44 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(28 Oct 2003 23:22 UTC)
|
Re: Reasons for withdrawal
Tom Lord
(29 Oct 2003 02:50 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 03:19 UTC)
|
Re: Reasons for withdrawal
Tom Lord
(29 Oct 2003 03:31 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 03:38 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(29 Oct 2003 04:36 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 05:02 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(29 Oct 2003 05:32 UTC)
|
Re: Reasons for withdrawal
Taylor Campbell
(28 Oct 2003 22:56 UTC)
|
Re: Reasons for withdrawal
Taylor Campbell
(28 Oct 2003 23:06 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(28 Oct 2003 23:16 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(28 Oct 2003 23:28 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(28 Oct 2003 23:42 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 00:13 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(29 Oct 2003 01:00 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 01:41 UTC)
|
Re: Reasons for withdrawal
Tom Lord
(29 Oct 2003 03:03 UTC)
|
RE: Reasons for withdrawal
Anton van Straaten
(29 Oct 2003 05:31 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(29 Oct 2003 05:54 UTC)
|
RE: Reasons for withdrawal
Anton van Straaten
(29 Oct 2003 06:40 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(29 Oct 2003 06:44 UTC)
|
RE: Reasons for withdrawal
Anton van Straaten
(29 Oct 2003 07:31 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(29 Oct 2003 07:34 UTC)
|
Re: Reasons for withdrawal
Thien-Thi Nguyen
(29 Oct 2003 14:08 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(28 Oct 2003 21:28 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(28 Oct 2003 22:02 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(28 Oct 2003 22:22 UTC)
|
Re: Reasons for withdrawal
Jim White
(28 Oct 2003 22:15 UTC)
|
Re: Reasons for withdrawal
Shiro Kawai
(29 Oct 2003 01:25 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 01:44 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(29 Oct 2003 04:10 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 04:53 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(29 Oct 2003 05:10 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 05:17 UTC)
|
Re: Reasons for withdrawal
Bradd W. Szonye
(29 Oct 2003 05:31 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 01:49 UTC)
|
API conflicts (Was: Re: Reasons for withdrawal)
Shiro Kawai
(29 Oct 2003 05:48 UTC)
|
Re: API conflicts
Shiro Kawai
(29 Oct 2003 06:03 UTC)
|
Re: API conflicts
scgmille@xxxxxx
(29 Oct 2003 17:40 UTC)
|
Re: API conflicts (Was: Re: Reasons for withdrawal)
Bradd W. Szonye
(29 Oct 2003 06:03 UTC)
|
Re: API conflicts (Was: Re: Reasons for withdrawal)
scgmille@xxxxxx
(29 Oct 2003 14:19 UTC)
|
Re: API conflicts
Shiro Kawai
(29 Oct 2003 22:25 UTC)
|
Re: API conflicts
scgmille@xxxxxx
(29 Oct 2003 22:41 UTC)
|
Re: API conflicts
Taylor Campbell
(29 Oct 2003 23:58 UTC)
|
Re: API conflicts (Was: Re: Reasons for withdrawal) Taylor Campbell (29 Oct 2003 21:40 UTC)
|
A possible solution?
bear
(29 Oct 2003 22:59 UTC)
|
RE: A possible solution?
Anton van Straaten
(30 Oct 2003 07:40 UTC)
|
Re: A possible solution?
Bradd W. Szonye
(30 Oct 2003 10:07 UTC)
|
RE: A possible solution?
bear
(30 Oct 2003 15:13 UTC)
|
Re: A possible solution?
scgmille@xxxxxx
(30 Oct 2003 15:20 UTC)
|
Re: A possible solution?
Bradd W. Szonye
(30 Oct 2003 15:27 UTC)
|
Re: A possible solution?
scgmille@xxxxxx
(30 Oct 2003 15:39 UTC)
|
Re: A possible solution?
Bradd W. Szonye
(30 Oct 2003 15:43 UTC)
|
Re: A possible solution?
scgmille@xxxxxx
(30 Oct 2003 16:11 UTC)
|
Re: A possible solution?
bear
(30 Oct 2003 17:02 UTC)
|
Re: A possible solution?
Tom Lord
(30 Oct 2003 19:58 UTC)
|
Re: A possible solution?
scgmille@xxxxxx
(30 Oct 2003 20:15 UTC)
|
Re: A possible solution?
bear
(30 Oct 2003 20:53 UTC)
|
Re: A possible solution?
scgmille@xxxxxx
(30 Oct 2003 21:07 UTC)
|
Re: A possible solution?
Taylor Campbell
(30 Oct 2003 21:08 UTC)
|
Re: A possible solution?
Bradd W. Szonye
(30 Oct 2003 21:11 UTC)
|
Re: A possible solution?
scgmille@xxxxxx
(30 Oct 2003 21:17 UTC)
|
Re: A possible solution?
bear
(30 Oct 2003 23:11 UTC)
|
Re: A possible solution?
Alex Shinn
(31 Oct 2003 03:03 UTC)
|
Re: API conflicts
Shiro Kawai
(29 Oct 2003 23:19 UTC)
|
Re: API conflicts
scgmille@xxxxxx
(30 Oct 2003 00:26 UTC)
|
Re: API conflicts
Bradd W. Szonye
(30 Oct 2003 05:32 UTC)
|
Re: API conflicts
bear
(30 Oct 2003 06:22 UTC)
|
Re: API conflicts
Bradd W. Szonye
(30 Oct 2003 06:23 UTC)
|
Re: API conflicts
scgmille@xxxxxx
(30 Oct 2003 13:54 UTC)
|
Re: API conflicts
Bradd W. Szonye
(30 Oct 2003 14:01 UTC)
|
Re: API conflicts
scgmille@xxxxxx
(30 Oct 2003 14:16 UTC)
|
Re: API conflicts
Bradd W. Szonye
(30 Oct 2003 14:29 UTC)
|
Re: API conflicts
scgmille@xxxxxx
(30 Oct 2003 14:58 UTC)
|
Re: API conflicts
Bradd W. Szonye
(30 Oct 2003 15:22 UTC)
|
Re: Reasons for withdrawal
Tom Lord
(29 Oct 2003 01:50 UTC)
|
Re: Reasons for withdrawal
Alex Shinn
(29 Oct 2003 03:06 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 03:18 UTC)
|
Re: Reasons for withdrawal
Tom Lord
(29 Oct 2003 03:29 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 03:37 UTC)
|
Re: Reasons for withdrawal
Alex Shinn
(29 Oct 2003 06:16 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(29 Oct 2003 14:25 UTC)
|
Re: Reasons for withdrawal
Alex Shinn
(30 Oct 2003 02:19 UTC)
|
Re: Reasons for withdrawal
scgmille@xxxxxx
(30 Oct 2003 04:42 UTC)
|
Re: Reasons for withdrawal
Alex Shinn
(30 Oct 2003 06:22 UTC)
|
On Wednesday, Oct 29, 2003, at 00:48 US/Eastern, Shiro Kawai wrote: > I'd still like to see a section or a note that refers to names > which conflicts or confusing with existing srfis and popular > implementations. It may be a job of users to look them out, > but having mentioned it in this srfi would be a great help > for users and implementators. Something like the following. > > Compatibilities: > > Some of the names defined in this srfi uses the same or > similar name in existing srfis or implementations. Some of > them are defined so that they are extension of the existing > practice, and some of them have incompatibilities. > > Extensions to R5RS > > R5RS doesn't specify the return value of string-set! and > vector-set!. This srfi specifies them to return the passed > collection. > > string-ref, vector-ref and list-ref are extended to take > an optional argument, absence-thunk. I just want to stress the fact that these are _extensions_ and not incompatibilities. > Relation to other SRFIs > > string= has different interface from string= in srfi-13, > which has the following API: > > (string= string1 string2 [start1 end1 start2 end2]) > > If the implementation wish to support both srfis, it can > dispatch by its argument types. I think SRFI 13's STRING= is the problem here. It breaks the convention defined by SRFI 1, and SRFIs 43 and 44 use that same convention; SRFI 13's STRING= is really R5RS's STRING=?, but with the question mark removed for no reason I can find. (oops: having read your email over again, I realize that it was just a list of related work/extensions/incompatibilities; this comment is therefore irrelevant to this message, but it's still a comment I'd like to make somewhere) > string-copy and string-count are subset of srfi-13's. *-COPY for sequences _used_ to be like SRFI 13's STRING-COPY and SRFI 43's VECTOR-COPY. I'm not sure where this changed, and I'll see if Scott will put that back in. The same applies to *-COUNT for sequences, except without it having been extended for sequences in prior versions of the document. In fact, it seems like it would make sense for a lot of the bag and general collection operations to be able to accept start and end arguments for the sequence versions, e.g. *->LIST, *-REMOVE-whatever, et cetera. > [...] > > list= in this srfi takes two lists. list= in srfi-1 takes > arbitrary number of lists. LIST= should be n-ary. I'm not sure why it isn't. (probably a typo; there are lots of those in the document, due to the tedium in writing it) > [...] > > alist-copy is an extension of srfi-1's. SRFI-1's alist-copy > doesn't specify the behavior when the given argument contains > non-pair in the list. This srfi's alist-copy treats the first > element specially. [This actually suggests the choice of > 'alist-' prefix may not be adequate, since the alist dictionary > given in srfi-44 is not really a plain alist. For example, > when people see alist?, they might think something like > (define (alist? obj) (and (proper-list? pbj) (every pair? obj))) > but it's not the case here. It's even obscure whether ordinary > alist operations such as assq, assv, assoc can be applicable to > this alist dictionary. Maybe 'alist-dict-' prefix would be > better]. A couple of problems with alists have been mentioned. Three solutions came up on IRC: - Create an abstract type for alists. Advantages: removes the type conflicts that Tom mentioned Disadvantages: _no_ list-processing routines work on abstract and opaque alists, that definition of ALIST? still doesn't work, and ASS{Q,V,OC} still don't work. - Add a unique token to the head of the alist. Advantages: removes the type conflicts Disadvantages: that definition of ALIST? still doesn't work, and ASS{Q,V,OC} still don't work. - Add a metadata _association_ to the list, with a unique token visible only to the implementation. This metadata could contain the equivalence functions and even more, perhaps. Advantages: removes the type conflicts, your ALIST? works, and ASS{Q,V,OC} work. Disadvantages: there probably are some that I just can't remember now...Matthias brought this one up months ago, and I didn't implement it; I probably had _some_ reason for not implementing it. > srfi-1 uses "remove" and "delete" in a consistent way; > the functions with "remove" takes a predicate, while the ones > with "delete" takes a value to be compared to the element. > In this srfi, "remove" and "delete" also have a consistent > meaning, > but different from srfi-1's. > > Consequently, there are a few procedures that have confusingly > similar names with different signatures. > [...] I don't think these matter much. They aren't _incompatible_, anyways, though I suppose it might be worth mentioning. > Relation to existing implementations > > Some implementations (e.g. PLT) use absence-thunk to give a > default value in ?-ref or ?-get API. Other implementations > (e.g. Chicken, STk, Gauche) instead allow an optional value > to specify a default value. This srfi takes the thunk approach > because ..... > > [Gauche has extended string-ref, vector-ref and list-ref. > Chicken and STk don't have them, but for example they have > hash-table-{ref|get} that takes an optional default value, which > would conflict if somebody wants to implement a hash table > as a dictionary.] It's pretty easy to avoid this conflict by either not explicitly using SRFI 44 or explicitly using those implementations' libraries, or having a simple SRFI 44 wrapper around hash tables of those implementations when you do explicitly use SRFI 44. > [This has persional bias: Gauche has string-size that > returns number of bytes the multibyte string occupies] > > > --shiro