<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Sep 7, 2022 at 1:56 PM Rob Landley <<a href="mailto:rob@landley.net">rob@landley.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 9/6/22 18:16, enh wrote:<br>
> and to the surprise of absolutely no-one ...<br>
> <br>
> they got back to me with a test script to repro this with (which i assume will<br>
> work in any kernel tree, and isn't specific to ACK)...<br>
> ```<br>
> #!/bin/bash<br>
> <br>
> set -x<br>
> <br>
> run () {<br>
>   start_time=$(date +%s)<br>
> <br>
>   find /usr/include/linux/ -name *.h -print0 | \<br>
>       /usr/bin/perf record -g --               \<br>
>       tar czf target.$1.tar.gz                 \<br>
>       --absolute-names                         \<br>
>       --dereference                            \<br>
>       --transform "s,/usr/include/,,"          \<br>
>       --null -T -<br>
> <br>
>   mv perf.data perf.$1.data<br>
> <br>
>   end_time=$(date +%s)<br>
>   elapsed=$(( end_time - start_time ))<br>
>   echo $elapsed s<br>
> }<br>
> ```<br>
> <br>
> ...and reported that all the time is going into tar fork()ing and exec()ing sed :-(<br>
<br>
Yeah, not surprised.<br>
<br>
> so although NORECURSE was a clever hack to work around the _first_ tar+sed<br>
> problem, it seems to have had the expected result of landing me back with the<br>
> original tar+sed problem :-(<br>
<br>
I just checked in some more test tweaking, which hopefully lets me park that for<br>
a bit. (I still need to fix the chattr tests, which are skipped because root and<br>
last worked who KNOWS when, </blockquote><div><br></div><div>remember that Android's CI typically tests as root (which is why i hit all these root-only things first), so i can tell you it worked last week :-)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">the first test is failing the same way on the host<br>
and with toybox because the output it expects is the wrong LENGTH... filesystem<br>
type probably changed out from under it in a distro version upgrade. But I poked<br>
them because that's the other remaining SKIPNEXT=1 usage I missed removing when<br>
I changed the test plumbing's semantics.)<br></blockquote><div><br></div><div>the tricky thing to note with the chattr tests is that depending on the fs, any subset of them might pass/fail.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I'm also 2/3 of the way through adding toysh support for blockless functions ala<br>
"x() echo hello; x" which of course spawned a couple tangents:<br></blockquote><div><br></div><div>(speaking of features that seem more like bugs than features ... that's just awful. given that bash doesn't support it, don't you want to wait until you see an actual real-world use first? the fact that bash doesn't support this makes me doubt we'll ever see any? which seems like a good thing, because i don't think there are many people still alive who can read that syntax and know what it actually does!)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
1) after parsing the function body gets pulled out of the current parse block<br>
and moved to a linked list of defined functions because object lifetime: when<br>
you exit the current block and it frees it the function that got defined needs<br>
to persist, so I made a reference counted structure. But the transplant code<br>
assumed it was starting in a block and didn't know when to end if it wasn't, so<br>
it needed some massaging.<br>
<br>
2) I was adding a placeholder type 'f' pipeline segment and I do NOT remember<br>
why, it not only seems unnecessary but I have a TODO not to remove it?<br>
<br>
And of course I want to get diff finished and checked in.<br>
<br>
(And Moritz Weber sent me a git.c drop to help him debug, and reminded me we<br>
were poking at host/nslookup, and that I was doing videos, and...)<br>
<br>
I'm trying to get the symlink stuff converted so it passes better on mac, then<br>
lemme try to get diff and sh parked, and then I need to implement the sed<br>
extension so tar can use one persistent instance in a streaming manner. And then<br>
I can finish the redo of readlink.c so I can have "make test_tar" detect the<br>
output directory from "make install_airlock", and write up a FAQ entry about<br>
doing that...<br>
<br>
Sorry I'm not faster. :(<br></blockquote><div><br></div><div>no worries, i probably won't have much time the next couple of weeks anyway... (but note that the chattr.test breakage means i can't take any other changes until that's working again.)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Rob<br>
</blockquote></div></div>