Bug#1080322: latexmk: add -parallel=N option

John Collins <[email protected]>
Newsgroups gmane.linux.debian.devel.tetex
Message-ID <aaf6c81a-9507-4766-a415-75cd2b57ec6f__24489.2223783367$1774624541$gmane$org@psu.edu>
Thanks.  It's rather impressive, especially when I also looked at the new code 
inserted into the script.

Nevertheless, I've found some important bugs, and I think this is the time for 
human correction to the new code.  The impression I get from it is that the 
changes were made by someone (or something!) new to the project who has not yet 
had experience of the complications I've dealt with over the years.

I'm hoping to try my hand at this.  One motivation is that I am working with a 
colleague who has been suffering from extremely long compilation times on his 
typical scientific papers.  (Long story here.)  We've been working out ways to 
improve this by a large factor.  (That included a bug correction in the new 
latexmk version.)  Parallelization of custom dependencies would be valuable for 
some cases.  They are independent custom dependencies, and so very appropriate 
for parallelization. But the current parallel version of latexmk failed quite 
dramatically.   I think the ultimate cause of the difficulty is that the source 
files for the custom dependencies are generated during the pdflatex compilation 
instead of being made by an external program like a diagram editor.  I 
conjecture that the parallelization code messes up some of the dependency 
handling.   (I already see a related issue in the treatment of file locks.)

(In contrast, parallelization worked beautifully on a book of mine, where the 
custom dependencies are to make graphics files from source files generated by 
other software.)

Luckily, the changes to the code made by copilot are nicely localized and 
commented.  They are also reasonably clean and clear, so improving it should be 
reasonable to do.

I'll describe the bugs separately.  But I also saw that copilot didn't 
implement the treatment of Windows properly.  It used a test for the 
latexmk-defined variable $Windows_like, instead of testing the the OS being 
reported as 'MSWin32'.  So the copilot vetoed parallelization when the the 
cygwin and msys version of perl is used, even though they run under a 
linux-emulation subsystem that implements fork suitably, so that 
parallelization works.

John

On 3/26/26 10:17 AM, Barak A. Pearlmutter wrote:
> The github/copilot task sessions are apparently restricted in a
> fashion that prevents tehm from being made public, even read-only, in
> any straightforward fashion.
> 
> So I downloaded the task session HTML <body>...</body> (2Mb) and
> uploaded the file to claude.ai and asked it to convert it to a
> github-flavored markdown file preserving the collapsible parts (360k)
> then uploaded it into a github gist.
> 
> https://gist.github.com/barak/50bdc4678ef0f06ab978a3e522f82e4c
> 
> Enjoy!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.