https://github.com/speakeztech/fidelity-extension
F# development support for the Fidelity framework with Firefly compiler integration
https://github.com/speakeztech/fidelity-extension
Last synced: 20 days ago
JSON representation
F# development support for the Fidelity framework with Firefly compiler integration
- Host: GitHub
- URL: https://github.com/speakeztech/fidelity-extension
- Owner: speakeztech
- License: apache-2.0
- Created: 2025-06-11T12:43:15.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-11T15:03:51.000Z (about 1 year ago)
- Last Synced: 2025-08-08T01:23:52.274Z (10 months ago)
- Language: TypeScript
- Size: 24.4 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Fidelity Extension for Visual Studio Code
⚠️ Caution: Experimental ⚠️
This project is in early development and not intended for production use.
The Fidelity extension aims to provide comprehensive development support for the Fidelity framework, an F# platform designed for building native executables through MLIR and LLVM compilation paths, free from dependencies on the .NET CLR. This extension enhances the development experience for Fidelity projects by offering syntax highlighting and language support for intermediate representation files generated throughout [the Firefly compiler](https://github.com/speakez-llc/Firefly) pipeline.
[](LICENSE)
## About the Fidelity Framework
Fidelity represents a modern approach to F# development that eliminates dependencies on the .NET runtime and Base Class Library. The framework enables developers to create native executables through a sophisticated compilation pipeline that leverages Multi-Level Intermediate Representation (MLIR) and Low-Level Virtual Machine (LLVM) technologies. This approach delivers superior performance characteristics while maintaining the expressive power and functional programming paradigms that define F# development.
Firefly serves as the central component of the Fidelity toolchain, transforming F# source code through multiple intermediate representations before generating optimized native code. The compilation process produces various intermediate files that developers need to inspect, debug, and optimize during the development workflow.
## Supported File Types
The Fidelity extension provides specialized syntax highlighting and language configuration for four distinct file types that represent different stages of the Firefly compilation pipeline:
**F# Compiler Service Output (.fcs)** files contain the complete parse tree structure generated by the F# compiler service. These files preserve all syntactic and semantic information from the original source code, including position data, type annotations, and metadata containers. The extension highlights the extensive vocabulary of compiler service constructs, enabling developers to understand the detailed analysis performed during the initial compilation phases.
**Oak Intermediate Representation (.oak)** files represent a simplified version of the compiler service output, processed through [the Fantomas library](https://github.com/fsprojects/fantomas) to create more readable intermediate code. These files maintain the essential semantic structure while removing compiler artifacts and metadata, providing a cleaner view of the program structure for analysis and optimization purposes.
**Multi-Level Intermediate Representation (.mlir)** files utilize the operation-centric MLIR framework for representing and transforming code across multiple abstraction levels. The extension provides syntax highlighting for MLIR operations, types, attributes, and dialect-specific constructs that enable sophisticated compiler optimizations.
**LLVM Text Format (.ll)** files contain the Low-Level Virtual Machine intermediate representation that serves as the foundation for native code generation. The extension highlights LLVM instructions, type system constructs, and metadata to facilitate inspection and optimization of the generated intermediate code.
## Current Capabilities
This initial release focuses on providing robust syntax highlighting and language configuration for all supported file types. The extension recognizes file extensions automatically and applies appropriate syntax coloring, bracket matching, and auto-completion features that enhance code readability and editing efficiency.
The syntax highlighting definitions have been specifically designed for the Fidelity framework development workflow, emphasizing the constructs and patterns most relevant to dependency-free F# development and native compilation processes. The language configurations support proper indentation, bracket matching, and auto-closing pairs that streamline the editing experience when working with intermediate representation files.
## Future Development
The extension architecture establishes the foundation for comprehensive Firefly compiler integration that will extend beyond syntax highlighting to include active development workflow support. Future releases will introduce command integration that enables direct invocation of Firefly compiler operations from within the Visual Studio Code environment.
Planned features include dependency validation for [the VSCode extension for Ionide](https://github.com/ionide/ionide-vscode-fsharp) and related F# development tools, project template creation for Fidelity framework applications, and integrated build management that coordinates compilation across multiple source files. The extension will also provide diagnostic reporting that displays Firefly compiler messages directly within the editor interface.
Future language service features anticipate hover information for compiler constructs over LLVM and MLIR operations, and symbol navigation across intermediate representation files. We expect that these capabilities will lean into `llvm-vs-code-extensions.vscode-mlir` extension. However, we expect that these advanced features will be slated for a later revision and simple TextMate formatting will suffice in the early stages of this extension's development.
## Installation and Usage
The extension installs through the standard Visual Studio Code extension marketplace and activates automatically when opening files with supported extensions. No additional configuration is required for basic syntax highlighting functionality, though future releases will introduce settings for compiler path configuration and build system integration.
Once installed, the extension immediately recognizes .fcs, .oak, .ll, and .mlir files and applies appropriate syntax highlighting. The language configurations enable standard editing features such as bracket matching, auto-indentation, and comment formatting that enhance productivity when working with intermediate representation files.
## Development and Contribution
The Fidelity extension development aspires to follow professional software engineering practices with version control and documentation standards. The extension architecture accommodates future feature expansion while maintaining stability and performance characteristics suitable for production development environments.
The project welcomes contributions from developers working with the Fidelity framework and functional programming communities. The extension serves as a critical component of the Fidelity development ecosystem and benefits from community feedback and enhancement suggestions.
## License
BAREWire is dual-licensed under both the Apache License 2.0 and a Commercial License.
### Open Source License
For most users, including:
- Open source projects
- Academic and educational use
- Non-commercial applications
- Personal projects and experimentation
- Internal tools that are not part of your commercial product
You can use this extension under the **Apache License 2.0** license with no additional requirements. The Apache License 2.0 is a permissive open source license that allows you to use, modify, and distribute the software with minimal restrictions.
### Commercial License
A Commercial License is required if you are:
- Incorporating Fidelity framework applications into a commercial product or service that you sell to customers
- Using Firefly or Fidelity as part of your company's commercial offering
- Distributing Fidelity based software tooling as part of a proprietary software solution
- Requiring professional support, indemnification, or custom development
The Commercial License provides additional rights and benefits not available under the Apache License 2.0, including explicit patent rights, professional support options, and freedom from certain open source requirements.
For information about obtaining a Commercial License, please see [Commercial.md](Commercial.md) or contact us directly.
### Patent Notice
BAREWire includes technology covered by U.S. Patent Application No. 63/786,247 "System and Method for Zero-Copy Inter-Process Communication Using BARE Protocol". For details on patent licensing under both the Apache and Commercial licenses, please see [PATENTS.md](PATENTS.md).
## Support
This extension is developed specifically for the Fidelity framework ecosystem and maintains compatibility with current Visual Studio Code versions. Support and documentation updates align with Fidelity framework releases and development milestones.
For issues, feature requests, and development discussions, please refer to the project repository and community channels associated with the Fidelity framework development efforts.