1.1, Аноним (1), 11:14, 06/12/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Я одного не могу понять, а почему Гугл НЕ создал эту программу открытой изначально?
| |
|
2.3, Аноним (3), 11:20, 06/12/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
наверно потому, что сам он этого не делал, а опять купил, как и ВСЕ остальные проекты? Да-да, даже нынешний поисковик гугла - купленный.
| |
|
|
|
5.45, Аноним (45), 17:27, 07/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
Если пройтись по ссылкам из таблицы, там написано, что наработки купленных текстовых поисковиков использовались только для вычисления рейтинга для сортировки результатов.
| |
|
6.47, anonimous (?), 01:08, 08/12/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Если пройтись по ссылкам из таблицы, там написано, что наработки купленных текстовых поисковиков использовались только для вычисления рейтинга для сортировки результатов.
Это как-бы в поисковике самое главное. Остальное это робот для выкачки файлов по ссылкам.
| |
|
7.48, Аноним (48), 02:25, 08/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
В Гугле главное — это децентрализация. Он смог подняться благодаря тому, что за поиск отвечал не один-единственный супермощный и дорогой сервер, как у той же Альтависты, а скачанные страницы и индексы были с самого начала разбросаны по почти десятку разнородных машин (и интелы, и спарки, и пауэры). Чтобы угнаться за ростом Интернета, ему достаточно тупо докупать новые сервера для датацентров. Их уже миллионы.
| |
|
|
|
|
|
2.5, Аноним (5), 11:23, 06/12/2020 [^] [^^] [^^^] [ответить]
| +10 +/– |
А с чего им делиться с конкурентами полезными наработками, в которые они вложили деньги? А вот когда оно стало ненужно или полезность не оправдала ожиданий - выкидываешь в опен сорс - кушайте, не обляпайтесь. Гугл теперь выглядит белым и пушистым - "поделился", а поддерживают пусть кто хочет своими силами. Бонус поинты за рализ только сырцов без документации и инструментов сборки - вроде и открыли, а долбиться никто не захочет.
| |
|
3.24, Аноним (24), 19:47, 06/12/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вы правы, но это лучше чем ничего. Когда даже уже древнее ПО все еще не хотят открывать это грустно, кому-то да может понадобиться...
| |
|
2.12, погроммист (?), 13:03, 06/12/2020 [^] [^^] [^^^] [ответить]
| +9 +/– |
В компаниях вроде гугла используется тонна внутренних сервисов и библиотек: от собственной системы сборки и CI, до собственной VCS и диалекта ЯП. Оно сильно интегрировано между собой, что даёт серьезный буст производительности разработчикам, но затрудняет открытие сорцов. Нужно потратить уйму времени на рутинное отвязывание кода от всего этого NIH добра, а также настроить синхронизацию внешнего кода с внутренней монорепой, выделить человека для связи с общественностью (категоризацию багов, внешнего код ревью).
| |
2.15, Аноним (15), 13:42, 06/12/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Дав ваще беспредел! Скрывают от сообщества сырые неюзабельные прототипы без документации!
| |
|
|
2.13, погроммист (?), 13:11, 06/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
Его вроде можно и к GCC >= 9.0 прикрутить (но я не пробовал). См. man gcc /-fsanitize-coverage=
| |
|
1.20, Аноним (20), 17:15, 06/12/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
>version = subprocess.check_output(
[current_path + "/setup_utils/check_libfuzzer_version.sh", libfuzzer])
вот у вас питон есть, зачем всякое говно через subprocess вызывать?
| |
|
2.21, Аноним (21), 17:49, 06/12/2020 [^] [^^] [^^^] [ответить]
| –4 +/– |
Как это ни удивительно, некоторые вещи проще и адекватнее делать на шелле. А главное быстрее. Когда это что-то сложнее запустить 1-2 программы и сравнить полтора значения, тут уже возможны варианты.
| |
|
3.32, Аноним (31), 07:19, 07/12/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
В вызываемом там скрипте не делается ничего такого, что на питоне не ложится в сравнимое или меньшее количество строчек. Просто поиск текста в выводе objdump.
| |
|
4.33, Аноним (21), 07:24, 07/12/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Зачем из питона вызывать шел с питоном (ну или без шела)? Нужен более многострочный и менее читаемый вариант? Нормальный, не вызывающий отвращения вариант аналогичного кода, будет значительно больше. И он будет менее удобен для сопровождения.
| |
|
|
2.25, Вадик (??), 19:55, 06/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
А чего сюда-то писать, можно же прямо к ним с этим придти и с коммитом если считаешь что неправильно.
| |
|
3.26, Аноним (20), 21:06, 06/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
1. Зачем мне выполнять за Гугл его работу?
2. ... с перспективой получить ответ "и без твоего PR прекрасно жили"?
| |
|
4.35, VALERII (?), 09:43, 07/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
А мне интересно как можно проверить на Питоне или другом языке следующее:
# libfuzzer = /path/to/libFuzzer*.a
if objdump -t "$libfuzzer" | grep "LLVMFuzzerRunDriver" > /dev/null; then
echo "up-to-date"
else
if objdump -t "$libfuzzer" | grep "__sanitizer_cov_8bit_counters_init" > /dev/null; then
echo "outdated-recoverable"
else
echo "outdated-unrecoverable"
fi
fi
| |
|
5.42, Ordu (ok), 12:50, 07/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
Можно попробовать сделать dlopen, и получить адрес символа -- если адреса не нашлось, значит символа нету. Правда это в C, в пайтоне, наверное, всё немного иначе.
| |
5.46, Аноним (20), 23:05, 07/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
from pathlib import Path
libfuzzer = next(Path("/path/to").glob("libFuzzer*.a"))
import sh
odt = sh.Command("objdump").bake(t=True)
ls = odt(libfuzzer).splitlines()
def chk(sym, msg):
for l in ls:
if l.find(sym) > -1:
print(msg)
sys.exit(0)
chk("LLVMFuzzerRunDriver", "up-to-date")
chk("__sanitizer_cov_8bit_counters_init", "outdated-recoverable")
print("outdated-unrecoverable")
| |
|
|
7.50, Аноним (50), 23:44, 08/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
sh не обязательно ставить, можно обойтись subprocess, просто как через subprocess делается я навскидку не скажу.
| |
7.51, Аноним (50), 23:51, 08/12/2020 [^] [^^] [^^^] [ответить]
| +/– |
Насчёт "то же самое" - зато извращаться не приходится с грепами. С чуть более сложным скриптом извращаться пришлось бы с седами авками и ксаргами и expr. Плюс можно избавиться от лишних процессов. При желании можно заюзать elfutils, и получать инфу вообще без парсинга вывода консольки в структурированном виде. Или наоборот можно заморочиться и сделать правильный парсер вывода без false-positiveов.
| |
|
|
|
|
|
|
|