Describe NogcD subset
This commit is contained in:
parent
80a177179d
commit
ecd74cbf1e
40
README.md
40
README.md
@ -49,7 +49,10 @@ After finishing the new socket implementation will land in the `net` package and
|
|||||||
ones.
|
ones.
|
||||||
|
|
||||||
|
|
||||||
## Basic usage
|
## NogcD
|
||||||
|
|
||||||
|
To achieve programming without the Garbage Collection tanya uses a subset of D:
|
||||||
|
NogcD.
|
||||||
|
|
||||||
### Allocators
|
### Allocators
|
||||||
|
|
||||||
@ -113,7 +116,7 @@ catch (Exception e)
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Containers
|
### Built-in array operations and containers
|
||||||
|
|
||||||
Arrays are commonly used in programming. D's built-in arrays often rely on the
|
Arrays are commonly used in programming. D's built-in arrays often rely on the
|
||||||
GC. It is inconvenient to change their size, reserve memory for future use and
|
GC. It is inconvenient to change their size, reserve memory for future use and
|
||||||
@ -143,6 +146,25 @@ int i = arr[7]; // Access 8th element.
|
|||||||
There are more containers in the `tanya.container` package.
|
There are more containers in the `tanya.container` package.
|
||||||
|
|
||||||
|
|
||||||
|
### Immutability
|
||||||
|
|
||||||
|
Immutability doesn't play nice with manual memory management since the
|
||||||
|
allocated storage should be initialized (mutated) and then released (mutated).
|
||||||
|
`immutable` is used only for non-local immutable declarations (that are
|
||||||
|
evaluated at compile time), static immutable data, strings (`immutable(char)[]`,
|
||||||
|
`immutable(wchar)[]` and `immutable(dchar)[]`).
|
||||||
|
|
||||||
|
|
||||||
|
### Unsupported features
|
||||||
|
|
||||||
|
The following features depend on GC and aren't supported:
|
||||||
|
|
||||||
|
- `lazy` parameters (allocate a closure which is evaluated when then the
|
||||||
|
parameter is used)
|
||||||
|
|
||||||
|
- `synchronized` blocks
|
||||||
|
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
### Supported compilers
|
### Supported compilers
|
||||||
@ -168,12 +190,18 @@ Deprecated features are removed after one release that includes these deprecatio
|
|||||||
|
|
||||||
## Further characteristics
|
## Further characteristics
|
||||||
|
|
||||||
* Tanya is a native D library
|
- Tanya is a native D library
|
||||||
|
|
||||||
* Tanya is cross-platform. The development happens on a 64-bit Linux, but it
|
- Tanya is cross-platform. The development happens on a 64-bit Linux, but it
|
||||||
is being tested on Windows and FreeBSD as well.
|
is being tested on Windows and FreeBSD as well
|
||||||
|
|
||||||
* The library isn't thread-safe yet.
|
- Tanya favours generic algorithms therefore there is no auto-decoding. Char
|
||||||
|
arrays are handled as any other array type
|
||||||
|
|
||||||
|
- The library isn't thread-safe yet
|
||||||
|
|
||||||
|
- Complex numbers (`cfloat`, `cdouble`, `creal`, `ifloat`, `idouble`, `ireal`)
|
||||||
|
aren't supported
|
||||||
|
|
||||||
|
|
||||||
## Feedback
|
## Feedback
|
||||||
|
Loading…
Reference in New Issue
Block a user