Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-11571

Be able to compile WiredTiger as C++

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Engines
    • StorEng - Refinement Pipeline

      The goal of this ticket is to make WiredTiger compilable as C++.

      The WT code-base would very much stay C, with C coding standards - just also compilable as C+. C+ specific features could only be used in non-mergable POCs to explore/demonstrate the potential benefits.

      I understand that compiling WT as C++ has been done before at Skunkworks (AlexC, I think), but as the results were never merged, they are no longer very useful. My idea is to create a branch and get WT compiling in C++ on it with absolutely the minimal changes (mainly to CMake files, I hope) but also to make the code compatible with both languages (but still very much following the C coding style).

      A simple concrete example: a void* can be implicitly cast in C to another pointer type, but in C++ it must be explicitly cast - adding that cast to the code would make the code compatible with both C and C++.

      Hopefully we can then agree to a set of changes that could be merged, and keep the code compilable (and checked in Evergreen) in both languages going forward.

      While C remains the ‘official’ WT language, I also hope that we can, over time, also turn on the stricter checking of C++ to help us improve our code.

            Assignee:
            jeremy.thorp@mongodb.com Jeremy Thorp
            Reporter:
            jeremy.thorp@mongodb.com Jeremy Thorp
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: