diff --git a/.llm/BETA_1_TOOLING_HARDENING.md b/.llm/BETA_1_TOOLING_HARDENING.md index a5ef6d8..569a3b4 100644 --- a/.llm/BETA_1_TOOLING_HARDENING.md +++ b/.llm/BETA_1_TOOLING_HARDENING.md @@ -1,8 +1,8 @@ # Beta.1 Tooling Hardening Scope -This file tracks the first post-`1.0.0-beta` tooling bundle. It is committed on -`main` but must not be tagged as `1.0.0-beta.1` until the connected bundle is -complete and the full release gate passes near publication. +This file tracks the first post-`1.0.0-beta` tooling bundle, released as +`1.0.0-beta.1`. The slice keeps the beta language surface unchanged and +hardens the local compiler workflow, install layout, and release gate. ## Implemented In This Slice @@ -34,8 +34,8 @@ complete and the full release gate passes near publication. - no operating-system package-manager integration - no stable install layout promise beyond this beta toolchain layout -## Remaining Before Tagging `1.0.0-beta.1` +## Release Gate -- rerender publication PDFs only if documentation release text changes -- run the full release gate from a clean checkout state -- decide whether this tooling bundle is sufficient for the `1.0.0-beta.1` tag +- rerender publication PDFs when documentation release text changes +- run the full release gate from a clean checkout state before tagging +- tag only after the connected tooling bundle and generated documents agree diff --git a/.llm/ROADMAP_TO_STABLE.md b/.llm/ROADMAP_TO_STABLE.md index 9f2a233..3074ab0 100644 --- a/.llm/ROADMAP_TO_STABLE.md +++ b/.llm/ROADMAP_TO_STABLE.md @@ -18,7 +18,8 @@ The detailed post-beta feature plan lives in summary and use the public roadmap document when choosing the next connected implementation scope. -1. Harden monorepo release tooling, install flow, and common build/run loops. +1. Harden monorepo release tooling, install flow, and common build/run loops + (`1.0.0-beta.1`). 2. Define runtime resource and host-error policy before broad IO and networking. 3. Stabilize `lib/std` module boundaries and document beta-vs-stable APIs. 4. Improve language usability around entry points, `match`, aliases, and diff --git a/README.md b/README.md index 6e6cde7..cf6aa69 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This repository is the canonical public monorepo for the language design, standard library source, compiler, runtime, examples, benchmarks, and technical documents. -Current release: `1.0.0-beta`. +Current release: `1.0.0-beta.1`. ## Repository Layout @@ -24,7 +24,9 @@ scripts/ local release and document tooling ## Beta Scope -`1.0.0-beta` supports practical local command-line programs and libraries with: +`1.0.0-beta.1` keeps the `1.0.0-beta` language baseline and adds the first +post-beta tooling/install hardening slice. The language baseline supports +practical local command-line programs and libraries with: - modules, explicit imports, packages, and local workspaces - `new`, `check`, `fmt`, `test`, `doc`, and `build` @@ -72,10 +74,10 @@ Build a native executable when Clang is available: SLOVO_STD_PATH="$PWD/lib/std" ./compiler/target/debug/glagol build hello -o hello/bin ``` -## Post-Beta Main Additions +## 1.0.0-beta.1 Tooling Additions -The `main` branch contains unreleased tooling work intended for a future -`1.0.0-beta.1` bundle. +The `1.0.0-beta.1` release improves the common local development and install +loop without adding new source-language syntax. Build and execute in one step: diff --git a/compiler/Cargo.lock b/compiler/Cargo.lock index 01cdf20..c9131fc 100644 --- a/compiler/Cargo.lock +++ b/compiler/Cargo.lock @@ -4,4 +4,4 @@ version = 3 [[package]] name = "glagol" -version = "1.0.0-beta" +version = "1.0.0-beta.1" diff --git a/compiler/Cargo.toml b/compiler/Cargo.toml index 4abf633..d334dd0 100644 --- a/compiler/Cargo.toml +++ b/compiler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "glagol" -version = "1.0.0-beta" +version = "1.0.0-beta.1" edition = "2021" description = "Glagol, the first compiler for the Slovo language" license = "MIT OR Apache-2.0" diff --git a/docs/POST_BETA_ROADMAP.md b/docs/POST_BETA_ROADMAP.md index 6d42cb4..3b9ebe6 100644 --- a/docs/POST_BETA_ROADMAP.md +++ b/docs/POST_BETA_ROADMAP.md @@ -36,10 +36,10 @@ Work: - make release gates print a concise final summary - keep PDF rendering explicit and non-mutating by default -Current main-branch progress after `1.0.0-beta`: `glagol run`, -`glagol clean`, `glagol new --template binary|library|workspace`, -`scripts/install.sh`, installed std/runtime discovery, README coverage, -focused DX tests, and a concise release-gate success line are implemented. +Released in `1.0.0-beta.1`: `glagol run`, `glagol clean`, +`glagol new --template binary|library|workspace`, `scripts/install.sh`, +installed std/runtime discovery, README coverage, focused DX tests, and a +concise release-gate success line. Why first: it reduces friction for every later feature and gives users a better way to exercise the beta. diff --git a/docs/compiler/RELEASE_NOTES.md b/docs/compiler/RELEASE_NOTES.md index 2a846b9..eca7be9 100644 --- a/docs/compiler/RELEASE_NOTES.md +++ b/docs/compiler/RELEASE_NOTES.md @@ -10,8 +10,20 @@ integration/readiness release, not the first real beta. ## Unreleased -Post-beta main currently contains the first tooling-hardening slice for a -future `1.0.0-beta.1` bundle: +No changes are recorded after `1.0.0-beta.1`. + +## 1.0.0-beta.1 + +Release label: `1.0.0-beta.1` + +Release date: 2026-05-22 + +Release state: first post-beta tooling hardening release + +### Summary + +Glagol `1.0.0-beta.1` keeps the `1.0.0-beta` language/compiler support +baseline and releases the first tooling-hardening slice: - `glagol run ` compiles through the existing hosted native build path, runs the produced executable, forwards stdout/stderr, and returns @@ -25,8 +37,11 @@ future `1.0.0-beta.1` bundle: executable, with `SLOVO_RUNTIME_C` and `GLAGOL_RUNTIME_C` overrides - the release gate prints a concise final success summary -This is a toolchain workflow slice only. It does not claim a new stable ABI, -runtime resource model, networking surface, or package registry. +### Explicit Deferrals + +This is a toolchain workflow slice only. It does not claim new source syntax, +a new stable ABI, a runtime resource model, networking surface, or package +registry. ## 1.0.0-beta diff --git a/docs/compiler/ROADMAP.md b/docs/compiler/ROADMAP.md index acfb677..b47d702 100644 --- a/docs/compiler/ROADMAP.md +++ b/docs/compiler/ROADMAP.md @@ -22,12 +22,13 @@ general-purpose beta release. A Glagol feature is done only when it has parser/lowerer support, checker behavior, diagnostics for invalid forms, backend behavior or explicit unsupported diagnostics, and tests. -Current stage: `1.0.0-beta`, released on 2026-05-21 as the first real -general-purpose beta Glagol toolchain. The beta release integrates the -completed unsigned `u32`/`u64` compiler and stdlib breadth scope from -`exp-125` with the already promoted project/package workflow, explicit -std-source imports, concrete vector families, fixed arrays, structs, enums, -result/option, generated docs, formatter behavior, and structured diagnostics. +Current stage: `1.0.0-beta.1`, released on 2026-05-22 as the first post-beta +tooling hardening update. It keeps the `1.0.0-beta` language/compiler support +baseline, which integrates the completed unsigned `u32`/`u64` compiler and +stdlib breadth scope from `exp-125` with the already promoted project/package +workflow, explicit std-source imports, concrete vector families, fixed arrays, +structs, enums, result/option, generated docs, formatter behavior, and +structured diagnostics. The final experimental precursor scope is `exp-125`. Its unsigned direct-value flow, parse/format runtime lanes, and matching staged stdlib helper breadth diff --git a/docs/language/RELEASE_NOTES.md b/docs/language/RELEASE_NOTES.md index c9e6bf3..3a60201 100644 --- a/docs/language/RELEASE_NOTES.md +++ b/docs/language/RELEASE_NOTES.md @@ -8,15 +8,25 @@ Historical `exp-*` releases listed here are experimental maturity milestones. The pushed tag `v2.0.0-beta.1` is historical. It is now documented as an experimental integration/readiness release, not as a beta maturity claim. -The current release is `1.0.0-beta`, published on 2026-05-21. It absorbs the -final unsigned precursor scope from `exp-125` and promotes the current -project/package, stdlib-source, collection, composite-data, diagnostics, -formatter, docs, and governance surface to beta maturity. +The current release is `1.0.0-beta.1`, published on 2026-05-22. It keeps the +`1.0.0-beta` language surface and adds the first post-beta tooling/install +hardening bundle. ## Unreleased -Post-beta main currently contains tooling hardening intended for a future -`1.0.0-beta.1` bundle: +No changes are recorded after `1.0.0-beta.1`. + +## 1.0.0-beta.1 + +Release label: `1.0.0-beta.1` + +Release name: First Post-Beta Tooling Hardening Bundle + +Release date: 2026-05-22 + +Status: released beta tooling update on the `1.0.0-beta` language baseline. + +`1.0.0-beta.1` contains tooling hardening only: - `glagol run ` builds and executes through the hosted native toolchain using `.slovo/build` when `-o` is not provided @@ -30,7 +40,7 @@ Post-beta main currently contains tooling hardening intended for a future overrides still available - the release gate prints a concise final success line after all checks pass -This unreleased slice does not add source-language syntax, stable ABI/layout +This beta.1 slice does not add source-language syntax, stable ABI/layout guarantees, networking, package registry behavior, or a stable standard-library freeze. diff --git a/docs/language/ROADMAP.md b/docs/language/ROADMAP.md index f5ec8aa..9e07062 100644 --- a/docs/language/ROADMAP.md +++ b/docs/language/ROADMAP.md @@ -10,12 +10,13 @@ Long-horizon planning lives in release train from the historical `v2.0.0-beta.1` tag toward and beyond the first real general-purpose beta Slovo contract. -Current stage: `1.0.0-beta`, released on 2026-05-21 as the first real -general-purpose beta Slovo contract. The beta release integrates the completed -unsigned `u32`/`u64` numeric and staged-stdlib breadth scope from `exp-125` -with the already promoted project/package workflow, explicit std-source -imports, concrete vector families, fixed arrays, structs, enums, result/ -option, generated docs, formatter behavior, and structured diagnostics. +Current stage: `1.0.0-beta.1`, released on 2026-05-22 as the first post-beta +tooling hardening update. It keeps the `1.0.0-beta` language contract, which +integrates the completed unsigned `u32`/`u64` numeric and staged-stdlib breadth +scope from `exp-125` with the already promoted project/package workflow, +explicit std-source imports, concrete vector families, fixed arrays, structs, +enums, result/option, generated docs, formatter behavior, and structured +diagnostics. The final experimental precursor scope is `exp-125`, defined in `.llm/EXP_125_UNSIGNED_U32_U64_NUMERIC_AND_STDLIB_BREADTH_ALPHA.md`. Its diff --git a/docs/language/SPEC-v1.md b/docs/language/SPEC-v1.md index 5d9e58d..e218ef6 100644 --- a/docs/language/SPEC-v1.md +++ b/docs/language/SPEC-v1.md @@ -1,13 +1,15 @@ # Slovo v1 Specification -Status: living beta contract for `1.0.0-beta`, integrating promoted language -slices through `exp-125` and the historical publication baseline through -`exp-123`. `1.0.0-beta` is the first real general-purpose beta release. -`exp-125` completed the unsigned numeric and stdlib breadth precursor scope, -`exp-124` is the last tagged experimental alpha language contract before beta, -and `exp-123` is the last tagged experimental documentation/tooling contract -before beta. `1.0.0-beta` includes direct `u32` and `u64` value flow, decimal -suffixed literals `42u32` / `42u64`, same-type unsigned +Status: living beta contract for `1.0.0-beta`, with the post-beta +`1.0.0-beta.1` tooling/install update. The language contract integrates +promoted language slices through `exp-125` and the historical publication +baseline through `exp-123`. `1.0.0-beta` is the first real general-purpose +beta release. `exp-125` completed the unsigned numeric and stdlib breadth +precursor scope, `exp-124` is the last tagged experimental alpha language +contract before beta, and `exp-123` is the last tagged experimental +documentation/tooling contract before beta. `1.0.0-beta` includes direct +`u32` and `u64` value flow, decimal suffixed literals `42u32` / `42u64`, +same-type unsigned arithmetic/comparison, unsigned print/format/parse-result runtime lanes, and matching staged stdlib helper parity alongside the previously promoted project/package, collection, composite-data, docs, and diagnostics surface. @@ -934,8 +936,8 @@ The normative v1.7 release contract is ### 4.4.1 Post-Beta Tooling Additions -Post-beta main adds tooling-only conveniences intended for a future -`1.0.0-beta.1` bundle. These commands do not change source syntax or typed-core +`1.0.0-beta.1` adds tooling-only conveniences after the `1.0.0-beta` +language baseline. These commands do not change source syntax or typed-core semantics. `glagol run ` builds through the same hosted native path as diff --git a/docs/language/examples/README.md b/docs/language/examples/README.md index bc244d2..a8ad127 100644 --- a/docs/language/examples/README.md +++ b/docs/language/examples/README.md @@ -5,10 +5,12 @@ Examples are split by current compiler support. ## Compiler-Supported Targets Entries in this section are current compiler support under the matching -release notes. The current compiler-supported baseline is `1.0.0-beta`, -which absorbs the final exp-125 unsigned precursor scope alongside the -already promoted project/package, stdlib-source, collection, composite-data, -formatter, and diagnostics surface. +release notes. The current compiler-supported language baseline is +`1.0.0-beta`; `1.0.0-beta.1` adds tooling/install hardening without changing +these source-language fixtures. The language baseline absorbs the final +exp-125 unsigned precursor scope alongside the already promoted +project/package, stdlib-source, collection, composite-data, formatter, and +diagnostics surface. `supported/add.slo` is the current executable promotion fixture. Glagol can parse it, lower it, type-check it, emit LLVM for it, and cover that output with an automated diff --git a/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf b/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf index 5516321..b241c2c 100644 Binary files a/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf and b/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf differ diff --git a/docs/papers/GLAGOL_WHITEPAPER.md b/docs/papers/GLAGOL_WHITEPAPER.md index 7110f7e..759465d 100644 --- a/docs/papers/GLAGOL_WHITEPAPER.md +++ b/docs/papers/GLAGOL_WHITEPAPER.md @@ -5,15 +5,16 @@ Sanjin Gumbarevic
hermeticum_lab@protonmail.com -Publication release: `1.0.0-beta` +Publication release: `1.0.0-beta.1` Technical behavior baseline: compiler and language support through -`1.0.0-beta` +`1.0.0-beta`; tooling and install workflow through `1.0.0-beta.1` -Date: 2026-05-21 +Date: 2026-05-22 Evidence source: paired local Slovo/Glagol monorepo verification and benchmark -reruns from a local checkout +reruns from a local checkout; beta.1 release-gate verification from the public +monorepo Maturity: beta @@ -24,13 +25,14 @@ Slovo. It exists to make the language support boundary inspectable: tokens, S-expression tree, AST, typed AST, LLVM IR, hosted native executable, tests, diagnostics, and release documents should agree. -The current publication release, `1.0.0-beta`, records the first real -general-purpose beta toolchain for Slovo. It includes the completed `u32` / -`u64` unsigned compiler and stdlib breadth scope alongside the current -nine-kernel benchmark suite. This paper records the current beta -implementation surface, the benchmark method and results, the distinction -between Glagol and Lisp-family implementations, and the compiler path from -beta to stable. +The current publication release, `1.0.0-beta.1`, keeps the first real +general-purpose beta toolchain baseline from `1.0.0-beta` and records the +first post-beta tooling/install hardening update. The beta baseline includes +the completed `u32` / `u64` unsigned compiler and stdlib breadth scope +alongside the current nine-kernel benchmark suite. This paper records the +current beta implementation surface, the benchmark method and results, the +distinction between Glagol and Lisp-family implementations, the beta.1 +tooling update, and the compiler path from beta to stable. ## 1. Compiler Thesis @@ -92,6 +94,8 @@ that Glagol is a macro-first Lisp VM or a generic list runtime. At the current technical behavior beta baseline, Glagol supports: - `check`, `fmt`, `fmt --check`, `fmt --write`, `test`, `build`, and `doc` +- `run` for build-and-execute workflows, `clean` for generated build + artifacts, and `new --template binary|library|workspace` - JSON diagnostics, textual artifact manifests, and lowering inspection - hosted native executable generation through emitted LLVM IR, host `clang -O2`, and `runtime/runtime.c` @@ -112,8 +116,8 @@ At the current technical behavior beta baseline, Glagol supports: - benchmark scaffolds for Slovo, C, Rust, Python, Clojure, and Common Lisp/SBCL, with `cold-process` and `hot-loop` timing modes -The current release, `1.0.0-beta`, is the first release that may honestly use -beta maturity language for this toolchain. +The current release, `1.0.0-beta.1`, is a beta tooling update on the first +release that may honestly use beta maturity language for this toolchain. ## 4. Diagnostics And Support Discipline @@ -159,7 +163,7 @@ Environment: | Field | Value | | --- | --- | | Host | `Linux 6.17.10-100.fc41.x86_64 x86_64 GNU/Linux` | -| Glagol | `glagol 1.0.0-beta` | +| Glagol | `glagol 1.0.0-beta` benchmark baseline | | Python | `Python 3.13.9` | | C compiler | `clang version 19.1.7 (Fedora 19.1.7-5.fc41)` | | Rust | `rustc 1.77.2 (25ef9e3d8 2024-04-09)` | @@ -268,7 +272,11 @@ python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --w ## 7. Benchmark Results -The exp-123 publication baseline widens the paired same-machine result set +The benchmark rows below remain the full-suite `1.0.0-beta` publication +baseline. `1.0.0-beta.1` changes tooling and install workflow only; it does +not claim changed benchmark performance. + +The exp-123 publication baseline widened the paired same-machine result set from seven rows to nine by adding two owned-vector kernels: - `vec-i32-index-loop` @@ -354,11 +362,11 @@ coverage and compatibility: - package behavior becoming stable before dependency, manifest, and versioning rules are precise -## 9. Path Beyond `1.0.0-beta` +## 9. Path Beyond `1.0.0-beta.1` -Glagol now implements the first real beta Slovo contract and passes the -required beta workflow proof plus release gate. The remaining path is from -beta to stable. +Glagol now implements the first real beta Slovo contract and has a first +post-beta tooling/install hardening release. The remaining path is from beta +to stable. Recommended compiler sequence: diff --git a/docs/papers/GLAGOL_WHITEPAPER.pdf b/docs/papers/GLAGOL_WHITEPAPER.pdf index 0d6bcfe..dc87d2a 100644 Binary files a/docs/papers/GLAGOL_WHITEPAPER.pdf and b/docs/papers/GLAGOL_WHITEPAPER.pdf differ diff --git a/docs/papers/SLOVO_MANIFEST.pdf b/docs/papers/SLOVO_MANIFEST.pdf index 263fb33..f3ffa8b 100644 Binary files a/docs/papers/SLOVO_MANIFEST.pdf and b/docs/papers/SLOVO_MANIFEST.pdf differ diff --git a/docs/papers/SLOVO_WHITEPAPER.md b/docs/papers/SLOVO_WHITEPAPER.md index 0aba036..3f053b5 100644 --- a/docs/papers/SLOVO_WHITEPAPER.md +++ b/docs/papers/SLOVO_WHITEPAPER.md @@ -5,14 +5,16 @@ Sanjin Gumbarevic
hermeticum_lab@protonmail.com -Publication release: `1.0.0-beta` +Publication release: `1.0.0-beta.1` -Technical behavior baseline: language surface through `1.0.0-beta` +Technical behavior baseline: language surface through `1.0.0-beta`; tooling +and install workflow through `1.0.0-beta.1` -Date: 2026-05-21 +Date: 2026-05-22 Evidence source: paired local Slovo/Glagol monorepo verification and benchmark -reruns from a local checkout +reruns from a local checkout; beta.1 release-gate verification from the public +monorepo Maturity: beta @@ -26,20 +28,21 @@ explicit types, explicit failure through `option` and `result`, lexical `unsafe`, and native compilation through the Glagol compiler to LLVM IR and hosted executables. -The current publication release, `1.0.0-beta`, records the first real -general-purpose beta baseline for Slovo. It includes the completed `u32` / -`u64` unsigned scope, the staged stdlib breadth that makes ordinary -command-line programs practical, and the current nine-kernel benchmark suite. -This paper records the current beta technical state, the difference between -Slovo and Lisp-family languages, the current benchmark methodology, and the -remaining path from beta to stable. +The current publication release, `1.0.0-beta.1`, keeps the first real +general-purpose beta language baseline from `1.0.0-beta` and records the first +post-beta tooling/install hardening update. The beta baseline includes the +completed `u32` / `u64` unsigned scope, the staged stdlib breadth that makes +ordinary command-line programs practical, and the current nine-kernel +benchmark suite. This paper records the current beta technical state, the +difference between Slovo and Lisp-family languages, the benchmark methodology, +the beta.1 tooling update, and the remaining path from beta to stable. ## 1. Scope This document is a technical state paper for the current beta baseline. It summarizes the behavior represented by the paired local Slovo and Glagol -workspaces, with `1.0.0-beta` as both the current language-surface and -publication baseline. +workspaces, with `1.0.0-beta` as the current language-surface baseline and +`1.0.0-beta.1` as the current publication/tooling baseline. The support rule remains strict: @@ -51,7 +54,7 @@ The support rule remains strict: - partial parser recognition or speculative examples do not count as support Historical `exp-*` releases remain experimental alpha maturity. The current -publication accompanies `1.0.0-beta`. +publication accompanies `1.0.0-beta.1`. ## 2. Design Thesis @@ -214,6 +217,11 @@ The toolchain currently provides: - textual artifact manifests - lowering inspection - native executable output through hosted LLVM/Clang integration +- `glagol run` for build-and-execute workflows +- `glagol clean` for generated `.slovo/build` artifacts +- `glagol new --template binary|library|workspace` +- `scripts/install.sh` with installed `bin/glagol`, + `share/slovo/std`, and `share/slovo/runtime/runtime.c` - benchmark scaffolds for Slovo, C, Rust, Python, Clojure, and Common Lisp/SBCL comparisons - repo-local release-gate and document-render scripts for publication @@ -233,7 +241,7 @@ Environment: | Field | Value | | --- | --- | | Host | `Linux 6.17.10-100.fc41.x86_64 x86_64 GNU/Linux` | -| Glagol | `glagol 1.0.0-beta` | +| Glagol | `glagol 1.0.0-beta` benchmark baseline | | Python | `Python 3.13.9` | | C compiler | `clang version 19.1.7 (Fedora 19.1.7-5.fc41)` | | Rust | `rustc 1.77.2 (25ef9e3d8 2024-04-09)` | @@ -342,7 +350,11 @@ python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --w ## 7. Benchmark Results -The exp-123 publication baseline widens the paired same-machine result set +The benchmark rows below remain the full-suite `1.0.0-beta` publication +baseline. `1.0.0-beta.1` changes tooling and install workflow only; it does +not claim changed benchmark performance. + +The exp-123 publication baseline widened the paired same-machine result set from seven rows to nine by adding two owned-vector kernels: - `vec-i32-index-loop` @@ -461,10 +473,11 @@ Major remaining gaps before `1.0.0`: - semantic versioning and deprecation policy - a clear separation between stable and experimental features -## 10. Path Beyond `1.0.0-beta` +## 10. Path Beyond `1.0.0-beta.1` The beta threshold is now real. The next work should treat `1.0.0-beta` as -the compatibility-governed baseline and move deliberately toward stable +the language compatibility-governed baseline, and `1.0.0-beta.1` as the first +tooling/install hardening point, then move deliberately toward stable general-purpose status. Recommended sequence: diff --git a/docs/papers/SLOVO_WHITEPAPER.pdf b/docs/papers/SLOVO_WHITEPAPER.pdf index 8a35c40..19b18e4 100644 Binary files a/docs/papers/SLOVO_WHITEPAPER.pdf and b/docs/papers/SLOVO_WHITEPAPER.pdf differ