Здравствуйте, anonymous, Вы писали:
A>>>Сочувствую боли, которую ты причинил себе. V>>У меня не было боли. A>Откуда ж ты о ней знаешь?
Потому что как и все наступил на эти раскиданные грабли, но быстро увернулся
V>>Отладил и забыл. А вот что-то серьёзное на перле писать я уже не буду. Благо есть языки получше. A>Ага, нахватаются где-то вершков про встроенные переменные, а потом язык у них виноват.
Да, виноват, потому что является поставщиком скрытых "Performance issue" и других "прелестей"
A>Другие потом читают написанный первыми код и думают: «Капец язык, ничего не понять!»
Так это недолго, скоро нечего будет читать
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
A>>>>Сочувствую боли, которую ты причинил себе. V>>>У меня не было боли. A>>Откуда ж ты о ней знаешь? V>Потому что как и все наступил на эти раскиданные грабли, но быстро увернулся
Прочувствовал, значит.
A>>Ага, нахватаются где-то вершков про встроенные переменные, а потом язык у них виноват. V>Да, виноват, потому что является поставщиком скрытых "Performance issue" и других "прелестей"
Как они могут быть скрытыми, если они явно описаны в документации? Ты пытаешься использовать возможность языка, не прочитав документацию, а потом винишь язык в том, что эта возможность работает не так, как ты себе напридумывал.
A>>Другие потом читают написанный первыми код и думают: «Капец язык, ничего не понять!» V>Так это недолго, скоро нечего будет читать
Отладил один скрипт и туда же — эксперт по умирающим языкам.
Здравствуйте, anonymous, Вы писали:
A>>>>>Сочувствую боли, которую ты причинил себе. V>>>>У меня не было боли. A>>>Откуда ж ты о ней знаешь? V>>Потому что как и все наступил на эти раскиданные грабли, но быстро увернулся A>Прочувствовал, значит.
Тебя видимо попаболь берёт, что сам мучился и продолжаешь мучаться, а другие нет
A>>>Ага, нахватаются где-то вершков про встроенные переменные, а потом язык у них виноват. V>>Да, виноват, потому что является поставщиком скрытых "Performance issue" и других "прелестей" A>Как они могут быть скрытыми, если они явно описаны в документации?
Ну я говорю, на заборе тоже много чего пишут...
A>Ты пытаешься использовать возможность языка, не прочитав документацию, а потом винишь язык в том, что эта возможность работает не так, как ты себе напридумывал.
Представь, даже не пытался использовать, просто решил проверить.
A>>>Другие потом читают написанный первыми код и думают: «Капец язык, ничего не понять!» V>>Так это недолго, скоро нечего будет читать A>Отладил один скрипт и туда же — эксперт по умирающим языкам.
Зачем мне становиться экспертом г-на?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>>>>>У меня не было боли. A>>>>Откуда ж ты о ней знаешь? V>>>Потому что как и все наступил на эти раскиданные грабли, но быстро увернулся A>>Прочувствовал, значит. V>Тебя видимо попаболь берёт, что сам мучился и продолжаешь мучаться, а другие нет
Какая разница, что там у меня? Ты ж либо на своём опыте ощущения описываешь, либо додумал, опять же основываясь на своём опыте.
A>>Как они могут быть скрытыми, если они явно описаны в документации? V>Ну я говорю, на заборе тоже много чего пишут...
Официальная документация по-твоему — забор? Ясно-понятно.
A>>Ты пытаешься использовать возможность языка, не прочитав документацию, а потом винишь язык в том, что эта возможность работает не так, как ты себе напридумывал. V>Представь, даже не пытался использовать, просто решил проверить.
Это и есть использование.
A>>Отладил один скрипт и туда же — эксперт по умирающим языкам. V>Зачем мне становиться экспертом г-на?
Здравствуйте, anonymous, Вы писали:
A>>>Прочувствовал, значит. V>>Тебя видимо попаболь берёт, что сам мучился и продолжаешь мучаться, а другие нет A>Какая разница, что там у меня? Ты ж либо на своём опыте ощущения описываешь, либо додумал, опять же основываясь на своём опыте.
а ты не на своём опыте мне свои ощущения начал приписывать?
A>>>Как они могут быть скрытыми, если они явно описаны в документации? V>>Ну я говорю, на заборе тоже много чего пишут... A>Официальная документация по-твоему — забор? Ясно-понятно.
Любая. Всё надо проверять.
A>>>Ты пытаешься использовать возможность языка, не прочитав документацию, а потом винишь язык в том, что эта возможность работает не так, как ты себе напридумывал. V>>Представь, даже не пытался использовать, просто решил проверить. A>Это и есть использование.
Нет, изначально оно не использовалось.
A>>>Отладил один скрипт и туда же — эксперт по умирающим языкам. V>>Зачем мне становиться экспертом г-на? A>Тебе виднее, зачем ты им стал?
Зачем ты бъёшь жену?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>Здравствуйте, anonymous, Вы писали:
A>>Официальная документация по-твоему — забор? Ясно-понятно. V>Любая. Всё надо проверять.
а разве можно как-то иначе?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
A>>>Официальная документация по-твоему — забор? Ясно-понятно. V>>Любая. Всё надо проверять. М>а разве можно как-то иначе?
Про то и речь, что документация здесь не особо играет рояль.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
A>>Какая разница, что там у меня? Ты ж либо на своём опыте ощущения описываешь, либо додумал, опять же основываясь на своём опыте. V>а ты не на своём опыте мне свои ощущения начал приписывать?
Я только что описал, на основании чего сделал свои выводы.
A>>>>Как они могут быть скрытыми, если они явно описаны в документации? A>>Официальная документация по-твоему — забор? Ясно-понятно. V>Любая. Всё надо проверять.
При чём тут проверка? Я бы понял тебя, если бы обнаруженное тобой поведение не соответствовало описанию. Но в этом случае не так.
V>>>Представь, даже не пытался использовать, просто решил проверить. A>>Это и есть использование. V>Нет, изначально оно не использовалось.
Но потом-то использовалось. Пробовал — значит пользовался.
V>>>Зачем мне становиться экспертом г-на? A>>Тебе виднее, зачем ты им стал? V>Зачем ты бъёшь жену?
Здравствуйте, Vain, Вы писали:
V>Про то и речь, что документация здесь не особо играет рояль.
У тебя есть описание — ты можешь его проверить. У тебя нет описания — проверять тебе нечего, кроме своих догадок. Но инструмент не виноват, что у тебя с догадками проблемы.
Здравствуйте, anonymous, Вы писали:
V>>Про то и речь, что документация здесь не особо играет рояль. A>У тебя есть описание — ты можешь его проверить.
Я проверяю код а не описание, что за чушь?
A>У тебя нет описания — проверять тебе нечего, кроме своих догадок. Но инструмент не виноват, что у тебя с догадками проблемы.
Бред сивой кобылы
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, anonymous, Вы писали:
A>>>Какая разница, что там у меня? Ты ж либо на своём опыте ощущения описываешь, либо додумал, опять же основываясь на своём опыте. V>>а ты не на своём опыте мне свои ощущения начал приписывать? A>Я только что описал, на основании чего сделал свои выводы.
Прочувствовал, значит.
Тут нет оснований, одни догадки.
A>>>>>Как они могут быть скрытыми, если они явно описаны в документации? A>>>Официальная документация по-твоему — забор? Ясно-понятно. V>>Любая. Всё надо проверять. A>При чём тут проверка? Я бы понял тебя, если бы обнаруженное тобой поведение не соответствовало описанию. Но в этом случае не так.
Самое лучшее описание это проверенное тобой лично, что я и сделал.
V>>>>Представь, даже не пытался использовать, просто решил проверить. A>>>Это и есть использование. V>>Нет, изначально оно не использовалось. A>Но потом-то использовалось. Пробовал — значит пользовался.
Ты читать умеешь? Написал же что решил проверить.
V>>>>Зачем мне становиться экспертом г-на? A>>>Тебе виднее, зачем ты им стал? V>>Зачем ты бъёшь жену? A>Это не я.
Т.е. кто-то бъёт твою жену, а ты просто смотришь?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
A>>>>Какая разница, что там у меня? Ты ж либо на своём опыте ощущения описываешь, либо додумал, опять же основываясь на своём опыте. V>>>а ты не на своём опыте мне свои ощущения начал приписывать? A>>Я только что описал, на основании чего сделал свои выводы. V>Прочувствовал, значит. Тут нет оснований, одни догадки.
Ты вообще читаешь, прежде чем ответить? Я специально для тебя цитирование оставил.
A>>При чём тут проверка? Я бы понял тебя, если бы обнаруженное тобой поведение не соответствовало описанию. Но в этом случае не так. V>Самое лучшее описание это проверенное тобой лично, что я и сделал.
Демагогия.
A>>Но потом-то использовалось. Пробовал — значит пользовался. V>Ты читать умеешь? Написал же что решил проверить.
Ну. Пользовался.
V>>>>>Зачем мне становиться экспертом г-на? A>>>>Тебе виднее, зачем ты им стал? V>Т.е. кто-то бъёт твою жену, а ты просто смотришь?
Нет, кто-то пытается уйти от обсуждения своей экспертной области.
Здравствуйте, Vain, Вы писали:
A>>У тебя есть описание — ты можешь его проверить. A>>У тебя нет описания — проверять тебе нечего, кроме своих догадок. Но инструмент не виноват, что у тебя с догадками проблемы. V>Бред сивой кобылы
Здравствуйте, anonymous, Вы писали:
A>>>У тебя есть описание — ты можешь его проверить. A>>>У тебя нет описания — проверять тебе нечего, кроме своих догадок. Но инструмент не виноват, что у тебя с догадками проблемы. V>>Бред сивой кобылы A>Так себе аргумент.
когда чушню пишут — нормальный
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, anonymous, Вы писали:
A>Не знаю. Могу только предположить, что оптимизация именно этих выражений, как часто используемых. Точнее второго: движок сразу понимает, что смотреть нужно конце, а не проверять, тянется ли найденное совпадение до конца.
A>Вот это уже не будет так работать: A>
Здравствуйте, anonymous, Вы писали:
A>>>При чём тут проверка? Я бы понял тебя, если бы обнаруженное тобой поведение не соответствовало описанию. Но в этом случае не так. V>>Самое лучшее описание это проверенное тобой лично, что я и сделал. A>Демагогия.
лучше чем твой тупенький троллинг
V>>>>>>Зачем мне становиться экспертом г-на? A>>>>>Тебе виднее, зачем ты им стал? V>>Т.е. кто-то бъёт твою жену, а ты просто смотришь? A>Нет, кто-то пытается уйти от обсуждения своей экспертной области.
нет, кто то пытается троллить и не выходит
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Казалось бы тут можно оптимизировать и остановиться сразу как нашли начало, однако '.' означает всё кроме (в зависимости от флагов) символа новой строки.
И получаем полное сканирование входной строки.
Здравствуйте, Кодт, Вы писали:
К>Движок регекспа запнулся и устроил квадратичный забег с откатами.
Строго говоря, не регекспом, а плохим движком, в чём они честно и признаются: "simple backtracking Regex engine". Это всё ещё поди в похапе каком-нибудь было. Сам по себе регексп вполне нормальный, автоматный. А вот креативные движки, чтобы любая кухарка за пять минут сделала себе магазин и бложег — зло. Особенно когда на них делают нагруженные сайты. Особенно "дванольные", "динамические" бесят: зайдёшь на курсеру или хакерранк, откроешь несколько страниц — и сразу и лиса и хром хоть на атоме хоть на i5 пухнут и дохнут, затыкая весь брафсер (лиса) пока не прочухаются. Чем статика не устраивает? Обязательно что-нибудь должно попукивать и похрюкивать?
Мне как-то знакомая кидала ссылку на сайтик, который слабала на каком-то доморощенном "портале" викс с конструктором: там на дефолтном заднем плане звёзды летят, он практически весь закрыт собственно страничкой, на несколько пикселей торчит, но это не мешает движку их таки отрисовывать (хотя потом и не показывать), видимо, попиксельно, а то ещё и с рей-трейсингом, скорее всего на жабаскрипте. "Хлебнули мы ещё фанты — и тормознули автобус с омоном крутейший i5 с 16 гигами оперативы".
Здравствуйте, мыщъх, Вы писали:
К>>>Мы же понимаем, как легко это делается регекспами: s/\s+$// М>начнем с того, что \s это не только пробел, но и табуляция. жду рабочего примера на асме или си.
На С — легко, если только ASCII, то есть быстрый макрос isspace, помним позицию последнего непробельного, если уткнулись в педаль — перекидываем туда позицию для дальнейшего вывода.
М> да, кодировки могут быть разные.
Кодировки в этот момент обычно не должны сильно парить, строка уже должна без кодировок в четырёхбайтном представлении быть. Если Вы, конечно, не разработчик извращений типа Julia, где внутреннее представление UTF-8. При этом проверка на пробельность чуть сложнее, но всё равно за константу, причём уже наверняка реализована, потому алгоритм не меняется.
М> при этом желательно чтобы по времени разработки и по наглядности кода вы не сильно отличались от регулярки.
Наглядность — это фор хум хау. Вы репорт читали? Там таки кошмарненький исходный регексп, это они уже для ясности упростили. Ну и вызов функции trim гораздо более нагляден.
М> ну а производительность регулярок -- гуглим статьи Russ Cox'a. так что проблема не в регулярках, а в реализациях.
+1, и надо будет почитать на досуге.
М> почему в популярных языках используются такие реализации -- это другой вопрос.
Почему серьёзные сайты делают на "популярных языках" — это ещё более другой вопрос