There are checks to make sure that if a number is not in decimal, it does not have an exponent marker. Unfortunately, the code that detects an exponent marker, will only do so if the number is not a decimal number. This means numbers in the number #x5l0 the 'l' would not be considered an exponent marker. The good news is that any of these cases would have eventually been caught by parse-integer, since it would be passed the exponent marker, signaling an error because it is not a digit in the given radix. To fix this, the code the detects an exponent marker will run if the character is not a digit in the radix as opposed to running only when the radix is decimal.
There is now a variable *invalid-values* which contains a list of numbers which are expected to signal an invalid-number error.
cl:parse-integer reads over trailing whitespace, confusing the logic of parse-integers, where the number of characters read is used to compute the denominator of the fractional part. Fixes sharplispers/parse-number#2 Signed-off-by: Utz-Uwe Haus <firstname.lastname@example.org>
…OAT-FORMAT* to its value