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

  • Автор темы Автор темы Moisha
  • Дата начала Дата начала

Moisha

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

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

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

Может быть кто-то уже имел опыт с похожим? Или подскажет куда копать?
 
А какие именно ошибки, видимо, догадаться все должны.
 
А какие именно ошибки, видимо, догадаться все должны.

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

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
 
О, кто-то взялся поддерживать ранкит, ура! Давно ждал, у самого на него виды есть.
 
Совершенно согласен! Троекратное ура!
Связался с автором. Автор более чем быстро отреагировал на сообщение, и даже сделал небольшой фикс по тем ошибкам.

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

Хотя в данном случае, библиотека была нужна именно для UnitTest, но...
И мне совершенно ясно для чего и как он создавался, но...

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