The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Открыт код C++ компилятора Zapcc, opennews (?), 18-Июн-18, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


12. "Открыт код C++ компилятора Zapcc"  +2 +/
Сообщение от Crazy Alex (ok), 18-Июн-18, 12:43 
А в чём проблема, собственно?
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

21. "Открыт код C++ компилятора Zapcc"  –3 +/
Сообщение от Xasd (ok), 18-Июн-18, 13:01 
в том что есть подозрение что там наделали кучу ошибок и дыр, при реализации такого подхода.

компилятор это и без того сложная программа -- а уж висеть перманентно в памяти и резделять память между различными процессами-и-пользователями (в том числе непривилигерованными) -- это просто открывает новый вектор непросветных дыр!

точно ли они там нет проблем с гонками конкурентно-работающих процессов? а если проблему с гонами какой-то из пользователей пытается вызвать сознательно -- точно ли не удасться это ему? и точно ли компилятор вообще проверяет привелегии различных пользователей компьютера?

а точно ли там в конце-концов -- нет утечек памяти?

точно ли получаемый на выходе результат -- является ровно одинаковым по сравнению с тем как если бы компилятор был был запущен в первый раз без кэша?

слишком много "если" для того чтобы предположить что они там не накосячили.

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

# P.S.: а зачем вообще думать про безопасность компьютера разработчика? ответ -- наверно чтобы было поменьше вот таких инцидентов -- https://www.opennet.ru/opennews/art.shtml?num=48786

Ответить | Правка | Наверх | Cообщить модератору

32. "Открыт код C++ компилятора Zapcc"  –2 +/
Сообщение от Anonymoustus (ok), 18-Июн-18, 13:29 
Вообще любые кеши — зло по определению. Ибо делают согласованность (в широком смысле слова), мягко говоря, весьма иллюзорной.
Ответить | Правка | Наверх | Cообщить модератору

95. "Открыт код C++ компилятора Zapcc"  +1 +/
Сообщение от Аноним (-), 18-Июн-18, 19:11 
кто-то не смог в теорию графов
Ответить | Правка | Наверх | Cообщить модератору

120. "Открыт код C++ компилятора Zapcc"  +/
Сообщение от Аноним (120), 19-Июн-18, 06:50 
А вы не смейтесь, нам на экономическом вышку совсем по другому преподавали, так что потом приходилось самостоятельно все учить.
Ответить | Правка | Наверх | Cообщить модератору

103. "Открыт код C++ компилятора Zapcc"  –1 +/
Сообщение от Vkni (ok), 18-Июн-18, 20:32 
> Вообще любые кеши — зло по определению. Ибо делают согласованность (в широком смысле
> слова), мягко говоря, весьма иллюзорной.

Кеши вещь нормальная и хорошая. Но вот компиляторы обычно пишутся в расчете на однопоточную компиляцию ровно одного исходника. Отсюда глобальные переменные в полный рост, потери памяти и т.д.

Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

146. "Открыт код C++ компилятора Zapcc"  –1 +/
Сообщение от cutlass (?), 20-Июн-18, 05:09 
там где есть конкурирующие процессы согласованность всегда иллюзорна.
Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

53. "Открыт код C++ компилятора Zapcc"  +/
Сообщение от Orduemail (ok), 18-Июн-18, 14:39 
> а если проблему с гонами какой-то из пользователей пытается вызвать сознательно -- точно ли не удасться это ему?

Прежде чем обсуждать угрозы, надо представить себе модель атаки. Вот допустим, я в своей домашней генте поставил этот самый zapcc в качестве CXX. И как должна быть организована атака? Кто-то должен выполнить произвольный код на моём компе, чтобы отправить в zapcc запущенном из под рута что-то там на компиляцию? Если на моём компе выполняется чей-то произвольный код, то ему проще не дожидаться, когда я поправлю CXX, а сделать что-нибудь интереснее, например, прописать в ~/.bashrc какой-нибудь интересный alias на su/sudo, чтобы когда мне захочется получить права рута, эти права достались бы и вредоносному коду тоже. Или если хочется извращений, то можно подменить весь сервер zapcc, а не обращаться к существующему -- всего-то надо прибить старый и запустить новый.

Или может у меня фантазии недостаточно, и есть какой-нибудь способ использовать этот zapcc без выполнения произвольного кода? А! Точно! Я придумал. Если сервер запустить на хорошем и мощном компьютере, а emerge на слабом и тупом, то zapcc позволяет избавиться от distcc. Но тут встанет вопрос как их безопасно связать, чтобы никто не вмешался... Но, всё же, я бы не стал на месте разрабов компилятора заморачиваться этой хнёй, достаточно дать возможность пользователю соорудить ssh-тоннель между сервером и клиентским компом, и пускай пользователь сам следит за правами доступа так, как он считает нужным.

> и точно ли компилятор вообще проверяет привелегии различных пользователей компьютера?

Если интересно, загляни, посмотри. Зачем гадать? Как по мне, тут не проверки нужны, а что-нибудь типа передачи сборочных команд серверу через unix-сокет с правами по умолчанию 0600: я вообще не вижу никаких юзкейсов для сборки, которая идёт из под нескольких пользователей одновременно.

> а точно ли там в конце-концов -- нет утечек памяти?

Утечки памяти -- это плохо, но если за счёт утечек памяти достигается ускорение сборки в несколько раз, то я за утечки памяти. В конце-концов, не сложно и перезапустить раз в сутки.

> а зачем вообще думать про безопасность компьютера разработчика?

Если разработчик со скуки клонирует рандомные репы и делает в них make, то ему никакой компилятор не поможет против rm -rf ~/*, затесавшимся промежь прочих команд в одном Makefile'ов.

> точно ли получаемый на выходе результат -- является ровно одинаковым по сравнению с тем как если бы компилятор был был запущен в первый раз без кэша?

Вот это интересный вопрос. В C/C++ есть куча способов получать разные результаты компиляции, выполняя include из разных контекстов, и действительно интересно, как этот компиль справляется с отслеживанием контекста.

Ещё интересно, как он будет справляться с перекомпиляцией сорцов после внесённых изменений. Насколько успешно он отслеживает зависимости или изменение одной строки в одном файле приводит к сбросу кеша в ноль и пересборке с нуля? С одной стороны -- это не его забота, этим должна заниматься система сборки, а с другой стороны не совсем не его, он мог бы делать это эффективнее, чем система сборки.

Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

102. "Открыт код C++ компилятора Zapcc"  +4 +/
Сообщение от Vkni (ok), 18-Июн-18, 20:29 
> компилятор это и без того сложная программа -- а уж висеть перманентно в памяти и резделять память между различными процессами-и-пользователями (в том числе непривелигированными) -- это просто открывает новый вектор непросветных дыр!

Категорически поддерживаю. Я с одной стороны видел потроха разных компиляторов, где даже в самых разумных вариантах есть глобальные переменные. То есть, имеется довольно сложное и непрозрачное состояние, которое может приводить к ошибкам, если нет сброса между компиляциями разных файлов.

А с другой стороны, я недавно имел дело с гoвнoкомпилятором фирмы Борланд (Эмбаркадеро), который страшным образом глючил при компиляции всего проекта, но прекрасно переваривал тот же проект, компилируя файлы по-отдельности.

Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

145. "Открыт код C++ компилятора Zapcc"  +/
Сообщение от Вареник (?), 20-Июн-18, 03:23 
> А с другой стороны, я недавно имел дело с гoвнoкомпилятором фирмы Борланд
> (Эмбаркадеро), который страшным образом глючил при компиляции всего проекта, но прекрасно
> переваривал тот же проект, компилируя файлы по-отдельности.

Я однажды столкнулся с их IDE/компиллятором Kylix (Borland C++ для Linux). Это было настолько глючное нечто, что путало точки с запятыми, если в переменных окружающей среды поменялась локализация (т.е. локаль не C/POSIX). Могло выдавать непонятную ошибку, но не выдавать ее после добавления в исходник нескольких пробелов в произвольном месте.

И этот "продукт" Borland продавал как продакшн релиз за тысячи долларов...

Ответить | Правка | Наверх | Cообщить модератору

158. "Открыт код C++ компилятора Zapcc"  +/
Сообщение от Vkni (ok), 22-Июн-18, 07:00 
> Я однажды столкнулся с их IDE/компиллятором Kylix (Borland C++ для Linux).

Ну это даже значительно хуже, чем обычно.

Но вот Трубо Паскакаль у них был отличным. Даже на ХТ компилировал очень быстро.

Ответить | Правка | Наверх | Cообщить модератору

136. "Открыт код C++ компилятора Zapcc"  +1 +/
Сообщение от Аноним (136), 19-Июн-18, 16:07 
Я тоже всегда говорил - нефиг писать программы. А то мало ли чего можно понаписать. Кучу ошибок наделать и дыр. Лучше вообще ничего не делать - так оно лучше будет.
Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

151. "Открыт код C++ компилятора Zapcc"  +/
Сообщение от Andrey Mitrofanov (?), 20-Июн-18, 10:52 
> Я тоже всегда говорил - нефиг писать программы. А то мало ли
> чего можно понаписать. Кучу ошибок наделать и дыр. Лучше вообще ничего
> не делать - так оно лучше будет.

+много!  Надо держаться,

Ответить | Правка | Наверх | Cообщить модератору

153. "Открыт код C++ компилятора Zapcc"  +1 +/
Сообщение от Anonymoustus (ok), 20-Июн-18, 11:28 
«Денег нет, но вы держи́тесь».
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру