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-... [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
Hi,
On 03/04/15 16:46, YongHao Hu wrote:
- Add needed functions about tr2 and finish my patch about cin>>complex
Implementing functions from tr2 namespace looks like suitable GSOC project for me. The functions are not documented but it should be easy to guess what needs to be done from function name and tests.
- Optimize printf,sprintf functions using Grisu algorithm
I'm against this one. I'm not sure if we really need it.
- Implement series undocumented functions about _Pad
I'm expecting it to be quite hard taking in account the functions are not documented and that you can't look on the headers while working on it. Also there are only few functions exported from _Pad class, it's probably not enough for whole GSOC program.
Thanks, Piotr