Facebook's Folly, an open-source C++ library designed for high-performance applications, is experiencing significant activity with 245 open issues, highlighting ongoing challenges in cross-platform compatibility and adaptation to new C++ standards.
Recent activities reveal a focus on addressing build failures and compatibility issues across various platforms, particularly with newer C++ standards like C++20 and C++23. Notable issues include build failures related to AsyncSocket
, ConcurrentHashMap
, and EventBaseAtomicNotificationQueue
, suggesting these components may require further testing or refactoring. The development team is actively working on resolving these issues, as evidenced by numerous pull requests targeting performance optimizations and platform-specific fixes.
Recent issues and pull requests indicate a concerted effort to enhance compatibility and performance. For instance, #2329 addresses a missing header causing build failures, while #2322 tackles deprecated features in C++23. Pull requests such as #2335 reduce thread counts to avoid system limits, and #2305 introduces optimized routines for AArch64 targets.
Jay Feldblum (yfeldblum)
CancellationToken::merge()
performance.throw_exception
.Gownta
Alexey Spiridonov
CancellationToken::merge()
performance.Simon Krueger (skrueger)
+
in str_to_floating_fast_float
.folly::fileops
.Chad Austin (chadaustin)
Synchronized::operator->
to prevent accidental locks.Justin Kim
Nicholas Ormrod (Gownta)
Open Source Bot
Paul Cruz (paulcruz74)
BasicTokenBucket
indicate potential areas for improved thread safety.Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 0 | 2 | 0 | 0 | 0 |
30 Days | 9 | 3 | 2 | 9 | 1 |
90 Days | 24 | 21 | 24 | 24 | 1 |
1 Year | 79 | 78 | 133 | 79 | 1 |
All Time | 1150 | 905 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Facebook Community Bot | 1 | 1/1/0 | 1 | 223 | 9759 | |
Jay Feldblum | 1 | 0/0/0 | 45 | 42 | 1181 | |
Alexey Spiridonov | 1 | 0/0/0 | 6 | 14 | 1151 | |
Cullen Walsh | 1 | 0/0/0 | 10 | 150 | 1109 | |
Nicholas Ormrod | 1 | 0/0/0 | 18 | 73 | 1096 | |
Jon Janzen | 2 | 1/0/1 | 2 | 2 | 486 | |
Kevin Doherty | 1 | 0/0/0 | 4 | 7 | 470 | |
Simon Krueger | 1 | 0/0/0 | 3 | 11 | 301 | |
Alex Hornby | 1 | 1/0/1 | 11 | 21 | 227 | |
Denis Yaroshevskiy | 1 | 1/0/1 | 4 | 7 | 128 | |
Andrii Grynenko | 1 | 0/0/0 | 2 | 3 | 116 | |
Chad Austin | 1 | 0/0/0 | 1 | 1 | 64 | |
Open Source Bot | 1 | 0/0/0 | 4 | 2 | 64 | |
Paul Cruz | 1 | 0/0/0 | 2 | 5 | 63 | |
Giuseppe Ottaviano | 1 | 0/0/0 | 1 | 6 | 49 | |
David Peixotto | 1 | 0/0/0 | 1 | 3 | 46 | |
Jeff Mickey | 1 | 0/0/0 | 1 | 2 | 40 | |
Tiziano Carotti | 1 | 0/0/0 | 1 | 2 | 34 | |
Zale Young | 1 | 0/0/0 | 1 | 2 | 33 | |
Miro Bucko | 1 | 0/0/0 | 1 | 2 | 27 | |
generatedunixname89002005307016 | 1 | 0/0/0 | 2 | 10 | 27 | |
TJ Yin | 1 | 0/0/0 | 1 | 3 | 26 | |
Amit Kumar | 1 | 0/0/0 | 1 | 2 | 25 | |
Michael O'Farrell | 1 | 0/0/0 | 1 | 4 | 23 | |
Felix Handte | 1 | 0/0/0 | 2 | 3 | 17 | |
Yuxuan Chen | 1 | 0/0/0 | 1 | 3 | 17 | |
Mikhail Shatalov | 1 | 0/0/0 | 1 | 3 | 13 | |
Sean Warren | 1 | 0/0/0 | 1 | 1 | 7 | |
Jeffrey Igims | 1 | 0/0/0 | 1 | 1 | 5 | |
Nikita Lutsenko | 1 | 0/0/0 | 1 | 1 | 4 | |
Michael van der Westhuizen | 1 | 0/0/0 | 1 | 1 | 3 | |
Nikolay Beloborodov | 1 | 1/0/1 | 1 | 1 | 2 | |
John Weldon | 1 | 1/0/1 | 1 | 1 | 2 | |
Stepan Koltsov | 1 | 0/0/0 | 1 | 1 | 2 | |
Vincent Lee | 1 | 0/0/0 | 1 | 1 | 2 | |
Satish Kumar | 1 | 0/0/0 | 1 | 1 | 2 | |
user Grupo de Sistemas Distribuidos | 1 | 0/0/0 | 1 | 2 | 2 | |
Justin Kim | 1 | 0/0/0 | 1 | 1 | 1 | |
Nhat Minh Le | 1 | 0/0/0 | 1 | 1 | 1 | |
None (jmccl) | 0 | 1/0/0 | 0 | 0 | 0 | |
Darren Greaux (greauxd) | 0 | 1/0/1 | 0 | 0 | 0 | |
Pedro Peixoto (vaavaav) | 0 | 1/0/1 | 0 | 0 | 0 | |
Kan Li (likan999) | 0 | 1/0/1 | 0 | 0 | 0 | |
Thomas P. (tpolasek) | 0 | 1/0/0 | 0 | 0 | 0 | |
Jia Yue Hua (jiayuehua) | 0 | 1/0/0 | 0 | 0 | 0 | |
Lawliet828 (Lawliet828) | 0 | 1/0/0 | 0 | 0 | 0 | |
Arthur O'Dwyer (Quuxplusone) | 0 | 1/0/0 | 0 | 0 | 0 | |
Anonymous (infomaniac777) | 0 | 1/0/0 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
The Facebook Folly project currently has 245 open issues, indicating a significant level of ongoing activity and potential challenges within the codebase. Recent issues highlight various build failures across different platforms, particularly with C++ standards compliance and memory management concerns. A notable trend is the increasing number of reports related to compatibility with newer compilers and standards, particularly C++20, which may suggest that the library is under pressure to adapt to evolving development environments.
Several issues indicate problems with specific features or components, such as AsyncSocket
, ConcurrentHashMap
, and EventBaseAtomicNotificationQueue
, which could imply that these areas require more robust testing or refactoring. There are also multiple reports of undefined references and build failures on different operating systems, including macOS and FreeBSD, suggesting that cross-platform compatibility remains a challenge.
Issue #2332: Is building with tcmalloc supported?
Issue #2329: Build failure in folly/concurrency/SingletonRelaxedCounter.h
std::unordered_map
causing build failures; a PR has been submitted for the fix.Issue #1474: ninja: build stopped: subcommand failed
Issue #2328: BasicTokenBucket thread-safe issue
BasicTokenBucket
implementation.Issue #2322: Build fails for C++23 and Libstdc++, missing std::unexpected_handler
Issue #2315: Please help, test failed: The following tests FAILED...
Issue #2312: Coroutine debugging tools
Issue #2298: Build breaks on the arm64 platform...
Issue #2295: A problem with VC++ and vcpkg due to setting C++ standard...
Issue #2290: F14FastMap release memory
F14FastMap
.The recent activity indicates a pressing need for improved documentation, especially regarding compatibility with new C++ standards and cross-platform builds. The high volume of unresolved issues suggests that contributors may be overwhelmed or that there are systemic problems within certain components of the library, particularly those related to concurrency and memory management.
The presence of multiple issues related to undefined references implies that there may be inconsistencies in how dependencies are managed across different platforms, which could affect user adoption and satisfaction. Addressing these concerns will be crucial for maintaining Folly's reputation as a reliable library for high-performance applications.
The analysis of the pull requests (PRs) for the Facebook Folly project reveals a high level of activity and engagement from contributors. The PRs cover a wide range of topics, including bug fixes, feature enhancements, and infrastructure improvements. Notably, there is a focus on maintaining compatibility across different platforms and compilers, as well as addressing performance optimizations.
ConcurrentHashMapTest
to prevent system thread limit breach on certain platforms.BasicTokenBucket
by ensuring atomic operations on shared variables.libunwind
and liblzma
to avoid build issues.glog
version >= 0.7.fbcode/opensource
to use the Ruff formatter.fast_float
optional in CMake build to improve compatibility with older distributions.FOLLY_ELF_NATIVE_CLASS
for non-glibc systems.mcrouter
manifest for proper recognition as a Meta first-party project.The PRs reflect several key themes:
Cross-Platform Compatibility: Many PRs address compatibility issues across different operating systems and compilers (e.g., PRs #2305, #2325, #2320). This highlights the project's commitment to supporting a wide range of environments.
Performance Optimization: Several PRs focus on optimizing performance (e.g., PRs #2305, #2310). These optimizations are crucial for maintaining Folly's reputation as a high-performance library suitable for large-scale applications.
Infrastructure Improvements: PRs like #2318 and #2282 indicate ongoing efforts to improve the project's infrastructure, such as build systems and code formatting standards. These improvements facilitate better development practices and code quality.
Community Engagement: The diverse range of contributors and the variety of changes suggest an active community engaged in enhancing the library's capabilities and addressing its limitations.
Bug Fixes and Maintenance: Regular updates to fix bugs (e.g., PRs #2327, #2320) demonstrate the project's responsiveness to issues reported by users and contributors.
Overall, the analysis shows that Folly is actively maintained with a focus on performance, compatibility, and community involvement, making it a robust choice for developers seeking high-performance C++ libraries.
Simon Krueger (skrueger)
+
sign in str_to_floating_fast_float
.folly::fileops
functions for file operations on Windows.Jay Feldblum (yfeldblum)
throw_exception
that formats exceptions.CancellationToken::merge()
function.Gownta
Alexey Spiridonov
CancellationToken::merge()
for better performance.Chad Austin (chadaustin)
Synchronized::operator->
into an ImplicitSynchronized
subclass to prevent accidental lock acquisition.Justin Kim
Nicholas Ormrod (Gownta)
Open Source Bot
Paul Cruz (paulcruz74)
Others (including contributors like jeffreyigims, ot, etc.)
The development team is engaged in continuous improvement of the Folly library, focusing on performance enhancements, code quality, and maintaining compatibility across platforms. The high level of activity suggests a robust development cycle with active collaboration among team members.