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 |
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? > > -- > Mariano > http://marianopeck.wordpress.com > > -- Best regards, Igor Stasenko. |
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 |
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 > > |
Free forum by Nabble | Edit this page |