Difference between revisions of "DIP45"
Luismarques (talk | contribs) m (fix typo ("exoport")) |
|||
Line 1: | Line 1: | ||
{| class="wikitable" | {| class="wikitable" | ||
!Title: | !Title: | ||
− | !'''export | + | !'''making export an attribute''' |
|- | |- | ||
|DIP: | |DIP: | ||
Line 16: | Line 16: | ||
|- | |- | ||
|Last Modified: | |Last Modified: | ||
− | |2013-08- | + | |2013-08-30 |
|- | |- | ||
|Author: | |Author: | ||
Line 23: | Line 23: | ||
|Links: | |Links: | ||
|http://forum.dlang.org/post/5112D61B.5010905@digitalmars.com | |http://forum.dlang.org/post/5112D61B.5010905@digitalmars.com | ||
+ | http://forum.dlang.org/post/kvhu2c$2ikq$1@digitalmars.com | ||
http://d.puremagic.com/issues/show_bug.cgi?id=9816 | http://d.puremagic.com/issues/show_bug.cgi?id=9816 | ||
|} | |} | ||
Line 28: | Line 29: | ||
==Abstract== | ==Abstract== | ||
− | + | Export and its behavior needs to be changed in serveral ways to make it work on Windows and allow better code generation for other plattforms. The Rationale section explains the problem and shows how this DIP solves it. | |
==Description== | ==Description== | ||
− | The 'export' protection level should be | + | * The 'export' protection level should be turned into a 'export' attribute. |
− | + | * If a module contains a single symbol annotated with the 'export' attribute all compiler internal symbols of this module should recieve the 'export' attribute too (e.g. module info). | |
− | + | * If a class is annotated with the 'export' attribute, all of its public and protected functions and members will automatically recieve the 'export' attribute. Also all its hidden compiler specific symbols will recieve the 'export' attribute. | |
− | + | * It should be possible to access TLS variables which are stored in a DLL / shared library. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Rationale== | ==Rationale== | ||
− | + | Work in progress | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ==Implementation Details== | |
− | + | Work in progress | |
== Copyright == | == Copyright == |
Revision as of 15:48, 30 August 2013
Title: | making export an attribute |
---|---|
DIP: | 45 |
Version: | 1 |
Status: | Draft |
Created: | 2013-08-27 |
Last Modified: | 2013-08-30 |
Author: | Benjamin Thaut |
Links: | http://forum.dlang.org/post/5112D61B.5010905@digitalmars.com
http://forum.dlang.org/post/kvhu2c$2ikq$1@digitalmars.com http://d.puremagic.com/issues/show_bug.cgi?id=9816 |
Abstract
Export and its behavior needs to be changed in serveral ways to make it work on Windows and allow better code generation for other plattforms. The Rationale section explains the problem and shows how this DIP solves it.
Description
- The 'export' protection level should be turned into a 'export' attribute.
- If a module contains a single symbol annotated with the 'export' attribute all compiler internal symbols of this module should recieve the 'export' attribute too (e.g. module info).
- If a class is annotated with the 'export' attribute, all of its public and protected functions and members will automatically recieve the 'export' attribute. Also all its hidden compiler specific symbols will recieve the 'export' attribute.
- It should be possible to access TLS variables which are stored in a DLL / shared library.
Rationale
Work in progress
Implementation Details
Work in progress
Copyright
This document has been placed in the Public Domain.