Stream: compiler development

Topic: all_syntax_test failure


view this post on Zulip Anton (Mar 23 2026 at 15:43):

all_syntax_test.roc is failing on the main branch:

thread 5145480 panic: Monomorphize bindFlatTypeMonotypes mismatch: flat_type=tag_union mono=unit template_module=7 mono_module=7 active_proc_inst=0 monotype=0 probe_mode=false
???:?:?: 0x100bc3c47 in ??? (all_syntax_test.roc)
...

I'm looking at it now

view this post on Zulip Anton (Mar 23 2026 at 18:09):

The last working commit for no_syntax_test.roc also runs a lot slower than e.g. 2 weeks ago.

view this post on Zulip Anton (Mar 23 2026 at 18:35):

The Roc (non-release) binary recently grew from 397MB to 742MB :sweat_smile:

view this post on Zulip Anton (Mar 23 2026 at 19:03):

Looks like this was due to #9163: the embedding of the dev shims for all targets

view this post on Zulip Richard Feldman (Mar 23 2026 at 19:12):

we prob only need the dev shim for the target we're actively building for, right?

view this post on Zulip Richard Feldman (Mar 23 2026 at 19:13):

like if I'm building on macos, the dev shim for windows isn't going to be used

view this post on Zulip Luke Boswell (Mar 23 2026 at 19:33):

Back in the day -- we bundled all of the interpreter shims so we could support cross-compilation for roc build.

Now we have proper backends I don't see any reason for using these other than roc run -- so I think we can bundle only the one target for the native host.

We have both the dev shim and the interpreter shim right now - one JIT's to machine code and the other interprets the (currently CIR soon LIR). The idea of having both was so we could compare performance, but we may not need both shim's long term.

view this post on Zulip Luke Boswell (Mar 24 2026 at 00:43):

I'm starting on this now, I'll remove the shim binaries that aren't needed.

view this post on Zulip Luke Boswell (Mar 24 2026 at 00:54):

We can drop the embedded objects down to 12 from 27

view this post on Zulip Luke Boswell (Mar 24 2026 at 00:55):

Importantly only two of those are shims, the others are the roc builtins in object form for linking and needed so you can cross-compile to any target

view this post on Zulip Luke Boswell (Mar 24 2026 at 01:15):

Implemented here https://github.com/roc-lang/roc/pull/9291

view this post on Zulip Luke Boswell (Mar 24 2026 at 02:38):

Woo :octopus: this passed first try... a nice change from the other PR's I've been pushing along :smile:

view this post on Zulip Anton (Mar 24 2026 at 18:01):

Anton said:

all_syntax_test.roc is failing on the main branch:

thread 5145480 panic: Monomorphize bindFlatTypeMonotypes mismatch: flat_type=tag_union mono=unit template_module=7 mono_module=7 active_proc_inst=0 monotype=0 probe_mode=false
???:?:?: 0x100bc3c47 in ??? (all_syntax_test.roc)
...

I'm looking at it now

Partially fixed in #9293, I'm working on a follow-up now

view this post on Zulip Anton (Mar 25 2026 at 16:15):

All done in #9295


Last updated: Apr 10 2026 at 12:38 UTC