From 8ab31422c36fd27696403b8d9612927ae2daeb49 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Fri, 9 Oct 2015 14:43:46 +1000 Subject: [PATCH 01/39] Travis for NewRelic HHVM --- .travis.yml | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ build.sh | 17 +++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 .travis.yml create mode 100644 build.sh diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..d718d7a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,62 @@ +language: php + +php: + - hhvm + +compiler: + - gcc + +before_install: + - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + - sudo add-apt-repository -y ppa:boost-latest/ppa + - sudo apt-get update -qq + - sudo apt-get install -qq hhvm hhvm-dev g++-4.9 libboost-dev + +install: +- mkdir ${TRAVIS_BUILD_DIR}/newrelic +- mkdir ${TRAVIS_BUILD_DIR}/newrelic +- wget https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz +- tar -xzf nr_agent_sdk-*.tar.gz +- cp nr_agent_sdk-*/include/* /usr/local/include/ +- cp nr_agent_sdk-*/lib/* /usr/local/lib/ +- mkdir ${TRAVIS_BUILD_DIR}/BUILD +- cd ${TRAVIS_BUILD_DIR}/BUILD +- wget http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz +- tar xvf ocaml-4.02.1.tar.gz +- cd ocaml-4.02.1 +- ./configure +- make world.opt +- sudo make install +- cd ${TRAVIS_BUILD_DIR}/BUILD +- git clone git://github.com/bagder/curl.git --depth=1 +- cd curl +- ./buildconf +- ./configure --prefix=$CMAKE_PREFIX_PATH +- make +- sudo make install +- cd ${TRAVIS_BUILD_DIR}/BUILD +- wget http://launchpadlibrarian.net/80433359/libgoogle-glog0_0.3.1-1ubuntu1_amd64.deb +- sudo dpkg -i libgoogle-glog0_0.3.1-1ubuntu1_amd64.deb +- rm libgoogle-glog0_0.3.1-1ubuntu1_amd64.deb +- wget http://launchpadlibrarian.net/80433361/libgoogle-glog-dev_0.3.1-1ubuntu1_amd64.deb +- sudo dpkg -i libgoogle-glog-dev_0.3.1-1ubuntu1_amd64.deb +- rm libgoogle-glog-dev_0.3.1-1ubuntu1_amd64.deb +- cd ${TRAVIS_BUILD_DIR}/BUILD +- wget http://ubuntu.mirrors.tds.net/ubuntu/pool/universe/j/jemalloc/libjemalloc1_3.6.0-2_amd64.deb +- sudo dpkg -i libjemalloc1_3.6.0-2_amd64.deb +- rm libjemalloc1_3.6.0-2_amd64.deb +- wget http://ubuntu.mirrors.tds.net/ubuntu/pool/universe/j/jemalloc/libjemalloc-dev_3.6.0-2_amd64.deb +- sudo dpkg -i libjemalloc-dev_3.6.0-2_amd64.deb +- rm libjemalloc-dev_3.6.0-2_amd64.deb +- export CXX="g++-4.9" + +script: + - cd ${TRAVIS_BUILD_DIR} + - ./build.sh + +notifications: + on_success: never + on_failure: never + +os: + - linux diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..747aefd --- /dev/null +++ b/build.sh @@ -0,0 +1,17 @@ +#! /bin/sh + +if [ "`which hphpize 2>/dev/null`" != "" ]; then + # HHVM 3.2.0 or newer + hphpize +else + # HHVM older than 3.2.0 + if [ "$HPHP_HOME" == "" ]; then + echo HPHP_HOME environment variable must be set! + exit 1 + fi + + $HPHP_HOME/hphp/tools/hphpize/hphpize +fi + +cmake . && make + From cb60170bcba64422434a405f4ebfb1887c2a4722 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Fri, 9 Oct 2015 14:46:46 +1000 Subject: [PATCH 02/39] Fix Travis typo --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d718d7a..11a9be3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,7 @@ before_install: install: - mkdir ${TRAVIS_BUILD_DIR}/newrelic -- mkdir ${TRAVIS_BUILD_DIR}/newrelic +- cd ${TRAVIS_BUILD_DIR}/newrelic - wget https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz - tar -xzf nr_agent_sdk-*.tar.gz - cp nr_agent_sdk-*/include/* /usr/local/include/ From d5b9169824e64bb794049de51247f7e5f549dde8 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Fri, 9 Oct 2015 14:53:36 +1000 Subject: [PATCH 03/39] Try to copy NewRelic libs --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 11a9be3..66c4cbb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,8 +17,8 @@ install: - cd ${TRAVIS_BUILD_DIR}/newrelic - wget https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz - tar -xzf nr_agent_sdk-*.tar.gz -- cp nr_agent_sdk-*/include/* /usr/local/include/ -- cp nr_agent_sdk-*/lib/* /usr/local/lib/ +- sudo cp nr_agent_sdk-*/include/* /usr/local/include/ +- sudo cp nr_agent_sdk-*/lib/* /usr/local/lib/ - mkdir ${TRAVIS_BUILD_DIR}/BUILD - cd ${TRAVIS_BUILD_DIR}/BUILD - wget http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz From d39f6a621026c5ac970c6efb7259f3f4091c9aa8 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Fri, 9 Oct 2015 15:17:14 +1000 Subject: [PATCH 04/39] Drop build script cos Windows on a Friday --- .travis.yml | 5 ++++- build.sh | 17 ----------------- 2 files changed, 4 insertions(+), 18 deletions(-) delete mode 100644 build.sh diff --git a/.travis.yml b/.travis.yml index 66c4cbb..463388a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -52,7 +52,10 @@ install: script: - cd ${TRAVIS_BUILD_DIR} - - ./build.sh + - hphpize + - cmake . + - make + - make install notifications: on_success: never diff --git a/build.sh b/build.sh deleted file mode 100644 index 747aefd..0000000 --- a/build.sh +++ /dev/null @@ -1,17 +0,0 @@ -#! /bin/sh - -if [ "`which hphpize 2>/dev/null`" != "" ]; then - # HHVM 3.2.0 or newer - hphpize -else - # HHVM older than 3.2.0 - if [ "$HPHP_HOME" == "" ]; then - echo HPHP_HOME environment variable must be set! - exit 1 - fi - - $HPHP_HOME/hphp/tools/hphpize/hphpize -fi - -cmake . && make - From 40fe806e4322867bab3f1e078936487591b1fb30 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Fri, 9 Oct 2015 15:30:26 +1000 Subject: [PATCH 05/39] HHVM version checks for Travis --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 463388a..8bd1720 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ before_install: - sudo apt-get install -qq hhvm hhvm-dev g++-4.9 libboost-dev install: +- hhvm --version - mkdir ${TRAVIS_BUILD_DIR}/newrelic - cd ${TRAVIS_BUILD_DIR}/newrelic - wget https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz @@ -52,6 +53,7 @@ install: script: - cd ${TRAVIS_BUILD_DIR} + - hhvm --version - hphpize - cmake . - make From a6efc9a4cd61508dfcf796063a8bda0d45616711 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Mon, 12 Oct 2015 14:12:04 +1000 Subject: [PATCH 06/39] Redesign errors --- ext_newrelic.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ext_newrelic.php b/ext_newrelic.php index 5db2bb8..0b89ad1 100644 --- a/ext_newrelic.php +++ b/ext_newrelic.php @@ -124,8 +124,16 @@ static function endAll(): void { } static function errorCallback($type, $message, $c) { - $errno = $errno & error_reporting(); - if($errno == 0) return false; + switch($type) + { + case E_WARNING: // 2 // + case E_NOTICE: // 8 // + case E_USER_NOTICE: // 1024 // + case E_STRICT: // 2048 // + case E_DEPRECATED: // 8192 // + case E_USER_DEPRECATED: // 16384 // + return false; + } $exception_type = self::friendlyErrorType($type); $error_message = $message; From 16e1c746f905a1ea564d8952e9ae6e00a4bdc791 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 13 Oct 2015 13:13:24 +1000 Subject: [PATCH 07/39] Docker test run --- .travis.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8bd1720..c2ee690 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,8 @@ +sudo: required + +services: + - docker + language: php php: @@ -7,10 +12,7 @@ compiler: - gcc before_install: - - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - - sudo add-apt-repository -y ppa:boost-latest/ppa - - sudo apt-get update -qq - - sudo apt-get install -qq hhvm hhvm-dev g++-4.9 libboost-dev + - docker pull absalomedia/hhvm-dev install: - hhvm --version From 583c1f8dc49956715b214ef8565c27428e590f3d Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 13 Oct 2015 13:21:58 +1000 Subject: [PATCH 08/39] Remove Travis based HHVM. See if Docker HHVM detects --- .travis.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index c2ee690..c0809ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,11 +3,6 @@ sudo: required services: - docker -language: php - -php: - - hhvm - compiler: - gcc From 31cd3faab9b58d727ecf2f63627928045f6aa597 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 13 Oct 2015 13:28:50 +1000 Subject: [PATCH 09/39] More docker HHVM work --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c0809ad..f12adb6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,9 +8,9 @@ compiler: before_install: - docker pull absalomedia/hhvm-dev + - docker run hhvm --version install: -- hhvm --version - mkdir ${TRAVIS_BUILD_DIR}/newrelic - cd ${TRAVIS_BUILD_DIR}/newrelic - wget https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz From 4eb9077fcd0758ae4fcc540ecb7771c729cdf9e0 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 13 Oct 2015 13:43:11 +1000 Subject: [PATCH 10/39] More Docker work --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f12adb6..706995c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,8 @@ compiler: before_install: - docker pull absalomedia/hhvm-dev - - docker run hhvm --version + - docker run --name=hhvm-dev -d hhvm-dev:latest + - docker ps install: - mkdir ${TRAVIS_BUILD_DIR}/newrelic From 64ad065082c8a83c45d0cf6c0625cd3fbf415399 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 13 Oct 2015 13:48:30 +1000 Subject: [PATCH 11/39] More Docker work --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 706995c..9d93725 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,8 @@ compiler: before_install: - docker pull absalomedia/hhvm-dev - - docker run --name=hhvm-dev -d hhvm-dev:latest - - docker ps + - docker ps -a + - docker run -i -t hhvm-dev /bin/bash install: - mkdir ${TRAVIS_BUILD_DIR}/newrelic From db5603daaf761dad7969703138a8f608a93f4061 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 13 Oct 2015 13:53:48 +1000 Subject: [PATCH 12/39] See what docker is doing --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9d93725..5a06407 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ compiler: before_install: - docker pull absalomedia/hhvm-dev - docker ps -a - - docker run -i -t hhvm-dev /bin/bash + -sudo docker info install: - mkdir ${TRAVIS_BUILD_DIR}/newrelic From bd630d68c854ced6a340d94d4fa342b026624a01 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 13 Oct 2015 13:56:30 +1000 Subject: [PATCH 13/39] Fix typos on trying to get info --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5a06407..bca32cd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ compiler: before_install: - docker pull absalomedia/hhvm-dev - docker ps -a - -sudo docker info + - docker info install: - mkdir ${TRAVIS_BUILD_DIR}/newrelic From c8c36401b656f0a9e08e903b99faa0f1a625a191 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 13 Oct 2015 15:20:19 +1000 Subject: [PATCH 14/39] Force build by tweaking doco --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 45b32b9..63bd358 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,8 @@ For compiling the extension, you need the dev package as well, eg. on Ubuntu/Deb sudo apt-get install hhvm-dev ``` +There are known issues on Ubuntu 12.04 and Debian Wheezy + ### Compile the extension ``` From 446ac4790b06cbd54c8b38e085731f6349cce5ea Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 13 Oct 2015 15:45:20 +1000 Subject: [PATCH 15/39] Simplified Travis --- .travis.yml | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/.travis.yml b/.travis.yml index bca32cd..e47951b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,35 +18,6 @@ install: - tar -xzf nr_agent_sdk-*.tar.gz - sudo cp nr_agent_sdk-*/include/* /usr/local/include/ - sudo cp nr_agent_sdk-*/lib/* /usr/local/lib/ -- mkdir ${TRAVIS_BUILD_DIR}/BUILD -- cd ${TRAVIS_BUILD_DIR}/BUILD -- wget http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.1.tar.gz -- tar xvf ocaml-4.02.1.tar.gz -- cd ocaml-4.02.1 -- ./configure -- make world.opt -- sudo make install -- cd ${TRAVIS_BUILD_DIR}/BUILD -- git clone git://github.com/bagder/curl.git --depth=1 -- cd curl -- ./buildconf -- ./configure --prefix=$CMAKE_PREFIX_PATH -- make -- sudo make install -- cd ${TRAVIS_BUILD_DIR}/BUILD -- wget http://launchpadlibrarian.net/80433359/libgoogle-glog0_0.3.1-1ubuntu1_amd64.deb -- sudo dpkg -i libgoogle-glog0_0.3.1-1ubuntu1_amd64.deb -- rm libgoogle-glog0_0.3.1-1ubuntu1_amd64.deb -- wget http://launchpadlibrarian.net/80433361/libgoogle-glog-dev_0.3.1-1ubuntu1_amd64.deb -- sudo dpkg -i libgoogle-glog-dev_0.3.1-1ubuntu1_amd64.deb -- rm libgoogle-glog-dev_0.3.1-1ubuntu1_amd64.deb -- cd ${TRAVIS_BUILD_DIR}/BUILD -- wget http://ubuntu.mirrors.tds.net/ubuntu/pool/universe/j/jemalloc/libjemalloc1_3.6.0-2_amd64.deb -- sudo dpkg -i libjemalloc1_3.6.0-2_amd64.deb -- rm libjemalloc1_3.6.0-2_amd64.deb -- wget http://ubuntu.mirrors.tds.net/ubuntu/pool/universe/j/jemalloc/libjemalloc-dev_3.6.0-2_amd64.deb -- sudo dpkg -i libjemalloc-dev_3.6.0-2_amd64.deb -- rm libjemalloc-dev_3.6.0-2_amd64.deb - export CXX="g++-4.9" script: From 0772507199f02f9cd841d362da5bdd32039a2dfb Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 13 Oct 2015 15:51:41 +1000 Subject: [PATCH 16/39] Try to fire up the HHVM image --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index e47951b..66d2264 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ compiler: before_install: - docker pull absalomedia/hhvm-dev + - docker run -t -i hhvm-dev /bin/bash - docker ps -a - docker info From 4d51cbddd86459742cacf70cd1be6b57724f4162 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 13 Oct 2015 15:59:38 +1000 Subject: [PATCH 17/39] Build instead of pull --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 66d2264..6cffd9b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ compiler: - gcc before_install: - - docker pull absalomedia/hhvm-dev + - docker build -t absalomedia/hhvm-dev . - docker run -t -i hhvm-dev /bin/bash - docker ps -a - docker info From fa30c6008d0b7da4aaf540aaa361c8bbdc5bcc7f Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 13 Oct 2015 22:30:41 +1000 Subject: [PATCH 18/39] Refactor docker in Travis. See if it works --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6cffd9b..4ea0acd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,8 +7,8 @@ compiler: - gcc before_install: - - docker build -t absalomedia/hhvm-dev . - - docker run -t -i hhvm-dev /bin/bash + - docker pull -t absalomedia/hhvm-dev + - docker docker run -d -p 127.0.0.1:80:4567 absalomedia/hhvm-dev /bin/sh - docker ps -a - docker info From c095add8c2595bd40dc4ba68efb8c104ed5ff7b7 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 13 Oct 2015 22:33:10 +1000 Subject: [PATCH 19/39] More typo fixes --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4ea0acd..13e4f33 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ compiler: - gcc before_install: - - docker pull -t absalomedia/hhvm-dev + - docker pull absalomedia/hhvm-dev - docker docker run -d -p 127.0.0.1:80:4567 absalomedia/hhvm-dev /bin/sh - docker ps -a - docker info From 24f8275f344c97d76737cb9c23aeb6a8e8922eef Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 13 Oct 2015 22:36:02 +1000 Subject: [PATCH 20/39] Fix more typos --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 13e4f33..12422cb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ compiler: before_install: - docker pull absalomedia/hhvm-dev - - docker docker run -d -p 127.0.0.1:80:4567 absalomedia/hhvm-dev /bin/sh + - docker run -d -p 127.0.0.1:80:4567 absalomedia/hhvm-dev /bin/sh - docker ps -a - docker info From 70ca0ae969d158f2be0d08ee16bb8d668c650a5a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 13 Oct 2015 22:43:56 +1000 Subject: [PATCH 21/39] Getting closer to docker run --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 12422cb..9ba69eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,9 +6,11 @@ services: compiler: - gcc +group: edge + before_install: - docker pull absalomedia/hhvm-dev - - docker run -d -p 127.0.0.1:80:4567 absalomedia/hhvm-dev /bin/sh + - docker run -d -p 127.0.0.1:80:9000 absalomedia/hhvm-dev /bin/sh - docker ps -a - docker info From a793b8408ba926e3f80d6c390b0bd9a3d6746189 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 13 Oct 2015 23:07:03 +1000 Subject: [PATCH 22/39] See if Travis allows me sh access to Docker --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9ba69eb..3c38c79 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ group: edge before_install: - docker pull absalomedia/hhvm-dev - - docker run -d -p 127.0.0.1:80:9000 absalomedia/hhvm-dev /bin/sh + - docker run -t -i absalomedia/hhvm-dev /bin/sh - docker ps -a - docker info From 15d94a831a4f08b5dbfe972ea9829c093dd21167 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 13 Oct 2015 23:34:02 +1000 Subject: [PATCH 23/39] More Travis / Docker work --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3c38c79..2a07696 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ group: edge before_install: - docker pull absalomedia/hhvm-dev - - docker run -t -i absalomedia/hhvm-dev /bin/sh + - docker run absalomedia/hhvm-dev /bin/bash - docker ps -a - docker info From 5db1defd08f0853c1a9d30c309cd704f2e896fd6 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 13 Oct 2015 23:42:29 +1000 Subject: [PATCH 24/39] Let's see what this does --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2a07696..c72dcfa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ group: edge before_install: - docker pull absalomedia/hhvm-dev - - docker run absalomedia/hhvm-dev /bin/bash + - docker run -d -it absalomedia/hhvm-dev /bin/bash - docker ps -a - docker info From 6b201fc5ac1d3b853055a4ba85f699c26d2df7e4 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 14 Oct 2015 11:51:41 +1000 Subject: [PATCH 25/39] Test Dockerfile --- Dockerfile | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a7c34b8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM absalomedia/hhvm-dev + +MAINTAINER Lawrence Meckan + +RUN mkdir -p /usr/src/newrelic && \ + cd /usr/src/newrelic && \ + wget https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz && \ + tar -xzf nr_agent_sdk-*.tar.gz && \ + cp nr_agent_sdk-*/include/* /usr/local/include/ && \ + cp nr_agent_sdk-*/lib/* /usr/local/lib/ && \ + export CXX="g++-4.9" + +WORKDIR /usr/src + +RUN git clone https://github.com/absalomedia/hhvm-newrelic-ext.git && \ + cd hhvm-newrelic-ext && \ + hphpize && \ + cmake . && \ + make && \ + make install && \ \ No newline at end of file From 4415cf0c7e48881e70b3c73f7bdf6ac5e5d81b14 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 14 Oct 2015 12:58:26 +1000 Subject: [PATCH 26/39] Restructure dockerfile to see if wget works --- Dockerfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index a7c34b8..a689033 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,12 +3,12 @@ FROM absalomedia/hhvm-dev MAINTAINER Lawrence Meckan RUN mkdir -p /usr/src/newrelic && \ - cd /usr/src/newrelic && \ - wget https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz && \ - tar -xzf nr_agent_sdk-*.tar.gz && \ + cd /usr/src/newrelic +RUN wget https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz +RUN tar -xzf nr_agent_sdk-*.tar.gz && \ cp nr_agent_sdk-*/include/* /usr/local/include/ && \ - cp nr_agent_sdk-*/lib/* /usr/local/lib/ && \ - export CXX="g++-4.9" + cp nr_agent_sdk-*/lib/* /usr/local/lib/ +RUN export CXX="g++-4.9" WORKDIR /usr/src From b94a94e4e47d79ae2682d68d71c135a454e0d214 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 14 Oct 2015 14:37:26 +1000 Subject: [PATCH 27/39] More work on Docker file --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a689033..bc31f3d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ MAINTAINER Lawrence Meckan RUN mkdir -p /usr/src/newrelic && \ cd /usr/src/newrelic -RUN wget https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz +RUN echo "Downloading New Relic Agent SDK ..." && wget -qO https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz RUN tar -xzf nr_agent_sdk-*.tar.gz && \ cp nr_agent_sdk-*/include/* /usr/local/include/ && \ cp nr_agent_sdk-*/lib/* /usr/local/lib/ From e0dc92b76e92b177da57572efb4bfab089f9a5c3 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 14 Oct 2015 14:44:00 +1000 Subject: [PATCH 28/39] See what this does --- Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Dockerfile b/Dockerfile index bc31f3d..633f592 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,13 @@ FROM absalomedia/hhvm-dev MAINTAINER Lawrence Meckan +RUN apt-get update \ + && apt-get -y install wget curl unzip && \ + && apt-get -y upgrade \ + && apt-get -y autoremove \ + && apt-get -y clean \ + && rm -rf /tmp/* /var/tmp/* + RUN mkdir -p /usr/src/newrelic && \ cd /usr/src/newrelic RUN echo "Downloading New Relic Agent SDK ..." && wget -qO https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz From d30b7b1336a002c7c765c11040a4471cda5e00cb Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 14 Oct 2015 14:47:49 +1000 Subject: [PATCH 29/39] Fix typo --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 633f592..5eaa0a1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM absalomedia/hhvm-dev MAINTAINER Lawrence Meckan RUN apt-get update \ - && apt-get -y install wget curl unzip && \ + && apt-get -y install wget curl unzip \ && apt-get -y upgrade \ && apt-get -y autoremove \ && apt-get -y clean \ From 808f090148bcadd1793c6ccc12bd7debde9f7431 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 14 Oct 2015 14:57:55 +1000 Subject: [PATCH 30/39] More Docker work --- Dockerfile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5eaa0a1..db70ee1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM absalomedia/hhvm-dev MAINTAINER Lawrence Meckan RUN apt-get update \ - && apt-get -y install wget curl unzip \ + && apt-get -y install wget curl unzip git \ && apt-get -y upgrade \ && apt-get -y autoremove \ && apt-get -y clean \ @@ -11,9 +11,8 @@ RUN apt-get update \ RUN mkdir -p /usr/src/newrelic && \ cd /usr/src/newrelic -RUN echo "Downloading New Relic Agent SDK ..." && wget -qO https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz -RUN tar -xzf nr_agent_sdk-*.tar.gz && \ - cp nr_agent_sdk-*/include/* /usr/local/include/ && \ +RUN echo "Downloading New Relic SDK ..." && wget -qO - https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz | tar -xzf nr_agent_sdk-*.tar.gz +RUN cp nr_agent_sdk-*/include/* /usr/local/include/ && \ cp nr_agent_sdk-*/lib/* /usr/local/lib/ RUN export CXX="g++-4.9" From f9a8b1528a501d1f88ea2aabdddbb3bb90e20d7d Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 14 Oct 2015 15:08:11 +1000 Subject: [PATCH 31/39] More restructuring --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index db70ee1..5223dc8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,8 @@ RUN apt-get update \ RUN mkdir -p /usr/src/newrelic && \ cd /usr/src/newrelic -RUN echo "Downloading New Relic SDK ..." && wget -qO - https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz | tar -xzf nr_agent_sdk-*.tar.gz +RUN echo "Downloading New Relic SDK ..." && wget https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz +RUN tar -xzf nr_agent_sdk-*.tar.gz RUN cp nr_agent_sdk-*/include/* /usr/local/include/ && \ cp nr_agent_sdk-*/lib/* /usr/local/lib/ RUN export CXX="g++-4.9" From 23192a9a758d76e073cf9203651a27b345fde263 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 14 Oct 2015 15:14:32 +1000 Subject: [PATCH 32/39] Better NR build sequence in Docker --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5223dc8..b06c452 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,4 +24,4 @@ RUN git clone https://github.com/absalomedia/hhvm-newrelic-ext.git && \ hphpize && \ cmake . && \ make && \ - make install && \ \ No newline at end of file + make install \ No newline at end of file From 626d2b646713dc2c04e095804632d5bfda1a03c2 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 14 Oct 2015 15:41:35 +1000 Subject: [PATCH 33/39] Really simple Travis --- .travis.yml | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index c72dcfa..a1e1f66 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,27 +9,12 @@ compiler: group: edge before_install: - - docker pull absalomedia/hhvm-dev - - docker run -d -it absalomedia/hhvm-dev /bin/bash + - docker pull absalomedia/hhvm-newrelic-ext - docker ps -a - docker info -install: -- mkdir ${TRAVIS_BUILD_DIR}/newrelic -- cd ${TRAVIS_BUILD_DIR}/newrelic -- wget https://download.newrelic.com/agent_sdk/nr_agent_sdk-v0.16.1.0-beta.x86_64.tar.gz -- tar -xzf nr_agent_sdk-*.tar.gz -- sudo cp nr_agent_sdk-*/include/* /usr/local/include/ -- sudo cp nr_agent_sdk-*/lib/* /usr/local/lib/ -- export CXX="g++-4.9" - script: - - cd ${TRAVIS_BUILD_DIR} - - hhvm --version - - hphpize - - cmake . - - make - - make install + - docker build -t absalomedia/hhvm-newrelic-ext . notifications: on_success: never From cf5529165a530f4dd25bd15aafecc9961c1fa479 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 14 Oct 2015 15:48:56 +1000 Subject: [PATCH 34/39] Add in Travis status --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 63bd358..672eaa1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # (Unofficial) New Relic extension for HHVM +https://travis-ci.org/absalomedia/hhvm-newrelic-ext.svg + This is an unofficial New Relic extension for [HHVM](http://hhvm.com/) which implements the [New Relic PHP agent API](https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-api) as much as possible. It's build on the [New Relic SDK agent](https://docs.newrelic.com/docs/agents/agent-sdk/using-agent-sdk/getting-started-agent-sdk), which doesn't support all the features needed for rebuilding the PHP agent API and has some other caveats From ab7746f4044825a30da0925181a8f523282e008e Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 14 Oct 2015 15:50:13 +1000 Subject: [PATCH 35/39] Markdown status --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 672eaa1..fe4045f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # (Unofficial) New Relic extension for HHVM -https://travis-ci.org/absalomedia/hhvm-newrelic-ext.svg +[![Build Status](https://travis-ci.org/absalomedia/hhvm-newrelic-ext.svg?branch=master)](https://travis-ci.org/absalomedia/hhvm-newrelic-ext) This is an unofficial New Relic extension for [HHVM](http://hhvm.com/) which implements the [New Relic PHP agent API](https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-api) as much as possible. From 66dc5562b1616090c80814d19b9298948dbed3aa Mon Sep 17 00:00:00 2001 From: Lawrence Date: Mon, 7 Dec 2015 11:48:52 +1000 Subject: [PATCH 36/39] Hopeful HHVM 3.10 compliance, various sideports & updates taken from other forks --- README.md | 2 +- ext_newrelic.php | 21 ++++++++++++++++----- newrelic.cpp | 21 ++++++++++++++++----- newrelic_profiler.h | 3 +++ 4 files changed, 36 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index fe4045f..ab409b8 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,7 @@ When you use the PHP agent of New Relic, you're certainly used to have function * You have to explicitely enable it * It slows down your request by factor 2 or more -* It can only show up to 2'000 function calls +* It can only show up to 2000 function calls * If you use an unpatched HHVM 3.5 or less (fixed in HHVM 3.6), it's even slower ### Enabling Function Level Profiling diff --git a/ext_newrelic.php b/ext_newrelic.php index 0b89ad1..6c8779c 100644 --- a/ext_newrelic.php +++ b/ext_newrelic.php @@ -329,6 +329,17 @@ function newrelic_pdo_intercept() { }); } +function newrelic_db_start($query) { + $a = _newrelic_parse_query($query); + return newrelic_segment_datastore_begin($a[1], $a[0], $query); +} + +function newrelic_db_end($newrelic_segment) { + if (isset($newrelic_segment) && $newrelic_segment) { + newrelic_segment_end($newrelic_segment); + } +} + // mysqli function newrelic_mysqli_intercept() { fb_intercept('mysqli::hh_real_query', function ($name, $obj, $args, $data, &$done) { @@ -373,7 +384,7 @@ function newrelic_file_get_contents_intercept() { // fread and fwrite (e.g. Redis) function newrelic_fread(resource $handle, int $length) { - if (stream_get_meta_data($handle)['wrapper_type'] != 'plainfile') { + if (empty(stream_get_meta_data($handle)['uri']) && stream_get_meta_data($handle)['wrapper_type'] != 'plainfile') { $seg = newrelic_segment_external_begin('sock_read[' . stream_socket_get_name($handle,true) . ']', 'fread'); } else { $seg = newrelic_segment_external_begin('file', 'fread'); @@ -384,7 +395,7 @@ function newrelic_fread(resource $handle, int $length) { } function newrelic_fwrite( resource $handle, string $string, int $length = -1 ) { - if (stream_get_meta_data($handle)['wrapper_type'] != 'plainfile') { + if (empty(stream_get_meta_data($handle)['uri']) && stream_get_meta_data($handle)['wrapper_type'] != 'plainfile') { $seg = newrelic_segment_external_begin('sock_write[' . stream_socket_get_name($handle,true) . ']', 'fwrite'); } else { $seg = newrelic_segment_external_begin('file', 'fwrite'); @@ -419,7 +430,7 @@ function newrelic_curl_intercept() { // socket_read and socket_write (e.g. MongoDB (mongofill)) function newrelic_socket_read(resource $socket, int $length, int $type = PHP_BINARY_READ) { - if (stream_get_meta_data($socket)['wrapper_type'] != 'plainfile') { + if (empty(stream_get_meta_data($handle)['uri']) && stream_get_meta_data($socket)['wrapper_type'] != 'plainfile') { $seg = newrelic_segment_external_begin('sock_read[' . stream_socket_get_name($socket,true) . ']', 'socket_read'); } else { $seg = newrelic_segment_external_begin('file', 'socket_read'); @@ -430,7 +441,7 @@ function newrelic_socket_read(resource $socket, int $length, int $type = PHP_BIN } function newrelic_socket_write( resource $socket, string $string, int $length = 0 ) { - if (stream_get_meta_data($socket)['wrapper_type'] != 'plainfile') { + if (empty(stream_get_meta_data($handle)['uri']) && stream_get_meta_data($socket)['wrapper_type'] != 'plainfile') { $seg = newrelic_segment_external_begin('sock_write[' . stream_socket_get_name($socket,true) . ']', 'socket_write'); } else { $seg = newrelic_segment_external_begin('file', 'socket_write'); @@ -441,7 +452,7 @@ function newrelic_socket_write( resource $socket, string $string, int $length = } function newrelic_socket_recv( resource $socket , &$buf , int $len , int $flags ) { - if (stream_get_meta_data($socket)['wrapper_type'] != 'plainfile') { + if (empty(stream_get_meta_data($handle)['uri']) && stream_get_meta_data($socket)['wrapper_type'] != 'plainfile') { $seg = newrelic_segment_external_begin('sock_read[' . stream_socket_get_name($socket,true) . ']', 'socket_read'); } else { $seg = newrelic_segment_external_begin('file', 'socket_read'); diff --git a/newrelic.cpp b/newrelic.cpp index aebf60a..3285566 100644 --- a/newrelic.cpp +++ b/newrelic.cpp @@ -165,11 +165,13 @@ static void HHVM_FUNCTION(newrelic_set_external_profiler, int64_t maxdepth ) { static Variant HHVM_FUNCTION(newrelic_get_scoped_generic_segment, const String & name) { ScopedGenericSegment * segment = nullptr; - // NEWOBJ existsonly until HHVM 3.4 - #ifdef NEWOBJ + #if defined NEWOBJ segment = NEWOBJ(ScopedGenericSegment)(name.c_str()); - #else + // newres exists only until HHVM 3.10.0 + #elif defined newres segment = newres(name.c_str()); + #else + segment = req::make(name.c_str()); #endif return Resource(segment); } @@ -179,8 +181,11 @@ static Variant HHVM_FUNCTION(newrelic_get_scoped_database_segment, const String // NEWOBJ existsonly until HHVM 3.4 #ifdef NEWOBJ segment = NEWOBJ(ScopedDatastoreSegment)(table.c_str(), operation.c_str(), sql.c_str(), sql_trace_rollup_name.c_str()); - #else + // newres exists only until HHVM 3.10 + #elif defined newres segment = newres(table.c_str(), operation.c_str(), sql.c_str(), sql_trace_rollup_name.c_str()); + #else + segment = req::make(table.c_str(), operation.c_str(), sql.c_str(), sql_trace_rollup_name.c_str()); #endif return Resource(segment); } @@ -190,8 +195,11 @@ static Variant HHVM_FUNCTION(newrelic_get_scoped_external_segment, const String // NEWOBJ existsonly until HHVM 3.4 #ifdef NEWOBJ segment = NEWOBJ(ScopedExternalSegment)(host.c_str(), name.c_str()); - #else + // newres exists only until HHVM 3.10 + #elif defined newres segment = newres(host.c_str(), name.c_str()); + #else + segment = req:make(host.c_str(), name.c_str()); #endif return Resource(segment); } @@ -217,6 +225,7 @@ static class NewRelicExtension : public Extension { app_name = RuntimeOption::EnvVariables["NEWRELIC_APP_NAME"]; app_language = RuntimeOption::EnvVariables["NEWRELIC_APP_LANGUAGE"]; app_language_version = RuntimeOption::EnvVariables["NEWRELIC_APP_LANGUAGE_VERSION"]; + log_properties_file = RuntimeOption::EnvVariables["NEWRELIC_LOG_PROPERTIES_FILE"]; if (app_language.empty()) { app_language = "php-hhvm"; @@ -231,6 +240,7 @@ static class NewRelicExtension : public Extension { setenv("NEWRELIC_APP_NAME", app_name.c_str(), 1); setenv("NEWRELIC_APP_LANGUAGE", app_language.c_str(), 1); setenv("NEWRELIC_APP_LANGUAGE_VERSION", app_language_version.c_str(), 1); + setenv("NEWRELIC_LOG_PROPERTIES_FILE", log_properties_file.c_str(), 1); if (!license_key.empty() && !app_name.empty() && !app_language.empty() && !app_language_version.empty()) config_loaded = true; @@ -335,6 +345,7 @@ static class NewRelicExtension : public Extension { std::string app_name; std::string app_language; std::string app_language_version; + std::string log_properties_file; bool config_loaded; } s_newrelic_extension; diff --git a/newrelic_profiler.h b/newrelic_profiler.h index 9290fc8..ae4222f 100644 --- a/newrelic_profiler.h +++ b/newrelic_profiler.h @@ -44,6 +44,9 @@ namespace HPHP { //virtual Frame *allocateFrame() override; private: + void vscan(IMarker& mark) const override { + } + class NewRelicProfilerFrame : public Frame { public: virtual ~NewRelicProfilerFrame() { From f7805219a708df624e0650d80822251b30f43810 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Mon, 7 Dec 2015 12:01:28 +1000 Subject: [PATCH 37/39] Typo fix --- newrelic.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/newrelic.cpp b/newrelic.cpp index 3285566..6d61dd9 100644 --- a/newrelic.cpp +++ b/newrelic.cpp @@ -199,7 +199,7 @@ static Variant HHVM_FUNCTION(newrelic_get_scoped_external_segment, const String #elif defined newres segment = newres(host.c_str(), name.c_str()); #else - segment = req:make(host.c_str(), name.c_str()); + segment = req::make(host.c_str(), name.c_str()); #endif return Resource(segment); } From a66894713f98e7a0de9ea54341cfd77086170dd2 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Mon, 7 Dec 2015 12:35:45 +1000 Subject: [PATCH 38/39] Partial refactor test for 3.10 --- newrelic.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/newrelic.cpp b/newrelic.cpp index 6d61dd9..ccfcd9d 100644 --- a/newrelic.cpp +++ b/newrelic.cpp @@ -164,28 +164,26 @@ static void HHVM_FUNCTION(newrelic_set_external_profiler, int64_t maxdepth ) { } static Variant HHVM_FUNCTION(newrelic_get_scoped_generic_segment, const String & name) { - ScopedGenericSegment * segment = nullptr; #if defined NEWOBJ - segment = NEWOBJ(ScopedGenericSegment)(name.c_str()); + auto segment = NEWOBJ(ScopedGenericSegment)(name.c_str()); // newres exists only until HHVM 3.10.0 #elif defined newres - segment = newres(name.c_str()); + auto segment = newres(name.c_str()); #else - segment = req::make(name.c_str()); + auto segment = req::make(name.c_str()); #endif return Resource(segment); } static Variant HHVM_FUNCTION(newrelic_get_scoped_database_segment, const String & table, const String & operation, const String & sql, const String & sql_trace_rollup_name) { - ScopedDatastoreSegment * segment = nullptr; // NEWOBJ existsonly until HHVM 3.4 #ifdef NEWOBJ - segment = NEWOBJ(ScopedDatastoreSegment)(table.c_str(), operation.c_str(), sql.c_str(), sql_trace_rollup_name.c_str()); + auto segment = NEWOBJ(ScopedDatastoreSegment)(table.c_str(), operation.c_str(), sql.c_str(), sql_trace_rollup_name.c_str()); // newres exists only until HHVM 3.10 #elif defined newres - segment = newres(table.c_str(), operation.c_str(), sql.c_str(), sql_trace_rollup_name.c_str()); + auto segment = newres(table.c_str(), operation.c_str(), sql.c_str(), sql_trace_rollup_name.c_str()); #else - segment = req::make(table.c_str(), operation.c_str(), sql.c_str(), sql_trace_rollup_name.c_str()); + auto segment = req::make(table.c_str(), operation.c_str(), sql.c_str(), sql_trace_rollup_name.c_str()); #endif return Resource(segment); } From c18495d4f7c05cf122bba6ac3cd51005d9605c17 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Mon, 7 Dec 2015 13:25:01 +1000 Subject: [PATCH 39/39] Better build sequence for 3.10 --- newrelic.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/newrelic.cpp b/newrelic.cpp index ccfcd9d..ce577b0 100644 --- a/newrelic.cpp +++ b/newrelic.cpp @@ -189,15 +189,14 @@ static Variant HHVM_FUNCTION(newrelic_get_scoped_database_segment, const String } static Variant HHVM_FUNCTION(newrelic_get_scoped_external_segment, const String & host, const String & name) { - ScopedExternalSegment * segment = nullptr; // NEWOBJ existsonly until HHVM 3.4 #ifdef NEWOBJ - segment = NEWOBJ(ScopedExternalSegment)(host.c_str(), name.c_str()); + auto segment = NEWOBJ(ScopedExternalSegment)(host.c_str(), name.c_str()); // newres exists only until HHVM 3.10 #elif defined newres - segment = newres(host.c_str(), name.c_str()); + auto segment = newres(host.c_str(), name.c_str()); #else - segment = req::make(host.c_str(), name.c_str()); + auto segment = req::make(host.c_str(), name.c_str()); #endif return Resource(segment); }