GithubHelp home page GithubHelp logo

Windows support for folly about folly HOT 9 CLOSED

facebook avatar facebook commented on April 20, 2024 3
Windows support for folly

from folly.

Comments (9)

auroraeosrose avatar auroraeosrose commented on April 20, 2024

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.

auroraeosrose avatar auroraeosrose commented on April 20, 2024

#55 replaces the use of constexpr with a macro

from folly.

auroraeosrose avatar auroraeosrose commented on April 20, 2024

#56 replaces noexcept with a macro

from folly.

jdelong avatar jdelong commented on April 20, 2024

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.

auroraeosrose avatar auroraeosrose commented on April 20, 2024

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

  1. 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...
  2. VC creates faster, tighter, and arguably better code than gcc and clang on windows - especially when using PGO optimizations and on 64 bit
  3. 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.

auroraeosrose avatar auroraeosrose commented on April 20, 2024

gcc specific attribute functionality is abstracted out in #57

from folly.

ki7chen avatar ki7chen commented on April 20, 2024

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.

 avatar commented on April 20, 2024

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.

 avatar commented on April 20, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.