[Vm-dev] [Vm-team] New VM builds to support Squeak 4.1 release (was: [squeak-dev] 4.1 release tasks)

David T. Lewis lewis at mail.msen.com
Sun Mar 28 18:33:47 UTC 2010

On Fri Mar 19 07:13:18 UTC 2010, John M McIntosh wrote:
> On 2010-03-18, at 6:20 PM, David T. Lewis wrote:
> >
> > - Merge and adopt John's 64-bit and iPhone changes (John, need guidance
> >  as to specific things we need to include for 4.1).
> http://lists.squeakfoundation.org/pipermail/vm-dev/2010-January/003614.html
> > - Updates to support John's microsecond timer changes for profiling.
> http://bugs.squeak.org/view.php?id=7458

John, I have added your microsecond clock changes (Mantis 7458) to VMMaker
on SqueakSource, and also added #primitiveUtdWithOffset as per earlier
thread on vm-dev.

Can you please follow up with the following:

1) Check in the new sq.h into Subversion (attached, and also on Mantis). This
   is your updated sq.h plus one additional declaration for ioUtcWithOffset().

2) In your config.h for OS X and iPhone, add the following macro to override
   the default VMMaker definition and point to your actual platform function:
       #define ioMicroSecondClock ioMicroSeconds

3) Add the implementation for primitiveUtdWithOffset in OS X platform source
   by adding the following macro in your config.h:
       #define ioUtcWithOffset(clock, offset) setMicroSecondsandOffset(clock, offset)

   And then implement the function as:
	sqInt ioUtcWithOffset(sqLong *microSeconds, int *offset)
		struct timeval timeval;
		if (gettimeofday(&timeval, NULL) == -1) return -1;
	 	long long seconds = timeval.tv_sec;
		suseconds_t usec = timeval.tv_usec;
		*microSeconds = seconds * 1000000 + usec;
		*offset = localtime(&seconds)->tm_gmtoff;
		return 0;

Note, the above ioUtcWithOffset is tested only on Linux but should be
the same for OS X. I don't know if it would work for iPhone. If it does
not work, just skip step 3 above and #primitiveUtcWithOffset will give
a primitive failure at runtime.



More information about the Vm-dev mailing list