teepee changed the topic of #openscad to: OpenSCAD - The Programmers Solid 3D CAD Modeller | This channel is logged! | Website: http://www.openscad.org/ | FAQ: https://goo.gl/pcT7y3 | Request features / report bugs: https://goo.gl/lj0JRI | Tutorial: https://bit.ly/37P6z0B | Books: https://bit.ly/3xlLcQq | FOSDEM 2020: https://bit.ly/35xZGy6 | Logs: https://bit.ly/32MfbH5
<teepee> guso78: so I'd say we get this into the branch now and see if there's anything remaining to do
<teepee> do you mind if I squash all the commits into a single one? so reducing the temporary code states
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
use-value has quit [Remote host closed the connection]
use-value has joined #openscad
aiyion has quit [Remote host closed the connection]
aiyion has joined #openscad
teepee has quit [Quit: bye...]
teepee has joined #openscad
J23252730 has joined #openscad
J232527 has quit [Ping timeout: 260 seconds]
kintel has joined #openscad
epony has joined #openscad
Guest57 has joined #openscad
Guest57 has quit [Client Quit]
use-value has quit [Remote host closed the connection]
use-value has joined #openscad
qeed has quit [Quit: qeed]
Lagopus has joined #openscad
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
<kintel> peepsalot One thing I've been thinking, especially when reading cleanup code like yours: As the internal API is getting cleaner it could be quite nice to write some more conventional unit tests for those, as that could help writing better code without having to rely on regression tests happening to hit all code paths by firing a shotgun at OpenSCAD in general.
<kintel> Obviously quite a bit of work, but sometimes writing tests is a good, meditative experience, as long as you don't have to fight the framework :)
<peepsalot> kintel: i don't have much experience making unit tests. should we add a testing framework such as google-test or catch2? or does ctest provide enough?
<kintel> I think ctest is really just a test runner. googletest or similar would probably be needed, but key is to choose something and stick with it, and write good utilities to allow tests to stay nice and small.
<kintel> When I first wrote the OpenSCAD test framework I chose black-box regression tests because the internal API was messy and unstable. But things are a lot better now
<peepsalot> i was also thinking of making a new src/core/value/ path for the sources
<kintel> I was thinking the same :)
<kintel> ..but src/code/nodes may be a better start
<kintel> *core
<kintel> ..and ast/
<peepsalot> hmm, yeah. i did a big file restructuring not too long ago and ended up with a lot of git issues, so i'm a little more trigger shy now
<kintel> yeah, it gets a bit messy. My previous attempt at coding style fixes was such a nightmare that I gave up.
snaked has joined #openscad
<gbruno> [github] rcolyer synchronize pull request #4506 (Switch to new image_compare.py for testing) https://github.com/openscad/openscad/pull/4506
<InPhase> If all goes well, that will go green on all platforms this time.
<InPhase> kintel, peepsalot: I'm generally an advocate of hierarchical testing rather than comprehensive unit test coverage. The basic principle is you identify your lower level components in the abstraction hierarchy, and use those. But then rather than unit test on up the levels of abstraction, you do integration tests progressively targetting the higher levels of abstraction, and rely on the validated
<InPhase> behavior of the lower level components. I think this is less work AND actually captures correctness a lot better than trying to make a million little unit tests.
<kintel> InPhase yeah, that makes a lot of sense; I've seen too many attempts at "unit testing" some intermediate-level components by actually re-implementing lower-level tests
<InPhase> s/and use those/and unit test those/
<kintel> ..but testing at the lowest level is nice
<InPhase> Maybe the value stuff is actually a place where some unit tests could be worked in to lock some core behavior down, and introduce a framework.
<InPhase> Or maybe we're already hitting all of that really well with the echo tests.
<kintel> I think we've got pretty good coverage through regressions tests, but my thought was that this may become increasingly tricky to maintain, as you need to understand how values make their way all the way up there
<kintel> This is in no way urgent, just a thought which may make future refactoring or focused core work possible with less mental load
Dave_ has joined #openscad
ActionDave has quit [Ping timeout: 260 seconds]
<InPhase> Is there a way to get the actual images that the CI tests produced?
<InPhase> kintel: Or, maybe as you are mac based you could try it... tests/output/opencsgtest/issue3158-actual.png is showing up in the image comparison report as quite different from tests/regression/opencsgtest/issue3158-expected.png but only on macos.
<InPhase> 0.04652057% of 3x3 blocks differ with median block diff: 29.00
<InPhase> That's about 121 pixels worth of color shift.
<InPhase> But I don't see why it would be platform dependent.
<kintel> InPhase Did you check the test result report? https://github.com/openscad/openscad/actions/runs/3978226105
<kintel> There's an odd artifact being rendered
<InPhase> Oh. That html has the images.
<InPhase> Hmm, yeah. That yellow bit sticking down. So it is properly failing.
<InPhase> That's the first "found a problem" win for the new image comparison... And now we have a problem to fix. :)
<kintel> I don't see the same issue locally though
<kintel> But I assume this issue already exists but weren't caught by the current comparison, so that's a win indeed :)
<InPhase> Yeah, that'd be my read. Although oddly it looks like it has nothing to do with the issue3158.
<InPhase> I think that test just happens by chance to have caught... something.
<kintel> yeah, kind of looks like it
<gbruno> [github] rcolyer review_requested pull request #4506 (Switch to new image_compare.py for testing) https://github.com/openscad/openscad/pull/4506
<gbruno> [github] rcolyer review_requested pull request #4506 (Switch to new image_compare.py for testing) https://github.com/openscad/openscad/pull/4506
<kintel> I can reproduce on an x86 VM
hypera1r1 has quit [Remote host closed the connection]
<InPhase> Under macos as well? Or a VM for a different platform?
<kintel> macOS
<peepsalot> InPhase: does the python test compare alpha channels?
<kintel> Not sure. Do we export alpha channels?
<kintel> macOS vm on arm looks a lot worse btw: https://imgpile.com/i/dMSBcx
<peepsalot> no, but if i ever finish up one of my oldest PRs, it would
<peepsalot> the testing was part of the difficulty, where i needed to make sure that it could tell the difference between two images where only the alpha channel differed
<kintel> InPhase Gotta go to bed, could you open a separate issue on that macOS issue? Once we have an issue, we can disable the test and move on for now
la1yv_a has joined #openscad
EkpyroticFrood0 has joined #openscad
RichardP_ has joined #openscad
RichardPotthoff has quit [Ping timeout: 256 seconds]
JoelJoel has joined #openscad
castaway_ has joined #openscad
leptonix_ has joined #openscad
InPhase_ has joined #openscad
noonien3 has joined #openscad
<InPhase_> peepsalot: Well I didn't plan for it to do so, but yes, it should work. I believe if you feed in an alpha channel png file, PIL will simply make that size 3 inner dimension of the numpy array into a size 4. And the rest of the code will process the vectorized data exactly the same, as if alpha were yet another color.
<InPhase_> kintel: That is certainly a messed up result in that imgpile link. So clearly something is significantly amiss there.
castaway has quit [*.net *.split]
leptonix has quit [*.net *.split]
la1yv has quit [*.net *.split]
EkpyroticFrood has quit [*.net *.split]
splud has quit [*.net *.split]
Joel has quit [*.net *.split]
e2k has quit [*.net *.split]
noonien has quit [*.net *.split]
buZz has quit [*.net *.split]
InPhase has quit [*.net *.split]
EkpyroticFrood0 is now known as EkpyroticFrood
noonien3 is now known as noonien
buZz has joined #openscad
buZz is now known as Guest1961
<InPhase_> kintel: I suppose the right thing to blame is probably some sort of opengl lib percolating on certain mac platforms?
<InPhase_> kintel: Maybe a comparison of some version numbers for that.
e2k has joined #openscad
InPhase_ is now known as InPhase
splud has joined #openscad
hyperair has joined #openscad
epony has quit [Remote host closed the connection]
guso7821 has joined #openscad
<guso7821> teepee, i am fine with squashing all commits into one. i believe it can serve as an initial "arrival" . i am sure, that there will be many more tweeks ...
J23252730 has quit [Quit: Ping timeout (120 seconds)]
guso7821 has quit [Quit: Ping timeout (120 seconds)]
guso78 has quit [Quit: Ping timeout (120 seconds)]
J23252730 has joined #openscad
hyperair has quit [Remote host closed the connection]
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ps1231 has joined #openscad
hypera1r has joined #openscad
hypera1r has quit [Remote host closed the connection]
ps1231 has quit [Quit: Client closed]
epony has joined #openscad
leptonix_ is now known as leptonix
Pablo67 has joined #openscad
peeps[zen] has joined #openscad
peepsalot has quit [Ping timeout: 256 seconds]
qeed has joined #openscad
Non-ICE has joined #openscad
Pablo67 has quit [Quit: Client closed]
teepee_ has joined #openscad
teepee_ has quit [Remote host closed the connection]
teepee_ has joined #openscad
teepee has quit [Ping timeout: 255 seconds]
teepee_ is now known as teepee
milza has quit [Quit: milza]
Guest14 has joined #openscad
Guest14 has quit [Quit: Client closed]
guso78 has joined #openscad
Guest77 has joined #openscad
use-value1 has joined #openscad
use-value has quit [Ping timeout: 256 seconds]
use-value1 is now known as use-value
<gbruno> [github] t-paul pushed 5 additions 40 modifications (OpenSCAD with a Python Engine (#4498) Initial support for integrated python scripting. Status: * Most modules supported * Build time switch * Command line switch to enable python engine * No cross language support yet) https://github.com/openscad/openscad/commit/b585d4ca3327f4919a2715c94eab91bfa93cd91b
<gbruno> [github] t-paul closed pull request #4498 (OpenSCAD with a Python Engine) https://github.com/openscad/openscad/pull/4498
<LinuxHackerman> Is there a convenient way to produce multiple STL files from a single source file?
guso78 has quit [Quit: Client closed]
gknux has quit [Quit: ....and i am outta here....]
<gbruno> [github] t-paul opened pull request #4508 (OpenSCAD with a Python Engine (#4498)) https://github.com/openscad/openscad/pull/4508
gknux has joined #openscad
<teepee> LinuxHackerman: in GUI not so much. current solution would be based on some parameter in the script switching the output
<LinuxHackerman> hm ok, I guess that could be workable
<JordanBrown[m]> Right - with a little work you can wrap such a thing in a shell script that generates all of them.
<LinuxHackerman> Is there a way to share a single CGAL cache between the invocations?
<JordanBrown[m]> There has been some work on persistent caching, but I don’t think it has been integrated.
<LinuxHackerman> hm ok
<LinuxHackerman> and the "one-shot" CLI is the only other way to render files than the GUI currently?
gknux has quit [Quit: ....and i am outta here....]
<teepee> it might be an option to "mis-use" the animation feature to get caching with the current version
<InPhase> teepee: Although I suppose we have no animation for stl files.
<teepee> but I would not suggest something like that for designs that are supposed to be shared
<JordanBrown[m]> rendereach.sh is the shell script side of such a scheme.
<othx> JordanBrown[m] linked to "My House, with furniture by jordanbrown" on thingiverse => 3 IRC mentions
<teepee> hm? I'm pretty sure you can export STL via command line
<InPhase> With --animate?
<teepee> yes
<InPhase> Hmm, ok.
gknux has joined #openscad
<teepee> cylinder(h = ($t + 1) * 5, r = 10);
<JordanBrown[m]> I think that the .scad side is in lib.scad but am not sure and can’t look from my iPad.
<teepee> openscad-nightly --animate 4 cyl.scad -o cyl.stl
<teepee> echo 'cylinder(h = ($t + 1) * 5, r = 10);' | openscad-nightly --animate 4 - -o cyl.stl
<teepee> gives me 4 STLs
<InPhase> Yeah, so it does.
<InPhase> Nice.
<teepee> I have not checked if that gives a caching effect though, I think it should
<JordanBrown[m]> I’ll go with “abuse” for that scheme. And not with “convenient”.
<JordanBrown[m]> But clever.
<InPhase> teepee: I confirmed it caches.
<JordanBrown[m]> Hmm. If we exported a $frameNumber it would be a lot more convenient.
<teepee> it would still not be a good solution, at least not for a static set of parts
<teepee> but it's probably the only solution right now that gives internal caching
<teepee> that said using external script you can go multi-core, so pick your poison :)
<InPhase> Test file: https://bpa.st/MSRXA Test result: https://bpa.st/S5YOQ
<InPhase> The time drop from 1 to the last 4 is pretty clear.
<teepee> yep
<gbruno> [github] t-paul synchronize pull request #4508 (OpenSCAD with a Python Engine (#4498)) https://github.com/openscad/openscad/pull/4508
<gbruno> [github] t-paul pushed 5 additions 30 modifications (OpenSCAD with a Python Engine (#4498) Initial support for integrated python scripting. Status: * Most modules supported * Build time switch * Command line switch to enable python engine * No cross language support yet) https://github.com/openscad/openscad/commit/784d7b5bad64eac021327329de1e038caaf799e9
<gbruno> [github] t-paul pushed 7 modifications (Run scripts/beautify.sh.) https://github.com/openscad/openscad/commit/1b2459e25b4f166b12848b9bddbd3d903b37be8a
<gbruno> [github] t-paul synchronize pull request #4508 (OpenSCAD with a Python Engine (#4498)) https://github.com/openscad/openscad/pull/4508
hyperair has joined #openscad
Guest77 has quit [Quit: Client closed]
escobear has joined #openscad
gknux has quit [Ping timeout: 260 seconds]
escobear is now known as gknux
Dave_ has quit [Remote host closed the connection]
Dave_ has joined #openscad
use-value has quit [Remote host closed the connection]
use-value has joined #openscad
guso78 has joined #openscad
ur5us has joined #openscad
<guso78> He teepee, i have seen my PR was finally merged in, thx!
<guso78> I have seen that you have done some code cleanup, how can i fetch your changes now ?
<teepee> yes, still in a branch, so 50% on the way to master :)
<guso78> i appreciate the extra step to the master, i am aware, that its a big step
<teepee> I just did rebase to see if this clears up some of the strange changes and it did
<teepee> if you do a local "git fetch" you should be able to see the upstream python-support branch
<teepee> if you have any changes for that, you can branch of that branch locally and push those via PR
<guso78> hmm, my upstream is still gsohler/openscad  in github
<teepee> others can do so easily too which is the useful thing with the branch
<teepee> that's fine
<guso78> yes,i can try a logical git fetch
<teepee> you can add "git remote add upstream https://github.com/openscad/openscad"
<teepee> and do git fetch -a
<guso78> ahh, this sounds like right
<teepee> so you default origin still is gsohler/openscad but you can still easily import stuff from the openscad/openscad remote
<guso78> origin show to my gsohler space, upstream show to openscad space
<guso78> i do git fetch -a , or a gut pull -a and it tells:
<guso78> everything is up to date, maybe i am on sync already
<teepee> does "git branch -a | grep python" show the branch?
<guso78> gsohler@fedora build]$ git branch -a
<guso78>   master
<guso78> * python
<guso78>   remotes/origin/HEAD -> origin/master
<guso78>   remotes/origin/master
<guso78>   remotes/origin/python
<guso78> [gsohler@fedora build]$ git branch -a
<guso78> suppose the answer is no
<teepee> oh, let me check, maybe fetch -a does not get all the remotes
<teepee> oh, it's --all
<InPhase> guso78: What does your branch do for finding which Python version to run?
<teepee> yep, after "git fetch --all" the upstream branches should show up
kintel has joined #openscad
<guso78> ahh, makes a big diff
<InPhase> guso78: I recently addressed the issue of cross-platform python for the testing system for all of our targets, and setting up a venv for that. So the thought is fresh on my mind that if we ARE going to have Python file processing, we'd probably want to support having a venv for it.
<InPhase> guso78: That would I think require a command line flag for passing the target python executable, plus a gui field for setting the target python executable.
<guso78> venv is virtual env ? yes, i agree to it
<guso78> hmm, so the actual python will be run from an externally installed python executable >?
<InPhase> guso78: Is it currently just running whatever is in the path?
<guso78> InPhase i think you are not aware of the truth...
<InPhase> I'm certainly not. That's why I'm asking. :)
<InPhase> I had no time to look over your PR yet.
<guso78> if i used a python which is downloaded to windows, it would not work. i am embedding and extending python with openscad functions.
<guso78> so openscad included a whole python interpreter inside its executable
<InPhase> Oh, you went that route.
<guso78> for me this is the only viable one ...
<InPhase> I suppose that actually makes a venv almost impossible to manage though.
<InPhase> It could not be managed outside of openscad, because it has to match up with the executable version.
teepee has quit [Ping timeout: 255 seconds]
<guso78> It  the GeometryEvaluator.cc in a different environment compared to MainWindow.cc ?
<guso78> if i try python there , it just crashes ...
guso78 has quit [Ping timeout: 260 seconds]
castaway_ has quit [Ping timeout: 256 seconds]
<InPhase> kintel, peeps[zen]: I tagged you both (more realistically probably "either") for review on the image_compare PR. I think it's all set for a merge, but being a substantive change to the testing infrastructure and dependencies, warrants a second set of eyes.
<kintel> guso78: I believe there is a separate thread for processing geometry
<InPhase> It's about 50 lines of cmake, 50 lines of Python, a doc update, and expected test updates.
<kintel> InPhase Looking at it now :)
<kintel> InPhase In the meantime, could you disable the broken macOS test and open a github issue with a screenshot from the test result html?
<InPhase> Sure.
<peeps[zen]> i'm giving it a test build and run locally right now
<peeps[zen]> 22% tests passed :P
<InPhase> Check at the top of cmake's run for the result of the venv setup.
<InPhase> It prints out diagnostics of its success or failure, but does not abort if it failed to setup the venv.
<peeps[zen]> InPhase: right, i got this error from cmake configure. https://bpa.st/ONNY6
<peeps[zen]> should it actually error out cmake instead?
<InPhase> peeps[zen]: See updated doc/testing.txt
<peeps[zen]> so I was curious if it would fallback or what in that case
<InPhase> peeps[zen]: Install the prerequisite helper programs on your system: cmake, python3, python3-venv, python3-pip
<InPhase> ImageMagick was removed from those lines, and the venv and pip were added.
<InPhase> peeps[zen]: So it should not error out, because this happens at the cmake for building. And you can build just fine without these environments.
<InPhase> It is a requirement for testing, that because of our particular setup is being configured before building.
<InPhase> I did not invent this part of the setup though. :)
<InPhase> It is basically equivalent to before, where if you didn't have ImageMagick, you'd just get a huge number of test fails.
<peeps[zen]> InPhase: i think it should at least emit a cmake warning, and maybe point user to the testing doc
<InPhase> Oh, I could certainly change that final message(STATUS to a message(WARNING
<InPhase> Perhaps: message(WARNING "Failed to setup venv for ${IMAGE_COMPARE_EXE} See doc/testing.txt for dependency information.")
<peeps[zen]> hmm, i know the filename has "testing" in it, but maybe we should explicitly say "This is only relevant if you intend to run the test suite."
<InPhase> "Failed to setup the test suite venv for ..." ?
<peeps[zen]> yeah that sounds better
<peeps[zen]> passed all tests after installing python3-venv and python3-pip. Total Test time (real) = 46.08 sec
use-value has quit [Remote host closed the connection]
use-value has joined #openscad
<InPhase> Excellent.
<peeps[zen]> one other small quibble in terms of UX: i still see cmake spit out: ModuleNotFoundError: No module named 'PIL' can that be silenced if pip is found? (ie it will be installing it for us)
<InPhase> Hmm.
<InPhase> Right, so try to eat stderr on the first run of image_compare.py, but leave stdout.
<InPhase> (Because stdout will announce success.)
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<InPhase> I have to manually break the environment to trigger that condition... One moment. :)
<InPhase> You hit it only because you rebuilt after failing once.
<InPhase> Yep, ERROR_QUIET handles that correctly.
<peeps[zen]> nice
<InPhase> It will still output precisely that error if it still fails at the final validation run.
<peeps[zen]> great, that makes sense to me
<InPhase> I pushed those.
<InPhase> One additional question... What is the proper way to disable a test? Is there a way to disable it without commenting it out, so that it can still be run?
<gbruno> [github] rcolyer synchronize pull request #4506 (Switch to new image_compare.py for testing) https://github.com/openscad/openscad/pull/4506
<InPhase> Excellent.
<peeps[zen]> i recently changed our tests/CMakeLists.txt to use ctest built in DISABLED property
<InPhase> I thought I searched for disabled in there... Maybe I spelled it wrong. ;)
<InPhase> Ah, I even see now an APPLE specific test disable. I can add it in there and link to the new issue.
<peeps[zen]> yep, moved platform disables out of CI runner scripts too :)
<peeps[zen]> does a new issue need to be created for the failing mac test?
<InPhase> kintel requested it.
<InPhase> It's definitely something going wrong.
<InPhase> It might not be our fault, but it could be a library version we should make sure not to use for releasing.
<linext> can someone tell me if there's lime green i this image: https://i.ibb.co/r0tmTWL/image.png
<linext> i'm trying to tell if my video card is going bad, or maybe there's a chrome bug
<InPhase> linext: lol. Where?
<peeps[zen]> yes in the selected tab icon
<linext> the icons
<InPhase> linext: Oh, the youtube play button?
<InPhase> It is greener when active.
<linext> yea, i jiggled the cord on my monitor and it's plugged in all the way with DVI
<InPhase> I don't think it's supposed to be an eye. :)
<linext> maybe someone saved the favicon with the wrong opacity?
<InPhase> Also, it's not green for me on youtube with chrome.
<InPhase> I see all red with a white play button.
<linext> when i hover over it, it changes
<linext> black to green
<InPhase> I do not get this behavior.
kintel has joined #openscad
<InPhase> linext: Sometimes they do phased rollouts for testing a UI. You might be a randomly selected IP address.
<linext> i reloaded chrome and have the same behavior
<linext> when i hover over the icon, it changes to be more green
<InPhase> I will say it's ugly, so if they did it on purpose, they goofed.
<kintel> InPhase all tests worked locally for me too :) At 934 seconds though, due to the VBO rendering regression on arm
<linext> hmmm... now it's yellow: https://ibb.co/cTt7XkC
<linext> maybe i should reboot
linext has quit [Read error: Connection reset by peer]
linext has joined #openscad
<linext> the chrome icon bug survived reboot
<linext> i'll report an issue using the feedback form. thanks
<linext> i'm thinking they mistakenly saved a PNG in the wrong PNG format
J23252730 has quit [Ping timeout: 260 seconds]
<gbruno> [github] rcolyer opened issue #4509 (MacOS issue3158 artifact fail) https://github.com/openscad/openscad/issues/4509
<gbruno> [github] rcolyer synchronize pull request #4506 (Switch to new image_compare.py for testing) https://github.com/openscad/openscad/pull/4506
<InPhase> kintel: Almost certainly peeps[zen] was using ctest -j16 or something for that test speed.
<kintel> -j20 here as I have 10 cores ;)
<peeps[zen]> i usually do -j32 even though i have 12 cores, its slightly faster than -j24 for me
<InPhase> kintel: Okay, well that's a very bad performance regression then...
<kintel> This is in debug mode though, it'll run twice as fast in release mode
<peeps[zen]> debug is extra slow with mimalloc
<peeps[zen]> but you can get very detailed memory stats
<InPhase> Ah. I only do release builds.
<InPhase> kintel: Particularly the Compare3x3 function requiring documentation?
<InPhase> s/documentation/comments/
<InPhase> Oh, maybe I see a few points inside the other one as well.
<InPhase> peeps[zen]: -j24 (1m21s) is slightly faster for me than -j16 (1m28s), but with diminishing returns.
<kintel> InPhase yeah, I kind of know what it does, but I couldn't guess from glancing at that function :)
<InPhase> Yep. I typically write that sort of code for a target audience that would find Compare3x3 obvious, but most of whom aren't sure what a class member is. But you're right, it requires some comments. :)
<peeps[zen]> i was seeing 20-22s for a release build, before python compare though. so it does take about 2x longer overall for me
<InPhase> peeps[zen]: It's a little less than 2x for me. So it's definitely a slowdown.
<InPhase> But, a slowdown on times that aren't too bad in the first place I think.
<peeps[zen]> but still sufficiently fast that I can't complain too much. since the increased accuracy seems important
<peeps[zen]> i am kinda curious how it would perform in C++, possibly replacing diffpng's algorithm
<InPhase> That would approximately revert it to the old times.
<InPhase> The algorithm itself is super fast. The choice of doing it with python added a script-loading time repeated 1000 some times, which is almost the entire difference.
<InPhase> I didn't examine diffpng that closely, but I'm pretty sure it's faster than diffpng simply because that algorithm appears to be much more involved in what it is trying to do.
<InPhase> I choose a much simpler machine-oriented definition of image equivalence.
<InPhase> s/choose/chose/
<gbruno> [github] rcolyer synchronize pull request #4506 (Switch to new image_compare.py for testing) https://github.com/openscad/openscad/pull/4506
epony has quit [Remote host closed the connection]
<InPhase> kintel: I went with a formal comment and with an executive summary. :)
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]