From 70eb23c2e2061a2e86c4aefa07840d658685ec3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20M=C3=BCller?= Date: Wed, 13 Nov 2024 18:08:32 +0100 Subject: [PATCH] Add trailing pipes in md tables --- docs/man/required_libraries.md | 30 ++--- .../compile_time_flags.md | 110 +++++++++--------- docs/syntax_and_semantics/platform_support.md | 22 ++-- 3 files changed, 81 insertions(+), 81 deletions(-) diff --git a/docs/man/required_libraries.md b/docs/man/required_libraries.md index 889236b2f..0b6ed9eb5 100644 --- a/docs/man/required_libraries.md +++ b/docs/man/required_libraries.md @@ -30,9 +30,9 @@ which may be part of the C library or standalone libraries. On most platforms al | Library | Description | License | |---------|-------------|---------| -| [Boehm GC][libgc] | The Boehm-Demers-Weiser conservative garbage collector. Performs automatic memory management. | [MIT-style](https://github.com/ivmai/bdwgc/blob/master/LICENSE) -| [Libevent][libevent] | An event notification library. Implements concurrency features such as [`Fiber`](https://crystal-lang.org/api/Fiber.html) and the event loop on POSIX platforms. Not used on Windows. | [Modified BSD](https://github.com/libevent/libevent/blob/master/LICENSE) -| [compiler-rt builtins][compiler-rt] | Provides optimized implementations for low-level routines required by code generation, such as integer multiplication. Several of these routines are ported to Crystal directly. | [MIT / UIUC][compiler-rt] +| [Boehm GC][libgc] | The Boehm-Demers-Weiser conservative garbage collector. Performs automatic memory management. | [MIT-style](https://github.com/ivmai/bdwgc/blob/master/LICENSE) | +| [Libevent][libevent] | An event notification library. Implements concurrency features such as [`Fiber`](https://crystal-lang.org/api/Fiber.html) and the event loop on POSIX platforms. Not used on Windows. | [Modified BSD](https://github.com/libevent/libevent/blob/master/LICENSE) | +| [compiler-rt builtins][compiler-rt] | Provides optimized implementations for low-level routines required by code generation, such as integer multiplication. Several of these routines are ported to Crystal directly. | [MIT / UIUC][compiler-rt] | ## Optional standard library dependencies @@ -45,8 +45,8 @@ PCRE2 support was added in Crystal 1.7 and it's the default since 1.8 (see [Rege | Library | Description | License | |---------|-------------|---------| -| [PCRE2][libpcre] | Perl Compatible Regular Expressions, version 2. | [BSD](http://www.pcre.org/licence.txt) -| [PCRE][libpcre] | Perl Compatible Regular Expressions. | [BSD](http://www.pcre.org/licence.txt) +| [PCRE2][libpcre] | Perl Compatible Regular Expressions, version 2. | [BSD](http://www.pcre.org/licence.txt) | +| [PCRE][libpcre] | Perl Compatible Regular Expressions. | [BSD](http://www.pcre.org/licence.txt) | ### Big Numbers @@ -54,7 +54,7 @@ Implementations for `Big` types such as [`BigInt`](https://crystal-lang.org/api/ | Library | Description | License | |---------|-------------|---------| -| [GMP][libgmp] | GNU multiple precision arithmetic library. | [LGPL v3+ / GPL v2+](https://gmplib.org/manual/Copying) +| [GMP][libgmp] | GNU multiple precision arithmetic library. | [LGPL v3+ / GPL v2+](https://gmplib.org/manual/Copying) | | [MPIR][libmpir] | Multiple Precision Integers and Rationals, forked from GMP. Used on Windows MSVC. | [GPL-3.0](https://github.com/wbhart/mpir/blob/master/COPYING) and [LGPL-3.0](https://github.com/wbhart/mpir/blob/master/COPYING.LIB) | ### Internationalization conversion @@ -64,7 +64,7 @@ Using a standalone library over the system library implementation can be enforce | Library | Description | License | |---------|-------------|---------| -| [libiconv][libiconv-gnu] (GNU) | Internationalization conversion library. | [LGPL-3.0](https://www.gnu.org/licenses/lgpl.html) +| [libiconv][libiconv-gnu] (GNU) | Internationalization conversion library. | [LGPL-3.0](https://www.gnu.org/licenses/lgpl.html) | ### TLS @@ -74,17 +74,17 @@ Both `OpenSSL` and `LibreSSL` are supported and the bindings automatically detec | Library | Description | License | |---------|-------------|---------| -| [OpenSSL][openssl] | Implementation of the SSL and TLS protocols | [Apache v2 (3.0+), OpenSSL / SSLeay (1.x)](https://www.openssl.org/source/license.html) -| [LibreSSL][libressl] | Implementation of the SSL and TLS protocols; forked from OpenSSL in 2014 | [ISC / OpenSSL / SSLeay](https://github.com/libressl-portable/openbsd/blob/master/src/lib/libssl/LICENSE) +| [OpenSSL][openssl] | Implementation of the SSL and TLS protocols | [Apache v2 (3.0+), OpenSSL / SSLeay (1.x)](https://www.openssl.org/source/license.html) | +| [LibreSSL][libressl] | Implementation of the SSL and TLS protocols; forked from OpenSSL in 2014 | [ISC / OpenSSL / SSLeay](https://github.com/libressl-portable/openbsd/blob/master/src/lib/libssl/LICENSE) | ### Other stdlib libraries | Library | Description | License | |---------|-------------|---------| -| [LibXML2][libxml2] | XML parser developed for the Gnome project. Implements the [`XML`](https://crystal-lang.org/api/XML.html) module. | [MIT](https://gitlab.gnome.org/GNOME/libxml2/-/blob/master/Copyright) -| [LibYAML][libyaml] | YAML parser and emitter library. Implements the [`YAML`](https://crystal-lang.org/api/YAML.html) module. | [MIT](https://github.com/yaml/libyaml/blob/master/License) -| [zlib][zlib] | Lossless data compression library. Implements the [`Compress`](https://crystal-lang.org/api/Compress.html) module. May be disabled with the `-Dwithout_zlib` compile-time flag. | [zlib](http://zlib.net/zlib_license.html) -| [LLVM][libllvm] | Target-independent code generator and optimizer. Implements the [`LLVM`](https://crystal-lang.org/api/LLVM.html) API. | [Apache v2 with LLVM exceptions](https://llvm.org/docs/DeveloperPolicy.html#new-llvm-project-license-framework) +| [LibXML2][libxml2] | XML parser developed for the Gnome project. Implements the [`XML`](https://crystal-lang.org/api/XML.html) module. | [MIT](https://gitlab.gnome.org/GNOME/libxml2/-/blob/master/Copyright) | +| [LibYAML][libyaml] | YAML parser and emitter library. Implements the [`YAML`](https://crystal-lang.org/api/YAML.html) module. | [MIT](https://github.com/yaml/libyaml/blob/master/License) | +| [zlib][zlib] | Lossless data compression library. Implements the [`Compress`](https://crystal-lang.org/api/Compress.html) module. May be disabled with the `-Dwithout_zlib` compile-time flag. | [zlib](http://zlib.net/zlib_license.html) | +| [LLVM][libllvm] | Target-independent code generator and optimizer. Implements the [`LLVM`](https://crystal-lang.org/api/LLVM.html) API. | [Apache v2 with LLVM exceptions](https://llvm.org/docs/DeveloperPolicy.html#new-llvm-project-license-framework) | ## Compiler dependencies @@ -93,8 +93,8 @@ In addition to the [core runtime dependencies](#core-runtime-dependencies), thes | Library | Description | License | |---------|-------------|---------| | [PCRE2][libpcre] | See above. | | -| [LLVM][libllvm] | See above. | [Apache v2 with LLVM exceptions](https://llvm.org/docs/DeveloperPolicy.html#new-llvm-project-license-framework) -| [libffi][libffi] | Foreign function interface. Used for implementing binary interfaces in the interpreter. May be disabled with the `-Dwithout_interpreter` compile-time flag. | [MIT](https://github.com/libffi/libffi/blob/master/LICENSE) +| [LLVM][libllvm] | See above. | [Apache v2 with LLVM exceptions](https://llvm.org/docs/DeveloperPolicy.html#new-llvm-project-license-framework) | +| [libffi][libffi] | Foreign function interface. Used for implementing binary interfaces in the interpreter. May be disabled with the `-Dwithout_interpreter` compile-time flag. | [MIT](https://github.com/libffi/libffi/blob/master/LICENSE) | [bionic-libc]: https://android.googlesource.com/platform/bionic/+/refs/heads/master/libc/ [compiler-rt]: https://compiler-rt.llvm.org/ diff --git a/docs/syntax_and_semantics/compile_time_flags.md b/docs/syntax_and_semantics/compile_time_flags.md index 305f94ed4..3828b4293 100644 --- a/docs/syntax_and_semantics/compile_time_flags.md +++ b/docs/syntax_and_semantics/compile_time_flags.md @@ -49,14 +49,14 @@ The target architecture is the first component of the target triple. | Flag name | Description | |-----------|-------------| -| `aarch64` | AArch64 architecture -| `avr` | AVR architecture -| `arm` | ARM architecture -| `i386` | x86 architecture (32-bit) -| `wasm32` | WebAssembly -| `x86_64` | x86-64 architecture -| `bits32` *(derived)* | 32-bit architecture -| `bits64` *(derived)* | 64-bit architecture +| `aarch64` | AArch64 architecture | +| `avr` | AVR architecture | +| `arm` | ARM architecture | +| `i386` | x86 architecture (32-bit) | +| `wasm32` | WebAssembly | +| `x86_64` | x86-64 architecture | +| `bits32` *(derived)* | 32-bit architecture | +| `bits64` *(derived)* | 64-bit architecture | #### Vendor @@ -65,9 +65,9 @@ so the most common vendor is `unknown`. | Flag name | Description | |-----------|-------------| -| `macosx` | Apple -| `portbld` | FreeBSD variant -| `unknown` | Unknown vendor +| `macosx` | Apple | +| `portbld` | FreeBSD variant | +| `unknown` | Unknown vendor | #### Operating System @@ -75,16 +75,16 @@ The operating system is derived from the third component of a the target triple. | Flag name | Description | |-----------|-------------| -| `bsd` *(derived)* | BSD family (DragonFlyBSD, FreeBSD, NetBSD, OpenBSD) -| `darwin` | Darwin (MacOS) -| `dragonfly` | DragonFlyBSD -| `freebsd` | FreeBSD -| `linux` | Linux -| `netbsd` | NetBSD -| `openbsd` | OpenBSD -| `solaris` | Solaris/illumos -| `unix` *(derived)* | UNIX-like (BSD, Darwin, Linux, Solaris) -| `windows` | Windows +| `bsd` *(derived)* | BSD family (DragonFlyBSD, FreeBSD, NetBSD, OpenBSD) | +| `darwin` | Darwin (MacOS) | +| `dragonfly` | DragonFlyBSD | +| `freebsd` | FreeBSD | +| `linux` | Linux | +| `netbsd` | NetBSD | +| `openbsd` | OpenBSD | +| `solaris` | Solaris/illumos | +| `unix` *(derived)* | UNIX-like (BSD, Darwin, Linux, Solaris) | +| `windows` | Windows | #### ABI @@ -92,14 +92,14 @@ The ABI is derived from the last component of the target triple. | Flag name | Description | |-----------|-------------| -| `android` | Android (Bionic C runtime) -| `armhf` *(derived)* | ARM EABI with hard float -| `gnu` | GNU -| `gnueabihf` | GNU EABI with hard float -| `msvc` | Microsoft Visual C++ -| `musl` | musl -| `wasi` | Web Assembly System Interface -| `win32` *(derived)* | Windows API +| `android` | Android (Bionic C runtime) | +| `armhf` *(derived)* | ARM EABI with hard float | +| `gnu` | GNU | +| `gnueabihf` | GNU EABI with hard float | +| `msvc` | Microsoft Visual C++ | +| `musl` | musl | +| `wasi` | Web Assembly System Interface | +| `win32` *(derived)* | Windows API | ### Compiler options @@ -107,11 +107,11 @@ The compiler sets these flags based on compiler configuration. | Flag name | Description | |-----------|-------------| -| `release` | Compiler operates in release mode (`--release` or `-O3 --single-module` CLI option) -| `debug` | Compiler generates debug symbols (without `--no-debug` CLI option) -| `static` | Compiler creates a statically linked executable (`--static` CLI option) -| `docs` | Code is processed to generate API docs (`crystal docs` command) -| `interpreted` | Running in the interpreter (`crystal i`) +| `release` | Compiler operates in release mode (`--release` or `-O3 --single-module` CLI option) | +| `debug` | Compiler generates debug symbols (without `--no-debug` CLI option) | +| `static` | Compiler creates a statically linked executable (`--static` CLI option) | +| `docs` | Code is processed to generate API docs (`crystal docs` command) | +| `interpreted` | Running in the interpreter (`crystal i`) | ## User-provided flags @@ -132,18 +132,18 @@ Crystal program. | Flag name | Description | |-----------|-------------| -| `gc_none` | Disables garbage collection ([#5314](https://github.com/crystal-lang/crystal/pull/5314)) -| `debug_raise` | Debugging flag for `raise` logic. Prints the backtrace before raising. -| `preview_mt` | Enables multithreading preview. Introduced in 0.28.0 ([#7546](https://github.com/crystal-lang/crystal/pull/7546)) -| `skip_crystal_compiler_rt` | Exclude Crystal's native `compiler-rt` implementation. -| `tracing` | Build with support for [runtime tracing](../guides/runtime_tracing.md). -| `use_libiconv` | Use `libiconv` instead of the `iconv` system library -| `use_pcre2` | Use PCRE2 as regex engine (instead of legacy PCRE). Introduced in 1.7.0. -| `use_pcre` | Use PCRE as regex engine (instead of PCRE2). Introduced in 1.8.0. -| `win7` | Use Win32 WinNT API for Windows 7 -| `without_iconv` | Do not link `iconv`/`libiconv` -| `without_openssl` | Build without OpenSSL support -| `without_zlib` | Build without Zlib support +| `gc_none` | Disables garbage collection ([#5314](https://github.com/crystal-lang/crystal/pull/5314)) | +| `debug_raise` | Debugging flag for `raise` logic. Prints the backtrace before raising. | +| `preview_mt` | Enables multithreading preview. Introduced in 0.28.0 ([#7546](https://github.com/crystal-lang/crystal/pull/7546)) | +| `skip_crystal_compiler_rt` | Exclude Crystal's native `compiler-rt` implementation. | +| `tracing` | Build with support for [runtime tracing](../guides/runtime_tracing.md). | +| `use_libiconv` | Use `libiconv` instead of the `iconv` system library | +| `use_pcre2` | Use PCRE2 as regex engine (instead of legacy PCRE). Introduced in 1.7.0. | +| `use_pcre` | Use PCRE as regex engine (instead of PCRE2). Introduced in 1.8.0. | +| `win7` | Use Win32 WinNT API for Windows 7 | +| `without_iconv` | Do not link `iconv`/`libiconv` | +| `without_openssl` | Build without OpenSSL support | +| `without_zlib` | Build without Zlib support | ### Language features @@ -152,9 +152,9 @@ These flags enable or disable language features when building a Crystal program. | Flag name | Description | |-----------|-------------| | `no_number_autocast` | Will not [autocast](autocasting.md#number-autocasting) numeric expressions, only literals | -| `no_restrictions_augmenter` | Disable enhanced restrictions augmenter. Introduced in 1.5 ([#12103](https://github.com/crystal-lang/crystal/pull/12103)). -| `preview_overload_order` | Enable more robust ordering between def overloads. Introduced in 1.6 ([#10711](https://github.com/crystal-lang/crystal/issues/10711)). -| `strict_multi_assign` | Enable strict semantics for [one-to-many assignment](assignment.md#one-to-many-assignment). Introduced in 1.3.0 ([#11145](https://github.com/crystal-lang/crystal/pull/11145), [#11545](https://github.com/crystal-lang/crystal/pull/11545)) +| `no_restrictions_augmenter` | Disable enhanced restrictions augmenter. Introduced in 1.5 ([#12103](https://github.com/crystal-lang/crystal/pull/12103)). | +| `preview_overload_order` | Enable more robust ordering between def overloads. Introduced in 1.6 ([#10711](https://github.com/crystal-lang/crystal/issues/10711)). | +| `strict_multi_assign` | Enable strict semantics for [one-to-many assignment](assignment.md#one-to-many-assignment). Introduced in 1.3.0 ([#11145](https://github.com/crystal-lang/crystal/pull/11145), [#11545](https://github.com/crystal-lang/crystal/pull/11545)) | ### Codegen features @@ -162,8 +162,8 @@ These flags enable or disable codegen features when building a Crystal program. | Flag name | Description | |-----------|-------------| -| `cf-protection=branch`, `cf-protection=return`, `cf-protection=full` | Indirect branch tracking for x86 and x86_64. Implicitly set on OpenBSD. Introduced in 1.15.0 ([#15122](https://github.com/crystal-lang/crystal/pull/15122)) -| `branch-protection=bti` | Indirect branch tracking for aarch64. Implicitly set on OpenBSD. Introduced in 1.15.0 ([#15122](https://github.com/crystal-lang/crystal/pull/15122)) +| `cf-protection=branch`, `cf-protection=return`, `cf-protection=full` | Indirect branch tracking for x86 and x86_64. Implicitly set on OpenBSD. Introduced in 1.15.0 ([#15122](https://github.com/crystal-lang/crystal/pull/15122)) | +| `branch-protection=bti` | Indirect branch tracking for aarch64. Implicitly set on OpenBSD. Introduced in 1.15.0 ([#15122](https://github.com/crystal-lang/crystal/pull/15122)) | ### Compiler build features @@ -171,10 +171,10 @@ These flags enable or disable features when building the Crystal compiler. | Flag name | Description | |-----------|-------------| -| `without_ffi` | Build the compiler without `libffi` -| `without_interpreter` | Build the compiler without interpreter support -| `without_playground` | Build the compiler without playground (`crystal play`) -| `i_know_what_im_doing` | Safety guard against involuntarily building the compiler +| `without_ffi` | Build the compiler without `libffi` | +| `without_interpreter` | Build the compiler without interpreter support | +| `without_playground` | Build the compiler without playground (`crystal play`) | +| `i_know_what_im_doing` | Safety guard against involuntarily building the compiler | ### User code features diff --git a/docs/syntax_and_semantics/platform_support.md b/docs/syntax_and_semantics/platform_support.md index 5588e5a48..3a75d0f21 100644 --- a/docs/syntax_and_semantics/platform_support.md +++ b/docs/syntax_and_semantics/platform_support.md @@ -19,10 +19,10 @@ and drop into *Tier 2*. | Target | Description | Supported versions | Comment | | ------ | ----------- | ------------------ | ------- | -| `aarch64-darwin` | Aarch64 macOS
(Apple Silicon) | 11+ *(testing only on 14)* | :material-checkbox-marked-circle: tests
:material-checkbox-marked-circle: builds -| `x86_64-darwin` | x64 macOS
(Intel) | 11+
*(testing only on 13; expected to work on 10.7+)* | :material-checkbox-marked-circle: tests
:material-checkbox-marked-circle: builds -| `x86_64-linux-gnu` | x64 Linux | kernel 4.14+, GNU libc 2.26+
*(expected to work on kernel 2.6.18+)* | :material-checkbox-marked-circle: tests
:material-checkbox-marked-circle: builds -| `x86_64-linux-musl` | x64 Linux | kernel 4.14+, MUSL libc 1.2+
*(expected to work on kernel 2.6.18+)* | :material-checkbox-marked-circle: tests
:material-checkbox-marked-circle: builds +| `aarch64-darwin` | Aarch64 macOS
(Apple Silicon) | 11+ *(testing only on 14)* | :material-checkbox-marked-circle: tests
:material-checkbox-marked-circle: builds | +| `x86_64-darwin` | x64 macOS
(Intel) | 11+
*(testing only on 13; expected to work on 10.7+)* | :material-checkbox-marked-circle: tests
:material-checkbox-marked-circle: builds | +| `x86_64-linux-gnu` | x64 Linux | kernel 4.14+, GNU libc 2.26+
*(expected to work on kernel 2.6.18+)* | :material-checkbox-marked-circle: tests
:material-checkbox-marked-circle: builds | +| `x86_64-linux-musl` | x64 Linux | kernel 4.14+, MUSL libc 1.2+
*(expected to work on kernel 2.6.18+)* | :material-checkbox-marked-circle: tests
:material-checkbox-marked-circle: builds | *** @@ -35,13 +35,13 @@ Details are described in the *Comment* column. | Target | Description | Supported versions | Comment | | ------ | ----------- | ------------------ | ------- | -| `aarch64-linux-gnu` | Aarch64 Linux | GNU libc 2.26+ | :material-checkbox-marked-circle: tests
:material-selection-ellipse: builds -| `aarch64-linux-musl` | Aarch64 Linux | MUSL libc 1.2+ | :material-checkbox-marked-circle: tests
:material-selection-ellipse: builds -| `arm-linux-gnueabihf` | Aarch32 Linux
(hardfloat) | GNU libc 2.26+ | :material-selection-ellipse: tests
:material-selection-ellipse: builds -| `i386-linux-gnu` | x86 Linux | kernel 4.14+, GNU libc 2.26+
*(expected to work on kernel 2.6.18+)* | :material-selection-ellipse: tests
:material-selection-ellipse: builds -| `i386-linux-musl` | x86 Linux | kernel 4.14+, MUSL libc 1.2+
*(expected to work on kernel 2.6.18+)* | :material-selection-ellipse: tests
:material-selection-ellipse: builds -| `x86_64-openbsd` | x64 OpenBSD | 6+ | :material-selection-ellipse: tests
:material-selection-ellipse: builds -| `x86_64-freebsd` | x64 FreeBSD | 12+ | :material-selection-ellipse: tests
:material-selection-ellipse: builds +| `aarch64-linux-gnu` | Aarch64 Linux | GNU libc 2.26+ | :material-checkbox-marked-circle: tests
:material-selection-ellipse: builds | +| `aarch64-linux-musl` | Aarch64 Linux | MUSL libc 1.2+ | :material-checkbox-marked-circle: tests
:material-selection-ellipse: builds | +| `arm-linux-gnueabihf` | Aarch32 Linux
(hardfloat) | GNU libc 2.26+ | :material-selection-ellipse: tests
:material-selection-ellipse: builds | +| `i386-linux-gnu` | x86 Linux | kernel 4.14+, GNU libc 2.26+
*(expected to work on kernel 2.6.18+)* | :material-selection-ellipse: tests
:material-selection-ellipse: builds | +| `i386-linux-musl` | x86 Linux | kernel 4.14+, MUSL libc 1.2+
*(expected to work on kernel 2.6.18+)* | :material-selection-ellipse: tests
:material-selection-ellipse: builds | +| `x86_64-openbsd` | x64 OpenBSD | 6+ | :material-selection-ellipse: tests
:material-selection-ellipse: builds | +| `x86_64-freebsd` | x64 FreeBSD | 12+ | :material-selection-ellipse: tests
:material-selection-ellipse: builds | ***