vmmaker.h?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

vmmaker.h?

Andreas.Raab
 
David -

Is it possible to have VMMaker create a vmmaker.h file that one can
include to determine the VMMaker version the VM was generated from? It
would be enough if it says, e.g.,

#define VMMAKER_VERSION "3.11.3"

This way we could use that in the relevant places to ensure we display
which version the VM was generated from.

Cheers,
   - Andreas
Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

David T. Lewis
 
On Tue, Sep 01, 2009 at 08:43:19PM -0700, Andreas Raab wrote:
>
> Is it possible to have VMMaker create a vmmaker.h file that one can
> include to determine the VMMaker version the VM was generated from? It
> would be enough if it says, e.g.,
>
> #define VMMAKER_VERSION "3.11.3"
>
> This way we could use that in the relevant places to ensure we display
> which version the VM was generated from.

Good idea, this is in VMMaker-dtl.138 on SqueakSource.

I put the macro in the existing interp.h header file, which is generated
as src/vm/interp.h, so you should not need to #include anything.

Dave

Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

Igor Stasenko
 
2009/9/2 David T. Lewis <[hidden email]>:
>
> On Tue, Sep 01, 2009 at 08:43:19PM -0700, Andreas Raab wrote:
>>
>> Is it possible to have VMMaker create a vmmaker.h file that one can
>> include to determine the VMMaker version the VM was generated from? It
>> would be enough if it says, e.g.,
>>
>> #define VMMAKER_VERSION "3.11.3"

i think, it would be much better to have:
#define VMMAKER_VERSION  "VMMaker-dtl.138"

and also, maybe:
#define VMMAKER_DATESTAMP  "3 Sep 2009 10:05 pm"

>>
>> This way we could use that in the relevant places to ensure we display
>> which version the VM was generated from.
>
> Good idea, this is in VMMaker-dtl.138 on SqueakSource.
>
> I put the macro in the existing interp.h header file, which is generated
> as src/vm/interp.h, so you should not need to #include anything.
>
> Dave
>
>



--
Best regards,
Igor Stasenko AKA sig.
Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

Bert Freudenberg
 

On 02.09.2009, at 23:38, Igor Stasenko wrote:

>
> 2009/9/2 David T. Lewis <[hidden email]>:
>>
>> On Tue, Sep 01, 2009 at 08:43:19PM -0700, Andreas Raab wrote:
>>>
>>> Is it possible to have VMMaker create a vmmaker.h file that one can
>>> include to determine the VMMaker version the VM was generated  
>>> from? It
>>> would be enough if it says, e.g.,
>>>
>>> #define VMMAKER_VERSION "3.11.3"
>
> i think, it would be much better to have:
> #define VMMAKER_VERSION  "VMMaker-dtl.138"
>
> and also, maybe:
> #define VMMAKER_DATESTAMP  "3 Sep 2009 10:05 pm"

That could be in addition to the actual version. But a release  
numbering scheme makes much more sense. Glad Dave introduced it.


- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

Igor Stasenko

2009/9/2 Bert Freudenberg <[hidden email]>:

>
>
> On 02.09.2009, at 23:38, Igor Stasenko wrote:
>
>>
>> 2009/9/2 David T. Lewis <[hidden email]>:
>>>
>>> On Tue, Sep 01, 2009 at 08:43:19PM -0700, Andreas Raab wrote:
>>>>
>>>> Is it possible to have VMMaker create a vmmaker.h file that one can
>>>> include to determine the VMMaker version the VM was generated from? It
>>>> would be enough if it says, e.g.,
>>>>
>>>> #define VMMAKER_VERSION "3.11.3"
>>
>> i think, it would be much better to have:
>> #define VMMAKER_VERSION  "VMMaker-dtl.138"
>>
>> and also, maybe:
>> #define VMMAKER_DATESTAMP  "3 Sep 2009 10:05 pm"
>
> That could be in addition to the actual version. But a release numbering
> scheme makes much more sense. Glad Dave introduced it.
>

oh, it looks like i missed something,
but hey, what is the reason to introduce the numbering, while we
already having a numbering
scheme which going straight from MC?
I think its a most easiest way for anyone to tell: i have a VM , based
on VMMaker-bla-bla
instead of X.Y.Z
so, you can quickly determine where you should look at and try to fix it ,
instead of "converting" a numeric version to corresponding MC package.
As to me it looks like an unnecessary brain muscles excersise :)

>
> - Bert -
>
>
>



--
Best regards,
Igor Stasenko AKA sig.
Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

David T. Lewis
In reply to this post by Igor Stasenko
 
On Wed, Sep 02, 2009 at 02:38:05PM -0700, Igor Stasenko wrote:

>  
> 2009/9/2 David T. Lewis <[hidden email]>:
> >
> > On Tue, Sep 01, 2009 at 08:43:19PM -0700, Andreas Raab wrote:
> >>
> >> Is it possible to have VMMaker create a vmmaker.h file that one can
> >> include to determine the VMMaker version the VM was generated from? It
> >> would be enough if it says, e.g.,
> >>
> >> #define VMMAKER_VERSION "3.11.3"
>
> i think, it would be much better to have:
> #define VMMAKER_VERSION  "VMMaker-dtl.138"
>
> and also, maybe:
> #define VMMAKER_DATESTAMP  "3 Sep 2009 10:05 pm"
 
Class VMMaker has a #versionString method that currently answers '3.11.3'.
The value is changed (manually iff I remember to do so) when changes are
made to the VMMaker package as a whole. This is a convention that Tim
put in place a long time ago (at my suggestion actually), so it now provides
a convenient way to provide an approximate version identification for the
VM source that is generated from VMMaker.

Ian has started identifying the Unix VM version (as reported in one of
the system attributes at run time) using a string consisting of the
VMMaker version and the Subversion revision level. This gives a reasonably
good identification of the platforms code plus VMMaker code.

Andreas suggested making the VMMaker versionString accessible as a
macro definition, presumably so that he can do something similar to
what Ian did, but without all the grepping and sedding. Hence this change
to add the VMMAKER_VERSION macro in a header file.

Generating the VMMAKER_VERSION macro is automatic now, so the only thing
that a person who updates the VMMaker package needs to remember is to
update the VMMaker class>>versionString method whenever something
significant changes in the VMMaker package.

Dave

Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

Igor Stasenko

2009/9/2 David T. Lewis <[hidden email]>:

>
> On Wed, Sep 02, 2009 at 02:38:05PM -0700, Igor Stasenko wrote:
>>
>> 2009/9/2 David T. Lewis <[hidden email]>:
>> >
>> > On Tue, Sep 01, 2009 at 08:43:19PM -0700, Andreas Raab wrote:
>> >>
>> >> Is it possible to have VMMaker create a vmmaker.h file that one can
>> >> include to determine the VMMaker version the VM was generated from? It
>> >> would be enough if it says, e.g.,
>> >>
>> >> #define VMMAKER_VERSION "3.11.3"
>>
>> i think, it would be much better to have:
>> #define VMMAKER_VERSION  "VMMaker-dtl.138"
>>
>> and also, maybe:
>> #define VMMAKER_DATESTAMP  "3 Sep 2009 10:05 pm"
>
> Class VMMaker has a #versionString method that currently answers '3.11.3'.
> The value is changed (manually iff I remember to do so) when changes are
> made to the VMMaker package as a whole. This is a convention that Tim
> put in place a long time ago (at my suggestion actually), so it now provides
> a convenient way to provide an approximate version identification for the
> VM source that is generated from VMMaker.
>
> Ian has started identifying the Unix VM version (as reported in one of
> the system attributes at run time) using a string consisting of the
> VMMaker version and the Subversion revision level. This gives a reasonably
> good identification of the platforms code plus VMMaker code.
>
> Andreas suggested making the VMMaker versionString accessible as a
> macro definition, presumably so that he can do something similar to
> what Ian did, but without all the grepping and sedding. Hence this change
> to add the VMMAKER_VERSION macro in a header file.
>
> Generating the VMMAKER_VERSION macro is automatic now, so the only thing
> that a person who updates the VMMaker package needs to remember is to
> update the VMMaker class>>versionString method whenever something
> significant changes in the VMMaker package.
>
and then you have to keep a list of versions, like:

"3.11.3"  -> VMMaker.dtl.123
   or -> VMMaker.dtl.345
 and so on,
in order to quickly find the package version and then load it and
check it out...

Now consider , you are resigned, and all current VM devs are resigned.
But someone else joined and couldn't find any specs in mailing
archives, how to translate the
numeric version into corresponding package version..
And from then on, the only choice he's having is to download a VMMaker
packages one by one,
hoping that one of then will have the same version he looking for...
Ask yourself, do you want to be in place of such pool soul?

> Dave
>
>



--
Best regards,
Igor Stasenko AKA sig.
Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

Andreas.Raab
 
Igor Stasenko wrote:
> Ask yourself, do you want to be in place of such pool soul?

Yes. Absolutely, 100%, yes. If that is *actually* an issue (which it has
never been in the past) I'd be happy to include the VMMaker MCZ that was
used in the source release.

The thing that I *don't* want is to ship versions of VMs where an
end-user needs to figure out whether she is going to use
"SqueakVM-Win32-ar.467" or "SqueakVM-Win32-dtl.468". These numbering
schemes make no sense whatseover outside of this tiny community.

I like schemes that are roughly in sync with the image release. That way
a user who has a Squeak-3.5 image has a chance to figure out that in
order to run it they probably need a Squeak-3.5.x VM.

Cheers,
   - Andreas
Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

Igor Stasenko

2009/9/2 Andreas Raab <[hidden email]>:
>
> Igor Stasenko wrote:
>>
>> Ask yourself, do you want to be in place of such pool soul?
i meant "poor soul".

>
> Yes. Absolutely, 100%, yes. If that is *actually* an issue (which it has
> never been in the past) I'd be happy to include the VMMaker MCZ that was
> used in the source release.
>
> The thing that I *don't* want is to ship versions of VMs where an end-user
> needs to figure out whether she is going to use "SqueakVM-Win32-ar.467" or
> "SqueakVM-Win32-dtl.468". These numbering schemes make no sense whatseover
> outside of this tiny community.
>
> I like schemes that are roughly in sync with the image release. That way a
> user who has a Squeak-3.5 image has a chance to figure out that in order to
> run it they probably need a Squeak-3.5.x VM.

which didn't helped me last time when i tried to run closure-enabled
image using old non-closure VM. Its simply refusing
to run, saying that i'm having a wrong file format (blah blah whatever).
Partly, because after unpacking the archive, i getting a Squeak.exe ,
not a Squeak.X.y.z.exe  and from that point its
really easy to mix thing up.
In reverse (when VM is much more recent than image) i doubt that we
(and consequently - noobs) have any problems, because
VM's always trying to play nicely with old images.

A command-line option ,like
squeak --version

which prints an extensional information about VM would help a lot.

concerning keeping VM/Image versions roughly in sync.. well , it maybe
having some sense for a outsiders and newbies,
but admit that for developers it doing contrary - adds a bit confusion :)

>
> Cheers,
>  - Andreas
>



--
Best regards,
Igor Stasenko AKA sig.
Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

Andreas.Raab
 
Igor Stasenko wrote:
> which didn't helped me last time when i tried to run closure-enabled
> image using old non-closure VM. Its simply refusing
> to run, saying that i'm having a wrong file format (blah blah whatever).
> Partly, because after unpacking the archive, i getting a Squeak.exe ,
> not a Squeak.X.y.z.exe  and from that point its
> really easy to mix thing up.

Yes, you got a point there. I'll fix that.

Cheers,
   - Andreas
Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

David T. Lewis
In reply to this post by Igor Stasenko
 
On Wed, Sep 02, 2009 at 03:23:29PM -0700, Igor Stasenko wrote:
>
> and then you have to keep a list of versions, like:
>
> "3.11.3"  -> VMMaker.dtl.123
>    or -> VMMaker.dtl.345
>  and so on,
> in order to quickly find the package version and then load it and
> check it out...

If you know that your VM was built with sources generated from a version
3.11.3 level of VMMaker, then you can open your Monticello browser, look
at the version history, and see that versionString "3.11.3" was set as of
VMMaker-dtl.137, "3.11.2" was VMMaker-dtl.136, "3.11.1" was VMMaker-dtl.134,
and so on.  This is not perfect, but it is better than nothing.

> Now consider , you are resigned, and all current VM devs are resigned.
> But someone else joined and couldn't find any specs in mailing
> archives, how to translate the
> numeric version into corresponding package version..
> And from then on, the only choice he's having is to download a VMMaker
> packages one by one,
> hoping that one of then will have the same version he looking for...
> Ask yourself, do you want to be in place of such pool soul?

Well, I actually *am* such a poor soul, and I have personally been in
exactly that position. That is that reason that I try to remember to
note the VMMaker version string in the Montecello update comments whenever
it changes (look though the update history with a Monticello browser, or
look at the "News" tab of the VMMaker project on SqueakSource). That is
also the reason that I try to make updates that tie back to Mantis
entries whenever possible (even though I probably annoy people by entering
"bugs" in Mantis and then "resolving" them myself). If I get run over
by a truck today, you can take responsibility for VMMaker tomorrow and
nothing will be lost.

Dave

Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

Igor Stasenko

2009/9/2 David T. Lewis <[hidden email]>:

>
> On Wed, Sep 02, 2009 at 03:23:29PM -0700, Igor Stasenko wrote:
>>
>> and then you have to keep a list of versions, like:
>>
>> "3.11.3"  -> VMMaker.dtl.123
>>    or -> VMMaker.dtl.345
>>  and so on,
>> in order to quickly find the package version and then load it and
>> check it out...
>
> If you know that your VM was built with sources generated from a version
> 3.11.3 level of VMMaker, then you can open your Monticello browser, look
> at the version history, and see that versionString "3.11.3" was set as of
> VMMaker-dtl.137, "3.11.2" was VMMaker-dtl.136, "3.11.1" was VMMaker-dtl.134,
> and so on.  This is not perfect, but it is better than nothing.
>
>> Now consider , you are resigned, and all current VM devs are resigned.
>> But someone else joined and couldn't find any specs in mailing
>> archives, how to translate the
>> numeric version into corresponding package version..
>> And from then on, the only choice he's having is to download a VMMaker
>> packages one by one,
>> hoping that one of then will have the same version he looking for...
>> Ask yourself, do you want to be in place of such pool soul?
>
> Well, I actually *am* such a poor soul, and I have personally been in
> exactly that position. That is that reason that I try to remember to
> note the VMMaker version string in the Montecello update comments whenever
> it changes (look though the update history with a Monticello browser, or
> look at the "News" tab of the VMMaker project on SqueakSource). That is
> also the reason that I try to make updates that tie back to Mantis
> entries whenever possible (even though I probably annoy people by entering
> "bugs" in Mantis and then "resolving" them myself). If I get run over
> by a truck today, you can take responsibility for VMMaker tomorrow and
> nothing will be lost.
>

So, can we have a cake and eat it too?

Like having a #define as following:


#define COMPLETE_VERSION_STRING   VM_VERSION VM_MAKER_VERSION SVN_VERSION

and user could usually see something like:

Squeak VM 3.4.5. (VMMaker.dtl.xyz) (SVN-bla-bla-x,y,z)
> Dave
>
>



--
Best regards,
Igor Stasenko AKA sig.
Reply | Threaded
Open this post in threaded view
|

Re: vmmaker.h?

David T. Lewis
 
On Thu, Sep 03, 2009 at 03:00:35AM -0700, Igor Stasenko wrote:

>
> So, can we have a cake and eat it too?
>
> Like having a #define as following:
>
>
> #define COMPLETE_VERSION_STRING   VM_VERSION VM_MAKER_VERSION SVN_VERSION
>
> and user could usually see something like:
>
> Squeak VM 3.4.5. (VMMaker.dtl.xyz) (SVN-bla-bla-x,y,z)

That is similar to what Ian is doing now. It's implemented in the script
platforms/unix/cmake/configure. Maybe you can borrow some ideas from Ian's
script.

Dave