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

Reply via email to