Управление перспективных исследовательских проектов Министерства обороны США (DARPA) представило проект TRACTOR (Translating All C to Rust), развивающего транслятор для автоматического преобразования проектов на языке Си в представление на языке Rust. Транслятор примечателен использованием методов машинного обучения для достижения уровня результирующего кода на Rust, близкого по стилю и качеству к коду, написанному опытным программистом, и использующего только безопасные методы для работы с памятью без включения блоков и функций, помеченных ключевым словом "unsafe". Предполагается, что развиваемый транслятор позволит решить проблему с безопасностью старого кода на языке Си и избавиться от потенциальных уязвимостей, вызванных небезопасной работой с памятью и неопределённым поведением...Подробнее: https://www.opennet.me/opennews/art.shtml?num=61656
Слава Роботам !
Написано же - Тракторам :).
> Написано же - Тракторам :).Одно другому не мешает - трансформеры подтвердят!
https://en.wikipedia.org/wiki/DARPA
> Слава Роботам !Ага блин. Джинн, перепиши мне весь Linux Kernel на хруст... интересно же - грузиться вообще будет? :)
грузиться небезопасно, тебе это не нужно
> грузиться небезопасно, тебе это не нужноЗато смотри как здорово, можно хруст и не изучать - кому надо сам сконвертирует. Удобно же! И все довольны! :)
Будет, только надо докупить памяти, сейчас расту надо 120GB оперативки для раскручивания
https://github.com/dtolnay/bootstrap
Be aware that the complete bootstrap uses a lot of disk space. Bootstrapping up through rustc 1.40 requires 120 GB.
М-да, emerge всего остального @world просто отдыхает...
ичсх, без раста ff не соберёшь
> tmpfs
Тебе следует записаться на курсы базовой компьютерной грамотности, чтобы не путать RAM с persistent storage.
Все кто пишут на ржавом языке могут с него легко спрыгнуть: https://www.codeconvert.ai/convert-from-rust
У меня двоякое мнение, первое - над шахматными компьютерами все тоже смеялись по началу, но прошли десятилетия и теперь они непобедимы. Второе - как люди не пытались, они так и не смогли создать кошерный VLIW компилятор.Моя чуйка говорит, что здесь всё-таки второй случай. Этот трактор будет обсираться в своей трансляции в 1 случае из 100, но обсёр этот будет не просто эпичным, а астраномически эпичным и неуловимым, и чтобы его найти надо будет привлекать топовых программистов.
Топовые программисты в этом не помогут
> Топовые программисты в этом не помогутда и вряд ли захотят мараться.
>> Топовые программисты в этом не помогут
> да и вряд ли захотят мараться.А бестолковых - заменят на AI генераторы кода. Ну а чем гуано из под AI хуже чем гуано из под необучаемого чуркоджуна? AI к тому же перепишет 3 раза и не пикнет, если не устроило. А тот будет прибавку требовать, и вообще, синьора помидора из себя строить.
> А бестолковых - заменят на AI генераторы кода. Ну а чем гуано из под AI хуже чем гуано из под
> необучаемого чуркоджуна?необучаемого увольняют и нанимают - обучаемого. А с AI ничего не поделаешь (модели, как все мы помним, не дообучаются и не используют твой мат-перемат в прошлых сессиях по поводу их ответов для коррекции будущих)
> необучаемого увольняют и нанимают - обучаемого.Да что-то не заметно. Даже у гугли вон - ЯП типа го в почете. А хруст им уже видите ли слишком сложный для тех прогеров. И вообще, "мне сложно быть эффективным более 2 часов в день" (c) какой-то питонист тут. Заменить ЭТО на AI - epic win по всем направлениям. Геренит такой же мусор, настолько же понимает проблематику и контекст, да еще и перепсать не обламывается.
> А с AI ничего не поделаешь (модели, как все мы помним, не дообучаются и не используют твой
> мат-перемат в прошлых сессиях по поводу их ответов для коррекции будущих)А таки если попросить иной вариант - таки выдаст.
так другой вариант бреда и выдаст. Причем даже если повезет и с пятнадцатой попытки получилось нечто почти работающее - в следующий раз начнем с начала.ну и насколько часов в день тебе "несложно" окажется быть эффективным проверяльщиком бредятины нагенеренной ИИ - посмотрим-посмотрим.
Наверное, если иметь свою личную модель, которую кормить на ходу ее собственным но уже подправленным выхлопом - успех будет поближе, но кто ж тебе такую дасть и где ты эту прожорливую тварь будешь держать...
> так другой вариант бреда и выдаст. Причем даже если повезет и с
> пятнадцатой попытки получилось нечто почти работающее - в следующий раз начнем
> с начала.А ты логотип игогошки видел? Это его типовой пользователь :). Думаешь лучше сможет? Дааа?! И скажи еще спасибо что не питон, а то еще тормозило бы как крындец, жрало память не в себя - и наворачивалось бы с 3-страничном трейсом в любой момент, не барское это дело - ошибки обрабатывать, да и динамическая типизация такая няшка - можно приравнять гвозди к апельсинам, даже что-то сделает... какое-то время... а потом конечно навернется где-то. Но уже совсем не там. А потом еще через месяцок версия отъедет, или еще какая-то фигня.
Зато можно откосплеить взрослого дядю и заняться плотным дебагом на недельку. Ух, да, AI быстрее 15 версий выдаст, так то.
> ну и насколько часов в день тебе "несложно" окажется быть эффективным проверяльщиком
> бредятины нагенеренной ИИ - посмотрим-посмотрим.Учитывая что питонистам сложно юыть эффективными более 2 часов в день (c) - от них решения задачи в нормальном виде вообще можно ждать долго, а получить - фигу, или такое решение что лучше б оно фигой было. Проверено, тудыть :\
> Наверное, если иметь свою личную модель, которую кормить на ходу ее собственным
> но уже подправленным выхлопом - успех будет поближе, но кто ж
> тебе такую дасть и где ты эту прожорливую тварь будешь держать...Сп..^W позаимствует с работы пару суперсерверов - может даже и прокатит. Вон там уже у этих, иннахагентов, уже на 14, чтоли, миллиардов нашару вывалено. Кушайте не обляпайтесь.
>> необучаемого увольняют и нанимают - обучаемого.
>Да что-то не заметно. Даже у гугли вон - ЯП типа го в почете. А хруст им уже видите ли слишком сложный для тех прогеровУ них и раст в почете. Тут полгода назад на конференции технический директор гугла Ларс Бергстром рассказывал про портирование с го и плюсов на раст и результаты этого. Наверное он что-то выдумал про портирование с почетного го, ведь это сложно-невозможно:
"...Some additional context on these two specific claims:
Google found that porting Go to Rust "it takes about the same sized team about the same time to build it, so that's no loss of productivity" and "we do see some benefits from it, we see reduced memory usage [...] and we also see a decreased defect rate over time"
On re-writing C++ into Rust: "in every case, we've seen a decrease by more than 2x in the amount of effort required to both build the services written in Rust, as well as maintain and update those services. [...] C++ is very expensive for us to maintain.""
К написанию AI код можно подходить по-разному. Последний пеиск - это мультиагентный граф из разных LLM. Например:
- один агент пишет для С кода тесты
- второй агент запускает тесты
- третий агент переписывает С код на Раст
- четвёртый агент запускает код на Раст и отдаёт текст ошибок третьему
- пятый агент переделывает С тесты на Раст тесты
- шестой агент запускает Раст тесты
- седьмой агент получает рабочий Раст код и результат тестов и в случае фейла передаёт ошибку на переделкуВот из этих агентов строится граф, узлами которого являются разные LLM, обученные на своём домене. Рёбра графа - текст. Граф имеет внутренние циклы.
На вход графа подаётся исходник на С (возможно, уже существующие тесты на С), на выходе код на Раст, который собирается и проходит какие-то тесты.
>Топовые программисты в этом не помогутТоповые программисты благодаря этим телодвижениям как раз и закончатся, и станет просто некому искать такие проблемы.
> над шахматными компьютерами все тоже смеялись по началуНепобедимы они для человека без компьютера.
> Моя чуйка говорит, что здесь всё-таки второй случай. Этот трактор будет обсираться в своей трансляции в 1 случае из 100, но обсёр этот будет не просто эпичным, а астраномически эпичным и неуловимым, и чтобы его найти надо будет привлекать топовых программистов.
Если код УЖЕ существует, то к задаче ПЕРЕПИСАТЬ просто добавиться еще одна ПРОТЕСТИРОВАТЬ, что при наличии исходной кода будет сделать не очень сложно (доказать тождественность поведения)
>> над шахматными компьютерами все тоже смеялись по началу
> Непобедимы они для человека без компьютера.доо бро! Ты описал морской бой линкор vs линкор + ты на надувном утёнке :)
Галантерейщик и Кардинал - это сила! (С) Ди3М
Но мушку всё таки спили(С) :)> Если код УЖЕ существует, то к задаче ПЕРЕПИСАТЬ просто добавиться еще одна ПРОТЕСТИРОВАТЬ, что при наличии исходной кода будет сделать не очень сложно (доказать тождественность поведения)
Ну хойчем же так тупить то?!
Они исходный код протестировать и переписать на том же самом Си, но безопасно - не осилили (пока).Просто в DARPA тоже люди работают, им тоже хайпануть и пропиариться не чуждо :)
Ну а так то да - рано или поздно, но код будут писать роботы.
>>> над шахматными компьютерами все тоже смеялись по началу
>> Непобедимы они для человека без компьютера.
> доо бро! Ты описал морской бой линкор vs линкор + ты на
> надувном утёнке :)э... нет. Deep Blue скармливали инфу с ложечки цельной бригадой кожаных мешков. Они, конечно, врали что не подкручивают на ходу в сторону правильного направления. Так что надувных утенков будет с обеих сторон. И если с одной окажешься ты, а с другой - запрещенный в РФ экстремистский иноагент, чье имя нельзя-называть - чей линкор первым потонет, догадаться нетрудно.
>> Если код УЖЕ существует, то к задаче ПЕРЕПИСАТЬ просто добавиться еще одна ПРОТЕСТИРОВАТЬ,
>> что при наличии исходной кода будет сделать не очень сложно (доказать тождественность
>> поведения)протестировал. Ниработаит. И чо делать будиииим?
Учти, говорить об этом нейросети, судя по поведению чатгопоты - соврешенно бестолку. Она когда ее ловят на бредятине - просто отвечает новой бредятиной. Потому что ее критерии "обучения" - ни разу не выдавать точную информацию.
> Ну а так то да - рано или поздно, но код будут
> писать роботы.когда ж они будут-то... у меня столько идей...
> э... нет. Deep Blue скармливали инфу с ложечки цельной бригадой кожаных мешков.Дык эта ... даже неловко напоминать, но в обучение нейронки никакая нейронка до сих пор не может ... Так что пока ещё поживём ... учителями :)
> Они, конечно, врали что не подкручивают на ходу в сторону правильного направления.Конечно врали. Так устроен этот мир - посмотриииии (С) :)
> Так что надувных утенков будет с обеих сторон.
На текущем этапе развития - да. Да и на ближайшие просматриваемые годы - тоже ...
Но ведь настанет день и очередной кадавр окажется способен к самообучению ... 8-\> И если с одной окажешься ты, а с другой - запрещенный в РФ экстремистский иноагент, чье имя нельзя-называть - чей линкор первым потонет, догадаться нетрудно.
Над этим работают(С) И когда то - решат ... Ну по крайней мере - хотелось бы верить...
>> Ну а так то да - рано или поздно, но код будут писать роботы.
> когда ж они будут-то... у меня столько идей...Мы идём по пути строительства Коммунизма! Но в пути кормить - мы не обещали...(С) Приписывают ЛИБ-у :-)
>в обучение нейронки никакая нейронка до сих пор не можетАльфа Го - это самообучающаяся нейронная сеть была. Разве нет?
кажись нет, крутили параметры руками
Версия 2.0 была полностью самообучена.
>доо бро! Ты описал морской бой линкор vs линкор + ты на надувном утёнке :)Хорошая шутка! Спасибо за поднятое настроение!
>Ну хойчем же так тупить то?!Они исходный код протестировать и переписать на том же самом Си, но безопасно - не осилили (пока).
Ну и не тупи. Речь идет о том, чтобы доказать, что новая программа ведёт себя так же, как старая. Речь не идёт о том, чтобы доказать, что в новой программе совсем нет ошибок.
вообще-то поведение ни разу не эквивалентно,учитывая что старая программа содержит ненайденные дыры, поидее, переписанный Rust-аналог должен тоже segfault-иться (или вести себя неопределённо) в тех же местах что и C-код? :-)
или же Tractor как должен понять что от него хотят?
с таким же успехом его можно было бы спросить «где тут места с дырами — назови!» :-) без переписывания на Rust (то есть — без генерации нового кода, выглядящего как гоовно :) .. которое уже не захочет редактировать ни один программист своими руками)
> вообще-то поведение ни разу не эквивалентно,
> учитывая что старая программа содержит ненайденные дыры, поидее, переписанный Rust-аналог
> должен тоже segfault-иться (или вести себя неопределённо) в тех же местах
> что и C-код? :-)Так нельзя бить по ненайденным дырам, это удар ниже пояса. Нарушение правил безопасности поединка, техническая победа присуждается Свидетелю ИИ.
Если получаемый результат программы на Rust будет в большинстве случаев таким же, как на C, но без сегфолтов, то почему бы и не принять такое определение эквивалентности?
> добавится[простите, убрал из цитаты мягкий знак, ибо в глазах рябило] еще одна ПРОТЕСТИРОВАТЬТак, может, и начать сразу со второй задачи и "ПРОТЕСТИРОВАТЬ" сишный код? Тогда и на раст не придётся переписывать, теряя переносимость.
Протестировать сишный код на предмет отсутствия ошибок, ИМХО, гораздо более сложная задача, чем протестировать схожесть программы на Rust с программой на C.
> Если код УЖЕ существует, то к задаче ПЕРЕПИСАТЬ просто добавиться еще одна ПРОТЕСТИРОВАТЬ, что при наличии исходной кода будет сделать не очень сложно (доказать тождественность поведения)Так вроде это как раз и непросто.
По крайней мере в общем виде.
Навскидку:
Проблема останова
Формально верифицированый seL4 микрокернел по цене 400 у.е. за строчку кода (и обьем тестов намного превышает обьем самого код).
А что там сложного? Подаёшь на вход что-то, смотришь на выход. Если выход совпадает - тождественность поведения программ доказана. Другое дело, что иногда поведение совпадать не будет, потому что программа на Rust может закрыть какие-то баги программы на Си.А так, не следует путать формальную верификацию с доказательством тождественности поведения программ.
> А что там сложного?квалификация-с...
> Подаёшь на вход что-то, смотришь на выход. Если выход совпадает - тождественность поведения
_на_этих_конкретных_данных_
> программ доказана. Другое дело, что иногда
а теперь представим что как у любой нормальной программы - и данных неограниченное количество, и не всегда вручную можно два раза запустить в одинаковом исходном состоянии.
поэтому regression tests нихрена и не заменяют ручное тестирование.
>а теперь представим что как у любой нормальной программы - и данных неограниченное количество, и не всегда вручную можно два раза запустить в одинаковом исходном состоянииДля этого и нужна нейронная сеть, которая подобные вещи сможет предусматривать. А так можно было бы каким-нибудь тривиальным транслятором обойтись.
она соврешенно не так устроена. Ее критерий - максимальная похожесть сгенерированного бреда на реальный код который мог бы решать поставленную задачу. Авторы идеи почему-то предполагали что он при этом и будет ее решать, а не просто не работать.
Она не умеет ничего "предусматривать". И программировать тоже не умеет.Ну то есть на уровне джуна неудачника умеет - вместо "так... что делает эта строчка? А как такое принято делать в том языке с учетом того что я накостылил вместо предыдущих? Хммм..." ищет строчку в стековерфлове в отрыве от контекста. Строчка правильная, скорее всего, но две подряд - не работают, потому что описание что и как там дальше надо изменить чтобы на самом деле получилась замена - он не читал, ему некогда. А нейросеть не читала потому что и читать-то тоже не умеет.
> там дальше надо изменить чтобы на самом деле получилась замена -
> он не читал, ему некогда. А нейросеть не читала потому что
> и читать-то тоже не умеет.Ну смотри, пох, если тебя после каждогой хренового кода е...шить током - ты через некоторое время таки, вероятно, обучишься выдавать то что надзирателю нравится :-). Как именно ты это достигнешь никого не е...т! Алго прост - выдал какаху, получил током. И вот скажи еще что это не работает. Ага... будешь как зайчик генерять то что "надзиратель" хотел, угадывая 90% желаний :)). Ну вот и эти как-то так же...
> обучишься выдавать то что надзирателю нравитсяа надзирателю нравится - чтоб код был _похож_ на настоящий. До степени когда исправлять его на _работающий_ как настоящий - становится тяжелым трудом.
Поэтому получается бредогенератор.
(и нет, надзиратель возможно и рад бы использовать другой критерий, но таких моделей у нас для него нет - потому что в качестве исходной использовали модели предназначеные для имитации примитивного разговора живого но не слишком умного человека)
>> обучишься выдавать то что надзирателю нравится
> а надзирателю нравится - чтоб код был _похож_ на настоящий. До степени
> когда исправлять его на _работающий_ как настоящий - становится тяжелым трудом.Надзирателю надо - решать свои задачи, а код так, инструмент для этого. Хотят видимо безопасТность - и чтобы нашару, в уже существующем. Ну как, все и сразу, и заверните две.
> Поэтому получается бредогенератор.
Да ладно, что он, хуже типового хипстика чтоли? То что они обучаемее и умнее - не факт! :)
> исходной использовали модели предназначеные для имитации примитивного разговора живого
> но не слишком умного человека)Однако, я встречал успешные примеры багфиксов чатгоптем :)
> Надзирателю надо - решать свои задачи,пока задача - больше пиар моделей, а не реальная их продажа в розницу. Деньги дают инвесторы а не клиенты.
кот вообще-то нужен - покупателю, а не надзирателю. Тот может вообще в котах-то не очень, модели тренировать это не на хрусте кодить.
> Да ладно, что он, хуже типового хипстика чтоли?
ну если типовой это типовая индусня, которая программировать училась глядя через плечо на экран гуру - то наверное и не хуже. Но этих-то зачем же менять? Они ж и так за рупию в час пашут. Код за ними разбирать тоже, да, проще выкинуть и новых нанять.
> Однако, я встречал успешные примеры багфиксов чатгоптем
попробуй уговори его 12309 исправить?
>> Надзирателю надо - решать свои задачи,
> пока задача - больше пиар моделей, а не реальная их продажа в
> розницу. Деньги дают инвесторы а не клиенты.Это точно про DARPA было? Они так то не коммерческая организация как таковые. Так что этих явно интересует какой-то практический результат, а не хайп. Зачем DARPA-е хайповать?
...зато потом когда вон те страж-птички к тебе полетят и будут разить еще до того как ты муху прибить собрался, не говоря о чем покрупнее - вот тогда будет хорошо :). Китайцы, кстати, дроны похожие на птиц уже запилили, во. Так что скоро будешь ныкаться в подвал от голубей, нафиг.
> кот вообще-то нужен - покупателю, а не надзирателю. Тот может вообще в
> котах-то не очень, модели тренировать это не на хрусте кодить.У DARPA покупатели специфичные, и им надо не маркетинговый булшит, имхо.
> ну если типовой это типовая индусня, которая программировать училась глядя через плечо
> на экран гуру - то наверное и не хуже.Да тут такие же на опеннете есть, в основном от го и питона, конечно. Не думаю что AI сможет хуже. Выдаст такую же какаху такого же джуна подсмотренную вон там через плечо.
>> Однако, я встречал успешные примеры багфиксов чатгоптем
> попробуй уговори его 12309 исправить?Дык у меня он не воспроизводится - как мне его проверять то? Так что если AI вменяемый, он должен послать на закрытый баг и объяснить что надо новый завести :)
>> пока задача - больше пиар моделей, а не реальная их продажа в
>> розницу. Деньги дают инвесторы а не клиенты.
> Это точно про DARPA было? Они так то не коммерческая организация как таковые.и про них тоже. Они именно не коммерческая организация с кучей денег.
Которые пихают под дверь разным хикканам и ждут результата. Чаще всего за дверью чавкают пиццей и рыгают колой. Иногда получается интернет. Угадать невозможно, они и не стараются, просто выбирают то что им кажется перспективным.>> попробуй уговори его 12309 исправить?
> Дык у меня он не воспроизводится - как мне его проверять то?насколько я понимаю, нужно чтоб количество памяти в системе было достаточным чтобы сброс всего буферного кэша не мог быстро пролезть в дисковую подсистему и создал в ней продолжительный затор.
Т.е. умные ворота не подходят.Дальше нужна линейная запись, многократно превышающего кэши объема. И на фоне нее - рандомное чтение-записи. Вот оно встанет колом.
>>> попробуй уговори его 12309 исправить?
>> Дык у меня он не воспроизводится - как мне его проверять то?
> насколько я понимаю, нужно чтоб количество памяти в системе было достаточным чтобы
> сброс всего буферного кэша не мог быстро пролезть в дисковую подсистему
> и создал в ней продолжительный затор.
> Т.е. умные ворота не подходят."Сброс кеша" - это объявление страниц ОЗУ свободными. На накопитель сохраняются т.н. грязные страницы отображённых файлов и буфера записи.
> Дальше нужна линейная запись, многократно превышающего кэши объема. И на фоне нее
> - рандомное чтение-записи. Вот оно встанет колом.Дальше нужно собрать ядро с конфигом от Пока Линукс (оно что-то вроде checked build в Windows) и запихать подкачку в ZRAM. Впрочем, на новых ядрах может и не сработает, не проверял.
>>> розницу. Деньги дают инвесторы а не клиенты.
>> Это точно про DARPA было? Они так то не коммерческая организация как таковые.
> и про них тоже. Они именно не коммерческая организация с кучей денег.У DARPA "инвесторы" специфичные, и хотелки у них - тоже. Что они хотят - не разбазаривать бабки и оптимизнуть bang per buck, потому кризис маячит, много денег "инвесторы" из бюджетов уже - не дадут! И тут поневоле задумаешься чтобы децимацию всяким квотам произвести, да и заменить 1 бредогенератор другим, столь же функционально, зато не качает права и не требует прибавки, еще и переписывает влет.
> Которые пихают под дверь разным хикканам и ждут результата. Чаще всего за
> дверью чавкают пиццей и рыгают колой. Иногда получается интернет. Угадать невозможно,
> они и не стараются, просто выбирают то что им кажется перспективным.А, к вопросу о пицце! Оказывается, жор пиццы в конкретном районе, например, вокруг Пентагона - великолепный индикатор с почти 100% корреляцией. Кстати, недавно жор пиццы в этом районе вырос. Так скоро будет что-то интересное видимо. Вот видишь, какой важный топик пицца на самом деле.
>>> попробуй уговори его 12309 исправить?
>> Дык у меня он не воспроизводится - как мне его проверять то?
> насколько я понимаю, нужно чтоб количество памяти в системе было достаточным чтобы
> сброс всего буферного кэша не мог быстро пролезть в дисковую подсистемуНу так с неких пор к подсистеме ядра приделали эвристику определяющую медленные сторажи и ограничивающие им dirty до разумных величи. Ну и кернелы ессно есть с форсированым преемптом, 1000Гц таймером и проч.
> и создал в ней продолжительный затор.Т.е. умные ворота не подходят.Да оно и на жирном воркстейшне не проявляется. Там, конечно, SSD под системный диск, его вообще хрен чем озадачишь надолго, и ZRAM как своп, с 1000Hz "dynamic preempt" ядром, так что при OOM - ну, перфоманс проседает секунд на 5 разика в 2-3, из-за активной декомпрессии-рекоспрессии страниц ZRAM, потом за runaway приходит OOM killer, раздает слонов. И весь "12309" в наихучем виде. Вот я и думаю как и что воспроизводить, даже теоретически? :)
Там, на самом деле, еще есть 1 мелкий косяк, не имеющий отношения к 12309, но тот факт что бинари программ юзаются как "расширение свопа" в том смысле что их паги по мнению ядра можно отбросить при душняке - и перечитать с диска потом, если надо. На механике, наверное, это может и тупануть в каких-то раскладах. Но по другим причинам (seek при подчитке страниц когда они потребовались). Но на системе с SSD это уже совсем неактуально стало, там такой псевдосвоп вообще скорее фича: с одной стороны не протирает диск, не тормозит особо, с другой, при душняке отыгрывает памяти. А хранить систему на механическом диске... ну... кто-то и грампластинки, конечно, слушает :)
> Дальше нужна линейная запись, многократно превышающего кэши объема. И на фоне нее
> - рандомное чтение-записи. Вот оно встанет колом.Вот именно вот это вот - таки вроде более-менее придушили как раз. Это не значит что в принципе невозможны какие-то иные дурные ситуации - но если они отличаются по механизму, очевидно, это ДРУГОЙ баг. В штуке размером с кернел может быть более 1 бага, внезапно :)
Хотя я могу подсказать как срубить джекпот. Поставить систему на механический стораж. Ввинтить своп побольше. Юзануть 100Гц серверный кернель без preempt'а. А потом, когда какой-нить сискол встанет, наконец, в хорошенько нагруженной системе р@ком минут на пять - насладиться от души характерным blocking экспериенсом с "низкой" латенси, ну, раз preempt'ить его нельзя, и 2% в бенчмарке ваше все - оно взамен как-то вот так получается :)
> факт что бинари программ юзаются как "расширение свопа" в том смысле что их паги по мнению ядра можно отбросить при душняке - и перечитать с диска потом, если надо."Пафиксили" уже в 6.11, разрешив писать в файлы, из которых процессы запущены
> Предоставлена поддержка записи в исполняемые файлы, связанные с работающими процессами. Ранее, как и в других Unix-подобных системах, ядро выводило ошибку при попытке записи в исполняемый файл запущенного процесса. Данное ограничение снято, так как оно лишено практического смыслаhttps://www.opennet.me/opennews/art.shtml?num=61869
Во-первых, не все нейронные сети так устроены. Например, AlphaGo Zero (вторая версия исходной AlphaGo) училась играть в го с нуля сама с собой.
Во-вторых, коль мы говорим о задаче транслирования кода с одного языка программирования на другой, думаю, это вполне под силу современным нейронным сетям. Откуда такая уверенность? Гугло-переводчик (или любой другой аналогичный) для человеческого языка (который куда сложнее любого языка программирования) вполне неплохо справляется же.
> Гугло-переводчик (или любой другой аналогичный) для человеческого языка (который куда сложнее
> любого языка программирования) вполне неплохо справляется же.плохо, очень плохо он справляется.
Если ты конечно достаточно знаешь оба языка, чтобы оценить.
Уж про мем "Обама виноват" ты наверняка слышал.А если язык еще и не самый распространенный и семантически далек от английского - ты вообще скорее всего ничего в этом "переводе" не разберешь. Попробуй вон иврит или сингала.
Именно потому что они отказались от использования словарей (типа, ну нафиг еще денех платить тому кто будет словарь составлять) в пользу только и единственно своего статистического анализатора. (Которому верили больше чем себе.)
Но это, конечно, и не ИИ. Тот бы тебе такого набредил, что вообще не удалось бы угадать суть настоящего текста.
> плохо, очень плохо он справляется.Возвращаясь к тому, что было лет надцать назад - просто отлично переводит - по моим наблюдениям (хотя я пользуюсь переводчиками редко для больших кусков текста) - примерно 80-90 процентов вполне себе корректно. Косяки встречаются, и очевидно, что для полноценного перевода нужно понимание переводимого. А с этим пока проблемы. Но современные LLM вполне себе могут пройти тот самый тест на человекоподобность, который был популярен в прошлом веке при тестировании всяких там экспертных систем.
> Уж про мем "Обама виноват" ты наверняка слышал.
Не слышал.
> в пользу только и единственно своего статистического анализатора
Там не только статистический анализатор. Там ещё есть промежуточный язык. И вот он, как раз, помогает справиться с языками, которые менее распространены, чем другие. То есть, сначала с исходного языка перевод идёт в него, а потом с него - в целевой язык.
> Но современные LLM вполне себе могут пройти тот самый тест на человекоподобностьПфффф... Подогнать под ответ могут все
А ты спроси свою любимую модель
"У Алисы 2 брата и 3 сестры. Сколько сестёр у брата Алисы?"
Вот мы и поржём. Пока опять не подгонят под ответ.
И я так понял что что такое проблема останова ты не прочитал или не осознал.
На пальцах обьяснение пох тебе же написал - вариантов входных данных много. Врукопашку юнит тестами не покроешь
А вот алгоритма проверить другой алгоритм - нет (ну или не придумали)
Говорят что функцональщина вроде Хаскела это может, но "это не точно"
> А ты спроси свою любимую модель
> "У Алисы 2 брата и 3 сестры. Сколько сестёр у брата Алисы?"Алиса это мальчик, девочка или вообще умная колонка?
А то в современном мире случается всякое)
> Вот мы и поржём. Пока опять не подгонят под ответ.Ну так мясные мешки тоже не все ответят.
Треть народу думает что солнце вокруг земли крутится.
Оно тест на "человекоподобность" тоже не пройдут?
> ПРОТЕСТИРОВАТЬ, что при наличии исходной кода будет сделать не очень сложно (доказать тождественность поведения)Невозможно, если ты не получишь одинаковый IR или asm. Точнее это может быть возможно теоретически, но там проблема останова и все такие вещи начнут путаться под ногами. Кроме того, я не думаю, что доказательства на уровне машинного кода в принципе могут прокатить: толку от Rust кода, если он 1-в-1 повторяет C'шный? Нет никаких проблем написать транслятор C в rust+unsafe. Но хочется ведь снизить количество багов? А если из C'шного кода убран один баг, то мы получаем уже неэквивалентный код, про который можно доказать, что он отличается своим поведением.
Задача далеко не тривиальна.
Полную тождественность - скорее всего невозможно. А достаточную, думаю, вполне.
> Полную тождественность - скорее всего невозможно. А достаточную, думаю, вполне.Анекдот советских времён
- Сколько будет 2x2?
- Семь?
- Ну да, где-то так, пять-шесть...
Как они могут быть тождественны, если в Си есть UB и гадай, что хотел сказать программист. Так и задумано или заданных условиях теоретически возможно, но практически не будет. Или (void*) это формально не описать, что в реальной задаче может прилететь.
> Как они могут быть тождественныЧастично.
Скорей всего оно транслирует то, что легко транслировать, а остальное набьют людьми. По крайней мере это был бы наиболее рациональный подход.
То что легко транслировать - и без AI делается, приснопямятные Py2->Py3, P2C и куча подобного уж лет 30 существует ...В том то и мякотка что впервые появилась надежда трансливровать то, чего те простые автоматы сделать не могли. Смогут ли? АХЗ...
У вообще меня впечатление что чатгопота выложена публике потому как кому надо - это уже пройденный этап ;-)
> У вообще меня впечатление что чатгопота выложена публике потому как кому надо
> - это уже пройденный этап ;-)бредогенераторы тоже были уже 30 лет назад, без всякого Ai.
Так что да - пройденый.
>То что легко транслировать - и без AI делается, приснопямятные Py2->Py3, P2C и куча подобного уж лет 30 существует ...C2Rust тоже уже есть https://github.com/immunant/c2rust
Топовые программисты побрезгуют связываться с rust во-первых, а во-вторых, разгребать портянки сгенеренные машиной.
Топовые программисты пишут на Раст)
говорят, зарплата сильно притупляет брезгливость
>над шахматными компьютерами все тоже смеялись по началу, но прошли десятилетия и теперь они непобедимы.Вот только всё так же бесполезны. Но да, делают свою бесполезнгую работу эффективней человека.
Почему сразу бесполезны? Шахматы - это часть индустрии развлечений. Захотел интеллектуально развлечься - берёшь такой компьютер, и вот оно счастье. Причём ты заранее застрахован от игры с голубем.
> Почему сразу бесполезны? Шахматы - это часть индустрии развлечений. Захотел интеллектуально
> развлечься - берёшь такой компьютер, и вот оно счастье. Причём ты
> заранее застрахован от игры с голубем.с голубем было поинтересней...
С голубем по-прежнему можно "сыграть", если уж так сильно хочется.
> но прошли десятилетия и теперь они непобедимы.Жигули быстрее любого бегуна (если заведутся). Перестаем бегать и пересаживаемся на Жигули?
Зависит от конечной цели. Если у тебя задача доехать из пункта А в удаленный, например, на 50 км пункт Б, очевидно, что Жигули - более оптимальное средство передвижения, чем собственные ноги.
>> но прошли десятилетия и теперь они непобедимы.
> Жигули быстрее любого бегуна (если заведутся). Перестаем бегать и пересаживаемся на Жигули?Они даже и летать умеют. Воооон, разогнать и фьють с обрыва - видишь - не аэроплан, а летит! И даже аэродинамика кирпича не мешает полету. А вы говорите. Джеймс Бонд завистливо покуривает в сторонке.
Тестируй https://www.codeconvert.ai/c-to-rust-converter
> Тестируй https://www.codeconvert.ai/c-to-rust-converterOnly the first 4,000 characters will be converted.
даже хеловрот не поместился.
А, впрочем нашел один подходящий. Ну как и следовало ожидать:
unsafe {
все остальное
}дальше в общем и смотреть незачем.
ой, нет, есть, есть на что посмотреть, там в комментарии можно дополнительно попросить- я и написал - minimize unsafe parts. "Стоит статуя - вообще без ...я!"правда, хеловрот оперировал статической переменной, а тут она внезапно превратилась в параметр.
> А, впрочем нашел один подходящий. Ну как и следовало ожидать:
> unsafe {
> все остальное
> }Ааа, блин, чуда не произошло :(
Очень интересно как оно будет переносить сишную адресную арифметику в раст без ансейв.
Спрячет за 3 лефтпадами в глубину.
Обернёт в враппер))))
враппер будет unsafe ?
Есть такая штука - "табличный эмулятор". Это когда на вход подают все возможные данные, а на выходе получают ответы и записывают. С появлением 64-х разрядных процессоров 4 гигабайта перестали быть проблемой.)
Проблема в том, что обычно Сшная программа написана в каком-то контексте, то есть, работает при относительно ограниченном наборе исходных данных.В то же время, переводчик на Rust, будь это живой программист или AI, не обладая этим контекстом напишет сильно неоптимальную программу. В ней, к примеру, будет реально уйма мёртвого кода, достижимого фаззерами, но не работающего на практике. Ряд вещей будет сильно неидеоматичен.
С другой стороны, если мы говорим про "безопасную" или стремящуюся стать такой Сшную программу, то она, конечно, работает на всём наборе данных.
Неоптимальная программа в данном случае очень хороша, поскольку даст основания для дополнительного финансирования. А авторы суперкомпилятора OCaml https://github.com/mazeppa-dev/mazeppa и подобного так и будут просить на кофе...
Они пытаются продать тебе рефал завёрнутый в фантик :)
И надо же! - дураков не находится :))))
Там нет Рефала, а фантиков уже давно напродавали всяких всем подряд.
Человек, незнакомый с предметной областью, сделает те же ошибки.Так пусть бесполезной фигнёй занимаются роботы, если уж кому-то приспичило.
Предположу что проблем примерно 0, т.к. с одной стороны они не отказываются от unsafe, а лишь максимизируют трансляцию в Rust код без unsafe, т.е. им ничего практически не стоит написать наколеночный транслятор из си в раст испестрённый unsafe, но это бессмысленно + код будет неидиоматичен. В остальном я предположу, что скорее всего транслятор работает в связке с llvm - скорее всего они гоняют в llvm ir и наоборот, как итог во первых они могут транслировать в общем то не си, а llvm ir, а во-вторых - такая задача сводится на самом деле всего лишь к реверсу(тогда как классическая компиляция это rust -> ir -> машинный код, то им нужно по сути выполнить восходящую транспиляцию llvm ir -> Rust). Другой вопрос что не совсем понятно какую роль тут выполняет пресловутый AI, ибо если решатель неопределённостей, эвристика это одно, если трансляцию выполняют в лоб, то это странно. Скорее всего используют первый вариант, но тут тогда интересен подход.
AI тут нужен в первую очередь для того,чтобы "понимать", где в программе важно транслировать поведение один в один, а где так делать не надо, ибо это очередной хитро спрятанный косяк.
> Очень интересно как оно будет переносить сишную адресную арифметику в раст без ансейв.Адресную арифметику перенести легко. Проблема скорее в том, что на расте сложно в лоб повторить оригинальную задумку автора. В расте надо использовать другие паттерны и архитектуру, чем в переписываемом коде.
Например, попробуйте написать MVVM на расте. Спойлер, в расте нет ни одного MVVM фреймворка (https://github.com/rust-unofficial/awesome-rust?tab=readme-o...) так как там требуются перекрёстные ссылки родителей и детей.
Соответственно, этот транслятор должен не просто переписывать c в раст, а он должен переписывать архитектуру приложений на совместимую с растом.
К слову, это и есть недостаток раста. Он не даёт писать непродуманный код. И все сишники бесятся из-за этого.
> Например, попробуйте написать MVVM на расте. Спойлер, в расте нет ни одного MVVM фреймворка [...] так как там требуются перекрёстные ссылки родителей и детей.Ага, и деревья в расте невозможно реализовать. И двусвязный список тоже.
Возможно, конечно. Но с использованием unsafe.
"Но" здесь неуместно. unsafe -- неотъемлимая часть rust'а, без него даже банальные массивы реализовать невозможно, ты можешь глянуть в код std и полюбоваться на unsafe'ы там.Религиозный отказ от unsafe'ов в расте -- это идеология для промывания мозгов подавляющему большинству. Когда подавляющее большинство избегает unsafe'ов как воняющего г-ном бомжа, это сильно упрощает жизнь. unsafe реально сложно использовать не наступив на грабли UB, и помимо этого, надо быть достаточно идеологически продвинутым, чтобы понимать когда unsafe уместен.
Но если 100% растоманов будут следовать этой идеологии, то раст загнётся.
Возвращаясь к утверждению что в расте нет mvvp фреймворков, из-за borrow checker'а, я для ясности могу без всяких сарказмов сказать, что это бред. Если бы mvvp фреймворки были бы полезны, если бы они были бы кому-нибудь нужны, он бы разрулил проблемы с борроу-чекером. Например, можно хранить не ссылки на объекты, а идентификаторы этих объектов, и получать объект по идентификатору на краткие моменты тогда, когда это надо. Можно использовать channel'ы, и вместо вызова методов, передавать команды по channel'ам... Можно даже передавать лямбды по ченнелам, чтобы они выполнились бы в контексте где объект доступен через mut ссылку. Или можно хранить raw-указатели, и ломать потом голову как бы сочинить API, который не позволит нарушать гарантии раста. Это навскидку три подхода к проблеме. Первые два в принципе позволяют обойтись без unsafe. Говорить о том, что раст не позволяет такое писать просто неверно.
Или четвёртая идея: если я правильно понимаю mvvm, можно собрать v, mv и m в качестве членов структуры mvvm, в них не хранить никаких перекрёстных ссылок, вместо этого выдавая им эти ссылки при вызовах методов. Я не знаю, как там этот mvvm задуман работать, но мне кажется, что возможно реализовать основную логику взаимодействия между компонентами в модуле mvvm, которые реализует структуру Mvvm, а эти V, MV и M будут реализовывать какие-нибудь простые и понятные трейты. И опять же, это не требует unsafe.
> Возвращаясь к утверждению что в расте нет mvvp фреймворков, из-за borrow checker'а, я для ясности могу без всяких сарказмов сказать, что это бред.покажи хоть один
> можно хранить не ссылки на объекты, а идентификаторы этих объектов... Можно
> использовать channel'ы, и вместо вызова методов, передавать команды по channel'ам... Можно
> даже передавать лямбды по ченнелам, чтобы они выполнились бы в контексте
> где объект доступен через mut ссылку. Или можно хранить raw-указатели, и
> ломать потом голову как бы сочинить API, который не позволит нарушать
> гарантии раста. Это навскидку три подхода к проблеме. Первые два в
> принципе позволяют обойтись без unsafe.Ну прогнал ты mvvm приложение через AI транслятор. На выходе получил какой-то код, который как-то работает. Вот с всем вот этим вот, что ты написал. Ну или не работает. В приложении миллион строк кода бизнесс-логики. Что дальше будешь делать?
> К слову, это и есть недостаток раста. Он не даёт писать непродуманный
> код. И все сишники бесятся из-за этого.Это достоинство.
Запишет шеллкодами.
> Министерства обороны США (DARPA)А с чего такая щедрость?
Много где участвуют:
https://www.hpcwire.com/?s=darpa
>> Министерства обороны США (DARPA)
> А с чего такая щедрость?они тебе еще и интернет подарили.
Точно нам на погибель!
Так и есть, если бы не DARPA в своё время, комментаторы опеннета чем-то полезным занимались бы, а не комменты строчили.
фидо-ноды пердолили бы, чего в этом полезного-то?Впрочем, глядя на нынешний их уровень - да, уцелело б меньше десяти процентов. Остальные не справились бы с настройками.
То то в советское время все полезным делом занимались. Даже Сталин не всех заставил, а кого заставил КПД было близким к нулю, ибо насильно. Таков человек по природе. Интерес должен быть и личный и общественный, а для этого за работой реальное, действующее будущее должно быть видно.
> То то в советское время все полезным делом занимались. Даже Сталин не
> всех заставил, а кого заставил КПД было близким к нулю, ибо насильно.Просто плохо старался. (Его задачей было не заставить а больше угробить)
Я тут в свое время рассказывал, повторять детали лень, сам ищи первоисточники.
Вкратце: 1. почему на фотоальбоме для БАМовцев выпущенном в год официального открытия (уже при РФ!) - сплошь люди в форме (нет, первое твое предположение ошибочно)
2. почему вся мощь пропагандистской машины, принудительных распределений, комсомольских и не очень поездов в прекрасное далеко увозивших пачками - на пике могущества издыхающего но тогда еще не издохшего совка позволила только лишь с неимоверным трудом положить рельсы туда где они УЖЕ ЛЕЖАЛИ в 30м году
3. что случилось с теми кто клали их в первый раз и почему
4. а вот после осознания всего этого - а как же был построен - транссиб? В ТЕХ ЖЕ САМЫХ е-нях, но при проклятой царской власти, когда ни бульдозеров, ни путеукладчиков, топор да лопата. Без ритуальных песен и плясок по радио и телевизору, без все как один умрем в борьбе за не-й, ни один крестьянин в полтавской губернии наверное и знать не знал о виликай стройке ?> Таков человек по природе. Интерес должен быть и личный и общественный,
> а для этого за работой реальное, действующее будущее должно быть видно.БАМ опровергает это твое утверждение. Феерически бесполезная хрень неимоверных масштабов посреди непригодного для жизни п-ца.
Хорошо еще реки не успели повернуть. А то ж могли.
Впрочем, египетские пирамиды построены четыре тысячи лет назад. Вот ты думаешь тем рабам оно было надо?
> Впрочем, египетские пирамиды построены четыре тысячи лет назад. Вот ты думаешь тем рабам оно было надо?Ну про рабов это миф.
Естественно они там были, но большая часть были профессиональные рабочие, которые получали неплохое довольствие.
Ну если провести аналогию - то если завтра рыжий кандидат в президенты решит построить Великую Стену за гос.деньги, и будут платить "выше среднего по рынку", то целая куча народу пойдет туда просто заработать.Но совок переплюнул даже египтян. И по использованию рабов, и как быстро этот кадавр помер.
> Ну про рабов это миф.думаешь, комсомольцы? ;-)
Ну в общем, когда найдешь ответы на первые три вопроса - ткни тут в реплай про четвертый. Первые в общем -то гуглятся, а про четвертый я нашел ответ случайно и совсем не там где можно было подумать.
>Ну про рабов это миф.
>Естественно они там были, но большая часть были профессиональные рабочие, которые получали неплохое довольствие.Оба-двое налажали. Рабов, как и "профессиональных" рабочих там не было, были общественные работы за жрат, если вкратце. Под руководством представителей храмов.
А ещё работникам выдавали пыво! :)
> Ну если провести аналогию - то если завтра рыжий кандидат в президенты
> решит построить Великую Стену за гос.деньгиСекрет в том, что он уже один раз её не построил. Ничто не мешает ему сделать то же самое и второй раз.
> КПД было близким к нулюИмеешь на руках сопоставления выработки лесорубов в лагере и артели на соседней делянке?
> ибо насильноА не насильно оно шаболдалось по аллеям парка, глазело по сторонам и подбирало рифмы - ноль спиленных ёлочек в день. А с насилием хоть какой-то КПД.
С того, что рутовать телефоны ты больше не сможешь.
https://ru.wikipedia.org/wiki/Intel_Management_Engine
https://en.wikipedia.org/wiki/CHIPS_and_Science_Act
https://en.wikipedia.org/wiki/AMD_Platform_Security_Processor
Безопасный код на Си написать невозможно, потому что стандарт языка напичкан UB в самых принципиальных местах -- там, где компиляторам свободы давать было нельзя.
Всё так, увы.
Дык -fno-strict-overflow (-fwrapv + -fwrapv-pointer), -fno-strict-alias.Чтиво об их полезности: "How ISO C became unusable for operating systems development" https://arxiv.org/pdf/2201.07845
integer promotion из беззнакового в знаковое веселья добавляет.
Интересное чтиво. А есть ещё?
> Интересное чтиво. А есть ещё?Самое очевидное: в стандартном C нельзя разложить объект в конкретную секцию. Так что даже таблицу векторов какую-нибудь для фирмвари - без гнутых расширений хрен оформишь. А что делать если она должна быть в начале бинаря, по конкретным адресам - и никак иначе?!
Так что получается что си как бы системный, но как только в эту системщину, так сразу и прощай стандарты.
Да я вообще не понимаю, что за парадокс такой?!
Потому что это универсальный язык, а не под конкретный формат бинаря. Потому и в стандарте такого быть не должно
> Потому что это универсальный язык, а не под конкретный формат бинаря. Потому
> и в стандарте такого быть не должноА в каком месте штука типа __attribute__((section("section"))) у объекта в сях подразумевает какой либо формат файла? Оно лишь просит положить вот это в секцию "section". Никаких допущений о формате как таковом - не делается. Только о том что при линковке это должно быть в такой секции. Данная директива в GCC/Clang работает с РАЗНЫМИ форматами исполняемых и объектников.
И да, нехило бы и линкерскрипты стандартизовать, взять лучше всего то что GCC/Clang юзают, один черт самое распостраненное уже (у этой парочки одинаково сделано). Ну и это можно затребовать например в C2X, а то не умеет, noncompliant и декларит более винтажный стандарт. Какие-то проблемы?
А без этого системщина получается, как бы это, не очень системной. Ибо некоторые вещи должны быть в конкретных локациях, а не абы где. Де факто все практически существующие форматы объектников и бинарей - умеют секции так или иначе. И вот как раз "raw binary" фирмвары потом - постпроцессится из кучи секций, через objcopy. Так что бутлоадер - туда, ранний инит сюда, таблицу векторов - вот тут... и получается что мы это делаем как си, но не стандартный си, а GNU C :). А с этой вашей пропертарой или менее попсовым компилером - вы мою фирмварь вообще совсем никак не соберете в результате. Ну вот такой вот стандарт.
Нормальные люди UB не используют и никаких проблем.
Просто не используешь UB? На каждую хитрую гайку найдётся свой болт.C[1]: "to make the existing compiler behaviour sound it is necessary for this program to be deemed to have undefined behaviour"
Rust[2]: "It doesn't make sense to have a bug for every LLVM bug - CLOSED"
[1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2676.pdf
[2] https://github.com/rust-lang/rust/issues/45839#issuecomment-...
>Просто не используешь UB? На каждую хитрую гайку найдётся свой болт.Некорректное высказывание.
> C[1]: "to make the existing compiler behaviour sound it is necessary for this program to be deemed to have undefined behaviour"
> [1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2676.pdfВ следующий раз попробуй прочитать больше одной строки в документах, на которые выкладываешь ссылки. Твоя цитата относиться к примеру кода, который сами авторы называют "пограничным случаем", и который придуман специально для исследования, а не для продакшона:
"For example, consider the classic test [Fea04, KW12, Kre15, CMM+16, MML+16] below. Note that this and
many of the examples below are edge-cases, exploring the boundaries of what different semantic choices allow, and
sometimes what behaviour existing compilers exhibit; they are not all intended as desirable code idioms."
Вобщем, типичный "борцун с дыряшечкой" - слышал звон, да не понял, о чём он.
Надо добавить в стандарт. "Пограничнослучайное поведение - поведение, расцениваемое некоторыми как неопределенное. В случаях пограничнослучайного поведения рекомендуется ориентироваться не на текст стандарта, а на поведение вашего компилятора".
УБ нигде свободы давать нельзя
А без UB нельзя было бы писать эффективный код.
>Безопасный код на Си написать невозможноМожно, только на на современных цисках и франкинштейн-рисках.
Давеча на работе столкнулся с жором памяти C++ по сравнению с C на микроконтроллере для производства одной современной железки. Rust и без того славится жирными бинарниками, меня терзают смутные сомнения на счёт качества представленного в новости поделив и его трансляций.
Никто в здравом уме в контроллер раст на засунет. Хотя таких людей конечно меньшинство.
А почему нет-то? Даже под AVR на rust пишем, в среднем получается код размером ничем не отличающийся от C, только rust выразительнее и безопаснее, удобнее тестировать, а главное - он единственный из низкоуровневых языков где под bare metal можно использовать врешние библиотеки без ручной работы. Если на C/C++ у тебя нет никаках вариантов кроме вендоринга (а это злейшее зло из-за необходимой ручной работы и её повторении при каждом обновлении), то тут это банальный cargo add с возможностью обновления в любой момент, при этом нужные крейты явно умеют nostd.
Python (MicroPython) и JS (Espruino) же засовывают.
Почему же. Rust embedded без std существует. И даже конференции проводят. Они наверно что-то не знают.
Да. Они не знают что такое embedded :)
Они думают что если писюк воткнуть в автомобиль всиО - он встроенный :))))
«Все смешалось, люди, кони»
Rust просто по умолчанию компилирует с отладочной информацией.На С++ тоже гигантские бинарники, если включить отладку.
> На С++ тоже гигантские бинарники, если включить отладку.Тот же код на С++, консольное приложение, цель - релиз, компилятор g++. На Linux исполняемый модуль 270 Кб, на Windows 3,5 Мб. В чем причина может ыть?
Собран с динамическими и статическими библиотеками соответственно
> Rust просто по умолчанию компилирует с отладочной информацией.Раст по умолчанию вкомпилирует std-либу:
rustc -O -C link-args=-s hello.rs && ll hello
-rwxr-x--- 1 анон wheel 374K 5 Aug. 19:37 hello*rustc -O -C prefer-dynamic -C link-args=-s hello.rs && ll hello
-rwxr-x--- 1 анон wheel 6,9K 5 авг. 19:36 hello*gcc -O2 -s hello2.c && ll a.out && cat hello2.c
-rwxr-x--- 1 анон wheel 5,3K 5 авг. 19:36 a.out*
#include <stdio.h>
int main( void )
{
puts("Hellо врот");
return 0;
}
Правда, как тут анонимные комментаторы (в каждой расто-новости) получали многоМБ-айтовые "жирные" бинарники, я так и не понял.
> Правда, как тут анонимные комментаторы (в каждой расто-новости) получали многоМБ-
> айтовые "жирные" бинарники, я так и не понял.Go по ошибке запустили, с кем не бывает? :)
А ведь можно всё сделать на ассемблере уложившись в десяток байт (не считая .data секции). Ненужное вырезать, оставить только .code и .data.
> А ведь можно всё сделать на ассемблере уложившись в десяток байт (не
> считая .data секции). Ненужное вырезать, оставить только .code и .data.Если ты пишешь исключительно хллоуворлды - то да.
А если надо написать что-то сложнее, то запаришьтся на АСМе писать.
Ну или будет 10 лет страдать фигней, пока твои коллеги уже написали и забыли.
> А ведь можно всё сделать на ассемблере уложившись в десяток байт (не
> считая .data секции). Ненужное вырезать, оставить только .code и .data.Ну уложи. Кстати, разрешаю слияние (merge) .code+.data (все равно один фиг упрется в выравнивание и мин. размер секции, который согласен "проглотатить" конкретный загрузчик эльфов/пе).
Только чур, чтоб хотя бы на пянгвине, бзде и венде с макосью собиралось и работало.
Ну и по процам чтоб не только "ia32", но хотя бы на малинке и у маководов запустить можно было.
А так-то да, 20 байт в формате "com" под DOS - можно ... только нафиг оно сдалось?
Можешь попробовать std-либу билдить вместе со своим приложением. И тогда вкомпилится только то, что нужно. Но скорее всего (как и многие другие до тебя) начнешь жаловаться что "удобств нехватает" и "ну и какой смысл от этого вашего rust, если даже ::fmt нельзя - сразу +100500кб. Лучше бы сидел на Си" и все в таком духе.
а можно спаять светодиоды... а можно на бересте нацарапать
Думаешь работают идиоты и оставляют отладочную информацию?
У раста в релиз сборке без развертки стека (panic = abort) код выходит меньше С (в тестах где то было)
Единственный кто может написать нормальный код на растк это искусственный интеллект. Я это давно уже всем говорю, а вы мне все не верили.
Rust - язык для людей и ИИтей!
это - если сможет. В чем имеются большие сомнения.
А и точно, ты говорил, помню
Хорошая шутка
Кто будет отвечать за качество нейронки? Где гарантии, что она не подставит зонд? Кто будет анализировать данные, на которых обучилась нейронка? Огромное поле для бекдоров. И слепая вера в безопасность раста притупляет размышления о таких вот вопросах.
Copilot'у же верят
В некоторых компаниях запрещен на корпаративной уровне.
Например? Я как контрактор часто меняю компании, со времени появления коммерческих лицензий на copilot довелось поработать в нескольких, включая две из топ-500. И везде копилот либо идёт в базе для всех, кто имеет любое отношение к коду, либо доступен по запросу в айти-отдел точно так же как доступен, скажем, офис или фотошоп.
> Кто будет отвечать за качество нейронки? Где гарантии, что она не подставит
> зонд?да какой тебе еще зонт, блин. Оно тебе нагенерит кода который вообще работать не будет, "качество" нейронок нынче определяется тем насколько этот код внешне похож на настоящий, а не компилируется ли в принципе.
> Оно тебе нагенерит кода который вообще работать не будетИМХО, среднестатистического миддла для не системного программирования (а-ля веб) заменит.
Но для низкоуровневого кодинга не годится совсем из-за гaллюцинaций.
>> Оно тебе нагенерит кода который вообще работать не будет
> ИМХО, среднестатистического миддла для не системного программирования (а-ля веб) заменит.ну не надо так о мидлах - у них хотя бы компилируется всегда, ониж проверяли прежде чем комитить. Тут больше похоже на индусского джуна - километр некомпилирующегося кода и круглые глаза на вопрос - "ты это комплиятору-то показывал? - А что, надо было?!"
> Но для низкоуровневого кодинга не годится совсем из-за гaллюцинaций.
да для никакого не годится. Еще и адский синтаксис в котором так удобно разбираться что просто лопни-мои-глазыньки.
Вот поди и отличи тут - где бредятина, а где наверное даже работает, если этап с компиляцией модель как-то проскочила.
Если есть в имени lvm instruct, то есть надежда что не только проверяли на похожесть, но и на компилируемость.
> "качество" нейронок нынче определяется тем насколько этот код внешне похож на настоящий, а не компилируется ли в принципе.Для неспециализированных нейронок - скорее всего так и есть. Но кто запрещает сделать специализированную, которая будет именно проверять работоспособность кода?
А я знай, зачем они используют вместо этого модель для правдоподобной болтовни, причем именно что знаменитую своими галюцинациями, выдаваемыми весьма правдоподобно, еще и со ссылками на несуществующие источники?
Казалось бы да - при тех мощностях которые жрут такие модели - дать им инфраструктуру и пусть без конца тестируют свою бредятину, пока хоть компилиться не начнет, а все остальные попытки засчитывать как фэйл. Это уже, кстати, и похоже на настоящее обучение настоящего программиста.Возможно - других моделей просто нет. Сделать некому - в смысле, не натренировать уже сделаную, а именно саму модель придумать, это умеют совсем не те кто сейчас на слуху.
Возможно есть, но не для нас.
Возможно массоны-рептилоиды просто запретили.
> А я знай, зачем они используют вместо этого модель для правдоподобной болтовниНасколько я понял из оригинального анонса, они пока ничего не используют. Только ожидаются предложения.
под "они" я подразумевал владельцев реально работающих моделей.ХРЕН вот его знает, почему так. Я склоняюсь к идее о рептилоидах.
В таком случае предположу, что "они" гоняются за наибольшим обхватом области применения, чтобы покрыть немалые затраты на содержание этих моделей. Но, ещё раз, никто не запрещает идти другим путём. И, думаю, пойдут, когда поймут, что нужна специализация в некоторых областях, критичных к точности получаемого результата.
Надо было писать на паскале. Там есть длина строки и динамического массива в явном виде. Проблема решена. Но как реализовали когда-то в DOS посимвольный вывод в консоль в цикле "пока не ноль", так и сидят на этой псевдооптимизации уже лет 40.
Microsoft же пыталась быть прогрессивной, начала писать Windows на паскале (в 1985-м).но не получилось у неё
Вроде бы как Windows 3 частично был написан на паскале.
Сложно сказать, ибо тогда было популярным писать на голом асме, на чем и написаны все публичные сурцы, типа SDK. Но система вызовов API действительно паскалевская. Просто в какой-то момент пошла мода на Си. Там были типа "оптимизации", что на процах на десяток мегагерц было очень критично. Классно же было писать на ЯВУ вместо ассемблера. Как гора с плеч. Но эти "оптимизации" потом и стали причиной всех дыр. Это просто неправильный стиль программирования. На паскале вы чаще всего работаете с явными длинами буфферов и приучены к этому. На сишечке же любят алгоритмы в стиле "пока не ноль", которые уходят в оверран буффера, если данные в нем неправильные. Ну и еще одна мощная вещь. Строгая типизация. Если вы написали, что функция в качестве аргумента может получить энум - то если попытаетесь передать что то другое, то словите ошибку типов. Да, касты никто не отменял. Но вас хотя бы сначала предупредят. А в сишечке что? Энум это просто объявление числовых констант. Тип может быть любой целый. В итоге можно и ошибиться.
При всем многословии Вирт - ГЛЫБА
Аналогично с указателями. Просто в паскале более развиты хорошо типизированные указатели. Юзайте их и будет вам счастье.
На паскале написана mac os, которая не X
на фри-паскале :)
В Windows NT есть длина строки в явном виде. Откуда 40 лет?
А дос то причем?Это тот самый Паскаль где длина строки не может превышать 255 байт?
это в Turbo Pascal 'е такое было поначалу. А в языке Pascal никаких ограничений
> Надо было писать на паскале. Там есть длина строки и динамического массива в явном видеКод надо писать на языках программирования, на паскале не надо. А длина строки в явном виде передаётся везде кроме C - и в плюсах, и в расте.
Чем и хорош Си, если тебе чего то надо берёшь и:const char *pascal_string = "\x03foo";
Году эдак в 1988 все чЁткие пацаны себе "Pascal-style strings" либы писали, "чтобы померяться". В прогах один фиг не пользовали :)
Так бы и написали что создан проект по переделке Си кода в новояз без матеров, слейвов вместо организации проверки Си кода и обучения специалистов так как сэшэкцы не друзья своим программистам и вообще повесточка запрещает видеть неправильные слова и знать об их существовании.
Как корабль назовёшь....
У меня тоже была эйфория, когда скармливал условные хеллоувроты на пару десятков строк. На что-то бóльшее она непригодна — галлюцинирует. Причин много, начиная от мизерного контекста, заканчивая сомнительным качеством источников обучения.
> хеллоувроты на пару десятков строк.Ну да. На что то большое она нарисует рыбу и честно предложит вписать код ниже вот этого комента :)
Это если повезёт, а нет - так насыпет бреда.Но! Сравни чего умел первый Netscape Navigator и чего умеет нонешний Google Chrome ...
Ну вот и дай этому развиваться 30 лет и тогда посмотрим ... есть шанс дожить :)
через 30 лет чет сомнительно что раст будет жив
Лучше бы наоборот с Rust на C. От от обновления многих пакетов приходится отказываться если хотябы одна зависимость переписывается на Rust.
Так а почему нет? Если можно запилить транслятор в одну сторону - значит так же можно и в обратку. Заодно и с декодированием всех этих "безопасных" операций в нормальный код.
Сначала пишем транслятор С=>Rust
Потом пишем транслятор Rust=>С
Запускаем в цикле и наблюдаем за пердолингом)
I like to move it, move it...(C) Reel 2 Real
Ну песняк такой был, зачётный! в 1995 :-D
Это вообще из Мадагаскара все знают.
Two-pack(С)
Там в мульте написано у кого купили песню.
Вероятно это будет из коробки
> Лучше бы наоборот с Rust на C. От от обновления многих пакетов приходится отказываться если хотябы одна зависимость переписывается на Rust.Это ты можешь сделать самостоятельно и без всякого AI. Трансляция из раста в C пойдёт с потерей информации, и всё что плохого может случиться, оптимизатор без этой информации будет генерить менее оптимизированный код. Сложности могут с выводом типов возникнуть, но lsp-сервера могут типы выводить, так что если сам не справишься, можешь у них спросить.
Выход кода на раст такой же машинный код как у всех. Добавить проверки что есть у раста в си код на каждый чих проблем нет.
> Добавить проверки что есть у раста в си код на каждый чих проблем нет.Как раз с этим проблемы, потому что эти проверки по большей части компайл-тайм, и как ты будешь объяснять C, эти проверки? Что-то можно добавить в код, в надежде что C проверит их в компайл-тайме и выкинете, но не всё так можно добавить, и не факт что удастся оптимизатору создать условия, чтобы он выкинул их.
Проще не добавлять этих проверок. Их можно прогнать компилятором rust'а, после этого считать их выполненными и скомпилировать в C, выкинув их.
Препроцессорами обложить и #if делов то. Просто их будет много это другой вопрос.
> Как раз с этим проблемы, потому что эти проверки по большей части компайл-таймНет нужды их переносить. Сгенеренный на Си код должен делать то же что и код на раст. Все остальное слить, как не нужное.
> оптимизатор без этой информации будет генерить менее оптимизированный кодКак раз наоборот, ограничения rust ограничивают оптимизации.
> Трансляция из раста в C пойдёт с потерей информацииОно и так компилится в си подобный промежуточный IR код, и только потом в машинный с низкоуровневыми оптимизациями. Декомпилер IR -> C существует, ничего выдумывать не надо.
та же фигня, перешёл на генту с арча из-за раста в системдза 18 лет использования линукса так и не решался попробовать, а тут сама судьба
> за 18 лет использования линукса так и не решался попробовать, а тут сама судьбаЯ считал себя мееедленным, поскольку я практиковал подобное лет десять наверное, избегая C++ и некоторых других вещей. Но оказывается, я не самый мееедленный, есть люди до которых доходит более туго.
Успехов тебе в твоих геморроях!
Именно. Меня даже systemd не смог заставить пойти собирать генту, но раст смог
Тебе шашечки или ехать?
> Лучше бы наоборот с Rust на CЭто похоронит C сразу, потому что позволит всем, кому ещё зачем-то нужен C (типа прозрачной интероперабельности с другим C кодом, или поддержки каких-то мёртвы архитектур) писать на нормальном языке вместо C.
Заодно это покажет убогость C, когда одна сточка на rust с парой ? будет развёрнута в несколько страниц бойлерплейта if (!foo()) { cleanup; return }, не говоря уже во что будут развёрнуты монадические конструкции.
Помнится в Debian уже исправляли "уязвимость" когда в коде использовался неинициированный буфер. В результате компы стали герерировать некриптостойкие ключи. И это было не автоматическое, а осмысленное исправление. Уверен: транслятор не будет читать комментарии к коду. Чую нас ждут интересные времена.
Dr. Dan Wallach joined DARPA in June 2023 to develop, execute, and transition programs in computer security, cryptography, and related applications.
https://pbs.twimg.com/profile_images/1602335317234778120/mlG...
“You can go to any of the LLM websites, start chatting with one of the AI chatbots, and all you need to say is ‘here's some C code, please translate it to safe idiomatic Rust code,’ cut, paste, and something comes out, and it's often very good, but not always,” said Dr. Dan Wallach, DARPA program manager for TRACTOR. “The research challenge is to dramatically improve the automated translation from C to Rust, particularly for program constructs with the most relevance."Смузихлёбы, танцоры, меньшинства уже и в американском агенстве DARPA. Товарищ хоть понимает огромную пропасть между C и Rust в плане дальнейшего сопровождения кода? На хабре по данному вопросу уже была серия статей с детальным разбором полётов. Гораздо проще было бы создать альтернативную стандартную библиотеку C++ для самых распространенных бизнес задач и использовать упрощённый стиль кодинга со смарт поинтерами, который не эксплуатирует возможные случаи UB. Но маразм в IT похоже крепчает. Искусственный интеллект вам, гуманитарным танцорам, уже не поможет. Думать надо своей головой, а не протезом.
Можно подумать дарпа какая то особенная организация и там какие-то другие программисты, точно такие же с гольфами и с ушками.
> Товарищ хоть понимает огромную пропасть между C и Rust в плане дальнейшего сопровождения кода?так мы сишный и будем дальше сопровождать.
А это бебебезопастное - пусть вон робот каждый раз генерирует.
(понятно что оно каждый раз будет неработающим, но помечтать-то ж можно)
Боюсь, что пока военных дармоедов кормят из НАЛОГОВ, эти mра3и так и будут сосать из бюджета деньги на ЛЮБУЮ хрень, хоть вот с->раст! Главное же - финансирование. Чем больше безумных программ, тем толще бюджет.
> Боюсь, что пока военных дармоедов кормят из НАЛОГОВА из чего их должны кормить, просто любопытно?
Или как в том анекдоте, мол, думал, что выдали ствол, ну и дальше сам крутись? )
> Товарищ хоть понимает огромную пропасть между C и Rust в плане дальнейшего сопровождения кода?Почему бы тебе не заняться просвещением доктора наук, дав почитать ему статьи на Хабре (в переводе, конечно, сам-то он вряд ли с этим справится)?
Почему бы тебе не заняться повседневным делом ржавой секты - переписыванием кода ради переписывания и героической борьбой с компилятором
Потом что я не отношу себя ни к какой секте. Но ЯП Rust мне концептуально нравится, даже при всех известных недостатках (а где их нет?).
Пока что ни одна модель не годится для чего-то более серьезного, чем клепание формочек для веба. Ажиотаж падает вместе со стоимостью акций компаний, которые сделали ставку на ИИ.
> клепание формочек для вебаА с этим-то уже справляется? Друг интересуется.
частично :)ты спрашиваешь - тебе выдает кучу кусков, из них собираешь что-то сам и пытаешься заставить работать...
в итого, если что-то не супер типовое, то быстрее самому с нуля написать, но не проще - так как почитать и подумать надо будет :)
Справляется лучше чем большинство джунов.
не лучше. Все, что может "создать" ИИ - это типовое решение, которое уже где-то встречалось. Строго говоря ИИ даже не существует, это просто нейросеть, которая занимается преобразованием входящих запросов, она даже не думает, у неё нет рефлексии и осмысления задачи и на выходе получается "что-то похожее на код", чем задача более типова, тем выше вероятность, что заработает. Можно восхититься, если нейронка реализует какой-то сложный алгоритм, но если он общеизвестен, то в этом нет достижения. А вот ничего нового нейронка не создаёт даже простого, либо вам потребуется запрос такой сложности, что он сам по себе будет программой. То есть проще тогда написать собственную программу, чем "объяснять" ИИ как она работает. И как справочник нейронку использовать менее надёжно, чем банальные справочники и научную литературу.
Вывод: джуна можно заставить штудировать литературу мотивируя это повышением или отсутствием побоев, а нейронка уже упёрлась в потолок и ничего вам не создаст.
>Все, что может "создать" ИИ - это типовое решение, которое уже где-то встречалось.Ну дык ВНЕЗАНА!(С) - это и есть 99.99999% (7 девяток) нонешнего программинга, разве не? :-)
>>Все, что может "создать" ИИ - это типовое решение, которое уже где-то встречалось.
> Ну дык ВНЕЗАНА!(С) - это и есть 99.99999% (7 девяток) нонешнего программинга,так а ИИ тогда зачем? Я и сам прекрасно умею ctrl-c/ctrl-v прямо из вопроса на стеке.
А если не заработает, я даже ответы на него прочту!
Дык вы тогда и есть за меня будете?! А-г-а!!! (С) Мульт про ВовочкуА с AI - купи подиську и уволь всех этих IT выскочек, у которых зряплата не хуже чем у руководящих ими рукойводителями (С) :) А тут гляди и сбудется многолетняя мечта мэнеджеришек - поставить этих IT выскочек в стойло! :)
Правда уже было и не раз (да, я супер стар) ... но как то не ... :) Но прогресс не остановить!PS: А то что 99.99999% (7 девяток) мэнэджеров AI тоже заменится ... им пока не говорят ;-)
> А с AI - купи подиську и уволь всех этих IT выскочек,ну и чо, придется ж нанимать этих... prompt инжынеров. Правда, наверное, подешевле обойдутся за голову.
Не самому ж любимому руководителю с искусственным ди6илом общаться.
> PS: А то что 99.99999% (7 девяток) мэнэджеров AI тоже заменится ...
> им пока не говорят ;-)не, тоже не прокатит. С кому потом уважаемым топтопам в углу топать - с промпт менеджером, чтоль?
А моим надеждам что эта хрень быстренько напишет за меня километр тривиального кода - похоже, сбыться не суждено. (или хотя бы разберется в апи и структурах данных которых нет на стековерфлове)
>> А с AI - купи подиську и уволь всех этих IT выскочек,
> ну и чо, придется ж нанимать этих... prompt инжынеров. Правда, наверное, подешевле обойдутся за голову.Нууу ... Вот мы подсмотрели идею у софтой-пейсаталей - релизится так часто, чтоб с той стороны в глазах рябило И ... барабанная дробь ...
Теперь мы не IT какое нить там, а D & T ! ;-)))
А этих выскочек IT-шнегов - да, пусть разгоняют!> А моим надеждам что эта хрень быстренько напишет за меня километр тривиального кода - похоже, сбыться не суждено.
Я прикололся и попросил написать мне FidoNet ... Как результат - хорошее настроение на весь день :-D
Так что (пока) - да, даже не думай :)
Но ведь могут и смочь ... когда нибудь... :)
Задача стояла не уменьшить количество программистов, а увеличить, чтобы не было безработных. Там где раньше обходились одним программистом, теперь будет какой-нить AI и 10 новых программистов для анализа чего натворил этот самый AI. Все при деле - вот оно счастливое будущее человечества.
Только это не 10 программистов, а 10 людей с низкой квалификацией.
> с низкой квалификациейискать ошибки, ревью и тестирование кода это с низкой квалификацией?
чой-то сомнительно...
Смотря в каком коде искать ошибки.
Искать или находить?
> Задача стояла не уменьшить количество программистов, а увеличить, чтобы не было безработных.Так уже есть такая наука как prompt engineering и штатные сотрудники в должности prompt engineer во многих компаниях (как правило аутсорсных "галерах").
>> Задача стояла не уменьшить количество программистов, а увеличить, чтобы не было безработных.
> Так уже есть такая наука как prompt engineering и штатные сотрудники в
> должности prompt engineer во многих компаниях (как правило аутсорсных "галерах").чего это только галерах. Полно модных стартапов "в около финтех" с подобными вакансиями.
(ну не программистов же на самом деле нанимать?)
Осталось ввести должность motd-инженера и всё, мир перевернётся.
За последнее время ВНЕЗАПНО повызалили эксперты, ИЧСХ их познания в программировании ограничиваются умением жать ctrl+c и ctrl+v. Кстати занятно, что stack overflow нещадно кapaет таких любителей копипастить ответы из чaтгпт. Попытки протащить машинную бeлибepду под видом собственного ответа там заканчивается беспощадным бaнoм.
а как он это определяет? Спрашивает у чатгопоты?
Просто пpидуpки копипастят ответы целиком. Текст сгенерированный нейронкой узнаваем. Ценность стека теряется если туда пихать разный муcoр.
особенно смешно что нейронка на нем и обучалась. А их авторы изо всех сил старались не допустить чтоб она пересказывала свой же бред.Но мне кажется, придурок которому хочется звездочек или чего там на стеке дают, со второго бана научится вручную здрасьте, вот ответ на ваш вопрос ctrl-v, с глубоким уважением, обращайтесь есличто.
Кстати, а какая у них мотивация? Сам наблюдал в разное время на полумёртвых классических форумах как какой-то регистрант живёт только тем что репостит неинтересные новости из разных источников. Профита ему от этого никакого, нафига?
Оживить форум?
Ну, за 15 лет можно было сделать вывод что это не работает.
Кретинизация населения нужна, что бы проще проворачивать мутные схемки. Про форумы не знаю.
> Кстати, а какая у них мотивация?Продвинуть никнейм в поиске, накидать ссылок в резюме, мол, смотрите какой я дофига спец. Многие айтишники пиарят свои никнеймы, которые одинаковы везде: на гите, на стеке и которые легко гуглятся.
>> Кстати, а какая у них мотивация?
> Продвинуть никнейм в поиске, накидать ссылок в резюме, мол, смотрите какой я
> дофига спец. Многие айтишники пиарят свои никнеймы, которые одинаковы везде: на
> гите, на стеке и которые легко гуглятся.но не на мертвом же форуме? Хотя, с другой стороны... за откровенный мусор на стеке вообще банят, а как минимум уйдет в область отрицательных подтверждений ответа. На гитхап надо что-то выложить, а им нечего. А мертвый форум хоть индексируется.
> смотрите какой я дофига спец.Не, площадка не обязательно про IT, а на классических форумах традиционно нонеймы с ни о чём не говорящими никнеймами как тут.
Ну я не знаю, может таким персонажам кажется что они делают полезное дело для интернет, распространяют контент. Репостили что угодно, новости с ленты.ру (не обязательно политоту), выкачивали музло с торрентов и заливали на бомжеобменники, где ссылки умирают через месяц и т.д.
Я не знаю про какие "форумы" вы пишете. В интернете в сущности две площадки: reddit и stack overflow. Они имеют вес и неплохо индексируются поисковиками. Про русскоязычное ничего не скажу.
Это не про текущее время, явлению как миниму 15 лет ну и да, речь о российском интернет, на зарубежных площадках не наблюдал такого, впрочем мог просто не заметить в силу того что проводил там меньше времени.
> (не обязательно политоту), выкачивали музло с торрентов и заливали на бомжеобменники,не, ну с этим вот понятно - торрентcpy без впн считай уже нету, да и по головке могут не погладить, а музон на работу хочется - скачал дома, залил на слилру, пришел на работу, скопировал в хомяк.
Это не про текущее время, явлению как миниму 15 лет.
> Это не про текущее время, явлению как миниму 15 лет.так за торренты на работе и пятнадцать лет назад п-дили веником
а за просто музычку слушать - не везде
А причём тут работа? 🤦
> А причём тут работа? 🤦чуваку хочется там музычку. Чувак скачивает с торрента дома, где против только кот.
И вылаживает на сцайт с одноразовыми ссылками всем на радость, но главное - себе. С работы лазить по сцайтам не запрещено.всегда ж так делаем.
> Продвинуть никнейм в поиске, накидать ссылок в резюме, мол, смотрите какой я дофига спец.Так оно и есть. На linkedin считается нормой оставлять ссылки на stack owerflow.
Этот проект -- не изделие , а конкурс проектов, и 26 августа у них Proposer's Day. А описан в новости как изделие. Исправьте, авторы, сами.И название оригинальной статьи надо было процитировать. "Устранить уязвимости работы с памятью раз и навсегда". Панацея, господа!
Конечно, за кадром остаётся вопрос -- кому сопровождать эти преобразованные проекты.
Итожа: по видимости, затеяны чистка и, так сказать, построение ("стройся, раз-два") корпуса прикладного СвоПО. Большие проекты не пройдут эту штуку, какой бы она не оказалась.
> И название оригинальной статьи надо было процитировать. "Устранить уязвимости работы с
> памятью раз и навсегда". Панацея, господа!Слабоватое название. Надо было "эпикфейл Фредерика Брукса". Или тогда бы пришлось дополнительно пояснять, кто это?
А зачем транслятору AI? Хотят бабла побольше на железо для разработки выпросить?
Да. Сейчас эта аббревиатура - как блокчейн 7 лет назад
Надо бы предложить хранить раст-исходники в блокчейне. Озолотиться можно.
Ты забылЖ, что для идеального результата нужно обязательно задйствовать все баззворды лет на 20 в глубину:"Самообучающаяся AI-нейросеть будет хранить управляемый растовый код в блокчейне, как у биткоина, причем в базе данных на вебассембли целиком на стеке веб 2.0 в мультимедийном формате, написанном на java"
безопастный забыл!> "Самообучающаяся AI-нейросеть будет хранить управляемый растовый код в блокчейне, как
> у биткоина, причем в базе данных на вебассембли целиком на стеке
> веб 2.0 в мультимедийном формате, написанном на java"
> безопастный забыл!Безопастная самообучающаяся AI-нейросеть будет хранить управляемый формально верифицированный растовый код в зашифрованном постквантвым шифрованием образе на блокчейне. Внутри образа будет атомарно обновляемый nix-гипервизор и набор из контейнеров типа "матрёшка", внутри которой будет хранится сам код, лефтпад из карго информация для создания повторяемых скомпилированных программ. Образ дополнительно версионифицируется внутри написанной на векбассембли no-sql базе данных, которая может работать на голом стеке веб 2.0 и при этом при неверном пинкоде при расшифровке преобразовываться в невер гонна гив ми ап. Всё это исполняется на браузере на java, чей байткод через прослойку eBPF траспилируется в IL dotNET и наконец-то отправляется на облачный сервер. А для премиум-ползователей доступно и туманное исполнение!
Думаю, так луДшееее
во первых, веб уже 3.0, во-вторых, у тебя ни слова про индустрию 4.0, 5G и интернет вещей
Не понимаю чего так все с этим растом носятся, там же синтаксис упоротый. Сейчас бы наобоорот что-то такое чтобы меньше времени на кодинг тратить. Что-то типа питона, только без его недостатков. Nim может быть?
Nim прекрасный язык, но делать на нём большие проекты лично мне мешает отсутствие нормального отладчика. Дебажить можно только сгенерированный сишный код, в чём не особо много смысла.Но я всё равно делаю...
Делать что-либо на подобие фронта для несвободного llvm Андреа, автор языка, чёт пока не хочет. С разумной вроде бы аргументацией, мол, мы генерим код на разных языках, а компиляторы уже компилируют, нафига нам заморачиваться. Но дебажить приходится через echo
C# - лучшее, что может позволить себе сейчас индустрия. Это если смотреть прямо в сегодня. А в завтра... не только лишь все могут смотреть, но кто может, тот выбирает D.
> C# - лучшее, что может позволить себе сейчас индустрия.мляаааа... ну тогда надо искать в аренду приличную пиццерию подешевле и поближе к дому.
Если это - луДшее, значит миру кранты.
> C# - лучшее, что может позволить себе сейчас индустрия.Не успел ещё протереть монитор от жиpa из предыдущих коммeнтов как снова набpaсываете.
>> C# - лучшее, что может позволить себе сейчас индустрия.
> Не успел ещё протереть монитор от жиpa из предыдущих коммeнтов как снова
> набpaсываете.а если он не врет?!
У меня ничего на C# нет. А на винде не было выбора это не использовать, потому что оно является системным компонентом и стартует вместе с виндой (net framework с быстрым preload'ингом).Кмк там где оно не пропихивается MS - там оно плохо работает или с костылями. И все равно медленно.
Скорее всего вам не C# как таковой больше наравится, а вообще вся экосистема в которой вам не надо пальцами шевелить чтобы сбилдить/документировать/не надо настраивать IDE/тестировать/деплоить а все уже сделано за вас любителями вендорлокать все живое.
Получается, программисты на раст теперь не нужны, переписывать на раст за них будет скриптик
Угу, а новый код тебе в сконвертированные проекты тоже ИИ дописывать будет?
А зачем в сконвертированные, дописывать будут в исходный проект :DХеллоуворлд-обезьянки по миру от этой новости стопудово напряглись - их внезапно могут заменить.
Эксперта оупеннета посещают большие сомнения, что что-то вообще взлетит. Живые люди даже не особо на расти кодят, а тут ИА. Представляю какого бреда он там нагородит
Для синтаксиса раста бред - это нормально - никто разницы и не заметит.
Нормальный там синтаксис. Язык создан by design чтобы использоваться в IDE с подсветкой. В отличии от той же Сишки, которая написана была во времена, когда кодили с помощью блокнота и ручки, раз в месяц получали доступ к ЭВМ, чтобы ввести программу.
Язык создан by design чтобы сломать об закорючки глаза.
Хуже только перл и питон с его пробелами.
Тчк.
Там вполне себе читабельный синтаксис, если понимать концепции языка. А их таки надо понимать хорошо.В остальном закорючек не более, чем в тех же Плюсах.
Вот, пожалуйста, где-то там, с плюсами, с++2раст надо. Враппер на враппер перегонится как надо
там нет концепций, напихали рандомно всякое в рандомные места, получилась каша
Конечно, они там есть: безопасная работа с памятью, владение и заимствование, вывод типов и другие. Каша же получается в головах тех, кто не привык об этом думать.
> Живые люди даже не особо на расти кодятВаше мнение ошибочно. Не знаю как в русскоязычном интернете, но на Западе сейчас на Расте даже вэб переписывают.
Не знаю насколько Ваш запад западнее, но сильно западнее РФ, где проживает Ваш покорный слуга, хруст пока ещё в грабу видале. Отдельные индивиды что-то покодили, но большинству тупо лень с ним связываться.
Даже такой инсайтик: давеча один оооочень растанутый персонаж, который его уже много лет продвигает и является активным мембаром кам-юнити в самом прямом смысле этого слова, вот он поведал что подчас и клиенты-то просят "а можно без раста"..
Сам не по вебу, но могу представить где и как его наши вебщики вертели
История похожа на лампокота. Сорян.
У анонима что-то не то с сертификатом шифрования
походу нужно уже какую то замену rust создать чтобы простой был а не как сейчас комбайн какой то уродливый
Лиспы уже существуют.
Эта darpa как бы раньше лиса использовала. Так что с выбором технологий у них явно проблемы.
Она называется zig.
Не взлетел.
остаётся карбон
Месье первый раз слышит про C# или D ?
Moonbit, ballerina, gleam
Да он и есть относительно простой (если с теми же Плюсами сравнивать, где стандарт на примерно тыщу страниц никто в мире, наверное, освоить не смог).
Все правильно. Люди будут писать на нормальном языке, а машина будет конвертировать это все в очень безопасный, но совершенно безумный синтаксис.
В той же сишке можно на каждое выражение сделать столько же проверок что делает раст и получится тоже самое что раст. Если это сделает ИИ норм. Останется только боровом почекать и всё.
Получится лапша ещё хуже нативного раста.
В рантайме - да, можно. Но ведь изюминка Раст в том, что большинство проверок делается на этапе компиляции.
Люди уже пишут на нормальном языке, который называется Rust. С разморозкой тебя. Синтаксис у Rust очень даже разумный, кстати. Просто основные идеи понимать надо, которые стоят за этим синтаксисом.
Ну не только, ещё на Go. Кстати, интересно когда биндинги запилят, чтобы пол проги на рас пол на гоу
Если оно не будет тащить с собой node-js и последнюю жабу - то нафиг такие пионерские поделки не нужны!
Главное, чтобы обеспечивались лицензионные требования исходного кода.
Уже проходили с копилоткой: переписывает не человек, так что извиняйте.
Такие перводчики (трансляторы) известны. Например, см. приложение к книге Брандта (там с Фортрана на С). Но на самом переводы настолько удручающие, что проще переписать ПО заново.
Речь идёт не о банальном трансляторе, всё-таки.
Изнините, но LLMы и так отлично справляются.
> LLMы и так отлично справляютсяСо сниппетами на десяток строк? Да. Но год назад пророчили, что за эти месяцы напишут нечто ТАКОЕ и люди напишут СТОЛЬКО кода, что за десятки лет не написали бы. И что? Наигрались и вернулись к старой доброй пасте из гугла.
Зачем это Министерству Оборону? Свой удаленный терминал (винду) решили на раст переписать?
ЖдемTRAPTOR - Python 2 Rust
TRAPHTOR - PHP 2 Rust
TRAGTOR - Go 2 Rust
TRAJTOR - Java 2 Rust
TRAJSTOR - JavaScript 2 RustИ как последня вишенка на торте
TRABTOR - Brain to Rust
Или попросту - превратить все в ржавчину и мировые проблемы решенны,
Да здравствует ИИ ! Копирующий человеческие глупости и преумножающий их...Кто только будет потом сопровождать эту срань... молчит наука
хотят повторить историю "успеха" с Ada'ой, от которой сами же потом отказались в конце 90-х. хорошо хоть iso подобрала язык, как-то ещё живёт
Ada по задумке не предназначалась для массового замещения Си. Живёт и здравствует там, где надо.
>TRAPTOR - Python 2 RustМесье знает толк.
На Расте нельзя написать интерпретатор Der Grune Shlange ??
Зря смеётесь, молодой человек
И наконец - TRAXTOR - графический интерфейс под иксы ко всему этому.
Вот это уже ближе к истине - Rust язык не для человеческого ума, а для нейросетей.
нейро-(де)генеративные сети не думают, они галлюционируют
...и самое гнусное, что их глюки очень похожи на взаправдышный код!
> ...и самое гнусное, что их глюки очень похожи на взаправдышный код!так их ИМЕННО ЭТОМУ, блжд, и обучают! У них критерий подбора ответа именно "чтоб был похож на взаправщашний". А не чтоб решал задачу, она т-пая, она не умеет программировать.
Предполагалось что достаточно похожий на настоящий код и будет настоящим. Ну да, щяссс...
> похожи наПримерно так и работают генеративные текстовые модели. Ключевое выделил. Поэтому нынешняя технология лишь пробе пера перед чем-то более совершенным. Но когда это будет (и будет ли) — хз.
>Примерно так и работают генеративные текстовые моделиАссоциативная память это называется. Но ведь для программирования мало только памяти, нужно уметь обобщать, специализировать, оптимизировать, фантазировать/композировать. Наконец надо понимать а что ты делаешь, какой код и для чего пишешь. А этот трактор - ведь просто железка с памятью.
Компьютеры -изначально мертвы. Соображать умеет только живое существо (или живой процесс)
- Министерства обороны США! Ваш ИИ произвольно вставляет зонды в код!
- Это просто галлюциии.
> Rust язык не для человеческого умаСкажем так - не для каждого человеческого ума. Здесь немного напрячься надо при обучении. Ну как с математикой той же.
Да, это точно подмечено, что мышление при программировании на Rust'e похоже на математическое мышление. Но разве это хорошо? Думать при программировании надо приближённо к машине, а не к человеку.
Если предположить, что программа - это своего рода модель поведения, то приближенность к математике делает приближенность Rust к математике хорошим свойством.
Не получится ничего годного, некоторые типа не безопасные конструкции транслировать наверное никак не выйдет чисто по идеологическим причинам.
Как вариант такое можно будет пробовать во что то под типа глобальной блокировки оборачивать но просядет производительность сильно.Вот обратно из хруста в С - должно быть легко.
> но просядет производительность сильноЭто вот точно будет
> просядет производительность сильноНа Pentium II 266 MHz? Может быть.
Вы удивитесь, но не все эвм чтобы кал оф дюди на них гонять
Держу пари что даже на полудохлом целероне 10 летней давности разница будет в пределах статистической погрешности.
>задействовав методы машинного обучения для достижения уровня результирующего кода на Rust, близкого по стилю и качеству к коду, написанному опытным программистомКажется где-то тут закралась ошибка
Раст настолько популярен что для без министерство обороны США не обошлось.
Значит, будет популярен как Ada.
Известно ведь, что усиленно рекламируют то, что не пользуется спросом
Зайди на Стековерфлоу и посмотри последний опрос программистов по всему миру. Пользуется спросом, ещё как. Пока не таким, как Си или Джаваскрипт, но потихоньку набирает обороты.
Для каких задач используют?
Rust - универсальный язык программирования. Но на рынке - явный дефицит квалифицированных программистов. А программирование на Rust подразумевает под собой квалификацию немного выше средней (на мой взгляд, разумеется, я не претендую на объективность). Поэтому для задач, где распространены программисты с не особо высокой квалификацией, Rust встретить вряд ли возможно (ну или это будет очень редким явлением). Спектр же остающихся задач не так, чтобы очень широк - системное программирование, написание программ, требовательных к ресурсам. Примерно такая область применения.
> Rust - универсальный язык программирования. Но на рынке - явный дефицит квалифицированных программистов.Я бы сказал, что "квалифицированных программистов" вообще дефицит.
Что для раста, что для сишки, даже для JS.
Сейчас человеку достаточно посмотреть десяток видосов, пройти курсы и считать себя программером.
Некоторые даже продвигают идею, что фундаментальное образование не нужно, можно все в интернете выучить.> А программирование на Rust подразумевает под собой квалификацию немного выше средней (на мой взгляд, разумеется, я не претендую на объективность).
Думаю для C/C++ тоже. Это не на пыхе сайты-визитки лабать.
Но тут скорее проблема в том что сишники будут уже с переломанным мозгом.
Найти программера который начинал не с сишки, но теперь в ней специализируется очень сложно.
Почему с Си, а не с Ады? Это же их любимый язык вроде.
Потому что код на Си дыряв. И его очень много. А работать как-то надо.
Любой код дыряв, потому что программ без ошибок не бывает, тем не менее на Си всё (в мире) работало, работает и будет работать!
Код на Си особенно дыряв. Как-то он работает, конечно. Но слишком много надо усилий прилагать, чтобы эта работа была стабильной. Разумеется, речь идёт о сложных программах.
https://www.codeconvert.ai/https://products.codeporting.app/convert
Мне кажется что нужны хорошие конверторы;
C -> SPARK
C++ -> SPARK
Py -> SPARK
Java -> SPARK
Rust -> SPARK
Не, спс.Ввёл первое, что пришло в голову:
mov ah, 0x0e
mov al, 'X'
int 0x10На выхлопе получил:
#include <dos.h>
int main() {
union REGS regs;
regs.h.ah = 0x0E;
regs.h.al = 'X';
int86(0x10, ®s, ®s);
return 0;
}
Ничего вы не понимаете в словах: безопасность, надёжность, верифицируемость.
Что-то долго они разрабатывают s/(\w+)\(/unsafe $1(/g
На форче уже столько примеров под новостью привели, когда из с в раст перевести нельзя, т.ч. ждем, когда дарпа профинансирует добровольно-принудительное переписывание сишного опенсурса на гитхабе в удобоваримый формат для нейронки.
Можно ссылку?
Ну прекрасно, программистам хоть полегче станет. Займутся семьёй, детьми. Починят авто. А код пускай ии пишет, если ему так легче.
> программистам ... полегче станет ...помнится, как ещё в 80-е годы распевали "до чего дошёл прогресс, до невиданных чудес ...
вкалывают роботы - счастлив человек!"Но время показало, что не стали счастливы люди
В социалистических странах рады. Таких как ЕС или СГА, ну или Япония.
Чему радуетесь, Пентагон и USDoD свой ТРАКТОР никому не даст
Никому, кто в правила современного мира и цивилизованность не умеет - этим, разумеется, вряд ли.
да эти сп-ят как обычно, и будут трубить про импортозамещение.Возрождение Кокома, с неиллюзорными сроками всем причастным к цапцарапу технологий или деталей, увы, маловероятно.
int main(int b,char**i){long long n=B,a=I^n,r=(a/b&a)>>4,y=atoi(*++i),_=(((a^n/b)*(y>>T)|y>>S)&r)|(a^r);printf("%.8s\n",(char*)&_);}
main <- function(b, i) {
n <- B
a <- I ^ n
r <- (bitwAnd(a, b) & a) >> 4
y <- as.numeric(i[[2]])
_ <- (((bitwXor(a, n / b) * (bitwShiftR(y, T) | bitwShiftR(y, S))) & r) | bitwXor(a, r))
cat(sprintf("%.8s\n", as.character(_)))
}
Код восхитительный для какой олимпиады.
Но, не дай бог-машина, такое чудо придет в проект и начнет выдавливать из себя такой код в прод.
После первого предупреждения - увольнять нафиг, иначе уже через пару месяцев код превратится в неподдерживаемую лапшу.
> увольнять нафиг, иначе уже через пару месяцев код превратится в неподдерживаемую лапшу.The International Obfuscated C Code Contest
> The International Obfuscated C Code Contest
> https://www.ioccc.org/2020/burton/index.htmlА... ну так я почти угадал.
Спец. олимпиада для особых программистов.
Ну и пособие для остальных "как не надо писать".