Comments (9)
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.
from folly.
#55 replaces the use of constexpr with a macro
from folly.
#56 replaces noexcept with a macro
from folly.
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?
from folly.
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
- You're sending a message to windows users that the default, commercially supported compiler for their platform doesn't matter - it would be similar to not supporting gcc for linux and instead telling them to only use clang... yes it works but...
- VC creates faster, tighter, and arguably better code than gcc and clang on windows - especially when using PGO optimizations and on 64 bit
- MSVC will catch up (the CTP already supports quite a bit including constexpr), by choosing not to support it now you're getting around the constexpr and noexcept issues - but there are other things that will be needed that won't be addressed now - you just push work off to "the future"
from folly.
gcc specific attribute functionality is abstracted out in #57
from folly.
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.
from folly.
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.
from folly.
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!
from folly.
Related Issues (20)
- use folly library failed HOT 1
- À
- Proxygen Linux compilation breaking in folly io_uring
- Compilation error HOT 2
- CommandLineTools 15 possible bug
- coroutine stack overflows
- use of Expected triggers warning
- MPMCQueue blockingRead() doesn't return even with a subsequent write() HOT 1
- packit PR for rpm-build copr build failures, please take a look
- What is the expected behavior of Future::thenInline?
- [build] Build error: link logging_example fail HOT 1
- Possible race condition in ThreadPoolExecutor HOT 1
- `small_vector.MoveAndCopyTrivial` fails with GCC 12.3.0 (no problem with GCC 9.x 10.x 11.x 13.x) HOT 1
- folly::ConcurrentHashMap crashes under high contention HOT 1
- [macOS] `AsyncFdSocket.h: error: 'reinterpret_cast<char*>(15)' is not a constant expression` and other related build errors
- error C2382: 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Eos': redefinition; different exception specifications HOT 7
- undefined reference to `folly::f14::detail::F14LinkCheck HOT 1
- ‘scm_timestamping’ does not name a type
- Is ConcurrentHashMap read lock-free? HOT 2
- Folly fails to build on Windows 11 with build.bat and getdeps.py scripts.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from folly.