[wip] improve wording in README

This commit is contained in:
Michael Bradley, Jr 2022-03-20 12:30:29 -05:00
parent 42914cab11
commit 5aa83808f3
No known key found for this signature in database
GPG Key ID: 9FCA591DA4CE7D0D

View File

@ -2,7 +2,7 @@
[![License: Apache](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Stability: experimental](https://img.shields.io/badge/stability-experimental-orange.svg)](https://github.com/status-im/nim-leopard#stability)
[![Stability: experimental](https://img.shields.io/badge/stability-experimental-orange.svg)](#stability)
[![Tests (GitHub Actions)](https://github.com/status-im/nim-leopard/workflows/Tests/badge.svg?branch=main)](https://github.com/status-im/nim-leopard/actions?query=workflow%3ATests+branch%3Amain)
Nim wrapper for [Leopard-RS](https://github.com/catid/leopard): a fast library for [Reed-Solomon](https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction) erasure correction coding.
@ -37,7 +37,7 @@ $ make update
When nim-leopard is installed with `nimble install leopard`, or as a dependency in a Nimble project, or vendored in a nimbus-build-system project, submodule init is handled automatically.
If the nim-leopard repo is cloned directly, then before running `nimble develop` or `nimble install` in the root of the clone, it's necessary to init the submodule
In a standalone `git clone` of nim-leopard, it's necessary to init the submodule before running `nimble develop` or `nimble install` in the root of the clone
```text
$ git submodule update --init
```
@ -48,7 +48,7 @@ The submodule is automatically built (in the `nimcache` dir) and statically link
If the `nimcache` dir is set to a custom value, it must be an absolute path.
For the build to work on Windows, `nimble` or `nim c` must be run from a Bash shell, e.g. Git Bash or an MSYS2 shell, and all needed tools (e.g. `cmake` and `make`) must be available in and suitable for that environment.
For the build to work on Windows, `nimble` or `nim c` must be run from a Bash shell, e.g. Git Bash or an MSYS2 shell, and all needed tools (`cmake`, `make`, compiler, etc.) must be available in and suitable for that environment.
##### OpenMP
@ -56,11 +56,11 @@ Leopard-RS' `CMakeLists.txt` checks for [OpenMP](https://en.wikipedia.org/wiki/O
Build toolchains commonly installed on Linux and Windows come with support for OpenMP.
The clang/++ compiler in Apple's Xcode does not support OpenMP, but the one installed with `brew install llvm` does support it, though it's also necessary to `brew install libomp`.
The clang compiler that ships with Apple's Xcode does not support OpenMP, but the one installed with `brew install llvm` does support it, though it's also necessary to `brew install libomp`.
So, on macOS, when running `nimble test` of nim-leopard or compiling a project that imports nim-leopard:
* If libomp is not installed and Apple's clang is used, no extra flags need to be passed to the Nim compiler. OpenMP support will not be enabled in `libleopard.a`.
* If libomp is installed and Apple's clang is used, this flag should be passed to `nim c`
* If libomp is not installed and Xcode clang is used, no extra flags need to be passed to the Nim compiler. OpenMP support will not be enabled in `libleopard.a`.
* If libomp is installed and Xcode clang is used, this flag should be passed to `nim c`
```text
-d:LeopardCmakeFlags="-DCMAKE_BUILD_TYPE=Release -DENABLE_OPENMP=off"
```
@ -112,8 +112,8 @@ daWithHoles[9] = @[]
daWithHoles[53] = @[]
daWithHoles[208] = @[]
# ...
paWithHoles[1] = @[]
paWithHoles[4] = @[]
paWithHoles[1] = @[]
paWithHoles[14] = @[]
# ...
# Decode
@ -130,15 +130,15 @@ else:
### OpenMP
When OpenMP is enabled, whether or not parallel processing kicks in depends on the symbol and byte counts. On a local machine with an Intel processor `RS(256,239)` with `symbolBytes == 64` seems to be the lower bound for triggering parallel processing.
When OpenMP is enabled, whether or not parallel processing kicks in depends on the symbol and byte counts. `RS(256,239)` with `symbolBytes == 64` seems to be the lower bound for triggering parallel processing on a local machine with a 64-bit Intel processor.
## Versioning
nim-leopard generally follows the upstream `master` branch such that changes there will result in a version bump for this package.
nim-leopard generally follows the upstream `master` branch of [status-im/leopard](https://github.com/status-im/leopard) such that changes there will result in a version bump for this project.
## Stability
This package is currently marked as experimental. Until it is marked as stable, it may be subject to breaking changes across any version bump.
nim-leopard is currently marked as experimental and may be subject to breaking changes across any version bump until it is marked as stable.
## License