[squeak-dev] Experimental Cocoa OS-X based Squeak Cog JIT VM 5.8b7

Juan Vuletich juan at jvuletich.org
Wed Sep 8 12:13:02 UTC 2010


John M McIntosh wrote:
> Ok, well it's great someone is actually paying attention. 
>
> In 4.2.4  
>    if (stat(unixPath, &statBuf) && lstat(unixPath, &statBuf))
>  
> 	and pull these values
>
> 	time_t		st_mtime;	/* [XSI] Last data modification time */
> 	time_t		st_ctime;	/* [XSI] Time of last status change */
>
> For your examples the lstat() is the one populating the structure. 
>
> Also described in the man page as the time file was last accessed or modified, of when the inode was last changed, or the birth time of the inode.
>
> We then consider 
> 	localtime(&unixTime)->tm_gmtoff;
>
> to create a time in the Squeak epoch.
>
> Now for the Cocoa Version we take
> NSFileCreationDate The key in a file attribute dictionary whose value indicates the file's creation date.
> NSFileModificationDate The key in a file attribute dictionary whose value indicates the file's last modified date.
>
>
> {
>     NSFileCreationDate = 2010-08-20 13:25:54 -0700;
>     NSFileExtendedAttributes =     {
>         "com.apple.quarantine" = <30303030 3b346337 36396138 623b5361 66617269 2e617070 3b7c636f 6d2e6170 706c652e 53616661 7269>;
>     };
>     NSFileExtensionHidden = 0;
>     NSFileGroupOwnerAccountID = 0;
>     NSFileGroupOwnerAccountName = wheel;
>     NSFileHFSCreatorCode = 1178686292;
>     NSFileHFSTypeCode = 1398039400;
>     NSFileModificationDate = 2010-09-06 18:00:05 -0700;
>     NSFileOwnerAccountID = 501;
>     NSFileOwnerAccountName = johnmci;
>     NSFilePosixPermissions = 420;
>     NSFileReferenceCount = 1;
>     NSFileSize = 4073312;
>     NSFileSystemFileNumber = 81731241;
>     NSFileSystemNumber = 234881026;
>     NSFileType = NSFileTypeRegular;
> }
>
> Now actually another bug is that I'm not re-calculating for DayLightSavings time.  
>
> I've fixed that for 5.8b10  where the date below shows as 17:00:05 but really it should be 18:00:05  
>
> In checking the creation time in Squeak I see it thinks it is "2010-08-20T13:25:54+00:00"  which baring the timezone/daylightsavings +00.00? issue seems correctly stated. 
>
> Let me send you a 5.8b10 VM to test
>
>
> /Users/johnmci/Shared/TextFlow-trunk/trunk.changes
>
>   
> ------------------------------------------------------------------------
>
>
> On 2010-09-07, at 9:53 AM, Juan Vuletich wrote:
>
>   
>> John M McIntosh wrote:
>>     
>>> I've stuck a version (5.8b7) of the cocoa based os-x squeak cog JIT based VM in my experimental folder. Please ensure drawing looks sane, and how it interacts with the mouse and keyboard seems viable. 
>>> http://homepage.mac.com/johnmci/.Public/experimental/Squeak%205.8b7.app.zip
>>>
>>> I finished the open/GL tuning and based on benchmarking I simplified the explicit flush required when a Smalltalk Morphic draw cycle fails to do a flush. Lastly I cross check the source code to ensure it compiles
>>> correctly for the iOS platform. 
>>> --
>>> ===========================================================================
>>> John M. McIntosh <johnmci at smalltalkconsulting.com>   Twitter:  squeaker68882
>>> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
>>> ==========================================================================
>>>  
>>>       
>> Hi John,
>>
>> I found something strange with reported file creation and modification time. The values answered by #primLookupEntryIn:index: are (Tested on Squeak 4.1, Mac OS 10.5.8):
>>
>> 4.2.4 VM (Stack VM):
>> 3461318674         3461318674         newFile
>> 3449660476         3447966888         Squeak 4.2.4beta1U.app
>> 3460975777         3460916669         Squeak.app
>> 3460551046         3460551046         Squeak4.1.image
>> 3449660435         3448977726         SqueakV41.sources
>>
>> 5.8b7 (Cog experimental VM)
>> 3461314066         3461314066         newFile
>> 3447962280         3447962280         Squeak 4.2.4beta1U.app
>> 3460912061         3460912061         Squeak.app
>> 3448973124         3460546438         Squeak4.1.image
>> 3448973118         3448973118         SqueakV41.sources
>>
>> Take for instance SqueakV41.sources:
>>   DateAndTime fromSeconds: 3449660435     2010-04-25T15:00:35-03:00
>>   DateAndTime fromSeconds: 3448977726     2010-04-17T17:22:06-03:00       "This is the correct one according to Finder, 4.2.4 modification time"
>>   DateAndTime fromSeconds: 3448973118     2010-04-17T16:05:18-03:00
>>   DateAndTime fromSeconds: 3448973118     2010-04-17T16:05:18-03:00
>>
>> So I'm, getting incorrect time info in the FileList.
>>
>> Something else I see is that 4.2.4 VM answers the same value for creation and modification time for some files, while 5.8b7 answers the same value for other files. (Why?) For the newly created "newFile", both answer the same value for creation and modification time. The correct value is (again) the one answered by 4.2.4.
>>
>> I'm at the ART time zone.
>>
>> Thanks,
>> Juan Vuletich
>>     
>
> --
> ===========================================================================
> John M. McIntosh <johnmci at smalltalkconsulting.com>   Twitter:  squeaker68882
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ===========================================================================
>   
Hi John,

I've just tested the new VM you sent me. The details are below. This is 
what I see:

1)- 5.8b10 gives exactly the same date/times as 5.8b7

2)- 5.8 (both) seem to show times that are about 1:17 (one hour, 
seventeen minutes) earlier than the correct one. This doesn't have 
relation with time zones or daylight savings, it is a constant number of 
seconds, but not entire hours. May be it is related to the Mac OS 
version? I'm using MacOS 10.5.8.

3)- 5.8 (both) agree with Macintosh Explorer on when creation time 
should equal modification time. This is good. I believe that the new API 
is the correct one, even if still off by 01:17.

4)- 4.2.4 seems to know my time zone (-03:00), 5.8 (both) seem not to know.

5)- Creation time for 4.2.4 seems just wrong. Some times it is the same 
as modification time (when it shouldnt). Some times it doesn't make 
sense to me.

I believe you should see similar results on your system, right?

Thanks,
Juan Vuletich

Creation time left. Modification time right.

5.8b7
2010-09-07 T 12:07:46 +00:00         2010-09-07 T 12:07:46 
+00:00         popo
2010-04-05 T 23:18:00 +00:00         2010-04-05 T 23:18:00 
+00:00         Squeak 4.2.4beta1U.app
2010-09-07 T 16:41:29 +00:00         2010-09-07 T 16:41:29 
+00:00         Squeak 5.8b10.app
2010-01-25 T 15:49:27 +00:00         2010-01-25 T 15:49:27 
+00:00         Squeak 64-32 5.4b2.app
2010-09-02 T 20:27:41 +00:00         2010-09-02 T 20:27:41 
+00:00         Squeak.app
2010-04-17 T 16:05:24 +00:00         2010-08-29 T 14:53:58 
+00:00         Squeak4.1.image
2010-04-25 T 13:42:47 +00:00         2010-04-25 T 13:42:48 
+00:00         SqueakV40.sources
2010-04-17 T 16:05:18 +00:00         2010-04-17 T 16:05:18 
+00:00         SqueakV41.sources

5.8b10
2010-09-07 T 12:07:46 +00:00         2010-09-07 T 12:07:46 
+00:00         popo
2010-04-05 T 23:18:00 +00:00         2010-04-05 T 23:18:00 
+00:00         Squeak 4.2.4beta1U.app
2010-09-07 T 16:41:29 +00:00         2010-09-07 T 16:41:29 
+00:00         Squeak 5.8b10.app
2010-01-25 T 15:49:27 +00:00         2010-01-25 T 15:49:27 
+00:00         Squeak 64-32 5.4b2.app
2010-09-02 T 20:27:41 +00:00         2010-09-02 T 20:27:41 
+00:00         Squeak.app
2010-04-17 T 16:05:24 +00:00         2010-08-29 T 14:53:58 
+00:00         Squeak4.1.image
2010-04-25 T 13:42:47 +00:00         2010-04-25 T 13:42:48 
+00:00         SqueakV40.sources
2010-04-17 T 16:05:18 +00:00         2010-04-17 T 16:05:18 
+00:00         SqueakV41.sources

4.2.4
2010-09-08 T 08:12:29 -03:00         2010-09-07 T 13:24:34 
-03:00         popo
2010-04-25 T 15:01:16 -03:00         2010-04-06 T 00:34:48 
-03:00         Squeak 4.2.4beta1U.app
2010-09-08 T 08:14:53 -03:00         2010-09-07 T 17:58:17 
-03:00         Squeak 5.8b10.app
2010-09-08 T 08:09:27 -03:00         2010-01-25 T 18:06:15 
-03:00         Squeak 64-32 5.4b2.app
2010-09-03 T 14:09:37 -03:00         2010-09-02 T 21:44:29 
-03:00         Squeak.app
2010-09-08 T 08:14:18 -03:00         2010-08-29 T 16:10:46 
-03:00         Squeak4.1.image
2010-04-25 T 14:59:36 -03:00         2010-04-25 T 14:59:36 
-03:00         SqueakV40.sources
2010-09-07 T 13:37:40 -03:00         2010-04-17 T 17:22:06 
-03:00         SqueakV41.sources

Rage Macintosh Explorer
2010-09-07    13:24:34            2010-09-07    13:24:34            popo
2010-04-06    12:34:48            2010-04-06    12:34:48            
Squeak 4.2.4beta1U.app
2010-09-07    17:58:17            2010-09-07    17:58:17            
Squeak 5.8b10.app
2010-01-25    18:06:15            2010-01-25    18:06:15            
Squeak 64-32 5.4b2.app
2010-09-02    21:44:29            2010-09-02    21:44:29            
Squeak.app
2010-04-17    17:22:12            2010-08-29    16:10:46            
Squeak4.1.image
2010-04-25    14:59:35            2010-04-25    14:59:36            
SqueakV40.sources
2010-04-17    17:22:06            2010-04-17    17:02:06            
SqueakV41.sources





More information about the Squeak-dev mailing list