<div dir="ltr"><div>Hi Richard,<br></div><div><br></div><div>So there's multiple reasons/aspects as to why I haven't responded<br></div><div>1. Sam's question/seeking feedback on changing the return type for constraint solver plugins is something Sam and I discussed at HIW using ICFPs airmeet instance, as in, it was something I suggested.</div><div><br></div><div>And the TL;DR of next three reasons: I can't find enough time / need to get better at time management / need to hand over work<br></div><div>2. While I've had to maintain the ghc-typelits-{natnormalize;knownnat;extra} constraint solver plugins as part of maintaining my (and our company's) livelihood, I usually only try the next version of the GHC module collection (API) when there's a binary dist of like an alpha or RC.<br></div><div>3. I guess I've become conditioned to just do the regular impedance matching for every new major GHC release, as can be witnessed by the following CPP extravaganza: <a href="https://github.com/clash-lang/ghc-typelits-natnormalise/blob/3f3ae60a796061b7a496f64ba71f4d57dedd01db/src/GHC/TypeLits/Normalise.hs#L181-L316">https://github.com/clash-lang/ghc-typelits-natnormalise/blob/3f3ae60a796061b7a496f64ba71f4d57dedd01db/src/GHC/TypeLits/Normalise.hs#L181-L316</a> <br></div><div>4. I'm a day-time-only programmer, and with our company growing I've had less time for coding and maintaining software.</div><div><br></div><div>With regards to point 2. if I understand correctly, the gitlab CI creates bindists as build artifacts, is that correct?</div><div>I guess it would be helpful if that were advertised more prominently, so it's easier to test a new branch without having to build GHC.</div><div><br></div><div>With regards to point 3. The "blessed" GHC API, i.e. the module called "GHC", "Plugins", "TcPlugins" (I forgot what their new names are in the post ghc 9.0 era), were never enough to get everything done that needed to be done.</div><div>That meant one had to reach out to the GHC module collection, which, for good reasons (the type and constraint system is always under heavy development), is changing with every major GHC release.</div><div>I guess (constraint solving) plugin creators whose day-job or hobby doesn't include maintaining plugins got burned out by having to keep up with these changes.</div><div>So I wonder how many constraint-solving plugins currently compile against GHC 9.0, let alone GHC 9.2; and as a consequence I wonder how many people are interested in these API changes (since they stopped maintaining their plugins).</div><div><br></div><div>Perhaps they are interested though! But simply not registered to this mailing list. So asking for feedback on both the haskell discourse and the haskell sub-reddit certainly wouldn't hurt!</div><div><br></div><div>Finally, with regards to point 4. Constraint-solving plugins certainly required some time to get into.</div><div>So often my colleagues look to me whenever there's a new alpha or RC out to upgrade the plugins.</div><div>But Sam's changes for solving type family constraints certainly give the impression that things will easier going forward!</div><div>So now is probably the best time to hand over the baton to one of my colleagues and hopefully they can provide the asked-for feedback.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 1 Sept 2021 at 09:21, Moritz Angermann <<a href="mailto:moritz.angermann@gmail.com">moritz.angermann@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Richard,<div><br></div><div>I believe that this is mostly due to plugin development happening to satisfy a plugin need. I doubt there is a grand unified vision for plugins. And I don't have one either. I've dabbled with codegen plugins a long time ago, these days I'm primarily concerned with plugins having a chance to work in cross compilation settings, and even that is still a very uncharted area, but Luite has come up with a hack and Sylvain is making progress :-) We still don't have the cabal side fixes, where we'd need some `plugin-depends` stanza, but all that only makes sense, once we have the fundamentals for plugins disentangled in ghc.<br><br></div><div>I agree that a discussion on discourse might help. But we won't know without trying.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 31, 2021 at 9:34 PM Richard Eisenberg <<a href="mailto:lists@richarde.dev" target="_blank">lists@richarde.dev</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi all,<br>
<br>
I have seen a few posts from Sam Derbyshire here asking for feedback about plugin API design, and the responses have been minimal. This poses a design challenge, because the GHC folk who design the interface are sometimes distinct from the people who use the interface. We're trying to be good, seeking feedback from real, live clients. Is there a better way to do so than this mailing list? Example: we could create a Category on <a href="http://discourse.haskell.org" rel="noreferrer" target="_blank">discourse.haskell.org</a>, if that would reach the audience better. Or we could make a repo with issue trackers somewhere simply to track plugin design. What would work?<br>
<br>
(I recognize that I'm asking in a perhaps-ineffective channel for advice, but I really don't have a better idea right now. Maybe some of you plugin authors are here and will point us in a better direction.)<br>
<br>
Thanks,<br>
Richard<br>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div>