HSD-Fortran
User Documentation
Installation
Requirements
Building with CMake
Basic Build
Debug Build with Coverage
CMake Options
Using as a CMake Subproject
Building with fpm
Using as an fpm Dependency
Verifying Installation
Running the Example
User Guide
Basic Usage
Loading HSD Files
Accessing Values
Default Values
Working with Arrays
Working with Matrices
Type Introspection
Working with Attributes (Units)
Modifying Trees
Saving HSD Files
Tree Operations
Cloning Trees
Merging Trees
Schema Validation
Validation Helpers
Visitor Pattern
Best Practices
Example: Complete Configuration Parser
HSD Format Reference
Basic Syntax
Structure
Comments
Data Types
Strings
Integers
Real Numbers
Booleans
Arrays
Complex Numbers
Matrices (Multi-line Data)
Advanced Syntax
Typed Blocks (Short Form)
Attributes (Units)
File Includes
Include Path Resolution
Escaping and Special Characters
Quoted Strings
Identifier Rules
Grammar Summary
Error Messages
Compatibility Notes
DFTB+ Compatibility
Differences from JSON/YAML
Error Message Quick Reference
Error Type Structure
Creating Errors with Context
Basic Error
Error with Full Context
Syntax Error Helper
Type Error Helper
Error Codes
Usage Examples
Handling Errors
Error Output Format
Common Error Scenarios
Unclosed Bracket
Include Cycle
File Not Found
Type Mismatch
Best Practices
Coding Conventions for
stat
Parameters
The Pattern
Recommended Approaches
Common Mistakes to Avoid
Using Local Status Variables
Thread Safety Guide
Overview
Thread Safety Summary
Detailed Analysis
Safe Operations (No Synchronization Needed)
Unsafe Operations (Require External Synchronization)
Module-Specific Notes
hsd_types
hsd_parser
hsd_formatter
hsd_schema
hsd_hash_table
OpenMP Considerations
Coarray Fortran Considerations
Recommendations
Future Considerations
Implementation Notes
Why No Built-in Synchronization?
Hash Table Thread Safety
Fuzz Testing
Prerequisites
Building the Fuzz Target
Running the Fuzzer
Basic Usage
Using the Dictionary
Parallel Fuzzing
Understanding Output
Reproducing Issues
Corpus Management
Minimizing the Corpus
Minimizing a Crash
Seed Corpus
Troubleshooting
“afl-qemu-trace not found”
“Hmm, your system is configured to send core dump notifications”
Low Execution Speed
AFL++ Shows 0 Paths
Reference
API Reference
Key Modules
Main Module
High-Level API (src/api/)
I/O Layer (src/io/)
Core Infrastructure (src/core/)
Data Structures (hsd_types)
Quick Reference
Common Operations
Error Handling
For More Details
HSD-Fortran
Search
Please activate JavaScript to enable the search functionality.