Code Monkey home page Code Monkey logo

hhvm's Introduction

HHVM

HHVM page | Hacklang page | General group | Dev group | Twitter

HHVM (aka the HipHop Virtual Machine) is an open-source virtual machine designed for executing programs written in Hack and PHP. HHVM uses a just-in-time compilation approach to achieve superior performance while maintaining the flexibility that PHP developers are accustomed to. To date, HHVM (and its predecessor HPHPc before it) has realized over a 9x increase in web request throughput and over a 5x reduction in memory consumption for Facebook compared with the PHP 5.2 engine + APC.

HHVM should be used together with a FastCGI-based webserver like nginx or apache.

FAQ

Our FAQ has answers to many common questions about HHVM, from general questions to questions geared towards those that want to use or contribute to HHVM.

Installing

You can install a prebuilt package or compile from source.

Running

You can run standalone programs just by passing them to hhvm: hhvm my_script.php.

If you want to host a website:

  • Install your favorite webserver
  • Install our package
  • Start your webserver
  • Run sudo /etc/init.d/hhvm start
  • Visit your site at http://.../index.php

Contributing

We'd love to have your help in making HHVM better. If you're interested, please read our guide to contributing.

License

HHVM is licensed under the PHP and Zend licenses except as otherwise noted.

The Hack typechecker (hphp/hack) is licensed under the BSD license (hphp/hack/LICENSE) with an additional grant of patent rights (hphp/hack/PATENTS) except as otherwise noted.

Reporting Crashes

See Reporting Crashes for helpful tips on how to report crashes in an actionable manner.

hhvm's People

Contributors

alexmalyshev avatar andrewparoski avatar bertmaher avatar danslo avatar dariorussi-zz avatar edwinsmith avatar fredemmott avatar grahamcampbell avatar haiping avatar jano avatar jasone avatar jdelong avatar jlreyes avatar joelmarcey avatar jwatzman avatar lcastelli avatar mxw avatar ottoni avatar oyamauchi avatar paroski avatar pikatchu avatar psaab avatar ptarjan avatar scannell avatar sgolemon avatar siebelstim avatar simonwelsh avatar swtaarrs avatar tstarling avatar wizkid 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  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

hhvm's Issues

make error on centos 5.8

hi, i have a problem on building your forked hhvm.
I managed to complete to the "cmake" step.
now all is fine before the make command.
but an error occurs on symbolize.cpp with make.
my gcc is 4.7.2 (/opt/centos/devtoolset-1.1/root/usr/bin/gcc)

#!/bin/bash
# HipHop Installing for CentOS 5.x
clear

yum -y install libxslt libxslt-devel
yum -y install libmcrypt libmcrypt-devel libedit libedit-devel
yum -y install elfutils-libelf elfutils-libelf-devel
yum -y install libicu-devel

#rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
#yum -y install git cmake pcre-devel libmcrypt-devel mysql-devel gd-devel libxml2-devel libcap-devel binutils-devel flex bison expat-devel patch gcc44 gcc44-c++ gcc gcc-c++ bzip2 bzip2-devel memcached openldap openldap-devel readline-devel libc-client-devel pam-devel wget ncurses-devel
#yum -y install git cmake pcre-devel gd-devel libxml2-devel libcap-devel binutils-devel flex bison expat-devel patch gcc44 gcc44-c++ gcc gcc-c++ bzip2 bzip2-devel memcached openldap openldap-devel readline-devel libc-client-devel pam-devel wget ncurses-devel
#yum -y install --enablerepo=epel libc-client2007

#Upgrade cmake to 2.8.10.2
#http://linuxtoolkit.blogspot.kr/2013/07/july-22-2013-installing-cmake-28-on.html
#http://stackoverflow.com/questions/18615451/cmake-missing-modules-directory
#https://github.com/jackywei/HOW-TO-BUILD-HHVM-WiKi/wiki/Build-&-Install-CMake-2.8.10.2-in-CentOS6.3
#wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
#tar -xvzf cmake-2.8.10.2.tar.gz
#cd cmake-2.8.10.2
#./bootstrap
#make
#make install
export PATH=/usr/local/bin:$PATH
#export CMAKE_ROOT=/usr/local/share/cmake-2.8
#echo $PATH
#cmake --version 

mkdir hiphop
cd hiphop
# hhvm for MAGENTO by danslo
git clone https://github.com/danslo/hhvm.git

wget "http://downloads.sourceforge.net/project/re2c/re2c/0.13.5/re2c-0.13.5.tar.gz?use_mirror=cdnetworks-us-2"
wget http://curl.haxx.se/download/curl-7.20.0.tar.bz2
wget http://pkgs.fedoraproject.org/repo/pkgs/libevent/libevent-1.4.14b-stable.tar.gz/a00e037e4d3f9e4fe9893e8a2d27918c/libevent-1.4.14b-stable.tar.gz
wget http://launchpad.net/libmemcached/1.0/0.48/+download/libmemcached-0.48.tar.gz
wget http://download.icu-project.org/files/icu4c/4.6.1/icu4c-4_6_1-src.tgz
wget http://www.geocities.jp/kosako3/oniguruma/archive/onig-5.9.2.tar.gz
wget http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download
wget http://php.webtutor.pl/wp-content/uploads/2011/04/libcclient2007-devel.tar.gz
wget http://www.canonware.com/download/jemalloc/jemalloc-3.0.0.tar.bz2

tar xvjf curl-7.20.0.tar.bz2
tar xvzf libevent-1.4.14b-stable.tar.gz
tar xvzf re2c-0.13.5.tar.gz
tar xvzf libmemcached-0.48.tar.gz
tar xvzf icu4c-4_6_1-src.tgz
tar xvzf onig-5.9.2.tar.gz
tar xvzf boost_1_55_0.tar.gz
tar xvzf libcclient2007-devel.tar.gz
tar xvjf jemalloc-3.0.0.tar.bz2

#export CC=gcc44
export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc
export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/g++
export CMAKE_PREFIX_PATH=`pwd`/local

cd jemalloc-3.0.0
./configure --prefix=`pwd`/../local
make
make install
cd ..

wget 'http://threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb40_20120613oss_src.tgz'
tar -zxf tbb40_20120613oss_src.tgz
cd tbb40_20120613oss
make
mkdir -p /usr/include/serial
cp -a include/serial/* /usr/include/serial/
mkdir -p /usr/include/tbb
cp -a include/tbb/* /usr/include/tbb/
#The exact path to your generated libtbb.so.2 may be slightly different depending on your version of gcc, libc, and the kernel, but that should be close.
cp build/linux_intel64_gcc_cc4.7.2_libc2.5_kernel2.6.18_release/libtbb.so.2 /usr/lib64/
ln -s /usr/lib64/libtbb.so.2 /usr/lib64/libtbb.so
cd ..

cd re2c-0.13.5
./configure --prefix=`pwd`/../local
make install
cd ..

cd libevent-1.4.14b-stable
cp ../hhvm/hphp/third_party/libevent-1.4.14.fb-changes.diff .
patch -p1 < libevent-1.4.14.fb-changes.diff
./configure --prefix=`pwd`/../local
make install
cd ..

cd curl-7.20.0
cp ../hhvm/hphp/third_party/libcurl.fb-changes.diff .
patch -p1 < libcurl.fb-changes.diff
./configure --prefix=`pwd`/../local
make install
cd ..

cd libmemcached-0.48
./configure --prefix=`pwd`/../local
make install
cd ..

cd icu/source
./configure --prefix=`pwd`/../../local
make install
cd ../..

cd onig-5.9.2
./configure --prefix=`pwd`/../local
make install
cd ..

cd boost_1_55_0
./bootstrap.sh --prefix=`pwd`/../local --libdir=`pwd`/../local/lib
./bjam --layout=system install
export Boost_LIBRARYDIR=`pwd`/../local/include/boost/
cd ..

cp -r imap `pwd`/local/include/
cp /usr/lib/libc-client.so.2007 `pwd`/local/lib/libc-client.so
#ln -s /usr/lib/libc-client.so.2007 `pwd`/local/lib/libc-client.so

svn checkout http://google-glog.googlecode.com/svn/trunk/ google-glog
cd google-glog
./configure --prefix=`pwd`/../local
make
make install
cd ..

git clone git://libdwarf.git.sourceforge.net/gitroot/libdwarf/libdwarf
cd libdwarf/libdwarf
./configure
make
cp libdwarf.a /usr/lib64/
cp libdwarf.h /usr/include/
cp dwarf.h /usr/include/
cd ../..

ldconfig

# Now install HIPHOP !
cd hhvm
git submodule init
git submodule update
export HPHP_HOME=`pwd`
export HPHP_LIB=`pwd`/bin
cmake -DCMAKE_PREFIX_PATH=`pwd`/../local -DCMAKE_C_COMPILER:FILEPATH=/opt/centos/devtoolset-1.1/root/usr/bin/gcc -DCMAKE_CXX_COMPILER:FILEPATH=/opt/centos/devtoolset-1.1/root/usr/bin/g++ .
make

make error.

how can I fix this error?

FastCGI Issues

Did someone testet this with nginx and hhvm as fastcgi?

hhvm will generate a new session per request, and override my exists cookie.
expire date +3 Days

Testet in magento 1.8.1.0, currently i don't know if its a problem of faceboo:khhvm or your version did some could test this too :) ?

cd /home/mathis/web/htdocs/domain/magento.example.tld/
hhvm --mode server -vServer.Type=fastcgi -vServer.Port=9000


server {
  listen      85.25.145.101:80;
  listen      85.25.145.101:443 ssl spdy;

  server_name magento.example.tld;

  root        /home/mathis/web/htdocs/domain/magento.example.tld/;
  index       index.php;
  error_log   /var/log/nginx/magento.example.tld-error.log notice;
  access_log  /var/log/nginx/magento.example.tld-access.log;

  client_body_buffer_size 2222m;

  location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires 30d;
    log_not_found off;
  }

  location / {
    index index.html index.php;
    expires 5d;
    try_files $uri $uri/ @handler;
  }
  location ^~ /(app|import|includes|lib|media/downloadable|pkginfo|report/config.xml|var)/ { internal; }
  location /skin {
    expires 5d;
    try_files $uri =404;
  }
  location /media {
    expires 5d;
    try_files $uri =404;
  }
  location /js {
    expires 5d;
    try_files $uri =404;
  }

  location @handlerjs { rewrite / /js/index.php; }

  location /var/export/ { internal; }
  location /. { return 404; }
  location @handler { rewrite / /index.php; }
  location ~* .php/ { rewrite ^(.*.php)/ $1 last; }
  location ~* .php$ {
    if (!-e $request_filename) { rewrite / /index.php last; }
    expires off;

#    fastcgi_pass  unix:/var/run/nginx/mathis-128.socket;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param MAGE_RUN_CODE default;
    fastcgi_param MAGE_RUN_TYPE store;

    include fastcgi_params;
  }
}

undefined lzf compression.

A nightly package's HHVM version I used is...........
HipHop VM 3.1.0-dev+2014.04.11 (rel)
Compiler: heads/master-0-g776bffd31b207b265986430a4dcac78662e445f0
Repo schema: 66201ba733ff5c37ab5e9edb79f5fe3d3dba63ce

nginx + hhvm fastcgi + Magento 1.7.0.2 + I'm using Cm_Redis_Session extension.

/etc/local.xml

    <redis_session>                       <!-- All options seen here are the defaults -->
            <host>127.0.0.1</host>            <!-- Specify an absolute path if using a unix socket -->
            <port>6379</port>
            <password></password>             <!-- Specify if your redis server requires authentication -->
            <timeout>2.5</timeout>            <!-- This is the Redis connection timeout, not the locking timeout -->
            <persistent></persistent>         <!-- Specify unique string to enable persistent connections. E.g.: sess-db0 -->
            <db>0</db>
            <compression_threshold>2048</compression_threshold>  <!-- Set to 0 to disable compression -->
            <compression_lib>lzf</compression_lib>  <!-- gzip, lzf or snappy : lzf or snappy is much faster than gzip -->
            <log_broken_locks>0</log_broken_locks>               <!-- Useful for debugging fatal errors or extremely slow pages -->
            <max_concurrency></max_concurrency>
            <break_after_frontend>5</break_after_frontend>       <!-- Frontend arguably doesn't need locking as urgently -->
            <break_after_adminhtml>30</break_after_adminhtml>
            <bot_lifetime>7200</bot_lifetime>                    <!-- Bots get shorter session lifetimes. 0 to disable -->
        </redis_session>
        <cache>
            <prefix>MAGE_</prefix>
            <backend>Cm_Cache_Backend_Redis</backend>
            <backend_options>
                <server>127.0.0.1</server> <!-- or absolute path to unix socket -->
                <port>6379</port>
                <persistent></persistent> <!-- Specify a unique string like "cache-db0" to enable persistent connections. -->
                <database>0</database>
                <password></password>
                <force_standalone>0</force_standalone>  <!-- 0 for phpredis, 1 for standalone PHP -->
                <connect_retries>1</connect_retries>    <!-- Reduces errors due to random connection failures -->
                <read_timeout>10</read_timeout>         <!-- Set read timeout duration -->
                <automatic_cleaning_factor>0</automatic_cleaning_factor> <!-- Disabled by default -->
                <compress_data>1</compress_data>  <!-- 0-9 for compression level, recommended: 0 or 1 -->
                <compress_tags>1</compress_tags>  <!-- 0-9 for compression level, recommended: 0 or 1 -->
                <compress_threshold>20480</compress_threshold>  <!-- Strings below this size will not be compressed -->
                <compression_lib>lzf</compression_lib> <!-- Supports gzip, lzf and snappy : lzf or snappy is much faster than gzip -->
            </backend_options>
    </cache>
Error: Call to undefined function lzf_compress()  in /var/www/magento/app/code/community/Cm/Cache/Backend/Redis.php on line 842

http://pecl.php.net/package/lzf
Is the hhvm not support lzf compression? (gzip is slow)

there is speedy array serialization extension called igbinary. this is not working.
http://pecl.php.net/package/igbinary ( https://github.com/igbinary/igbinary )

$data = igbinary_serialize( array(1,2,3,4,5,6) );
$arr = igbinary_unserialize($data);

if support it would be great !!!

$some_object->$null_value fails incorrectly.

See this testcase:

<?php
//Expected Output: success
//Apache/PHP Output: success
//HHVM Output: Cannot access empty property (line 12)
class foo {
    function __get($property) {
        return 'success';
    }
}
$object = new foo;
$attribute = NULL;
echo $object->$attribute;

This issue causes magento system -> configuration to fail.

Magento Third Party Module compatibility

Hi,

I have two third party modules that I am using with Magento - one is Nexcessnet Turpentine and the other CM Redis Cache.

The issue with Hiphop VM is that the silenced operator @ (at sign) does not suppress errors like in PHP. This means that the error logs get filled up with the silenced errors and this is generally bad.

I've created an issue upstream but nobody has had a chance to really fix the issue (it's a PHP compatibility thing). Any chance you could look?

http://www.php.net/manual/en/language.operators.errorcontrol.php

facebook#1710

The other issue is that the Redis code in HipHop VM does not support redis named persistent connections, which the CM Redis Cache module can use.

facebook#2517

Redis doesn't work as cache backend.

Invalid response: ๏ฟฝOEn๏ฟฝ๏ฟฝe๏ฟฝ3"๏ฟฝ๏ฟฝs๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝO/๏ฟฝ]๏ฟฝc๏ฟฝ๏ฟฝ9๏ฟฝ๏ฟฝ@๏ฟฝ๏ฟฝ๏ฟฝ]n๏ฟฝJ6๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝi๏ฟฝ๏ฟฝP๏ฟฝ๏ฟฝj๏ฟฝb๏ฟฝ๏ฟฝ๏ฟฝt๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ

#0 /home/daniel/Code/<redacted>/lib/Credis/Client.php(547): Credis_Client->read_reply()
#1 /home/daniel/Code/<redacted>/app/code/community/Cm/Cache/Backend/Redis.php(184): Credis_Client->__call()
#2 /home/daniel/Code/<redacted>/lib/Zend/Cache/Core.php(303): Cm_Cache_Backend_Redis->load()
#3 /home/daniel/Code/<redacted>/lib/Varien/Cache/Core.php(158): Zend_Cache_Core->load()
#4 /home/daniel/Code/<redacted>/lib/Varien/Db/Adapter/Pdo/Mysql.php(1472): Varien_Cache_Core->load()
#5 /home/daniel/Code/<redacted>/lib/Varien/Db/Adapter/Pdo/Mysql.php(1594): Varien_Db_Adapter_Pdo_Mysql->loadDdlCache()
#6 /home/daniel/Code/<redacted>/app/code/core/Enterprise/SalesArchive/Model/Resource/Setup.php(126): Varien_Db_Adapter_Pdo_Mysql->describeTable()
#7 /home/daniel/Code/<redacted>/app/code/core/Enterprise/SalesArchive/Model/Resource/Setup.php(91): Enterprise_SalesArchive_Model_Resource_Setup->_syncTable()
#8 /home/daniel/Code/<redacted>/app/code/core/Enterprise/SalesArchive/Model/Resource/Setup.php(76): Enterprise_SalesArchive_Model_Resource_Setup->_syncArchiveStructure()
#9 /home/daniel/Code/<redacted>/app/code/core/Mage/Core/Model/Resource/Setup.php(242): Enterprise_SalesArchive_Model_Resource_Setup->afterApplyAllUpdates()
#10 /home/daniel/Code/<redacted>/app/code/core/Mage/Core/Model/App.php(417): Mage_Core_Model_Resource_Setup::applyAllUpdates()
#11 /home/daniel/Code/<redacted>/app/code/core/Mage/Core/Model/App.php(343): Mage_Core_Model_App->_initModules()
#12 /home/daniel/Code/<redacted>/app/Mage.php(683): Mage_Core_Model_App->run()
#13 /home/daniel/Code/<redacted>/index.php(156): Mage::run()
#14 {main}

Indexers don't show in the backend.

Very likely a SimpleXML bug.

$indexes = Mage::getConfig()->getNode(Mage_Index_Model_Process::XML_PATH_INDEXER_DATA); 

Should get indexers but doesn't. Need to create a pure PHP test-case for this.

Controller Rewrites (in an extension's config.xml) aren't processed.

Testable with this: https://github.com/BuildRX/mage-hhvm

Go to manage stores and hit save, you will get this error on HHVM:
HipHop Fatal error: preg_replace is not going to be supported: Modifier /e must be used with the form f("") or f(""); in app/code/core/Mage/Core/Helper/Abstract.php on line 238

If the rewrite loads successfully the save will succeed. I can try to come up with a testcase thursday or friday if you don't have anything by then.

magento2 - _mergeNode() must be an instance of DOMElement

Not sure if you have tried magento2 yet but I get the following fatal error in HHVM:

[Fri Mar 21 15:31:33 2014] [hphp] [32512:7eff96bff700:1:000001] [] \nWarning: Empty string supplied as input in /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/Config/Dom.php on line 324
[Fri Mar 21 15:31:33 2014] [hphp] [32512:7eff96bff700:1:000002] [] \nFatal error: Argument 1 passed to Magento\\Config\\Dom::_mergeNode() must be an instance of DOMElement, null given in /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/Config/Dom.php on line 180

Invalid type used as key - facade.php

Hi, Just trying this for the first time, managed to get the home page/category pages working but I am getting the following when viewing a product page:

Warning: Invalid operand type was used: Invalid type used as key  in /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Block/Template/Facade.php on line 83

#0 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Block/Template/Facade.php(83): mageCoreErrorHandler()
#1 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Block/Abstract.php(489): Mage_Core_Block_Template_Facade->ifEquals()
#2 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Model/Layout.php(348): Mage_Core_Block_Abstract->unsetCallChild()
#3 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Model/Layout.php(214): Mage_Core_Model_Layout->_generateAction()
#4 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Model/Layout.php(206): Mage_Core_Model_Layout->generateBlocks()
#5 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks()
#6 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#7 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Cms/Helper/Page.php(113): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#8 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Cms/Helper/Page.php(52): Mage_Cms_Helper_Page->_renderPage()
#9 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Cms/controllers/IndexController.php(75): Mage_Cms_Helper_Page->renderPage()
#10 /var/www/vhosts/magento-capistrano/releases/20131028151316/app/code/local/Vax/Cms/controllers/IndexController.php(58): Mage_Cms_IndexController->noRouteAction()
#11 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Vax_Cms_IndexController->noRouteAction()
#12 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch()
#13 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match()
#14 /var/www/vhosts/magento-capistrano/current/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#15 /var/www/vhosts/magento-capistrano/current/app/Mage.php(683): Mage_Core_Model_App->run()
#16 /var/www/vhosts/magento-capistrano/current/index.php(112): Mage::run()
#17 {main}

checkout button failing.

I am seeing this on two sites.. 1 being a default demo store install. In the case of the demo store clicking 'place order' with check / money order results in submitting order information icon spinning till it times out and the user bounces back to cart..

In the other (non-demo store) site the 'Place order' button simply does nothing..

though all test orders show as pending in Sales list... any ideas?

It seems such a strange issue considering everything else seems to work perfectly.

using hhvm + fastcgi via nginx

SoapClient doesn't follow 302 redirect

Hi, this is either a bug, or just a misconfiguration on my part. I noticed that VAT validation was failing on my store after switching to hhvm, tested it, and the problem is that hhvm is not following a 302 redirect from vies.

<?php
new SoapClient('http://ec.europa.eu/taxation_customs/vies/services/checkVatService?wsdl');
?>

gives the following error:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP_ERROR: Parsing WSDL: Couldn't load from 'http://ec.europa.eu/taxation_customs/vies/services/checkVatService?wsdl'

curl shows the server is throwing out a 302 redirect:

curl -I http://ec.europa.eu/taxation_customs/vies/services/checkVatService?wsdl
HTTP/1.1 302 Moved Temporarily
Date: Fri, 25 Apr 2014 15:49:00 GMT
Transfer-Encoding: chunked
Server: Europa
Location: http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl
Proxy-Connection: Keep-Alive
Connection: Keep-Alive

Changing to the new location works, but it is theoretically only a temporary move.

What editor do you use?

Not really an issue per say, but what editor do you use for HHVM code development (the actual HHVM code itself) on OS X? Thanks

Unable to login to admin

Magento EE 1.14 with HipHop VM compiled from master today. No message gets displayed about incorrect password.

The HHVM error log is empty, the magento error log is empty, the nginx error log is empty!

magento2 - "session.save_path" is not a valid sessions-related ini

Clean install, no local.xml or config.xml.

gives out a empty string
cat 505141387252 
a:4:{i:0;s:64:""session.save_path" is not a valid sessions-related ini setting.";i:1;s:6109:"#0 /var/www/vhosts/magento2/releases/20140321145718/app/code/Magento/Core/Model/Session/Config.php(234): Magento\Core\Model\Session\Config->setStorageOption()
#1 /var/www/vhosts/magento2/releases/20140321145718/app/code/Magento/Core/Model/Session/Config.php(320): Magento\Core\Model\Session\Config->setOption()
#2 /var/www/vhosts/magento2/releases/20140321145718/app/code/Magento/Core/Model/Session/Config.php(160): Magento\Core\Model\Session\Config->setSavePath()
#3 (): Magento\Core\Model\Session\Config->__construct()
#4 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/Factory/Factory.php(166): ReflectionClass->newInstanceArgs()
#5 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/ObjectManager.php(87): Magento\ObjectManager\Factory\Factory->create()
#6 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/Config/Argument/ObjectFactory.php(90): Magento\ObjectManager\ObjectManager->get()
#7 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/Factory/Factory.php(112): Magento\ObjectManager\Config\Argument\ObjectFactory->create()
#8 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/Factory/Factory.php(141): Magento\ObjectManager\Factory\Factory->_resolveArguments()
#9 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/ObjectManager.php(87): Magento\ObjectManager\Factory\Factory->create()
#10 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/Config/Argument/ObjectFactory.php(90): Magento\ObjectManager\ObjectManager->get()
#11 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/Factory/Factory.php(112): Magento\ObjectManager\Config\Argument\ObjectFactory->create()
#12 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/Factory/Factory.php(141): Magento\ObjectManager\Factory\Factory->_resolveArguments()
#13 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/ObjectManager.php(87): Magento\ObjectManager\Factory\Factory->create()
#14 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/Config/Argument/ObjectFactory.php(90): Magento\ObjectManager\ObjectManager->get()
#15 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/Factory/Factory.php(112): Magento\ObjectManager\Config\Argument\ObjectFactory->create()
#16 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/Factory/Factory.php(141): Magento\ObjectManager\Factory\Factory->_resolveArguments()
#17 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/ObjectManager/ObjectManager.php(74): Magento\ObjectManager\Factory\Factory->create()
#18 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/App/ActionFactory.php(52): Magento\ObjectManager\ObjectManager->create()
#19 /var/www/vhosts/magento2/releases/20140321145718/app/code/Magento/Core/App/Router/Base.php(313): Magento\App\ActionFactory->createController()
#20 /var/www/vhosts/magento2/releases/20140321145718/app/code/Magento/Core/App/Router/Base.php(150): Magento\Core\App\Router\Base->_matchController()
#21 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/App/FrontController.php(58): Magento\Core\App\Router\Base->match()
#22 (): Magento\App\FrontController->dispatch()
#23 /var/www/vhosts/magento2/shared/var/generation/Magento/App/FrontController/Interceptor.php(48): call_user_func_array()
#24 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/Interception/Chain/Chain.php(83): Magento\App\FrontController\Interceptor->___callParent()
#25 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/Interception/Chain/Chain.php(76): Magento\Interception\Chain\Chain->invokeNext()
#26 /var/www/vhosts/magento2/releases/20140321145718/app/code/Magento/Core/App/FrontController/Plugin/UrlRewrite.php(68): {closure}()
#27 (): Magento\Core\App\FrontController\Plugin\UrlRewrite->aroundDispatch()
#28 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/Interception/Chain/Chain.php(81): call_user_func_array()
#29 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/Interception/Chain/Chain.php(76): Magento\Interception\Chain\Chain->invokeNext()
#30 /var/www/vhosts/magento2/releases/20140321145718/app/code/Magento/Core/App/FrontController/Plugin/RequestPreprocessor.php(113): {closure}()
#31 (): Magento\Core\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch()
#32 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/Interception/Chain/Chain.php(81): call_user_func_array()
#33 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/Interception/Chain/Chain.php(76): Magento\Interception\Chain\Chain->invokeNext()
#34 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/Module/FrontController/Plugin/Install.php(82): {closure}()
#35 (): Magento\Module\FrontController\Plugin\Install->aroundDispatch()
#36 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/Interception/Chain/Chain.php(81): call_user_func_array()
#37 /var/www/vhosts/magento2/shared/var/generation/Magento/App/FrontController/Interceptor.php(88): Magento\Interception\Chain\Chain->invokeNext()
#38 /var/www/vhosts/magento2/releases/20140321145718/app/code/Magento/Core/App/FrontController/Plugin/DispatchExceptionHandler.php(73): {closure}()
#39 (): Magento\Core\App\FrontController\Plugin\DispatchExceptionHandler->aroundDispatch()
#40 /var/www/vhosts/magento2/shared/var/generation/Magento/App/FrontController/Interceptor.php(93): call_user_func_array()
#41 /var/www/vhosts/magento2/shared/var/generation/Magento/App/FrontController/Interceptor.php(115): Magento\App\FrontController\Interceptor->___call()
#42 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/App/Http.php(121): Magento\App\FrontController\Interceptor->dispatch()
#43 /var/www/vhosts/magento2/releases/20140321145718/lib/Magento/App/EntryPoint/EntryPoint.php(83): Magento\App\Http->launch()
#44 /var/www/vhosts/magento2/releases/20140321145718/index.php(37): Magento\App\EntryPoint\EntryPoint->run()

{{unsecure_base_url}} does not get inherited from default to website

My current setup is HHVM compiled from master as of 16/05/2014. I have a store running Magento EE 1.13.0.1 and Magento EE 1.14.0.0

If I check System->Config->Web (Default) the Base Link URL, Base Skin URL, Secure Base Link URL etc are set a value. e.g.:

Base Link URL  {{unsecure_base_url}}

When I goto a website view by changing the store drop down on the admin - use Default is ticked yet the boxes are empty.

Base Link URL

On the frontend when I view some stores the store is crashing. The magento error log shows:

FILE: 20140516135016/app/code/core/Mage/Core/functions.php:247
Error: Stack overflow  in /var/www/vhosts/magento-capistrano-dev/releases/20140516135016/lib/Varien/Simplexml/Config.php on line 153

In the backend while navigating the admin backend I am seeing:

FILE: 20140516135016/app/code/core/Mage/Core/functions.php:247
Warning: htmlspecialchars() expects parameter 1 to be string  in /var/www/vhosts/magento-capistrano-dev/releases/20140516135016/lib/Varien/Data/Form/Element/Abstract.php on line 151
2014-05-16T18:42:42+00:00 ERR (admin): /index.php/admin/system_config/edit/section/web/website/commercial/key/bc2d77a1b0751911e70bb449da3b3212896d7cc1e84776c2d167d82d1b9971a8/ 

If I use php-fpm the store and website values are set.

Turpentine throws a SimpleXML error.

Getting the following error, tested against current master as of today. I didn't get this error before the simplexml refactor.

I am loading the home page to my magento 1.13 website.

a:5:{i:0;s:53:"Call to a member function setParent() on a non-object";i:1;s:2451:"#0 /var/www/vhosts/magento-capistrano/releases/20131205114931/lib/Varien/Simplexml/Element.php(452): Varien_Simplexml_Element->extendChild()
#1 /var/www/vhosts/magento-capistrano/releases/20131205114931/lib/Varien/Simplexml/Element.php(452): Varien_Simplexml_Element->extendChild()
#2 /var/www/vhosts/magento-capistrano/releases/20131205114931/lib/Varien/Simplexml/Element.php(452): Varien_Simplexml_Element->extendChild()
#3 /var/www/vhosts/magento-capistrano/releases/20131205114931/lib/Varien/Simplexml/Element.php(452): Varien_Simplexml_Element->extendChild()
#4 /var/www/vhosts/magento-capistrano/releases/20131205114931/lib/Varien/Simplexml/Element.php(391): Varien_Simplexml_Element->extendChild()
#5 /var/www/vhosts/magento-capistrano/releases/20131205114931/lib/Varien/Simplexml/Config.php(600): Varien_Simplexml_Element->extend()
#6 /var/www/vhosts/magento-capistrano/releases/20131205114931/app/code/local/Nexcessnet/Turpentine/Model/Shim/Mage/Core/App.php(63): Varien_Simplexml_Config->extend()
#7 /var/www/vhosts/magento-capistrano/releases/20131205114931/app/code/local/Nexcessnet/Turpentine/Model/Observer/Esi.php(119): Nexcessnet_Turpentine_Model_Shim_Mage_Core_App->shim_addEventObserver()
#8 /var/www/vhosts/magento-capistrano/releases/20131205114931/app/code/core/Mage/Core/Model/App.php(1338): Nexcessnet_Turpentine_Model_Observer_Esi->loadCacheClearEvents()
#9 /var/www/vhosts/magento-capistrano/releases/20131205114931/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod()
#10 /var/www/vhosts/magento-capistrano/releases/20131205114931/app/Mage.php(448): Mage_Core_Model_App->dispatchEvent()
#11 /var/www/vhosts/magento-capistrano/releases/20131205114931/app/code/core/Mage/Core/Controller/Varien/Front.php(128): Mage::dispatchEvent()
#12 /var/www/vhosts/magento-capistrano/releases/20131205114931/app/code/core/Mage/Core/Model/App.php(749): Mage_Core_Controller_Varien_Front->init()
#13 /var/www/vhosts/magento-capistrano/releases/20131205114931/app/code/core/Mage/Core/Model/App.php(1094): Mage_Core_Model_App->_initFrontController()
#14 /var/www/vhosts/magento-capistrano/releases/20131205114931/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Model_App->getFrontController()
#15 /var/www/vhosts/magento-capistrano/releases/20131205114931/app/Mage.php(684): Mage_Core_Model_App->run()
#16 /var/www/vhosts/magento-capistrano/releases/20131205114931/index.php(112): Mage::run()

Stack overflow in SimpleXml

Hi,

I have a simple login page (seperate from the normal magento login). It simply check to see if a cookie is set and if it's not redirects you to a form. On the page with the form I am getting the following exception and nothing output in HTML.

\nFatal error: Stack overflow in /var/www/vhosts/magento-capistrano-dev/releases/20140606081740/lib/Varien/Simplexml/Config.php on line 153

Can't use Repo Authoritative mode due to errors pre-analyzing.

running hphp...
parsing inputs...
Unable to stat file app/Mage/Core/functions.php
Unable to stat file app/Varien/Autoload.php
Unable to stat file app/code/core/Mage/Adminhtml/Model/Varien/Pear/Package.php
Unable to stat file app/code/core/Mage/Authorizenet/controllers/Adminhtml/Authorizenet/Directpost/Mage/Adminhtml/controllers/Sales/Order/CreateController.php
Unable to stat file app/code/core/Mage/Bundle/controllers/Adminhtml/Bundle/Product/Mage/Adminhtml/controllers/Catalog/ProductController.php
Unable to stat file app/code/core/Mage/Bundle/controllers/Product/Mage/Bundle/controllers/Adminhtml/Bundle/Product/EditController.php
Unable to stat file app/code/core/Mage/Bundle/controllers/Mage/Bundle/controllers/Adminhtml/Bundle/SelectionController.php
Unable to stat file app/code/core/Mage/Centinel/Model/3Dsecure/CentinelClient.php
Unable to stat file app/code/core/Mage/Downloadable/controllers/Adminhtml/Downloadable/Product/Mage/Adminhtml/controllers/Catalog/ProductController.php
Unable to stat file app/code/core/Mage/Downloadable/controllers/Mage/Downloadable/controllers/Adminhtml/Downloadable/FileController.php
Unable to stat file app/code/core/Mage/Downloadable/controllers/Product/Mage/Downloadable/controllers/Adminhtml/Downloadable/Product/EditController.php
Unable to stat file app/code/core/Mage/GoogleBase/controllers/Mage/GoogleBase/controllers/Adminhtml/Googlebase/ItemsController.php
Unable to stat file app/code/core/Mage/GoogleBase/controllers/Mage/GoogleBase/controllers/Adminhtml/Googlebase/SelectionController.php
Unable to stat file app/code/core/Mage/GoogleBase/controllers/Mage/GoogleBase/controllers/Adminhtml/Googlebase/TypesController.php
Unable to stat file app/code/core/Mage/Install/Model/Installer/Varien/Pear/Package.php
Unable to stat file app/code/core/Mage/Sales/doc/lib/Varien/Object.php
Unable to stat file downloader/Maged/Model/Maged/Connect.php
Unable to stat file downloader/Mage/Autoload/Simple.php
Unable to stat file Mage/Core/functions.php
Unable to stat file Varien/Autoload.php
Unable to stat file lib/PEAR/HTTP/Net/Socket.php
Unable to stat file lib/PEAR/HTTP/Net/URL.php
Unable to stat file lib/PEAR/Mail/PEAR.php
Unable to stat file lib/PEAR/Mail/Mail/mimePart.php
Unable to stat file lib/PEAR/Net/PEAR.php
Unable to stat file lib/PEAR/PEAR/FixPHP5PEARWarnings.php
Unable to stat file lib/PEAR/SOAP/PEAR.php
Unable to stat file lib/PEAR/SOAP/SOAP/Value.php
Unable to stat file lib/PEAR/SOAP/SOAP/Base.php
Unable to stat file lib/PEAR/SOAP/SOAP/Transport.php
Unable to stat file lib/PEAR/SOAP/SOAP/WSDL.php
Unable to stat file lib/PEAR/SOAP/SOAP/Fault.php
Unable to stat file lib/PEAR/SOAP/SOAP/Parser.php
Unable to stat file lib/PEAR/PEAR/PEAR/FixPHP5PEARWarnings.php
Unable to stat file lib/PEAR/SOAP/Transport/SOAP/Transport.php
Unable to stat file lib/PEAR/SOAP/HTTP/Request.php
Unable to stat file lib/PEAR/XML/PEAR.php
Unable to stat file lib/PEAR/XML/Parser/XML/Parser.php
Unable to stat file lib/PEAR/XML/XML/Util.php
Unable to stat file lib/PEAR/XML/XML/Parser.php
Unable to stat file lib/PEAR/SOAP/Mail/mimePart.php
Unable to stat file lib/PEAR/SOAP/Net/DIME.php
Unable to stat file lib/PEAR/SOAP/Mail/mimeDecode.php
Unable to stat file lib/PEAR/SOAP/SOAP/Client.php
Unable to stat file lib/Varien/Db/Varien/Exception.php
Unable to stat file lib/Varien/Db/Varien/Db/Tree/Exception.php
Unable to stat file lib/Varien/Db/Tree/Varien/Db/Exception.php
Unable to stat file lib/Varien/Db/Tree/Varien/Db/Tree/Node/Exception.php
Unable to stat file lib/Varien/Directory/Varien/Data/Collection.php
Unable to stat file lib/Varien/Directory/Varien/Directory/Factory.php
Unable to stat file lib/Varien/Directory/Varien/Directory/IFactory.php
Unable to stat file lib/Varien/Directory/Varien/Directory/Collection.php
Unable to stat file lib/Varien/Directory/Varien/File/Object.php
Unable to stat file lib/Varien/File/Varien/File/Csv.php
Unable to stat file lib/Varien/File/Varien/Object.php
Unable to stat file lib/Varien/File/Varien/Directory/IFactory.php
Unable to stat file lib/Varien/Io/phpseclib/Net/SFTP.php
Unable to stat file lib/Varien/Pear/Varien/Pear.php
Unable to stat file lib/Varien/Pear/PEAR/PackageFileManager.php
Unable to stat file lib/Varien/Pear/PEAR/PackageFile/v1.php
Unable to stat file lib/Varien/Pear/PEAR/PackageFile/Generator/v1.php
Unable to stat file lib/Varien/Pear/PEAR/PackageFileManager2.php
Unable to stat file lib/Varien/Pear/PEAR/PackageFile/v2.php
Unable to stat file lib/Varien/Pear/PEAR/PackageFile/v2/rw.php
Unable to stat file lib/Varien/Pear/PEAR/PackageFile/v2/Validator.php
Unable to stat file lib/Varien/Pear/PEAR/PackageFile/Generator/v2.php
Unable to stat file lib/Zend/InfoCard/Zend/InfoCard/Cipher/Symmetric/Adapter/Aes256cbc.php
Unable to stat file lib/Zend/InfoCard/Zend/InfoCard/Cipher/Symmetric/Adapter/Aes128cbc.php
Unable to stat file lib/Zend/InfoCard/Zend/InfoCard/Cipher/Pki/Adapter/Rsa.php
Unable to stat file lib/Zend/InfoCard/Xml/Zend/InfoCard/Xml/Assertion/Saml.php
Unable to stat file lib/Zend/InfoCard/Xml/Zend/InfoCard/Xml/EncryptedData/XmlEnc.php
Unable to stat file lib/Zend/InfoCard/Xml/Zend/InfoCard/Xml/KeyInfo/XmlDSig.php
Unable to stat file lib/Zend/InfoCard/Xml/Zend/InfoCard/Xml/KeyInfo/Default.php
Unable to stat file lib/Zend/Locale/Zend/Locale/Math/PhpMath.php
Unable to stat file lib/Zend/Service/Zend/Service/Twitter/Exception.php
Unable to stat file lib/phpseclib/Crypt/Math/BigInteger.php
Unable to stat file lib/phpseclib/Crypt/Crypt/Random.php
Unable to stat file lib/phpseclib/Crypt/Crypt/Hash.php
Unable to stat file lib/phpseclib/Crypt/Crypt/TripleDES.php
Unable to stat file lib/phpseclib/Crypt/Crypt/DES.php
Unable to stat file lib/phpseclib/Net/phpseclib/Net/SSH2.php
Unable to stat file lib/phpseclib/Net/phpseclib/Math/BigInteger.php
Unable to stat file lib/phpseclib/Net/phpseclib/Crypt/DES.php
Unable to stat file lib/phpseclib/Net/phpseclib/Crypt/TripleDES.php
Unable to stat file lib/phpseclib/Net/phpseclib/Crypt/RC4.php
Unable to stat file lib/phpseclib/Net/phpseclib/Crypt/Random.php
Unable to stat file lib/phpseclib/Net/phpseclib/Crypt/AES.php
Unable to stat file lib/PEAR/HTTP/PEAR.php
Unable to stat file lib/phpseclib/Net/phpseclib/Crypt/Hash.php
Unable to stat file app/code/core/Mage/Compiler/controllers/Mage/Compiler/controllers/Adminhtml/Compiler/ProcessController.php
analyzeProgram...
analyzeProgram took 0'01" (1785688 us) wall time
parsing inputs took 0'03" (3260310 us) wall time
pre-optimizing...
pre-optimizing took 0'03" (3072034 us) wall time
analyze includes...
analyze includes took 0'00" (5413 us) wall time
inferring types...
inferring types took 0'01" (1903953 us) wall time
post-optimizing...
post-optimizing took 0'07" (7350285 us) wall time
creating binary HHBC files...
creating binary HHBC files took 0'01" (1606976 us) wall time
saving code errors...
all files saved in /tmp/hhbc ...
running hphp took 0'19" (19479795 us) wall time

Those files exist, but on a different location. For example, it's not Varien/Autoload.php but lib/Varien/Autoload.php. I'm guessing this has to do with includes being done and assumptions being made due to include paths.

fastcgi_pass not working from nginx => hhvm

I am using fastcgi_param in nginx location block to set the MAGE_RUN_CODE but the value is not set in php. I can verify this by echoing $mageRunCode from index.php from Magento.

vhost snippet from nginx:

location ~ \.php$ {
        # Catch 404s
        if (!-e $request_filename) {
            rewrite / /index.php last;
        }

        # Do not cache dynamic content
        expires        off;

        fastcgi_pass   127.0.0.1:9000; 

        fastcgi_param  SCRIPT_FILENAME           $document_root$fastcgi_script_name;
        fastcgi_param  MAGE_RUN_CODE             store_code;
        fastcgi_param  MAGE_RUN_TYPE             website;

        include        fastcgi_params;

    }

<remove /> nodes are not processed.

When creating a configurable option, you're faced with the following:

Both the configurable attribute section and default attributes are shown.

preg_replace limited support

HipHop Fatal error: preg_replace is not going to be supported: Modifier /e must be used with the form f("") or f(""); in /Users/mattdunbar/Development/empty-mage/app/code/core/Mage/Core/Helper/Abstract.php on line 238

This occurs when adding a new storeview.

Admin session serialization incompatibility between hhvm and php-fpm

Lets say that you have fastcgi pass between nginx and hhvm. You go into admin interface, and log in. (database storage of sessions)

Now you stop hhvm, and start php-fpm (listening on the same TCP port).
Refresh the page, and you will get a white screen of death in Magento.

Error will be backtrace in ACL, and it appears that this is because Magento serializes ACL related objects into the session, and while both HHVM and PHP-FPM are fine using the unserialized versions of their own sessions, they cannot share between the two.

If you clean up sessions/cookies and repeat the process from PHP-FPM to HHVM, hhvm will display login page and generate a new session.

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.