julia
37cadb4c - Move Const/PartialStruct to Core (#36570)

Commit
5 years ago
Move Const/PartialStruct to Core (#36570) * Move Const/PartialStruct to Core The change in #36521 proposes to make PartialStruct legal in the global code cache. However, `@vtjnash` points out that since these structs are currently defined in `Core.Compiler`, this would make loading a second copy of inference impossible. However, loading a second copy of inference is desirable for development, so we generally put any type that can appear in the global cache into `Core` to make this possible. As such we have two options here: 1. Change the representation of PartialStruct to only use objects already in Core 2. Move Const/PartialStruct into Core I originally thought that option 1 would be preferable, since I though that the only meaningful information that could appear in a PartialStruct field would be a Const or a nested PartialStruct. However, I forgot that it sometimes also contains Type{...} or elements of the type lattice more precise than what the widened type prescribes. As such, building PartialStruct out of solely types defined in Core would have gotten a bit messy, and it's much simpler just to move both of these to Core themselves. `@JeffBezanson` also points out that we may eventually want to look at these in codegen, so define them in C while we're at it. * Update base/boot.jl Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com>
Author
Parents
Loading