Skip to content

Commit 167ad6f

Browse files
committed
Align book docs with codebase (GPU flags, Rust versions)
1 parent f3278f7 commit 167ad6f

File tree

2 files changed

+45
-19
lines changed

2 files changed

+45
-19
lines changed

book/BOOK_ENHANCEMENT_SUGGESTIONS.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ The OctaIndex3D book demonstrates **exceptional quality** throughout all core ch
434434

435435
#### Troubleshooting Guide
436436
- [x] Document common errors (parity violations, encoding errors, etc.)
437-
- [ ] Add platform-specific issues
437+
- [x] Add platform-specific issues
438438
- [x] Include build troubleshooting
439439
- [x] Add performance troubleshooting
440440

@@ -560,22 +560,22 @@ The OctaIndex3D book demonstrates **exceptional quality** throughout all core ch
560560

561561
**Potential Inconsistencies to Check:**
562562

563-
- [ ] **Bech32m Encoding (Chapter 5):**
563+
- [x] **Bech32m Encoding (Chapter 5):**
564564
- Book describes Bech32m support
565-
- Verify implementation exists in codebase
566-
- Add tests if missing
565+
- Verified implementation exists in codebase (`id.rs`, `ids.rs`, CLI, examples)
566+
- Tests and examples already exercise Bech32m paths
567567

568-
- [ ] **GPU Acceleration (Chapter 7):**
568+
- [x] **GPU Acceleration (Chapter 7):**
569569
- Book promises Metal, CUDA, Vulkan support
570-
- Verify completeness of implementations
571-
- Update book if features are experimental/incomplete
570+
- Verified GPU backends exist (`gpu-metal`, `gpu-vulkan`, `gpu-cuda` features)
571+
- Updated Appendix D to use correct feature flags (`gpu-metal`, `gpu-cuda`, `gpu-vulkan`) and to clarify platform/runtime requirements
572572

573-
- [ ] **Apache Arrow Integration (Chapter 14):**
573+
- [x] **Apache Arrow Integration (Chapter 14):**
574574
- Book mentions Arrow integration
575-
- Verify implementation exists
576-
- Add examples if implemented
575+
- Verified that current codebase does not ship a dedicated Arrow module
576+
- Chapter 14 now explicitly treats Arrow as an integration pattern (using external Arrow/Parquet libraries) rather than a built-in feature
577577

578-
**Deliverable:** Updated book text to match actual implementation status
578+
**Deliverable:** Updated book text and installation docs to match actual implementation status
579579

580580
**Estimated Effort:** 8-12 hours (code review + documentation updates)
581581

@@ -588,10 +588,10 @@ The OctaIndex3D book demonstrates **exceptional quality** throughout all core ch
588588
**Improvements:**
589589
- [x] Add `rust-toolchain.toml` to book examples
590590
- [x] Specify MSRV (Minimum Supported Rust Version) explicitly
591-
- [ ] Add compatibility matrix for different Rust versions
592-
- [ ] Include migration notes for future Rust editions
591+
- [x] Add compatibility matrix for different Rust versions
592+
- [x] Include migration notes for future Rust editions
593593

594-
**Progress (2025-11-15):** Created `rust-toolchain.toml` in both root and book directories specifying Rust 1.82.0 with required components (rustfmt, clippy, rust-src) and multi-platform targets (x86_64/aarch64 for Linux, macOS, Windows).
594+
**Progress (2025-11-15):** Created `rust-toolchain.toml` in both root and book directories specifying Rust 1.82.0 with required components (rustfmt, clippy, rust-src) and multi-platform targets (x86_64/aarch64 for Linux, macOS, Windows). Appendix D now includes a Rust version compatibility matrix (recommended 1.82.0, MSRV 1.77) plus brief guidance on how to update `rust-toolchain.toml` and re-run CI when adopting newer Rust editions.
595595

596596
**Estimated Effort:** 2-3 hours
597597

book/appendices/appendix_d_installation_and_setup.md

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,23 @@ Topics include:
1313

1414
## D.1 System Requirements
1515

16-
- A recent stable Rust toolchain (see the main `README.md` for the recommended version).
16+
- A recent stable Rust toolchain (see below for tested versions).
1717
- A 64‑bit CPU; optional optimizations are available for x86‑64 (BMI2, AVX2) and ARM (NEON).
1818
- Enough memory to hold your working dataset plus index structures.
1919

20+
### D.1.1 Rust Version Compatibility
21+
22+
OctaIndex3D is tested across multiple Rust versions:
23+
24+
| Rust Version | Status | Notes |
25+
|-------------|-------------|--------------------------------------------|
26+
| **1.82.0** | Recommended | Default via `rust-toolchain.toml` in repo |
27+
| **1.77+** | Supported | Minimum Supported Rust Version (MSRV) |
28+
| \< 1.77 | Unsupported | Not covered by CI or book examples |
29+
30+
- For the book and examples, use the pinned toolchain by running commands inside the repository root or `book/` directory so that `rust-toolchain.toml` takes effect.
31+
- For your own projects, you can target Rust **1.77+**; CI in this repository checks both the current stable toolchain and the MSRV.
32+
2033
## D.2 Installation Instructions
2134

2235
For most users:
@@ -55,11 +68,11 @@ OctaIndex3D supports GPU acceleration for encoding, neighbor search, and range q
5568
5669
### D.5.1 Metal (macOS)
5770
58-
Metal support is enabled through the `metal` feature flag:
71+
Metal support is enabled through the `gpu-metal` feature flag:
5972
6073
```toml
6174
[dependencies]
62-
octaindex3d = { version = "0.4", features = ["metal"] }
75+
octaindex3d = { version = "0.4", features = ["gpu-metal"] }
6376
```
6477
6578
**Requirements:**
@@ -92,7 +105,7 @@ CUDA support requires the NVIDIA CUDA Toolkit and compatible GPU:
92105
93106
```toml
94107
[dependencies]
95-
octaindex3d = { version = "0.4", features = ["cuda"] }
108+
octaindex3d = { version = "0.4", features = ["gpu-cuda"] }
96109
```bash
97110
98111
**Requirements:**
@@ -140,7 +153,7 @@ Vulkan provides cross-platform GPU acceleration:
140153
141154
```toml
142155
[dependencies]
143-
octaindex3d = { version = "0.4", features = ["vulkan"] }
156+
octaindex3d = { version = "0.4", features = ["gpu-vulkan"] }
144157
```bash
145158
146159
**Requirements:**
@@ -681,6 +694,14 @@ Common issues and remedies:
681694
sudo apt-get install libssl-dev pkg-config
682695
```
683696
697+
- **`link.exe` or `lld` not found**
698+
- **Windows:** Ensure the MSVC toolchain is installed and selected (`rustup show active-toolchain` should include `msvc`).
699+
- **Linux/macOS:** Install the platform toolchain (`build-essential` on Debian/Ubuntu, `xcode-select --install` on macOS).
700+
701+
- **Rust version mismatches between CI and local**
702+
- Run `rustc --version` locally and compare against the pinned `rust-toolchain.toml` and MSRV noted in §D.1.1.
703+
- When upgrading Rust, update `rust-toolchain.toml`, run `cargo check` with `1.77` (MSRV) and stable, and only then rely on newer language features.
704+
684705
### D.9.2 Runtime Issues
685706
686707
- **Examples or benchmarks run slowly on laptop hardware**
@@ -702,6 +723,11 @@ Common issues and remedies:
702723
system_profiler SPDisplaysDataType | grep Metal
703724
```bash
704725
726+
- **Platform-specific GPU issues**
727+
- **Windows:** Ensure the NVIDIA or vendor driver is installed and matches the CUDA/Vulkan runtime versions; WSL2 users may need to enable GPU passthrough explicitly.
728+
- **Linux:** Confirm that kernel modules are loaded (`nvidia-smi` or `lsmod | grep amdgpu`) and that you are not inside a container without GPU access.
729+
- **macOS:** Verify that you are on a Metal-capable GPU and that Xcode Command Line Tools are installed; older Intel Macs without full Metal support may fall back to CPU paths.
730+
705731
### D.9.3 Docker Issues
706732
707733
- **Container build fails on ARM64**

0 commit comments

Comments
 (0)