Improved net lib, refactored project structure, added XML documentation#34
Merged
itsdanieldk merged 4 commits intomainfrom Jul 18, 2025
Merged
Improved net lib, refactored project structure, added XML documentation#34itsdanieldk merged 4 commits intomainfrom
itsdanieldk merged 4 commits intomainfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This pull request introduces several significant changes to the FSharp.FIO project, including the addition of new projects, enhancements to existing code, and comprehensive XML documentation. The main purpose is to improve the project structure by separating concerns into distinct libraries (FSharp.FIO.Lib and FSharp.FIO.App) while adding extensive XML documentation for better API discoverability.
Key changes include:
- Creation of FSharp.FIO.App and FSharp.FIO.Lib projects with improved modularity
- Addition of comprehensive XML documentation across all public APIs
- Refactoring of networking libraries with enhanced functionality and type safety
- Project structure improvements and dependency updates
Reviewed Changes
Copilot reviewed 26 out of 27 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/FSharp.FIO.Tests/FSharp.FIO.Tests.fsproj | Reorganized project references and package references |
| src/FSharp.FIO/Runtime/Runtime.fs | Added comprehensive XML documentation for runtime types |
| src/FSharp.FIO/Runtime/DirectRuntime.fs | Added XML documentation for direct runtime |
| src/FSharp.FIO/Runtime/CooperativeRuntime.fs | Added XML documentation and cleaned up tuple syntax |
| src/FSharp.FIO/Runtime/ConcurrentRuntime.fs | Added XML documentation and cleaned up tuple syntax |
| src/FSharp.FIO/Runtime.Tools/Monitor.fs | Updated module namespace |
| src/FSharp.FIO/Runtime.Tools/DeadlockDetector.fs | Updated module namespace |
| src/FSharp.FIO/Lib/Net.fs | Removed old networking library |
| src/FSharp.FIO/Lib/IO.fs | Removed old IO library |
| src/FSharp.FIO/FSharp.FIO.fsproj | Updated project structure and dependencies |
| src/FSharp.FIO/Ext/App.fs | Removed old app extension |
| src/FSharp.FIO/DSL/Ops.fs | Added comprehensive XML documentation for operators |
| src/FSharp.FIO/DSL/Core.fs | Added comprehensive XML documentation for core types |
| src/FSharp.FIO/DSL/CE.fs | Added comprehensive XML documentation for computation expressions |
| src/FSharp.FIO.Lib/Net/WebSockets.fs | Added new comprehensive WebSocket library |
| src/FSharp.FIO.Lib/Net/Sockets.fs | Added new comprehensive Socket library |
| src/FSharp.FIO.Lib/IO/FConsole.fs | Added new comprehensive console I/O library |
| src/FSharp.FIO.Lib/FSharp.FIO.Lib.fsproj | Created new library project |
| src/FSharp.FIO.App/FSharp.FIO.App.fsproj | Created new app project |
| src/FSharp.FIO.App/App.fs | Added new app abstraction with XML documentation |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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.
This pull request introduces several significant changes to the
FSharp.FIOproject, including the addition of new projects, enhancements to existing code, and updates to project configurations. The most notable updates include the creation ofFSharp.FIO.AppandFSharp.FIO.Libprojects, improvements to error handling in examples, and adjustments to project references and configurations for better modularity and maintainability.New Projects and Architecture Enhancements:
FSharp.FIO.Appproject, which provides application-level helpers and theFIOAppbase class for running FIO effects as applications. This includes default runtime management, fiber handling, and customizable success/error handlers. (src/FSharp.FIO.App/App.fs,src/FSharp.FIO.App/FSharp.FIO.App.fsproj) [1] [2]FSharp.FIO.Libproject, which includes reusable components likeFConsole, socket utilities, and WebSocket utilities. (src/FSharp.FIO.Lib/FSharp.FIO.Lib.fsproj)Solution File Updates:
FSharp.FIO.slnto include the newFSharp.FIO.AppandFSharp.FIO.Libprojects. Added corresponding build configurations for these projects. (FSharp.FIO.sln) [1] [2] [3] [4]Error Handling Improvements:
FConsole.PrintLinewithFConsole.PrintLineMapErrorin thePingPongMatchAppandPongerfunctions to improve error handling in the example applications. (examples/FSharp.FIO.Examples.App/Program.fs)Project Reference and Dependency Updates:
FSharp.FIO.Benchmarks,FSharp.FIO.Examples, andFSharp.FIO.Examples.Appto include the newFSharp.FIO.AppandFSharp.FIO.Libprojects, improving modularity. (benchmarks/FSharp.FIO.Benchmarks/FSharp.FIO.Benchmarks.fsproj,examples/FSharp.FIO.Examples/FSharp.FIO.Examples.fsproj,examples/FSharp.FIO.Examples.App/FSharp.FIO.Examples.App.fsproj) [1] [2] [3]Minor Adjustments:
SocketAppandWebSocketAppto ensure proper execution flow. (examples/FSharp.FIO.Examples.App/Program.fs) [1] [2]WarningsAsErrorsin theFSharp.FIO.Benchmarks.Plotsproject to enforce stricter code quality. (benchmarks/FSharp.FIO.Benchmarks.Plots/FSharp.FIO.Benchmarks.Plots.fsproj)These changes enhance the modularity, maintainability, and robustness of the
FSharp.FIOproject while introducing new capabilities for application-level development.