hhvm / hhvm-third-party Goto Github PK
View Code? Open in Web Editor NEWAll of the dependencies that hhvm needs which don't have nice packages
License: MIT License
All of the dependencies that hhvm needs which don't have nice packages
License: MIT License
the upstream version of this package is basically dead.
Maybe liftafdt should be renamed libfbafdt (or something else) and then put in a separate repository.
libafdt is now on github, so we can use it as a submodule now: https://github.com/facebook/libafdt
Hello,
Sqlite3 library seems not to support FTS4 unicode61 tokenizer by default. Is there a way to build HHVM version with support of this feature?
a 'make clean' in libmbfl/mbfl/ removes eaw_table.h. There is no rule to make this file, so it is not possible to 'make' after running 'make clean'.
Are these curl patches still used by anybody internally?
https://github.com/hhvm/hhvm-third-party/blob/master/libcurl-7.22.1.fb-changes.diff
https://github.com/hhvm/hhvm-third-party/blob/master/libcurl.fb-changes.diff
HHVM 3.24 requires the reference arguments to be marked at the call site, making the TravisCI build for third-party to fail (https://travis-ci.org/hhvm/hhvm-third-party/builds/339611891?utm_source=github_status&utm_medium=notification).
The "sort" call in util/make-notices.hh:88 needs the argument to be marked as a reference at the call site.
Thrift currently doesn't build on OS X using its default compiler environment (clang and libc++). This is due to the Thrift copy in hhvm-third-party still depending on C++11 TR1 being present. Upstream Thrift has fixed this and compiles with either TR1 or actual C++11 (depending on which is present).
The following diff allows me to compile HHVM:
diff --git a/thrift/lib/cpp/async/TEventBase.h b/thrift/lib/cpp/async/TEventBase.h
index d96b708..b98e519 100644
--- a/thrift/lib/cpp/async/TEventBase.h
+++ b/thrift/lib/cpp/async/TEventBase.h
@@ -22,14 +22,14 @@
#include <utility>
#include <boost/intrusive/list.hpp>
#include <boost/utility.hpp>
-#include <tr1/functional>
+#include <functional>
#include <event.h> // libevent
#include <errno.h>
#include <math.h>
namespace apache { namespace thrift { namespace async {
-typedef std::tr1::function<void()> Cob;
+typedef std::function<void()> Cob;
template <typename MessageT>
class TNotificationQueue;
@@ -407,7 +407,7 @@ class TEventBase : private boost::noncopyable, public TimeoutManager {
// --------- libevent callbacks (not for client use) ------------
- static void runTr1FunctionPtr(std::tr1::function<void()>* fn);
+ static void runTr1FunctionPtr(std::function<void()>* fn);
// small object used as a callback arg with enough info to execute the
// appropriate client-provided Cob
diff --git a/thrift/lib/cpp/concurrency/ThreadManager.h b/thrift/lib/cpp/concurrency/ThreadManager.h
index 92899cc..ae6fad7 100644
--- a/thrift/lib/cpp/concurrency/ThreadManager.h
+++ b/thrift/lib/cpp/concurrency/ThreadManager.h
@@ -21,7 +21,7 @@
#define HPHP_THRIFT_CONCURRENCY_THREADMANAGER_H 1
#include <memory>
-#include <tr1/functional>
+#include <functional>
#include <sys/types.h>
#include <array>
#include <unistd.h>
@@ -55,8 +55,8 @@ class ThreadManager {
public:
class Task;
- typedef std::tr1::function<void(std::shared_ptr<Runnable>)> ExpireCallback;
- typedef std::tr1::function<void()> InitCallback;
+ typedef std::function<void(std::shared_ptr<Runnable>)> ExpireCallback;
+ typedef std::function<void()> InitCallback;
virtual ~ThreadManager() {}
diff --git a/thrift/lib/cpp/config.h b/thrift/lib/cpp/config.h
index 481c80e..19d942a 100644
--- a/thrift/lib/cpp/config.h
+++ b/thrift/lib/cpp/config.h
@@ -263,7 +263,7 @@
#define STDC_HEADERS 1
/* Define to 1 if strerror_r returns char *. */
-#define STRERROR_R_CHAR_P 1
+//#define STRERROR_R_CHAR_P 1
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1
I see 3 options to fix this: either the bundled Thrift copy gets updated to a newer version, the code gets patched or Thrift doesn't get bundled anymore as an in-tree copy.
Commit 9f6ae51 switched from webscalesql-5.6 to mysql-5.6.git. The latter does not give a clean
git status after a build. Several non-ignored files are generated, including one which exists as a checked in file and therefore diffs. I tried submitting a fix to mysql-5.6 but it was rejected in favor of fixing upstream. I don't have a contributor agreement in place with Oracle.
libmbfl seems pretty slow to respond to patches, so it'd be nice to have a real place to submit patches to. They could easily grab the patches back later, should they become more active in the future.
This is more involved, as I believe it requires adding a dependency on Fizz, which in turn makes libsodium required. HHVM itself currently has libsodium as an optional dependency. The next update will require:
The oldest distributions we currently support are Debian 8 (Jessie) and Ubuntu 14.04 (Trusty). All builds use G++5 or above.
double-conversion is now on github officially (https://github.com/floitsch/double-conversion) , so we can include it as a submodule.
It also now seems to have enhanced support for building on windows, both with cygwin and as normal.
NOTE: there are some build changes though. A cursory glance shows me that the source directory has moved into a sub directory and the various CMake files have been expanded.
The commit e0fcd65 to roll sqlite3 forward to release from 3.7.15.2 to 3.8.4.3 breaks the execution on ubuntu 13.10. There's an early runtime fatal error regarding $HOME/.hhvm.hhbc not being able to accept a COMMIT from sqlite3. That's true even after removing the file and rebooting.
I rolled back the change, rebuilt, and the problem goes away.
See facebook/hhvm#2194 which seems related, also saying there were issues with sqlite3 3.8
Since 486597c, compilation fails for me with thrift/lib/cpp/async/TAsyncTransport.h
not found. The files CMake generates all lack the new src/
path component.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.