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 People

Contributors

andreazevedo avatar aorenste avatar ckwalsh avatar csdougliss avatar danslo avatar dcsommer avatar drilibo avatar fredemmott avatar garethchen avatar gdbentley avatar huzhiguang avatar jeffchan avatar jjergus avatar jmarrama avatar joelmarcey avatar jwatzman avatar maideca avatar mcuelenaere avatar mofarrell avatar oprudkyi avatar orvid avatar oyamauchi avatar paulbiss avatar phoenixfight avatar ptarjan avatar reeze avatar scannell avatar sgolemon avatar tstarling avatar vsiles avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hhvm-third-party's Issues

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?

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

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.

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.

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.

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

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.

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.