Re: SRFI 33 vs SLIB Aubrey Jaffer 07 Jan 2005 05:35 UTC
| Date: Mon, 3 Jan 2005 17:55:54 -0800 (PST) | From: Taylor Campbell <firstname.lastname@example.org> | | 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 SRFI-33. | 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 ad-hoc. | 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 suffered collisions. BIT-MASK is a reasonable suggestion. But why BIT-MASK and not BITWISE-MASK? 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 description. | 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.