Revision a7121cf70ccc430013a12737f1388c5948873c39 authored by Keno Fischer on 12 February 2023, 20:28:54 UTC, committed by GitHub on 12 February 2023, 20:28:54 UTC
A `MethodInstance` whose static parameter values are unknown will
have `TypeVar`s in the corresponding slot in their sparam_vals
object and have their code instance's `->invoke` method set to
`jl_fptr_sparam`. I think the original expectation here was
that at some point the runtime would externally compute the
set of static parameters and pass them in as an argument
(just as it would for regular arguments). However, as far as
I can tell, no place in the runtime actually does this and
instead static paramters are always tied to a particular
MethodInstance. This is enforced by making sure that
compilable signatures never have unbound typevars (unless
that is the true answer). However, when we added the
`compilesig_invokes` optimizer option, this allowed bypassing
`get_compileable_sig`, causing unexpected errors around
type parameters.

This commit simply institutes a check that fixes this
particular case, though I don't think the idea of wanting
to :invoke MethodInstances with unknown sparams is
all that unreasonable (especially since we can now
inline such cases) and in the future we may want to
revisit the runtime support for actually passing through
sparams.
1 parent 94ad628
History
File Mode Size
.devcontainer
.github
base
cli
contrib
deps
doc
etc
src
stdlib
test
.buildkite-external-version -rw-r--r-- 5 bytes
.clang-format -rw-r--r-- 3.3 KB
.clangd -rw-r--r-- 114 bytes
.codecov.yml -rw-r--r-- 52 bytes
.git-blame-ignore-revs -rw-r--r-- 294 bytes
.gitattributes -rw-r--r-- 65 bytes
.gitignore -rw-r--r-- 514 bytes
.mailmap -rw-r--r-- 12.1 KB
CITATION.bib -rw-r--r-- 513 bytes
CITATION.cff -rw-r--r-- 940 bytes
CONTRIBUTING.md -rw-r--r-- 23.1 KB
HISTORY.md -rw-r--r-- 363.4 KB
LICENSE.md -rw-r--r-- 1.3 KB
Make.inc -rw-r--r-- 53.0 KB
Makefile -rw-r--r-- 30.2 KB
NEWS.md -rw-r--r-- 1.8 KB
README.md -rw-r--r-- 7.3 KB
THIRDPARTY.md -rw-r--r-- 3.7 KB
VERSION -rw-r--r-- 11 bytes
julia.spdx.json -rw-r--r-- 35.8 KB
sysimage.mk -rw-r--r-- 4.1 KB

README.md

back to top