@ChristopherWu
2017-03-06T22:54:46.000000Z
字数 1736
阅读 1523
Wine
Hello, folks
I'm YongHao Hu, a college student who study and send patches about msvcp,msvcrt. Thanks for Zhenbo's ideas. Here are my ideas for GSoC 2015.
Though msvcp has almost 80%1 functions implemented, it still has many unimplemented functions, which is used heavily in many softwares. For example, almost all the functions in namespace std::tr2::sys2 need to implement, which causes a bug3 now.
I had found a bug4 which is about inconsistent rounding behaviour for sprintf function. In order to fix it, I had made a patch5 using Dragon4 algorithm. However, this implementation is a little slower than MSVC++ 2010, even four times slower6 when printing 64-bit values with the minimal number of significant digits to identify the number like sprintf(buffer, "%.17g", value).
As functions like printf and sprintf are dependent on pf_printf function, to which the patch applies, I guess efficency is important. As a result, using Grisu algorithm7 to optimize the patch is a good choice. Grisu algorithm speeds up 99.4 percent of all 64-bit floating point numbers by only using small-integer arithmetic, while the remaining 0.6% still need to use a variant of Dragon4.
My idea is to improve my patch based on Dragon4 algorithm so that it can be commited, after which I will add Grisu algorithm to optimize it.
There are two bugs needed unimplemented function of _pad in msvcp now8. I have studied and tested _pad function, finding that _pad is an undocumented function.
I also implied that _Pad::Launch is a wrapper of _Thrd_create, thus, it is a tough job which needs to imply and implement many functions.
Though my ideas for GSOC2015 may not mature enough, but I hope that they will be helpful. What's more, I am glad to choose some of them as my proposal, if they meet the criteria for GSoC.
Thank you for reading this email. I will be grateful for any advice you can provide.