Last active
July 12, 2025 01:24
-
-
Save TIHan/8e002025ca194444197fe6982f57e510 to your computer and use it in GitHub Desktop.
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
Priorities: | |
1. Get all tests passing (highest-priority) | |
- May require supporting named arguments - we already do this for attributes to support named args | |
2. Get C# style extension methods working | |
3. Get documentation working - convert XML docs to OlyIL assembly docs | |
- Use `///` to signify documentation rather than `//`. Support markdown like rust? | |
4. Add implicit conversion feature, but only available for prelude libs | |
5. Any additional CLI support (service-oriented through IPC?) | |
- Display warnings and other non-errror diagnostics | |
6. Go through Oly examples and Evergreen to address all 'TODO-language-bug:' comments. | |
In no particular order: | |
1. Organize Target projects | |
- Create separate "Target" folder from "Runtime" | |
- Namespaces should no longer be called "Oly.Runtime.Target", should be called "Oly.Target" | |
- Emitter and Target projects should be separate | |
-- Emitter projects rely on runtime | |
-- Target projects rely on front-end and runtime | |
2. Organize Test projects - such as creating a "Test" folder | |
3. Remove target name parsing such as "net8_r2r". Instead, introduce a `#property "r2r: true"` as we will have multiple and varied properties for different targets. Include analysis too so we do not do `#property "r2r: true"` along with `#property "aot: true"`. Also include completions. | |
4. Remove notion of having a configuration json file. New configurations should be able to be defined in the `.olyx` projects (new feature) | |
- Temporarily, let's only allow Debug/Release configs with no in-between | |
5. Limit targets, such as we should not allow "dotnet: net45". | |
6. For .NET, handle DllImportAttribute. Also consider handling other .NET attributes. | |
7. Do not depend on Evergreen. | |
8. Turn on stress testing for existing tests | |
Features: | |
1. '#property' directive. | |
2. C#-style extension methods (includes interop) | |
3. Named-arguments. | |
4. Add conditional directive `#else` | |
5. Implicit conversion (mentioned above, only available for prelude libs) | |
6. Records (with f#/c# interop) | |
7. Discriminated unions (with f# interop) | |
SPIR-V: | |
1. Not required to be fully complete, but should get the Numerics Prelude complete for .NET that intersects with SPIR-V. | |
2. Consider moving this target impl to the Evergreen project as it is the only way to do testing. | |
-- | |
Polishing: | |
1. Fix-up error codes for ALL errors | |
- Will be a significant amount of work, but not hard. Store errors and their codes elsewhere. | |
2. Documentation! | |
3. How to ship? Include everything in vscode extension? And/or a separate download? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment