From: David Abrahams (david.abrahams_at_[hidden])
Date: 2001-12-21 00:31:57
----- Original Message -----
From: "Anichini, Steve" <Sanichini_at_[hidden]>
To: "'David Abrahams'" <david.abrahams_at_[hidden]>
Sent: Tuesday, March 12, 2002 5:24 PM
Subject: RE: boost jam patches
> Trying echo inside an action in a jamfile stops short way before 4095
> fact, the 2047 limit seems about right).
> I think there is just something screwy with the way jam shells out
> on NT, because if a Python script can call os.system("echo...") with
> 4095 chars, there's no reason jam shouldn't be able to also.
> Delving deep into python's source, it looks like its just calling the
> runtime system() call when os.system() is called.
> So a short table from my tests:
> (* = filler for a lot of characters)
> method command
> python os.system() "cmd.exe /q/c echo"*">foo.txt" 4095 chars
> batch file "echo "*">foo.txt"
> ~2047 chars
> jam "echo "*">foo.txt"
> ~2047 chars
> So it seems that the batch file is the limiting factor. It does seem a
> since once could double the length of commands if jam didn't use batch
> and invoked cmd.exe directly. It would make the implementation for
> multi-line commands very tricky tho, and maybe not worth the risk or
> anyway, looking at what the "piecemeal" keyword does, i think i can
> the problem we were having and set the maxline() back to where it was.
If you want more length, set JAMSHELL to "%", which overrides the .bat
file as long as the command is a single line.
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk