From 51a8827570588005d572e72315103f7c2a93456e Mon Sep 17 00:00:00 2001 From: K Pamnany Date: Thu, 15 May 2025 15:59:40 -0400 Subject: [PATCH] don't strip keyword argument names with --strip-metadata --- src/staticdata.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/staticdata.c b/src/staticdata.c index ad62adb4ba178..9775b9ecc6f5a 100644 --- a/src/staticdata.c +++ b/src/staticdata.c @@ -2204,8 +2204,19 @@ static jl_value_t *strip_codeinfo_meta(jl_method_t *m, jl_value_t *ci_, int orig jl_array_ptr_set(ci->slotnames, i, questionsym); } if (orig) { - m->slot_syms = jl_compress_argnames(ci->slotnames); + jl_array_t *slotnames = jl_uncompress_argnames(m->slot_syms); + JL_GC_PUSH1(&slotnames); + int tostrip = jl_array_len(slotnames); + if (jl_tparam0(jl_unwrap_unionall(m->sig)) == jl_typeof(jl_kwcall_func)) + tostrip = m->nargs; + for (i = 0; i < tostrip; i++) { + jl_value_t *s = jl_array_ptr_ref(slotnames, i); + if (s != (jl_value_t*)jl_unused_sym) + jl_array_ptr_set(ci->slotnames, i, questionsym); + } + m->slot_syms = jl_compress_argnames(slotnames); jl_gc_wb(m, m->slot_syms); + JL_GC_POP(); } jl_value_t *ret = (jl_value_t*)ci; if (compressed)