Stream: compiler development

Topic: Remove backpassing from compiler for now


view this post on Zulip Sam Mohr (Jan 01 2025 at 21:55):

We've had backpassing deprecated since August, and if it comes back, it will be in the form of |arg1, arg2| func(123) instead of arg1, arg2 <- func 123. We have complexity in the form of detecting commas and arrows that would go away if we were to remove this parsing logic. The desugaring logic is pretty simple, so I don't think it's worth keeping, as it'd be simple to reimplement/copy from git history. Would anyone be opposed to ripping it out for now?

view this post on Zulip Joshua Warner (Jan 01 2025 at 21:56):

I'm _still_ running into weird edge cases with multi-backpassing in fuzzing, so removing this sounds great to me.

view this post on Zulip Sam Mohr (Jan 01 2025 at 21:57):

I saw that haha

view this post on Zulip Sam Mohr (Jan 01 2025 at 22:00):

I'm reviewing your latest PR, I can attempt to remove backpassing once that gets merged (unless you'd rather do it)

view this post on Zulip Ayaz Hafiz (Jan 01 2025 at 22:04):

:tombstone:

view this post on Zulip Sam Mohr (Jan 01 2025 at 22:05):

I think it will literally be simpler to reimplement backpassing from scratch than to try to convert the current impl, and that's ignoring the maintenance burden that Joshua keeps carrying like Atlas.

view this post on Zulip Sam Mohr (Jan 01 2025 at 22:05):

But yes, RIP to backpassing, we hardly knew ye

view this post on Zulip Luke Boswell (Jan 01 2025 at 22:08):

The other one we should consider removing is the ! desugaring

view this post on Zulip Sam Mohr (Jan 01 2025 at 22:08):

That can go as soon as Task is gone

view this post on Zulip Luke Boswell (Jan 01 2025 at 22:08):

We're keeping that operator, but we have purity inference now.

view this post on Zulip Sam Mohr (Jan 01 2025 at 22:08):

I'd love to remove it! But I don't know when the right time is

view this post on Zulip Luke Boswell (Jan 01 2025 at 22:09):

Yeah, we probably need to at least promote the basic-cli and basic-webserver releases to latest before we can do that

view this post on Zulip Sam Mohr (Jan 01 2025 at 22:10):

That's the minimum. basic-ssgshould do a release as well

view this post on Zulip Luke Boswell (Jan 01 2025 at 22:10):

basic-ssg is already upgraded

view this post on Zulip Sam Mohr (Jan 01 2025 at 22:10):

Yes, but the latest release is from October

view this post on Zulip Luke Boswell (Jan 01 2025 at 22:10):

It's just those two... we have them in pre-release to flush out any PI related issues

view this post on Zulip Sam Mohr (Jan 01 2025 at 22:11):

Oh, it's a prerelease

view this post on Zulip Luke Boswell (Jan 01 2025 at 22:11):

Oh right... I'm not sure where we got to with the "hyper" upgrade - to remove the ring dependency

view this post on Zulip Sam Mohr (Jan 01 2025 at 22:11):

Pretty sure that stalled

view this post on Zulip Luke Boswell (Jan 01 2025 at 22:12):

Ohk, just refreshed. We needed @Anton 's nix magic wand

view this post on Zulip Anton (Jan 03 2025 at 10:37):

I'll look at that today


Last updated: Jul 06 2025 at 12:14 UTC