On Mon, Apr 5, 2021 at 3:17 PM Stefan Fuhrmann <stef...@apache.org> wrote: > > See attachment (I may have used a somewhat outdated trunk). > > tasks-prepwork.patch refactors some utility code to make it reusable. > tasks-main.patch is the new svn_task__t API, implementation and bits of > testing. > tasks-used*.patch is calling the new API from svn_wc__internal_walk_status > plus > optimizations in wc_*.* > > The patches are only to give you an idea of the scope of the change; they lack > almost all documentation. I plan to go for a simpler first integration, i.e. > keep wc_*.* as is and possibly reduce the code churn in status.c.
Which version of APR are you using in your builds? I used apr-1.4.8, apr-util-1.4.1 because recently there was some work to restore building SVN with APR 1.4 to allow building on older OS like CentOS 7. I wanted to make sure these changes don't "un-restore" building with APR 1.4. In my build, APR_HAS_THREADS was defined. I haven't really studied the code yet, except for a cursory glance through the changes. I understand this is still a prototype and work-in-progress; however, some early feedback: It looks like there's no fallback in case the new implementation can't be used; e.g., svn_thread_cond__wait() et al basically do nothing unless APR_HAS_THREADS is defined. The first two patches, tasks-prepwork.patch and tasks-main.patch, applied cleanly and I saw no test failures there. Caveat: So far I only ran the "easy" tests, i.e., those that run with a basic './configure && make && make check' build. tasks-used-optimized-wc-status.patch applied with some offsets, so is against a slightly out-of-date trunk, but applied without conflicts. But my build had many test failures: Summary of test results: 1176 tests PASSED 165 tests SKIPPED 66 tests XFAILED (16 WORK-IN-PROGRESS) 1223 tests FAILED Python version: 2.7.16. SUMMARY: Some tests failed I noticed, however, that while the first two patches were rooted in subversion, the third patch was rooted in subversion/libsvn_wc, so perhaps there are other needed changes that didn't make it into the patch? Otherwise, something is hosed... If you'd like, I'll provide the fails.log. Be warned, it's 2.5MB! Cheers, Nathan