Locating a commit from its ChangeLog entry (was Re: How to migrate ggc_alloc_XXX for GCC v8.x (git-20170816)?)
Leslie Zhai
lesliezhai@llvm.org.cn
Fri Aug 18 01:38:00 GMT 2017
å¨ 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