|
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