Unix VM isArray

Tim Rowledge tim at sumeru.stanford.edu
Thu Apr 1 18:01:53 UTC 2004


Michael Roberts <mike at mjr104.co.uk> wrote:

> > Hmm... I've been using a possibly newer VMMaker package, it seems.
> > 
> > I'm using
> > http://sumeru.stanford.edu/tim/pooters/SqFiles/packages/VMMaker/VMMaker3-7b1.sar
> > which requires
> > http://sumeru.stanford.edu/tim/pooters/SqFiles/packages/VMMaker/sqVM.zip
> > and a reasonably recent version of the CVS stuff (I'd try the ned-branch, but 
> > that's just me...)

Looks like Ned has built from my not-widely-distributed test package.
Since I had little to no access to the net whilst moving country, the
copies of sqVirtualMachine* are not suitable to the code generated by
the latest VMMaker.

> I'd just like us to be able to document the exact steps that are needed to build the VM at any point in time.  This needs an FAQ entry.
To the best of my knowledge there is quite a bit of this on the swiki.
It might be nice to gather it all together a bit better. A decent
single page/few pages could reasonably be included in either the VMMaker
package or on the cvs tree.

> I would also like to write a script that automates this.  This could
> then be run as a test to check that the VM can always be built the
> documented way.
As I said yesterday - VMMaker has _always_ been scriptable. 


> I think I at least need IsArrayVMProxy.cs (5 December 2003, Andreas Raab) which modified InterpreterProxy.  I imagine all of Andreas' post needs applying.
>
It's in VMMaker3-7b1.sar and now in VMMaker3-7b2.sar (and even - I hope
- in the monticello VMMAker package on squeaksource) along with:-
Second beta release of VMMaker for 3.7.
Changes from VMMaker37a2:-
Add ClassRefsBrowsingForPlugins ( extends image support for classrefs)
Add InterpreterSimulator-primitiveGetAttribute (support Simulator)
Add InterpreterSimulator-sqGrowMemoryBy (ditto)
Add primYield.1.cs - adds primitive for ProcessorScheduler>yield
Add primCopy.1.cs - adds a prim to copy Objects, revised from ar original to make numbered (168)
Add SlightlyFasterActivate-JMM.8.cs
Add ImageStartupFix-JMM.1.cs - consider doing the object counting for real?
Add bytecodePrimPoint-internal-tpr.1.cs - variant of MakePrimPointXInternal-JMM.1.cs
Add InterpreterPlugin-halt.st
Add isArray stuff
	- update Cross/vm/sqVirtualMachine.[ch]
	- IsArrayVM.1.cs - which changes core VM code to use isArray:
	- IsArrayVMProxy.1.cs - which add isArray to the proxy for simulation
	- IsArrayPlugins.2.cs - which uses isArray in some plugin code	
Remove the primitive timing code from primitiveResponse and move it to primitiveExternalCall on the premise that only named prims take along time. To counter this obviously wrong assumption, introduce a new way to call for an interruptCheck asap. Use it in suitable palces.
Build a table of the function addresses of all numbered prims and branch to them instead of using a case statement. This required a number of changes to the CCodeGenerator.

> I roughly understand the changes but I don't know where these need to go for these to be automatically applied.  Should they go into the 3.6 update stream?  or are they part of vmmaker?  Or do you need to know that they need to be applied by hand?
Changes for the vm go into VMMaker and get released when I have time and
see a sensible need for a release. VM changes never go into the update
stream, certainly 3.7 vm changes would not go into the 3.6 updates!
Sometimes in periods of rapid change etc experimental VM builders will
need to do manual work. That's just how it is, unfortunately. If I were
being paid to spend all my time keeping this perfectly up to date and
were provided with a comprehensive test lab of machines and sysadmin
support, well then things might seem simpler to the outside world.
> 
> In general I'd just like to know the correct way to build the unix VM from scratch and I'm happy to document this.  I had a look on the wiki but there was nothing obvious.
I have to disagree here; if _I_ can do it, with my inability to feel
comfortable with *nix, then surely anyone can.
> 
> Is there such a thing as the 'correct' image to use for building the VM.  Should the latest stable image always be able to build the next VM?
Since that is what I use, yes. Just occasionally one or other of the
platforms slips behind because of author time issues. We usually get it
fixed PDQ.

tim
--
Tim Rowledge, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
Oxymorons: Extinct Life



More information about the Squeak-dev mailing list