A change list for the compiler
Changes to the compiler in 1.12, while very welcome, caused work for some packages that interface with the compiler. I'm aware of https://github.com/chalk-lab/Mooncake.jl/pull/714 and https://github.com/TuringLang/Libtask.jl/pull/196, there are probably others. This is of course understandable and unavoidable when packages interface with internals that aren't public.
However, as discussed on Slack a few times, it would be very useful for package maintainers if there was even a rough list of changes, and advice on how to adapt to them. To kickstart this, I started a draft with changes I encountered in 1.12. It is very incomplete (reflecting my very superficial understanding of the compiler), and I would be grateful and happy if those who know this stuff better would be up for completing it, merging it, and adding to it as more things happen in 1.13.
This is great, thank you. I think it should probably go in devdocs?
Since this is meant to be like HISTORY.md, it would be good to keep it as is. More compiler docs in devdocs can be fixed separately.
OK I guess this is fine.
This is a great idea, thank you for getting it started.
Is the plan to fill in the TODOs next? Or are you looking for help with that? Or should we just merge this and gradually fill in the TODOs if someone has time to work on 'em?
Yep, I'm looking for help for someone to fill in the TODOs, and to add any bits that I'm not aware of. For how to do that, I'm happy with whatever the maintainers prefer: Merge this and open more PRs to improve it, merge PRs into my branch, move my branch to this repo and start a new PR from it, all fine by me.
@serenity4 kindly filled in the TODOs that I had left in my draft. If anyone wants to expand the change list please feel very free, but if no other changes are imminent I would favour merging this now, and adding things gradually as changes are made.
Are you committed in updating this file over releases? Also, somewhere it should probably be stated that this is a non-exhaustive / best effort list.
I can not commit to that because I don't work on the compiler or even understand most of the changes to it. The point of this PR is to be a starting point and a nudge, hoping the compiler devs would commit to it, on, as you said, a best-effort basis.
I added the sentence
[This file] is maintained on a best-effort basis and may be incomplete.
The point of this PR is to be a starting point and a nudge, hoping the compiler devs would commit to it
I envy your optimism...
I also think for this to be useful, it has to go into the manual somehow (like the NEWS file does for the language itself).
I also think for this to be useful, it has to go into the manual somehow (like the NEWS file does for the language itself).
I'm very happy for this to be in the manual if the maintainers prefer that. I do think having this document exist anywhere is preferable to not having it at all though, especially given the quite specialised audience of this information.
@mhauru Can you make a PR to add it to the devdocs section of the manual so that we can get it merged?
I updated this PR to have the same content as before but in doc/src/devdocs/compiler_changes.md. Looks something like this
Can we merge this now?
Good to go from my side.