Field | Value |
---|---|
DIP: | (number/id -- assigned by DIP Manager) |
Author: | Richard (Rikki) Andrew Cattermole [email protected] |
Implementation: | (links to implementation PR if any) |
Status: | Draft |
The file format of the Source Archive Format file is very similar to that of object file libraries and various other schemes. It does not adhere to those other schemes due to their variances from platform to platform, all the code needed to support things that are unneeded for Source Archive Format files, and special consideration for D's needs. The format is meant to be friendly for memory-mapped file access, and does not have alignment issues.
The file extension is sar
.
The file is broken up into sequential blocks, the start of each block will be padded to alignment of 16 bytes to enable aligned SIMD access to that block's contents.
In an attempt to work around other bugs or to improve behavior, it may come across as a wonderful idea to have variables be uninitialized, and to initialize them in separate stages.
The following code originates from a shared library by the author, in an attempt to work around a bug where the default initialization symbols was not crossing the shared library threshold.
/** | |
* Defines declarations of various attributes. | |
* | |
* The term 'attribute' refers to things that can apply to a larger scope than a single declaration. | |
* Among them are: | |
* - Alignment (`align(8)`) | |
* - User defined attributes (`@UDA`) | |
* - Function Attributes (`@safe`) | |
* - Storage classes (`static`, `__gshared`) | |
* - Mixin declarations (`mixin("int x;")`) |
/** | |
* Defines declarations of various attributes. | |
* | |
* The term 'attribute' refers to things that can apply to a larger scope than a single declaration. | |
* Among them are: | |
* - Alignment (`align(8)`) | |
* - User defined attributes (`@UDA`) | |
* - Function Attributes (`@safe`) | |
* - Storage classes (`static`, `__gshared`) | |
* - Mixin declarations (`mixin("int x;")`) |
Memory graph isolation, is a form of a immutable references within a programs graph of memory to create subgraphs which do not reference others.
In this proposal a focus is upon the analysis on the graph in creating and maintaining isolate sub graphs. It takes advantage of DIP1000 for escape analysis of reference into and out of sub graph manipulation functions.
Depends upon: member of operator
Sum types are a union of types, as well as a union of names. Some names will be applied to a type, others may not be.
It acts as a tagged union, using a tag to determine which type or name is currently active.
The matching capabilities are not specified here.
PR: dlang/dmd#16161
The member of operator, is an operator that operates on a contextual type with respect to a given statement, declaration or expression.
It may appear as the first term in an expression, then it may be followed with binary and dot expressions.
The syntax of the operator is ':' Identifier
.