LINUX.ORG.RU

Подводные камни clang

 , ,


0

6

О себе

1. Я пользователь Linux

2. Лицензофобиями не страдаю (GPL vs BSD vs ...). Предпочитаю окрытые и свободные лицензии проприетарным. Могу еще перебирать лицензиями когда речь идет о библиотеке

3. Хочу писать свои Hello Worldы на С++ 11. У меня LTS версия Ubuntu с древневонючим GCC. Не хочу его менять, пусть будет как есть. Там еще ключ c++0x до сих пор, не знаю во что это мне выльется.

Для поддержки С++11 поставил Clang. Очень нравятся сообщения о ошибках и возможность настроить сильный completion.

Есть какие-то минусы у сабжа? Буду использовать для разработки всяких игрушечных серваков и СУБД чтобы качать мышцу мозга.

★★★★☆

Лол, во фре только он и остался, не считая какого-то древнего gcc (ну и gcc из портов). Правда про C++11 ничего не знаю, ведь C++ не нужен

stopitplease ()

Есть. Он иногда может валидный код не собрать, но очень редко, хотя ядро Linux он пока не может собрать, как и некоторые большие библиотеки. А вообще чтоб ошибки из кода отлавливать неплохо на двух компиляторах его собирать (clang и g++). Они оба по стандарту разрабатываются, не то что компилятор из Visual Studio или Borland-ы всякие, которые свои типы вводят и родные типы меняют.

peregrine ★★★★★ ()
Ответ на: комментарий от stopitplease

C++ нужен, это Pascal, Python, Perl, JAVA и иже с ними не нужны, нужность C# под огромным вопросом, в том виде, какой он сейчас он не нужен. А вот C, C++, Vala, LISP, LUA, BASH те нужны.

peregrine ★★★★★ ()

Нету. Всё будет ок.

KblCb ★★★★★ ()
Ответ на: комментарий от peregrine

C++

Да ладно. Ну лет 7 ему ещё от силы. Наплыв всяких жаб его снесет, я так думаю.

BASH

Тоже не нужно, так как бздунам его использовать несколько неудобно (хотя он всё равно ставится из портов, как правило, но что-то не в ходу)

stopitplease ()
Ответ на: комментарий от stopitplease

Да ладно. Ну лет 7 ему ещё от силы. Наплыв всяких жаб его снесет, я так думаю.

А почти весь системный софт (ну кроме той части которая на С) на жабу ты переписывать будешь? Как ты себе это представляешь? KDE на жабе, ты в своём уме?

mbivanyuk ★★★★★ ()
Ответ на: комментарий от stopitplease

Да ладно. Ну лет 7 ему ещё от силы. Наплыв всяких жаб его снесет, я так думаю.

Я это слышал и 5 лет назад, и 10 лет назад, и даже 15 лет назад. Поговаривают, что и 20 лет назад говорили то же самое. Да, точно: как только Java появилась и стала более-менее распространенной, так сразу C++ начали отправлять на пенсию. Да, вы не ослышались: когда значительная часть сегодняшних юзеров еще ходила в детский сад, уже тогда начали отправлять С++ на пенсию. А он по какой-то невероятной причине все не уходит и не уходит, несмотря на все заявления доморощенных «икспертов». Странно, не правда ли? © Mezomish

Браузер, с которого ты это пукнул, тоже с крестов перепишут?

EXL ★★★★★ ()
Ответ на: комментарий от stopitplease

А как же ты на JAVA что-то серьёзное напишешь? Где нужно системное программирование и горы вычислений? Ну флаг тебе в руки, я хочу на это посмотреть :)

peregrine ★★★★★ ()
Ответ на: комментарий от peregrine

Можно написать что-то очень серьезное где не нужно системное программирование и горы вычислений.

Хотя да, HDSF, Zookeeper, Hadoop, Hive, HBase, Pig, Cassandra, Wildfly, Undertow, Netty, Lucene

vertexua ★★★★☆ ()
Последнее исправление: vertexua (всего исправлений: 3)
Ответ на: комментарий от EXL

Хром перепишут на go, файрфокс на rust, ie на c#.

А Opera?

Ее закопают обратно.

tailgunner ★★★★★ ()
Ответ на: комментарий от peregrine

Никогда и не тормозило, я перечислил наиболее быстрые и масштабируемые СУБД, распределенные lock, MapReduce сервисы, распределенные ФС с самыми большими деплойментами в мире.

Множество BigData компаний, которые лопатят даже не терабайты и не думают закапывать Java

vertexua ★★★★☆ ()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

По теме - не слыхал о проблемах. Хотя проскакивало тут, что шланг не компилил валидный C++11 код, но это был edge case.

Pavval ★★★★★ ()
Ответ на: комментарий от vertexua

Если бы они были написаны на нормальных ЯП, то и работали бы в 2 раза быстрее, потребляя в 2 раза меньше ресурсов.

peregrine ★★★★★ ()
Ответ на: комментарий от peregrine

Слушай, ты будешь опять перечислять 100 раз перечисленные аргументы, которые твердят со времени зарождения IT? :) Конечно, там просто сидят дядьки тупее тебя, в Google, Yahoo, Twitter, etc ))

http://jaxenter.com/evaluating-nosql-performance-which-database-is-right-for-...

Просветляйся. Разница в архитектуре переплевывает оверхед. Две базы на жабе сделали базу на С++. Одна из них вообще работает поверх файловой системы на жабе. Когда напишишешь полностью рабочую кассандру или Hbase на С++, тогда скажем тебе спасибо

vertexua ★★★★☆ ()
Последнее исправление: vertexua (всего исправлений: 2)

У меня и гцц 4.9.0 и шланг последний. Проблем замечено не было (пара корнеркейсов, когда не компилил валидный код в стиле александреску). В продакшен я бы не стал собирать шлангом пока, а для себя или для личных проэктов им пользуюсь давно. Плюс плагины для vim и qtcreator работают через шланг. Очень удобные.

maverik ★★ ()
Ответ на: комментарий от vertexua

Сильно получше, чем пользоваться ctags или подобными. Ведь они статически разбирают код на лексемы и все. В серьезном коде половина дополнений в принципе недоступна (шаблоны, например), а другая работает абы как. Шланг, с другой стороны, компилирует текущий файл в бэкграунде и на основе AST строит ивтодополнение (qtcreator использует его так же для динамической подсветки).

maverik ★★ ()
Ответ на: комментарий от peregrine

И для своей работы они потребуют 32Гб оперативной памяти и 16 ядер по 4 Ггц каждое.

Если весь код будет managed, то можно отказаться от оверхеда на виртуальную память, может даже в итоге всё быстрее работать будет.

PolarFox ★★★★★ ()
Ответ на: комментарий от maverik

Тоесть ему по идее нужно передавать для этого парсинга те же флаги компилятора и пути. А если еще есть какая-то утилита сборки, то нужно выкручиваться наверное

vertexua ★★★★☆ ()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от vertexua

В данном случае там на жаба быстрая, а над алгоритмами долго голову ломали. И да, в одиночку кассандру и тем более бесплатно писать глупо.

peregrine ★★★★★ ()
Ответ на: комментарий от vertexua

нужно, а как ты думал? libastral еще не дописали даже до альфы.

anonymous ()
Ответ на: комментарий от vertexua

Для плагина YCM (vim) создается специальный файл в корне проекта, там указываются флаги (напр., -I. -I./include -std=c++11 и т.д.) и готово. Он автоматом подхватывает. Я использую YCM и он даже лучше, чем поддержка шланга в qtcreator. В qtcreator оно как-то само определяет, какие флаги (берет видимо из pro файла или makefile).

maverik ★★ ()
Ответ на: комментарий от vertexua

А если еще есть какая-то утилита сборки, то нужно выкручиваться наверное

Я тут не понял, что Вы хотели сказать

maverik ★★ ()
Ответ на: комментарий от vertexua

Смотрел пол-года назад, он был никакой. В зачаточном состоянии поддержа шланга есть еще в kdevelop и в неплохом состоянии в codelite. Жетбрайнс обещали запили ide типа idea но только для ++, с шлангом и автодополнением (а так же диагностиками на лету и т.п.). В этих ваших интернетах есть видео и описание. Но у них пока только приватные сборки (для записавшихся на тестирование)

maverik ★★ ()
Ответ на: комментарий от maverik

чем поддержка шланга в qtcreator.

Она разве там уже полностью рабочая? Я попробовал включать Clang Code model, как-то все тормозило и плохо дополняло (Qt Creator 3.1.0).

EXL ★★★★★ ()
Ответ на: комментарий от peregrine

Между, цитирую

это Pascal, Python, Perl, JAVA и иже с ними не нужны

и

инструмент не важен

есть большая дистанция. Инструменты нужно выбирать под задачу. Буду решать NP полную задачу, так даже OpenCL/CUDA заценю

vertexua ★★★★☆ ()
Ответ на: комментарий от maverik

Методов то тысячи, но костыли по сути и ничего не сделать.

peregrine ★★★★★ ()
Ответ на: комментарий от EXL

У меня не тормозит и дополняет норм (мб потому что конфиг более-менее мощный и я просто не замечаю). Но глючки есть. YCM + gvim наше все. Креатор я для кутишных проектов только пользую.

maverik ★★ ()
Ответ на: комментарий от peregrine

Можно считать оптимальное 1337 лет, а можно получить на 90% оптимальное за 5 минут. Выбор, как всегда, за прокладкой между решателем и стулом.

maverik ★★ ()
Ответ на: комментарий от peregrine

Managed-код работает медленнее, но при этом его можно пускать в ring 0 вместе с ядром, не тратя время на переключение контекстов и системные вызовы.

PolarFox ★★★★★ ()
Ответ на: комментарий от vertexua

А на каких задачах Python и JAVA дадут профит в скорости работы, размерах программы и т.д.? Я говорю не с точки зрения того, на чём проще писать, а с точки рассмотрения того, что при одинаковом функционале какая программа будет лучше?

peregrine ★★★★★ ()
Ответ на: комментарий от maverik

Зависит от задачи. Иногда нужно именно то оптимальное получить, которое годы будешь считать. А когда это не важно, то и 90% оптимальное годится.

peregrine ★★★★★ ()
Ответ на: комментарий от peregrine

Дайте четкое определение термина «лучше»? По скорости исполнения, потреблению памяти, скорости разработки, удобству разработки, наличия инфраструктуры (отладчики, профайлеры и т.п.)?

maverik ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.