What's the deal with _postblitRecurse?

Jonathan M Davis newsgroup.d at jmdavisprog.com
Fri Mar 2 20:14:44 UTC 2018


On Friday, March 02, 2018 14:23:14 Andrei Alexandrescu via Digitalmars-d 
wrote:
> On 03/02/2018 01:50 PM, Jonathan M Davis wrote:
> > On Friday, March 02, 2018 13:32:24 Andrei Alexandrescu via Digitalmars-d
> >
> > wrote:
> >> object.d includes this function _postblitRecurse that's intentionally
> >> public but undocumented. As far as I can see only unittests are using
> >> it. What's the deal with it? Thanks! -- Andrei
> >
> > It looks like it was trying to workaround a compiler bug with regards to
> > attribute inference and destruction with the idea that it would be used
> > in emplace, but nothing outside of object.d's unit tests use it right
> > now. It looks like all of the changes in Phobos that used may have
> > gotten removed due to regressions that it caused, but _postblitRecurse
> > itself wasn't removed. And it looks like the issue in the compiler may
> > have been fixed, making _postblitRecurse redundant, but all I know is
> > what I can see in git log and a quick glance through the related PR on
> > github. I'd have to read through it all in more detail to accurately
> > assess what happened, though it's clear that it's not used now.
> >
> > https://github.com/dlang/druntime/pull/1181
> >
> > BTW, in case you didn't know, you can use git blame to figure out which
> > commit last changed a set of lines, and then you can search for that
> > commit on github to find the PR that it relates to, which is how I
> > found this info.
> Yah, it blames to Jakob Ovrum. But I don't have a simple method to
> ascribe the blame to a specific PR. Is the only way to look at the date
> then look at the log? Thanks. -- Andrei

I just searched for the commit on github, and it lists both the commit and
the PR on the left (though it's easy to miss, because you have to click on
those boxes on the left, and on the right, it claims that the search was
empty, because it didn't find any code that had that text in it). And of
course, as Steven pointed out here, if you do the blame on github, you can
find it that way.

- Jonathan M Davis



More information about the Digitalmars-d mailing list