File 0484-Fix-Markdown-docs-mostly-tables-some-garbled-some-ha.patch of Package erlang
From 9a17ffc31cde0b3a0f41df81313322fc5186b95c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?H=C3=A5kan=20Stenholm?=
<hokan.stenholm@erlang-solutions.com>
Date: Wed, 27 Aug 2025 16:07:28 +0200
Subject: [PATCH] Fix Markdown docs - mostly tables (some garbled some hard to
read)
* lib/eunit/doc/guides/chapter.md - fix garbled table
* lib/edoc/doc/guides/chapter.md - fix garbled tables
* lib/crypto/doc/guides/algorithm_details.md - fix hard to read table
* system/doc/efficiency_guide/profiling.md - fix hard to read table
* lib/ssl/doc/guides/standards_compliance.md - restore bolded subsections
* system/doc/reference_manual/expressions.md - add some links in table
* system/doc/reference_manual/typespec.md - add some links in table
* system/doc/design_principles/included_applications.md
- improve visuals of Mermaid diagram
* lib/megaco/doc/guides/megaco_architecture.md
- improve readability of Mermaid diagram
---
lib/crypto/doc/guides/algorithm_details.md | 30 +++--
lib/edoc/doc/guides/chapter.md | 73 +++++++----
lib/eunit/doc/guides/chapter.md | 15 ++-
lib/megaco/doc/guides/megaco_architecture.md | 29 ++++-
lib/ssl/doc/guides/standards_compliance.md | 122 +++++++++---------
.../included_applications.md | 64 +++++----
system/doc/efficiency_guide/profiling.md | 14 +-
system/doc/reference_manual/expressions.md | 4 +-
system/doc/reference_manual/typespec.md | 56 ++++----
9 files changed, 243 insertions(+), 164 deletions(-)
diff --git a/lib/crypto/doc/guides/algorithm_details.md b/lib/crypto/doc/guides/algorithm_details.md
index eb924b2942..7b5ed33c55 100644
--- a/lib/crypto/doc/guides/algorithm_details.md
+++ b/lib/crypto/doc/guides/algorithm_details.md
@@ -236,19 +236,29 @@ atom `rsa` is present in the list returned by
> The exact set of options and there syntax _may_ be changed without prior
> notice.
-| **Option** | **sign/verify** | **public encrypt** **private decrypt** | **private encrypt** **public decrypt** |
-| --------------------------------------------------------------------------------------------------------------------- | ----------------- | -------------------------------------- | -------------------------------------- |
-| \{rsa_padding,rsa_x931_padding\} | x | | x |
-| \{rsa_padding,rsa_pkcs1_padding\} | x | x | x |
-| \{rsa_padding,rsa_pkcs1_pss_padding\} \{rsa_pss_saltlen, -2..\} \{rsa_mgf1_md, atom()\} | x (2) x (2) x (2) | | |
-| \{rsa_padding,rsa_pkcs1_oaep_padding\} \{rsa_mgf1_md, atom()\} \{rsa_oaep_label, binary()\}\} \{rsa_oaep_md, atom()\} | | x (2) x (2) x (3) x (3) | |
-| \{rsa_padding,rsa_no_padding\} | x (1) | | |
+| Option | sign/verify | public encrypt | private encrypt |
+| -------------------------------------- | ----------- | ------------------- | ------------------- |
+| | | **private decrypt** | **public decrypt** |
+| \{rsa_padding,rsa_x931_padding\} | x | | x |
+| | | | |
+| \{rsa_padding,rsa_pkcs1_padding\} | x | x | x |
+| | | | |
+| \{rsa_padding,rsa_pkcs1_pss_padding\} | x (2) | | |
+| \{rsa_pss_saltlen, -2..\} | x (2) | | |
+| \{rsa_mgf1_md, atom()\} | x (2) | | |
+| | | | |
+| \{rsa_padding,rsa_pkcs1_oaep_padding\} | | x (2) | |
+| \{rsa_mgf1_md, atom()\} | | x (2) | |
+| \{rsa_oaep_label, binary()\}\} | | x (3) | |
+| \{rsa_oaep_md, atom()\} | | x (3) | |
+| | | | |
+| \{rsa_padding,rsa_no_padding\} | x (1) | | |
Notes:
-1. (1) OpenSSL ≤ 1.0.0
-1. (2) OpenSSL ≥ 1.0.1
-1. (3) OpenSSL ≥ 1.1.0
+1. OpenSSL ≤ 1.0.0
+1. OpenSSL ≥ 1.0.1
+1. OpenSSL ≥ 1.1.0
### DSS
diff --git a/lib/edoc/doc/guides/chapter.md b/lib/edoc/doc/guides/chapter.md
index b5138e9cc5..b2caea097c 100644
--- a/lib/edoc/doc/guides/chapter.md
+++ b/lib/edoc/doc/guides/chapter.md
@@ -830,27 +830,51 @@ have higher precedence than union types; e.g.,
"`(atom()) -> atom() | integer()`" is parsed as
`((atom()) -> atom()) | integer()`, not as `(atom()) -> (atom() | integer())`.
-| `Spec` | ::= | `FunType "where"? DefList? | FunctionName FunType "where"? DefList?` |
-| --------------- | --- | ------------------------------------ | ---------------------------------------------- | ------------------ | -------------------------------- | -------------------- | ------- | ------------------ | ---------- | ------------------- | ------------------------ | ------- | ----------------- | --------------------------- | ----------------- | ------- | ---------------------------- | ------------------------------------------- | ------------------------------------------------------------- |
-| `FunctionName` | ::= | `Atom` |
-| `FunType` | ::= | `"(" UnionTypes? ")" "->" UnionType` |
-| `UnionTypes` | ::= | `UnionType | UnionType "," UnionTypes` |
-| `UnionType` | ::= | `UnionList | Name "::" UnionList` |
-| `Name` | ::= | `Variable` |
-| `UnionList` | ::= | `Type | Type "+" UnionList | Type " | " UnionList` |
-| `Type` | ::= | `TypeVariable | Atom | Integer | Float | Integer ".." Integer | FunType | "fun(" FunType ")" | "fun(...)" | "{" UnionTypes? "}" | "#" Atom "{" Fields? "}" | "[" "]" | "[" UnionType "]" | "[" UnionType "," "..." "]" | "(" UnionType ")" | BinType | TypeName "(" UnionTypes? ")" | ModuleName ":" TypeName "(" UnionTypes? ")" | "//" AppName "/" ModuleName ":" TypeName "(" UnionTypes? ")"` |
-| `Fields` | ::= | `Field | Fields "," Fields` |
-| `Field` | ::= | `Atom "=" UnionList` |
-| `BinType` | ::= | `"<<>>" | "<<" BaseType ">>" | "<<" UnitType ">>" | "<<" BaseType "," UnitType ">>"` |
-| `BaseType` | ::= | `"_" ":" Integer` |
-| `UnitType` | ::= | `"_" ":" "_" "*" Integer` |
-| `TypeVariable` | ::= | `Variable` |
-| `TypeName` | ::= | `Atom` |
-| `ModuleName` | ::= | `Atom | ModuleName "." Atom` |
-| `AppName` | ::= | `Atom` |
-| `DefList` | ::= | `Def | DefList Def | DefList "," Def` |
-| `Def` | ::= | `TypeVariable "=" UnionList | TypeName "(" TypeVariables? ")" "=" UnionType` |
-| `TypeVariables` | ::= | `TypeVariable | TypeVariable "," TypeVariables` |
+| | | |
+| --------------- | --- | ----------------------------------------------------------------------- |
+| `Spec` | ::= | `FunType "where"? DefList?` \| |
+| | | `FunctionName FunType "where"? DefList?` |
+| `FunctionName` | ::= | `Atom` |
+| `FunType` | ::= | `"(" UnionTypes? ")" "->" UnionType` |
+| `UnionTypes` | ::= | `UnionType` \| `UnionType "," UnionTypes` |
+| `UnionType` | ::= | `UnionList` \| `Name "::" UnionList` |
+| `Name` | ::= | `Variable` |
+| `UnionList` | ::= | `Type` \| `Type "+" UnionList` \| `Type "\|" UnionList` |
+| `Type` | ::= | `TypeVariable` \| |
+| | | `Atom` \| |
+| | | `Integer` \| |
+| | | `Float` \| |
+| | | `Integer ".." Integer` \| |
+| | | `FunType` \| |
+| | | `"fun(" FunType ")"` \| |
+| | | `"fun(...)"` \| |
+| | | `"{" UnionTypes? "}"` \| |
+| | | `"#" Atom "{" Fields? "}"` \| |
+| | | `"[" "]"` \| |
+| | | `"[" UnionType "]"` \| |
+| | | `"[" UnionType "," "..." "]"` \| |
+| | | `"(" UnionType ")"` \| |
+| | | `BinType` \| |
+| | | `TypeName "(" UnionTypes? ")"` \| |
+| | | `ModuleName ":" TypeName "(" UnionTypes? ")"` \| |
+| | | `"//" AppName "/" ModuleName ":" TypeName "(" UnionTypes? ")"` |
+| `Fields` | ::= | `Field` \| `Fields "," Fields` |
+| `Field` | ::= | `Atom "=" UnionList` |
+| `BinType` | ::= | `"<<>>"` \| |
+| | | `"<<" BaseType ">>"` \| |
+| | | `"<<" UnitType ">>"` \| |
+| | | `"<<" BaseType "," UnitType ">>"` |
+| `BaseType` | ::= | `"_" ":" Integer` |
+| `UnitType` | ::= | `"_" ":" "_" "*" Integer` |
+| `TypeVariable` | ::= | `Variable` |
+| `TypeName` | ::= | `Atom` |
+| `ModuleName` | ::= | `Atom` \| `ModuleName "." Atom` |
+| `AppName` | ::= | `Atom` |
+| `DefList` | ::= | `Def` \| `DefList Def` \| `DefList "," Def` |
+| `Def` | ::= | `TypeVariable "=" UnionList` \| |
+| | | `TypeName "(" TypeVariables? ")" "=" UnionType` |
+| `TypeVariables` | ::= | `TypeVariable` \| |
+| | | `TypeVariable "," TypeVariables` |
_Table: specification syntax grammar_
@@ -944,8 +968,11 @@ used unless there is a type alias with the same name.
The following grammar (see above for auxiliary definitions) describes the form
of the definitions that may follow a `@type` tag:
-| `Typedef` | ::= | `TypeName "(" TypeVariables? ")" DefList? | TypeName "(" TypeVariables? ")" "=" UnionList DefList?` |
-| --------- | --- | ----------------------------------------- | ------------------------------------------------------- |
+| | | |
+| --------- | --- | -------------------------------------------------------- |
+| `Typedef` | ::= | `TypeName "(" TypeVariables? ")" DefList?` \| |
+| | | `TypeName "(" TypeVariables? ")" "=" UnionList DefList?` |
+
_Table: type definition grammar_
diff --git a/lib/eunit/doc/guides/chapter.md b/lib/eunit/doc/guides/chapter.md
index 3315b6dfd8..59cf714667 100644
--- a/lib/eunit/doc/guides/chapter.md
+++ b/lib/eunit/doc/guides/chapter.md
@@ -985,13 +985,14 @@ regardless of the outcome (success, failures, timeouts, etc.).
To make the descriptions simpler, we first list some definitions:
-| `Setup` | `() -> (R::any())` |
-| -------------- | ------------------------------- | ---------------------------------------------- | ---------------------- |
-| `SetupX` | `(X::any()) -> (R::any())` |
-| `Cleanup` | `(R::any()) -> any()` |
-| `CleanupX` | `(X::any(), R::any()) -> any()` |
-| `Instantiator` | `((R::any()) -> Tests) | {with, [AbstractTestFun::((any()) -> any())]}` |
-| `Where` | `local | spawn | {spawn, Node::atom()}` |
+| | |
+| -------------- | -------------------------------------------------------------------------- |
+| `Setup` | `() -> (R::any())` |
+| `SetupX` | `(X::any()) -> (R::any())` |
+| `Cleanup` | `(R::any()) -> any()` |
+| `CleanupX` | `(X::any(), R::any()) -> any()` |
+| `Instantiator` | `((R::any()) -> Tests)` \| `{with, [AbstractTestFun::((any()) -> any())]}` |
+| `Where` | `local` \| `spawn` \| `{spawn, Node::atom()}` |
(these are explained in more detail further below.)
diff --git a/lib/ssl/doc/guides/standards_compliance.md b/lib/ssl/doc/guides/standards_compliance.md
index c597145bcd..6315bce630 100644
--- a/lib/ssl/doc/guides/standards_compliance.md
+++ b/lib/ssl/doc/guides/standards_compliance.md
@@ -144,7 +144,7 @@ Applicable)
| | supported_groups extension | C | 22 |
| | signature_algorithms extension | C | 22 |
| | pre_shared_key extension | C | 22\.2 |
-| [4\.1.2. Client Hello](https://tools.ietf.org/html/rfc8446#section-4.1.2) | Client | PC | 22\.1 |
+| [4\.1.2. Client Hello](https://tools.ietf.org/html/rfc8446#section-4.1.2) | **Client** | PC | 22\.1 |
| | server_name (RFC6066) | C | 23\.2 |
| | max_fragment_length (RFC6066) | C | 23\.0 |
| | status_request (RFC6066) | C | 27\.0 |
@@ -167,7 +167,7 @@ Applicable)
| | oid_filters (RFC8446) | NC | |
| | post_handshake_auth (RFC8446) | NC | |
| | signature_algorithms_cert (RFC8446) | C | 22\.1 |
-| | Server | PC | 22 |
+| | **Server** | PC | 22 |
| | server_name (RFC6066) | C | 23\.2 |
| | max_fragment_length (RFC6066) | C | 23\.0 |
| | status_request (RFC6066) | NC | |
@@ -189,27 +189,27 @@ Applicable)
| | oid_filters (RFC8446) | NC | |
| | post_handshake_auth (RFC8446) | NC | |
| | signature_algorithms_cert (RFC8446) | C | 22 |
-| [4\.1.3. Server Hello](https://tools.ietf.org/html/rfc8446#section-4.1.3) | Client | C | 22\.2 |
+| [4\.1.3. Server Hello](https://tools.ietf.org/html/rfc8446#section-4.1.3) | **Client** | C | 22\.2 |
| | Version downgrade protection | C | 22\.1 |
| | key_share (RFC8446) | C | 22\.1 |
| | pre_shared_key (RFC8446) | C | 22\.2 |
| | supported_versions (RFC8446) | C | 22\.1 |
| | use_srtp (RFC5764) | C | 26\.0 |
-| | Server | C | 22\.2 |
+| | **Server** | C | 22\.2 |
| | Version downgrade protection | C | 22 |
| | key_share (RFC8446) | C | 22 |
| | pre_shared_key (RFC8446) | C | 22\.2 |
| | supported_versions (RFC8446) | C | 22 |
| | use_srtp (RFC5764) | C | 26\.0 |
-| [4\.1.4. Hello Retry Request](https://tools.ietf.org/html/rfc8446#section-4.1.4) | Server | C | 22 |
+| [4\.1.4. Hello Retry Request](https://tools.ietf.org/html/rfc8446#section-4.1.4) | **Server** | C | 22 |
| | key_share (RFC8446) | C | 22 |
| | cookie (RFC8446) | C | 23\.1 |
| | supported_versions (RFC8446) | C | 22 |
-| [4\.2.1. Supported Versions](https://tools.ietf.org/html/rfc8446#section-4.2.1) | Client | C | 22\.1 |
-| | Server | C | 22 |
-| [4\.2.2. Cookie](https://tools.ietf.org/html/rfc8446#section-4.2.2) | Client | C | 23\.1 |
-| | Server | C | 23\.1 |
-| [4\.2.3. Signature Algorithms](https://tools.ietf.org/html/rfc8446#section-4.2.3) | Client | C | 24 |
+| [4\.2.1. Supported Versions](https://tools.ietf.org/html/rfc8446#section-4.2.1) | **Client** | C | 22\.1 |
+| | **Server** | C | 22 |
+| [4\.2.2. Cookie](https://tools.ietf.org/html/rfc8446#section-4.2.2) | **Client** | C | 23\.1 |
+| | **Server** | C | 23\.1 |
+| [4\.2.3. Signature Algorithms](https://tools.ietf.org/html/rfc8446#section-4.2.3) | **Client** | C | 24 |
| | rsa_pkcs1_sha256 | C | 22\.1 |
| | rsa_pkcs1_sha384 | C | 22\.1 |
| | rsa_pkcs1_sha512 | C | 22\.1 |
@@ -226,7 +226,7 @@ Applicable)
| | rsa_pss_pss_sha512 | C | 23 |
| | rsa_pkcs1_sha1 | C | 22\.1 |
| | ecdsa_sha1 | C | 22\.1 |
-| | Server | C | 24 |
+| | **Server** | C | 24 |
| | rsa_pkcs1_sha256 | C | 22 |
| | rsa_pkcs1_sha384 | C | 22 |
| | rsa_pkcs1_sha512 | C | 22 |
@@ -243,13 +243,13 @@ Applicable)
| | rsa_pss_pss_sha512 | C | 23 |
| | rsa_pkcs1_sha1 | C | 22 |
| | ecdsa_sha1 | C | 22 |
-| [4\.2.4. Certificate Authorities](https://tools.ietf.org/html/rfc8446#section-4.2.4) | Client | C | 24\.3 |
-| | Server | C | 24\.3 |
-| [4\.2.5. OID Filters](https://tools.ietf.org/html/rfc8446#section-4.2.5) | Client | NC | |
-| | Server | NC | |
-| [4\.2.6. Post-Handshake Client Authentication](https://tools.ietf.org/html/rfc8446#section-4.2.6) | Client | NC | |
-| | Server | NC | |
-| [4\.2.7. Supported Groups](https://tools.ietf.org/html/rfc8446#section-4.2.7) | Client | C | 22\.1 |
+| [4\.2.4. Certificate Authorities](https://tools.ietf.org/html/rfc8446#section-4.2.4) | **Client** | C | 24\.3 |
+| | **Server** | C | 24\.3 |
+| [4\.2.5. OID Filters](https://tools.ietf.org/html/rfc8446#section-4.2.5) | **Client** | NC | |
+| | **Server** | NC | |
+| [4\.2.6. Post-Handshake Client Authentication](https://tools.ietf.org/html/rfc8446#section-4.2.6) | **Client** | NC | |
+| | **Server** | NC | |
+| [4\.2.7. Supported Groups](https://tools.ietf.org/html/rfc8446#section-4.2.7) | **Client** | C | 22\.1 |
| | secp256r1 | C | 22\.1 |
| | secp384r1 | C | 22\.1 |
| | secp521r1 | C | 22\.1 |
@@ -260,7 +260,7 @@ Applicable)
| | ffdhe4096 | C | 22\.1 |
| | ffdhe6144 | C | 22\.1 |
| | ffdhe8192 | C | 22\.1 |
-| | Server | C | 22 |
+| | **Server** | C | 22 |
| | secp256r1 | C | 22 |
| | secp384r1 | C | 22 |
| | secp521r1 | C | 22 |
@@ -271,21 +271,21 @@ Applicable)
| | ffdhe4096 | C | 22 |
| | ffdhe6144 | C | 22 |
| | ffdhe8192 | C | 22 |
-| [4\.2.8. Key Share](https://tools.ietf.org/html/rfc8446#section-4.2.8) | Client | C | 22\.1 |
-| | Server | C | 22 |
-| [4\.2.9. Pre-Shared Key Exchange Modes](https://tools.ietf.org/html/rfc8446#section-4.2.9) | Client | C | 22\.2 |
-| | Server | C | 22\.2 |
-| [4\.2.10. Early Data Indication](https://tools.ietf.org/html/rfc8446#section-4.2.10) | Client | C | 23\.3 |
-| | Server | C | 23\.3 |
-| [4\.2.11. Pre-Shared Key Extension](https://tools.ietf.org/html/rfc8446#section-4.2.11) | Client | C | 22\.2 |
-| | Server | C | 22\.2 |
-| [4\.2.11.1. Ticket Age](https://tools.ietf.org/html/rfc8446#section-4.2.11.1) | Client | C | 22\.2 |
-| | Server | C | 22\.2 |
-| [4\.2.11.2. PSK Binder](https://tools.ietf.org/html/rfc8446#section-4.2.11.2) | Client | C | 22\.2 |
-| | Server | C | 22\.2 |
-| [4\.2.11.3. Processing Order](https://tools.ietf.org/html/rfc8446#section-4.2.11.3) | Client | NC | |
-| | Server | NC | |
-| [4\.3.1. Encrypted Extensions](https://tools.ietf.org/html/rfc8446#section-4.3.1) | Client | PC | 22\.1 |
+| [4\.2.8. Key Share](https://tools.ietf.org/html/rfc8446#section-4.2.8) | **Client** | C | 22\.1 |
+| | **Server** | C | 22 |
+| [4\.2.9. Pre-Shared Key Exchange Modes](https://tools.ietf.org/html/rfc8446#section-4.2.9) | **Client** | C | 22\.2 |
+| | **Server** | C | 22\.2 |
+| [4\.2.10. Early Data Indication](https://tools.ietf.org/html/rfc8446#section-4.2.10) | **Client** | C | 23\.3 |
+| | **Server** | C | 23\.3 |
+| [4\.2.11. Pre-Shared Key Extension](https://tools.ietf.org/html/rfc8446#section-4.2.11) | **Client** | C | 22\.2 |
+| | **Server** | C | 22\.2 |
+| [4\.2.11.1. Ticket Age](https://tools.ietf.org/html/rfc8446#section-4.2.11.1) | **Client** | C | 22\.2 |
+| | **Server** | C | 22\.2 |
+| [4\.2.11.2. PSK Binder](https://tools.ietf.org/html/rfc8446#section-4.2.11.2) | **Client** | C | 22\.2 |
+| | **Server** | C | 22\.2 |
+| [4\.2.11.3. Processing Order](https://tools.ietf.org/html/rfc8446#section-4.2.11.3) | **Client** | NC | |
+| | **Server** | NC | |
+| [4\.3.1. Encrypted Extensions](https://tools.ietf.org/html/rfc8446#section-4.3.1) | **Client** | PC | 22\.1 |
| | server_name (RFC6066) | C | 23\.2 |
| | max_fragment_length (RFC6066) | C | 23\.0 |
| | supported_groups (RFC7919) | NC | |
@@ -295,7 +295,7 @@ Applicable)
| | client_certificate_type (RFC7250) | NC | |
| | server_certificate_type (RFC7250) | NC | |
| | early_data (RFC8446) | C | 23\.3 |
-| | Server | PC | 22 |
+| | **Server** | PC | 22 |
| | server_name (RFC6066) | C | 23\.2 |
| | max_fragment_length (RFC6066) | C | 23\.0 |
| | supported_groups (RFC7919) | NC | |
@@ -305,14 +305,14 @@ Applicable)
| | client_certificate_type (RFC7250) | NC | |
| | server_certificate_type (RFC7250) | NC | |
| | early_data (RFC8446) | C | 23\.3 |
-| [4\.3.2. Certificate Request](https://tools.ietf.org/html/rfc8446#section-4.3.2) | Client | PC | 22\.1 |
+| [4\.3.2. Certificate Request](https://tools.ietf.org/html/rfc8446#section-4.3.2) | **Client** | PC | 22\.1 |
| | status_request (RFC6066) | NC | |
| | signature_algorithms (RFC8446) | C | 22\.1 |
| | signed_certificate_timestamp (RFC6962) | NC | |
| | certificate_authorities (RFC8446) | C | 24\.3 |
| | oid_filters (RFC8446) | NC | |
| | signature_algorithms_cert (RFC8446) | C | 22\.1 |
-| | Server | PC | 22 |
+| | **Server** | PC | 22 |
| | status_request (RFC6066) | NC | |
| | signature_algorithms (RFC8446) | C | 22 |
| | signed_certificate_timestamp (RFC6962) | NC | |
@@ -320,16 +320,16 @@ Applicable)
| | oid_filters (RFC8446) | NC | |
| | signature_algorithms_cert (RFC8446) | C | 22 |
| [4\.4.1. The Transcript Hash](https://tools.ietf.org/html/rfc8446#section-4.4.1) | | C | 22 |
-| [4\.4.2. Certificate](https://tools.ietf.org/html/rfc8446#section-4.4.2) | Client | PC | 22\.1 |
+| [4\.4.2. Certificate](https://tools.ietf.org/html/rfc8446#section-4.4.2) | **Client** | PC | 22\.1 |
| | Arbitrary certificate chain orderings | C | 22\.2 |
| | Extraneous certificates in chain | C | 23\.2 |
| | status_request (RFC6066) | C | 27\.0 |
| | signed_certificate_timestamp (RFC6962) | NC | |
-| | Server | PC | 22 |
+| | **Server** | PC | 22 |
| | status_request (RFC6066) | NC | |
| | signed_certificate_timestamp (RFC6962) | NC | |
-| [4\.4.2.1. OCSP Status and SCT Extensions](https://tools.ietf.org/html/rfc8446#section-4.4.2.1) | Client | PC | 27\.0 |
-| | Server | NC | |
+| [4\.4.2.1. OCSP Status and SCT Extensions](https://tools.ietf.org/html/rfc8446#section-4.4.2.1) | **Client** | PC | 27\.0 |
+| | **Server** | NC | |
| [4\.4.2.2. Server Certificate Selection](https://tools.ietf.org/html/rfc8446#section-4.4.2.2) | | C | 24\.3 |
| | The certificate type MUST be X.509v3, unless explicitly negotiated otherwise | C | 22 |
| | The server's end-entity certificate's public key (and associated restrictions) MUST be compatible with the selected authentication algorithm from the client's "signature_algorithms" extension (currently RSA, ECDSA, or EdDSA). | C | 22 |
@@ -340,22 +340,22 @@ Applicable)
| | If the "certificate_authorities" extension in the CertificateRequest message was present, at least one of the certificates in the certificate chain SHOULD be issued by one of the listed CAs. | C | 24\.3 |
| | The certificates MUST be signed using an acceptable signature algorithm | C | 22\.1 |
| | If the CertificateRequest message contained a non-empty "oid_filters" extension, the end-entity certificate MUST match the extension OIDs that are recognized by the client | NC | |
-| [4\.4.2.4. Receiving a Certificate Message](https://tools.ietf.org/html/rfc8446#section-4.4.2.4) | Client | C | 22\.1 |
-| | Server | C | 22 |
-| [4\.4.3. Certificate Verify](https://tools.ietf.org/html/rfc8446#section-4.4.3) | Client | C | 22\.1 |
-| | Server | C | 22 |
-| [4\.4.4. Finished](https://tools.ietf.org/html/rfc8446#section-4.4.4) | Client | C | 22\.1 |
-| | Server | C | 22 |
-| [4\.5. End of Early Data](https://tools.ietf.org/html/rfc8446#section-4.5) | Client | C | 23\.3 |
-| | Server | C | 23\.3 |
-| [4\.6.1. New Session Ticket Message](https://tools.ietf.org/html/rfc8446#section-4.6.1) | Client | C | 23\.3 |
+| [4\.4.2.4. Receiving a Certificate Message](https://tools.ietf.org/html/rfc8446#section-4.4.2.4) | **Client** | C | 22\.1 |
+| | **Server** | C | 22 |
+| [4\.4.3. Certificate Verify](https://tools.ietf.org/html/rfc8446#section-4.4.3) | **Client** | C | 22\.1 |
+| | **Server** | C | 22 |
+| [4\.4.4. Finished](https://tools.ietf.org/html/rfc8446#section-4.4.4) | **Client** | C | 22\.1 |
+| | **Server** | C | 22 |
+| [4\.5. End of Early Data](https://tools.ietf.org/html/rfc8446#section-4.5) | **Client** | C | 23\.3 |
+| | **Server** | C | 23\.3 |
+| [4\.6.1. New Session Ticket Message](https://tools.ietf.org/html/rfc8446#section-4.6.1) | **Client** | C | 23\.3 |
| | early_data (RFC8446) | C | 23\.3 |
-| | Server | C | 23\.3 |
+| | **Server** | C | 23\.3 |
| | early_data (RFC8446) | C | 23\.3 |
-| [4\.6.2. Post-Handshake Authentication](https://tools.ietf.org/html/rfc8446#section-4.6.2) | Client | NC | |
-| | Server | NC | |
-| [4\.6.3. Key and Initialization Vector Update](https://tools.ietf.org/html/rfc8446#section-4.6.3) | Client | C | 22\.3 |
-| | Server | C | 22\.3 |
+| [4\.6.2. Post-Handshake Authentication](https://tools.ietf.org/html/rfc8446#section-4.6.2) | **Client** | NC | |
+| | **Server** | NC | |
+| [4\.6.3. Key and Initialization Vector Update](https://tools.ietf.org/html/rfc8446#section-4.6.3) | **Client** | C | 22\.3 |
+| | **Server** | C | 22\.3 |
| [5\.1. Record Layer](https://tools.ietf.org/html/rfc8446#section-5.1) | | C | 22 |
| | MUST NOT be interleaved with other record types | C | 22 |
| | MUST NOT span key changes | C | 22 |
@@ -384,11 +384,11 @@ Applicable)
| | MUST implement the TLS_AES_128_GCM_SHA256 | C | 22 |
| | SHOULD implement the TLS_AES_256_GCM_SHA384 | C | 22 |
| | SHOULD implement the TLS_CHACHA20_POLY1305_SHA256 | C | 22 |
-| | Digital signatures | C | 22\.1 |
+| | **Digital signatures** | C | 22\.1 |
| | MUST support rsa_pkcs1_sha256 (for certificates) | C | 22 |
| | MUST support rsa_pss_rsae_sha256 (for CertificateVerify and certificates) | C | 22 |
| | MUST support ecdsa_secp256r1_sha256 | C | 22\.1 |
-| | Key Exchange | C | 22 |
+| | **Key Exchange** | C | 22 |
| | MUST support key exchange with secp256r1 | C | 22 |
| | SHOULD support key exchange with X25519 | C | 22 |
| [9\.2. Mandatory-to-Implement Extensions](https://tools.ietf.org/html/rfc8446#section-9.2) | | C | 23\.2 |
@@ -399,20 +399,20 @@ Applicable)
| | Negotiated Groups | C | 22 |
| | Key Share | C | 22 |
| | Server Name Indication | C | 23\.2 |
-| | MUST send and use these extensions | C | 22\.2 |
+| | **MUST send and use these extensions** | C | 22\.2 |
| | "supported_versions" is REQUIRED for ClientHello, ServerHello and HelloRetryRequest | C | 22\.1 |
| | "signature_algorithms" is REQUIRED for certificate authentication | C | 22 |
| | "supported_groups" is REQUIRED for ClientHello messages using (EC)DHE key exchange | C | 22 |
| | "key_share" is REQUIRED for (EC)DHE key exchange | C | 22 |
| | "pre_shared_key" is REQUIRED for PSK key agreement | C | 22\.2 |
| | "psk_key_exchange_modes" is REQUIRED for PSK key agreement | C | 22\.2 |
-| | TLS 1.3 ClientHello | C | 22\.1 |
+| | **TLS 1.3 ClientHello** | C | 22\.1 |
| | If not containing a "pre_shared_key" extension, it MUST contain both a "signature_algorithms" extension and a "supported_groups" extension. | C | 22\.1 |
| | If containing a "supported_groups" extension, it MUST also contain a "key_share" extension, and vice versa. An empty KeyShare.client_shares vector is permitted. | C | 22\.1 |
-| | TLS 1.3 ServerHello | C | 23\.2 |
+| | **TLS 1.3 ServerHello** | C | 23\.2 |
| | MUST support the use of the "server_name" extension | C | 23\.2 |
| [9\.3. Protocol Invariants](https://tools.ietf.org/html/rfc8446#section-9.3) | | C | 22\.1 |
-| | MUST correctly handle extensible fields | C | 22\.1 |
+| | **MUST correctly handle extensible fields** | C | 22\.1 |
| | A client sending a ClientHello MUST support all parameters advertised in it. Otherwise, the server may fail to interoperate by selecting one of those parameters. | C | 22\.1 |
| | A server receiving a ClientHello MUST correctly ignore all unrecognized cipher suites, extensions, and other parameters. Otherwise, it may fail to interoperate with newer clients. In TLS 1.3, a client receiving a CertificateRequest or NewSessionTicket MUST also ignore all unrecognized extensions. | C | 22\.1 |
| | A middlebox which terminates a TLS connection MUST behave as a compliant TLS server | NA | |
diff --git a/system/doc/design_principles/included_applications.md b/system/doc/design_principles/included_applications.md
index 4fb9158569..8202de97d4 100644
--- a/system/doc/design_principles/included_applications.md
+++ b/system/doc/design_principles/included_applications.md
@@ -42,33 +42,45 @@ _primary application_.
---
title: Primary Application and Included Applications
---
+%% Note: bold Markdown text is used to highlight the two main keywords
+
flowchart TD
- prim_app((Primary Application))
-
- subgraph Included Applications
- app1((App))
- app2((App))
- app3((App))
- app4((App))
- app5((App))
-
- subgraph Included Applications
- app11((App))
- end
- subgraph Included Applications
- app31((App))
- app32((App))
- end
- end
-
- prim_app --- app1 --- app11
- prim_app --- app2
- prim_app --- app3
- prim_app --- app4
- prim_app --- app5
-
- app3 --- app31
- app3 --- app32
+ %% row 1
+ prim_app(("`**Primary Application**`"))
+
+ %% row 2
+ app1((App))
+ app2((App))
+ app3((App))
+ app4((App))
+ app5((App))
+ %% make a node that acts as a label
+ label["`**Included Applications**`"]
+
+ %% row 3
+ app11((App))
+ app31((App))
+ app32((App))
+
+ %% rows are filled in order ("app1 ... app5, label" and so on)
+ prim_app --> app1 --> app11
+ prim_app --> app2
+ prim_app --> app3
+ prim_app --> app4
+ prim_app --> app5
+
+ %% use an invisible edge, this ensures that `label` is part of
+ %% the diagram layout, i.e. that it gets placed on the row below prim_app,
+ %% but still looks unconnected
+ prim_app ~~~ label
+
+ app3 --> app31
+ app3 --> app32
+
+ %% Style `label` - remove outline to make it less box/node like.
+ %% The fill color is kept, as `label` will otherwise (visually) look like it's
+ %% far away from the "apps" nodes in row 2.
+ style label stroke-width:0px
```
The application controller automatically loads any included applications when
diff --git a/system/doc/efficiency_guide/profiling.md b/system/doc/efficiency_guide/profiling.md
index 2d233e689a..ccc8479699 100644
--- a/system/doc/efficiency_guide/profiling.md
+++ b/system/doc/efficiency_guide/profiling.md
@@ -175,11 +175,15 @@ module basis. `cprof` has a low performance degradation effect (compared with
### Tool Summary
-| Tool | Results | Size of Result | Effects on Program Execution Time | Records Number of Calls | Records Execution Time | Records Called by | Records Garbage Collection |
-| ------- | ----------------------------------- | -------------- | --------------------------------- | ----------------------- | ---------------------- | ----------------- | -------------------------- |
-| `fprof` | Per process to screen/file | Large | Significant slowdown | Yes | Total and own | Yes | Yes |
-| `eprof` | Per process/function to screen/file | Medium | Small slowdown | Yes | Only total | No | No |
-| `cprof` | Per module to caller | Small | Small slowdown | Yes | No | No | No |
+| | fprof | eprof | cprof |
+| ------------------------------------- | -------------------------- | ----------------------------------- | -------------------- |
+| **Results** | Per process to screen/file | Per process/function to screen/file | Per module to caller |
+| **Size of Result** | Large | Medium | Small |
+| **Effects on Program Execution Time** | Significant slowdown | Small slowdown | Small slowdown |
+| **Records Number of Calls** | Yes | Yes | Yes |
+| **Records Execution Time** | Total and own | Only total | No |
+| **Records Called by** | Yes | No | No |
+| **Records Garbage Collection** | Yes | No | No |
_Table: Tool Summary_
diff --git a/system/doc/reference_manual/expressions.md b/system/doc/reference_manual/expressions.md
index fe272adcee..ce860fa876 100644
--- a/system/doc/reference_manual/expressions.md
+++ b/system/doc/reference_manual/expressions.md
@@ -2313,10 +2313,10 @@ expressions in guards.
| [`max(A, B)`](`max/2`) |
| [`min(A, B)`](`min/2`) |
| `node/0` |
-| `node(Pid` \| `Ref` \| `Port)` |
+| [`node(Pid \| Ref \| Port)`](`node/1`) |
| [`round(Number)`](`round/1`) |
| `self/0` |
-| `size(Tuple` \| `Bitstring)` |
+| [`size(Tuple \| Bitstring)`](`size/1`) |
| [`tl(List)`](`tl/1`) |
| [`trunc(Number)`](`trunc/1`) |
| [`tuple_size(Tuple)`](`tuple_size/1`) |
diff --git a/system/doc/reference_manual/typespec.md b/system/doc/reference_manual/typespec.md
index b2809a5a4f..b6a5276be7 100644
--- a/system/doc/reference_manual/typespec.md
+++ b/system/doc/reference_manual/typespec.md
@@ -194,34 +194,34 @@ predefined aliases for the type unions also shown in the table.
[](){: #builtin_types }
-| Built-in type | Defined as |
-| ------------------------- | --------------------------------------------------------------------------- |
-| `t:term/0` | `t:any/0` |
-| `t:binary/0` | `<<_:_*8>>` |
-| `t:nonempty_binary/0` | `<<_:8, _:_*8>>` |
-| `t:bitstring/0` | `<<_:_*1>>` |
-| `t:nonempty_bitstring/0` | `<<_:1, _:_*1>>` |
-| `t:boolean/0` | `'false'` \| `'true'` |
-| `t:byte/0` | `0..255` |
-| `t:char/0` | `0..16#10ffff` |
-| `t:nil/0` | `[]` |
-| `t:number/0` | `t:integer/0` \| `t:float/0` |
-| `t:list/0` | `[any()]` |
-| `t:maybe_improper_list/0` | [`maybe_improper_list(any(), any())`](`t:maybe_improper_list/2`) |
-| `t:nonempty_list/0` | [`nonempty_list(any())`](`t:nonempty_list/1`) |
-| `t:string/0` | `[char()]` |
-| `t:nonempty_string/0` | `[char(),...]` |
-| `t:iodata/0` | `iolist()` \| `binary()` |
-| `t:iolist/0` | `maybe_improper_list(byte()` \| `binary()` \| `iolist(), binary()` \| `[])` |
-| `t:map/0` | `#{any() => any()}` |
-| `t:function/0` | `fun()` |
-| `t:module/0` | `t:atom/0` |
-| `t:mfa/0` | `{module(),atom(),arity()}` |
-| `t:arity/0` | `0..255` |
-| `t:identifier/0` | `pid()` \| `port()` \| `reference()` |
-| `node/0` | `t:atom/0` |
-| `t:timeout/0` | `'infinity'` \| `non_neg_integer()` |
-| `t:no_return/0` | `t:none/0` |
+| Built-in type | Defined as |
+| ------------------------- | -------------------------------------------------------------------------------------------------- |
+| `t:term/0` | `t:any/0` |
+| `t:binary/0` | `<<_:_*8>>` |
+| `t:nonempty_binary/0` | `<<_:8, _:_*8>>` |
+| `t:bitstring/0` | `<<_:_*1>>` |
+| `t:nonempty_bitstring/0` | `<<_:1, _:_*1>>` |
+| `t:boolean/0` | `'false'` \| `'true'` |
+| `t:byte/0` | `0..255` |
+| `t:char/0` | `0..16#10ffff` |
+| `t:nil/0` | `[]` |
+| `t:number/0` | `t:integer/0` \| `t:float/0` |
+| `t:list/0` | `[any()]` |
+| `t:maybe_improper_list/0` | [`maybe_improper_list(any(), any())`](`t:maybe_improper_list/2`) |
+| `t:nonempty_list/0` | [`nonempty_list(any())`](`t:nonempty_list/1`) |
+| `t:string/0` | `[char()]` |
+| `t:nonempty_string/0` | `[char(), ...]` |
+| `t:iodata/0` | `iolist()` \| `binary()` |
+| `t:iolist/0` | [`maybe_improper_list(byte() \| binary() \| iolist(), binary() \| [])`](`t:maybe_improper_list/2`) |
+| `t:map/0` | `#{any() => any()}` |
+| `t:function/0` | `fun()` |
+| `t:module/0` | `t:atom/0` |
+| `t:mfa/0` | `{module(),atom(),arity()}` |
+| `t:arity/0` | `0..255` |
+| `t:identifier/0` | `pid()` \| `port()` \| `reference()` |
+| `node/0` | `t:atom/0` |
+| `t:timeout/0` | `'infinity'` \| `non_neg_integer()` |
+| `t:no_return/0` | `t:none/0` |
_Table: Built-in types, predefined aliases_
--
2.51.0