Dynamic Libraries

[This page is being used to collaborate on a paper. You are welcome to read and comment on it, but consider it a work in progress, not a final product.]

Title: Dynamic Library Support for C++

Authors: Sean Parent, Mat Marcus

Contents

  1. Abstract
  2. Introduction
  3. Body
    1. Basic Use Cases
      1. Separate Compilation (Revision Locked)
      2. Upgradable Component (Not Revision Locked)
      3. Plug-In Component
    2. Dynamic Library Issues
      1. Standard ABI
      2. Name Mangling
      3. RTTI
      4. Exception Handling
      5. Replacement Operators
      6. Symbol Visibility
      7. Static Initialization
      8. Object Lifetime
      9. Code Lifetime
      10. Inline Functions and Template Instantiations
      11. Exported Templates
      12. Library Versioning
        1. Multiple Versions in Same Application
      13. Standard Library Symbols and Versioning
      14. Issues with New Language Features?
  4. Proposal
  5. Related Work
  6. Acknowledgments

Abstract

Introduction

Body

Basic Use Cases

Separate Compilation (Revision Locked)

Upgradable Component (Not Revision Locked)

Plug-In Component

Dynamic Library Issues

Standard ABI

Name Mangling

RTTI

Exception Handling

Replacement Operators

Symbol Visibility

Static Initialization

Object Lifetime

Code Lifetime

Inline Functions and Template Instantiations

Exported Templates

Library Versioning

Multiple Versions in Same Application

Standard Library Symbols and Versioning

Issues with New Language Features?

Proposal

[1] N1400 Toward standardization of dynamic libraries, Matt Austern

[2] N1418 Dynamic Libraries in C++ Notes from the Technical Session in Santa Cruz, Oct. 21, 2002, Pete Becker

[3] N1496 Draft Proposal for Dynamic Libraries in C++ (Revision 1), Pete Becker

[4] N1976 Dynamic Shared Objects: Survey and Issues, Benjamin Kosnik

[5] N2013 Versioning with Namespaces, Benjamin Kosnik

[6] N2117 Minimal Dynamic Library Support, Lawrence Crowl

[7] N2073 Modules in C++ (Revision 4), Daveed Vandevoorde

[8] N2074 Plugins in C++, Daveed Vandevoorde

Acknowledgments

blog comments powered by Disqus