discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Re: Lazy unions "Option Explicit"

P
pproj@posteo.de
Fri, Sep 22, 2023 10:06 PM

i agree, that sounds better.
we just need somebody to actually implement it :)
On 22.09.23 23:34, Jordan Brown wrote:

Better, arguably, would be to have a way to retrieve various settings,
that you could then use in an assertion.

E.g.

  assert(!feature("lazy-union"));
  assert(feature("textmetrics"));

so that you could express exactly what features you do and don't need.

i agree, that sounds better. we just need somebody to actually implement it :) On 22.09.23 23:34, Jordan Brown wrote: > Better, arguably, would be to have a way to retrieve various settings, > that you could then use in an assertion. > > E.g. > > assert(!feature("lazy-union")); > assert(feature("textmetrics")); > > so that you could express exactly what features you do and don't need.
TP
Torsten Paul
Fri, Sep 22, 2023 10:27 PM

On 23.09.23 00:06, pproj@posteo.de wrote:

     assert(!feature("lazy-union"));
     assert(feature("textmetrics"));

That's 100% against the whole point of the experimental flag. It's
there so it's clear you can NOT rely on that feature for anything
next week.

ciao,
Torsten.

On 23.09.23 00:06, pproj@posteo.de wrote: >>      assert(!feature("lazy-union")); >>      assert(feature("textmetrics")); That's 100% against the whole point of the experimental flag. It's there so it's clear you can NOT rely on that feature for anything next week. ciao, Torsten.
P
pproj@posteo.de
Fri, Sep 22, 2023 11:20 PM

well,Thorsten.
 it is a good Point again.
Perhaps something more common like assert("experimental_off") could do?
On one hand, we do not want to restrict testing of new features. on the
other hand surprises for the authors of libraries mean avoidable work.
Many people including me use a dev version of everything if they can. so
it might be useful in these cases.  Perhaps such assertion could produce
a warning, not an error. just an Idea.

On 23.09.23 00:27, Torsten Paul wrote:

On 23.09.23 00:06, pproj@posteo.de wrote:

     assert(!feature("lazy-union"));
     assert(feature("textmetrics"));

That's 100% against the whole point of the experimental flag. It's
there so it's clear you can NOT rely on that feature for anything
next week.

ciao,
  Torsten.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

well,Thorsten.  it is a good Point again. Perhaps something more common like assert("experimental_off") could do? On one hand, we do not want to restrict testing of new features. on the other hand surprises for the authors of libraries mean avoidable work. Many people including me use a dev version of everything if they can. so it might be useful in these cases.  Perhaps such assertion could produce a warning, not an error. just an Idea. On 23.09.23 00:27, Torsten Paul wrote: > On 23.09.23 00:06, pproj@posteo.de wrote: >>>      assert(!feature("lazy-union")); >>>      assert(feature("textmetrics")); > > That's 100% against the whole point of the experimental flag. It's > there so it's clear you can NOT rely on that feature for anything > next week. > > ciao, >   Torsten. > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
TP
Torsten Paul
Fri, Sep 22, 2023 11:37 PM

On 23.09.23 01:20, pproj@posteo.de wrote:

Perhaps something more common like assert("experimental_off")
could do?

That seems a bit strong, but I see how some sort of warning about
this would be very useful. A bit similar to the "tainted" flag in
the Linux kernel but with a different focus.

On one hand, we do not want to restrict testing of new features
on the other hand surprises for the authors of libraries mean
avoidable work.

Yep, exactly. So there's probably no perfect solution, simply
because the type of experimental features are very different,
e.g. the "sorted STL output" one is very specific but the lazy
union is really not finished and has various issues that may or
may not be solved eventually.

Giving the library a way of shouting out a specific warning
message might be one thing, maybe also adding a special menu button
for reporting issues.

So far, we've been asking for the "Library Info" content, which
has lots of technical info. I can imagine a reduced version could
help not only for reporting OpenSCAD issues, but also other types
of problems. This information does include a list of all available
experimental features along with there on/off state.

ciao,
Torsten.

On 23.09.23 01:20, pproj@posteo.de wrote: > Perhaps something more common like assert("experimental_off") > could do? That seems a bit strong, but I see how some sort of warning about this would be very useful. A bit similar to the "tainted" flag in the Linux kernel but with a different focus. > On one hand, we do not want to restrict testing of new features > on the other hand surprises for the authors of libraries mean > avoidable work. Yep, exactly. So there's probably no perfect solution, simply because the type of experimental features are very different, e.g. the "sorted STL output" one is very specific but the lazy union is really not finished and has various issues that may or may not be solved eventually. Giving the library a way of shouting out a specific warning message might be one thing, maybe also adding a special menu button for reporting issues. So far, we've been asking for the "Library Info" content, which has lots of technical info. I can imagine a reduced version could help not only for reporting OpenSCAD issues, but also other types of problems. This information does include a list of all available experimental features along with there on/off state. ciao, Torsten.
JB
Jordan Brown
Sat, Sep 23, 2023 1:43 AM

On 9/22/2023 3:27 PM, Torsten Paul wrote:

On 23.09.23 00:06, pproj@posteo.de wrote:

     assert(!feature("lazy-union"));
     assert(feature("textmetrics"));

That's 100% against the whole point of the experimental flag. It's
there so it's clear you can NOT rely on that feature for anything
next week.

Yes, sure.  Maybe it should be experimental(name) rather than
feature(name) to make that clearer.  But people will (and we want them
to!) build models using experimental features, and it seems like it
would be a good idea to be able to mark a model as depending on a
particular experimental feature.

On 9/22/2023 3:27 PM, Torsten Paul wrote: > On 23.09.23 00:06, pproj@posteo.de wrote: >>>      assert(!feature("lazy-union")); >>>      assert(feature("textmetrics")); > > That's 100% against the whole point of the experimental flag. It's > there so it's clear you can NOT rely on that feature for anything > next week. Yes, sure.  Maybe it should be experimental(name) rather than feature(name) to make that clearer.  But people will (and we want them to!) build models using experimental features, and it seems like it would be a good idea to be able to mark a model as depending on a particular experimental feature.
NH
nop head
Sat, Sep 23, 2023 10:19 AM

Some experimental features have no semantic change on the model. For
example, manifold should not change it and the vbo changes only affect the
speed of rendering. So  assert("experimental_off") would break things for
no reason.

On Sat, 23 Sept 2023 at 02:43, Jordan Brown openscad@jordan.maileater.net
wrote:

On 9/22/2023 3:27 PM, Torsten Paul wrote:

On 23.09.23 00:06, pproj@posteo.de wrote:

  assert(!feature("lazy-union"));
  assert(feature("textmetrics"));

That's 100% against the whole point of the experimental flag. It's
there so it's clear you can NOT rely on that feature for anything
next week.

Yes, sure.  Maybe it should be experimental(name) rather than
feature(name) to make that clearer.  But people will (and we want them to!)
build models using experimental features, and it seems like it would be a
good idea to be able to mark a model as depending on a particular
experimental feature.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Some experimental features have no semantic change on the model. For example, manifold should not change it and the vbo changes only affect the speed of rendering. So assert("experimental_off") would break things for no reason. On Sat, 23 Sept 2023 at 02:43, Jordan Brown <openscad@jordan.maileater.net> wrote: > On 9/22/2023 3:27 PM, Torsten Paul wrote: > > On 23.09.23 00:06, pproj@posteo.de wrote: > > assert(!feature("lazy-union")); > assert(feature("textmetrics")); > > > That's 100% against the whole point of the experimental flag. It's > there so it's clear you can NOT rely on that feature for anything > next week. > > > Yes, sure. Maybe it should be experimental(name) rather than > feature(name) to make that clearer. But people will (and we want them to!) > build models using experimental features, and it seems like it would be a > good idea to be able to mark a model as depending on a particular > experimental feature. > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
JB
Jordan Brown
Sat, Sep 23, 2023 11:38 PM

On 9/23/2023 3:19 AM, nop head wrote:

Some experimental features have no semantic change on the model. For
example, manifold should not change it and the vbo changes only affect
the speed of rendering. So  assert("experimental_off") would break
things for no reason.

Note that I was suggesting experimental(name); you would ask about the
experimental feature that you are interested in.

You could pointlessly assert that irrelevant experimental features are
on or off... don't do that.

On 9/23/2023 3:19 AM, nop head wrote: > Some experimental features have no semantic change on the model. For > example, manifold should not change it and the vbo changes only affect > the speed of rendering. So  assert("experimental_off") would break > things for no reason. Note that I was suggesting experimental(name); you would ask about the experimental feature that you are interested in. You could pointlessly assert that irrelevant experimental features are on or off... don't do that.