Status update and autumn plans #1287
Replies: 4 comments 6 replies
-
For priority number 5, had my suspicions that you wouldn't be able / wouldn't have time to review these bigger PRs. But you don't need to apologize! It's completely understandable, its impressive you even have had enough time to dedicate to this experiment given your position and responsibilities. As for me, I like seeing things finished, so I'll still dedicate the necessary effort to take #1261 and #1137 where it can be used by others and myself, even if it wouldn't be merged in the near term. |
Beta Was this translation helpful? Give feedback.
-
Totally understandable. |
Beta Was this translation helpful? Give feedback.
-
The priority list seems centered around issues and discussions within the repository. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the update! I haven't tracked the progress of this project lately, but just checked in and was surprised everything that has been implemented! |
Beta Was this translation helpful? Give feedback.
-
Thank you everyone for all your support and contributions to cppfront for the past two years since I first showed to the world at CppCon 2022!
Now that my September whirlwind of CppCon 2024 is over and we're heading into autumn, I've been reflecting (no pun intended) on what's next for cppfront.
The main problem has been that I'm resource-constrained: I have only so many hours in the day, and I've been unable to keep up with PRs and issues while also making further progress on Cpp2. There are two basic ways to solve an oversubscription problem:
So for the near term, I want to try the following priorities...
Priority 1: Fix bugs that block a very few major new efforts/experiments
Definitions:
regex
metafunction (Feature/regular expression metafunction #904) which broke new ground by being an order of magnitude bigger than any Cpp2 metafunction yet written by anyone including mePriority 2: Cpp2 features, especially expand the reflection API
Prioritize changes that will be breaking changes, including to finish tweaks to function syntax (consistently use
=
, refine return styles).Today, Cpp2 supports reflecting over the declarations in a type, and (if invoked while the type is being defined, where this doesn't violate ODR) generating and adding new members to the type.
I want to extend this to be able to:
@
)Tie-in to Priority 1: I may have a volunteer to try writing an "autodiff" using reflection on function bodies. That's exciting because "autodiff" has long been one of my aims, and a place where if we'd had support in today's C++ the industry would have made much faster progress in the experimentation phase of ML and AI (by being able to run experiments faster in a compiled language rather than Python => can run many more experiments => can developer better models).
Priority 3: Smaller quick-value-add targets of opportunity
Includes:
Edited to add: This includes features that mostly work now but that I should finish sooner rather than later, notably the function call syntax changes discussed in the recent parts of #714, because we know the update is desirable and the longer I wait the more it will cost in terms of code breakage.
Priority 4: Fix bugs that block lots of use cases
When I can't get to these, the answer will need to be: "Sorry, we can't do that yet, you need to write it in Cpp1 and then you can use it seamlessly from Cpp2!"
Priority 5: Other ideas and suggestions
Alas, this is going to disappoint a lot of people. Sorry! 😞 It includes some really cool things I've love to see, like enabling two-stage compilation to enable user-written metaclass functions outside cppfront's own compilation such as #797 and #907 by @JohelEGP and @DyXel, but where I just realistically have to choose between spending a great deal of time reviewing the PRs (or other costs such as supporting a more complex build model) vs. making progress on Priorities 1-4 in particular.
That said, I will keep reading feature suggestions (including outside this repo) and new issues, and if I'm convinced I may take ideas and move them to Priority 2 or 3 above!
When I can't get to these, the answer will need to be: "Sorry, we can't do that yet, but you can do this in your own repo and let us know how it goes!"
Notes
Not listed above: I'll still try to answer questions as I'm able, in spare cycles while I'm waiting for regression tests to run or to take a break from coding.
That's the plan as of today! I'm sorry some of this will be disappointing, at least in the short term, but I really do appreciate all your input and support. Thanks again, and I'm looking forward to seeing how much the project can achieve in the coming months... stay tuned. 🙏
Beta Was this translation helpful? Give feedback.
All reactions