Skip to content

Fix links #4011

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions jane/doc/extensions/_02-unboxed-types/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ title: Intro

The "unboxed types" extension provides users with additional control over the
way their data is represented in memory and registers. These new types have
different *layouts*, which is part of their [kind](../kinds/intro), to
different *layouts*, which is part of their [kind](../../kinds/intro), to
distinguish them from normal OCaml types.

This page gives a comprehensive overview of the extension. Unboxed types are
Expand Down Expand Up @@ -109,7 +109,7 @@ let f5 x = (x : (_ : immediate))
let f6: type (a: bits32). a -> a = fun x -> x
```

The full syntax can be found in the [documentation for kinds](../kinds/syntax).
The full syntax can be found in the [documentation for kinds](../../kinds/syntax).
The complete annotation design is not yet implemented and the syntax should be
read with `kind ::= layout-name` for now. It also provides reasoning around some
design decisions and contains additional examples.
Expand Down
2 changes: 1 addition & 1 deletion jane/doc/extensions/_03-parallelism/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ title: Intro

OCaml 5 introduced multicore, which allows parallel execution in a single process.
Based on that, the OCaml Language team developed a collection of compiler features and libraries:
- Extending the [mode system](../modes/intro) to track values' concurrent
- Extending the [mode system](../../modes/intro) to track values' concurrent
usages, so they can be used concurrently safely.
- Higher-level parallelism primitives to allow users to fully expose
opportunities of parallelism in their programs, without worrying low-level
Expand Down
4 changes: 2 additions & 2 deletions jane/doc/extensions/_04-modes/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ OCaml.

The mode system in the compiler tracks various properties of values, so that certain
performance-enhancing operations can be performed safely. For example:
- Locality tracks escaping. See [the local allocations reference](../stack/reference)
- Uniqueness and linearity tracks aliasing. See [the uniqueness reference](../uniqueness/reference)
- Locality tracks escaping. See [the local allocations reference](../../stack/reference)
- Uniqueness and linearity tracks aliasing. See [the uniqueness reference](../../uniqueness/reference)
- Portability and contention tracks inter-thread sharing.
<!-- CR zqian: reference for portability and contention -->

Expand Down
4 changes: 2 additions & 2 deletions jane/doc/extensions/_05-kinds/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ less precise kind is expected.
This page describes the kind system at a high level, and contains complete
details for the non-modal bounds. It does not exhaustively describe the possible
layouts (which are documented on the [unboxed types
page](../unboxed-types/index)) or the modal axes (which are documented on the
[modes page](../modes/intro)), but does explain how those components appear in
page](../../unboxed-types/index)) or the modal axes (which are documented on the
[modes page](../../modes/intro)), but does explain how those components appear in
kinds, including how the modal bounds are affected by the with-bounds.

CR ccasinghino: add links to modes documentation after moving it here.
Expand Down
14 changes: 7 additions & 7 deletions jane/doc/extensions/_05-kinds/syntax.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ title: Syntax

# Syntax for kind annotations

[overview]: intro
[manual]: https://ocaml.org/manual/latest/language.html
[unboxed types]: ../unboxed-types/intro
[nullability]: non-modal#nullability
[externality]: non-modal#externality
[overview]: ../intro
[manual]: https://ocaml.org/manual/language.html
[unboxed types]: ../../unboxed-types/intro
[nullability]: ../non-modal#nullability
[externality]: ../non-modal#externality

This page describes user-facing concerns about kind annotations. You may
want to read an [overview][] of the kind system first.
Expand Down Expand Up @@ -461,8 +461,8 @@ field_type ::= typexpr [ @@ modalities ]
```

Please see other OxCaml documentation for details on the syntax for
[`modality`](../modes/syntax);
[typexpr](https://ocaml.org/manual/latest/types.html) is defined in the OCaml
[`modality`](../../modes/syntax);
[typexpr](https://ocaml.org/manual/types.html) is defined in the OCaml
manual.

Kind annotations are allowed at several places in the syntax.
Expand Down
2 changes: 1 addition & 1 deletion jane/doc/extensions/_05-kinds/types.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ title: Kinds of types

# Kinds of types

[overview]: intro
[overview]: ../intro

This page describes how we compute the kind of both built-in types and
user-defined types. You may want to read the [overview][] of the kind
Expand Down
4 changes: 2 additions & 2 deletions jane/doc/extensions/_06-uniqueness/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ title: Intro

See also the full feature [reference](../reference) and [common
pitfalls](../pitfalls). In this document, we use the new [syntax for
modes](../modes/syntax).
modes](../../modes/syntax).

The `unique` mode designates values that have only a single reference pointing
to them. If an operation takes a `unique` argument, it will consume the only
Expand Down Expand Up @@ -42,7 +42,7 @@ let delay_free : t @ unique -> (unit -> unit) @ once = fun t -> fun () -> free t

These modes form two mode axes: the _uniqueness_ of a value is either `unique`
or `aliased`, while the _affinity_ of a value is `once` or `many`. Similar to
[locality](../stack/intro), uniqueness and affinity are deep properties. If a
[locality](../../stack/intro), uniqueness and affinity are deep properties. If a
value is at mode `unique` then all of its children are also `unique`. If a value
is `once` then all of the closures it contains are also at mode `once`.

Expand Down
2 changes: 1 addition & 1 deletion jane/doc/extensions/_07-comprehensions/02-details.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ comprehensions](../intro).
## Syntax

The BNF for comprehensions, in a form suitable for being added to the [grammar of
OCaml](https://v2.ocaml.org/manual/expr.html), is
OCaml](https://ocaml.org/manual/expr.html), is

```
expr +::=
Expand Down
2 changes: 1 addition & 1 deletion jane/doc/extensions/_08-miscellaneous-extensions/simd.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ float64x2#
The types ending with `#` are unboxed: they are passed between functions in XMM
registers, stored in structures as flat data, and may be stored in flat arrays.
The operations provided by `Ocaml_simd_sse` operate on unboxed vectors. For
more detail on unboxed types, see the [docs](../unboxed-types/intro).
more detail on unboxed types, see the [docs](../../unboxed-types/intro).

The types without `#` are boxed: when passed to a non-inlined function, they
will be copied to a heap allocated (abstract) block. Boxed vectors are not
Expand Down
Loading