Infamous warnings

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Infamous warnings

Ronaldo
A very extensive and appreciated work has been done lately to provide the OpenSCAD users better and detailed warnings and error messages. However some of them (at least one) are still bothering the debug of codes with no clues:

DEPRECATED: Using ranges of the form [begin:end] with begin value greater than the end value is deprecated.


Is there no way to provide some hint were the problem was found?


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Infamous warnings

MichaelPFrey
On 28.11.19 20:19, Ronaldo Persiano wrote:

DEPRECATED: Using ranges of the form [begin:end] with begin value greater than the end value is deprecated.

Is there no way to provide some hint were the problem was found?

Hi,

Good idea to tackle that.

I am working on it:

The issue was/is that at the point where DEPRECATED warning is created I do not have access to context (the context contains the location).

So, I have to move the warning "up to chain".

I need to dwell a bit about the details.


The bold approach would be to change the DEPRECATED to ERROR.

On the other-hand, currently

for(i=[10:1:1]){
    echo(i);
}

is not even a warning.

In this example with constants it is obviously an error, but if the range is defined with a variable that generated by a loop it can both be very intentional and hard to debug.


With Kind regards,

Michael Frey


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
tp3
Reply | Threaded
Open this post in threaded view
|

Re: Infamous warnings

tp3
There's also the option to finally remove the range
auto-swapping.

ciao,
  Torsten.


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
-- Torsten
Reply | Threaded
Open this post in threaded view
|

Re: Infamous warnings

MichaelPFrey
In reply to this post by MichaelPFrey
Work in progress can be seen at
https://github.com/openscad/openscad/pull/3149

I think cases with literals are distinct from cases with variables.


for([a,b,c]) will not create a warning as that can be very intentional
with nested for loops.

Yeah, it can be hard to debug, but creating warnings can cause issues
with legacy code and it bloats the user code with handling that.


for([100,1,1]) will create a warning, as this most likely a typo and no
outside circumstance can affect this loop.


With Kind regards,

Michael Frey

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org