HHVM 3.3.1ã¨PHP 5.6.2ã®==ã®éãã調ã¹ã¦ã¿ã
ï¼11/15 16:15追è¨ï¼æ¬ç¨¿ã§ææãã¦ããéãã®1件ç®ã«ã¤ãã¦バグレポを書いたã¨ãããããç´ããã¼ã¨ã®ãã¨ã§ããã
ï¼11/18 17:30追è¨ï¼ä¸è¨ä¿®æ£ãmasterãã©ã³ãã«åãè¾¼ã¾ãã¦ãããã¨ã確èªãã¾ããã
PHPã®JITã³ã³ãã¤ã©å®è£ ã§ããHHVMãæè¿è©±é¡ã§ãããæ¬å®¶ããé«éã¨ãããµããã¿ã§ãããFacebookãéçºã»å®éç¨ãã¦ããå®ç¸¾ãããããã§ããããå°å ¥ãæ¤è¨ããã¦ããæ¹ãå¤ãã®ã§ã¯ãªãã§ããããã
ã¨ã¯ãããç¹ã«åç¨ç°å¢ã«å°å ¥ããã¨ãªãã¨äºææ§ãã©ãã¾ã§ç¢ºä¿ã§ãã¦ããããéè¦ã§ããç¾æç¹ã§ãå®éç¨ã«èããç¨åº¦ã®äºææ§ã¯ããã¯ãã§ãããåã¯é常ã«ä¿å®çãªäººéãªã®ã§ãHHVMãäºææ§ã«ã©ãã¾ã§ãã ãã£ã¦ããã®ãã«èå³ãããã¾ãã
ä»åã==æ¼ç®åã«çµã£ã¦HHVMã¨PHPã®æåã調ã¹ã¦ã¿ãã¨ããã2ç¹ã®éããè¦ã¤ããã®ã§ç´¹ä»ãã¾ããæ¯è¼ã«ã¯Ubuntu14.04ä¸ã®prebuiltçHHVM 3.3.1ã¨èªåãã«ãããPHP 5.6.2ãå©ç¨ãã¾ããã
æµ®åå°æ°ç¹æ°ã¨16é²æ°å¤æååã®æ¯è¼ãæµ®åå°æ°ç¹æ¯è¼ãããªã
PHPã§æ°å¤ã¨æ°å¤æååã==ã§æ¯è¼ããå ´åã¯æ°å¤ã¨ãã¦æ¯è¼ããã¾ããHHVMã§ã大åã®å ´åã¯åãåä½ã«ãªãã®ã§ãããæµ®åå°æ°ç¹æ°ã¨16é²æ°å¤æååã®çµã¿åããã«éã£ã¦16é²æååã0.0ã¨ãã¦æ¯è¼ãããããã§ãã
<?php var_dump(1.0 == "0x1"); // HHVM: false, PHP: true var_dump(0.0 == "0x1"); // HHVM: true, PHP: false
ããã¯HHVMã®ãã°ã ã¨æããã¾ãã==å¦çã®åå²ãè¤éããã¦ééãããã§ããããã
æ´æ°ã®ç¯å²ãè¶ ãã10é²æ°å¤æååãæµ®åå°æ°ç¹æ°ã¨ãã¦æ°å¤æ¯è¼ããã
PHPã§æ°å¤æååå士ã==ã§æ¯è¼ããã¨ãã¯ååã¨ãã¦æ°å¤æ¯è¼ãããã®ã§ãããç´2å¹´åã®ä¿®æ£ããæ°å¤æ¯è¼ã§ç²¾åº¦ãè½ã¡ãå ´åã«ã¯æååæ¯è¼ããããã«ãªãã¾ããï¼åèï¼ãPHP 5.4.4から==の挙動が一段と難しくなりました - hnwの日記ãï¼ãããããHHVMã¯ãã®å¤æ´ã«è¿½å¾ãã¦ããªãããã§ãã
ããã¯æ¬¡ã®ãããªã³ã¼ãã§ç¢ºèªã§ãã¾ãã
<?php var_dump("9223372036854775807"=="9223372036854775808"); // HHVM: true, PHP: false
HHVMã®æåã¯å°ãåã®ãã¼ã¸ã§ã³ã®PHPã¨åãã§ããããå®ç¨ä¸ã¯ããã»ã©å¤§ããåé¡ã§ã¯ãªãã§ããããããããããã¯PHPã®å
¨å¤æ´ã«è¿½å¾ãç¶ããã®ã¯ç¡çã¨ãã証æ ã ã¨ãè¨ãããã§ããç¹ã«PHPã®å ´åã¯ChangeLogã«ãæ®ããããã¥ã¡ã³ãåããããªããããªç´°ããå¤æ´ãçãããªãã®ã§ãå
¨å¤æ´ãææ¡ãããã¨ããéç¾å®çããããã¾ããã
HHVMã¯PHPã®Cã½ã¼ã¹ã³ã¼ããããªãå©ç¨ãã¦ãã
åãè¦ã¤ããããéãã¯ä¸è¨ã®2ç¹ã ãã§ãããé¢é£ããä»æ§ã®è¤éããèããã¨ããããªããããåãã ã¨ããå°è±¡ã§ãã
ãã®åç¾æ§ã®é«ãã¯HHVMã®ä¸ã®äººãé å¼µã£ãææããããã¾ããããPHPã®ã½ã¼ã¹ã³ã¼ãããã¾ãåãè¾¼ãã§ããããããããããã§ãããã¨ãã°ãHHVMã®hphp/runtime/base/zend-strtod.cppãè¦ãã¨ãPHPã®Zend/zend_strtod.cããã¼ã¹ã«ãã¦ããã®ãæããã§ããã½ã¼ã¹ã³ã¼ããæµç¨ãã¦ãã¾ãã°ãããã¥ã¡ã³ãåããã¦ããªããããªä»æ§ã§ãã£ã¦ãåç¾ã§ãã¾ãããä½ãã楽ãã§ãããã§è¯ãæã§ããã
ã¾ã¨ã
- HHVMã¨PHPã®==ã«éãããããã©ãã調ã¹ã
- 2ç¹ã®éããè¦ã¤ãããã®ã®ãååäºææ§ãããã¨è¨ããã
- ã¨ã¯ãããPHPã®ç´°ããä¿®æ£ãã¹ã¦ã«è¿½å¾ã§ãã¦ããããã§ããªããã
- HHVMã¯PHPã®Cã½ã¼ã¹ã³ã¼ããããªãæµç¨ãã¦ãã
- PHPã¨ã®äºææ§ãé«ãçç±ãããããªã