Boost logo

Boost-Build :

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]>
Cc: <jamboost_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
up to
> 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
> limit
> 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, david.abrahams at, gregod at, cpdaniel at, john at