LINUX.ORG.RU

4 вопроса про C++ UB

 


2

3

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

1. вот тут говорят что в С++ некое UB. если стандарт не определяет поведение для какого-то случая, то он явно это делает? т.е. там сказано типа «when X then Y must happens, in any other case - UB»? или же UB — это просто всё то, что не покрыто стандартом («а вот об этом там ничего не сказано»)?

2. регламентирует ли стандарт scope UB? или как это сказать, рамки последствий от инструкций, результат которых не определен? к примеру, в программе используется конструкция с UB, в результате чего обнулилась совсем не относящаяся к вопросу память и арифметика стала работать неправильно и т.д. гипотетический компилятор, который такую программу скомпилировал - он формально соответствовал Стандарту С++ ? или же стандарт строго очерчивает область в которой могут наблюдаться произвольный эффект?

3. что сам стандарт говорит о компилиуемости кода с неопределенным поведением? предписывает ли стандарт компилятору (претендующему на полное соответствие стандарту) отвергать код, последствия которого (даже если они имеют строго очерченные рамки) не определены стандартом?

4. возможно ли теоретически построить такой компилятор, который бы допускал инструкции с UB, но гарантировал бы отсутствие вреда от них через пресечение использования их результатов. пример: в точке A вы пишете конструкцию с у которой часть эффекта определена, а часть - UB, и всё работает нормально. но где-то далее вы добавили код (точка B) для определения результата которого необходимо использовать ранее полученный эффект из A (который UB). и вот уже такую компилятор отвергает сразу (либо останавливает ее в рантайме). ведутся ли такие разработки?

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

Первое - баш это не язык, а интерфейс.

Мне до фонаря твоя личная половая классификация. Помимо самого cli есть переменные, функции, инструкции условного выполнения. Не хочешь считать языком? Твоё право, это всё равно ничего не меняет.

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

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

Всё удобство баша заключается в том, что нам платформа предоставляет некий утилитарный набор примочек, которые не являются чем-то свойственным конкретному недоязычку.

Оу, ты признал, что это язык, хоть и недо- ))) Но да, баш - «утилитарная утилита» (ни на какие мысли эта тавтология не наталкивает?))), один из многих вариантов использования cli. Ты снова всем рассказываешь таблицу умножения, выдавая её за свои сакральные знания? )))

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

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

Если же это удобнее исключительно тебе, то вопрос исчерпан, ибо я не могу оспаривать твои личные удобства «по определению».

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

Хрена толку от твоего набора слов, если ты кроме себя не можешь показать никого, кому удобнее оперировать cli в си/крестах, а не на баше.

А т.к. реализовать эти примочки с тем же качество и удобством ... можно и на крестах.

И сейчас будет пруф в подтверждение, ну хоть собственного написания. Ждём-с.

И из этого следует именно то, что никаких «языков» «под задачу» не существует.

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

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

У меня есть множество вариантов победы, и если ты думал, что играть в дурака и игнорировать всё, толкая рандомную ахинею покатит. Ты ошибаешься. Причём очень сильно.

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

Ах да, для пацанов поясню. Я уже рассказывал о том, что подобные трепачи очень сильно переоценивают свои возможности. Они думают, что со своими посредственными способностями и познаниями - они могут кого-то ловить, но. Это происходит только в их мечтах.

Тут мы видим типичную картинку. Данное трепло увидел, что я называю баш «не языком» и «недоязычком» одновременно и треплу кажется, что он нашел какую-то логическую ошибку. Именно про неё он весь этот бред и накатал, вместо того, чтобы внятно ответить на мои доводы.

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

А жертва агитки определяется очень просто. Агитка и лозунг не предполагают аргументации, не предполагают понимания. Он не знает почему так, именно поэтому все его потуги и сводятся к «а почему тогда всё на на крестах», «а все так говорят» и прочая ахинея.

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

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

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

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

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

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

Ах да, для пацанов поясню.

Для каких пацанов, царь-балабол?

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

Или может ты думаешь, что твои слова здесь кто-то всерьез воспринимает?

Актись.

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

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

Спросил

Я для начала всего лишь пытался понять, о разнице чего именно шла речь в твоём утверждении «Вся разница между башем и С++ теряется».

получил кучу помоев

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

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

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

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

Я десять раз объясню, десять раз повторю. Даже если мне не нужно отвечать на трёп - я знаю, что может кто-то не так поймёт и поверит в то, что данная табуретка меня поймала. Именно поэтому я это и разобрал, хоть это и не нужно.

Есть пацаны, которые понятливые, которые вроде что-то вменяемое говорят и верно понимают, но. Они почему-то то же становятся жертвами потуг подобного мусора. Для них я это и пишу. Так же, как и для тебя.

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

Теперь ты играешь в идиота? Я этот коммент написал ещё днём, но я тебе его не отправил. Я тебя пожалел и написал тебе пасту, где даже примеры привёл. Поверил, что ты будешь человеком - как ты мне ответил? Ты плюнул в меня своим невежеством, зачем?

Ты вместо того, чтобы читать и понимать - начал предпринимать глупые попытки меня ловить. Зачем? Как я должен на это реагировать? Если ты чего-то не понимаешь, зачем ты начинаешь что-то утверждать, меня опровергать? Тебя это не удивляет?

Я вам помои никогда не пишу, вернее не пишу до тех пор, пока вы не кинете в меня тонну дерьмо. А раз ты перестал быть человеком - я перестал к тебе относится как к человеку. Хотя на самом деле я всегда верю в то, что вы сможете наконец-то ответить мне адекватно, но вы всё больше и больше охреневаете.

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

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

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

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

Я всё понимаю - ты не привык что-то аргументировать. Тебе кажется, что раз все во что-то верят, то это 100% верно и с тебя аргументация не требуется. Нет, это не так. Никакие все тебя не защитят. В этом и проблема - ты не привык что-то защищать, а это плохо. Если в тебя можно вложить какие угодно лозунги и агитки, то какой же ты человек. Человек живёт осознанно, а где же твоя осознанность?

vcerloman ()

Умеете, могёте

Царя можно банить, ничего интересного тут уже не будет. Ожидал более интересное шоу, но в этот раз он исполнил на уровне ученика пятого класса. За базар вывезти не может, смысла в его простынях ровно ноль. Содержательную беседу с нашим именитым уборщиком вести невозможно, так как проживает в манямирке. Унижен и обоссан по кругу, но продолжает вылезать из-под шконки и что-то вещать о собственной победе. Оценка за исполнение: 1/10.

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

Слив засчитан. Кстати, за шизоида так же обосновать не сможешь и сядешь в лужу? Я вот не понимаю - на что вы рассчитываете. Зачем ты пришел, написал херню, обедалался и ушел? Это ритуал такой?

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

Ну и за одно мимоходом помножу на ноль очередное трепло.

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

Именно поэтому, никакой баш, либо другой недоязычок не удобнее.

Т.е. баш определён за недоязычок, а значит за язык. Трепло вам наврало? Да.

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

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

языком является #include, объявление функции и вызов функции. Всё остальное - не язык.

Стандартная библиотека тоже является частью языка ещё со времён неофициального стандарта K&R. По крайней мере создатели си так считали.

В крестах это будет так:

for(auto i: readdir(".")) print(i);

Очень лаконично, но не компиляется и не работает. Выложи полную версию программы, которую можно было бы без модификаций и допиливаний откомпилять в gcc и запустить, тогда будет что сравнивать. Пока же это просто неработающий код. Я же, в свою очередь, выложу аналогичный по функциональности однострочник на баше, который гарантированно работает. И после того, как ты тоже кинешь полную рабочую версию на крестах или просто на си, мы их сравним в плане объёма исходного кода. Вот баш версия (предполагается, что в именах файлов нет пробелов, если они есть, то это тоже легко учитывается, но скрипт тогда будет чуток сложнее):

#!/bin/bash

for i in .* *; do printf "$i "; done; echo;

Мы говорим о возможности интегрировать в кресты тот же интерфейс, что и в том же баше.

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

С другой стороны, даже если ты напишешь такую библиотеку на си или на крестах, у неё всё равно останутся недостатки, в рамках этих языков неустранимые:

  1. Программы нельзя будет запустить сразу, а предварительно придётся откомпилировать. Либо тебе придётся помимо библиотеки написать ещё и интерпретатор си++, желательно с поддержкой командной строки, чтоб команды можно было вводить интерактивно, как в баше.
  2. Все переменные всё равно придётся явно описывать, что в программе размером в один экран избыточно.
  3. Возможен доступ со стороны неквалифицированного пользователя твоей библиотеки к запрещённым полям и переменным или даже за пределы допустимого адресного пространства, что может привести к непредсказуемой работе программы или к сегфолту. Такая свобода является главным преимуществом си и крестов, но она же является и главным их недостатком, в зависимости от того, что нам нужно. В bash-скрипте подобная свобода явно избыточна.

асм вообще не язык,

Почему? Смотрим в Википедии определение языка программирования:

Язык программи́рования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.

Всем этим критериям ассемблер соответствует. Если не доверяешь Википедии, посмотри определение на любом другом серьёзном ресурсе.

а уж тем более не гибкий

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

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

Иди дальше - это вообще не оптимизация, ведь она memset() точно > так же написан как for(i=0; i<1000; ++i) a=с;

Кстати, да. Сейчас специально посмотрел исходник. Из оптимизаций там только запись сразу по 8 байт, а не по 1, если len >= 8, и никаким ассемблером и не пахнет. Правда, это в libc для gcc. Может для clang'а memset написана на ассемблере — точно не знаю.

В си inline функция ВСЕГДА inline.

Возможно. Я говорил о си++. Там inline всегда было пожеланием, но всё-таки раньше компиляторы к нему прислушивались, а если игнорировали, то только при невозможности реализовать такую вставку. Сейчас же это сплошь и рядом.

И в гцц кодоген под интел намного лучше, нежели в icc.

Некоторое время назад я с кем-то обсуждал сравнение icc vs gcc. По-моему даже здесь, на ЛОРе. Сейчас уже точно не помню, но вроде смотрел какие-то тесты, которые ничего однозначно не показали: в чём-то лучше gcc, а в чём-то icc. Но сейчас уже не помню, что, где, и было ли это вообще или просто приснилось. :-)

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

Иди дальше - это вообще не оптимизация, ведь она memset() точно так же написан как for(i=0; i<1000; ++i) a=с;, а значит оптимизация просто не имеет смысла.

Кстати, да. Сейчас специально посмотрел исходник. Из оптимизаций там только запись сразу по 8 байт, а не по 1, если len >= 8, и никаким ассемблером и не пахнет. Правда, это в libc для gcc. Может для clang'а memset написана на ассемблере — точно не знаю.

Нет, наврал. Посмотрел внимательнее, есть там в исходниках помимо сишного модуля ещё и ассемблерные, для архитектур i386 и x86_64 в том числе. Причём если в i386 используется старая добрая rep stos, то в x86_64 используются xmm. Так что всё нормально там сделано. Другое дело, что лучше это делать вставкой, особенно когда заполняется не слишком длинный буфер, т. к. расходы на вызов функции и выход из неё, а также на перебор разных вариантов (до 512, 256, 128, 64 и т. д. байт) могут быть сопоставимы с полезной работой функции.

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

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

Это валидный код, все попытки юлить в сторону «не компилируется» - не работает, ведь никто тебе не говорил о том, что оно должно компилироваться.

Ты ведь говорил о чём? О том, что «каждый язык для своей задачи», а оказалось что? Оказалось то, что разница между С++ и башем только в том, что на баше у тебя есть колхоз-интерфейс(готовый), а на крестах нет. Но его можно туда добавить. И отсутствие его сейчас никак не играет в твою пользу, а играет в мою.

И после того, как ты тоже кинешь полную рабочую версию на крестах или просто на си, мы их сравним в плане объёма исходного кода.

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

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

Реализация *, либо readdir() - не учитывает в рамках сранения нитерфейсов, а иначе ты пойдёшь считать строки, которые реализуют это в баше.

Я сделаю для тебя скидку, ведь тебя просто запутался. Давай я тебе поясню. У нас есть баш, где есть интерфейс и реализация, но реализация написана на си. Они существуют отдельно друг от друга, и именно поэтому реализацию ты не учитываешь.

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

Вот баш версия (предполагается, что в именах файлов нет пробелов, если они есть, то это тоже легко учитывается, но скрипт тогда будет чуток сложнее):

Ты не юли - если легко, то чего же ты не учёл? В рамках моего интрерфейса и языка - никаких подобных нюансов нет.

Кстати, что это за кастыльные точки с запятыми?


for i in .* *; do printf "$i "; done; echo;
for(auto i: readdir("*", ".*")) printf(i + " "); print();

Я-то говорил больше о практике, а не о теории.

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

Тебе нужно доказать НЕВОЗМОЖНОСТЬ его имплементации в рамках С++. Твои фантазии ничего не стоят.

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

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

Ну дак так и говори. Жру то, что есть. Зачем ты начинаешь рассуждать об языках в целом? Что-бы слиться? Ты действительно не понимаешь, что из того, что «оно есть» - не следует «это наиболее подходит под задачу». Осознай это.

С другой стороны, даже если ты напишешь такую библиотеку на си или на крестах, у неё всё равно останутся недостатки, в рамках этих языков неустранимые:

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

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

bash нельзя просто так запускать, для этого надо написать «интерпретатор bash, желательно с поддержкой командной строки, чтоб команды можно было вводить интерактивно». Ты сам понимаешь весь уровень маразма, который ты мне транслируешь?

Баш точно так же требуете написания интерпретатора. Что сказать-то хотел. То, что он у тебя уже есть? Ну дак это ничего не меняет. Да и никакой интерпретатор крестам не нужен.

Все переменные всё равно придётся явно описывать, что в программе размером в один экран избыточно.

Опять же, мы видим глупые попытки что-то предъявлять, но конкретики нет. Какие переменные, где описывать и как. Приводи примеры.

Возможен доступ со стороны неквалифицированного пользователя твоей библиотеки к запрещённым полям и переменным или даже за пределы допустимого адресного пространства

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

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

Такая свобода является главным преимуществом си и крестов, но она же является и главным их недостатком, в зависимости от того, что нам нужно. В bash-скрипте подобная свобода явно избыточна.

Для колхозников - да, но твоя апелляция к колхозникам смысла не имеет.

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

И самое главное - строковые недоязычки являются самыми дырявыми из возможных. Чего стоит только rm -rf / tmp и прочая ахинея. В нормальном интерфейсе такое попросту не возможно.

Почему? Смотрим в Википедии определение языка программирования:

Пытаешься меня ловить? Забудь. Мало того, что колхозные определения меня не волнуют, дак к тому же ты пастишь мне совершенно не то определение, давай я дам тебе нужное: https://en.wikipedia.org/wiki/High-level_programming_language

Как же не гибкий, если любая компилируемая программа (а в конечном итоге и интерпретируемая, т. е. вообще любая) в конце концов транслируется в машинные команды?

Да, началось в колхозе утро. Ты понимаешь, что язык никакого отношения к ассемблеру не имеет? Язык это про абстракции, а не про твои глупые рассуждения. И никого не волнует то, что и в чём можно написать - волнует «как», и эта «как» и есть гибкость, которая всегда существует в контексте «близкоудобных сущностей».

Если попроще. «самым гибким разговорным языком являются звуки, ведь все языки в конце концов транслируются в звуки» - ты понимаешь весь маразм подобным формулировок?

Давай примеры попроще. Является ли генератор более гибким, нежели паста генерированного в ручную. Ведь результат идентичный? Гибкость не существует только в контексте результата, да даже в контексте результата нужно учитывать множество нюансов.

Если мы имеем что-то более полное, что нельзя в полной мере применить - оно не является реально полным. Такая же история и с асм"ом.

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

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

Ты вообще не понял того, о чём говорил. Хотя это частая проблема.

Вот смотри, у нас есть оптимизация компилятора - замена for на memset, но. Если мы пишем код, который должен оптимизировать компилятор, то - мемсет будет точно так же циклом for, а значит оптимизация потеряет всякий смысл.

Т.е. пациенты, утверждая «компилятор сам оптимизирует» - множат на ноль оптимизация замены for на memset

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

Возможно. Я говорил о си++.

Сомневаюсь.

да, стандарт си
В общем, прощай, си, пошёл изучать питон — системный язык будущего!

И ещё много ссылок на си, когда контекст был не определён. Т.е. для тебя языком по умолчанию в является си.

Сейчас же это сплошь и рядом.

Не видел подобных проблем.

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

Зря это трепло пошло вонять в мой адрес, ведь я наконец-то не поленился и нашел его откровения.

Да, у меня низкая квалификация, и я вообще уже давно не программист.

Пруф - Производительность C++

Вот такие убогие и спамят царю о том, что он не программист. Бывает.

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

ведь я наконец-то не поленился и нашел его откровения.

Молодец, возьми с полки пирожок.

Вот такие убогие и спамят царю о том, что он не программист.

А ты что, программист что ли? Чем докажешь?

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

Молодец, возьми с полки пирожок.

У меня нет цели тебя обидеть, но у меня возникает вопрос - зачем ты так себя ведёшь? К чему всё это? Вот я никогда не понимал подобного. Не согласен с чем-то - сообщи, оспорить. Зачем все эти глупые потуги.

Почему ты считаешь других за идиотов? Почему мы все такие ЧСВешные? Читая твои откровения - я каждый раз удивляюсь. Вот тебе сказали о vm, но ты даже не подумал о том, что вдруг ты чего-то не заешь, чего-то не понял. Нет - ты гений, а царь идиот.

А ты что, программист что ли?

Мне не нужно ничего доказывать, и твоя классификация меня мало волнует. Меня определяют не названия.

Мне лень что-то доказывать. Я может раз в полгода не поленюсь и сделаю что-то, но на большее меня не хватает. Слишком велик накал идиотии.

Хочешь что-то оспорить - попытайся. Что же вас так тянет на трёп. Каждый начинает тебе вещать, но каждого хватает на 2-3поста. Просто пойми и перестань ассоциировать несогласных с врагами.

Да и попытки твои глупы. Пойми, что ты апеллируешь к тому, что ты программист, а я нет. Это твоя аргументация строить на этом. Именно ты всё теряешь в случае, если ты не программист. Я же - ничего не теряю. Именно поэтому меня это не волнует.

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

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

Твои труды не являются самыми-самыми, все, кто не сделал то, что сделал ты - не являются недочеловеками. Не нужно свою жизнь и свои реализация натягивать на других и на жизнь в целом.

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

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

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

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

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

Мне лично пофиг, как меня оценивают: как программиста или как не программиста, как высоко квалифицированного разработчика или как низкоквалифицированного. Каждый может найти то, что делаю я, и что делает моя команда. И составить собственное мнение.

А вот составить мнение о тебе никто не может. Потому что твоих разработок в природе не существует.

Вот и все.

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

Видишь ли, в твоем мире, возможно, у vm только одна расшифровка. А вот я могу расшифровать vm и как virtual memory, и как virtual machine. Так уж получилось, что проблемы virtual machine для меня актуальнее, чем проблемы virtual memory. Потому-то в том разговоре я и не понял, что подразумевалось под vm.

Но ты можешь и дальше греть себя мыслею о моей нулевости.

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

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

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

Мало того, что ты пытаешься выдавать свои скудоумные мазы за откровения, да к тому же ещё сам себе противоречишь. Если ты не программист и занят мистическим поиском еды для себя/других, то какое отношение ты имеешь к профилю? Иди на предпринимательский форум. Это первое.

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

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

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

И самое интересное, заметим как это трепло юлить. О чём, допустим, эта тему? О том, как впарить 10к строк либы к либе за 40баксов( или там 100было - я забыл)? Что является твоим потолком. Нет.

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

Мне лично пофиг, как меня оценивают: как программиста или как не программиста, как высоко квалифицированного разработчика или как низкоквалифицированного. Каждый может найти то, что делаю я, и что делает моя команда. И составить собственное мнение.

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

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

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

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

А вот составить мнение о тебе никто не может. Потому что твоих разработок в природе не существует.

Очень просто. Я прав, а ты нет. Я знаю, а ты нет. Я выиграл, а ты проиграл. Именно поэтому, любой человек может составить и о тебе и обо мне мнение. Ты - трепло, а я знаю и понимаю то, о чём говорю.

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

Видишь ли, в твоем мире, возможно, у vm только одна расшифровка. А вот я могу расшифровать vm и как virtual memory, и как virtual machine. Так уж получилось, что проблемы virtual machine для меня актуальнее, чем проблемы virtual memory. Потому-то в том разговоре я и не понял, что подразумевалось под vm.

Большей ахинеи я в жизни не слышал. Понимаешь, колхозник, есть такая вещь, как контекст. И в контексте памяти и переключения контекста ОС - ни о какой виртуальной машине речи быть не может.

А особенно в клоунских потугах «ахаха, какую царь сказал херню». Нет, трепло. Ты не знал что такое vm, и ты действительно думал, что vm - это виртуальная машина. И я могу это легко доказать.

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

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

Но ты можешь и дальше греть себя мыслею о моей нулевости.

Зачем тешить - это объективный факт. Ты клоун, при этом крайне лсный. У меня есть тысячи свидетельств этому.

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

Это ты про «у меня есть часть», «заматываю хелворд за 40баксов»? Ты скорее всего себе еду ищешь, не обманывай меня.

И самое важно - ты ничего не ответил. Это ничего не меняет. Ты не программист - что ты тут забыл? Иди на форум мамкиных бизнесменов, либо на форум поиска еды.

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

Что же ты такой упёртый. Ты действительно неспособен вести себя адекватно?

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

Кстати, вот вы такие глупые. Что же вы так любите хватиться за соломинку.

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

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

И он мне на полном серьёзе вещает о том и верит в то, что я это делаю нечестно. Что всё это не логика, а демагогия, но просто не может её раскрыть и осознать - в чём и где именно. И вот он пытается хвататься за эту соломинку, верить в это.

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

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

И в контексте памяти и переключения контекста ОС - ни о какой виртуальной машине речи быть не может.

В контексте производительности приложения речь о виртуальной машине еще как может быть. Например, если приложение написано на Erlang-е. Там vm переключает контексты.

Ты не знал что такое vm, и ты действительно думал, что vm - это виртуальная машина. И я могу это легко доказать.

Дебилушка, тебе же русским по черному написали:

Потому-то в том разговоре я и не понял, что подразумевалось под vm.

Что еще ты можешь?

Кстати, ты не просто программист - ты малоквалифицированный не программист

Спасибо, ты сделал мой день!

Жги еще, ты можешь, балаболка.

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

Кстати, царь:

О том, как впарить 10к строк либы к либе за 40баксов( или там 100было - я забыл)?

уже $80 на одного разработчика на год. Продавай дороже, разница пойдет тебе. Возьмешься?

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

В контексте производительности приложения речь о виртуальной машине еще как может быть. Например, если приложение написано на Erlang-е. Там vm переключает контексты.

О боже, насколько ты убогий и жалкий. Ты даже не знаешь в какую жопу ты себя загоняешь:

переключение тредов — это дорогая операция, поскольку ОС должна сохранить изрядное количество регистров текущей нити и восстановить значение регистров для другой нити;

И ты бы мог всплыть( на самом деле нет), но ты прошлый сам помножил на ноль свои текущие потуги. Давай, соберись, трепло. Дай мне хоть какой-то челендж.

Спасибо, ты сделал мой день!

Да, у меня низкая квалификация, и я вообще уже давно не программист.
у меня
низкая квалификация

Алёша, у меня всё записано.

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

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

«Ты» «продаёшь» «свои» творения за столько, сколько они стоят. Я тут причём?

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

переключение тредов — это дорогая операция, поскольку ОС должна сохранить изрядное количество регистров текущей нити и восстановить значение регистров для другой нити;

Ну ты хоть вспомни, что речь шла о модели thread per connection для случая большого количества соединений. Когда мы имеем дело с нативными процессами, то треды переключает ОС. Когда с Erlang-овыми процессами, например, то контексты преключает VM.

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

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

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

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

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

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

Когда с Erlang-овыми процессами, например, то контексты преключает VM.
Что за vm, откуда vm, каким боком здесь какая-то vm? хз...

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

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

Опять трепло врёт. Упомянул vm я, а он не мой почитатель - он просто тот, кто понимает. И тот, кто понимает - понимает то, что пишу я. В отличии от тебя, лсного балабола. И он может как угодно относится ко мне.

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

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

Если ты бы хотел уточнить про вм, то ты бы уточнил. Ты бы спросил.

Дурачок, тут же все ходы записаны. Как раз спросил: Царю про 10к в надежде перевести дискуссию в конструктив

Что за vm, откуда vm, каким боком здесь какая-то vm?

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

Дурачок, тут же все ходы записаны.

Не, не - трепло. Так не работает. Ты там не спрашивал, а утверждал. Это первое.

из этого потока сознания
выделить хоть какие-то технические аргументы
Особенно прекрасно вот это:
прекрасно
каким боком здесь какая-то vm

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

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

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

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

И самое главное, ты спрашиваешь не у меня.

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

Объясняю на пальцах. Для меня более привычная аббревиатура vm — это virtual machine. Поэтому в разговоре про накладные расходы thread per connection я не понял, что означает vm в твоем потоке сознания.

О чем я здесь уже несколько раз говорил.

Давай еще что-нибудь в мой адрес. Только зажги не по-детски, а то скучно с тобой.

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

Объясняю на пальцах. Для меня более привычная аббревиатура vm — это virtual machine. Поэтому в разговоре про накладные расходы thread per connection я не понял, что означает vm в твоем потоке сознания.

Опять ахинея. Почему другие поняли, а ты нет? Но и это даже неважно. Одного упоминания vm в контексте переключения контекста хватит, чтобы любой( из тех, кто в теме) понял о чём идёт речь. Ты не понял, а почему? Потому что ты нихрена не знаешь, некомпетентное трепло. И в этом твоя проблема.

И опять же, трепло опять пытается врать - выдавая свою шизофрению за контекст. Контект был чётко определён - переключение контекста ОС, и контекст это определил ты, а процетировал я. Всё. Ты обделался.

Кстати, все твои потуги в сторону «потоков сознания» не работают, пока ты а) не докажешь его(их) наличие, б) определишь понятие и выведешь из него следствие.

А пока мы видим, что очередное никчёмное трепло пытается накидкой левых определений снять с себя ответственность - отвечать за свой трёп.

Давай еще что-нибудь в мой адрес. Только зажги не по-детски, а то скучно с тобой.

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

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

уже $80 на одного разработчика на год. Продавай дороже, разница пойдет тебе. Возьмешься?

Не вмешиваюсь в ваш разговор. Просто заинтересовали расценки. Что такое $80 на разраба в год, если не секрет? Это у него з/п такая в год или я что-то не понял?

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

Ты уже сделал то, что обещал?

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

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

Ёптыть, да что здесь доказывать:

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

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

Ещё одно мною помноженное на ноль трепло убогое. Ты выклал правило? Определил его семантику? Нет - ты обделался. К чему ты, очередное чудовище, мне тут белеешь?

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

Что такое $80 на разраба в год, если не секрет?

Стоимость коммерческой лицензии на программный продукт, который распространяется под двойной лицензией (AGPL+commercial).

eao197 ★★★★★ ()