<teepee>
that's with onetbb 2023.11.0 and hopefully lib3mf build fixed
linext has joined #openscad
<teepee>
anyone with windows around to give that a quick test run?
erectus has quit [Remote host closed the connection]
dalias has quit [Ping timeout: 256 seconds]
erectus has joined #openscad
dalias has joined #openscad
teepee has quit [Remote host closed the connection]
teepee has joined #openscad
dalias has quit [Ping timeout: 255 seconds]
dalias has joined #openscad
dalias has quit [Ping timeout: 276 seconds]
dalias has joined #openscad
snaked has joined #openscad
hyperair has quit [Remote host closed the connection]
J23k20 has quit [Quit: Client closed]
J23k20 has joined #openscad
LordOfBikes has quit [Ping timeout: 256 seconds]
LordOfBikes has joined #openscad
mknst has joined #openscad
dalias has quit [Ping timeout: 276 seconds]
TheAssassin has quit []
bozo16 has quit [Ping timeout: 255 seconds]
mmu_man has quit [Ping timeout: 260 seconds]
L29Ah has quit [Ping timeout: 252 seconds]
teepee has quit [Ping timeout: 240 seconds]
teepee has joined #openscad
dalias has joined #openscad
J23k62 has joined #openscad
J23k20 has quit [Ping timeout: 250 seconds]
<ndnihil>
so, am I remembering wrong, or wasn't there a transform that just kept the intersection of two objects?
<peeps>
ndnihil: you mean intersection() ?
<ndnihil>
yes, that would likely be the one
<peeps>
one of the three main boolean csg operations
<ndnihil>
oh ffs
<ndnihil>
it's down in boolean, not transform
<ndnihil>
on the cheat sheet
<ndnihil>
and that's what I get for not sleeping
<ndnihil>
I know good and well I've used it a million times
<ndnihil>
but up babysitting a print and wanted to work on my lamp shades for the kitchen
<ndnihil>
print will be going well into tomorrow afternoon, but I'll feel better about sleeping once this one flat spot gets done and nothing gets dragged off the bed
<teepee>
uff, that first test print with the prusa-mk4 is pretty amazing quality
TheAssassin has joined #openscad
misterfish has quit [Ping timeout: 256 seconds]
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<guso78k>
teepee did you print from your slices or from the delivered gcode file ?
snaked has quit [Quit: Leaving]
<guso78k>
s/slices/slicer
<teepee>
guso78k: that was pre-sliced from the usb stick they shipped
<guso78k>
anycubic ships with the famous owl ...
<teepee>
hmm, now I need to remember how to retrigger the website update :)
<teepee>
ok, updated, I hope it did fetch the latest version
<teepee>
oh, I also need to update the 32bit builds
<teepee>
but nobody is actually using those, right?
<teepee>
right?
<J23k62>
best to find out is leave them out until someone complains
TheAssassin has quit [Remote host closed the connection]
TheAssass1n has joined #openscad
<teepee>
so far it's not a huge problem, I just need to press the build button a couple of times
<teepee>
lets see if it works :)
<pca006132>
FYI manifold does not have CI for 32 bit builds, and no one tried using it on 32 bit platforms iirc
<teepee>
it did build so far, so we shipped it :D
misterfish has joined #openscad
kintel has joined #openscad
<kintel>
teepee: Yeah, it's a well-known dmca scam, was just wondering if you plugged that as a response. In any case, this isn't needed any longer, although I believe all our SVGs are public domain
<pca006132>
btw wondering what should I do to get #4834 going
<pca006132>
add feature flags?
<teepee>
kintel: yep, all openclipart which is public domain. I sort-of argued with myself when restoring the folders to the new server already but decided to just rsync everything over :)
<teepee>
pca006132: that's the $variable topic right? kintel do you have some spare cycles to think about that?
<teepee>
I don't think there's any logic that can reasonably explain the current behavior other than it can be abused in some cases
<teepee>
having that file scope for $ variables somehow magically be there as default does not work with any clear definition
<teepee>
plus it was also stated that top level variable should *not* be reevaluated every time (which is a separate issue but partially connected via $ behavior)
<teepee>
so the normal rules are: "normal" variables are statically scoped based on location in the source code
<teepee>
$variables are dynamic, so the current call stack defines their value
<pca006132>
but if top level variables are referencing $variables, how can it work without reevaluation?
<pca006132>
I am not sure about the semantics here
<kintel>
My brain hurts just before I even start thinking about this..
<kintel>
My typical approach to this is to collect a good handful of commented test cases and add them to the test framework, including something distilled from nophead's designs. Then we can determine what we want to pass/fail and agree on a golden state.
<teepee>
problem is the way he is using them is just plainly a bug
<teepee>
maybe a useful one, but still a bug
<teepee>
so either we support that via some compat option, or break the designes, and I'm not liking the breaking stuff part
<kintel>
At some point we may want to become more aggressive at killing off old bugs, even if they can be exploited in a positive way
<teepee>
yeah, agreed, breaking one of the biggest libraries would not be a good start though :)
<kintel>
Especially when switching to manifold; a bunch of old designs may stop working due to floating point inaccuracies
dalias has quit [Ping timeout: 276 seconds]
<teepee>
also if there's a backward compat feature it still needs to be added manually so new code gets the default behavior
<kintel>
heh, yeah, true, and nophead tends to be quite protective of his way of doing stuff
mmu_man has quit [Ping timeout: 260 seconds]
<kintel>
I was thinking that we could add a backward compat (aka bug compat?) menu and allow people to revert to it.
<pca006132>
not sure if the compat flag thing should be per file or a global flag similar to experimental options
<kintel>
..but that's annoying to maintain
<kintel>
We don't really have a method of adding per-file metadata though. It has been discussed quite a bit in the context of language upgrades.
<kintel>
..or even in the form of project.json or smth. - this is all quite some work to get right
misterfish has quit [Ping timeout: 264 seconds]
<kintel>
In any case, if we really want it, a global flag is a safer start IMO
<pca006132>
idk, maybe something like JavaScript "use_strict"?
<pca006132>
(the whole script one)
<kintel>
yeah, that, or smth. like glsl defining the version compat # OpenSCAD 2021.01
<kintel>
..and forcing people to adhere to new versions without legacy fallback when upgrading their code
<pca006132>
and I feel that we need better documentation about the semantics stuff, e.g. variable reevaluation if they depends on $variables, $children evaluation order, how things are expected to be cached (because obviously we cannot cache everything), etc.
mmu_man has joined #openscad
<pca006132>
me and ochafik had some discussion in #4654 about the possibility of another interpreter for OpenSCAD, that can speed up evaluation a lot
<teepee>
I don't think a global flag will really work
<pca006132>
but both of us are not familiar with the niche semantics things
<teepee>
that implies you can't ever mix old and new library
<teepee>
risking it's added to all code in the end which would not help
<teepee>
as we can have a parser change only for new release, we probably need something like "require compat1#" or something but for now and additional backward compatible feature like $COMPAT_1 = true;
J23k62 has quit [Quit: Client closed]
<teepee>
so yes, it's going to be a bit annoying
J23k62 has joined #openscad
<kintel>
btw., is this a single change in behavior, which people (nophead) are complaining about?
<kintel>
..and is it realistic to simply revert that until we make up our minds?
<pca006132>
it doesn't change behavior, it just re-enables some buggy code
<pca006132>
when the $variable is not defined in the stack, search it in the file scope (of the current call frame)
<teepee>
no, it can't be easily reverted (I think)
<teepee>
it's part of the code that fixed quite a number of scope corner cases
<pca006132>
no? it is just 20 lines in 1 function, it can be easily reverted and will not affect anything else I think
<kintel>
..so just to allow existing big libraries to continue working, it could make sense to try that fix, and get feedback from nophead + test BOSL2.
<kintel>
..otherwise we may need to bite the bullet and implement some sort of compatibility/versioning scheme, which is not fun when we try to clean up before a new release..
<kintel>
We generally don't have a good way of testing larger designs or popular libraries for regressions. That
<kintel>
..that's another topic which would be interesting to open. But so much work and very very tediouas
<kintel>
(I did it once, and it was much work, and lots of fun shell scripts to write)
<pca006132>
I used ochafik's manifold benchmark as test for manifold's new triangulator, those were complex geometries but not really complex designs, and there are not many of them
<pca006132>
wondering how long did it took to run those 2k+ models?
<pca006132>
for the statistics-scripts
<kintel>
Not sure I even processed all 2K, but I think it took 72K CPU hours or so to run my script