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)
- <limits> file not found HOT 1
- Link error when using optimization flag -O2
- Maybe some problems with glog? Can't make folly HOT 1
- 2024.06.10.00: error: use of undeclared identifier 'cxxabi_with_cxa_exception' HOT 4
- build failed by following "Build Notes" on Ubuntu 24.04 LTS HOT 1
- label:question ”if the ThreadEntry already exists but pthread_getspecific returns NULL“. How could it happen? HOT 3
- use ParkingLot to construct WaitableMutex will crash
- /usr/include/c++/v1/cxxabi.h:182:8: error: redefinition of '__cxa_eh_globals' HOT 2
- What is the difference between fiber and c++20 coroutine? HOT 1
- Tests fail to compile
- Building with Buck2 HOT 5
- GenPkgConfig.cmake: file(GENERATE) failed with $<COMPILE_LANGUAGE> in fmt 11.0.0 MSVC
- linux : arm64 : undefined reference to `__folly_memcpy_aarch64'
- TLS Renegotiation
- build from source failed on win11 ```subprocess.CalledProcessError: Command '['git', 'apply', '--ignore-space-change', 'D:\\code\\folly\\build\\fbcode_builder\\patches\\boost_comparator_operator_fix.patch']' returned non-zero exit status 128.``` HOT 1
- Build fails on macOS 10.15: `ThreadLocal.h: error: no matching constructor for initialization of 'std::function<LocalRefCount ()>'` HOT 4
- coredump if link with tcmalloc HOT 2
- link static to jemalloc or tcmalloc will cause coredump HOT 3
- List index out of range: build error
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.