Add fingerprint support and related documentation#7
Merged
Conversation
- Split fingerprint row into two: ( ) (stub) and A-Z (always reflects) - Add Fingerprint support detail subsection with per-instruction table - Covers root README, Generator/README.md, and Processor/README.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add Processor.Tests/FingerprintTests.cs with 7 tests covering: - Load ( with unknown handprint reflects - Load ( with known handprint pushes success flag (1) - Load ( dispatches A-Z instructions via fingerprint - Unload ) with known handprint pushes success flag - Unload ) reverts semantics so A-Z reflects again - A-Z without load reflects - NullFingerprint reflects for all letters - Stacked fingerprints: top wins; unload restores prior - Add Generator.Tests FingerprintsProvider tests: - Instance property provider generates 'this.PropName' argument - Instance method provider generates 'this.Method()' argument - Static method provider generates global::-qualified expression - Unknown member name emits FG0012 diagnostic - FingerprintsProvider triggers RuntimeFungeExecutionContext emission - Full functional test: fingerprint load + dispatch in generated code Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…nd Processor - Add Esolang.Funge.Abstractions package with IFingerprint, IFungeExecutionContext, FingerprintInstruction, FingerprintHandprint, FingerprintBuilder, NullFingerprint - Wire fingerprint provider support in Generator (FingerprintsProviderAttribute, ResolveFingerprintsProvider, FG0012 diagnostic, runtime context generation) - Implement ( / ) fingerprint load/unload and A–Z dispatch in Processor - Add FungeExecutionContext and update InstructionPointer with Semantics stacks - Fix CS1009 escape sequence bug in generated runtime code (\x interpolation) - Remove unused ExtractFingerprint local function from generated runtime (CS8321) - Remove outdated stub tests replaced by FingerprintTests.cs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…EADME - Update Funge-98 Support Status: fingerprint rows now ✅ - Add Fingerprint Support section with NULL fingerprint table and link to Abstractions - Add Esolang.Funge.Abstractions to Choose Package, NuGet, and Framework Support tables - Create Abstractions/README.md with package overview, built-in fingerprint list, and usage examples Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…10.0) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Introduces the FILE fingerprint (handprint 0x46494C45) as a separate package to confirm the IFingerprint interface is sufficient for real-world fingerprint implementations. Supported instructions: C D G M O P R S W Targets: netstandard2.0, netstandard2.1, net10.0 (AOT-compatible) Uses #if NETSTANDARD2_0 to guard Index operator (^1) usage. Also updates root README with FILE in Fingerprint Support, Choose Package, NuGet, and Framework Support tables. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add FileFingerprintTests with 40 tests covering all FILE instructions (C,D,G,M,O,P,R,S,W) - Add TestContext mock implementing IFungeContext for isolated unit tests - Multi-target: net48;net8.0;net9.0;net10.0 on Windows, net8.0;net9.0;net10.0 elsewhere - Fix FileFingerprint.cs Push0gnirts push order (forward order so last char on top) - Fix push order for W (byte before handle) and P (0gnirts before handle) tests - Add project to Esolang.Funge.slnx Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…Unreleased] - Add Esolang.Funge.Fingerprints.File row to Framework Support table in README.md - Add [Unreleased] CHANGELOG entries for Abstractions, Fingerprints.File, Generator [FingerprintsProvider], and Processor fingerprint dispatch Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…options - Add --fingerprint-null option to enable the NULL fingerprint (0x4E554C4C) - Add --fingerprint-file option to enable the FILE fingerprint (0x46494C45) - Add ProjectReference to Esolang.Funge.Fingerprints.File in Interpreter csproj - FileFingerprint is IDisposable and is properly scoped with using Co-authored-by: Copilot <223556219+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.
Introduce fingerprint support across the Abstractions, Generator, and Processor components. Enhance documentation with detailed tables on fingerprint support status and instructions. Add tests for fingerprint dispatch in both Processor and Generator. Implement CLI options for NULL and FILE fingerprints, ensuring compatibility with multiple target frameworks. Update project references and configurations accordingly.