Closed p6rt closed 16 years ago
This causes t/operators/numify.t in the spec tests to fail. The only
grammar rule that parses numers with e is for decimals:
token dec_number {
\d+[_\d+]* '.' \d+[_\d+]* [ \<[Ee]> \<[+\-]>? \d+ ]?
{*}
}
The fix is straightforward, but this change should also be made in STD.pm. This fixes RT #49910.
Zev
There is a patch in RT #50550.
Zev
The RT System itself - Status changed from 'new' to 'open'
On 08/02/05 15:21 -0800, Zev Benjamin via RT wrote:
There is a patch in RT #50550.
why on earth did i get a copy of your answer? seems that it forged a from: From perl6-compiler-return-1739-jquelin=gmail.com@perl.org
something's fishy in there...
jérôme -- jquelin@gmail.com
On Feb 5, 2008 4:41 PM, via RT Zev Benjamin \parrotbug\-followup@​parrotcode\.org wrote:
# New Ticket Created by Zev Benjamin # Please include the string: [perl #50550] # in the subject line of all future correspondence about this issue. # \<URL: http://rt.perl.org/rt3/Ticket/Display.html?id=50550 >
The fix is straightforward, but this change should also be made in STD.pm. This fixes RT #49910.
Zev
FYI, I've merged the two tickets.
-- Will "Coke" Coleda
On Tue Feb 05 13:41:02 2008, zev-perl6@strangersgate.com wrote:
The fix is straightforward, but this change should also be made in STD.pm. This fixes RT #49910.
This patch would make 3e-4 a valid integer literal, even though it's not an integer. Now 300e-2 *is* a whole number, but I'm not sure it should be accepted as an integer literal.
This is part of the question of what distinguishes an integer from a floating point number; it can't just be the presence of a decimal point as the above examples show, but S02 isn't specific. The current version of dec_number in grammer.pg is too simplistic, it doesn't allow exponents without both a decimal and at least one fractional digit.
Here are a few examples that need answers from the language lawyers: .1 Legal, or is a leading 0 required? 1e1 Integer or Float? 1e-1 Integer or Float? 10e-1 Integer or Float? .1e1 If legal, Integer or Float? 1.e1 Legal?
- Andrew
On Fri Mar 07 23:08:14 2008, songmaster wrote:
On Tue Feb 05 13:41:02 2008, zev-perl6@strangersgate.com wrote:
The fix is straightforward, but this change should also be made in STD.pm. This fixes RT #49910.
This patch would make 3e-4 a valid integer literal, even though it's not an integer. Now 300e-2 *is* a whole number, but I'm not sure it should be accepted as an integer literal.
STD.pm has since been updated to have the correct parsing -- the answer is that an integer literal never has a dot or 'e'.
In r26812 I've just updated rakudo to match STD.pm, so this ticket can be closed.
This is part of the question of what distinguishes an integer from a floating point number; it can't just be the presence of a decimal point as the above examples show, but S02 isn't specific. [...] Here are a few examples that need answers from the language lawyers: .1 Legal, or is a leading 0 required? 1e1 Integer or Float? 1e-1 Integer or Float? 10e-1 Integer or Float? .1e1 If legal, Integer or Float? 1.e1 Legal?
Just for completeness:
.1 Not a legal number (leading digit required) 1e1 Float 1e-1 Float 10e-1 Float .1e1 Not a legal number (leading digit required) 1.e1 Not a legal number (digits required after dot)
Closing ticket, thanks!
Pm
@pmichaud - Status changed from 'open' to 'resolved'
Migrated from rt.perl.org#49910 (status was 'resolved')
Searchable as RT49910$