LINUX.ORG.RU

Будущее g++

 ,


0

2

Привет. Были разговоры, что шланг заменит ГЦЦ. Вот смотрю на g++, он активно пилится, оперативно внедряются всякие плюшки из новых стандартов, не похоже как-то на агонию. Может мне не повезло, но для крестов я так и не встретил ни одной нормальной tag системы, а кодить без неё удовольствие сомнительное. Шланг решил эту проблему, дав возможность комфортного, крестового кодописания. Вопрос - зачем нужен g++, если рядом должен быть установлен Шланг? Зачем вообще gcc тратит силы на g++, может лучше вообще забросить и отдать кресты в руки шланга? Просто интересно, ведь пилить компилятор - не самое простое занятие, да ещё и бессмысленное учитывая то, что g++ без шланга неполноценен. О чём они там в ГЦЦ думают? Может я просто не умею голый g++ (без шланга)?

★★

Ответ на: комментарий от monk

Так в линуксе одновременно несколько версий libc даже не бесплатно сложно поставить

«Ад dll» в Windows и те же проблемы в Linux.

Проблемы «Windows» vs «Linux».
А можно и так: проблемы «Linux» vs «Windows».

Суть от этого не меняется.

Владимир

anonymous
()

Привет. Были разговоры, что шланг заменит ГЦЦ.

Среди дошколят - да.

Вот смотрю на g++, он активно пилится, оперативно внедряются всякие плюшки из новых стандартов, не похоже как-то на агонию.

А теперь смотрим на шланг. Развития ноль.

Может мне не повезло, но для крестов я так и не встретил ни одной нормальной tag системы

tag

крестов

Явные проблемы с пониманием темы.

Шланг решил эту проблему

Опять же - сильное заявление.

Вопрос - зачем нужен g++, если рядом должен быть установлен Шланг?

Ну не знаю даже. гцц всего то в 2-3 раза собирает код, его оптимизатор на порядок лучше и мощнее, фичей в нём больше, он развивается быстрее, его «сообщения» об «ошибках» на голову выше. А ну и он не сегфолтится каждые 5 минут.

Действительно, зачем всё это нужно. Не нужно ведь.

Зачем вообще gcc тратит силы на g++

Наверное затем, что без гцц не существует ни си ни крестов?

может лучше вообще забросить и отдать кресты в руки шланга?

Ну от советов эникеев никто никогда не отказывался. Надо будет спросить - займись этим.

Может я просто не умею голый g++

Может ты просто не умеешь ни в кресты, ни в компилятор. А познания твои ограничены лабой и педалью?

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

То, что IDE с clang могут сжирать гигабайты оперативы это нифига не преимущество.

Всем на это насрать. Зачем вы постоянно повторяете эту нелепую чушь? Это не является проблемой.

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

Сурово. Интересно, как выглядет процесс? Какую-то tag систему используешь? Все, что смотрел, ничего не знало о scope’ах, всё попадало в одну большую глобальную помойку. Вполне сносно для Си, но для плюсов неудобно. Автокомплит, удобный сигнатур хелп?

Я не риторически, может ты меня убедишь и я сам начну обходиться без шланга.

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

Ага, и запилить g++ в виде либы

Про libgccjit слышал? Ну вот иди почитай - меньше будешь позориться в интернете.

по аналогии с libclang

Тоже изучи тему перед тем как балаболить что-то в интернете. libclang говно.

А потом почитай про clangd и почему пилится он. Там тебе расскажут и про libclang и про то, что никаких птушным ide никакой libclang не нужен даже в том примитивном виде, что он есть сейчас.

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

разве эти два компилятора не являются уже зрелыми и полнофичастыми?

Нет. Познания тутошних эникеев поражает воображение.

Портировать на новую платформу?

Разве эникей вообще какие-то платформы видел? Нет. Ну и о чём разговор.

Читая ту дичь, которую они предлагают

Чего ты там можешь читать, да и о чём ты фантазируешь неся подобную нелепую дич?

я думаю,

Сильное заявление.

что скорее всего большая часть будет вырезана

А, раз скорее всего. Ну да. Побежали из стандарта фичи вырезать.

что касается самого компилятора, а не библиотек

Чего?

В этом плане я одобряю C++17, который вычистил солидное кол-во мусора — капля в море, но всё же.

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

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

А еще, по сравнению с крестами, синтаксис любого «нового» языка выглядит куда более единообразным.

Да тут ещё один эникей нам из палаты вещает. Примеры «неединообразия» синтаксиса в студию. А так же объясняться за 10 форм записи функций в недоязычках. Там в пистонах, говнорастах и прочем.

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

С каких пор бездарная пародия на код на бездарной пародии си с классами, т.е. высер бездарной жопорукой обезьяны с помойки является программой на крестах? Ладно там говнораст - там все «программы» такие, в данном случае тебе повезло. Объясняйся.

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

иди почитай

Почитал - экспериментальная штука в альфа версии, которая не так давно появилась

меньше будешь позориться в интернете.

И где я опозорился? Или не следить за всевозможными проектами в интернете теперь позорно?

libclang говно. А потом почитай про clangd и почему пилится он.

Когда-то читал, что у первого API часто меняется, однако это не значит что он говно. Понимаешь, я сужу по юзабилити, вот IDE с libclang работают с проектами очень быстро, а IDE с clangd напротив, медленно, из чего я делаю вывод, что говно именно clangd

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

Да, сегодня в сравнении с Clang/LLVM компилятор GCC выглядит монолитным комбайном

Нет, тебя обманула пропаганда.

принципы UNIX-Way

Это какая-то бездарная херня для дошколят. Никаких подобных принципов нет.

Компоненты Clang/LLVM являются переиспользуемыми

Нет, ты ничего не знаешь ни про шланг, ни про llvm. Там максимум что откручено от шланга - llvm и то лишь потому, что без этого недоязычки не прикрутишь. И то еле-еле.

Для создания собственных инструментов из Clang можно выдернуть парсер

И ты об этом в интернете прочитал? Ну даю тебе простую задачу - выдернуть этот парсер. Ты явно со знанием дела об этом говоришь.

и на его основе реализовать подсветку кода

Нет, никто так не делает.

автодополнение и статический анализ

Всё это говно и части шланга. Реализованы в самом шланге.

именно так и работают сегодня большинство IDE для C++

Нет.

вместо написания собственных плохоработающих костылей.

Ну шланг работает не особо лучше костылей. К тому же именно он и обвешан костылями в сравнении с которыми предыдущие костыли покажутся тебе счастьем. Правда ты об этом ничего не знаешь.

С GCC, к сожалению, такие финты работать не будут.

Они и не работает со шлангом. Тебя просто обманули.

Остаётся только надеятся что со временем GCC станет более UNIX-Way’ным компилятором, который соблюдал бы принципы KISS так же хорошо, как это делает Clang/LLVM.

Вот заметим как работает пропаганда. Какой-то говновай, говнис - т.е. бездарные магические слова, за которыми ничего не стоит. Которые созданы идиотами для идиотов. У которых нет определений, не адекватных критериев.

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

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

Почитал - экспериментальная штука в альфа версии, которая не так давно появилась

Обгадился. Ей тысячи лет. Ты просто загуглил и перепастил первый заголовок из гугла. Т.е. ты не просто ничего не знаешь, но и гуглить не умеешь.

И где я опозорился? Или не следить за всевозможными проектами в интернете теперь позорно?

Ну за каким проектами? Это достаточно хайповая тема в мире gcc и достаточно давнишняя. Это значит лишь то, что за темой ты не следишь. Т.е. не просто понимания не имеешь, но и даже минимальной заинтересованности.

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

Когда-то читал, что у первого API часто меняется

Нет, не в этом дело. Никакого libclang не существует. Есть просто clang - там нет никакой lib. Конечно, там есть всякие libtooling, но опять же это чистая условность. Это просто альтернативный драйвер/обёртка над ним.

Т.е. используя clang - ты используешь напрямую компилятор, его кишки.

libclang - это сишная говнолиба прикрученная сбоку. Мало того, что она имеет ущербанское дырявое api кое как прикрученное сбоку - это не самое главно.

Если ты подумаешь - ты поймёшь причины. Нету никакого изменения api(внешнего) - есть изменение логики самого шланга и его внутренних api. А значит что все вводимые новые фишки и изменения языка - изменяют и внутренние структуры компилятора. От того этот «api» и меняется.

Но из-за того, что вместо этих внутренних структур у тебя в libclang мусорные указатели на говно - ты ничего не получаешь. Ты кое как можешь этим убогим api вытащить какую-то информацию из ast, но полноценного ast ты никогда не получишь. Ты не получишь множество новой семантической информации.

Т.е. ты общаешься с новым ast через api говна для C++03+.

однако это не значит что он говно.

Значит.

Понимаешь, я сужу по юзабилити,

Сомнительно. Ты там даже не поймёшь используется ли libclang или нет.

вот IDE с libclang работают с проектами очень быстро, а IDE с clangd напротив, медленно, из чего я делаю вывод, что говно именно clangd

А, ну судя по всему твои представления о крестах ограничены примитивных си с классами говно уровня лабы, а ide креаклом говна. Который ничего не может и вообще не ide и никакой libclang не использует.

В общем, ты ничего не знаешь. Я тебе открою тайну - твой креакл бездарный работает как-то лишь вопреки libclang и тому, что ты пишешь примитивное дерьмо.

Это позволяет почти ничего не разбирать шлангом. А то, что есть - разбирать при помощи костылей.

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

llvm - сила, ибо адекватная архитектура и лицензия.

Что эникей может знать об архиектуре? Много ты узнал о ней накатывай маздайки?

Поэтому его и выбирают для новых языков.

Нет, у недоязычков дерьма и бездарностей, что их ваяют - никаких «выбирают» нет. У тебя есть вариант либо украсть то, что можно украсть, либо пойти на помойку. Вот ты и трясёшься за то, что украл.

В данном случае тебе просто повезло. Хозяин для своей инфраструктуры решил взять то, что можно украсть. Да и у него были планы на свифт.

Там параллельно толпа бездарных паразитов подсосалась, но в целом хозяина это устраивает. Это ему позволит выбивать ещё более выгодные для него решения.

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

а ide креаклом

Да, именно он. Я ничего круче него с плагином, цепляющим clang не нашел. Судя по твоему комменту, есть что-то сильно круче - что?

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

Да, именно он.

Это бездарное говно.

Я ничего круче него с плагином, цепляющим clang не нашел.

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

Скорее всего ты первый раз в жизни после блокнота увидел диагностики в ide и этим твоё «круче» и ограничивается.

Судя по твоему комменту, есть что-то сильно круче - что?

Тут дело не в круче. Креакл не умеет в С++, да и не ide это вообще. Это маздайское дерьмо сваянное по примеру маздайской бездарной гуйни из всяких делфей/бейсиков.

Но мы говорили не об этом - мы обсуждали libclang. Дак вот, я тебе сообщаю, что всё что работает на libclang - работает вопреки ему. Шланг вообще никак не совместим с ide by-design. Правда этого никто, кроме те кто занимается разработкой ide, не понимает.

В любом случае если ты спрашиваешь меня про ide. В этом мире в С++ умела и умеет только одна ide - это kdevelop. Он на libclang, причём полноценно а не как креакл говна. Но, опять же, всё вопреки.

Так же что-то может clion с их патченным clangd.

Более ничего в С++ не умеет. Но что самое удивительное, открою тебе ещё одну тайну, креакл дерьма не использует libclang напрямую. Он там колхозили свой аналог clangd.

Но проблема clangd в том, что lsp-дерьмо. lsp - это бездарное маздайское дерьмо от идиотов для идиотов. И для С++ не подходит. jb там патчит(в том числе и протокол) это говно, как я уже говорил, но в любом случае.

libclang полностью обречена. clangd потенциально может ещё жить, ведь там по сути внутри встроен «редактор», а обычный реадактор просто раскрашивалка.

Хотя любой редактор раскрашивался. Семантический редактор - это только в kdevplatform.

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

Это маздайское дерьмо

Мы же про QtCreator? Он кроссплатформенный.

В этом мире в С++ умела и умеет только одна ide - это kdevelop. Он на libclang, причём полноценно а не как креакл говна.

А разве не clangd он запускает у себя? И падает, при падение оного. Так то IDE хорошая, но с CMake интеграции нет, надо настраивать парсер отдельно в настройках проекта, даже CXX_STANDARD не может вытащить, что бы правильно версию C++ определить. Да и работает он медленно, + давно отломали doxygen и не чинят.

Так же что-то может clion с их патченным clangd.

Когда тыкал у них вроде не было clangd, было много ложных диагностик, а кросскомпиляции притягивалась еще кривее, чем в KDevelop.

SR_team ★★★★★
()

Были разговоры, что шланг заменит ГЦЦ

И дальше разговоров не пошло. Три года назад clang не мог собрать работоспособное ядро linux. Как с этим дела обстоят сейчас?

Зачем вообще gcc тратит силы на g++

Потому что в какой-то момент решили писать gcc на C++, а не на C, поэтому для сборки gcc необходим плюсовый компилятор.

для крестов я так и не встретил ни одной нормальной tag системы, а кодить без неё удовольствие сомнительное

libclang — это то, что мы едим за неименеем лучшего. Компилятор и система code completion/navigation имеют много точек соприкосновения, но по сути своей очень сильно отличаются.

Компилятор не должен компилировать невалидный код, а система автодополнения должна предлагать имена членов класса даже если в данный момент в теле класса разработчик написал if (cond) { this-> // отсутствует закрывающая } у if.

Ну и не стоит забывать, что комитет C++ только недавно начал задумываться о тулинге. По большому счету, C++ как язык — это одна большая ошибка.

Поправить комментарий в хидере, а затем получить получасовую переиндексацию всего проекта вполне обычная практика. При этом «счастье и модули» обещают лет 5 если не больше.

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

«Зачем пилят KDE когда есть Gnome?»

Хороший вопрос, действительно - зачем нужен KDE, если уже есть гном.

dnb ★★★★
()

GCC и Clang не в последнюю очередь существуют благодаря тому, что у них обоих такие лицензии. Юристы, что тут поделаешь!

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

Здесь логическая ошибка. Не существует комфортного крестового кодописания

Два чая этому господину

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

Когда-то давно писал на Паскале. Немного работал с Питоном

XMs ★★★★★
()

Самое забавное, что gcc теперь не работает на macOS 10.16 (который ARM), а llvm, естественно, работает. Что делает gcc фактически linux-only компилером.

Справедливости ради, Rust и Go тоже не работают. Как и многие другии ЯП/компиляторы.

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

Самое забавное, что gcc теперь не работает на macOS 10.16 (который ARM), а llvm, естественно, работает. Что делает gcc фактически linux-only компилером

Блин, они там в GCC поехавшие совсем, если честно. Недавно пытался GCC запустить на фряхе, и в итоге всё закончилось тем что для GCC нужен glibc, а для glibc нужен GCC. Причем, там люди не особо парятся тем, как будут собираться их софтины другими компиляторами, а потому тот же glibc на полную катушку использует фичи GCC и ничем другим не собирается.

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

Что делает gcc фактически linux-only компилером.

Упоролся? На Windows, Dos, OpenIndiana точно работает последний gcc 10.1.

fsb4000 ★★★★★
()

А ты, чё, в текстовом редакторе не умеешь писать код? Без монструозного и вечно мешающего IDE никак?)

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

экспериментальная штука в альфа версии, которая не так давно появилась

libgccjit.so has been available in gcc since GCC 5

May 7, 2020. The GNU project and the GCC developers are pleased to announce the release of GCC 10.1

Да, буквально на днях появилась.

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

Хотя любой редактор раскрашивался. Семантический редактор - это только в kdevplatform.

Ты ведь про семантическую раскраску? У меня в виме семантическая раскраска. kdevplatform, наверное, ещё и файлы сохранять умеет?))

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

Остальные две ОС не существуют.

Скажу даже больше - весь мир иллюзия.

Если серьезно - тот же GCC до сих пор используется для компиляции под микроконтроллеры, где никакой ОС вообще может не быть.

SZT ★★★★★
()
Ответ на: удаленный комментарий

Работает так же как и твоё бездарное говно, удивись. Откуда такое ЧСВ?

ЗЫ: кстати, передавай привет Lzzz, давно её не видно, тест вакцины прошёл неудачно?

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

Не собираюсь с тобой тут говном перекидываться, у меня семантическая подсветка есть, твои выкладки о степени одарённости поделки - не сильно интересуют. Вообще думаю - два компилятора для кодинга (один из которых для тегов/комплита/…) это уже криво-костыльное дерьмо.

pavlick ★★
() автор топика
Ответ на: удаленный комментарий

В чём моя подсветка несемантическая поясни? Иначе сам балабол.

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

GCC до 4.8 развивался ну очень медленно.

Номер версии нечасто менял?

LongLiveUbuntu ★★★★★
()
Ответ на: удаленный комментарий

В сухом остатке - в виме есть семантическая подсветка? Есть. Так что балабол ты. Бесспорно, очень верное решение дублировать в kdevplatfrom то, что умеет компилятор. Может научить его и исполняемые файлы без компилятора клепать?

pavlick ★★
() автор топика
Ответ на: удаленный комментарий

По поводу чем - всё очень просто. Ты ссышься показать скрины.

Я ведь тебе ссылку кидал, там скрин есть. Своя подсветка для типов, функций, переменных, … .

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

У меня Firefox при компиляции g++ в память не помещается. Пусть чинят

Ну дык а почему ты компилируешь C++ с менее чем 48 Гб оперативочки? Сам себе злобный буратина, компиляторы C++ нынче очень оптимизированы по скорости компиляции, так что минимум 48 Гб и 8 ядер — 2020 на дворе, дядя.

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

Я хотел сделать скриншот у себя, раньше пользовался scrot, но он под вейлендом чего-то не функционирует. Наверняка ты будешь опять писать про дерьмо и что слился, но нет никакого желания тут задницу равать ради того чтобы тебе доказать. У меня работает, доказывать я тебе ничего не обязан. Можешь поставить vim с плагинами самостоятельно и убедиться.

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

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

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

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

Приблизительно эту мысль и высказывает ваш оппонент, и она довольно здравая для текущего положения вещей. Помимо других недостатков ллвм туллинг сета.

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

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

Так а что, LSP протокол какой-то разный бывает? Никто ведь не запрещает ГЦЦ родить какой-нибудь gccd реализующий lsp сервер.

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

Вы же понимаете что это скорее проблема языка в общем и того как на нем пишут в частности. Сам туллинг сет в этом не виноват. Он просто заложник С++ который бы уже по хорошему надо было давно закопать, но заменить его нечем. Хотя можно осознанно например не пользоваться всем стеком возможностей которые приводят к такого рода разбуханию по оперативке во время компиляции.

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

Если вы сможете уговорить каждого кто производит туллинг сеты придерживаться протокола, то

, вы были бы несомненно правы

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

Ну и да, оппонент ваш прав в том, что в этих лсп нет ничего приличного из того что умеет приличная иде с астом.

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

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

Хотел и понял, что это будет позорище? Молодец.

но нет никакого желания тут задницу равать ради того чтобы тебе доказать.

Ты не смог ничего. И не сможешь. Всё остальное - жалкие оправдания.

Можешь поставить vim с плагинами самостоятельно и убедиться.

Зачем мне что-то ставить? Я же не балабол. Я знаю что может clangd - зачем мне твоё дерьмо? Если я владею информацией из первоисточника и ниже?

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

Так а что, LSP протокол какой-то разный бывает?

Да.

Никто ведь не запрещает ГЦЦ родить какой-нибудь gccd реализующий lsp сервер.

Никакой поддержки семантики это не добавит. lsp - это ворованное дерьмо. Признак того, что все те, кто его украл - бездарности.

Он задизайнен как костыль для веб-редактора и семантики уровня начальной школы. Во что-то сложнее он не может. Про внутренние противоречия я рассказывал.

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

Если вы сможете уговорить каждого кто производит туллинг сеты придерживаться протокола

Ну это проблемы туллинг-сет-производителей-велосипедистов, не пользуйтесь такими.

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

То место, где пришли к какому-то консенсусу.

Ну и да, оппонент ваш прав в том, что в этих лсп нет ничего приличного из того что умеет приличная иде с астом.

Например? Может мне чего-то не хватает и я сильно мучаюсь.

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

Сейчас модно делать лангвидж сервера по тому типу как это делается для вскода. И это в какой-то мере похоже на тот общий интерфейс о котором я говорю

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

И здесь появляется то самое противоречие. Редактор имеет операции, которые работают с текстом. Но нам нужны операции, которые учитывают ещё и семантику. Нам нужно заменить операции базовы, но если мы их заменим - нужно учить редактор понимать семантику. А если нет - нужно все операции отдавать lsp.

Разрешения у этого противоречия одно - всё редактирование и прочие операции - в lsp. Т.е. оставить от редактора чистый холст. В конечном итоге всё это сводится к тому же - редактор учится семантики и переносится в lsp.

Примеров тому масса. Те же code lens. Мы хотим семантику выражать ещё и текстом, но текст уже есть. Поэтому для lsp редактор уже в какой-то степени холст.

Поэтому lsp это ни в какое мере не пример за разделение. Он как раз таки пример, доказывающий несостоятельность подобного разделения. Потому как lsp не смог отделить текст, редактирование и семантику. И всё объединил. Но объединил не в редакторе, а в сервисе. Сделав его редактором.

И колхозники этого не понимают. Потому как они ничего не знают ни о Lsp, ни о редакторах, ни о семантики.

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

Увы нет, это проблема конкретно ллвм туллинг сета, который пытается затянуть в туллинг сет возможности, которые идеологически не должны существовать в туллинг сете.

лень листать наверх, но кто-то тут говорил о принципах KISS и Unix-way, так вот как раз ллвм их и не соблюдает в отличии от gcc

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

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

Люди в ллвм лезут за пределы применимости туллинг сета, это не хорошо и не плохо, но это не кисс и не юниксвей они как раз делают комбайн

Например? Может мне чего-то не хватает и я сильно мучаюсь.

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

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