Fix BytecodeDeserializer to return BytecodeTypes, restore Strict.Bytecode and Strict compilation#38
Fix BytecodeDeserializer to return BytecodeTypes, restore Strict.Bytecode and Strict compilation#38
Conversation
…single-thread Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com>
…threshold Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com>
Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com>
…iable Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com>
|
@copilot continue, we want to test gpu impact. Also the loop count alone is not a good indicator of overall complexity, a 1million iterations loop with 1 instruction each is less complex than a 10k iteration loop with 1k instructions each, which would be a perfect candidate for parallization and gpu usage |
…tions) and add GPU impact projection Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com>
Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com>
Implemented in 343fe60 and 42d88e7: Complexity-based threshold: Changed from simple iteration count to
GPU impact: Added projection test based on BlurPerformanceTests CUDA reference data (143x speedup). For 4K brightness adjustment: SingleThread ~1.8s, ParallelCpu ~730ms (2.5x), projected GPU ~92ms (20x, conservative estimate since real CUDA showed 143x for blur). The test validates projected GPU time beats CPU parallel. Threshold constant is |
…ia unrolled interior kernel Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com>
…zes instead Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com>
…e Cuda.Tests how CPU, Single threaded vs Parallized vs GPU performs. What matters is implementation to Mlir generation
…2 of GpuSupportPlan) Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com>
… with Phase 2 implementation status Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com>
…ean, Character, etc.
…mbine, added more tests, grammar fixes. still working on one final test to parse text
…verflows, still getting through all the remaining issues of RunAllTestsForAllStrictFilesInThisRepo
…t package for the RunAllTestsForAllStrictFilesInThisRepo test
…like number formatting in one Text test
…emantics (partial) Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com> Agent-Logs-Url: https://github.com/strict-lang/Strict/sessions/4a53801f-4e6e-4129-8785-37cc72b514af
…but wrong loop bound) Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com> Agent-Logs-Url: https://github.com/strict-lang/Strict/sessions/2c515314-58d9-4e68-8684-fd9cb75081cb
…trictBasePackageCode test to quickly check if all .strict code can be parsed (no need to do it much higher up with other issues left and right)
… is in the span, removed not longer used App.strict
…mentation, still not the best, but a little helpful
…rror, need to try a different attempt, for loops also need one more fix and FindType needs to be consolidated with GetType and TryGetType, too many ways to get types that all work slightly different
…comparisons, a bit verbose, but works for now.
… with Number.digits
…lso fixed, now Text.Split is causing trouble, but we are close to the end
…GetType→FindType (public) Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com> Agent-Logs-Url: https://github.com/strict-lang/Strict/sessions/bbd18155-4d13-4006-9414-b6e11fec697c
…rName condition Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com> Agent-Logs-Url: https://github.com/strict-lang/Strict/sessions/bbd18155-4d13-4006-9414-b6e11fec697c
…ion member ordering Co-authored-by: BenjaminNitschke <1650127+BenjaminNitschke@users.noreply.github.com> Agent-Logs-Url: https://github.com/strict-lang/Strict/sessions/e8e6ec52-3265-4e14-8fdc-1d99c0d45c28
…ls or MemberCalls, it is like adding this. everywhere, no need, but causes some things to fail as the parsing is not always aware of this
…ons there yet, probably not worth it. Updated HashCode to use selection if, but the computation is still very much dummy, we first need generic type check support. also fixed parsing inside brackets to correctly include all binary arguments
…t replaces some old NamedType things and Member.strict, both not longer needed in the strict world. Also added test to make sure assigning members is ok in from constructors
The BytecodeDeserializer was left in a half-reworked state:
TypeEntryData,Package,Instructions,PrecompiledMethodswere inside a TODO comment block,Deserialize()referenced non-existent variables, and Runner.cs had incomplete statements. Nothing compiled.BytecodeDeserializer
TypeEntryDataas private class, fixedDeserialize(Package)to read ZIP entries, extract metadata intoBytecodeTypes, and read instructionsReadTypeMetadataIntoBytecodeTypes— captures member/method string data intoBytecodeTypes.TypeMembersAndMethodswhile still creating Language types needed for instruction deserializationBuildMethodInstructionKeyformat (TypeName|MethodName|ParamCount) consistently — matches what VirtualMachine expects for precompiled method lookupBytecodeTypes
method.FullName.Name→method.Name(FullName is already a string)Findto useBuildMethodInstructionKeyformat via sharedGetTypeNameFromEntryNameRunner
package,mainType,currentFolderfor both.strictsource and.strictbinaryinputBuild()andRun()now branch ondeserializedBytecodeTypes != nullto handle bytecode-loaded vs source-loaded typesUsage after changes
Test results
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.