-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Windows support for folly #54
Comments
The first portion of this is #53 which adds a cmake build system for folly - it will allow cross-platform and cross compiler support for folly builds. |
#55 replaces the use of constexpr with a macro |
#56 replaces noexcept with a macro |
The solution on #2 seems reasonable to me, but I am not so convinced replacing constexprs with const is going to work out for some parts of the hhvm code---constexpr also lets you use things in places where const doesn't, and I'm pretty sure there's at least a few places where make use of that. Also, writing default move ctors and move assignment operators by hand seems pretty undesirable from a code quality perspective. (Particularly if it's guarded behind an ifdef---it won't really be tested much.) I wonder if it's maybe better just to drop VC++12 from the plan for supported compilers? |
The constexpr stuff stuff no doubt will break in parts of the hhvm code. There will probably need to be two macros for constexpr at some point, one that defines to nothing, and one to constexpr. Chromium, mozilla and others take this route. And yes writing default move ctrs and assignment operators suck - however this is used in 2 places in all of the folly code currently. If the usage can stay to those two locations until MSVC-NEXT is released and 2013 can be ditched it will keep the headaches to a minimum. Some problems with choosing to defenestrate vc++12 support
|
gcc specific attribute functionality is abstracted out in #57 |
I've done porting Benchmark.h, Conv.h and Range.h to MSVC, its really painfull and some feature must be removed to make the compiler happy. |
Thank you for reporting this issue and appreciate your patience. We've notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed. |
Thank you for your patience. After 30 days with no updates from the core team, we're closing out the issue. If you're still experiencing the problem described, please reopen the issue - thanks! |
fbshipit-source-id: 113888cb7117615cb7c21ddaa6829805474fdd69
fbshipit-source-id: 113888cb7117615cb7c21ddaa6829805474fdd69
Allow folly to build and work on windows systems - using
with support for Windows 7 and higher operating systems (this includes server 2012 and 2012 r2)
This is necessary to allow hhvm to link and use folly
Visual Studio 2013 is missing several c++11 features which folly uses, which will make porting a bit of a pain. Currently these have been identified as:
In addition windows in general is missing several posix apis in use. However, only very platform specific futex and elf/dwarf features do not have analogs in the windows apis. So these can be "faked" with posix api wrappers, and perhaps later with pluggable direct calls into windows apis. Even the futex use could be replaced with some of the new threading and atomic calls available since windows 7.
All the currently in use dependencies compile and work properly on windows
This will necessitate a friendlier build system (that's preferably a bit more up to date than the current autotools system), builds of dependencies for deps that don't distribute pre-build binaries (should always be sure that runtimes match), fixes for c++11 features not implemented in msvc, and posix wrappers/adjustments for platform dependent implementations for folly features.
The text was updated successfully, but these errors were encountered: