On Tue, 1 Apr 2025, Corinna Vinschen wrote: > Oh, Jeremy, here's a question. We only add udis86 to the main branch. > What about the 3.6 branch, does it still need a patch to accommodate > the fast_cwd magic for a newer, upcoming Windows version?
I was going to ask about that too. I assume the plan is to keep the new udis86 code for 3.7, and continue applying band-aids to the old code on 3.6 as needed. The question remains, do we apply band-aids for insider builds or wait for an actual release (or something approximating a release candidate)? > And btw., I checked the file size again, and it turns out that after > stripping the debug symbols the DLL takes ~30 pages or 120 K more memory > than before udis86. I hope that's ok. But if you see ways to shave a > few pages off by dropping code from udis86, I wouldn't be too unhappy :} Hmm, I only tested on top of msys2 (which is on gcc 13.3.0), but here's what I see: $ ls -l total 47952 -rwxr-xr-x 1 XXX None 24682293 Apr 1 10:14 postmsys-2.0.dll -rwxr-xr-x 1 XXX None 24417887 Apr 1 10:12 premsys-2.0.dll $ echo $(( $(stat -c %s postmsys-2.0.dll) - $(stat -c %s premsys-2.0.dll) )) 264406 $ strip premsys-2.0.dll $ strip postmsys-2.0.dll $ ls -l total 6428 -rwxr-xr-x 1 XXX None 3330598 Apr 1 10:15 postmsys-2.0.dll -rwxr-xr-x 1 XXX None 3246118 Apr 1 10:15 premsys-2.0.dll $ echo $(( $(stat -c %s postmsys-2.0.dll) - $(stat -c %s premsys-2.0.dll) )) 84480 One thing I noticed that could make the code using udis86 smaller and faster is to use members of the ud_t struct directly instead of calling accessor functions. I don't know for sure if these members are intended to be public or not (but they do seem to know how to declare members as non-public: in ud_operand_t, they have an "internal use only" comment followed by members named with leading underscores). I don't think it would make a large dent in the size of the code relative to the size of udis86 itself though.