Clojure and Pull Request Controversy

Jonathan M Davis newsgroup.d at jmdavisprog.com
Thu Nov 29 20:21:50 UTC 2018


On Thursday, November 29, 2018 12:54:34 PM MST 12345swordy via Digitalmars-d 
wrote:
> On Thursday, 29 November 2018 at 18:40:13 UTC, Adam D. Ruppe
>
> wrote:
> > On Thursday, 29 November 2018 at 18:33:07 UTC, 12345swordy
> >
> > wrote:
> >> You need one if you want to deprecate a language feature.
> >> There is no alternative afaik.
> >
> > autodecode is not a language feature. It is a library function
> > that is only called by other library functions.
>
> Yet everyone here acts like it is a major deprecation, with
> different opinions on how to handle it.

It _is_ major. What Nicholas has proposed would break almost all
string-related code in the entire D ecosystem. It would not be silent
breakage, and because it involves deprecations, no one would have to update
their code immediately, but a _ton_ of code would have to be updated - even
code that would work just fine if we were to just switch to treating strings
as ranges of code units. And given the insane number of deprecation messages
that it would cause, I'm willing to bet that a _lot_ of folks would simply
start compiling with the flag to get rid of deprecation messages rather than
updating their code, which would make the point when the functions were
actually removed rather interesting. It's quite possible that that huge
disruption would be worth it given that it would allow us to get rid of
autodecoding, but there's no question that it's huge. The magnitude of the
breakage would dwarf anything that we've done in years.

That being said, it's still a library change, not a language change, and
DIPs are for proposing language changes, not library changes. So, a DIP
should not be necessary. Given the magnitude of the change and the code that
it would be changing, Andrei would likely need to approve the PR, but it
would still just be a PR (or set of PRs if necessary).

- Jonathan M Davis





More information about the Digitalmars-d mailing list