GithubHelp home page GithubHelp logo

hhvm / hhvm-third-party Goto Github PK

View Code? Open in Web Editor NEW
33.0 31.0 60.0 13.48 MB

All of the dependencies that hhvm needs which don't have nice packages

License: MIT License

CMake 0.23% C++ 10.39% C 74.23% Shell 2.61% Perl 0.15% Awk 0.01% HTML 3.47% Pascal 0.13% Batchfile 0.10% Makefile 2.57% M4 0.30% Ruby 0.04% TeX 0.73% TXL 0.21% Roff 3.24% Ragel 1.58% Vim Script 0.03%
hhvm

hhvm-third-party's Issues

sqlite3 3.8.4.3 appears to not work; 3.7.15.2 does

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

Update all submodules

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:

  • adding fizz
  • checking if supported distributions have new enough sodium versions for fizz
  • if the version is new enough for fizz, but not ext_sodium, conditionally disabling functions in libsodium
  • if there is no libsodium, or it's too old for fizz, make sure that FB can distribute binaries including it
  • if there is no libsodium or it's too old for fizz and we can distribute, add to the open source build system, and test on all supported distributions
  • if we can't distribute binaries with fizz/sodium, we need to make those dependencies optional

The oldest distributions we currently support are Debian 8 (Jessie) and Ubuntu 14.04 (Trusty). All builds use G++5 or above.

'make clean' kills libmbfl build

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'.

Thrift build on OS X

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.

git status isn't clean after a build

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.

thrift includes not found

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.

SQLite3 FTS tokenizers support

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?

fork moriyoshi/libmbfl and use as a submodule

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.

use double-conversion as a submodule

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.

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.