Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-8222

[C++] Use bcp to make a slim boost for bundled build

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.17.0
    • C++

    Description

      We don't use much of Boost (just system, filesystem, and regex), but when we do a bundled build, we still download and extract all of boost. The tarball itself is 113mb, expanded is over 700mb. This can be slow, and it requires a lot of free disk space that we don't really need.

      bcp is a boost tool that lets you extract a subset of boost, resolving any of its necessary dependencies across boost. The savings for us could be huge:

      mkdir test
      ./bcp system.hpp filesystem.hpp regex.hpp test
      tar -czf test.tar.gz test/
      

      The resulting tarball is 885K (kilobytes!).

      bcp also lets you re-namespace, so this would (IIUC) solve ARROW-4286 as well.

      We would need a place to host this tarball, and we would have to updated it whenever we (1) bump the boost version or (2) add a new boost library dependency. This patch would of course include a script that would generate the tarball. Given the small size, we could also consider just vendoring it.

      Attachments

        Issue Links

          Activity

            People

              npr Neal Richardson
              npr Neal Richardson
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 4h 40m
                  4h 40m