On Jun 2, 2012, at 5:52 PM, Igor Stasenko wrote:
> On 2 June 2012 17:26, Stéphane Ducasse <[email protected]> wrote:
>
>> Don't you think that this is what we are trying to do since ages: improving
>> the infrastructure
>> but not by piling junk on junk.
>
> hehe stef.. I can say this happens everywhere. Piles of junk on top of
> each other..
still my point is valid.
How can we move on at the VM level by step by step improving it
How can we make sure that the code of david from 2006 which speeds up
directories will be integrated?
How can we reduce the complexity of the vm?
This is why I'm working on the consortium to get a chance to the community.
Stef
>
> Like figuring out, why output of readdir() function having strange results..
> To figure it out, you have to read this code, and understand what's going on:
> this is part of standard C library on mac (/usr/include/dirent.h on
> your machine, you can check it)
>
>
> __BEGIN_DECLS
> #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
> int alphasort(const void *, const void *) __DARWIN_INODE64(alphasort);
> #endif /* not POSIX */
> int closedir(DIR *) __DARWIN_ALIAS(closedir);
> #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
> int getdirentries(int, char *, int, long *)
> #if __DARWIN_64_BIT_INO_T
> /*
> * getdirentries() doesn't work when 64-bit inodes is in effect, so we
> * generate a link error.
> */
>
> __asm("_getdirentries_is_not_available_when_64_bit_inodes_are_in_effect")
> #else /* !__DARWIN_64_BIT_INO_T */
>
> __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_6,
> __IPHONE_2_0,__IPHONE_2_0)
> #endif /* __DARWIN_64_BIT_INO_T */
> ;
> #endif /* not POSIX */
> DIR *opendir(const char *) __DARWIN_ALIAS_I(opendir);
> #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
> DIR *__opendir2(const char *, int) __DARWIN_ALIAS_I(__opendir2);
> #endif /* not POSIX */
> struct dirent *readdir(DIR *) __DARWIN_INODE64(readdir);
> int readdir_r(DIR *, struct dirent *, struct dirent **)
> __DARWIN_INODE64(readdir_r);
> void rewinddir(DIR *) __DARWIN_ALIAS_I(rewinddir);
> #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
> int scandir(const char *, struct dirent ***,
> int (*)(struct dirent *), int (*)(const void *, const void *))
> __DARWIN_INODE64(scandir);
> #ifdef __BLOCKS__
> int scandir_b(const char *, struct dirent ***,
> int (^)(struct dirent *), int (^)(const void *, const void *))
> __DARWIN_INODE64(scandir_b) __OSX_AVAILABLE_STARTING(__MAC_10_6,
> __IPHONE_3_2);
> #endif /* __BLOCKS__ */
> #endif /* not POSIX */
> void seekdir(DIR *, long) __DARWIN_ALIAS_I(seekdir);
> long telldir(DIR *) __DARWIN_ALIAS_I(telldir);
> __END_DECLS
>
> #endif /* !KERNEL */
>
>
>
>
>
> --
> Best regards,
> Igor Stasenko.
>