Компиляция runkit под Win32 (x64)

Moisha

специалист по муравьям
Недавно напал на пакет RUNKIT, который позволяет сделать с PHP несколько "пассов".
https://github.com/zenovich/runkit/
http://php.net/manual/ru/book.runkit.php

Захотелось сделать DLL под WIN.
Настроил среду для PHP. Взял версию PHP 5.3.8.

Наткнулся на массовые и совершенно "странные" ошибки компилятора.
Видимо они появляются как следствие неверно применённых макросов ZEND, к сожалению установить причину мне сложно.

Может быть кто-то уже имел опыт с похожим? Или подскажет куда копать?
 

fixxxer

К.О.
Партнер клуба
А какие именно ошибки, видимо, догадаться все должны.
 

Moisha

специалист по муравьям
А какие именно ошибки, видимо, догадаться все должны.
Сомневаюсь, что описание ошибок чем-то поможет. Хотя а вдруг:

1>ClCompile:
1> runkit_import.c
1>d:\haos\runkit\php\ext\runkit\runkit_import.c(43): error C2143: syntax error : missing ';' before 'type'
1>d:\haos\runkit\php\ext\runkit\runkit_import.c(44): error C2143: syntax error : missing ';' before 'type'
1>d:\haos\runkit\php\ext\runkit\runkit_import.c(50): error C2065: 'new_key' : undeclared identifier
1>d:\haos\runkit\php\ext\runkit\runkit_import.c(50): warning C4047: '=' : 'int' differs in levels of indirection from 'char *'
1>d:\haos\runkit\php\ext\runkit\runkit_import.c(51): error C2065: 'new_key_len' : undeclared identifier
1>d:\haos\runkit\php\ext\runkit\runkit_import.c(52): error C2065: 'new_key' : undeclared identifier
1>d:\haos\runkit\php\ext\runkit\runkit_import.c(52): warning C4047: 'function' : 'const char *' differs in levels of indirection from 'int'
1>d:\haos\runkit\php\ext\runkit\runkit_import.c(52): warning C4024: 'zend_hash_exists' : different types for formal and actual parameter 2
1>d:\haos\runkit\php\ext\runkit\runkit_import.c(52): error C2065: 'new_key_len' : undeclared identifier
 

tz-lom

Продвинутый новичок
./configure --enable-maintainer-zts $flags
и пересобрать РНР
 

atv

Новичок
О, кто-то взялся поддерживать ранкит, ура! Давно ждал, у самого на него виды есть.
 

Moisha

специалист по муравьям
Совершенно согласен! Троекратное ура!
Связался с автором. Автор более чем быстро отреагировал на сообщение, и даже сделал небольшой фикс по тем ошибкам.

P.S. правда теперь у меня вылезли проблемы с LINK, но пока ладно.
P.P.S. на этот раз выкрутился подменой функции в namespace, но считаю, что библиотека нужная и правильная - и должна быть частью PHP, а не расширением.
 

tony2001

TeaM PHPClub
Я могу понять, когда runkit нужен для тестов, где действительно может быть необходимо подменить функцию заглушкой на время.
Но делать это постоянно? В продакшене? По-моему, это четкий индикатор того, что у вас бааальшие проблемы.
 
  • Like
Реакции: AmdY

Moisha

специалист по муравьям
Я могу понять, когда runkit нужен для тестов, где действительно может быть необходимо подменить функцию заглушкой на время.
Но делать это постоянно? В продакшене? По-моему, это четкий индикатор того, что у вас бааальшие проблемы.
Хотя в данном случае, библиотека была нужна именно для UnitTest, но...
И мне совершенно ясно для чего и как он создавался, но...

Можно подумать, и те, кто программируют на Erlang имеют "баааальшие" проблемы.
А как по мне - изменение кода на лету, и создание контекста для выполнения - это то, что вскоре появится в языках.
И мне не ясно - почему этого нет в PHP :) (на самом деле ясно конечно)
 

tz-lom

Продвинутый новичок
покажи ка мне как ты изменяешь хоть что нибудь на Erlang
 

atv

Новичок
Ну хватит уже, говорили ведь не раз, что он полезен, как минимум, для АОП.
 

tony2001

TeaM PHPClub
на данный момент его полезность ограничивается тем, что это очень удобный инструмент для стрельбы в ногу.
 
Сверху