Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Forums
  - IRC
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

# rt.minfo

Written in the D programming language. Module initialization routines.
License:
Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)
Authors:
Walter Bright, Sean Kelly

Source src/rt/minfo.d

struct `ModuleGroup`;
  A `ModuleGroup` is an unordered collection of modules. There is exactly one for: 1. all statically linked in D modules, either directely or as shared libraries 2. each call to rt_loadLibrary()
  void `sortCtors`(string `cycleHandling`);
  void `sortCtors`();
    Allocate and fill in ctors[] and tlsctors[]. Modules are inserted into the arrays in the order in which the constructors need to be run.
    Parameters:

    Throws:
    Exception if it fails.
  bool `sortCtorsOld`(int[][] `edges`);
    This is the old ctor sorting algorithm that does not find all cycles.
    It is here to allow the deprecated behavior from the original algorithm until people have fixed their code.
    If no cycles are found, the ctors and tlsctors are replaced with the ones generated by this algorithm to preserve the old incorrect ordering behavior.
    Parameters:

    int[][] `edges` | The module `edges` as found in the importedModules member of each ModuleInfo. Generated in sortCtors.

    Returns:
    `true` if no cycle is found, `false` if one was.
int `moduleinfos_apply`(scope int delegate(immutable(ModuleInfo*)) `dg`);
  Iterate over all module infos.
void `rt_moduleCtor`();
  Module constructor and destructor routines.
void `rt_moduleTlsCtor`();
  Module constructor and destructor routines.
void `rt_moduleTlsDtor`();
  Module constructor and destructor routines.
void `rt_moduleDtor`();
  Module constructor and destructor routines.
void `runModuleFuncs`(alias getfp)(const(immutable(ModuleInfo)*)[] `modules`);

Copyright © 1999-2018 by the D Language Foundation | Page generated by Ddoc on Sat Apr 14 16:39:17 2018