Cleanup Issue ARGUMENTS-UNDERSPECIFIED

Status
Passed, Jan 89 X3J13
Forum
Cleanup
Category
CLARIFICATION
References
LOGBITP (p 224), MAKE-DISPATCH-MACRO-CHARACTER (p 363), MAKE-HASH-TABLE (p 283), MAKE-SEQUENCE (p 249), READ (p 375) MAKE-STRING (p 302), NTHCDR (p 267), PARSE-INTEGER (p 381), SET (p 92) Issue: RANGE-OF-START-END-PARAMETERS.

Problem Description

The descriptions of LOGBITP, MAKE-DISPATCH-MACRO-CHARACTER, READ, SET, MAKE-HASH-TABLE, MAKE-SEQUENCE, MAKE-STRING, NTHCDR, and PARSE-INTEGER are not clear about the types of the arguments supplied to these constructs.

Proposal (SPECIFY)

Clarify that the arguments for the listed constructs are as follows:

Construct Argument Type LOGBITP index non-negative integer MAKE-DISPATCH-MACRO-CHARACTER char character MAKE-HASH-TABLE size non-negative integer MAKE-SEQUENCE size non-negative integer MAKE-SEQUENCE type type specifier MAKE-STRING size non-negative integer MAKE-STRING initial-element string-char NTHCDR n non-negative integer SET-SYNTAX-FROM-CHAR to-char,from-char characters READ and others eof-value any value SET value any value

(MAKE-HASH-TABLE, MAKE-SEQUENCE, MAKE-STRING have additional constraints on their respective SIZE arguments; for example, MAKE-STRING may detect an error if SIZE is greater than or equal to ARRAY-DIMENSION-LIMIT. Some additional restriction on the range of characters which can have syntax in readtables and are allowable to MAKE-DISPATCH-MACRO-CHARACTER SET-SYNTAX-FROM-CHAR might be required in some other proposal.)

Rationale

This clarification allows predictible results to occur when arguments are supplied to these constructs.

Current Practice

This proposal seems to be in line with current implementations.

Cost to Implementors

None, since this is consistent with current practice.

Cost to Users

None, since this is consistent with current practice.

Benefits

This clarification will assist users in writing portable code.

Aesthetics

The standard would be less clean were the allowed ranges of its functions not specified.

Discussion

There is a separate cleanup proposal RANGE-OF-START-END-PARAMETERS which addresses a possible incompatible change. This proposal contains what we think are non-controversial clarifications.

Edit History