Coder Social home page Coder Social logo

mongo-hhvm-driver's Introduction

MongoDB HHVM Driver

End of Life Notice

The MongoDB HHVM Driver is now officially end-of-life (EOL). No further development, bugfixes, enhancements, documentation changes or maintenance will be provided by this project and pull requests will no longer be accepted.

About

This is the low-level HHVM driver for MongoDB. The API is the same as the PHP driver for MongoDB. The documentation for both of them is the same, and can be found at http://www.php.net/manual/en/set.mongodb.php

The driver is written to be a bare bone layer to talk to MongoDB, and therefore misses many convenience features. Instead, these convenience methods have been split out into a layer written in PHP, the MongoDB Library. Using this library should be your preferred way of interacting with MongoDB.

Please note that the new HHVM and PHP drivers implement a different API from the legacy driver at http://pecl.php.net/package/mongo; therefore existing libraries that use the legacy driver (e.g. Doctrine MongoDB's ODM) will not work with the new drivers.

In the long run, we hope that userland packages will be built atop this driver to implement various APIs (e.g. a BC layer for the existing driver, new fluent interfaces), management utilities (for creating admin utilities and cluster management applications), and other interesting libraries.

Documentation

Installation

Please ensure, that before you install the extension, the following tools are installed: autoconf, automake, and libtool.

Compiling this extension requires the hphpize command, which is available by installing the hhvm-dev package from the HHVM repositories or building HHVM from source.

Besides the extension, we recommend using it in combination with our userland library which is distributed as mongodb/mongodb for Composer.

From a package (.tgz)

Releases of this driver can be found on https://github.com/mongodb/mongo-hhvm-driver/releases

Please download the latest .tgz file into a directory, and run the following commands:

mkdir hhvm-mongodb
cd hhvm-mongodb
tar -xvzf ../hhvm-mongodb-1.1.2.tgz
cd hhvm-mongodb-1.1.2
hphpize
cmake .
make configlib
make -j [number_of_processor_cores] # eg. make -j 4
make install

Building from source

Run the following commands:

git clone https://github.com/mongodb/mongo-hhvm-driver --branch master
cd mongo-hhvm-driver/
git submodule update --init --recursive
hphpize
cmake .
make configlib
make -j [number_of_processor_cores] # eg. make -j 4
make install

Installing

In your /etc/hhvm/php.ini, add the following lines (adjusting paths if necessary):

hhvm.dynamic_extensions[mongodb]=mongodb.so

Contributing

See CONTRIBUTING.rst.

mongo-hhvm-driver's People

Contributors

agolin95 avatar bjori avatar derickr avatar hakudev avatar jmikola avatar paulbiss avatar ppetermann avatar raeesiqbal 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  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  avatar  avatar  avatar  avatar

mongo-hhvm-driver's Issues

Cannot compile 1.1.1 on Ubuntu 14.04 Trusty

Due to this commit which adds a Logger statement on line 478, this tagged revision fails to compile because the logger library is never included in bson.cpp. This is true, at least, on an otherwise vanilla Ubuntu Trusty with all of the hhvm build time deps installed.

https://github.com/mongodb/mongo-hhvm-driver/blob/1.1.1/bson.cpp

It's fixed in Master, but if 1.1.1 is the current release we are supposed to use, then the tagged version should be compilable..

Scanning dependencies of target mongodb
[  0%] [  2%] [  2%] [  3%] Building CXX object CMakeFiles/mongodb.dir/bson.cpp.o
Building CXX object CMakeFiles/mongodb.dir/utils.cpp.o
Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/functions.cpp.o
/home/ubuntu/packages/hhvm-mongodb-ext/hhvm-mongodb-ext/bson.cpp: In function ‘void HPHP::hippo_bson_visit_corrupt(const bson_iter_t*, void*)’:
/home/ubuntu/packages/hhvm-mongodb-ext/hhvm-mongodb-ext/bson.cpp:478:2: error: ‘Logger’ has not been declared
  Logger::Verbose("[HIPPO] Corrupt BSON data detected!");
  ^
[  4%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/Binary.cpp.o
make[2]: *** [CMakeFiles/mongodb.dir/bson.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
make: *** [all] Error 2

It crashes everytime

I have a script that adds 100000 documents to Mongo, it works great in PHP but makes HHVM crash all the time.
I use Ubuntu 14.04, HHVM 3.14.2 and Mongo Driver 1.1.2
First, as I say here #103 (comment), I have to update libmongoc with GIt because the provided version does not work.
I have to delete folder and then
git clone https://github.com/mongodb/mongo-c-driver libmongoc
It compiles, and works. But crashes after a few inserts.
HHVM log says nothing, is there anything that I can check to add more info?

error: PreserveRefs is not a member of HPHP::ObjectData

uname -a

Linux x.x.net 3.13.0-46-generic #79-Ubuntu SMP Tue Mar 10 20:06:50 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

hhvm --version

HipHop VM 3.7.0-dev (rel)
Compiler: heads/master-0-ge3a7664881931876e7d3f88e11a080bcee8e955c
Repo schema: 3d0bee0a645b05551fdf17bcb4b263c8bc1d6d3a

I make

git clone https://github.com/10gen-labs/mongo-hhvm-driver-prototype.git
cd mongo-hhvm-driver-prototype

~/mongo-hhvm-driver-prototype # git submodule init
Submodule 'libbson' (https://github.com/mongodb/libbson.git) registered for path 'libbson'
Submodule 'libmongoc' (https://github.com/mongodb/mongo-c-driver.git) registered for path 'libmongoc'

~/mongo-hhvm-driver-prototype # git submodule update
Cloning into 'libbson'...
remote: Counting objects: 7766, done.
remote: Total 7766 (delta 0), reused 0 (delta 0), pack-reused 7766
Receiving objects: 100% (7766/7766), 5.83 MiB | 2.10 MiB/s, done.
Resolving deltas: 100% (5456/5456), done.
Checking connectivity... done.
Submodule path 'libbson': checked out '5038617558e8d620df26c71dfbf1fdeeda13f4b7'
Cloning into 'libmongoc'...
remote: Counting objects: 19062, done.
remote: Compressing objects: 100% (90/90), done.
remote: Total 19062 (delta 45), reused 0 (delta 0), pack-reused 18972
Receiving objects: 100% (19062/19062), 11.25 MiB | 2.90 MiB/s, done.
Resolving deltas: 100% (13952/13952), done.
Checking connectivity... done.
Submodule path 'libmongoc': checked out '38fc65a0f4b2b17d71ee71683c93aa84718a6733'


cd libbson
./autogen.sh
....
libbson was configured with the following options:

Build configuration:
  Enable debugging (slow)                          : no
  Compile with debug symbols (slow)                : no
  Enable GCC build optimization                    : yes
  Enable automatic binary hardening                : yes
  Code coverage support                            : no
  Cross Compiling                                  : no
  Big endian                                       : no
  Link Time Optimization (experimental)            : no



cd libmongoc
./autogen.sh
...

libmongoc was configured with the following options:

Build configuration:
  Enable debugging (slow)                          : no
  Compile with debug symbols (slow)                : no
  Enable GCC build optimization                    : yes
  Enable automatic binary hardening                : yes
  Code coverage support                            : no
  Cross Compiling                                  : no
  Fast counters                                    : no
  SASL                                             : sasl2
  SSL                                              : yes
  Libbson                                          : bundled




# hphpize
** hphpize complete, now run `cmake . && make` to build, `make test` to test
root@sfa30 ~/mongo-hhvm-driver-prototype # cmake .
-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring for HHVM API version 20150212
-- Configuring done
-- Generating done
-- Build files have been written to: /root/mongo-hhvm-driver-prototype


make -j 5
Scanning dependencies of target mongodb
[  2%] [  2%] [  3%] [  4%] Building CXX object CMakeFiles/mongodb.dir/bson.cpp.o
Building CXX object CMakeFiles/mongodb.dir/utils.cpp.o
Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
[  5%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/functions.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/Binary.cpp.o
/root/mongo-hhvm-driver-prototype/bson.cpp: In member function ‘void HPHP::VariantToBsonConverter::convertDocument(bson_t*, const char*, HPHP::Variant)’:
/root/mongo-hhvm-driver-prototype/bson.cpp:178:57: error: ‘PreserveRefs’ is not a member of ‘HPHP::ObjectData’
  document = v.toObject()->o_toIterArray(ctxClassName(), ObjectData::PreserveRefs);
                                                         ^
[  6%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/Javascript.cpp.o
[  7%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/ObjectID.cpp.o
make[2]: *** [CMakeFiles/mongodb.dir/bson.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
make: *** [all] Error 2

I make twiсe, and have error "PreserveRefs" ;(
Where did i wrong ?

Thx

HHVM 3.8 hphp/system/constants.h: No such file or directory

i install clean ubuntu

root@ubu:/home/igor# hhvm --version
HipHop VM 3.8.0 (rel)
Compiler: tags/HHVM-3.8.0-0-gbb32f8d645b28561d8491870c44730b9b3f08d35
Repo schema: 74bee5d310450724cfd49245fd6c2e1e4323b10a

try compile

[ 10%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/UTCDateTime.cpp.o
In file included from /usr/include/hphp/runtime/base/datetime.h:26:0,
                 from /usr/include/hphp/runtime/ext/datetime/ext_datetime.h:23,
                 from /home/igor/mongo-hhvm-driver-prototype/src/MongoDB/BSON/UTCDateTime.cpp:20:
/usr/include/hphp/runtime/base/timezone.h:22:35: fatal error: hphp/system/constants.h: No such file or directory
 #include "hphp/system/constants.h"
                                   ^

Ok , try

sudo apt-get install hhvm-nightly hhvm-dev-nightly

result :

root@ubu:/home/igor/mongo-hhvm-driver-prototype# hhvm --version
HipHop VM 3.9.0-dev (rel)
Compiler: heads/master-0-gb1dec0bd2b938659d32527e9e292e09ec05193ae
Repo schema: bb2ea70ef032f56f3fb4d39ab58941923e2e2995

make :

[ 10%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/UTCDateTime.cpp.o
/home/igor/mongo-hhvm-driver-prototype/src/MongoDB/BSON/UTCDateTime.cpp: In function ‘HPHP::Object HPHP::c_MongoDBBsonUTCDateTime_ni_toDateTime(HPHP::ObjectData*)’:
/home/igor/mongo-hhvm-driver-prototype/src/MongoDB/BSON/UTCDateTime.cpp:48:15: error: ‘makeSmartPtr’ was not declared in this scope
  data->m_dt = makeSmartPtr<DateTime>(0, false);
               ^
/home/igor/mongo-hhvm-driver-prototype/src/MongoDB/BSON/UTCDateTime.cpp:48:36: error: expected primary-expression before ‘>’ token
  data->m_dt = makeSmartPtr<DateTime>(0, false);
                                    ^
/home/igor/mongo-hhvm-driver-prototype/src/MongoDB/BSON/UTCDateTime.cpp:48:41: warning: left operand of comma operator has no effect [-Wunused-value]
  data->m_dt = makeSmartPtr<DateTime>(0, false);
                                         ^
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/BSON/UTCDateTime.cpp.o] Error 1
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2

;(

Issues with building MongoDB HHVM extension

I ran command: sudo apt-get install hhvm-dev
apt-show-versions hhvm-dev
hhvm-dev:amd64/trusty 3.11.0~trusty uptodate
I have version 3.11 of hhvm-dev

Firstly I tried to install: hhvm-mongodb-1.0alpha1.tgz
I followed all the instructions (except I changed make -j 16 to make -j 1 because my virtual machine has single core):

I got a big error:
`

make -j 1
Scanning dependencies of target mongodb
[ 1%] Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
In file included from /tmp/hhvm-mongodb/hhvm-mongodb-1.0alpha1/src/MongoDB/Driver/../../../libbson/src/bson/bson.h:23:0,
from /tmp/hhvm-mongodb/hhvm-mongodb-1.0alpha1/src/MongoDB/Driver/BulkWrite.h:20,
from /tmp/hhvm-mongodb/hhvm-mongodb-1.0alpha1/mongodb.cpp:23:
/tmp/hhvm-mongodb/hhvm-mongodb-1.0alpha1/src/MongoDB/Driver/../../../libbson/src/bson/bson-compat.h:27:25: fatal error: bson-config.h: No such file or directory
#include "bson-config.h"
^
compilation terminated.
make[2]: *** [CMakeFiles/mongodb.dir/mongodb.cpp.o] Error 1
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
make: *** [all] Error 2
`

Cannot compile against HHVM 3.17

It looks like HHVM has (once again) changed some of the API. The MongoDB driver fails to compile against HHVM 3.17. When make is called, here's what I get.

Scanning dependencies of target mongodb
[  0%] Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
In file included from /tmp/builds/hippo/mongodb.cpp:38:0:
/tmp/builds/hippo/src/MongoDB/BSON/ObjectID.h:47:6: error: ‘null_variant’ was not declared in this scope
 void HHVM_METHOD(MongoDBBsonObjectID, __construct, const Variant &objectId = null_variant);
      ^
CMakeFiles/mongodb.dir/build.make:62: recipe for target 'CMakeFiles/mongodb.dir/mongodb.cpp.o' failed
make[2]: *** [CMakeFiles/mongodb.dir/mongodb.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/mongodb.dir/all' failed
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

RC1 cannot be build on ubuntu 14.04.3

Hi everybody,

I'm trying to build the version 1.0.0RC1 on an Ubuntu 14.04.3 but I have an error during this build. (I can build the master version without trouble)

Scanning dependencies of target mongodb
[  1%] Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
[  2%] Building CXX object CMakeFiles/mongodb.dir/bson.cpp.o
[  3%] Building CXX object CMakeFiles/mongodb.dir/utils.cpp.o
/opt/mongo-hhvm-driver/utils.cpp: In static member function 'static HPHP::Object MongoDriver::Utils::doExecuteCommand(const char*, mongoc_client_t*, int, bson_t*, HPHP::Variant)':
/opt/mongo-hhvm-driver/utils.cpp:257:38: error: too few arguments to function 'void _mongoc_cursor_cursorid_init(mongoc_cursor_t*, const bson_t*)'
   _mongoc_cursor_cursorid_init(cursor);
                                      ^
In file included from /opt/mongo-hhvm-driver/utils.h:26:0,
                 from /opt/mongo-hhvm-driver/utils.cpp:22:
/opt/mongo-hhvm-driver/libmongoc/src/mongoc/mongoc-cursor-cursorid-private.h:44:6: note: declared here
 void _mongoc_cursor_cursorid_init (mongoc_cursor_t  *cursor,
      ^
/opt/mongo-hhvm-driver/utils.cpp:261:8: error: 'struct mongoc_cursor_cursorid_t' has no member named 'has_cursor'
   cid->has_cursor = true;
        ^
/opt/mongo-hhvm-driver/utils.cpp:272:74: error: 'struct mongoc_cursor_cursorid_t' has no member named 'first_batch_iter'
     if (BSON_ITER_HOLDS_ARRAY(&child) && bson_iter_recurse(&child, &cid->first_batch_iter)) {
                                                                          ^
/opt/mongo-hhvm-driver/utils.cpp:273:11: error: 'struct mongoc_cursor_cursorid_t' has no member named 'in_first_batch'
      cid->in_first_batch = true;
           ^
make[2]: *** [CMakeFiles/mongodb.dir/utils.cpp.o] Error 1
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
make: *** [all] Error 2

To build it, I use this code:

git clone --recursive https://github.com/mongodb/mongo-hhvm-driver.git
cd mongo-hhvm-driver
git checkout 1.0.0RC1
hphpize
cmake .
make configlib
make

My HHVM version is:

HipHop VM 3.11.0 (rel)
Compiler: tags/HHVM-3.11.0-0-g3dd564a8cde23e3205a29720d3435c771274085e
Repo schema: 52047bdda550f21c2ec2fcc295e0e6d02407be51

So I forgot something ?

Thanks in advance for your help.

PS: Do you have any planning date for the first stable release ?

Compile Errors use of deleted function ‘HPHP::String::String(HPHP::Variant&&)

Libbson 1.3.3 installed
HipHop VM 3.13.0-dev

[root@nginx1 mongo-hhvm-driver]# make -j 4
Scanning dependencies of target mongodb
[  0%] [  1%] Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
[  2%] Building CXX object CMakeFiles/mongodb.dir/bson.cpp.o
Building CXX object CMakeFiles/mongodb.dir/utils.cpp.o
[  3%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/functions.cpp.o
/root/mongo-hhvm-driver/bson.cpp: In member function ‘void HPHP::VariantToBsonConverter::_convertBinary(bson_t*, const char*, HPHP::Object)’:
/root/mongo-hhvm-driver/bson.cpp:277:82: error: use of deleted function ‘HPHP::String::String(HPHP::Variant&&)’
  String data = v.o_get(s_MongoBsonBinary_data, false, s_MongoBsonBinary_className);
                                                                                  ^
In file included from /usr/local/include/hphp/runtime/vm/class.h:25:0,
                 from /usr/local/include/hphp/runtime/base/object-data.h:25,
                 from /usr/local/include/hphp/runtime/base/type-object.h:20,
                 from /usr/local/include/hphp/runtime/vm/native-data.h:22,
                 from /root/mongo-hhvm-driver/bson.cpp:17:
/usr/local/include/hphp/runtime/base/type-string.h:147:18: error: declared here
   /* implicit */ String(Variant&&) = delete;
                  ^
/root/mongo-hhvm-driver/bson.cpp: In member function ‘void HPHP::VariantToBsonConverter::_convertJavascript(bson_t*, const char*, HPHP::Object)’:
/root/mongo-hhvm-driver/bson.cpp:288:90: error: use of deleted function ‘HPHP::String::String(HPHP::Variant&&)’
  String code = v.o_get(s_MongoBsonJavascript_code, false, s_MongoBsonJavascript_className);
                                                                                          ^
In file included from /usr/local/include/hphp/runtime/vm/class.h:25:0,
                 from /usr/local/include/hphp/runtime/base/object-data.h:25,
                 from /usr/local/include/hphp/runtime/base/type-object.h:20,
                 from /usr/local/include/hphp/runtime/vm/native-data.h:22,
                 from /root/mongo-hhvm-driver/bson.cpp:17:
/usr/local/include/hphp/runtime/base/type-string.h:147:18: error: declared here
   /* implicit */ String(Variant&&) = delete;
                  ^
/root/mongo-hhvm-driver/bson.cpp: In member function ‘void HPHP::VariantToBsonConverter::_convertRegex(bson_t*, const char*, HPHP::Object)’:
/root/mongo-hhvm-driver/bson.cpp:335:84: error: use of deleted function ‘HPHP::String::String(HPHP::Variant&&)’
  String regex = v.o_get(s_MongoBsonRegex_pattern, false, s_MongoBsonRegex_className);
                                                                                    ^
In file included from /usr/local/include/hphp/runtime/vm/class.h:25:0,
                 from /usr/local/include/hphp/runtime/base/object-data.h:25,
                 from /usr/local/include/hphp/runtime/base/type-object.h:20,
                 from /usr/local/include/hphp/runtime/vm/native-data.h:22,
                 from /root/mongo-hhvm-driver/bson.cpp:17:
/usr/local/include/hphp/runtime/base/type-string.h:147:18: error: declared here
   /* implicit */ String(Variant&&) = delete;
                  ^
/root/mongo-hhvm-driver/bson.cpp:336:82: error: use of deleted function ‘HPHP::String::String(HPHP::Variant&&)’
  String flags = v.o_get(s_MongoBsonRegex_flags, false, s_MongoBsonRegex_className);
                                                                                  ^
In file included from /usr/local/include/hphp/runtime/vm/class.h:25:0,
                 from /usr/local/include/hphp/runtime/base/object-data.h:25,
                 from /usr/local/include/hphp/runtime/base/type-object.h:20,
                 from /usr/local/include/hphp/runtime/vm/native-data.h:22,
                 from /root/mongo-hhvm-driver/bson.cpp:17:
/usr/local/include/hphp/runtime/base/type-string.h:147:18: error: declared here
   /* implicit */ String(Variant&&) = delete;
                  ^
/root/mongo-hhvm-driver/bson.cpp: In member function ‘bool HPHP::BsonToVariantConverter::convert(HPHP::Variant*)’:
/root/mongo-hhvm-driver/bson.cpp:827:4: error: use of deleted function ‘HPHP::String::String(HPHP::Variant&&)’
    );
    ^
In file included from /usr/local/include/hphp/runtime/vm/class.h:25:0,
                 from /usr/local/include/hphp/runtime/base/object-data.h:25,
                 from /usr/local/include/hphp/runtime/base/type-object.h:20,
                 from /usr/local/include/hphp/runtime/vm/native-data.h:22,
                 from /root/mongo-hhvm-driver/bson.cpp:17:
/usr/local/include/hphp/runtime/base/type-string.h:147:18: error: declared here
   /* implicit */ String(Variant&&) = delete;
                  ^
/root/mongo-hhvm-driver/bson.cpp:878:3: error: use of deleted function ‘HPHP::String::String(HPHP::Variant&&)’
   );
   ^
In file included from /usr/local/include/hphp/runtime/vm/class.h:25:0,
                 from /usr/local/include/hphp/runtime/base/object-data.h:25,
                 from /usr/local/include/hphp/runtime/base/type-object.h:20,
                 from /usr/local/include/hphp/runtime/vm/native-data.h:22,
                 from /root/mongo-hhvm-driver/bson.cpp:17:
/usr/local/include/hphp/runtime/base/type-string.h:147:18: error: declared here
   /* implicit */ String(Variant&&) = delete;
                  ^
make[2]: *** [CMakeFiles/mongodb.dir/bson.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
make: *** [all] Error 2

Cannot compile extension with HHVM 3.19

I use docker to keep my hhvm, Have compiled it one week ago perfectly, but now I was compiling the container again and got a new error when installing hhvm-mongodb:

libbson 1.5.4 was configured with the following options:

Build configuration:
  Enable debugging (slow)                          : no
  Enable extra alignment (required for 1.0 ABI)    : yes
  Compile with debug symbols (slow)                : no
  Enable GCC build optimization                    : yes
  Code coverage support                            : no
  Cross Compiling                                  : no
  Big endian                                       : no
  Link Time Optimization (experimental)            : no

Documentation:
  man                                              : no
  HTML                                             : no


libmongoc 1.5.4 was configured with the following options:

Build configuration:
  Enable debugging (slow)                          : no
  Compile with debug symbols (slow)                : no
  Enable GCC build optimization                    : yes
  Enable automatic init and cleanup                : no
  Code coverage support                            : no
  Cross Compiling                                  : no
  Fast counters                                    : no
  Shared memory performance counters               : yes
  SASL                                             : sasl2
  SSL                                              : openssl
  Libbson                                          : bundled

Documentation:
  man                                              : no
  HTML                                             : no

/etc/mongodb/hhvm-mongodb-1.2.3
Built target configlib
Scanning dependencies of target mongodb
[  1%] Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
[  1%] Building CXX object CMakeFiles/mongodb.dir/bson.cpp.o
/etc/mongodb/hhvm-mongodb-1.2.3/bson.cpp: In member function 'void HPHP::VariantToBsonConverter::convertElement(bson_t*, const char*, HPHP::Variant)':
/etc/mongodb/hhvm-mongodb-1.2.3/bson.cpp:181:8: error: 'KindOfClass' was not declared in this scope
   case KindOfClass:
        ^
CMakeFiles/mongodb.dir/build.make:86: recipe for target 'CMakeFiles/mongodb.dir/bson.cpp.o' failed
make[2]: *** [CMakeFiles/mongodb.dir/bson.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/mongodb.dir/all' failed
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
ERROR: Service 'hhvm' failed to build: The command '/bin/sh -c mkdir /etc/mongodb     && cd /etc/mongodb     && wget https://github.com/mongodb/mongo-hhvm-driver/releases/download/1.2.3/hhvm-mongodb-1.2.3.tgz && tar xvzf hhvm-mongodb-1.2.3.tgz && rm hhvm-mongodb-1.2.3.tgz     && cd ./hhvm-mongodb-1.2.3/     && hphpize     && cmake .     && make configlib     && make -j $(nproc)     && make install' returned a non-zero code: 2

bsonUnserialize randomly throws fatal error, crashes sometimes

This is perhaps the least specific issue I may have ever filed. Sorry about that.

When running a Hack application, I started seeing weird errors that don't seem possible. Namely, trying to set a property on a class that wasn't being unserialized. Occasionally, HHVM would crash inside either MongoDB\Driver\Manager::executeQuery or (less frequently) MongoDB\Driver\Cursor::setTypeMap.

When running on my laptop (2 CPU cores, 8 GB RAM, runs Ubuntu), I would see the crash. When running my application on my desktop at home (8 CPU cores, 16 GB RAM, runs Ubuntu), I wouldn't ever see the crash. The stacktrace HHVM dumps when it crashes is not very helpful. The native stacktrace is just hex addresses with no corresponding header name. Running any of them through hhvm -m translate [hex] result in nothing useful. (Yes, I did a debug build of HHVM and ran it thru gdb. Calling bt right after the crash shows no stack.)

I've done testing on:

  • HHVM 3.15.3 with driver 1.2.0 (version available at 1.2.0 release)
  • HHVM 3.15.5 with driver 1.2.0
  • HHVM 3.15.5 with driver 1.2.3
  • HHVM 3.17.2 with driver 1.2.3
  • (Thinking it might be server weirdness, I also tried MongoDB 3.2 vs 3.4. No difference)

I started to try to make a small proof-of-concept to try to reproduce these errors. I managed to get the proof of concept to spit the errors, but I haven't been able to get it to crash yet.

Here is a repository that has such a proof of concept.

All you need is a mongodb server listening on localhost, and HHVM serving out of the web directory. You'll need composer to initialize the project. (I use three Docker images. One with nginx, the second with HHVM via fastcgi, the third with MongoDB. I can give these to you if necessary.)

If you load this in your browser, it will act normally for a time, then all hell breaks loose after a while. The results are more quickly repeatable if you open this in multiple tabs.

So again, the only time I ever see the crash with my real application is from executeQuery or setTypeMap on a lower RAM machine. The only time I see the fatal error is inside of a bsonUnserialize method. All documents I store in MongoDB use the Persistable interface.

Sorry! 😞

Error building on Centos 7 and HHVm 3.16

Hi there,

I've tried to build it a my server using latest HHVM build.
But following error occurred when I call make -j 20:

/tmp/mongo-hhvm-driver/bson.cpp:1060:3: error: no matching function for call to ‘HPHP::ExecutionContext::invokeFuncFew(HPHP::TypedValue*, HPHP::Func*&, HPHP::ObjectData*, std::nullptr_t, int, HPHP::TypedValue [1])’);

Could not convert BSON document to a PHP variable

I am pulling large dataset from mongo, and occasionally I get this error "Could not convert BSON document to a PHP variable". Can someone explain under what scenarios that error/exception is thrown?

Unable to compile on Mac osx El Capitan

"_sk_value", referenced from:
__mongoc_ssl_check_cert in mongoc-ssl.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [mongodb.so] Error 1
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
make: *** [all] Error 2

I am getting above error while compliling on macosx

Any help would be appreciated.

Can't install on centOS 7

[root@XXXX hhvm-mongodb-1.0beta1]# make -j 16
[ 5%] [ 5%] [ 5%] [ 5%] [ 6%] [ 6%] [ 7%] [ 8%] [ 9%] Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
Building CXX object CMakeFiles/mongodb.dir/bson.cpp.o
[ 10%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/Binary.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/functions.cpp.o
Building CXX object CMakeFiles/mongodb.dir/utils.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/Regex.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/Timestamp.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/ObjectID.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/Javascript.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/UTCDateTime.cpp.o
[ 11%] [ 12%] [ 14%] [ 14%] [ 15%] [ 16%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/BulkWrite.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/Cursor.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/Command.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/Manager.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/CursorId.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/Query.cpp.o
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/mongodb.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/mongodb.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/mongodb.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/CursorId.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/CursorId.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/CursorId.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/UTCDateTime.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/UTCDateTime.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/UTCDateTime.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/utils.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/utils.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/utils.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Query.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Query.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Query.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/ObjectID.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/functions.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/ObjectID.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/ObjectID.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/functions.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/functions.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Javascript.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Javascript.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Javascript.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/BulkWrite.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
make[2]: *** [CMakeFiles/mongodb.dir/mongodb.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/BulkWrite.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/BulkWrite.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Binary.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Binary.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Binary.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/Driver/CursorId.cpp.o] Error 1
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Cursor.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Cursor.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Cursor.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Command.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Command.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Command.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
make[2]: *** [CMakeFiles/mongodb.dir/utils.cpp.o] Error 1
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Timestamp.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Timestamp.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Timestamp.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/BSON/ObjectID.cpp.o] Error 1
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/BSON/UTCDateTime.cpp.o] Error 1
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Regex.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/Driver/Query.cpp.o] Error 1
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Regex.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/BSON/Regex.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/Driver/BulkWrite.cpp.o] Error 1
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/BSON/Javascript.cpp.o] Error 1
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/BSON/functions.cpp.o] Error 1
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Manager.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/assertions.h:28,
from /usr/include/hphp/util/low-ptr.h:20,
from /usr/include/hphp/runtime/base/types.h:23,
from /usr/include/hphp/runtime/base/req-ptr.h:20,
from /usr/include/hphp/runtime/base/type-string.h:20,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Manager.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/string-data.h:29,
from /usr/include/hphp/runtime/base/type-string.h:22,
from /usr/include/hphp/runtime/base/debuggable.h:19,
from /usr/include/hphp/runtime/ext/extension.h:21,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/src/MongoDB/Driver/Manager.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/Driver/Cursor.cpp.o] Error 1
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/BSON/Binary.cpp.o] Error 1
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/BSON/Timestamp.cpp.o] Error 1
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/Driver/Command.cpp.o] Error 1
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/BSON/Regex.cpp.o] Error 1
make[2]: *** [CMakeFiles/mongodb.dir/src/MongoDB/Driver/Manager.cpp.o] Error 1
In file included from /usr/include/hphp/runtime/base/req-ptr.h:21:0,
from /usr/include/hphp/runtime/base/memory-manager.h:39,
from /usr/include/hphp/runtime/vm/native-data.h:19,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/bson.cpp:17:
/usr/include/hphp/runtime/base/countable.h:92:8: error: ‘RefCount’ does not name a type
inline RefCount getCount(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘HPHP::CountableManip::isRefCounted’ declared as an ‘inline’ variable
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:97:26: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:97:42: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isRefCounted(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘HPHP::CountableManip::hasMultipleRefs’ declared as an ‘inline’ variable
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:102:29: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:102:45: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasMultipleRefs(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘HPHP::CountableManip::hasExactlyOneRef’ declared as an ‘inline’ variable
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:107:30: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:107:46: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool hasExactlyOneRef(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘HPHP::CountableManip::isStatic’ declared as an ‘inline’ variable
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:112:22: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:112:38: error: expected ‘,’ or ‘;’ before ‘{’ token
inline bool isStatic(RefCount count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: variable or field ‘incRefCount’ declared void
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:25: error: ‘RefCount’ was not declared in this scope
/usr/include/hphp/runtime/base/countable.h:116:35: error: ‘count’ was not declared in this scope
inline void incRefCount(RefCount& count) {
^
/usr/include/hphp/runtime/base/countable.h:116:35: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/algorithm:62:0,
from /usr/include/hphp/third-party/folly/FBString.h:57,
from /usr/include/hphp/third-party/folly/Conv.h:27,
from /usr/include/hphp/third-party/folly/Format.h:24,
from /usr/include/hphp/util/trace.h:24,
from /usr/include/hphp/runtime/base/memory-manager.h:30,
from /usr/include/hphp/runtime/vm/native-data.h:19,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/bson.cpp:17:
/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/stl_algo.h:4622:5: note: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
In file included from /usr/include/hphp/runtime/base/datatype.h:25:0,
from /usr/include/hphp/runtime/base/typed-value.h:24,
from /usr/include/hphp/runtime/vm/native-data.h:20,
from /root/hhvm-mongodb/hhvm-mongodb-1.0beta1/bson.cpp:17:
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line

pragma GCC diagnostic push

                         ^

/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected ‘}’ before end of line
/usr/include/hphp/third-party/folly/Optional.h:79:29: error: expected declaration before end of line
make[2]: *** [CMakeFiles/mongodb.dir/bson.cpp.o] Error 1
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
make: *** [all] Error 2

Fatal error: Class undefined: MongoClient

I have successfully installed the mongodb.so and configured it in /etc/hhvm/php.in
but it is giving me Fatal error: Class undefined: MongoClient in .
I am using HHVM 3.9.

Please guide me what to do I need mongodb hhvm driver badly as my whole application highly based on mongodb

Provide binary

I only have access to a Ubuntu virtual machine
I'm finding it very difficult to download and BUILD the hhvm-dev (in order to get hphpize).
It is huge and very time consuming.

Until I complete that step, I can't get to the step of building the mongoDB hhvm driver.

Why can't you just provided the *.so compiled binary for us for common operating systems and hhvm versions?

could not compile nightly. ambiguates old declaration ‘const void* memrchr

error:
from /root/mongo-hhvm-driver/src/MongoDB/Driver/ReadPreference.cpp:17:
/usr/include/string.h:118:26: error: ambiguates old declaration ‘const void* memrchr(const void_, int, size_t)’
extern "C++" const void *memrchr (const void *__s, int __c, size_t _n)
^
tried to comment out
extern "C" void
memrchr(const void* s, int c, size_t n);
from
/usr/include/hphp/third-party/folly/portability/String.h

but it makes hhvm crash with segfault after few requests, without using the mongodb driver
not sure if the crash is related. but maybe the segfault is not related to mongodb but to hhvm. because it seems it also crash without mongodb driver

also it does not compile with stable 3.13 ether. it is missing the bash file with build information from /hphp/util folder

Generating Repo Schema ID and Compiler ID
/bin/sh: 1: cd: can't cd to /hphp/util
make[2]: *** [mongodb.so] Error 2
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
make: *** [all] Error 2

I have Ubuntu 14 updated latest, have hhvm-dev

Implement HH\IMemoizeParam in ObjectID

I'm have an array in HackLang and one of its elements is of type MongoDB\BSON\ObjectID. The array is used in a function which is want to be memoized. But when I add <<__Memoize>> at the top of the function, it gives me an error: Cannot serialize object of type MongoDB\BSON\ObjectID because it does not implement HH\IMemoizeParam.
Please implement HH\IMemoizeParam in ObjectID

Update $rename doesn't work

I found that update $rename doesn't work in this driver. I tested also MongoDB driver for php and it was OK.
I tried the following:

[
    '$set' => ['name' => 'test update'],
    '$unset' => ['domain' => ''],
    '$rename' => ['type' => 'category']
]

Operators $set and $unset worked well, but 'type' was not renamed to 'category' and no exception was thrown.

Build Error on Ubuntu 16 - hhvm 3.28

root@ubuntu:~/src/mongo-hhvm-driver# make -j2
Scanning dependencies of target mongodb
[ 0%] Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
[ 1%] Building CXX object CMakeFiles/mongodb.dir/bson.cpp.o
/root/src/mongo-hhvm-driver/mongodb.cpp:56:40: error: ‘s_mongodb_globals’ has not been declared
IMPLEMENT_THREAD_LOCAL(MongoDBGlobals, s_mongodb_globals);
^
/root/src/mongo-hhvm-driver/mongodb.cpp:56:58: error: expected constructor, destructor, or type conversion before ‘;’ token
IMPLEMENT_THREAD_LOCAL(MongoDBGlobals, s_mongodb_globals);
^
/root/src/mongo-hhvm-driver/mongodb.cpp: In function ‘void HPHP::hippo_log_handler(mongoc_log_level_t, const char*, const char*, void*)’:
/root/src/mongo-hhvm-driver/mongodb.cpp:60:6: error: ‘s_mongodb_globals’ was not declared in this scope
if (s_mongodb_globals->log_method == 0) {
^
/root/src/mongo-hhvm-driver/mongodb.cpp: In static member function ‘static bool HPHP::MongoDBExtension::MongoDBDebugIniUpdate(const string&)’:
/root/src/mongo-hhvm-driver/mongodb.cpp:291:4: error: ‘s_mongodb_globals’ was not declared in this scope
s_mongodb_globals->log_method = 0;
^
/root/src/mongo-hhvm-driver/mongodb.cpp:293:4: error: ‘s_mongodb_globals’ was not declared in this scope
s_mongodb_globals->log_method = 1;
^
/root/src/mongo-hhvm-driver/mongodb.cpp: In static member function ‘static std::__cxx11::string HPHP::MongoDBExtension::MongoDBDebugIniGet()’:
/root/src/mongo-hhvm-driver/mongodb.cpp:300:7: error: ‘s_mongodb_globals’ was not declared in this scope
if (s_mongodb_globals->log_method == 1) {
^
/root/src/mongo-hhvm-driver/bson.cpp: In member function ‘void HPHP::VariantToBsonConverter::_convertBinary(bson_t*, const char*, HPHP::Object)’:
/root/src/mongo-hhvm-driver/bson.cpp:337:18: error: ‘struct HPHP::Object’ has no member named ‘o_get’
String data = v.o_get(s_MongoBsonBinary_data, false, s_MongoBsonBinary_className).toString();
^
/root/src/mongo-hhvm-driver/bson.cpp:338:19: error: ‘struct HPHP::Object’ has no member named ‘o_get’
int64_t type = v.o_get(s_MongoBsonBinary_type, false, s_MongoBsonBinary_className).toInt64();
^
/root/src/mongo-hhvm-driver/bson.cpp: In member function ‘void HPHP::VariantToBsonConverter::_convertJavascript(bson_t*, const char*, HPHP::Object)’:
/root/src/mongo-hhvm-driver/bson.cpp:357:18: error: ‘struct HPHP::Object’ has no member named ‘o_get’
String code = v.o_get(s_MongoBsonJavascript_code, false, s_MongoBsonJavascript_className).toString();
^
/root/src/mongo-hhvm-driver/bson.cpp:358:17: error: ‘struct HPHP::Object’ has no member named ‘o_get’
auto scope = v.o_get(s_MongoBsonJavascript_scope, false, s_MongoBsonJavascript_className);
^
/root/src/mongo-hhvm-driver/bson.cpp: In member function ‘void HPHP::VariantToBsonConverter::_convertRegex(bson_t*, const char*, HPHP::Object)’:
/root/src/mongo-hhvm-driver/bson.cpp:406:19: error: ‘struct HPHP::Object’ has no member named ‘o_get’
String regex = v.o_get(s_MongoBsonRegex_pattern, false, s_MongoBsonRegex_className).toString();
^
/root/src/mongo-hhvm-driver/bson.cpp:407:19: error: ‘struct HPHP::Object’ has no member named ‘o_get’
String flags = v.o_get(s_MongoBsonRegex_flags, false, s_MongoBsonRegex_className).toString();
^
/root/src/mongo-hhvm-driver/bson.cpp: In member function ‘void HPHP::VariantToBsonConverter::_convertTimestamp(bson_t*, const char*, HPHP::Object)’:
/root/src/mongo-hhvm-driver/bson.cpp:416:24: error: ‘struct HPHP::Object’ has no member named ‘o_get’
int32_t timestamp = v.o_get(s_MongoBsonTimestamp_timestamp, false, s_MongoBsonTimestamp_className).toInt32();
^
/root/src/mongo-hhvm-driver/bson.cpp:417:24: error: ‘struct HPHP::Object’ has no member named ‘o_get’
int32_t increment = v.o_get(s_MongoBsonTimestamp_increment, false, s_MongoBsonTimestamp_className).toInt32();
^
/root/src/mongo-hhvm-driver/bson.cpp: In member function ‘void HPHP::VariantToBsonConverter::_convertUTCDateTime(bson_t*, const char*, HPHP::Object)’:
/root/src/mongo-hhvm-driver/bson.cpp:425:27: error: ‘struct HPHP::Object’ has no member named ‘o_get’
int64_t milliseconds = v.o_get(s_MongoBsonUTCDateTime_milliseconds, false, s_MongoBsonUTCDateTime_className).toInt64();
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_double(const bson_iter_t*, const char*, double, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:595:20: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(v_double));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_utf8(const bson_iter_t*, const char*, size_t, const char*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:603:20: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(String::FromCStr(v_utf8)));
^
/root/src/mongo-hhvm-driver/bson.cpp:603:51: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(String::FromCStr(v_utf8)));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_document(const bson_iter_t*, const char*, const bson_t*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:617:20: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), document_v);
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_array(const bson_iter_t*, const char*, const bson_t*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:632:20: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), array_v);
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_binary(const bson_iter_t*, const char*, bson_subtype_t, size_t, const uint8_t*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:647:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), result);
^
/root/src/mongo-hhvm-driver/bson.cpp:649:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(obj));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_oid(const bson_iter_t*, const char*, const bson_oid_t*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:664:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), result);
^
/root/src/mongo-hhvm-driver/bson.cpp:666:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(obj));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_bool(const bson_iter_t*, const char*, bool, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:676:20: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(v_bool));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_date_time(const bson_iter_t*, const char*, int64_t, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:694:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), result);
^
/root/src/mongo-hhvm-driver/bson.cpp:696:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(obj));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_null(const bson_iter_t*, const char*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:706:20: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(Variant::NullInit()));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_regex(const bson_iter_t*, const char*, const char*, const char*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:741:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), result);
^
/root/src/mongo-hhvm-driver/bson.cpp:743:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(obj));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_code(const bson_iter_t*, const char*, size_t, const char*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:770:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), result);
^
/root/src/mongo-hhvm-driver/bson.cpp:772:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(obj));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_codewscope(const bson_iter_t*, const char*, size_t, const char*, const bson_t*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:809:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), result);
^
/root/src/mongo-hhvm-driver/bson.cpp:811:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(obj));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_int32(const bson_iter_t*, const char*, int32_t, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:821:20: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(v_int32));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_timestamp(const bson_iter_t*, const char*, uint32_t, uint32_t, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:840:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), result);
^
/root/src/mongo-hhvm-driver/bson.cpp:842:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(obj));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_int64(const bson_iter_t*, const char*, int64_t, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:852:20: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(v_int64));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_maxkey(const bson_iter_t*, const char*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:868:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), result);
^
/root/src/mongo-hhvm-driver/bson.cpp:870:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(obj));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_minkey(const bson_iter_t*, const char*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:888:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), result);
^
/root/src/mongo-hhvm-driver/bson.cpp:890:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(obj));
^
/root/src/mongo-hhvm-driver/bson.cpp: In function ‘bool HPHP::hippo_bson_visit_decimal128(const bson_iter_t*, const char*, const bson_decimal128_t*, void*)’:
/root/src/mongo-hhvm-driver/bson.cpp:921:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), result);
^
/root/src/mongo-hhvm-driver/bson.cpp:923:21: error: ‘FromCStr’ is not a member of ‘HPHP::String’
state->zchild.add(String::FromCStr(key), Variant(obj));
^
/root/src/mongo-hhvm-driver/bson.cpp: In member function ‘bool HPHP::BsonToVariantConverter::convert(HPHP::Variant*)’:
/root/src/mongo-hhvm-driver/bson.cpp:1021:61: error: ‘struct HPHP::Object’ has no member named ‘o_get’
m_state.zchild[s_MongoDriverBsonODM_fieldName].toObject().o_get(s_MongoBsonBinary_type, false, s_MongoBsonBinary_className).toInt64() == 0x80
^
/root/src/mongo-hhvm-driver/bson.cpp:1038:82: error: ‘struct HPHP::Object’ has no member named ‘o_get’
String class_name = m_state.zchild[s_MongoDriverBsonODM_fieldName].toObject().o_get(
^
/root/src/mongo-hhvm-driver/bson.cpp:1099:81: error: ‘struct HPHP::Object’ has no member named ‘o_get’
String class_name = m_state.zchild[s_MongoDriverBsonODM_fieldName].toObject().o_get(
^
/root/src/mongo-hhvm-driver/mongodb.cpp:305:2: warning: control reaches end of non-void function [-Wreturn-type]
}
^
CMakeFiles/mongodb.dir/build.make:62: recipe for target 'CMakeFiles/mongodb.dir/mongodb.cpp.o' failed
make[2]: *** [CMakeFiles/mongodb.dir/mongodb.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/mongodb.dir/build.make:86: recipe for target 'CMakeFiles/mongodb.dir/bson.cpp.o' failed
make[2]: *** [CMakeFiles/mongodb.dir/bson.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/mongodb.dir/all' failed
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Unserialized ObjectID comparisons

The good news is that issue #118 is still resolved. The bad news is that I found a new problem with ObjectID comparisons.

It appears that ObjectIDs that come from the driver (i.e. not instantiated in userland) aren't equal to their userland equivalents. I tried the following script using the alpha builds of the driver for both PHP 7.0 and HHVM 3.15.2. PHP works correctly, HHVM doesn't.

<?php
use MongoDB\BSON\ObjectID;

$m = new MongoDB\Driver\Manager('mongodb://localhost:27017', ['journal' => true]);
$m->executeCommand('hhvm', new \MongoDB\Driver\Command(['dropDatabase' => 1]));

$id1 = '581b93d89e369600015ab13c';
$id2 = '5762ccf0132f14499834bfe2';

echo "Simple test (issue 118):", PHP_EOL;
echo "============", PHP_EOL, PHP_EOL;

$a = new ObjectID($id1);
$b = new ObjectID($id1);
$c = new ObjectID($id2);
echo 'a: ' . $a, PHP_EOL;
echo 'b: ' . $b, PHP_EOL;
echo 'c: ' . $c, PHP_EOL;
echo 'a equals itself (want true): ', $a == $a ? 'true' : 'false', PHP_EOL;
echo 'a equals b (want true): ', $a == $b ? 'true' : 'false', PHP_EOL;
echo 'a equals c (want false): ', $a == $c ? 'true' : 'false', PHP_EOL;

echo PHP_EOL, "Unserialize test:", PHP_EOL;
echo "=================", PHP_EOL, PHP_EOL;

$member = (object)['user' => new ObjectID($id1), 'role' => 'test'];
$insert = new \MongoDB\Driver\BulkWrite();
$insert->insert($member);
$m->executeBulkWrite('hhvm.members', $insert);

$q = new \MongoDB\Driver\Query(['user' => $member->user]);
$res = $m->executeQuery('hhvm.members', $q);
$res = $res->toArray();
$loaded = $res[0];

echo "Original ObjectID:", PHP_EOL;
var_dump($member->user);
echo "Unserialized ObjectID:", PHP_EOL;
var_dump($loaded->user);
echo "Are they loosely equal (want true): ", ($member->user == $loaded->user ? 'true' : 'false'), PHP_EOL;
echo "Are their strings equal (want true): ", ((string)$member->user == (string)$loaded->user ? 'true' : 'false'), PHP_EOL;
echo "New ObjectID based on original (want true): ", (new ObjectID($id1) == $loaded->user ? 'true' : 'false'), PHP_EOL;
echo "New ObjectID based on different (want false): ", (new ObjectID($id2) == $loaded->user ? 'true' : 'false'), PHP_EOL;

PHP 7.0 Output:

Simple test (issue 118):
============

a: 581b93d89e369600015ab13c
b: 581b93d89e369600015ab13c
c: 5762ccf0132f14499834bfe2
a equals itself (want true): true
a equals b (want true): true
a equals c (want false): false

Unserialize test:
=================

Original ObjectID:
/tmp/test.php:39:
class MongoDB\BSON\ObjectID#4 (1) {
  public $oid =>
  string(24) "581b93d89e369600015ab13c"
}
Unserialized ObjectID:
/tmp/test.php:41:
class MongoDB\BSON\ObjectID#10 (1) {
  public $oid =>
  string(24) "581b93d89e369600015ab13c"
}
Are they loosely equal (want true): true
Are their strings equal (want true): true
New ObjectID based on original (want true): true
New ObjectID based on different (want false): false

HHVM Output:

Simple test (issue 118):
============

a: 581b93d89e369600015ab13c
b: 581b93d89e369600015ab13c
c: 5762ccf0132f14499834bfe2
a equals itself (want true): true
a equals b (want true): true
a equals c (want false): false

Unserialize test:
=================

Original ObjectID:
object(MongoDB\BSON\ObjectID)#6 (1) {
  ["oid"]=>
  string(24) "581b93d89e369600015ab13c"
}
Unserialized ObjectID:
object(MongoDB\BSON\ObjectID)#12 (1) {
  ["oid"]=>
  string(24) "581b93d89e369600015ab13c"
}
Are they loosely equal (want true): false
Are their strings equal (want true): true
New ObjectID based on original (want true): false
New ObjectID based on different (want false): false

SASL_LIBRARIES not found by CMake

When I cmake ., I get this error:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
SASL_LIBRARIES
    linked by target "mongodb" in directory /home/raees/dev/hhvm-mongodb-1.1.0RC1

-- Configuring incomplete, errors occurred!

I have the sasl2-bin package installed. Not sure what's the problem here.

`master` branch seems detached from the tagged versions?

... which is a tad confusing.

At the time of writing the ChangeLog.rst file in the master branch is about 5 months old and shows '1.1.1' as its latest entry whereas the 1.1.3 tag is about a month old and has '1.1.3' as it latest entry...

e.g.
https://github.com/mongodb/mongo-hhvm-driver/blob/master/ChangeLog.rst

So it looks like master is out of sync with the stable (tagged) releases -- purposely or not...

Is '1.1.3' the latest stable?

ObjectId should implement Stringish

We have a new interface in HHVM called Stringish, objects implementing it have to provide __toString method.
This way if someone does

<?php
$id = magically_get_object_id();
echo 'ID: '.$id;

it would invoke the __toString method where you can return the real id and it would be recognized by the type checker

Concurrent requests cause data corruption

We're seeing weird data corruption issues on queries when more than one http request is happening at a time. Json objects are turning into arrays seemingly at random. For example:

 { "my_data": { "a": 1, "b": 2 } }

will change into

 { "my_data": [1,2] }

The values are intact but the object turned into an array. Our actual data is a very large json document and different parts of it will be corrupt on each request.

This goes away completely when we hit our app with sequential http requests. When we test the app with php-fpm and its mongo driver instead of hhvm, it also works.

I suspect there's a locking issue somewhere in the driver. Thoughts?

Cannot Compile on Centos 7 with HHVM 13.

I am getting a compile error. I have install the last version of libbson 1.3.1

[root@hhvm2 hhvm-mongodb-1.1.0RC1]# make -j 16
Scanning dependencies of target mongodb
[  0%] [  1%] Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
[  2%] Building CXX object CMakeFiles/mongodb.dir/bson.cpp.o
Building CXX object CMakeFiles/mongodb.dir/utils.cpp.o
[  3%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/functions.cpp.o
[  4%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/Binary.cpp.o
[  5%] [  6%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/Javascript.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/ObjectID.cpp.o
[  7%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/Regex.cpp.o
[  8%] [  9%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/Timestamp.cpp.o
Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/BSON/UTCDateTime.cpp.o
[ 10%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/BulkWrite.cpp.o
[ 11%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/Command.cpp.o
[ 12%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/Cursor.cpp.o
[ 13%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/CursorId.cpp.o
[ 14%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/Manager.cpp.o
[ 15%] Building CXX object CMakeFiles/mongodb.dir/src/MongoDB/Driver/Query.cpp.o

c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [CMakeFiles/mongodb.dir/utils.cpp.o] Error 4
make[2]: *** Waiting for unfinished jobs....

My version of HHVM

HipHop VM 3.13.0-dev (rel)
Compiler: heads/master-0-g79e045f3ad1cbe079ff15c163131eb184db025f9
Repo schema: 3bc9bc7924ab37a19149dc95641f450a3e3c655c

Am I missing something?

Can't compile: problem with third party library

Hello,

I'm trying to install the driver with version 3.11.1 in ubuntu xenial.

[  0%] Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
[  1%] Building CXX object CMakeFiles/mongodb.dir/bson.cpp.o
In file included from /usr/include/hphp/third-party/folly/Format.h:24:0,
                 from /usr/local/include/hphp/util/assertions.h:28,
                 from /usr/local/include/hphp/runtime/base/countable.h:23,
                 from /usr/local/include/hphp/runtime/base/req-ptr.h:20,
                 from /usr/local/include/hphp/runtime/base/type-string.h:20,
                 from /usr/local/include/hphp/runtime/base/debuggable.h:19,
                 from /usr/local/include/hphp/runtime/ext/extension.h:21,
                 from /tmp/mongo-hhvm-driver/mongodb.cpp:17:
/usr/include/hphp/third-party/folly/Conv.h:44:49: fatal error: double-conversion/double-conversion.h: No such file or directory
compilation terminated.
CMakeFiles/mongodb.dir/build.make:62: recipe for target 'CMakeFiles/mongodb.dir/mongodb.cpp.o' failed
make[2]: *** [CMakeFiles/mongodb.dir/mongodb.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /usr/include/hphp/third-party/folly/Format.h:24:0,
                 from /usr/local/include/hphp/util/assertions.h:28,
                 from /usr/local/include/hphp/util/type-scan.h:27,
                 from /usr/local/include/hphp/runtime/base/req-malloc.h:20,
                 from /usr/local/include/hphp/runtime/base/req-containers.h:39,
                 from /usr/local/include/hphp/runtime/base/imarker.h:19,
                 from /usr/local/include/hphp/runtime/vm/native-data.h:19,
                 from /tmp/mongo-hhvm-driver/bson.cpp:17:
/usr/include/hphp/third-party/folly/Conv.h:44:49: fatal error: double-conversion/double-conversion.h: No such file or directory
compilation terminated.
CMakeFiles/mongodb.dir/build.make:86: recipe for target 'CMakeFiles/mongodb.dir/bson.cpp.o' failed
make[2]: *** [MakeFiles/mongodb.dir/bson.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/mongodb.dir/all' failed
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2CMakeFiles/mongodb.dir/bson.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/mongodb.dir/all' failed
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

I can't really find if this driver is supposed to be built with 3.11.1 or not. Am i supposed to manually install folly?

Could not open extension mongodb.so hhvm-mongodb-1.1.3

HHVM isn't starting after setting in php.ini

hhvm.dynamic_extensions[mongodb]=/etc/hhvm/hhvm-mongodb-1.1.3/mongodb.so

Also tried running run-tests.php in fresh install:

hhvm -vDynamicExtensions.0=/etc/hhvm/hhvm-mongodb-1.1.3/mongodb.so run-tests.php

Uncaught exception: Could not open extension /etc/hhvm/hhvm-mongodb-1.1.3/mongodb.so: /etc/hhvm/hhvm-mongodb-1.1.3/mongodb.so: undefined symbol: _ZN4HPHP9type_scan6detail16g_metadata_tableE

hhvm --version

HipHop VM 3.12.0 (rel)
Compiler: tags/HHVM-3.12.0-0-g440e6a096b2db8a449b9690a72f2f1792530e86a
Repo schema: 033b8dedf4af99b892f2488b103a8d67a58ff816

Autoload problem for some classes

Autoload for MongoDB\Model\BSONDocument and MongoDB\Model\BSONArray and probably others does not trigger when using mongo-hhvm-driver.
I'm using the following function, which seems to working fine for other classes.

spl_autoload_register(function($Name){
  // MongoDB library
  if(substr($Name, 0, 7) !== 'MongoDB') return;
  $Path = __DIR__.'/mongo-php-library/src/'.str_replace("\\", '/', substr($Name, 8)).'.php';
  if(file_exists($Path)){
    require($Path);
  }
});

ObjectId constructor not really working

It seems that ObjectID constructor doesn't really work, I'm getting a different ID while passing it another ID, if I'm not wrong it should produce the same ID.

If I run this code :

<?
$myNewId = new ObjectID($id);

error_log("id:      " . print_r($id, true));
error_log("myNewId: " . print_r($myNewId, true));

I get this :

id:      MongoDB\\BSON\\ObjectID Object
(
    [oid] => 560e52566eb3c92fce759015
)

myNewId: MongoDB\\BSON\\ObjectID Object
(
    [oid] => 00000000a89aff655d7f0000
)

But by calling new ObjectID() a second time :

<?
$myNewId       = new ObjectID($id);
$myEvenNewerId = new ObjectID($id);

error_log("id:            " . print_r($id, true));
error_log("myNewId:       " . print_r($myNewId, true));
error_log("myEvenNewerId: " . print_r($myEvenNewerId, true));

Both new ObjectID's have the same ID as the first one :

id:            MongoDB\\BSON\\ObjectID Object
(
    [oid] => 560e52566eb3c92fce759015
)

myNewId:       MongoDB\\BSON\\ObjectID Object
(
    [oid] => 560e52566eb3c92fce759015
)

myEvenNewerId: MongoDB\\BSON\\ObjectID Object
(
    [oid] => 560e52566eb3c92fce759015
)

I'm running hhvm 3.11.0 and 1.0.0RC1 of the mongo hhvm driver.

Unable to compile hhvm 1.1.0-rc1

I just downloaded the mongo driver for hhvm to set it up on my server and can't seem to compile it
This is the error that I get.

vagrant@homestead:~/hhvm-mongodb/hhvm-mongodb-1.1.0RC1$ ./build.sh
** hphpize complete, now run `cmake . && make` to build, `make test` to test
-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring for HHVM API version 20150212
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.0.2f")
CMake Warning (dev) at CMakeLists.txt:42 (add_custom_target):
  Policy CMP0037 is not set: Target names should not be reserved and should
  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  The target name "test" is reserved or not valid for certain CMake features,
  such as generator expressions, and may result in undefined behavior.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/vagrant/hhvm-mongodb/hhvm-mongodb-1.1.0RC1
Scanning dependencies of target mongodb
[  0%] Building CXX object CMakeFiles/mongodb.dir/mongodb.cpp.o
In file included from /home/vagrant/hhvm-mongodb/hhvm-mongodb-1.1.0RC1/src/MongoDB/Driver/../../../libbson/src/bson/bson.h:23:0,
                 from /home/vagrant/hhvm-mongodb/hhvm-mongodb-1.1.0RC1/src/MongoDB/Driver/BulkWrite.h:20,
                 from /home/vagrant/hhvm-mongodb/hhvm-mongodb-1.1.0RC1/mongodb.cpp:21:
/home/vagrant/hhvm-mongodb/hhvm-mongodb-1.1.0RC1/src/MongoDB/Driver/../../../libbson/src/bson/bson-compat.h:37:25: fatal error: bson-config.h: No such file or directory
 #include "bson-config.h"
                         ^
compilation terminated.
make[2]: *** [CMakeFiles/mongodb.dir/mongodb.cpp.o] Error 1
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
make: *** [all] Error 2

The version of hhvm and hhvm-dev are as follows

vagrant@homestead:~/hhvm-mongodb/hhvm-mongodb-1.1.0RC1$ apt-show-versions hhvm-dev
hhvm-dev:amd64/trusty 3.12.0~trusty uptodate
vagrant@homestead:~/hhvm-mongodb/hhvm-mongodb-1.1.0RC1$ apt-show-versions hhvm
hhvm:amd64/trusty 3.12.0~trusty uptodate

I was getting memory errors when compiling the beta and the alpha, so I set it up to 8GB and was still getting errors. So I downloaded the RC version and used the build.sh to run the build.

Could you please advice on what I could do to compile the source successfully.

Bulk Read

There is bulked writes, but I can not find any reference to bulk read. Is it because bulk write used to be batch which existed in the old driver?
It seems that the current implementation differs from: http://docs.mongodb.org/manual/reference/method/Bulk/
Is there a documentation on the protocole of this command, could it be implemented with a lib such as mongofill?

ObjectID comparisons don't work on HHVM

It seems like HHVM doesn't compare ObjectIDs correctly. Any ObjectID seems to be loosely equal (==) to any other ObjectID.

I ran the following code on both PHP 7.0 (using MongoDB driver 1.1.7) and HHVM 3.14.4 (using MongoDB driver 1.3.0-dev, just cloned and built from master).

PHP 7 compares ObjectIDs as you might expect. HHVM does not.

<?php

use \MongoDB\BSON\ObjectID;

$a = new ObjectID();
$b = new ObjectID((string)$a);
$c = new ObjectID();

echo 'a: ' . $a, PHP_EOL;
echo 'b: ' . $b, PHP_EOL;
echo 'c: ' . $c, PHP_EOL;
echo 'a equals itself ', $a == $a ? 'true' : 'false', PHP_EOL;
echo 'a equals b ', $a == $b ? 'true' : 'false', PHP_EOL;
echo 'a equals c ', $a == $c ? 'true' : 'false', PHP_EOL;

PHP results:

a: 57a4b4255debb74c5f05d011
b: 57a4b4255debb74c5f05d011
c: 57a4b4255debb74c5f05d012
a equals itself true
a equals b true
a equals c false

HHVM results:

a: 57a4b43c5debb74c6d73d7e1
b: 57a4b43c5debb74c6d73d7e1
c: 57a4b43c5debb74c6d73d7e2
a equals itself true
a equals b true
a equals c true

My temporary workaround for this problem is to cast both ObjectIDs to strings.

Cannot install on OSX (hhvm 3.11.0)

I believe I have some outdated libraries. I'll try to rebuild the driver without SSL support (which I don't use it anyways).

[  1%] Linking CXX shared library mongodb.so
Undefined symbols for architecture x86_64:
  "_ASN1_STRING_data", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_ASN1_STRING_length", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_ASN1_STRING_to_UTF8", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_BIO_clear_flags", referenced from:
      __mongoc_stream_tls_bio_write in mongoc-stream-tls.c.o
      __mongoc_stream_tls_bio_read in mongoc-stream-tls.c.o
  "_BIO_ctrl", referenced from:
      __mongoc_ssl_extract_subject in mongoc-ssl.c.o
      _mongoc_stream_tls_do_handshake in mongoc-stream-tls.c.o
      _mongoc_stream_tls_check_cert in mongoc-stream-tls.c.o
      __mongoc_stream_tls_flush in mongoc-stream-tls.c.o
  "_BIO_free", referenced from:
      __mongoc_ssl_extract_subject in mongoc-ssl.c.o
  "_BIO_free_all", referenced from:
      __mongoc_stream_tls_destroy in mongoc-stream-tls.c.o
  "_BIO_gets", referenced from:
      __mongoc_ssl_extract_subject in mongoc-ssl.c.o
  "_BIO_new", referenced from:
      __mongoc_ssl_extract_subject in mongoc-ssl.c.o
      _mongoc_stream_tls_new in mongoc-stream-tls.c.o
  "_BIO_new_ssl", referenced from:
      _mongoc_stream_tls_new in mongoc-stream-tls.c.o
  "_BIO_push", referenced from:
      _mongoc_stream_tls_new in mongoc-stream-tls.c.o
  "_BIO_read", referenced from:
      __mongoc_stream_tls_readv in mongoc-stream-tls.c.o
  "_BIO_s_file", referenced from:
      __mongoc_ssl_extract_subject in mongoc-ssl.c.o
  "_BIO_s_mem", referenced from:
      __mongoc_ssl_extract_subject in mongoc-ssl.c.o
  "_BIO_set_flags", referenced from:
      __mongoc_stream_tls_bio_write in mongoc-stream-tls.c.o
      __mongoc_stream_tls_bio_read in mongoc-stream-tls.c.o
  "_BIO_test_flags", referenced from:
      _mongoc_stream_tls_should_retry in mongoc-stream-tls.c.o
      _mongoc_stream_tls_should_read in mongoc-stream-tls.c.o
      _mongoc_stream_tls_should_write in mongoc-stream-tls.c.o
      __mongoc_stream_tls_readv in mongoc-stream-tls.c.o
      __mongoc_stream_tls_write in mongoc-stream-tls.c.o
  "_BIO_write", referenced from:
      __mongoc_stream_tls_write in mongoc-stream-tls.c.o
  "_CRYPTO_free", referenced from:
      __mongoc_ssl_cleanup in mongoc-ssl.c.o
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_CRYPTO_get_locking_callback", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
      __mongoc_ssl_cleanup in mongoc-ssl.c.o
  "_CRYPTO_malloc", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
  "_CRYPTO_num_locks", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
      __mongoc_ssl_cleanup in mongoc-ssl.c.o
  "_CRYPTO_set_id_callback", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
      __mongoc_ssl_cleanup in mongoc-ssl.c.o
  "_CRYPTO_set_locking_callback", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
      __mongoc_ssl_cleanup in mongoc-ssl.c.o
  "_ERR_load_BIO_strings", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
  "_EVP_DigestFinal_ex", referenced from:
      __mongoc_scram_step in mongoc-scram.c.o
  "_EVP_DigestInit_ex", referenced from:
      __mongoc_scram_step in mongoc-scram.c.o
  "_EVP_DigestUpdate", referenced from:
      __mongoc_scram_step in mongoc-scram.c.o
  "_EVP_MD_CTX_cleanup", referenced from:
      __mongoc_scram_step in mongoc-scram.c.o
  "_EVP_MD_CTX_init", referenced from:
      __mongoc_scram_step in mongoc-scram.c.o
  "_EVP_sha1", referenced from:
      __mongoc_scram_step in mongoc-scram.c.o
  "_GENERAL_NAMES_free", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_HMAC", referenced from:
      __mongoc_scram_step in mongoc-scram.c.o
  "_OPENSSL_add_all_algorithms_noconf", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
  "_PEM_read_bio_X509", referenced from:
      __mongoc_ssl_extract_subject in mongoc-ssl.c.o
  "_RAND_add", referenced from:
      _mongoc_rand_add in mongoc-rand.c.o
  "_RAND_bytes", referenced from:
      __mongoc_rand_bytes in mongoc-rand.c.o
  "_RAND_pseudo_bytes", referenced from:
      __mongoc_pseudo_rand_bytes in mongoc-rand.c.o
  "_RAND_seed", referenced from:
      _mongoc_rand_seed in mongoc-rand.c.o
  "_RAND_status", referenced from:
      _mongoc_rand_status in mongoc-rand.c.o
  "_SSL_CTX_check_private_key", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_SSL_CTX_ctrl", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_SSL_CTX_free", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
      __mongoc_stream_tls_destroy in mongoc-stream-tls.c.o
  "_SSL_CTX_get_cert_store", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_SSL_CTX_load_verify_locations", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_SSL_CTX_new", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_SSL_CTX_set_cipher_list", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_SSL_CTX_set_default_passwd_cb", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_SSL_CTX_set_default_passwd_cb_userdata", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_SSL_CTX_use_PrivateKey_file", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_SSL_CTX_use_certificate_chain_file", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_SSL_get_peer_certificate", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_SSL_get_verify_result", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_SSL_library_init", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
  "_SSL_load_error_strings", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
  "_SSLv23_method", referenced from:
      __mongoc_ssl_init in mongoc-ssl.c.o
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_X509_LOOKUP_file", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_X509_NAME_ENTRY_get_data", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_X509_NAME_get_entry", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_X509_NAME_get_index_by_NID", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_X509_NAME_print_ex", referenced from:
      __mongoc_ssl_extract_subject in mongoc-ssl.c.o
  "_X509_STORE_add_lookup", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_X509_STORE_set_flags", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "_X509_free", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
      __mongoc_ssl_extract_subject in mongoc-ssl.c.o
  "_X509_get_ext_d2i", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_X509_get_subject_name", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
      __mongoc_ssl_extract_subject in mongoc-ssl.c.o
  "_X509_load_crl_file", referenced from:
      __mongoc_ssl_ctx_new in mongoc-ssl.c.o
  "HPHP::IniSetting::ResetSystemDefault(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      void HPHP::IniSetting::Bind<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(HPHP::Extension const*, HPHP::IniSetting::Mode, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*, HPHP::IniSetting::SetAndGet<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) in mongodb.cpp.o
  "HPHP::IniSetting::Bind(HPHP::Extension const*, HPHP::IniSetting::Mode, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<bool (HPHP::Variant const&)>, std::__1::function<HPHP::Variant ()>, std::__1::function<HPHP::UserIniData* ()>)", referenced from:
      void HPHP::IniSetting::Bind<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(HPHP::Extension const*, HPHP::IniSetting::Mode, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*, HPHP::IniSetting::SetAndGet<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) in mongodb.cpp.o
  "HPHP::MixedArray::MakeReserve(unsigned int)", referenced from:
      MongoDriver::Utils::CreateAndConstruct(HPHP::StaticString, HPHP::Variant const&, HPHP::Variant const&) in utils.cpp.o
  "HPHP::ObjectData::o_toIterArray(HPHP::String const&, HPHP::ObjectData::IterMode)", referenced from:
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
  "HPHP::ObjectData::callCustomInstanceInit()", referenced from:
      HPHP::ObjectData::newInstance(HPHP::Class*) in bson.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in utils.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Binary.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in UTCDateTime.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Cursor.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Manager.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Server.cpp.o
      ...
  "HPHP::ObjectData::raiseAbstractClassError(HPHP::Class*)", referenced from:
      HPHP::ObjectData::newInstance(HPHP::Class*) in bson.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in utils.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Binary.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in UTCDateTime.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Cursor.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Manager.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Server.cpp.o
      ...
  "HPHP::ObjectData::o_get(HPHP::String const&, bool, HPHP::String const&)", referenced from:
      MongoDriver::Utils::doExecuteQuery(HPHP::String, _mongoc_client_t*, int, HPHP::Object, HPHP::Variant) in utils.cpp.o
      HPHP::c_MongoDBBsonBinary_ni___debugInfo(HPHP::ObjectData*) in Binary.cpp.o
      HPHP::c_MongoDBBsonUTCDateTime_ni_toDateTime(HPHP::ObjectData*) in UTCDateTime.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeCommand(HPHP::ObjectData*, HPHP::String const&, HPHP::Object const&, HPHP::Variant const&) in Manager.cpp.o
      HPHP::c_MongoDBDriverServer_ni_executeCommand(HPHP::ObjectData*, HPHP::String const&, HPHP::Object const&, HPHP::Variant const&) in Server.cpp.o
  "HPHP::ObjectData::o_set(HPHP::String const&, HPHP::Variant const&, HPHP::String const&)", referenced from:
      HPHP::hippo_bson_visit_date_time(bson_iter_t const*, char const*, long long, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_regex(bson_iter_t const*, char const*, char const*, char const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_code(bson_iter_t const*, char const*, unsigned long, char const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_codewscope(bson_iter_t const*, char const*, unsigned long, char const*, _bson_t const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_timestamp(bson_iter_t const*, char const*, unsigned int, unsigned int, void*) in bson.cpp.o
      HPHP::createMongoBsonBinaryObject(unsigned char const*, unsigned long, bson_subtype_t) in Binary.cpp.o
      HPHP::c_MongoDBBsonUTCDateTime_ni___construct(HPHP::ObjectData*, HPHP::Variant const&) in UTCDateTime.cpp.o
      ...
  "HPHP::ObjectData::release()", referenced from:
      HPHP::Object::~Object() in mongodb.cpp.o
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertSpecialObject(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      HPHP::hippo_bson_visit_binary(bson_iter_t const*, char const*, bson_subtype_t, unsigned long, unsigned char const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_oid(bson_iter_t const*, char const*, bson_oid_t const*, void*) in bson.cpp.o
      ...
  "HPHP::ObjectData::os_max_id", referenced from:
      HPHP::ObjectData::newInstance(HPHP::Class*) in bson.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in utils.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Binary.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in UTCDateTime.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Cursor.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Manager.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Server.cpp.o
      ...
  "HPHP::StringData::Make(char const*, unsigned long, HPHP::CopyStringMode)", referenced from:
      HPHP::Extension::moduleInfo(HPHP::Array&) in mongodb.cpp.o
      HPHP::MongoDBDriverManagerData::sleep() const in mongodb.cpp.o
      HPHP::MongoDBDriverManagerData::wakeup(HPHP::Variant const&, HPHP::ObjectData*) in mongodb.cpp.o
      void HPHP::IniSetting::Bind<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(HPHP::Extension const*, HPHP::IniSetting::Mode, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*, HPHP::IniSetting::SetAndGet<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) in mongodb.cpp.o
      HPHP::VariantToBsonConverter::convertElement(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertSpecialObject(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::hippo_bson_visit_double(bson_iter_t const*, char const*, double, void*) in bson.cpp.o
      ...
  "HPHP::StringData::Make(unsigned long)", referenced from:
      HPHP::hippo_bson_visit_code(bson_iter_t const*, char const*, unsigned long, char const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_codewscope(bson_iter_t const*, char const*, unsigned long, char const*, _bson_t const*, void*) in bson.cpp.o
      HPHP::f_MongoDBBsonFromPHP(HPHP::Variant const&) in functions.cpp.o
      HPHP::f_MongoDBBsonFromJson(HPHP::String const&) in functions.cpp.o
      HPHP::f_MongoDBBsonToJson(HPHP::String const&) in functions.cpp.o
      HPHP::createMongoBsonBinaryObject(unsigned char const*, unsigned long, bson_subtype_t) in Binary.cpp.o
      HPHP::c_MongoDBBsonObjectID_ni___toString(HPHP::ObjectData*) in ObjectID.cpp.o
      ...
  "HPHP::StringData::release()", referenced from:
      std::__1::enable_if<std::is_assignable<HPHP::MongoDBDriverCursorData, HPHP::MongoDBDriverCursorData>::value, void>::type HPHP::Native::nativeDataInfoCopy<HPHP::MongoDBDriverCursorData>(HPHP::ObjectData*, HPHP::ObjectData*) in mongodb.cpp.o
      HPHP::BsonToVariantConverter::BsonToVariantConverter(unsigned char const*, int, HPHP::hippo_bson_conversion_options_t) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      HPHP::parseTypeMap(HPHP::hippo_bson_conversion_options_t*, HPHP::Array const&) in bson.cpp.o
  "HPHP::bstrcaseeq(char const*, char const*, unsigned long)", referenced from:
      std::__1::__hash_table<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, std::__1::__unordered_map_hasher<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_hash, true>, std::__1::__unordered_map_equal<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_isame, true>, std::__1::allocator<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo> > >::__node_insert_unique(std::__1::__hash_node<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, void*>*) in mongodb.cpp.o
      std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, std::__1::__unordered_map_hasher<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_hash, true>, std::__1::__unordered_map_equal<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_isame, true>, std::__1::allocator<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo> > >::find<HPHP::StringData const*>(HPHP::StringData const* const&) in mongodb.cpp.o
      std::__1::__hash_table<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, std::__1::__unordered_map_hasher<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_hash, true>, std::__1::__unordered_map_equal<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_isame, true>, std::__1::allocator<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo> > >::__rehash(unsigned long) in mongodb.cpp.o
      HPHP::Native::registerClassConstant(HPHP::StringData const*, HPHP::StringData const*, HPHP::TypedValue) in mongodb.cpp.o
      std::__1::__hash_table<std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > >, std::__1::__unordered_map_hasher<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > >, HPHP::string_data_hash, true>, std::__1::__unordered_map_equal<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > >, HPHP::string_data_isame, true>, std::__1::allocator<std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > > > >::__node_insert_unique(std::__1::__hash_node<std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > >, void*>*) in mongodb.cpp.o
      std::__1::__hash_table<std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > >, std::__1::__unordered_map_hasher<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > >, HPHP::string_data_hash, true>, std::__1::__unordered_map_equal<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > >, HPHP::string_data_isame, true>, std::__1::allocator<std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > > > >::__rehash(unsigned long) in mongodb.cpp.o
      HPHP::FixedStringMap<unsigned int, false, unsigned int>::find(HPHP::StringData const*) const in bson.cpp.o
      ...
  "HPHP::null_array", referenced from:
      HPHP::c_MongoDBDriverBulkWrite_ni_update(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni_delete(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeDelete(HPHP::ObjectData*, HPHP::String const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in Manager.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeUpdate(HPHP::ObjectData*, HPHP::String const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in Manager.cpp.o
  "HPHP::NamedEntity::get(HPHP::StringData const*, bool, HPHP::String*)", referenced from:
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      HPHP::hippo_bson_visit_oid(bson_iter_t const*, char const*, bson_oid_t const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_date_time(bson_iter_t const*, char const*, long long, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_regex(bson_iter_t const*, char const*, char const*, char const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_code(bson_iter_t const*, char const*, unsigned long, char const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_codewscope(bson_iter_t const*, char const*, unsigned long, char const*, _bson_t const*, void*) in bson.cpp.o
      ...
  "HPHP::PackedArray::Append(HPHP::ArrayData*, HPHP::Variant const&, bool)", referenced from:
      void HPHP::make_array_detail::packed_impl<HPHP::Variant const&, HPHP::Variant const&>(HPHP::PackedArrayInit&, HPHP::Variant const&&&, HPHP::Variant const&&&) in utils.cpp.o
  "HPHP::bstrcasecmp(char const*, unsigned long, char const*, unsigned long)", referenced from:
      HPHP::parseTypeMap(HPHP::hippo_bson_conversion_options_t*, HPHP::Array const&) in bson.cpp.o
  "HPHP::null_string", referenced from:
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::c_MongoDBBsonObjectID_ni___construct(HPHP::ObjectData*, HPHP::Variant const&) in ObjectID.cpp.o
  "HPHP::DateTimeData::getClass()", referenced from:
      HPHP::c_MongoDBBsonUTCDateTime_ni_toDateTime(HPHP::ObjectData*) in UTCDateTime.cpp.o
  "HPHP::StaticString::StaticString(char const*)", referenced from:
      ___cxx_global_var_init40 in bson.cpp.o
      __GLOBAL__sub_I_bson.cpp in bson.cpp.o
      ___cxx_global_var_init41 in utils.cpp.o
      __GLOBAL__sub_I_utils.cpp in utils.cpp.o
      __GLOBAL__sub_I_Binary.cpp in Binary.cpp.o
      __GLOBAL__sub_I_Javascript.cpp in Javascript.cpp.o
      __GLOBAL__sub_I_ObjectID.cpp in ObjectID.cpp.o
      ...
  "HPHP::StringBuffer::detach()", referenced from:
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::c_MongoDBDriverWriteConcern_ni___construct(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in WriteConcern.cpp.o
  "HPHP::StringBuffer::printf(char const*, ...)", referenced from:
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::c_MongoDBDriverWriteConcern_ni___construct(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in WriteConcern.cpp.o
  "HPHP::StringBuffer::StringBuffer(unsigned int)", referenced from:
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::c_MongoDBDriverWriteConcern_ni___construct(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in WriteConcern.cpp.o
  "HPHP::StringBuffer::~StringBuffer()", referenced from:
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::c_MongoDBDriverWriteConcern_ni___construct(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in WriteConcern.cpp.o
  "HPHP::MemBlock HPHP::MemoryManager::mallocBigSize<false>(unsigned long)", referenced from:
      HPHP::ObjectData::newInstance(HPHP::Class*) in bson.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in utils.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Binary.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in UTCDateTime.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Cursor.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Manager.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Server.cpp.o
      ...
  "HPHP::MemoryManager::mallocSmallSizeSlow(unsigned int, unsigned int)", referenced from:
      HPHP::ObjectData::newInstance(HPHP::Class*) in bson.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in utils.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Binary.cpp.o
      std::__1::enable_if<std::is_convertible<HPHP::DateTime*, HPHP::ResourceData*>::value, HPHP::req::ptr<HPHP::DateTime> >::type HPHP::req::make<HPHP::DateTime, long long, bool>(long long&&, bool&&) in UTCDateTime.cpp.o
      std::__1::enable_if<std::is_convertible<HPHP::TimeZone*, HPHP::ResourceData*>::value, HPHP::req::ptr<HPHP::TimeZone> >::type HPHP::req::make<HPHP::TimeZone, HPHP::String>(HPHP::String&&) in UTCDateTime.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in UTCDateTime.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Cursor.cpp.o
      ...
  "HPHP::g_array_funcs", referenced from:
      HPHP::VariantToBsonConverter::_isPackedArray(HPHP::Array const&) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      MongoDriver::Utils::CreateAndConstruct(HPHP::StaticString, HPHP::Variant const&, HPHP::Variant const&) in utils.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      HPHP::hippo_write_result_init(mongoc_write_result_t*, _mongoc_client_t*, int, int, _mongoc_write_concern_t const*, bool) in WriteResult.cpp.o
  "HPHP::ini_on_update(HPHP::Variant const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)", referenced from:
      void HPHP::IniSetting::Bind<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(HPHP::Extension const*, HPHP::IniSetting::Mode, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*, HPHP::IniSetting::SetAndGet<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) in mongodb.cpp.o
      std::__1::__function::__func<void HPHP::IniSetting::Bind<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(HPHP::Extension const*, HPHP::IniSetting::Mode, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*, HPHP::IniSetting::SetAndGet<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)::'lambda'(HPHP::Variant const&), std::__1::allocator<void HPHP::IniSetting::Bind<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(HPHP::Extension const*, HPHP::IniSetting::Mode, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*, HPHP::IniSetting::SetAndGet<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)::'lambda'(HPHP::Variant const&)>, bool (HPHP::Variant const&)>::operator()(HPHP::Variant const&) in mongodb.cpp.o
  "HPHP::deepInitHelper(HPHP::TypedValue*, HPHP::TypedValueAux const*, unsigned long)", referenced from:
      HPHP::ObjectData::newInstance(HPHP::Class*) in bson.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in utils.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Binary.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in UTCDateTime.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Cursor.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Manager.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Server.cpp.o
      ...
  "HPHP::tvDecRefHelper(HPHP::DataType, unsigned long long)", referenced from:
      MongoDriver::Utils::CreateAndConstruct(HPHP::StaticString, HPHP::Variant const&, HPHP::Variant const&) in utils.cpp.o
  "HPHP::ExecutionContext::invokeFunc(HPHP::TypedValue*, HPHP::Func const*, HPHP::Variant const&, HPHP::ObjectData*, HPHP::Class*, HPHP::VarEnv*, HPHP::StringData*, HPHP::ExecutionContext::InvokeFlags, bool)", referenced from:
      MongoDriver::Utils::CreateAndConstruct(HPHP::StaticString, HPHP::Variant const&, HPHP::Variant const&) in utils.cpp.o
  "HPHP::ExecutionContext::invokeFuncFew(HPHP::TypedValue*, HPHP::Func const*, void*, HPHP::StringData*, int, HPHP::TypedValue const*, bool)", referenced from:
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
  "HPHP::makeStaticString(char const*)", referenced from:
      HPHP::MongoDBExtension::moduleInit() in mongodb.cpp.o
  "HPHP::getDataTypeString(HPHP::DataType)", referenced from:
      HPHP::VariantToBsonConverter::convert(_bson_t*) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::c_MongoDBDriverWriteConcern_ni___construct(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in WriteConcern.cpp.o
  "HPHP::ThreadLocalManager::PushTop(void*, unsigned long)", referenced from:
      HPHP::ThreadLocal<HPHP::MongoDBGlobals>::create() in mongodb.cpp.o
  "HPHP::throw_invalid_object_type(HPHP::Variant const&)", referenced from:
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
  "HPHP::Array::add(HPHP::String const&, HPHP::Variant const&, bool)", referenced from:
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::hippo_bson_visit_double(bson_iter_t const*, char const*, double, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_utf8(bson_iter_t const*, char const*, unsigned long, char const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_document(bson_iter_t const*, char const*, _bson_t const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_array(bson_iter_t const*, char const*, _bson_t const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_binary(bson_iter_t const*, char const*, bson_subtype_t, unsigned long, unsigned char const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_oid(bson_iter_t const*, char const*, bson_oid_t const*, void*) in bson.cpp.o
      ...
  "HPHP::Array::add(long long, HPHP::Variant const&)", referenced from:
      HPHP::c_MongoDBDriverCursor_ni_toArray(HPHP::ObjectData*) in Cursor.cpp.o
      HPHP::c_MongoDBDriverManager_ni_getServers(HPHP::ObjectData*) in Manager.cpp.o
  "HPHP::Array::set(HPHP::String const&, HPHP::Variant const&, bool)", referenced from:
      HPHP::Extension::moduleInfo(HPHP::Array&) in mongodb.cpp.o
      HPHP::c_MongoDBBsonBinary_ni___debugInfo(HPHP::ObjectData*) in Binary.cpp.o
      HPHP::c_MongoDBBsonObjectID_ni___debugInfo(HPHP::ObjectData*) in ObjectID.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni___debugInfo(HPHP::ObjectData*) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverCursorId_ni___debugInfo(HPHP::ObjectData*) in CursorId.cpp.o
      HPHP::c_MongoDBDriverReadPreference_ni___debugInfo(HPHP::ObjectData*) in ReadPreference.cpp.o
      HPHP::mongodb_driver_add_server_debug(_mongoc_server_description_t*, HPHP::Array*) in Server.cpp.o
      ...
  "HPHP::Array::append(HPHP::Variant const&)", referenced from:
      HPHP::mongodb_driver_add_server_debug_wrapper(void*, void*) in Server.cpp.o
      HPHP::hippo_write_result_init(mongoc_write_result_t*, _mongoc_client_t*, int, int, _mongoc_write_concern_t const*, bool) in WriteResult.cpp.o
  "HPHP::Array::~Array()", referenced from:
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::BsonToVariantConverter::BsonToVariantConverter(unsigned char const*, int, HPHP::hippo_bson_conversion_options_t) in bson.cpp.o
      HPHP::hippo_bson_visit_document(bson_iter_t const*, char const*, _bson_t const*, void*) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      HPHP::hippo_bson_visit_array(bson_iter_t const*, char const*, _bson_t const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_codewscope(bson_iter_t const*, char const*, unsigned long, char const*, _bson_t const*, void*) in bson.cpp.o
      ...
  "HPHP::Class::atomicRelease()", referenced from:
      HPHP::Class::ExtraData::~ExtraData() in mongodb.cpp.o
      HPHP::Class::ExtraData::~ExtraData() in bson.cpp.o
      HPHP::Class::ExtraData::~ExtraData() in utils.cpp.o
      HPHP::Class::ExtraData::~ExtraData() in functions.cpp.o
      HPHP::Class::ExtraData::~ExtraData() in Binary.cpp.o
      HPHP::Class::ExtraData::~ExtraData() in Javascript.cpp.o
      HPHP::Class::ExtraData::~ExtraData() in ObjectID.cpp.o
      ...
  "HPHP::Logger::Info(char const*, ...)", referenced from:
      HPHP::hippo_log_handler(mongoc_log_level_t, char const*, char const*, void*) in mongodb.cpp.o
  "HPHP::Logger::Error(char const*, ...)", referenced from:
      HPHP::hippo_log_handler(mongoc_log_level_t, char const*, char const*, void*) in mongodb.cpp.o
  "HPHP::Logger::Verbose(char const*, ...)", referenced from:
      HPHP::hippo_log_handler(mongoc_log_level_t, char const*, char const*, void*) in mongodb.cpp.o
  "HPHP::Logger::Warning(char const*, ...)", referenced from:
      HPHP::hippo_log_handler(mongoc_log_level_t, char const*, char const*, void*) in mongodb.cpp.o
  "HPHP::Native::s_builtinFunctions", referenced from:
      HPHP::MongoDBExtension::moduleInit() in mongodb.cpp.o
  "HPHP::Native::s_class_constant_map", referenced from:
      HPHP::Native::registerClassConstant(HPHP::StringData const*, HPHP::StringData const*, HPHP::TypedValue) in mongodb.cpp.o
  "HPHP::Native::registerNativeDataInfo(HPHP::StringData const*, unsigned long, void (*)(HPHP::ObjectData*), void (*)(HPHP::ObjectData*, HPHP::ObjectData*), void (*)(HPHP::ObjectData*), void (*)(HPHP::ObjectData*), HPHP::Variant (*)(HPHP::ObjectData const*), void (*)(HPHP::ObjectData*, HPHP::Variant const&), void (*)(HPHP::ObjectData const*, HPHP::IMarker&))", referenced from:
      HPHP::MongoDBExtension::moduleInit() in mongodb.cpp.o
  "HPHP::String::String(HPHP::Variant&&)", referenced from:
      HPHP::VariantToBsonConverter::_convertBinary(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertJavascript(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertRegex(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
  "HPHP::String::String(long long)", referenced from:
      HPHP::c_MongoDBDriverCursorId_ni___toString(HPHP::ObjectData*) in CursorId.cpp.o
  "HPHP::String::~String()", referenced from:
      HPHP::Extension::moduleInfo(HPHP::Array&) in mongodb.cpp.o
      HPHP::MongoDBDriverManagerData::sleep() const in mongodb.cpp.o
      HPHP::MongoDBDriverManagerData::wakeup(HPHP::Variant const&, HPHP::ObjectData*) in mongodb.cpp.o
      void HPHP::Native::nativeDataInfoInit<HPHP::MongoDBDriverCursorData>(HPHP::ObjectData*) in mongodb.cpp.o
      HPHP::MongoDBDriverCursorData::~MongoDBDriverCursorData() in mongodb.cpp.o
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertElement(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      ...
  "HPHP::String::~String()", referenced from:
      HPHP::VariantToBsonConverter::convert(_bson_t*) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::StaticString::~StaticString() in bson.cpp.o
      MongoDriver::Utils::throwInvalidArgumentException(char*) in utils.cpp.o
      MongoDriver::Utils::throwInvalidArgumentException(HPHP::String) in utils.cpp.o
      MongoDriver::Utils::throwBulkWriteException(HPHP::String) in utils.cpp.o
      MongoDriver::Utils::throwLogicException(char*) in utils.cpp.o
      ...
  "HPHP::BigHeap::freeBig(void*)", referenced from:
      HPHP::Variant::moveRefHelper(HPHP::Variant&&) in bson.cpp.o
      HPHP::Variant::moveRefHelper(HPHP::Variant&&) in functions.cpp.o
      std::__1::enable_if<std::is_convertible<HPHP::DateTime*, HPHP::ResourceData*>::value, HPHP::req::ptr<HPHP::DateTime> >::type HPHP::req::make<HPHP::DateTime, long long, bool>(long long&&, bool&&) in UTCDateTime.cpp.o
      std::__1::enable_if<std::is_convertible<HPHP::TimeZone*, HPHP::ResourceData*>::value, HPHP::req::ptr<HPHP::TimeZone> >::type HPHP::req::make<HPHP::TimeZone, HPHP::String>(HPHP::String&&) in UTCDateTime.cpp.o
      HPHP::Variant::moveRefHelper(HPHP::Variant&&) in Manager.cpp.o
  "HPHP::Variant::set(HPHP::ObjectData*)", referenced from:
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
  "HPHP::Variant::assign(HPHP::Variant const&)", referenced from:
      std::__1::enable_if<std::is_assignable<HPHP::MongoDBDriverCursorData, HPHP::MongoDBDriverCursorData>::value, void>::type HPHP::Native::nativeDataInfoCopy<HPHP::MongoDBDriverCursorData>(HPHP::ObjectData*, HPHP::ObjectData*) in mongodb.cpp.o
      HPHP::VariantToBsonConverter::VariantToBsonConverter(HPHP::Variant const&, int) in bson.cpp.o
      HPHP::VariantToBsonConverter::VariantToBsonConverter(HPHP::Variant const&, int) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertJavascript(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::hippo_cursor_next(HPHP::MongoDBDriverCursorData*) in Cursor.cpp.o
      HPHP::hippo_cursor_rewind(HPHP::MongoDBDriverCursorData*) in Cursor.cpp.o
      ...
  "HPHP::Variant::Variant(HPHP::StringData*)", referenced from:
      HPHP::hippo_bson_visit_code(bson_iter_t const*, char const*, unsigned long, char const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_codewscope(bson_iter_t const*, char const*, unsigned long, char const*, _bson_t const*, void*) in bson.cpp.o
      MongoDriver::Utils::throwInvalidArgumentException(HPHP::String) in utils.cpp.o
      MongoDriver::Utils::throwBulkWriteException(HPHP::String) in utils.cpp.o
      MongoDriver::Utils::throwRunTimeException(HPHP::String) in utils.cpp.o
      MongoDriver::Utils::throwUnexpectedValueException(HPHP::String) in utils.cpp.o
      HPHP::f_MongoDBBsonFromJson(HPHP::String const&) in functions.cpp.o
      ...
  "HPHP::Variant::Variant(HPHP::Variant const&)", referenced from:
      HPHP::VariantToBsonConverter::convert(_bson_t*) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertElement(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      void HPHP::make_array_detail::packed_impl<HPHP::Variant const&, HPHP::Variant const&>(HPHP::PackedArrayInit&, HPHP::Variant const&&&, HPHP::Variant const&&&) in utils.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni_insert(HPHP::ObjectData*, HPHP::Variant const&) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverCursor_ni_current(HPHP::ObjectData*) in Cursor.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeCommand(HPHP::ObjectData*, HPHP::String const&, HPHP::Object const&, HPHP::Variant const&) in Manager.cpp.o
      ...
  "HPHP::Variant::~Variant()", referenced from:
      HPHP::Extension::moduleInfo(HPHP::Array&) in mongodb.cpp.o
      HPHP::MongoDBDriverCursorData::~MongoDBDriverCursorData() in mongodb.cpp.o
      void HPHP::IniSetting::Bind<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(HPHP::Extension const*, HPHP::IniSetting::Mode, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*, HPHP::IniSetting::SetAndGet<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) in mongodb.cpp.o
      HPHP::VariantToBsonConverter::_isPackedArray(HPHP::Array const&) in bson.cpp.o
      HPHP::VariantToBsonConverter::VariantToBsonConverter(HPHP::Variant const&, int) in bson.cpp.o
      HPHP::VariantToBsonConverter::VariantToBsonConverter(HPHP::Variant const&, int) in bson.cpp.o
      HPHP::VariantToBsonConverter::convert(_bson_t*) in bson.cpp.o
      ...
  "HPHP::ini_get(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)", referenced from:
      HPHP::Variant std::__1::__invoke_void_return_wrapper<HPHP::Variant>::__call<void HPHP::IniSetting::Bind<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(HPHP::Extension const*, HPHP::IniSetting::Mode, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*, HPHP::IniSetting::SetAndGet<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)::'lambda'()&>(void HPHP::IniSetting::Bind<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(HPHP::Extension const*, HPHP::IniSetting::Mode, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*, HPHP::IniSetting::SetAndGet<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)::'lambda'()&&&) in mongodb.cpp.o
  "HPHP::DateTime::setTimezone(HPHP::req::ptr<HPHP::TimeZone>)", referenced from:
      HPHP::c_MongoDBBsonUTCDateTime_ni_toDateTime(HPHP::ObjectData*) in UTCDateTime.cpp.o
  "HPHP::DateTime::DateTime(long long, bool)", referenced from:
      std::__1::enable_if<std::is_convertible<HPHP::DateTime*, HPHP::ResourceData*>::value, HPHP::req::ptr<HPHP::DateTime> >::type HPHP::req::make<HPHP::DateTime, long long, bool>(long long&&, bool&&) in UTCDateTime.cpp.o
  "HPHP::TimeZone::TimeZone(HPHP::String const&)", referenced from:
      std::__1::enable_if<std::is_convertible<HPHP::TimeZone*, HPHP::ResourceData*>::value, HPHP::req::ptr<HPHP::TimeZone> >::type HPHP::req::make<HPHP::TimeZone, HPHP::String>(HPHP::String&&) in UTCDateTime.cpp.o
  "HPHP::ArrayData::Create()", referenced from:
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      HPHP::c_MongoDBBsonBinary_ni___debugInfo(HPHP::ObjectData*) in Binary.cpp.o
      HPHP::c_MongoDBBsonObjectID_ni___debugInfo(HPHP::ObjectData*) in ObjectID.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni___debugInfo(HPHP::ObjectData*) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverCursor_ni___debugInfo(HPHP::ObjectData*) in Cursor.cpp.o
      HPHP::c_MongoDBDriverCursor_ni_toArray(HPHP::ObjectData*) in Cursor.cpp.o
      HPHP::c_MongoDBDriverCursorId_ni___debugInfo(HPHP::ObjectData*) in CursorId.cpp.o
      ...
  "HPHP::ArrayIter::nextHelper()", referenced from:
      HPHP::VariantToBsonConverter::_isPackedArray(HPHP::Array const&) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      HPHP::hippo_write_result_init(mongoc_write_result_t*, _mongoc_client_t*, int, int, _mongoc_write_concern_t const*, bool) in WriteResult.cpp.o
  "HPHP::ArrayIter::firstHelper()", referenced from:
      HPHP::VariantToBsonConverter::_isPackedArray(HPHP::Array const&) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
  "HPHP::ArrayIter::second()", referenced from:
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      HPHP::hippo_write_result_init(mongoc_write_result_t*, _mongoc_client_t*, int, int, _mongoc_write_concern_t const*, bool) in WriteResult.cpp.o
  "HPHP::ArrayIter::destruct()", referenced from:
      HPHP::VariantToBsonConverter::_isPackedArray(HPHP::Array const&) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      HPHP::hippo_write_result_init(mongoc_write_result_t*, _mongoc_client_t*, int, int, _mongoc_write_concern_t const*, bool) in WriteResult.cpp.o
  "HPHP::ArrayIter::secondRef()", referenced from:
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
  "HPHP::ArrayIter::ArrayIter(HPHP::Array const&)", referenced from:
      HPHP::VariantToBsonConverter::_isPackedArray(HPHP::Array const&) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      HPHP::hippo_write_result_init(mongoc_write_result_t*, _mongoc_client_t*, int, int, _mongoc_write_concern_t const*, bool) in WriteResult.cpp.o
  "HPHP::Extension::loadSystemlib(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      HPHP::MongoDBExtension::moduleInit() in mongodb.cpp.o
  "HPHP::Extension::Extension(char const*, char const*)", referenced from:
      __GLOBAL__sub_I_mongodb.cpp in mongodb.cpp.o
  "HPHP::g_context", referenced from:
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      MongoDriver::Utils::CreateAndConstruct(HPHP::StaticString, HPHP::Variant const&, HPHP::Variant const&) in utils.cpp.o
  "HPHP::operator+(HPHP::String&&, char const*)", referenced from:
      HPHP::VariantToBsonConverter::convertSpecialObject(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::validateClass(HPHP::String) in bson.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
  "HPHP::operator+(HPHP::String&&, HPHP::String const&)", referenced from:
      HPHP::validateClass(HPHP::String) in bson.cpp.o
      MongoDriver::Utils::doExecuteBulkWrite(HPHP::String, _mongoc_client_t*, int, HPHP::Object, _mongoc_write_concern_t const*) in utils.cpp.o
      MongoDriver::Utils::doExecuteQuery(HPHP::String, _mongoc_client_t*, int, HPHP::Object, HPHP::Variant) in utils.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeDelete(HPHP::ObjectData*, HPHP::String const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in Manager.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeInsert(HPHP::ObjectData*, HPHP::String const&, HPHP::Variant const&, HPHP::Variant const&) in Manager.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeUpdate(HPHP::ObjectData*, HPHP::String const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in Manager.cpp.o
      ...
  "HPHP::operator+(HPHP::String&&, HPHP::String&&)", referenced from:
      HPHP::VariantToBsonConverter::convertSpecialObject(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
  "HPHP::ObjectData::instanceof(HPHP::String const&) const", referenced from:
      HPHP::VariantToBsonConverter::convertSpecialObject(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
  "HPHP::ObjectData::getClassName() const", referenced from:
      HPHP::VariantToBsonConverter::convertSpecialObject(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
  "HPHP::StringData::hashHelper() const", referenced from:
      std::__1::__hash_table<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, std::__1::__unordered_map_hasher<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_hash, true>, std::__1::__unordered_map_equal<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_isame, true>, std::__1::allocator<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo> > >::__node_insert_unique(std::__1::__hash_node<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, void*>*) in mongodb.cpp.o
      std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, std::__1::__unordered_map_hasher<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_hash, true>, std::__1::__unordered_map_equal<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_isame, true>, std::__1::allocator<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo> > >::find<HPHP::StringData const*>(HPHP::StringData const* const&) in mongodb.cpp.o
      HPHP::Native::registerClassConstant(HPHP::StringData const*, HPHP::StringData const*, HPHP::TypedValue) in mongodb.cpp.o
      std::__1::__hash_table<std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > >, std::__1::__unordered_map_hasher<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > >, HPHP::string_data_hash, true>, std::__1::__unordered_map_equal<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > >, HPHP::string_data_isame, true>, std::__1::allocator<std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > > > >::__node_insert_unique(std::__1::__hash_node<std::__1::__hash_value_type<HPHP::StringData const*, std::__1::map<HPHP::StringData const*, HPHP::TypedValue, std::__1::less<HPHP::StringData const*>, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::TypedValue> > > >, void*>*) in mongodb.cpp.o
      HPHP::FixedStringMap<unsigned int, false, unsigned int>::find(HPHP::StringData const*) const in bson.cpp.o
      HPHP::FixedStringMap<int, true, int>::find(HPHP::StringData const*) const in bson.cpp.o
  "HPHP::NamedEntity::getCachedClass() const", referenced from:
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      HPHP::hippo_bson_visit_oid(bson_iter_t const*, char const*, bson_oid_t const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_date_time(bson_iter_t const*, char const*, long long, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_regex(bson_iter_t const*, char const*, char const*, char const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_code(bson_iter_t const*, char const*, unsigned long, char const*, void*) in bson.cpp.o
      HPHP::hippo_bson_visit_codewscope(bson_iter_t const*, char const*, unsigned long, char const*, _bson_t const*, void*) in bson.cpp.o
      ...
  "HPHP::StreamContext::getOptions() const", referenced from:
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
  "HPHP::Array::exists(HPHP::String const&, bool) const", referenced from:
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      HPHP::parseTypeMap(HPHP::hippo_bson_conversion_options_t*, HPHP::Array const&) in bson.cpp.o
      MongoDriver::Utils::doExecuteQuery(HPHP::String, _mongoc_client_t*, int, HPHP::Object, HPHP::Variant) in utils.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni_update(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni_delete(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeDelete(HPHP::ObjectData*, HPHP::String const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in Manager.cpp.o
      ...
  "HPHP::Array::rvalAt(HPHP::String const&, HPHP::AccessFlags::Type) const", referenced from:
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      HPHP::parseTypeMap(HPHP::hippo_bson_conversion_options_t*, HPHP::Array const&) in bson.cpp.o
      MongoDriver::Utils::doExecuteQuery(HPHP::String, _mongoc_client_t*, int, HPHP::Object, HPHP::Variant) in utils.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni_update(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni_delete(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeDelete(HPHP::ObjectData*, HPHP::String const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in Manager.cpp.o
      ...
  "HPHP::Array::rvalAt(int, HPHP::AccessFlags::Type) const", referenced from:
      HPHP::hippo_write_result_init(mongoc_write_result_t*, _mongoc_client_t*, int, int, _mongoc_write_concern_t const*, bool) in WriteResult.cpp.o
  "HPHP::Class::initialize() const", referenced from:
      HPHP::ObjectData::newInstance(HPHP::Class*) in bson.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in utils.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Binary.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in UTCDateTime.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Cursor.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Manager.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Server.cpp.o
      ...
  "HPHP::Class::getPropData() const", referenced from:
      HPHP::ObjectData::newInstance(HPHP::Class*) in bson.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in utils.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Binary.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in UTCDateTime.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Cursor.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Manager.cpp.o
      HPHP::ObjectData::newInstance(HPHP::Class*) in Server.cpp.o
      ...
  "HPHP::Object::o_get(HPHP::String const&, bool, HPHP::String const&) const", referenced from:
      HPHP::VariantToBsonConverter::convertSpecialObject(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertBinary(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertJavascript(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertRegex(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertTimestamp(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertUTCDateTime(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      ...
  "HPHP::String::compare(HPHP::String const&) const", referenced from:
      HPHP::c_MongoDBDriverWriteConcern_ni___construct(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in WriteConcern.cpp.o
  "HPHP::Variant::toArrayHelper() const", referenced from:
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      MongoDriver::Utils::doExecuteQuery(HPHP::String, _mongoc_client_t*, int, HPHP::Object, HPHP::Variant) in utils.cpp.o
      HPHP::f_MongoDBBsonToPHP(HPHP::String const&, HPHP::Variant const&) in functions.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni_update(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni_delete(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      ...
  "HPHP::Variant::toInt64Helper(int) const", referenced from:
      HPHP::VariantToBsonConverter::_isPackedArray(HPHP::Array const&) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertElement(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertSpecialObject(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertBinary(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertTimestamp(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertUTCDateTime(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      ...
  "HPHP::Variant::toDoubleHelper() const", referenced from:
      HPHP::VariantToBsonConverter::convertElement(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
  "HPHP::Variant::toObjectHelper() const", referenced from:
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::BsonToVariantConverter::convert(HPHP::Variant*) in bson.cpp.o
      MongoDriver::Utils::doExecuteCommand(char const*, _mongoc_client_t*, int, _bson_t*, HPHP::Variant) in utils.cpp.o
      MongoDriver::Utils::doExecuteQuery(HPHP::String, _mongoc_client_t*, int, HPHP::Object, HPHP::Variant) in utils.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeDelete(HPHP::ObjectData*, HPHP::String const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in Manager.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeInsert(HPHP::ObjectData*, HPHP::String const&, HPHP::Variant const&, HPHP::Variant const&) in Manager.cpp.o
      ...
  "HPHP::Variant::toStringHelper() const", referenced from:
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertElement(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::VariantToBsonConverter::_convertSerializable(_bson_t*, char const*, HPHP::Object) in bson.cpp.o
      HPHP::parseTypeMap(HPHP::hippo_bson_conversion_options_t*, HPHP::Array const&) in bson.cpp.o
      HPHP::c_MongoDBBsonObjectID_ni___construct(HPHP::ObjectData*, HPHP::Variant const&) in ObjectID.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      HPHP::c_MongoDBDriverWriteConcern_ni___construct(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in WriteConcern.cpp.o
      ...
  "HPHP::Variant::toBooleanHelper() const", referenced from:
      HPHP::VariantToBsonConverter::convertElement(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni_update(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverBulkWrite_ni_delete(HPHP::ObjectData*, HPHP::Variant const&, HPHP::Variant const&) in BulkWrite.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeDelete(HPHP::ObjectData*, HPHP::String const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in Manager.cpp.o
      HPHP::c_MongoDBDriverManager_ni_executeUpdate(HPHP::ObjectData*, HPHP::String const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&, HPHP::Variant const&) in Manager.cpp.o
      HPHP::mongodb_driver_add_server_debug(_mongoc_server_description_t*, HPHP::Array*) in Server.cpp.o
      ...
  "HPHP::ArrayIter::endHelper() const", referenced from:
      HPHP::VariantToBsonConverter::_isPackedArray(HPHP::Array const&) in bson.cpp.o
      HPHP::VariantToBsonConverter::convertDocument(_bson_t*, char const*, HPHP::Variant) in bson.cpp.o
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      HPHP::hippo_write_result_init(mongoc_write_result_t*, _mongoc_client_t*, int, int, _mongoc_write_concern_t const*, bool) in WriteResult.cpp.o
  "typeinfo for HPHP::ResourceData", referenced from:
      HPHP::c_MongoDBDriverManager_ni___construct(HPHP::ObjectData*, HPHP::String const&, HPHP::Array const&, HPHP::Array const&) in Manager.cpp.o
      typeinfo for HPHP::StreamContext in Manager.cpp.o
  "__mongoc_cursor_transform_init", referenced from:
      __mongoc_database_find_collections_legacy in mongoc-database.c.o
  "_sasl_client_done", referenced from:
      __mongoc_do_cleanup in mongoc-init.c.o
  "_sasl_client_init", referenced from:
      __mongoc_do_init in mongoc-init.c.o
  "_sasl_client_new", referenced from:
      __mongoc_sasl_step in mongoc-sasl.c.o
  "_sasl_client_start", referenced from:
      __mongoc_sasl_step in mongoc-sasl.c.o
  "_sasl_client_step", referenced from:
      __mongoc_sasl_step in mongoc-sasl.c.o
  "_sasl_decode64", referenced from:
      __mongoc_sasl_step in mongoc-sasl.c.o
  "_sasl_dispose", referenced from:
      __mongoc_sasl_destroy in mongoc-sasl.c.o
  "_sasl_encode64", referenced from:
      __mongoc_sasl_step in mongoc-sasl.c.o
  "_sasl_errstring", referenced from:
      __mongoc_sasl_is_failure in mongoc-sasl.c.o
  "_sasl_set_mutex", referenced from:
      __mongoc_do_init in mongoc-init.c.o
  "_sk_num", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
  "_sk_value", referenced from:
      __mongoc_ssl_check_cert in mongoc-ssl.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [mongodb.so] Error 1
make[1]: *** [CMakeFiles/mongodb.dir/all] Error 2
make: *** [all] Error 2

Async?

Sorry if it's not the right place, but async being a huge feature of hhvm, do you plan on providing async endpoints?
Thanks!

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.