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