File tree 9 files changed +19
-19
lines changed
_08-miscellaneous-extensions
9 files changed +19
-19
lines changed Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ title: Intro
6
6
7
7
The "unboxed types" extension provides users with additional control over the
8
8
way their data is represented in memory and registers. These new types have
9
- different * layouts* , which is part of their [ kind] ( ../kinds/intro ) , to
9
+ different * layouts* , which is part of their [ kind] ( ../../ kinds/intro ) , to
10
10
distinguish them from normal OCaml types.
11
11
12
12
This page gives a comprehensive overview of the extension. Unboxed types are
@@ -109,7 +109,7 @@ let f5 x = (x : (_ : immediate))
109
109
let f6: type (a: bits32). a -> a = fun x -> x
110
110
```
111
111
112
- The full syntax can be found in the [ documentation for kinds] ( ../kinds/syntax ) .
112
+ The full syntax can be found in the [ documentation for kinds] ( ../../ kinds/syntax ) .
113
113
The complete annotation design is not yet implemented and the syntax should be
114
114
read with ` kind ::= layout-name ` for now. It also provides reasoning around some
115
115
design decisions and contains additional examples.
Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ title: Intro
8
8
9
9
OCaml 5 introduced multicore, which allows parallel execution in a single process.
10
10
Based on that, the OCaml Language team developed a collection of compiler features and libraries:
11
- - Extending the [ mode system] ( ../modes/intro ) to track values' concurrent
11
+ - Extending the [ mode system] ( ../../ modes/intro ) to track values' concurrent
12
12
usages, so they can be used concurrently safely.
13
13
- Higher-level parallelism primitives to allow users to fully expose
14
14
opportunities of parallelism in their programs, without worrying low-level
Original file line number Diff line number Diff line change 11
11
12
12
The mode system in the compiler tracks various properties of values, so that certain
13
13
performance-enhancing operations can be performed safely. For example:
14
- - Locality tracks escaping. See [ the local allocations reference] ( ../stack/reference )
15
- - Uniqueness and linearity tracks aliasing. See [ the uniqueness reference] ( ../uniqueness/reference )
14
+ - Locality tracks escaping. See [ the local allocations reference] ( ../../ stack/reference )
15
+ - Uniqueness and linearity tracks aliasing. See [ the uniqueness reference] ( ../../ uniqueness/reference )
16
16
- Portability and contention tracks inter-thread sharing.
17
17
<!-- CR zqian: reference for portability and contention -->
18
18
Original file line number Diff line number Diff line change @@ -37,8 +37,8 @@ less precise kind is expected.
37
37
This page describes the kind system at a high level, and contains complete
38
38
details for the non-modal bounds. It does not exhaustively describe the possible
39
39
layouts (which are documented on the [ unboxed types
40
- page] ( ../unboxed-types/index ) ) or the modal axes (which are documented on the
41
- [ modes page] ( ../modes/intro ) ), but does explain how those components appear in
40
+ page] ( ../../ unboxed-types/index ) ) or the modal axes (which are documented on the
41
+ [ modes page] ( ../../ modes/intro ) ), but does explain how those components appear in
42
42
kinds, including how the modal bounds are affected by the with-bounds.
43
43
44
44
CR ccasinghino: add links to modes documentation after moving it here.
Original file line number Diff line number Diff line change @@ -6,11 +6,11 @@ title: Syntax
6
6
7
7
# Syntax for kind annotations
8
8
9
- [ overview ] : intro
10
- [ manual ] : https://ocaml.org/manual/latest/ language.html
11
- [ unboxed types ] : ../unboxed-types/intro
12
- [ nullability ] : non-modal#nullability
13
- [ externality ] : non-modal#externality
9
+ [ overview ] : ../ intro
10
+ [ manual ] : https://ocaml.org/manual/language.html
11
+ [ unboxed types ] : ../../ unboxed-types/intro
12
+ [ nullability ] : ../ non-modal#nullability
13
+ [ externality ] : ../ non-modal#externality
14
14
15
15
This page describes user-facing concerns about kind annotations. You may
16
16
want to read an [ overview] [ ] of the kind system first.
@@ -461,8 +461,8 @@ field_type ::= typexpr [ @@ modalities ]
461
461
```
462
462
463
463
Please see other OxCaml documentation for details on the syntax for
464
- [ ` modality ` ] ( ../modes/syntax ) ;
465
- [ typexpr] ( https://ocaml.org/manual/latest/ types.html ) is defined in the OCaml
464
+ [ ` modality ` ] ( ../../ modes/syntax ) ;
465
+ [ typexpr] ( https://ocaml.org/manual/types.html ) is defined in the OCaml
466
466
manual.
467
467
468
468
Kind annotations are allowed at several places in the syntax.
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ title: Kinds of types
6
6
7
7
# Kinds of types
8
8
9
- [ overview ] : intro
9
+ [ overview ] : ../ intro
10
10
11
11
This page describes how we compute the kind of both built-in types and
12
12
user-defined types. You may want to read the [ overview] [ ] of the kind
Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ title: Intro
8
8
9
9
See also the full feature [ reference] ( ../reference ) and [ common
10
10
pitfalls] ( ../pitfalls ) . In this document, we use the new [ syntax for
11
- modes] ( ../modes/syntax ) .
11
+ modes] ( ../../ modes/syntax ) .
12
12
13
13
The ` unique ` mode designates values that have only a single reference pointing
14
14
to them. If an operation takes a ` unique ` argument, it will consume the only
@@ -42,7 +42,7 @@ let delay_free : t @ unique -> (unit -> unit) @ once = fun t -> fun () -> free t
42
42
43
43
These modes form two mode axes: the _ uniqueness_ of a value is either ` unique `
44
44
or ` aliased ` , while the _ affinity_ of a value is ` once ` or ` many ` . Similar to
45
- [ locality] ( ../stack/intro ) , uniqueness and affinity are deep properties. If a
45
+ [ locality] ( ../../ stack/intro ) , uniqueness and affinity are deep properties. If a
46
46
value is at mode ` unique ` then all of its children are also ` unique ` . If a value
47
47
is ` once ` then all of the closures it contains are also at mode ` once ` .
48
48
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ comprehensions](../intro).
13
13
## Syntax
14
14
15
15
The BNF for comprehensions, in a form suitable for being added to the [ grammar of
16
- OCaml] ( https://v2. ocaml.org/manual/expr.html ) , is
16
+ OCaml] ( https://ocaml.org/manual/expr.html ) , is
17
17
18
18
```
19
19
expr +::=
Original file line number Diff line number Diff line change @@ -36,7 +36,7 @@ float64x2#
36
36
The types ending with ` # ` are unboxed: they are passed between functions in XMM
37
37
registers, stored in structures as flat data, and may be stored in flat arrays.
38
38
The operations provided by ` Ocaml_simd_sse ` operate on unboxed vectors. For
39
- more detail on unboxed types, see the [ docs] ( ../unboxed-types/intro ) .
39
+ more detail on unboxed types, see the [ docs] ( ../../ unboxed-types/intro ) .
40
40
41
41
The types without ` # ` are boxed: when passed to a non-inlined function, they
42
42
will be copied to a heap allocated (abstract) block. Boxed vectors are not
You can’t perform that action at this time.
0 commit comments