Re[9]: Sleep Sort
От: eskimo82  
Дата: 22.11.18 14:44
Оценка: -1
E>>У меня для тебя плохие новости
CC>Да ну!

E>>стандартная библиотека это не только символы из std::, но и рантайм поддержка различных конструкций C++, типа dynamic_cast или operator new.

CC>Это называется C++ runtime

Всё вместе это образует стандартную библиотеку. Которую практически невозможно отделить от компилятора, разве что только подхачить, но тогда и C++ уже не будет.
Re[10]: Sleep Sort
От: CreatorCray  
Дата: 22.11.18 23:00
Оценка: -1 :)
Здравствуйте, eskimo82, Вы писали:

E>Всё вместе это образует стандартную библиотеку. Которую практически невозможно отделить от компилятора, разве что только подхачить, но тогда и C++ уже не будет.


Дюд, не неси пурги. Ничего неотделимого там нет, это всё сказки.
Я лично писал на С++ там, где не было предусмотрено родного рантайма. Реально необходимые функции пишутся на том же С++, пара функций либо naked с интринсиками либо просто сразу на асме.
C++ это именно то, что встроено в язык. Всё что написано на самом С++ — вспомогательные либы.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Sleep Sort
От: SaZ  
Дата: 23.11.18 10:38
Оценка:
Здравствуйте, Mihas, Вы писали:

M>Сложность O(n)?


Да, но только в абстрактной операционной системе, где сложность реализации таймеров О(1). Увы, в реальности таких ОС пока нет .
Re[3]: Sleep Sort
От: Mihas  
Дата: 23.11.18 11:30
Оценка:
Здравствуйте, SaZ, Вы писали:

M>>Сложность O(n)?

SaZ>Да,

SaZ>но только в абстрактной операционной системе, где сложность реализации таймеров О(1). Увы, в реальности таких ОС пока нет .

Это другое
Re[11]: Sleep Sort
От: eskimo82  
Дата: 23.11.18 12:55
Оценка: :)
CC>Я лично писал на С++ там, где не было предусмотрено родного рантайма. Реально необходимые функции пишутся на том же С++, пара функций либо naked с интринсиками либо просто сразу на асме.
Ты занимался хакерским анонизмом, т.к. поддерживать этот геморой людям теперь приходится с каждым выходом новой версии компилятора/платфоры/железа.
И еще поди ушел оттуда оставив это "подарком" для последователей.
Re[12]: Sleep Sort
От: CreatorCray  
Дата: 24.11.18 06:13
Оценка:
Здравствуйте, eskimo82, Вы писали:

E>Ты занимался хакерским анонизмом, т.к. поддерживать этот геморой людям теперь приходится с каждым выходом новой версии компилятора/платфоры/железа.

Дооо, драйвера конечно же пересобирают каждый раз как новый компайлер выйдет, ага. И в каждой версии конечно же меняют ABI.

E>И еще поди ушел оттуда оставив это "подарком" для последователей.

Где юг показать или сам найдёшь?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[13]: Sleep Sort
От: eskimo82  
Дата: 24.11.18 19:25
Оценка: -1
CC>Дооо, драйвера конечно же пересобирают каждый раз как новый компайлер выйдет, ага.
Драйвера не пишут на С++. А если и пишут то на уродливом "Си с классами и темплейтами без всего остального".
Даже без шикого использования темплейтов, т.к. многие вещи требуют поддержки со стороны компилятора и стандартной библиотеки
(например предикат std::is_pod или std::is_trivial, не говоря уже о всяких std::move и std::forward)

CC>И в каждой версии конечно же меняют ABI.

Именно так дело и обстоит — ABI С++ настолько нестабильно что двоичную совместимоть C++ кода никто серьезно даже и не рассматривает в виде ее отсутсвия.

E>>И еще поди ушел оттуда оставив это "подарком" для последователей.

CC>Где юг показать или сам найдёшь?
Наговнокодил и свалил — теперь сознаваться неудобно вдруг стало ?

PS: Юг ты и сам найдеш.
Re: Sleep Sort
От: vsb Казахстан  
Дата: 24.11.18 19:26
Оценка: :)
А как оно работает? Я так понимаю, на каждый элемент создаётся новый поток. Т.е. где-то в ОС создаётся список потоков. Потом каждый поток засыпает на N секуд. Это помещает поток в некую очередь спящих потоков. Эта очередь спящих потоков упорядочена? Насколько я понимаю, да, то собственно тут сортировка и происходит, т.е. мы используем сортировку из ядра ОС. Вероятно эта очередь реализована, как дерево. Поэтому такая сортировка по сути есть сортировка с помощью вставки в дерево поиска.
Re[14]: Sleep Sort
От: CreatorCray  
Дата: 24.11.18 23:10
Оценка: +2
Здравствуйте, eskimo82, Вы писали:

CC>>Дооо, драйвера конечно же пересобирают каждый раз как новый компайлер выйдет, ага.

E>Драйвера не пишут на С++.
Доброе утро! Много лет уже как.

E> А если и пишут то на уродливом "Си с классами и темплейтами без всего остального".

А можно перечислить это самое "остальное"?

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

И какие же?

E>(например предикат std::is_pod или std::is_trivial, не говоря уже о всяких std::move и std::forward)


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

Совсем народ отучился понимать что происходит под капотом.

CC>>И в каждой версии конечно же меняют ABI.

E>Именно так дело и обстоит — ABI С++ настолько нестабильно что двоичную совместимоть C++ кода никто серьезно даже и не рассматривает в виде ее отсутсвия.

Вот поднял ты версию одного и того же production grade компилятора а там — трах тибидох, всё поменялось, да?
Самому не смешно?

E>PS: Юг ты и сам найдеш.

Давай давай, ветер в спину
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Sleep Sort
От: Vi2 Удмуртия http://www.adem.ru
Дата: 25.11.18 07:40
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>А как оно работает? Я так понимаю, на каждый элемент создаётся новый поток. Т.е. где-то в ОС создаётся список потоков. Потом каждый поток засыпает на N секуд. Это помещает поток в некую очередь спящих потоков. Эта очередь спящих потоков упорядочена? Насколько я понимаю, да, то собственно тут сортировка и происходит, т.е. мы используем сортировку из ядра ОС. Вероятно эта очередь реализована, как дерево. Поэтому такая сортировка по сути есть сортировка с помощью вставки в дерево поиска.


Нет, это стометровка бегунов с известными скоростями бега: стартуют все вместе, а финишируют как раз по сортированной последовательности.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[15]: Sleep Sort
От: eskimo82  
Дата: 26.11.18 13:32
Оценка: -2
CC>>>Дооо, драйвера конечно же пересобирают каждый раз как новый компайлер выйдет, ага.
E>>Драйвера не пишут на С++.
CC>Доброе утро! Много лет уже как.
Ты там слово class увидел и решил что это C++ ?
В этом случае у меня для тебя плохие новости.


E>> А если и пишут то на уродливом "Си с классами и темплейтами без всего остального".

CC>А можно перечислить это самое "остальное"?
E>>Даже без шикого использования темплейтов, т.к. многие вещи требуют поддержки со стороны компилятора и стандартной библиотеки
Ну открой стандарт и почитай. Или читать не умееш, хочеш чтобы тебе рассказали ?

E>>(например предикат std::is_pod или std::is_trivial, не говоря уже о всяких std::move и std::forward)

CC>
CC>Ты правда думаешь что это можно только через std сделать?
CC>И самому написать аналог ну никак?
CC>Более того, что эти врапперы реально кому то всерьёз настолько нужны что надо применять именно их.
Эти "враперы" — часть компилятора и могут быть написаны на специальном вендоро-зависимом не C++ языке.
А могут и вообще не иметь исходника.

CC>Совсем народ отучился понимать что происходит под капотом.

По капотом стандартной библиотеки нет никакого C++. А есть совершенно другой compiler-bound язык.

CC>>>И в каждой версии конечно же меняют ABI.

E>>Именно так дело и обстоит — ABI С++ настолько нестабильно что двоичную совместимоть C++ кода никто серьезно даже и не рассматривает в виде ее отсутсвия.
CC>
CC>Вот поднял ты версию одного и того же production grade компилятора а там — трах тибидох, всё поменялось, да?
CC>Самому не смешно?
Нет не смешно. Именно так и обстоят дела и в gcc, и в clang, и даже в студии.

E>>PS: Юг ты и сам найдеш.

CC>Давай давай, ветер в спину
У тебя штаны упали и шнурки развязались, одна голая жопа сверкает.
Re[16]: Sleep Sort
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 26.11.18 14:09
Оценка:
Здравствуйте, eskimo82, Вы писали:

E>Ты там слово class увидел и решил что это C++ ?

E>В этом случае у меня для тебя плохие новости.

AMD драйвера для видеокарт на плюсах пишет, классы, наследование и шаблоны там есть. Так что у меня для тебя плохие новости — ты застрял в 80-х.
Re[17]: Sleep Sort
От: eskimo82  
Дата: 26.11.18 14:53
Оценка: :)
N>AMD драйвера для видеокарт на плюсах пишет, классы, наследование и шаблоны там есть. Так что у меня для тебя плохие новости — ты застрял в 80-х.
У меня для тебя тоже плохие новости: AMD драйвера на плюсах не пишет и не может писать полноценно на плюсах т.к. поддержка исключений C++ отсутсвует в Linux kernel.

А это значит — чуть что и kernel panic.
Т.к. исключение мы не то что обработать не можем, мы даже выбросить его не можем. В целом так себе удовольствие. И влечет это за собой невозможность полноценно использоваать плюсы, начиная от невозможности корректно сообщить об ошибке из конструктора (привет двум стадиям конструирования из MFC и признакам isValid), заканчивая невозможностью использовать почти весь функционал стандартной библиотеки (контейнеры, некоторые алгоритмы типа sort, умные указатели, etc...)
Т.е. практически всего того что делает язык именно плюсами.

Что остается ? Остается "Си с класами" и наивное убеждение что код написан на плюсах.
Отредактировано 26.11.2018 14:55 eskimo82 . Предыдущая версия .
Re[18]: Sleep Sort
От: CreatorCray  
Дата: 26.11.18 18:10
Оценка: -1
Здравствуйте, eskimo82, Вы писали:

E>Т.к. исключение мы не то что обработать не можем, мы даже выбросить его не можем.

А, ну понятно какого уровня у тебя понимание.
И бросаем и ловим, более того в кернеле дохрена чего надо заворачивать в catch, даже C API.

E>заканчивая невозможностью использовать почти весь функционал стандартной библиотеки (контейнеры, некоторые алгоритмы типа sort, умные указатели, etc...)

Весь функционал как раз доступен, не в std реализации разумеется.

E>Т.е. практически всего того что делает язык именно плюсами.

плюсами язык делают исключительно те фичи, которые нельзя реализовать библиотечно.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[19]: Sleep Sort
От: eskimo82  
Дата: 26.11.18 18:53
Оценка:
E>>Т.к. исключение мы не то что обработать не можем, мы даже выбросить его не можем.
CC>А, ну понятно какого уровня у тебя понимание.
CC>И бросаем и ловим, более того в кернеле дохрена чего надо заворачивать в catch, даже C API.
У тебя путаница между C++ исключениями, SEH и расширениеями одного компилятора.
Видимо вызвананая професиональной деформацией на почве одной и далеко не лучшей платформы.

E>>заканчивая невозможностью использовать почти весь функционал стандартной библиотеки (контейнеры, некоторые алгоритмы типа sort, умные указатели, etc...)

CC>Весь функционал как раз доступен, не в std реализации разумеется.
Не доступен, либо доступен ногами через одно место. И я уже привел выше некоторые примеры, которые ты благополучно проигнорировал.

E>>Т.е. практически всего того что делает язык именно плюсами.

CC>плюсами язык делают исключительно те фичи, которые нельзя реализовать библиотечно.
Стандартная библиотека не реализуется "библиотечно", это неотьемлимая часть языка с точки зрения API и неотьемлимая часть (библиотек поддержки) компилятора с точки зрения реализации.
Re[20]: Sleep Sort
От: CreatorCray  
Дата: 26.11.18 21:33
Оценка:
Здравствуйте, eskimo82, Вы писали:

CC>>И бросаем и ловим, более того в кернеле дохрена чего надо заворачивать в catch, даже C API.

E>У тебя путаница между C++ исключениями, SEH и расширениеями одного компилятора.
Это ты по какой то причине пытаешься разделить по сути одну и ту же сущность на какие то совершенно раздельные.

E>Видимо вызвананая професиональной деформацией на почве одной и далеко не лучшей платформы.

А, ещё один адепт "элитной ОС", где главный пингвин С++ ниасилил а потому в ядро его не пускает. Ну да, у вас там в общем случае с заменой RTL плоховато.
Благо есть другие ОС, где народ не хочет бойлерплейтить и таки почесался по поводу C++ RTL для ядра.
Если чо в ядре макоси в кернеле поддержка C++ имеется.

E>Не доступен, либо доступен ногами через одно место.

И много ты кода в кернеле написал чтоб заявлять подобную чушь?
Для меня это bread, butter с толстым слоем икры поверху. Win/BSD/Darwin

E> И я уже привел выше некоторые примеры, которые ты благополучно проигнорировал.

Это просто тебе ответы не понравились.

E>Стандартная библиотека не реализуется "библиотечно"

А header файлы это тогда что?
Т.е. если я сотру все headers от std то внезапно всё перестанет работать?
Вот только на практике компилятору они нафиг не упали — всё работает.

E>, это неотьемлимая часть языка с точки зрения API и неотьемлимая часть (библиотек поддержки) компилятора с точки зрения реализации.

Даже RTL таки заменяемая часть, так что чушь. Берёшь компилер, пишешь на том же самом С++ пару платформенных функций, на которые тот вставляет референсы, ожидая что поддержка платформы будет прилинкована и всё.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[21]: Sleep Sort
От: eskimo82  
Дата: 27.11.18 17:55
Оценка:
CC>>>И бросаем и ловим, более того в кернеле дохрена чего надо заворачивать в catch, даже C API.
E>>У тебя путаница между C++ исключениями, SEH и расширениеями одного компилятора.
CC>Это ты по какой то причине пытаешься разделить по сути одну и ту же сущность на какие то совершенно раздельные.
Чувак, ты перепутал в кучу разные сущности и уровни. И все только из-за с виду одного catch, а на самом деле это совершенно разные catch.

E>>Видимо вызвананая професиональной деформацией на почве одной и далеко не лучшей платформы.

CC>А, ещё один адепт "элитной ОС", где главный пингвин С++ ниасилил а потому в ядро его не пускает. Ну да, у вас там в общем случае с заменой RTL плоховато.
CC>Благо есть другие ОС, где народ не хочет бойлерплейтить и таки почесался по поводу C++ RTL для ядра.
CC>Если чо в ядре макоси в кернеле поддержка C++ имеется.
Это ты про FreeBSD сейчас ? Там все также на Си.

E>>Не доступен, либо доступен ногами через одно место.

CC>И много ты кода в кернеле написал чтоб заявлять подобную чушь?
Достаточно чтобы открыть тебе глаза.

CC>Для меня это bread, butter с толстым слоем икры поверху. Win/BSD/Darwin

И что ? Это совсем перепендикулярно языку.

E>> И я уже привел выше некоторые примеры, которые ты благополучно проигнорировал.

CC>Это просто тебе ответы не понравились.
Да небыло у тебя никаких вменяемых ответов кроме мычания.

E>>Стандартная библиотека не реализуется "библиотечно"

CC>А header файлы это тогда что?
Кто тебе сказал, что это header файлы ?

CC>Т.е. если я сотру все headers от std то внезапно всё перестанет работать?

А ты уверен что всегда сможеш их найти ?

E>>, это неотьемлимая часть языка с точки зрения API и неотьемлимая часть (библиотек поддержки) компилятора с точки зрения реализации.

CC>Даже RTL таки заменяемая часть, так что чушь.
У меня для тебя совсем плохие новости.

CC>Берёшь компилер, пишешь на том же самом С++ пару платформенных функций, на которые тот вставляет референсы, ожидая что поддержка платформы будет прилинкована и всё.

Ну напиши на том же самом C++ крючек для dynamic_cast или throw.
Re[21]: Sleep Sort
От: Михaил  
Дата: 27.11.18 19:17
Оценка:
Здравствуйте, CreatorCray, Вы писали:

E>>Видимо вызвананая професиональной деформацией на почве одной и далеко не лучшей платформы.

CC>А, ещё один адепт "элитной ОС", где главный пингвин С++ ниасилил а потому в ядро его не пускает. Ну да, у вас там в общем случае с заменой RTL плоховато.
CC>Благо есть другие ОС, где народ не хочет бойлерплейтить и таки почесался по поводу C++ RTL для ядра.

А какие еще существующие сегодня ОС, кроме макос (и то, только в IOKit) используют С++ в драйверах?
Re[22]: Sleep Sort
От: CreatorCray  
Дата: 27.11.18 19:41
Оценка:
Здравствуйте, eskimo82, Вы писали:

E>Чувак, ты перепутал в кучу разные сущности и уровни. И все только из-за с виду одного catch, а на самом деле это совершенно разные catch.

Зависит от того как ты реализуешь под капотом.

CC>>Если чо в ядре макоси в кернеле поддержка C++ имеется.

E>Это ты про FreeBSD сейчас? Там все также на Си.


E>Достаточно чтобы открыть тебе глаза.

Так бы и сказал что ничего всерьёз не писал.

E>Это совсем перепендикулярно языку.

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

E>Кто тебе сказал, что это header файлы ?

А что это? Магия?

CC>>Т.е. если я сотру все headers от std то внезапно всё перестанет работать?

E>А ты уверен что всегда сможеш их найти ?
Что за бред ты несёшь?

CC>>Даже RTL таки заменяемая часть, так что чушь.

E>У меня для тебя совсем плохие новости.
Дооо! А если надо С++ на платформе где его раньше не было то с горы спускаются старцы, проводят ритуал и RTL спускается с небес, да!
Это просто кусок кода, platform support library.
И всё.

CC>>Берёшь компилер, пишешь на том же самом С++ пару платформенных функций, на которые тот вставляет референсы, ожидая что поддержка платформы будет прилинкована и всё.

E>Ну напиши на том же самом C++ крючек для dynamic_cast или throw.
Ох деточка, не боги горшки обжигают.

Для Wintel будет так:

extern "C" void __stdcall _CxxThrowException (void* pExceptionObject, _ThrowInfo* pThrowInfo)
{
... а тут пиши что хочешь.
Можешь перезавернуть в платформенные, можешь сам корячиться.
}

PVOID __RTDynamicCast (PVOID inptr, LONG VfDelta, PVOID SrcType, PVOID TargetType, BOOL isReference) throw(...)
{
документацию в руки и вперёд!
Функции для того чтоб парсить инфу о типах что нагенерил компилятор в доках описаны, в платформе есть.
}
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[22]: Sleep Sort
От: CreatorCray  
Дата: 27.11.18 19:43
Оценка:
Здравствуйте, Михaил, Вы писали:

М>А какие еще существующие сегодня ОС, кроме макос (и то, только в IOKit) используют С++ в драйверах?

Да так же винда
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.