Windows 2000拡張カーネル v2.6a と PHP 7.0RC7

windows.php.net - /downloads/qa/

PHP 7.0RC7が公開されたのでWindows 2000で動かそうとしてみた…。
なぜか、アプリ終了時にクラッシュしてしまうので、トレースして調べてみたところ、EventUnregister で落っこちてるので。Windows 7との挙動調べてみたところ…。スタックポインタがずれることが判明

Windows 2000Ex Windows 7
EventRegister 4 DWORDs 4 DWORDs
EventUnregister 1 DWORD 2 DWORDs
EventWrite 4 DWORDs 5 DWORDs

EventUnregister function (Windows)
REGHANDLE が QWORDの引数らしい…!
EventWrite function (Windows)
当然、EventWrite もずれる

後、UniProcessor 用の kernel32 の関数無効化が効いていない、という報告があったので、修正しました。
すみません、真ん中の2つがちゃんと機能しておらず、常に有効になっていました

Windows XP で PHP 5.5.7を動作させる実験

<?php
echo 'Current PHP Info: ' . phpinfo() . "\n";
echo 'Current PHP version: ' . phpversion();
?>

今回使ったコード

 : 略
$_ENV['USERNAME'] => Administrator
$_ENV['USERPROFILE'] => C:\Documents and Settings\Administrator
$_ENV['windir'] => C:\WINNT

PHP License
This program is free software; you can redistribute it and/or modify
it under the terms of the PHP License as published by the PHP Group
and included in the distribution in the file:  LICENSE

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If you did not receive a copy of the PHP license, or have any
questions about PHP licensing, please contact license@php.net.
Current PHP Info: 1
Current PHP version: 7.0.0RC7

実行結果。
動きましたよっと

注:PHPDBG.exeは ゲーム対応版だと動きません

次期PHPは「PHP 7」になる? | スラド デベロッパー

いつまで経ってもリリースされないPHP 6だが、PHP 6はスキップして次期バージョンはPHP 7としてリリースするという案がPHPの開発チーム内で真剣に議論されているそうだ

PHP 6.0がないと思ったらこういうことだったのね

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です