Out of the box primitives for bit in ObjectHeader?

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

Out of the box primitives for bit in ObjectHeader?

Mariano Martinez Peck
 
Hi guys. As you may notice, I always try to push in the direction of a VM where we can have both things: a) a really cooler super fast VM for production super critical applications  and b)  the most-flexible-possible VM for doing reasearh and experiment.

Now I was thinking the following:  we have one free bit in the ObjectHeader. Let's say you are experimenting with something and you would like to tag objects, such as, "traversed", "processes", "isProxy", etc. To do that small experiment you need to modify the VM, adapt the bit, code the primitives, build the VM, put the smalltalk side part etc etc. So I was thinking why not providing such small functionality out of the box?  the idea would be not to give semantics to the bit since each user will do that. So we just provide the VM with 2 primtives, one to get the value (#getBitValue) and one to set it (#setBitTo:). Choose the names you want. 

Then we do not integrate nothing in our images that use such bit, there won't be colisions. Then each guy who wants to experiments with that, can use the primitives and do what he wants.

Some people is doing something with its bit: Jean Batiptse is doing XXX, I am doing YYY, etc. Either in his work or mine, there are much more changes that just that bit, so in anyway, I will end up needing my own VM.

Finally, I could help in providing the code if it is needed.

So, what do you think?

--
Mariano
http://marianopeck.wordpress.com

Reply | Threaded
Open this post in threaded view
|

Re: Out of the box primitives for bit in ObjectHeader?

Igor Stasenko

On 14 December 2011 13:24, Mariano Martinez Peck <[hidden email]> wrote:

>
> Hi guys. As you may notice, I always try to push in the direction of a VM where we can have both things: a) a really cooler super fast VM for production super critical applications  and b)  the most-flexible-possible VM for doing reasearh and experiment.
>
> Now I was thinking the following:  we have one free bit in the ObjectHeader. Let's say you are experimenting with something and you would like to tag objects, such as, "traversed", "processes", "isProxy", etc. To do that small experiment you need to modify the VM, adapt the bit, code the primitives, build the VM, put the smalltalk side part etc etc. So I was thinking why not providing such small functionality out of the box?  the idea would be not to give semantics to the bit since each user will do that. So we just provide the VM with 2 primtives, one to get the value (#getBitValue) and one to set it (#setBitTo:). Choose the names you want.
>
> Then we do not integrate nothing in our images that use such bit, there won't be colisions. Then each guy who wants to experiments with that, can use the primitives and do what he wants.
>
> Some people is doing something with its bit: Jean Batiptse is doing XXX, I am doing YYY, etc. Either in his work or mine, there are much more changes that just that bit, so in anyway, I will end up needing my own VM.
>
> Finally, I could help in providing the code if it is needed.
>
> So, what do you think?
>
i think why not :)

> --
> Mariano
> http://marianopeck.wordpress.com
>
>



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

Re: Out of the box primitives for bit in ObjectHeader?

David T. Lewis
 
On Wed, Dec 14, 2011 at 01:35:49PM +0100, Igor Stasenko wrote:

>
> On 14 December 2011 13:24, Mariano Martinez Peck <[hidden email]> wrote:
> >
> > Hi guys. As you may notice, I always try to push in the direction of a VM where we can have both things: a) a really cooler super fast VM for production super critical applications?? and b)?? the most-flexible-possible VM for doing reasearh and experiment.
> >
> > Now I was thinking the following:?? we have one free bit in the ObjectHeader. Let's say you are experimenting with something and you would like to tag objects, such as, "traversed", "processes", "isProxy", etc. To do that small experiment you need to modify the VM, adapt the bit, code the primitives, build the VM, put the smalltalk side part etc etc. So I was thinking why not providing such small functionality out of the box??? the idea would be not to give semantics to the bit since each user will do that. So we just provide the VM with 2 primtives, one to get the value (#getBitValue) and one to set it (#setBitTo:). Choose the names you want.
> >
> > Then we do not integrate nothing in our images that use such bit, there won't be colisions. Then each guy who wants to experiments with that, can use the primitives and do what he wants.
> >
> > Some people is doing something with its bit: Jean Batiptse is doing XXX, I am doing YYY, etc. Either in his work or mine, there are much more changes that just that bit, so in anyway, I will end up needing my own VM.
> >
> > Finally, I could help in providing the code if it is needed.
> >
> > So, what do you think?
> >
> i think why not :)
>

Indeed, give it a try and see how it works. A good way to try
something like this is to write the two primitives in a new plugin.
That way it is easy to tinker with your code, recompile it, and easily
try it out on the various different flavors of VM.

Also, it a case like this you may end up deciding that the primitives
should remain in an external plugin so that they can be easily removed
from the run time environment if desired. I suspect that security-minded
people might want to do that ;)

Dave
 
Reply | Threaded
Open this post in threaded view
|

Re: Out of the box primitives for bit in ObjectHeader?

Chris Muller-3
In reply to this post by Mariano Martinez Peck

It sounds good, although -- what good are "experiments" that can never
come to fruition on account of there being a possible collision with
other packages using the bit?

Just hope that you don't ever need two packages that need the bit at
the same time?

On Wed, Dec 14, 2011 at 6:24 AM, Mariano Martinez Peck
<[hidden email]> wrote:

>
> Hi guys. As you may notice, I always try to push in the direction of a VM where we can have both things: a) a really cooler super fast VM for production super critical applications  and b)  the most-flexible-possible VM for doing reasearh and experiment.
>
> Now I was thinking the following:  we have one free bit in the ObjectHeader. Let's say you are experimenting with something and you would like to tag objects, such as, "traversed", "processes", "isProxy", etc. To do that small experiment you need to modify the VM, adapt the bit, code the primitives, build the VM, put the smalltalk side part etc etc. So I was thinking why not providing such small functionality out of the box?  the idea would be not to give semantics to the bit since each user will do that. So we just provide the VM with 2 primtives, one to get the value (#getBitValue) and one to set it (#setBitTo:). Choose the names you want.
>
> Then we do not integrate nothing in our images that use such bit, there won't be colisions. Then each guy who wants to experiments with that, can use the primitives and do what he wants.
>
> Some people is doing something with its bit: Jean Batiptse is doing XXX, I am doing YYY, etc. Either in his work or mine, there are much more changes that just that bit, so in anyway, I will end up needing my own VM.
>
> Finally, I could help in providing the code if it is needed.
>
> So, what do you think?
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>