POV-Ray : Newsgroups : povray.beta-test : POV-Ray v3.8.0-alpha.10011104 Server Time
26 Sep 2022 01:56:21 EDT (-0400)
  POV-Ray v3.8.0-alpha.10011104 (Message 21 to 30 of 34)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 4 Messages >>>
From: William F Pokorny
Subject: Re: POV-Ray v3.8.0-alpha.10011104
Date: 14 Jan 2019 10:18:48
Message: <5c3ca858$1@news.povray.org>
On 1/14/19 9:07 AM, William F Pokorny wrote:
> On 1/13/19 5:07 PM, clipka wrote:
...
> 

Just noticed another interesting thing in the tests that did run. The 
attached file has not parser cleanly since v3.6.1. Generating the 
following error with v3.7:

File 'Sig07_works_v361_earlier.pov' line 1: Parse Error: Unexpected 
additional
  '.' in floating-point number
Fatal error in parser: Cannot parse input.
Render failed


It parses and runs cleanly again with the updated parser. Intentional?

Bill P.


Post a reply to this message


Attachments:
Download 'sig07_works_v361_earlier.pov.txt' (1 KB)

From: clipka
Subject: Re: POV-Ray v3.8.0-alpha.10011104
Date: 14 Jan 2019 10:54:54
Message: <5c3cb0ce$1@news.povray.org>
Am 14.01.2019 um 16:18 schrieb William F Pokorny:

> Just noticed another interesting thing in the tests that did run. The 
> attached file has not parser cleanly since v3.6.1. Generating the 
> following error with v3.7:

I presume you mean to say that it worked in v3.6.1, but not in v3.7, 
correct?

> File 'Sig07_works_v361_earlier.pov' line 1: Parse Error: Unexpected 
> additional
>   '.' in floating-point number
> Fatal error in parser: Cannot parse input.
> Render failed

Those are some mean pieces of scene code; no surprise they catch the 
parser with its pants down ;)

> It parses and runs cleanly again with the updated parser. Intentional?

No, just a lucky punch. Turns out sometimes throwing away and rewriting 
old code fixes things you didn't even know were broken.


Post a reply to this message

From: clipka
Subject: Re: POV-Ray v3.8.0-alpha.10011104
Date: 14 Jan 2019 11:39:12
Message: <5c3cbb30$1@news.povray.org>
Am 14.01.2019 um 15:07 schrieb William F Pokorny:

> File 'Sig00.pov' line 2: Parse Warning: Float value promoted to full 
> color vector where both filter and transmit >0.0.
> File 'Sig00.pov' line 1: Parse Error: End of file reached but #end 
> expected.
> Fatal error in parser: Cannot parse input.
> Render failed

Traced this down to a bug in the scanner that kicks in whenever two 
consecutive returns from a macro or include file jump back to the same 
binary offset in (formally) different input streams

One such scenario is the return from a macro that has called itself 
recursively and hasn't called other macros since.


Post a reply to this message

From: William F Pokorny
Subject: Re: POV-Ray v3.8.0-alpha.10011104
Date: 14 Jan 2019 12:15:46
Message: <5c3cc3c2$1@news.povray.org>
On 1/14/19 10:54 AM, clipka wrote:
> Am 14.01.2019 um 16:18 schrieb William F Pokorny:
> 
>> Just noticed another interesting thing in the tests that did run. The 
>> attached file has not parser cleanly since v3.6.1. Generating the 
>> following error with v3.7:
> 
> I presume you mean to say that it worked in v3.6.1, but not in v3.7, 
> correct?

Yes, I did! You are getting good at understand my gibberish. :-)

> 
...
> 
>> It parses and runs cleanly again with the updated parser. Intentional?
> 
> No, just a lucky punch. Turns out sometimes throwing away and rewriting 
> old code fixes things you didn't even know were broken.

Suppose my question was too whether we should consider the 3.7/3.8 
behavior broken - you seem to be saying it was.

Folks can again cause parsing to separate values by using extra decimal 
points in numeric strings. Has me wondering what might happen with typos 
like 1..2 (not tried it). Or where we specify lists of values separated 
by commas or not. Can the latter get scrambled in ways that are confusing?

I'll go try some things I guess to better understand what can again 
happen with this reversion in parser behavior.

Bill P.


Post a reply to this message

From: William F Pokorny
Subject: Re: POV-Ray v3.8.0-alpha.10011104
Date: 14 Jan 2019 12:16:43
Message: <5c3cc3fb$1@news.povray.org>
On 1/14/19 11:39 AM, clipka wrote:
> Am 14.01.2019 um 15:07 schrieb William F Pokorny:
> 
>> File 'Sig00.pov' line 2: Parse Warning: Float value promoted to full 
>> color vector where both filter and transmit >0.0.
>> File 'Sig00.pov' line 1: Parse Error: End of file reached but #end 
>> expected.
>> Fatal error in parser: Cannot parse input.
>> Render failed
> 
> Traced this down to a bug in the scanner that kicks in whenever two 
> consecutive returns from a macro or include file jump back to the same 
> binary offset in (formally) different input streams
> 
> One such scenario is the return from a macro that has called itself 
> recursively and hasn't called other macros since.

Cool. Glad you found it.

Bill P.


Post a reply to this message

From: William F Pokorny
Subject: Re: POV-Ray v3.8.0-alpha.10011104
Date: 14 Jan 2019 12:23:12
Message: <5c3cc580$1@news.povray.org>
On 1/13/19 5:07 PM, clipka wrote:
> Am 13.01.2019 um 23:04 schrieb clipka:
>> Another known issue:
...
> 
> Users building their own binaries (most notably Unix users) may also use 
> `source/core/shape/truetype.cpp` from the latest master, which should 
> fix the issue:
> 
>
https://raw.githubusercontent.com/POV-Ray/povray/master/source/core/shape/truetype.cpp

> 

Stuff still running. I've turned up several more of the macro/include 
return type.

One of our standard shipped scene files fails due a form feed character 
'0c' very near the end the end of the file. That scene is:

.../distribution/scenes/objects/superel2.pov

and here I think we just need to update that scene file.

Bill P.


Post a reply to this message

From: clipka
Subject: Re: POV-Ray v3.8.0-alpha.10011104
Date: 14 Jan 2019 13:41:32
Message: <5c3cd7dc$1@news.povray.org>
Am 14.01.2019 um 18:15 schrieb William F Pokorny:

> Suppose my question was too whether we should consider the 3.7/3.8 
> behavior broken - you seem to be saying it was.

Let's put it this way: Going by the reference docs on numeric 
expressions - specifically FLOAT_LITERAL - the v3.7 behaviour would have 
to be considered broken, unless interpreting the syntax in a 
self-inconsistent manner.

The key question is under what circumstances a sequence of characters 
that matches the production rules of FLOAT_LITERAL, followed by some 
other character that does not fit in, constitutes a broken 
FLOAT_LITERAL, as opposed to a valid FLOAT_LITERAL token immediately 
followed by the next token.

The v3.6 behaviour can easily be interpreted as consistently treating 
such cases as valid, but erroneously implementing MANTISSA as:

     MANTISSA:
       DIGIT... [DECIMAL_POINT | [DIGIT2...] |
       DECIMAL_POINT DIGIT2...
     DIGIT2:
       DIGIT | DECIMAL_POINT

The v3.7 behaviour must be interpreted as treating such cases as broken 
if the non-matching character is a dot, but valid if it is any other 
character. That's a pretty arbitrary distinction.

The (new) v3.8 behaviour consistently treats all such cases as valid 
again, while implementing MANTISSA as documented.


> Folks can again cause parsing to separate values by using extra decimal 
> points in numeric strings. Has me wondering what might happen with typos 
> like 1..2 (not tried it).

That would have to be `1.` followed by `.2`.

> Or where we specify lists of values separated 
> by commas or not. Can the latter get scrambled in ways that are confusing?

Dots don't constitute valid infix or postfix operators in numeric 
expressions, so there's no ambiguity there.


Post a reply to this message

From: William F Pokorny
Subject: Re: POV-Ray v3.8.0-alpha.10011104
Date: 14 Jan 2019 15:29:29
Message: <5c3cf129$1@news.povray.org>
On 1/14/19 1:41 PM, clipka wrote:
> Am 14.01.2019 um 18:15 schrieb William F Pokorny:
> 
>> Suppose my question was too whether we should consider the 3.7/3.8 
>> behavior broken - you seem to be saying it was.
> 
> Let's put it this way: Going by the reference docs on numeric 
> expressions - specifically FLOAT_LITERAL - the v3.7 behaviour would have 
> to be considered broken, unless interpreting the syntax in a 
> self-inconsistent manner.
> 
> The key question is under what circumstances a sequence of characters 
> that matches the production rules of FLOAT_LITERAL, followed by some 
> other character that does not fit in, constitutes a broken 
> FLOAT_LITERAL, as opposed to a valid FLOAT_LITERAL token immediately 
> followed by the next token.
> 
> The v3.6 behaviour can easily be interpreted as consistently treating 
> such cases as valid, but erroneously implementing MANTISSA as:
> 
>      MANTISSA:
>        DIGIT... [DECIMAL_POINT | [DIGIT2...] |
>        DECIMAL_POINT DIGIT2...
>      DIGIT2:
>        DIGIT | DECIMAL_POINT
> 
> The v3.7 behaviour must be interpreted as treating such cases as broken 
> if the non-matching character is a dot, but valid if it is any other 
> character. That's a pretty arbitrary distinction.
> 
> The (new) v3.8 behaviour consistently treats all such cases as valid 
> again, while implementing MANTISSA as documented.
> 
> 
>> Folks can again cause parsing to separate values by using extra 
>> decimal points in numeric strings. Has me wondering what might happen 
>> with typos like 1..2 (not tried it).
> 
> That would have to be `1.` followed by `.2`.
> 
>> Or where we specify lists of values separated by commas or not. Can 
>> the latter get scrambled in ways that are confusing?
> 
> Dots don't constitute valid infix or postfix operators in numeric 
> expressions, so there's no ambiguity there.

Thanks for the detail. I've been playing with variations for the last 
hour or so and created some new parser test cases in my collection to 
track this change. While 1..2 gets treated as two numbers .1..2 and the 
like do not - so even the exposure to period over comma typos is small.

Not picked up anything new and have switched over to your latest code - 
it fixed all the recursive return fails I had. Should finish up tomorrow 
sometime and will post again only if something new turns up.

For the record I'm only checking the parser with my tests. I'm not doing 
image to image compares. Image compares will happen over time after I 
rebase my branches onto the current master head and continue other 
efforts.

Bill P.


Post a reply to this message

From: clipka
Subject: Re: POV-Ray v3.8.0-alpha.10011104
Date: 14 Jan 2019 15:47:39
Message: <5c3cf56b$1@news.povray.org>
Am 14.01.2019 um 21:29 schrieb William F Pokorny:

> For the record I'm only checking the parser with my tests. I'm not doing 
> image to image compares. Image compares will happen over time after I 
> rebase my branches onto the current master head and continue other efforts.

I think that's perfectly fine; I don't expect any parser issues to be 
subtle enough to make it to the rendering stage - with the exception of 
string and text handling, specifically non-ASCII stuff.


Post a reply to this message

From: clipka
Subject: Re: POV-Ray v3.8.0-alpha.10011104
Date: 14 Jan 2019 15:54:21
Message: <5c3cf6fd$1@news.povray.org>
Am 14.01.2019 um 18:23 schrieb William F Pokorny:

> One of our standard shipped scene files fails due a form feed character 
> '0c' very near the end the end of the file. That scene is:
> 
> ..../distribution/scenes/objects/superel2.pov
> 
> and here I think we just need to update that scene file.

Page breaks used to be common in ASCII files a while ago; I feel somehow 
inclined to just allow them as whitespace.

The only thing that's holding me back is that I'm not exactly sure what 
effect they should have on column and line counting.


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 4 Messages >>>

Copyright 2003-2021 Persistence of Vision Raytracer Pty. Ltd.