-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[loading]: Rework preferences loading #38044
Conversation
71a65e3
to
f5552f0
Compare
@Keno I don't think I can use |
Yes, the GC push is for a stack location, not a value, so you can initialize the location to null and then push it. The error is correct. You need to root that value |
05f7682
to
810bb3f
Compare
@vtjnash you are probably interested in this from the perspective of communication happening between the code being compiled and the compiler. In short; when we call This should not make it any harder or easier to disallow parsing of TOML files off of the disk at compile time. Most likely what we'd do for that is change |
Yep, I was somewhat following along and that sounded like what I expected |
Implements the `Preferences` loading framework as outlined in [0]. The most drastic change is that the list of compile-time preferences is no longer sequestered within its own dictionary, but is instead autodetected at compile-time and communicated back to the compiler. This list of compile-time preferences is now embedded as an array of strings that the loader must load, then index into the preferences dictionary with that list to check the preferences hash. In a somewhat bizarre turn of events, because we want the `.ji` filename to incorporate the preferences hash, and because we can't know how to generate the hash until after we've precompiled, I had to move the `.ji` filename generation step to _after_ we precompile the `.ji` file. [0]: #37791 (comment)
810bb3f
to
c9aba74
Compare
Great, I will merge this when green then. |
Ah, wait, I don’t understand how you can look up something correctly by content hash with this scheme |
I'm not sure what you mean; what is content-hashed? |
Yeah, that's where I noticed that lookup won't work anymore. That function maybe should be replaced with |
Which function should be |
Spoke with Jameson, he's okay with this overall, so I'm going to merge. |
Implements the
Preferences
loading framework as outlined in 0. Themost drastic change is that the list of compile-time preferences is no
longer sequestered within its own dictionary, but is instead
autodetected at compile-time and communicated back to the compiler.
This list of compile-time preferences is now embedded as an array of
strings that the loader must load, then index into the preferences
dictionary with that list to check the preferences hash.
In a somewhat bizarre turn of events, because we want the
.ji
filenameto incorporate the preferences hash, and because we can't know how to
generate the hash until after we've precompiled, I had to move the
.ji
filename generation step to after we precompile the
.ji
file.