fix: documentation and code quality improvements since 0.1.3 - #312
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Updates user/developer documentation to match the post-0.1.3 behavior and outputs (now 0.1.4), and tightens CLI optimization validation to align with existing env-var restrictions.
Changes:
- Regenerates/refreshes CLI example outputs and fixes multiple doc inaccuracies (commands, defaults, JSON field types/mappings).
- Documents additional behavior/limitations (threads flag, osaka default, blob* builtins status).
- Rejects unsupported
-O0via CLI by validating optimization levels againstMIDDLE_END_LEVELS.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| solx-core/src/arguments.rs | Adds CLI-side validation for optimization levels (disallowing -O0 via MIDDLE_END_LEVELS). |
| solx-codegen-evm/src/optimizer/settings/mod.rs | Minor comment removal within optimizer settings parsing. |
| docs/src/user-guide/04-limitations.md | Clarifies blob opcode limitation semantics (parsed but not lowered). |
| docs/src/user-guide/03-standard-json.md | Fixes standard JSON spec inconsistencies (types/mappings/placeholders) and wording. |
| docs/src/user-guide/02-command-line-interface.md | Refreshes CLI outputs/examples, documents --threads, updates defaults and naming in examples. |
| docs/src/user-guide/01-installation.md | Minor wording/link adjustment around toolchain pinning. |
| docs/src/internals/04-yul-builtins.md | Adds blob-related builtins and clarifies current lowering status. |
| docs/src/developer-guide/04-sanitizers.md | Fixes LLVM build command references/paths. |
| docs/src/developer-guide/03-llvm-options.md | Fixes solx-dev llvm build command usage in docs. |
| docs/src/developer-guide/02-debugging.md | Removes incorrect “via-ir only” qualifier for --ir docs. |
| CLAUDE.md | Fixes cargo test-slang alias expansion to include target dir. |
hedgar2017
force-pushed
the
docs/fix-documentation-inconsistencies
branch
11 times, most recently
from
March 27, 2026 05:27
b5069b6 to
7a4f5f7
Compare
Regenerate all output examples from the current compiler build, fixing stale version strings (0.1.0/0.1.3 → 0.1.4), a zksolc CBOR hex leftover, wrong evmVersion default (cancun → osaka), stale solc 0.8.30 metadata, and Test→Simple contract name mismatches throughout. Fix incorrect commands in sanitizer and LLVM options guides, broken link in installation docs, wrong field types and comment mappings in standard JSON spec. Add missing --threads CLI section, state osaka as --evm-version default, remove incorrect --ir "via-ir only" qualifier, and fix CLAUDE.md alias. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Deduplicate three separate path-to-filename sanitization rules into a single `ContractName::sanitize_path` in solx-utils. The unified rule replaces `\`, `/`, `.`, `:`, and space with underscores, fixing an inconsistency where IR dump files kept dots (`Simple.sol_Simple.evmla`) while build artifacts replaced them (`Simple_sol_Simple.bin`). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The `--via-ir` pipeline silently miscompiled contracts using `blobhash`
or `blobbasefee` — the catch-all `_ => Ok(None)` dropped these calls
without generating code or errors. The legacy EVMLA pipeline already
rejected both correctly.
Add explicit error messages matching the legacy pipeline, and replace
the wildcard catch-all with `Name::Verbatim { .. } => Ok(None)` so the
match is exhaustive. Any new `Name` variant will now produce a compile
error until explicitly handled.
Update yul builtins reference and limitations docs to reflect
compile-time rejection.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hedgar2017
force-pushed
the
docs/fix-documentation-inconsistencies
branch
from
March 27, 2026 05:57
7a4f5f7 to
48bad4e
Compare
The help string advertised -O0 but the CLI rejects it. Update to reflect the current supported values and add a regression test. Rename `try_from_standard_json` to `try_from_mode` and route all three I/O paths (CLI, env var, standard JSON) through it, eliminating duplicate MIDDLE_END_LEVELS validation in arguments.rs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hedgar2017
force-pushed
the
docs/fix-documentation-inconsistencies
branch
from
March 27, 2026 06:35
48bad4e to
100f75f
Compare
Contributor
Author
|
To be rebased without squashing. |
Coverage Summary
|
vladimirradosavljevic
approved these changes
Mar 27, 2026
nebasuke
approved these changes
Mar 27, 2026
nebasuke
left a comment
Member
There was a problem hiding this comment.
Generally looks really good, one nit.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Test→Simplecontract name mismatchesevm.bytecode.linkReferencesselector, stalebenchmarksnesting and type--threadsCLI section, state osaka as--evm-versiondefault, fix--ir"via-ir only" qualifier, fix grammar and broken#--yulanchorContractName::sanitize_pathacross three code pathsBLOBHASHandBLOBBASEFEEin the Yul pipeline (was silently miscompiling via--via-ir), remove deadVerbatimvariant, seal the match as exhaustive-O0behindMIDDLE_END_LEVELS, renametry_from_standard_jsontotry_from_mode, deduplicate validation across all three I/O paths