CppCon 2019: Louis Dionne “The C++ ABI From the Ground Up”

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ก.ย. 2024
  • CppCon.org
    -
    Discussion & Comments: / cpp
    -
    Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/Cpp...
    -
    The ABI (Application Binary Interface) has a huge impact on C++ libraries. But what does that mean concretely?
    This talk will explain what we mean by the ABI in the context of C++. Starting from the ground up and focusing on the Itanium C++ ABI specification, we will understand what is part of the ABI and how changes in your C++ source code can result in changes to the ABI. We will also cover what ABI stability means, what use cases ABI stability enables, and what some of the costs of maintaining ABI stability are.
    Keeping the point of view of a library implementer, we will see how one can control what is part of a library's ABI, using both standard and non-standard techniques like attributes. Finally, we will also see some tools that can be used to inspect parts of the ABI of a built program and detect changes to it.
    -
    Louis Dionne
    Apple
    C++ Standard Library Engineer
    Quebec, Canada
    Louis is a math and computer science enthusiast who got swallowed by the C++ monster when he was a naive, unsuspecting student. He now works for Apple, where he is responsible for libc++, the Standard Library shipped with LLVM/Clang. He is a member of the C++ Standards Committee and of the Boost community, where he authored the Boost.Hana metaprogramming library.
    -
    Videos Filmed & Edited by Bash Films: www.BashFilms.com
    *-----*
    *--*
    *-----*

ความคิดเห็น • 10

  • @industrialdonut7681
    @industrialdonut7681 3 ปีที่แล้ว +16

    I really liked the extremely simple examples, made it a lot easier to start to understand what an ABI is

  • @Krzysztow1985
    @Krzysztow1985 4 ปีที่แล้ว +29

    Very good talk! Nice explanation on the ABI, exactly what I need to start digging into this topic.

  • @JawwadHafeez
    @JawwadHafeez 2 หลายเดือนก่อน +1

    Very useful info.
    Got perspective of another developer on the subject. Thanks

  • @YA-yr8tq
    @YA-yr8tq ปีที่แล้ว +1

    This is my first exposure to ABIs and I really appreciate the simplicity of the presentation!

  • @learpcss9569
    @learpcss9569 2 ปีที่แล้ว +2

    20:14 was mindblowing for me

  • @boogly3716
    @boogly3716 7 หลายเดือนก่อน +1

    At 20:00 pair is not trivial in both cases that he is showing. Actually, if any special member function (constructors or destr) is used-defined the type is non-trivial.
    What he probably meant is:
    The type is trivially copyable when destructor is not user-defined

  • @tomaszstanislawski457
    @tomaszstanislawski457 2 ปีที่แล้ว +2

    Probably the issues with C++ ABIs is why many frameworks still use C API.

  • @ughadunk
    @ughadunk 8 หลายเดือนก่อน

    1h of pure gold

  • @lexer_
    @lexer_ ปีที่แล้ว

    The talk is as great as it is depressing. ABI is hard but now I at least understand a little bit better the how and the why.

  • @praveen544com
    @praveen544com 3 ปีที่แล้ว +3

    Really nice session. Do you have any data on Itanium C++ ABI conventions, it has few limitations though. For C++ ABI, it is still open for ABI Stability right?