Field | Value |
---|---|
DIP: | (number/id -- assigned by DIP Manager) |
Author: | Richard (Rikki) Andrew Cattermole firstname@lastname.co.nz |
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.
Field | Value |
---|---|
DIP: | |
Author: | Richard (Rikki) Andrew Cattermole (firstname@lastname.co.nz) |
Implementation: | |
Status: | Draft |
Analysing the type state that an expression is in, enables providing guarantees to the callee about the object to prevent errornous logic using static analysis.
To enable this we introduce a change to identifiers in the context of variable declarations to allow the use of medial character as part of it. This is a UAX31 compliant change in profile, although its usage is novel.
As part of this is a framework being developed to enable new memory analysis techniques to be described and applied to guarantee temporal safety within @safe
code.
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.
/** | |
* 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;")`) |
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
.