My GSOC2015 ideas

YongHao Hu christopherwuy at gmail.com
Wed Mar 4 09:46:05 CST 2015


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.

1. Add needed functions about tr2 and finish my patch about cin>>complex
==================
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::sys[2] need to 
implement, which causes a bug[3] now.

2. Optimize printf,sprintf functions using Grisu algorithm
==================
  I had found a bug[4] which is about inconsistent rounding behaviour 
for sprintf function. In order to fix it, I had made a patch[5] using 
Dragon4 algorithm. However, this implementation is a little slower than 
MSVC++ 2010, even four times slower[6] 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 algorithm[7] 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.

3. Implement series undocumented functions about _Pad
==================
There are two bugs needed unimplemented function of _pad in msvcp 
now[8][9]. 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.

[1]: https://www.winehq.org/winapi_stats
[2]: https://msdn.microsoft.com/en-us/eg/library/hh874769.aspx
[3]: https://bugs.winehq.org/show_bug.cgi?id=35774
[4]: https://bugs.winehq.org/show_bug.cgi?id=37913
[5]: http://source.winehq.org/patches/data/109456
[6]: 
http://www.ryanjuckett.com/programming/printing-floating-point-numbers/part-4/
[7]: http://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf
[8]: https://bugs.winehq.org/show_bug.cgi?id=36996
[9]: https://bugs.winehq.org/show_bug.cgi?id=37694



More information about the wine-devel mailing list