[Vm-dev] VM git commit hash (was: Image crashing on startup, apparently during GC)

Fabio Niephaus lists at fniephaus.com
Tue Apr 3 08:52:05 UTC 2018


On Tue, Apr 3, 2018 at 10:40 AM Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com> wrote:

>
> Hi,
> No problem with me, you can merge, ask Fabio.
>

I've merged the PR. Thanks :)


>
> 2018-04-03 10:27 GMT+02:00 Alistair Grant <akgrant0710 at gmail.com>:
>
>>
>> On 3 April 2018 at 01:02, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>> >
>> > Hi Alistair, Hi Ben,
>> >
>> >
>> >> On Apr 2, 2018, at 9:28 AM, Alistair Grant <akgrant0710 at gmail.com>
>> wrote:
>> >>
>> >>
>> >> Hi Ben,
>> >>
>> >>
>> >>> On 2 April 2018 at 15:42, Ben Coman <btc at openinworld.com> wrote:
>> >>>
>> >>>
>> >>>
>> >>>> On 2 April 2018 at 20:26, Alistair Grant <akgrant0710 at gmail.com>
>> wrote:
>> >>>>
>> >>>>
>> >>>>> On Sun, Apr 01, 2018 at 10:46:14AM -0700, Eliot Miranda wrote:
>> >>>>> Hi Alistair,
>> >>>>>
>> >>>>> _,,,^..^,,,_ (phone)
>> >>>>>
>> >>>>>> On Mar 31, 2018, at 1:42 PM, Alistair Grant <akgrant0710 at gmail.com>
>> wrote:
>> >>>>>>
>> >>>>>> git doesn't provide a substitution mechanism like sccs, but the
>> script
>> >>>>>> we have that embeds the date can just as easily embed the hash.  In
>> >>>>>> .git_filters/RevDateURL.smudge there's a line that retrieves the
>> >>>>>> commit date from git:
>> >>>>>>
>> >>>>>> $date = `git log --format=%ad -1`;
>> >>>>>>
>> >>>>>> to get the (short) hash we can simply add:
>> >>>>>>
>> >>>>>> $shorthash = `git log --format=%h -1`;
>> >>>>>>
>> >>>>>> The string substitution can then proceed as for the date.
>> >>>>>>
>> >>>>>> I think it would be worthwhile having both the date and hash in the
>> >>>>>> --version info.
>> >>>>>>
>> >>>>>> I'm happy to add this in and update the --version output if there's
>> >>>>>> general agreement.
>> >>>>>
>> >>>>> Yes please!!! The conventional alternative is to invoke git log from
>> >>>>> the makefiles and lass in the commit hash as a compiler-line default
>> >>>>> me.  But this is messy and slows down compilation (unless there is a
>> >>>>> special rule for just one file, and that's fragile).  I much prefer
>> >>>>> having the commit somewhere in source.
>> >>>>
>> >>>> Done:
>> >>>>
>> >>>> $ git log --oneline | head
>> >>>> 5a5b1c7 vm version string: add commit short hash
>> >>>> 4c4686e Skip SUnit testing in Sista builds
>> >>>> 79c0809 Merge pull request #230 from smalltalking/Cog
>> >>>> 804ed5c Fixed typo in the download URL
>> >>>>
>> >>>>
>> >>>> $ products/cogspur64linuxht/pharo --version
>> >>>> 5.0-201804012008-version_hash  Sun Apr  1 22:15:07 CEST 2018 gcc
>> 5.4.0 [Production Spur 64-bit VM]
>> >>>> CoInterpreter VMMaker.oscog-eem.2361 uuid:
>> 7ca2f89a-de70-422f-b92b-54f91ac4e47b Apr  1 2018
>> >>>> StackToRegisterMappingCogit VMMaker.oscog-eem.2361 uuid:
>> 7ca2f89a-de70-422f-b92b-54f91ac4e47b Apr  1 2018
>> >>>> VM: 201804012008-version_hash alistair at 4c0a4b2bdb79:vmmaker/opensmalltalk-vm
>> $
>> >>>> Date: Sun Apr 1 22:08:11 2018 +0200 $ Hash: 5a5b1c7 $
>> >>>
>> >>>
>> >>> Maybe rather than just "Hash:" could it be more explicit as
>> "GitHash:" or even "GitSHA1:"
>> >>> One day the algorithm is likely to change... "Moving Git past SHA-1" (
>> https://lwn.net/Articles/715716/)
>> >>> and it may be useful later to be able to distinguish.
>> >>
>> >> I like "GitHash" as it may not be obvious what the hash refers to for
>> >> a newcomer.  Even if/when git moves away from sha1, from a cli/ui
>> >> perspective presumably it will still just be "the hash".
>> >
>> > Commit Hash?
>> > Commit Hash (git)?
>> > C Commit Hash?
>> > Repository Commit Hash?
>> >
>> > We've already moved from one sccs to another for the C code and may
>> move again if anyone improves on git, which is not inconceivable.
>>
>>
>> Makes sense, CommitHash it is.  I've updated the PR.
>>
>> But since Nicolas and Fabio are busy working on getting the build and
>> deploy pipe-line working I'll wait a bit before merging rather than
>> potentially derailing their work (thanks, guys!).
>>
>> Cheers,
>> Alistair
>>
>>
>>
>>
>> >>>> Plugins: 201804012008-version_hash alistair at 4c0a4b2bdb79:vmmaker/opensmalltalk-vm
>> $
>> >>>> Linux 4c0a4b2bdb79 4.13.0-37-generic #42~16.04.1-Ubuntu SMP Wed Mar
>> 7 16:03:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
>> >>>> plugin path:
>> products/cogspur64linuxht/lib/pharo/5.0-201804012008-version_hash [default:
>> /home/alistair/vmmaker/opensmalltalk-vm/products/cogspur64linuxht/lib/pharo/5.0-201804012008-version_hash/]
>> >>>>
>> >>>>
>> >>>> As expected, the hash is also included in:
>> >>>>
>> >>>> - the VirtualMachine object (in Pharo, and the equivalent in squeak)
>> >>>
>> >>>
>> >>> I presume this is what shows up under System > System Reporter ?
>> >>
>> >> Yes.
>> >>
>> >>
>> >>>> - crash.dmp
>> >>>> - kill -USR1 output
>> >>>>
>> >>>>
>> >>>> https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/233
>> >>>> if anyone wants to take a look.
>> >>>
>> >>>
>> >>>
>> >>> An interesting insight for me into how the version info is generated.
>> thx.
>> >>
>> >> Glad it was useful. :-)
>> >>
>> >> Thanks for your feedback.  I'll update the PR (probably tomorrow).
>> >>
>> >> Cheers,
>> >> Alistair
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20180403/b2ceb809/attachment-0001.html>


More information about the Vm-dev mailing list