On 3/14/2015 12:49 PM, Niall Douglas wrote:
On 13 Mar 2015 at 19:47, Steven Watanabe wrote:
(b) AFAIK, there is Windows API that can work with long paths (32767 chars or something?). Can bjam be updated to use these API to work around the problem?
Proposed Boost.AFIO has always used the NT kernel API directly, and <snip>
What AFIO does is completely irrelevant, since b2 is written in C and cannot use Boost anyway.
I didn't know that b2 is written in C. However, there is as it happens relevance - AFIO's stable DLL export ABI is intentionally designed to be C compatible such that a C API can be provided in addition to the metaprogrammed C++ one.
I just need to get round to writing the libclang AST to C bindings generator, that's all. Time, as always.
I believe Steve meant that b2 uses the fopen/fread/fwrite series of C standard library functionality for cross-platform purposes and it is this which imposes the limit to the filespec path. Obviously b2 could try to use the same NT kernel API which AFIO uses to get around the 256 character limitation if cross-platform programming were not the issue.