Как стать автором
Обновить

Комментарии 17

а почему :.: ? Почему не ..:. , например? Любите симметрию?)

Почему именно точки? Есть же другие символы.

Варианты с точками с меньшей вероятностью будут вызывать коллизии в легаси пхп коде.

Любые другие символы, увы, уже используются так или иначе в более сложных конструкциях и парсинг будет более сложным - следовательно скажется на производительности вм.

Вероятно еще и размеры самих символов в таблице могут иметь значение, читаемость, семантика и что там еще волнует разработчиков языков и компиляторов к ним)

@,#,^,~ вроде вообще не используются.

Вероятно еще и размеры самих символов в таблице могут иметь значение, читаемость, семантика и что там еще волнует разработчиков языков и компиляторов к ним)

Не думаю, что большое количество точек позитивно скажется на читаемости.

Ну вообще, все эти символы задействованы и парсеру известны. :)

@ — Error Control Operator
# ­— Комментарий
^ И ~ — Побитовые операции. XOR и отрицание соответственно.

В самом деле. Никогда не встречал, чтоб в php экранировали решеткой.

мало того, сейчас через решетку пишутся атрибуты

Но для начала хотя бы знать, для каких операций они будут нужны.

Нужно выбрать вариант оператора, а операцию придумаем! =)

По поводу структур данных.

С удивлением обнаружил что есть WeakMap, но нет WeakHashMap что сильно сужает количество кейсов для создания например кеша на основе WeakReference'ов.

Очень странное решение!

А почему нельзя сделать кеш на основе WeakMap или массива WeakReference'ов? Последнее разве и не будет WeakHashMap?

array<array-key,WeakReference<T>> -- GC будет чистить значение внутри WR, а сам массив будет расти потихоньку (если его не чистить руками, но в чём тогда смысл брать WR).

А на основе WeakMap -- там же объекты в ключах, значит идентификатор кешируемого объекта будет в значении, т.е. надо будет итерироваться чтобы найти нужное, т.е. O(n).

Ну для небольших карт это прокатит, но в целом решение не масштабируемое.

Кажется мы обсуждаем операторы игры тетрис...

tuqqu/go-parser — Парсер Golang на PHP 8.1. Транслирует Golang-код в AST. Применение пока не ясно.

Как вариант написание неких лямбда функций в админке, чтоб потом быстро выполнять какие-то операции. Эта библиотека может подойти для валидации кода, чтоб не запускать отдельно линтеры и билдер Go.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории