[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SRFI 33 vs SLIB
| Date: Mon, 3 Jan 2005 17:55:54 -0800 (PST)
| From: Taylor Campbell <campbell@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
| I'm wondering why you started with SLIB, rather than, as you
slib/logical.scm was first copyrighted in 1991. It predates SRFI-0 by
8 years; SRFI-33 by 11 years.
| mention in passing in the current document, the very carefully
| thought-out SRFI 33 for the base of this SRFI.
Its bizarre that I am first criticized for taking preceedent from
SRFI-4 (in SRFI-47); then for not taking preceedent from a withdrawn
| In particular, the naming in SLIB seems to be quite ad-hoc -- no
| consistency with the LOGICAL-, BITWISE:, LOG, &c. prefixes --, and
| the set of general bitwise operations is somewhat different from
| that of SRFI 33: some are missing & some are added. Was it simply
| that starting from SLIB was easier at the time, or is there a more
| complete rationale for the conventions you chose?
I took functions from Common-Lisp which are useful, keeping their
names. Names for new functions should not be common words which could
suffer collisions. Where the common words are the best description, I
add a prefix of the package name or theme followed by `:'. In
packages where only a couple of names are prefixed, this can look
| If it is simply that SLIB was an easier starting point for you, I'd
| like to suggest a few name changes to bring what names you added
| closer to SRFI 33's conventions:
| logical:ones -> bit-mask (%MASK internally in SRFI 33)
| logical:rotate -> bitwise-rotate
ONES and ROTATE would be better names, but are too common as words and
BIT-MASK is a reasonable suggestion. But why BIT-MASK and not
To me, bitwise means that bits are operated on in their bit-lanes, not
affecting other bit-lanes. ROTATE doesn't work that way.
ASH is another problem word, but is prior art from Common-Lisp.
| bit-reverse -> bitwise-reverse
This one jumps bit-lanes. I think bit-reverse is the better
| bitwise:laminate -> bitwise-laminate
| bitwise:delaminate -> bitwise-delaminate
I used bitwise because bits in corresponding lanes are extracted.
BIT-LAMINATE and BIT-DELAMINATE might be better.