Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That's an interesting data point. I wonder if there is a hard technical reason why that logic could not be added to WINE, or if the WINE maintainers made a decision not to implement similar functionality.




There is not a hard technical reason, just different goals. WINE is a compatibility layer to run Windows apps, and thus most improvements end up fixing an issue with a particular Windows application. It turns out that most Windows applications are somewhat well-behaved and restrict themselves to calling public win32 APIs and public DLL functions, so implementing 100% coverage of internal APIs wouldn't accomplish much beyond exposing the project to accusations of copyright infringement.

IIRC, there is also US court precedent (maybe Sony v. Connectix?) that protects the practice of reverse-engineering external hardware/software systems that programs use in order to facilitate compatibility. WINE risks losing this protection if they stray outside of APIs known to be used (or are otherwise required) by applications.


There's also another partial Win32 reimplementation in retrowin32, with the different goal of being a Windows emulator for the web, not for Linux or as alternate OS, at https://evmar.github.io/retrowin32/ It thus has an even more sparse path/fileapi.h implementation [2] than WINE and ReactOS. Written in Rust.

[2] https://github.com/evmar/retrowin32/blob/main/win32/dll/kern...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: