-
Notifications
You must be signed in to change notification settings - Fork 23
Open
Labels
Description
Sometime soon I'd like to have a good old fashioned round of breaking changes.
- Eliminate
NodeStylein Loyc trees? #80 Eliminate NodeStyle - ✓ LES3: Implicit underscore in numeric custom literals? #76 Use underscore for numeric literals? Use underscore for suffix operators?
- ✓ Proposal: change trivia marker to a single character. #61 Use
%as trivia marker - LES3: keywords? #82 LESv3 Add keywords? (edit: I probably won't)
- ✓ LESv2 (and LESv3) prelude: use
A: Bfor variable declarations instead of named arguments. I'm introducing a ✓ new operator for named arguments, tentatively named::=.<:also seems like a reasonable choice. - ✓ I think it's time to drop support for .NET 3.5 and .NET 4
- Switch the default language service to LESv3
- Perhaps split LESv2 into its own assembly
- ✓ EC#: rename
#usingCastto'using(for casts checked at compile time:X using Y) - Replace
Pair<A,B>withValueTuple<A,B> - ✓
MacroProcessor.AddMacrosmay as well return the number of macros added (rather thanbool) - ✓ Switch precedence of
..again to match C# (Let's finalize the LES3 precedence table #87) in v28.0
Then there's the new .NET Span<T> and Memory<T> features. The latter is basically ArraySlice<T> and StringSlice rolled into one. Upgrading for interoperability with Span<T> and Memory<T> might end up being a breaking change.
There are also some changes that are nonbreaking, or at least not obviously so:
- ✓ Support .NET Core or .NET Standard
- ✓ LES3: Faithful storage of acyclic graphs? #75 LESv3 acyclic graphs
- LES3: can named prefix operators or unparenthesized calls be practical? #74 LESv3
$pseudo-operator - ✓ LES3 lexer fails to set NodeStyle on literals #46 LESv3 numeric styles
- ✓ LESv3: finish up custom literal support
- ✓ LESv3: reconsider keyword parsing; sometimes
.foois seen as a keyword when it should be a dot operator. - LESv3: resolve any other undecided issues
- LESv3: write a specification, switch over the main LES page to focus on LESv3
- I want to finally figure out how to write printers efficiently, then make printers for a couple of languages - perhaps TypeScript/JS and C++.
- ✓ vs 2019 extension #77 Oh geez, do I have to support another VS version? I guess so.
It's a lot of work but I have some time on my hands. I'm inclined to focus on nonbreaking changes first but I'd like to gather up a list of breaking changes here. CC @jonathanvdc