Веб-версияОткрыть в Telegram
KKPHP (unofficial)

KPHP (unofficial)

@kphp_chat · группа · Технологии · в индексе с 2026-07-17
154участников
4 911сообщений в индексе
    1. A
      Приеду домой попробую
    2. A
      И вот получается надо будет поменять этот файл и скомпилировать?
Вся ветка · 3 ответа →
  1. A
    Заранее спасибо за помощь
Вся ветка · 2 ответа →
A
А я могу в теории на kphp написать ОС
  1. A
    В текущем виде kPHP почти полностью повторяет семантику PHP и рассчитывает на то, что под ним уже есть ОС. Так что нет Можно ли теоретически что-то сделать, чтобы это стало возможным? Можно, но да, смотри сообщение выше
Вся ветка · 1 ответ →
  1. E
    в моем случае, проц не поддерживал pclmul и sse4.2
Вся ветка · 2 ответа →
E
ну да, чатжпт справился с этим
A
Коллеги, есть вопрос. у меня что-то компилер стал внезапно крешиться. в компилере никаких изменений не делал, только в целевом приложении рефакторинг на интерфейсах и классах был. Куда копать? что его так распупыривает? (gdb) #2 0x00000000004f4f05 in on_compilation_error (description=description@entry=0x8e6ff6 "index >= 0", file_name=file_name@entry=0x8e6f88 ".../kphp/./compiler/utils/idmap.h", line_number=line_number@entry=56, full_description=full_description@entry=0x8e6f30 "invalid index of IdMap: -1 (maybe you've forgotten to pass a function to stream?)", assert_level=assert_level@entry=FATAL_ASSERT_LEVEL) at ../kphp/compiler/stage.cpp:65 65 abort(); [pid 14179] [time 1782604908] SIGABRT caught, terminating program [pid 14179] [time 1782604908] errno = Inappropriate ioctl for device [pid 14179] [time 1782604908] ------- Register Values ------- [pid 14179] [time 1782604908] RIP=0x00007958F5AB300B RSP=0x00007FFF6B58EEC0 RBP=0x00007FFF6B58F1F0 RDI=0x0000000000000002 RSI=0x00007FFF6B58EEC0 RDX=0x0000000000000000 RCX=0x00007958F5AB300B R8=0x0000000000000000 R9=0x00007FFF6B58EEC0 R10=0x0000000000000008 RBX=0x00007958F5A6B840 RAX=0x0000000000000000 CR2=0x0000000000000000 R11=0x0000000000000246 R12=0x00007958F5C5D6A0 R13=0x00007FFF6B58F180 R14=0x00000000008E6F30 R15=0x00007FFF6B58F190 [pid 14179] [time 1782604908] ------- Stack Backtrace ------- ...kphp/objs/bin/kphp2cpp[0x7ec2dd] ...kphp/objs/bin/kphp2cpp[0x7ecb16] /lib/x86_64-linux-gnu/libpthread.so.0(+0x14420)[0x7958f5fc2420] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7958f5ab300b] /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7958f5a92859] ...kphp/objs/bin/kphp2cpp[0x4f4f05] ...kphp/objs/bin/kphp2cpp[0x68e34c] ...kphp/objs/bin/kphp2cpp(_ZN32FilterOnlyActuallyUsedFunctionsF9on_finishER10DataStreamI2IdI12FunctionDataEE+0x7af)[0x68f7af] ...kphp/objs/bin/kphp2cpp(_ZN16PipeWithProgressI32FilterOnlyActuallyUsedFunctionsF10DataStreamISt4pairI2IdI12FunctionDataESt6vectorIN24CalcActualCa
  1. A
    interface IHaveSetLog { /** * @param callable(string):void $handler * @return void */ public function setLog(callable $handler); } class Proxy implements IHaveSetLog { /** @var IHaveSetLog */ protected $wrapped; public function __construct(IHaveSetLog $wrapped) { $this->wrapped = $wrapped; } public function setLog(callable $handler) { $this->wrapped->setLog($handler); } } class A extends Proxy { /** * @var callable(string):void */ private $log; public function setLog(callable $handler) { $this->log = $handler; $this->wrapped->setLog(function ($s) { echo $s."\n"; }); } } нашёл! что я делаю не так?? kphp test.php Starting php to cpp transpiling... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fatal error at stage: Calc throws and body value, gen by idmap.h:56 unknown file:0 invalid index of IdMap: -1 (maybe you've forgotten to pass a function to stream?) Compilation failed. It is probably happened due to incorrect or unsupported PHP input. But it is still bug in compiler. [pid 2916226] [time 1782608369] SIGABRT caught, terminating program [pid 2916226] [time 1782608369] errno = No such file or directory [pid 2916226] [time 1782608369] ------- Register Values ------- [pid 2916226] [time 1782608369] RIP=0x00007D9850C9EB2C RSP=0x00007FFEBE743CE0 RBP=0x00007FFEBE743D20 RDI=0x00000000002C7F82 RSI=0x00000000002C7F82 RDX=0x0000000000000006 RCX=0x00007D9850C9EB2C R8=0x0000000000000000 R9=0x0000000000000000 R10=0x0000000000000008 RBX=0x00000000002C7F82 RAX=0x0000000000000000 CR2=0x0000000000000000 R11=0x0000000000000246 R12=0x0000000000000006 R13=0x00007FFEBE743E80 R14=0x0000000000000016 R15=0x0000000000000051 [pid 2916226] [time 1782608369] ------- Stack Backtrace
      1. A
        Для интерфейсов и обычного отрабатывает, там был фикс для меня от Саши. но тут callable и на нем ломается. Но мог бы сказать "не понимаю тип", а тут креш..
Вся ветка · 3 ответа →
A
вопрос: is_subclass_of() Я хочу опять чудного: 1. есть метод с дженериком 2. Я хочу сделать ветвление: когда целевой тип никак не является наследником аргумента , то сделать специальную обработку. /** * @param class-string<T> $resultClass * @return T[] * @kphp-generic T:IDataObject */ function select(string $resultClass, IDataObject $object):array { if ( !($object instanceof $resultClass )){ return new Wrapper(object); } return instance_cast($object, $className); } конструкция, как я хочу не сработает. Какие есть варианты? Хочется прибрать логику под фасад, а то постоянно забываю как делать хитрые выборки.
Y
Капча в 2050 году: чтобы доказать, что вы не робот, пожалуйста своим действием или бездействием причините вред другому человеку
  1. Y
    Можно пожалуйста пояснительную бригаду?
Вся ветка · 2 ответа →
A
вопрос: режим сборки "lib" и FFI совместимы? а то при попытке собрать "по быстрому" в режиме библиотеки словил error: invalid use of incomplete type 'struct libserver::C$FFI$Scope' на этапе С++ сборки. и тоже самое invalid use of incomplete type 'struct libserver::C$CompileTimeLocation' то есть то что автогенерится

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем