Difference between revisions of "DIP70"
(→DIP70: @api/extern(noinfer) attribute) |
|||
(8 intermediate revisions by one other user not shown) | |||
Line 22: | Line 22: | ||
|Links: | |Links: | ||
| | | | ||
− | *[http://forum.dlang.org/post/ | + | * [http://forum.dlang.org/post/vlzwhhymkjgckgyoxlrq@forum.dlang.org Main article] |
Related: | Related: | ||
* [http://wiki.dlang.org/DIP45 DIP45] | * [http://wiki.dlang.org/DIP45 DIP45] | ||
− | * | + | * [http://forum.dlang.org/post/otejdbgnhmyvbyaxatsk@forum.dlang.org Dicebot's forthcoming DIP] |
|} | |} | ||
== In a Nutshell == | == In a Nutshell == | ||
− | This proposal requires that covariant attribute inference for all functions already exist. When and if that happens, introduce an attribute (suggested names: '''@api''', '''extern(noinfer)''') which tells the compiler to mangle the name and generate the .di interface with only the function's explicit attributes and not its inferred ones. This is to stabilize the linking API, and may also be useful in enforcing discipline. See | + | This proposal requires that covariant attribute inference for all functions already exist. When and if that happens, introduce an attribute (suggested names: '''@api''', '''extern(noinfer)''') which tells the compiler to mangle the name and generate the .di interface with only the function's explicit attributes and not its inferred ones. This is to stabilize the linking API, and may also be useful in enforcing discipline. See the [http://forum.dlang.org/post/vlzwhhymkjgckgyoxlrq@forum.dlang.org full article]. |
− | Note: This DIP was created more-or-less as a stub, to gather relevant links and to preserve the idea for future reference. This DIP may be made irrelevant by a more comprehensive system which statically *guarantees* a connection between a .di interface file and its corresponding binary object, as | + | Note: This DIP was created more-or-less as a stub, to gather relevant links and to preserve the idea for future reference. This DIP may be made irrelevant by a more comprehensive system which statically *guarantees* a connection between a .di interface file and its corresponding binary object, as suggested by Dicebot(DIP forthcoming, see above link). |
− | Also relevant is [http://wiki.dlang.org/DIP45 DIP45], which addresses a different linking concern and served to inspire Dicebot's forthcoming proposal. | + | Also relevant is [http://wiki.dlang.org/DIP45 DIP45], which addresses a different linking concern and served to inspire [http://forum.dlang.org/post/otejdbgnhmyvbyaxatsk@forum.dlang.org Dicebot's forthcoming proposal]. |
+ | |||
+ | [[Category: DIP]] |
Latest revision as of 19:52, 1 September 2015
DIP70: @api/extern(noinfer) attribute
Title: | extern(noinfer) |
---|---|
DIP: | 70 |
Version: | 1 |
Created: | 2015-01-17 |
Last Modified: | 2015-09-1 |
Author: | Zach Tollen |
Links: |
Related: |
In a Nutshell
This proposal requires that covariant attribute inference for all functions already exist. When and if that happens, introduce an attribute (suggested names: @api, extern(noinfer)) which tells the compiler to mangle the name and generate the .di interface with only the function's explicit attributes and not its inferred ones. This is to stabilize the linking API, and may also be useful in enforcing discipline. See the full article.
Note: This DIP was created more-or-less as a stub, to gather relevant links and to preserve the idea for future reference. This DIP may be made irrelevant by a more comprehensive system which statically *guarantees* a connection between a .di interface file and its corresponding binary object, as suggested by Dicebot(DIP forthcoming, see above link).
Also relevant is DIP45, which addresses a different linking concern and served to inspire Dicebot's forthcoming proposal.