Здравствуйте, Mazay, Вы писали:
M>>>Даже на наивном умножении матриц. Это как надо накосячить в компиляторе, чтобы получить просадку на такой элементарной вещи? M>Статистическая погрешность бывает в обе стороны, а если отклонение всегда в одну сторону — это уже закономерность. M>Потому я и написал про matmul. Зачем ты на dict перепрыгнул? Вот код для matmul: M>Тут всё даже без интринсиков. Почему Ди здесь проваливается?
Охота вам обсуждать материалы 2011 года?
Вот я только что взял этот самый matmul и позапускал на Core i3 под виндой на матрице 1000х1000. Результаты, в секундах:
M>Тут всё даже без интринсиков. Почему Ди здесь проваливается?
Скорее всего две причины, контроль границы массивов (можно отключить в командной строке)
и выделение памяти, тут можно все сделать как в си, но запаковать потом результат в
удобный шаблон.
Здравствуйте, alex_public, Вы писали:
_>Ок, если цепляться к такой ерунде... Какой-нибудь древний std::pointer_to_unary_function — это первоклассная сущность или нет? )
Нет, не универсально и там голову можно было сломать с этими stl биндами даже для простейших вариантов.
Более-менее что-то похожее на ФВП (а без них ни о каком ФП речи нет) появилось с boost::function, boost::bind
и лямбдой из того же буста.
Здравствуйте, Mazay, Вы писали:
M>Я могут сказать почему на Раст и Ди не переходят толпы HPC-шников. Потому что они генерят медленный код. Чтобы вынести из этой области С++ нужно отставание в производительности по любому тесту считать серьёзным багом. Так что это пока просто прототипы, а не законченные решения. Так что нельзя ожидать именно толп, переходящих на них. Но интерес к ним гораздо выше, чем к Немерлу. По крайней мере народ сподобился написать на них тесты для шутаута.
В эпоху D1 на шутауте была куча тестов для D по нескольку вариантов, часто занимали верхние строчки,
и вообще агрессивно обновлялись, потом похоже что-то не поделили с хозяином ресурса и все исчезло.
EP>Давайте, мне нужна альтернатива C++ превосходящая его по возможностям и как минимум не уступающая по скорости, готов развивать такой язык (либо его библиотеки) если оба эти принципа будут заложены в самую основу. EP>Думаю получить такую же скорость, при этом не тратя кучу времени, можно путём компиляции нового языка в C++ (например Facebook компилировал одно время PHP в C++) — время компиляции меня совершенно не пугает.
Сейчас активно начал раскручиваться еще один язык на букву N, но не немерле, кстати тоже не совсем
чтобы молодой, почти всем хотелкам твоим удовлетворяет, очень мощное мета программирование, шаблоны
по сути разновидность макросов и по моему мощнее (в смысле читабельности и простоты а не по тьюрингу)
чем D'ишные или тем более С++'ные, плюс полноценные макросы, который уступают только немерлевским,
нет изменения синтаксиса, но есть полноценная работа с AST и цитирование (правда его почему-то
авторы языка недолюбливают).
Да компилируется в C, C++, JavaScript, притом итоговая скорость компиляции очень высокая, не уступает
по моему D'шной, так-как сгенерированный код весьма тупой и линейный.
В общем тебе сюда http://nim-lang.org/
Здравствуйте, VladD2, Вы писали:
VD>Нам удалось доказать, что никто не пишет на ассемблере не из-за того, что это не позволяет получить более быстрый код, а из-за того, что выигрыш, который от этого можно получить не соизмерим с теми затратами сил которые на это нужно потратить.
Если внимательно посмотреть на код математических и около библиотек, то будет видно, что асма в виде интрисиков там полно.
VD>При этом оптимизация кода на асме не является чем-то сверходинарным, в отличии от умения очень хорошо играть в шахматы.
Не уверен, ох как не уверен.
EP>Лямбды/замыкания не являются определяющей характеристикой ФП. Есть ФЯ без лямбд — Unlambda, а также есть старый язык с замыканиями — Smalltalk — который совершенно не ФЯ.
Unlambda же карринг в полный рост, в том же ML семействе тоже без лямбд можно спокойно
писать, карринг и первоклассность рулит, будет только чуть менее выразительно.
Здравствуйте, FR, Вы писали:
FR>Сейчас активно начал раскручиваться еще один язык на букву N, но не немерле, кстати тоже не совсем
я его год назад пробовал когда в ddj была статья. первое с чем я столкнулся — код, сгенерённый им для цикла (а у него проме. трансляция в С), был чем-то типа while. логически-то он был эквивалентен сишному for, но при этом сишный компилятор, натасканный на вполне опредённые паттерны, генерировал для него худший код. вот и вся эквивалентность С по скорости
а второе с чем я столкнулся — некокрректная компиляция какого-то кода всего в десяток строчек. в общем, one man show и пока не будет большего — никакого промышленного применения у него не будет
FR>>Сейчас активно начал раскручиваться еще один язык на букву N, но не немерле, кстати тоже не совсем
BZ>я его год назад пробовал когда в ddj была статья. первое с чем я столкнулся — код, сгенерённый им для цикла (а у него проме. трансляция в С), был чем-то типа while. логически-то он был эквивалентен сишному for, но при этом сишный компилятор, натасканный на вполне опредённые паттерны, генерировал для него худший код. вот и вся эквивалентность С по скорости
А пример есть воспроизводимый?
А то с этими замерами скорости сложно, мелочь какую поменяешь и все по другому.
BZ>а второе с чем я столкнулся — некокрректная компиляция какого-то кода всего в десяток строчек. в общем, one man show и пока не будет большего — никакого промышленного применения у него не будет
Ну язык сырой до версии 1.0 может быть в этом году и доползет, но сомнительно пока.
Мелких багов полно, но человек выше вроде как раз хотел развивать.
Здравствуйте, FR, Вы писали:
EP>>Лямбды/замыкания не являются определяющей характеристикой ФП. Есть ФЯ без лямбд — Unlambda, а также есть старый язык с замыканиями — Smalltalk — который совершенно не ФЯ. FR>Unlambda же карринг в полный рост,
Да, внутри реализаций комбинаторов, и что?
FR>в том же ML семействе тоже без лямбд можно спокойно FR>писать, карринг и первоклассность рулит, будет только чуть менее выразительно.
Судя по истории система проходила "рефакторинг" 2010-ом году и при этом там нет 64-ёх битных регистров (rax и т.п.)? Ужас какой) Я ещё понял бы, если бы файл был родом из начала 2000-ых...
Здравствуйте, BulatZiganshin, Вы писали:
FR>>А пример есть воспроизводимый?
BZ>http://rghost.ru/8cDsycywt test3.nim и test3.c который тогдашний компилятор сгенерил
Я имел в виду что есть ли пример на си и аналогичный пример на nim чтобы посмотреть
отстает ли и покопать почему.
А так он и сейчас примерно тоже самое и генерирует, но я не уверен что while будет
хуже for'а оптимизироваться.
Здравствуйте, BulatZiganshin, Вы писали:
_>>Вот как раз такой тупой код в лоб gcc и генерирует: BZ>ну извини, это называется смотришь в книгу — видишь фигу замени вот это _>> vpmaskmovd -32(%rdx), %ymm2, %ymm0 _>> vpaddd %ymm0, %ymm1, %ymm1 BZ>на vpaddd -32(%rdx), %ymm1, %ymm1. и это убери _>> vpandn %ymm3, %ymm2, %ymm2
Для таких очевидных правок не требуется даже в ассемблер лезть — достаточно убрать if из C++ кода. В итоге сгенерируется такое:
Здравствуйте, Serginio1, Вы писали:
S>Обрати внимание какие языки самые популярные в России S>Топ 10 языков программирования в России S>Как думаешь какой на первом месте?
Языки программирования linux и erp? ))) Хотя html и sql тоже хороши, но по сравнению с этими двумя даже сомнений не вызывают. )))
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, Serginio1, Вы писали:
S>>Обрати внимание какие языки самые популярные в России S>>Топ 10 языков программирования в России S>>Как думаешь какой на первом месте?
_>Языки программирования linux и erp? ))) Хотя html и sql тоже хороши, но по сравнению с этими двумя даже сомнений не вызывают. )))
Смех смехом, но можно проследить за требованиями работодателей
Программист должен знать то то и то то.
и солнце б утром не вставало, когда бы не было меня