Subject: Re: Name for the set of characters legal in identifiers From: Erik Naggum <erik@naggum.no> Date: 15 Jan 2004 04:00:22 +0000 Newsgroups: comp.lang.lisp Message-ID: <3283128022497673KL2065E@naggum.no> * Erik Naggum > But (read-from-string "a b") will return a symbol, namely A, when > the constituent trait of the space is /invalid/. * james anderson | i had thought that circumstance was specified to signal an error. Hm. This appears to be unexplored territory. You deserve credit for pointing to the map and the real world and urging me to take a closer look at both. We have the following situation: A character whose syntax type is /constituent/ is used to set the syntax type of a character whose previous syntax type was /whitespace/, but this means that the constituent trait of that character remains /invalid/, which makes the syntax type /invalid/. According to the specification, such a character can never occur in the input except under the control of a single escape character, so (read-from-string "a b") should indeed signal an error, as per 2.1.4.3. (In case anyone else wonders, the multiple escape mechanism already forces all characters to have the alphabetic trait.) I thought I caught an obvious oversight in your test, but it would have been strong enough to test the hypothesis, were it not for the sorry fact that none of the Common Lisp environments I have access to signal an error when encountering invalid characters in the input stream. | it was always 3. OK, then this is definitely surprising and in clear violation of the standard. You're right that SET-SYNTAX-FROM-CHAR should not clobber the constituent trait for any character, not just the package marker. Where is that annoying conformance test guy who stresses the useless corners and boundary conditions of the standard when you need him? -- Erik Naggum | Oslo, Norway Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.