Locating a commit from its ChangeLog entry (was Re: How to migrate ggc_alloc_XXX for GCC v8.x (git-20170816)?)
Trevor Saunders
tbsaunde@tbsaunde.org
Fri Aug 18 18:32:00 GMT 2017
Hi,
My first question would be why are you using the ChangeLog files at all?
It seems like it would be a lot more straight forward to just look at
blame for the thing that changed.
thanks
Trev
On Fri, Aug 18, 2017 at 09:32:34AM +0800, Leslie Zhai wrote:
>
>
> å¨ 2017å¹´08æ17æ¥ 23:10, David Malcolm åé:
> > On Thu, 2017-08-17 at 09:52 +0800, Leslie Zhai wrote:
> > > Hi Trevor,
> > >
> > > Thanks for your kind response!
> > >
> > >
> > > å¨ 2017å¹´08æ16æ¥ 20:02, Trevor Saunders åé:
> > > > On Wed, Aug 16, 2017 at 05:32:10PM +0800, Leslie Zhai wrote:
> > > > > Hi GCC developers,
> > > > >
> > > > > GCC v4.6's gengtype will auto-generate Allocators for known
> > > > > structs and
> > > > > unions, for example: ggc_alloc_tree2WeakVH for tree2WeakVH https:
> > > > > //github.com/xiangzhai/dragonegg/blob/master/include/dragonegg/gt
> > > > > -cache-4.6.inc#L24
> > > > >
> > > > > but gengtype will not auto-generate ggc_alloc_XXX for GCC v6.x or
> > > > > v8.x
> > > > > (git-20170816), for example: struct GTY((for_user)) tree2WeakVH h
> > > > > ttps://github.com/xiangzhai/dragonegg/blob/master/include/dragone
> > > > > gg/gt-cache-8.0.inc#L1284
> > > > >
> > > > > As ChangeLog-2014 mentioned:
> > > > >
> > > > > 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
> > > > >
> > > > > ...
> > > > > (ggc_alloc): Install the type's destructor as the finalizer
> > > > > if it
> > > > > might do something.
> > > > >
> > > > > Please give me some hint about ggc_alloc migration, thanks a lot!
> > > > if you look at the patches they convert ggc_alloc_foo to
> > > > ggc_alloc<foo>
> > > > and you should do the same.
> > > Thanks for your hint! I do the same :)
> > > https://github.com/xiangzhai/dragonegg/blob/master/src/Cache.cpp#L255
> > > PS: how to find the relative patch for the ChangeLog's item? I use
> > > Google, for example: (ggc_alloc): Install the type's destructor as
> > > the
> > > finalizer if it might do something.
> > Another way is to use "git blame" on the ChangeLog to find the commit
> > that added the ChangeLog entry.
> >
> > For "archived" ChangeLog files like "ChangeLog-2014" that will just
> > tell you which commit moved all of the entries for that years ChangeLog
> > entries to "ChangeLog-2014", so you can use "git log":
> >
> > git log gcc/ChangeLog-2014
> >
> > to identify the commit that archived the ChangeLog:
> >
> > commit e64e0023b9a6796858262f8fd38005a08d234d82
> > Author: green <green@138bc75d-0d04-0410-961f-82ee72b054a4>
> > Date: Thu Jan 1 15:43:47 2015 +0000
> >
> > Roll ChangeLog file. Limit offsets to 16 bits for moxie.
> >
> >
> > Once you have that commit you can use "^" to find the prior state of
> > the tree, and then use git blame:
> >
> > git blame e64e0023b9a6796858262f8fd38005a08d234d82^ gcc/ChangeLog
>
> Thanks for your hint!
>
> >
> > and then search for the text of interest:
> >
> > 9296020474 (tbsaunde 2014-05-17 23:15:55 +0000 38073) 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
> > 9296020474 (tbsaunde 2014-05-17 23:15:55 +0000 38074)
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38075) * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38076) * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38077) (ggc_internal_cleared_alloc): Likewise.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38078) * ggc-page.c (finalizer): New class.
> > b540cb16c9 (uros 2014-05-18 07:24:24 +0000 38079) (vec_finalizer): Likewise.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38080) (globals::finalizers): New member.
> > b540cb16c9 (uros 2014-05-18 07:24:24 +0000 38081) (globals::vec_finalizers): Likewise.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38082) (ggc_internal_alloc): Record the finalizer if any for the block bei
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38083) allocated.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38084) (ggc_handle_finalizers): New function.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38085) (ggc_collect): Call ggc_handle_finalizers.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38086) * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38087) finalizer.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38088) (ggc_internal_cleared_alloc): Likewise.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38089) (finalize): New function.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38090) (need_finalization_p): Likewise.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38091) (ggc_alloc): Install the type's destructor as the finalizer if it
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38092) might do something.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38093) (ggc_cleared_alloc): Likewise.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38094) (ggc_vec_alloc): Likewise.
> > 92f06184bb (tbsaunde 2014-05-17 23:08:00 +0000 38095) (ggc_cleared_vec_alloc): Likewise.
> >
> > which identifies the commit as 92f06184bb.
> >
> > "git show 92f06184bb" shows the commit you're looking for, and contains this line:
> >
> > git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210568 138bc75d-0d04-0410-961f-82ee72b054a4
> >
> > from which you can see (if you need to) that the SVN commit was r210568.
> >
> > > Dave
>
> --
> Regards,
> Leslie Zhai - a LLVM developer https://reviews.llvm.org/p/xiangzhai/
>
>
>
More information about the Gcc
mailing list