Skip to content

V2.0.0#1

Merged
juner merged 49 commits into
mainfrom
v2.0.0
Jun 2, 2026
Merged

V2.0.0#1
juner merged 49 commits into
mainfrom
v2.0.0

Conversation

@juner
Copy link
Copy Markdown
Contributor

@juner juner commented Jun 2, 2026

Added

  • Esolang.Processor.Abstractions:
    • Introduced IEventProcessor for a unified, event-driven execution model.
    • Added IOEvent and its subtypes (InputChar, InputInt, OutputChar, OutputInt, End) to represent I/O operations.
    • Added IProcessor as a non-generic base interface.
  • Esolang.Generator.Abstractions:
    • Added comprehensive abstractions for method signature binding and type resolution.
    • Introduced MethodSignatureBinder for mapping esolang source to C# partial methods.
    • Added MethodInputKind, MethodOutputKind, and MethodReturnKind for signature classification.
  • Esolang.Interpreter.Abstractions:
    • Added new project for common interpreter utilities.
    • Introduced RunToConsoleAsync extension method for running processors with standard console I/O.
  • Esolang.Processor.Extensions.IO:
    • Extracted and standardized I/O extension methods into a dedicated project.
    • Added support for TextReader/TextWriter, string/StringBuilder, and System.IO.Pipelines (PipeReader/PipeWriter).
  • Enhanced testing infrastructure across all abstraction projects, significantly improving code coverage.

Changed

  • Esolang.Processor.Abstractions (Breaking Changes):
    • Removed ITextProcessor<TProgram> and IPipeProcessor<TProgram> interfaces in favor of the event-driven IEventProcessor.
    • Modernized interfaces to use IAsyncEnumerable<IOEvent> for execution.
    • Standardized naming and namespaces.
  • Updated .editorconfig with stricter C# style and MSTest diagnostic rules.

juner added 30 commits May 8, 2026 14:18
- KnownTypes: XMLドキュメントの調整およびIsString, IsTaskT, IsValueTaskTの判定ロジックの修正
- MethodSignatureBinder: パラメータバインディング時のエラーID判定の修正およびBindReturnKindの公開化
- KnownTypesTests.cs: 各型判定ロジックおよび Nullable コンテキストのテストを実装
- csproj/Directory.Build.targets: 必要なテスト用アセンブリ参照およびツールの整備
- .gitignore/GEMINI.md: カバレッジレポート出力先および生成手順の追加
- MethodSignatureBinderTests.cs: Funge を参考に、より堅牢な Compilation 初期化ロジックを導入し、非同期メソッド(Task/ValueTask/Task<T>/ValueTask<T>)のバインディングテストを実装
- Directory.Build.targets: 必要な依存パッケージおよびバージョンを統一
- MethodSignatureBinderTests.cs: パラメータ・戻り値バインディング、エラーケース、Logger/CancellationToken 対応等、全網羅的なテスト実装
- Directory.Build.targets: パッケージバージョン管理の最適化
- KnownTypes.cs: ToString に ExcludeFromCodeCoverage 属性を追加
- KnownTypes.cs: ToString に ExcludeFromCodeCoverage を追加
- KnownTypesTests.cs: シンボル比較の堅牢化
- MethodSignatureBinderTests.cs: Bind メソッドの分岐網羅(Invalid系, PipeReader/Writer, Logger, Refパラメータ, 重複エラー)を完了
…し、カバレッジ 95% を達成

- MethodSignatureBinderTests.cs: Logger 重複エラーやフィールド名による探索等の未テスト条件分岐を網羅
- カバレッジ目標 (95%) を達成
…or record hierarchy

- Introduced BindingError record hierarchy and BindingErrorKind enum for semantic error reporting.
- Updated MethodSignatureBinder.Bind to return specific error records instead of string IDs.
- Removed customizable error ID parameters from Bind method (breaking change).
- Added IsExternalInit.cs for record compatibility with .NET Standard 2.0/2.1.
- Updated test suite to verify results using BindingErrorKind and pattern matching.
…tch:error / dotnet_diagnostic.IDE0005.severity = error
…r / dotnet_style_require_accessibility_modifiers = omit_if_default:error
juner added 19 commits May 30, 2026 21:00
- Moved Pipe, Text, and String extensions to new project
- Separated System.IO.Pipelines dependency
- Updated documentation and solution configuration
- Corrected namespace and reference issues
- Disabled IDE0005 for test project to resolve build conflicts
- Re-verified test pass status
- Implemented InterpreterExtensions with RunToConsoleAsync
- Integrated InteractiveConsoleReader for robust I/O handling
- Added unit tests for interpreter extensions
@juner juner merged commit 6ff3064 into main Jun 2, 2026
3 checks passed
@juner juner deleted the v2.0.0 branch June 2, 2026 01:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant