LINUX.ORG.RU

Corrode, проект транслятора из C в Rust, получил финансирование Mozilla

 , corrode, , ,


3

8

Джеймс Шарп (James Sharp), отметившийся ранее в проекте X.org, в начале мая 2016 начал разработку проекта Corrode, целью которого является трансляция программ, написанных на C, в исходный код на Rust. Corrode написан на Haskell и распространяется под GNU GPLv2.

На текущий момент проект обзавёлся сообществом, научился транслировать некоторые программы и обрёл первые ближайшие цели и ориентиры: трансляция неподдерживаемых программ на C в Rust. В качестве субъекта тестирования был выбран исходный код CVS — давно устаревшей, но ещё используемой, системы контроля версий. Разработка и поддержка CVS была остановлена в 2008 году, а первая до сих пор не закрытая remote-уязвимость была обнаружена в 2012 году.

Джеймс рад сообщить, что он получил финансовый патронаж Mozilla, и как минимум на ближайшие несколько месяцев он может сконцентрироваться на своём свободном проекте. Mozilla рассматривает Corrode не только в качестве полуавтоматического транслятора для устаревшего кода, но и как статический анализатор нового поколения для кода на C.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 6)
Ответ на: комментарий от shkolnick-kun

использовать в имбеде (в настояжем, а не на RPi).

А не на ARM?

А что, cortex-m уже не `настоящий имбед`?

pftBest ★★★★
()
Ответ на: комментарий от shkolnick-kun

А не на ARM?

А оно надо? Вот результаты текущего опроса:

Разновидности ARM 147
AVR 132
ESP 25
Другие 20
MSP430 18
PIC 17
8051 15
STM8 10
DSP 4

AVR сейчас активно мерджат в LLVM, про ESP не знаю, MSP430 уже есть.

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

AVR - отживает свой век, будет ещё долго популярен, но уже не торт. Могли бы и не мержить.

ESP - на пути к пику популярности (IoT же!), если бы еще внешнюю флешку не надо было вешать...

MSP430 - хорошая вещь, давно есть в GCC, что касается его поддержки со стороны llvm, то: там не всё так однозначно.

PIC - легаси;

8051 - лютое легаси (хотя на них есть bluetooth от TI, ещё проживет какое-то время);

STM8 - если бы поддерживали внешнюю память, то могли бы серьёзно подвинуть Cortex-M0/+, но не судьба, если кто-то добавит в llvm и сделает ассемблер и линковщик - будет лютый вин!

DSP - постепенно вытесняются Cortex-M4/M7 из низовых ниш, очень специфические штуки, периферию которых можно изучать годами и умереть...

А вообще применение МК в продакшоне - прерогатива азиатов (кто бы мог подумать!), и там скорее лицензируют экстензу, чем арм (см. ESP).

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

Как раз таки с MSP430 все очень хорошо (если не пугает отсутствие линкера, ну и не лень пересобрать llvm с моим патчем :), код который llvm генерирует чуть ли не в два раза быстрее чем тот что на выходе msp430-gcc, он даже немного обгоняет IAR (тестировал на алгоритмах из моего проекта, your mileage may vary).
msp430-gcc был бы не так плох если бы кто-нибудь пофикслил в нем этот баг, но прошло уже два года и всем пофиг. Я пытался исправить, но мне тяжело читать код gcc, особенно когда находишь там такие комменты:

I set ... and ..., but gcc puts in a ; zero_extend anyway. Catch it here.
...
Eliminate extraneous zero-extends mysteriously created by gcc.

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

пофикслил в нем этот баг,

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

у и не лень пересобрать llvm с моим патчем :

Уважаю! А когда его смерджад в главную ветку?

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

Это не баг а фича

Ну может для разработчиков IAR это фича (чтобы показывать насколько их продукт лучше свободных аналогов), но для пользователей это баг. Эти магические zero-extend'ы, которые сами разрабы gcc не знают откуда берутся, не только увеличивают размер кода (в худшем случае на 4 байта на инструкцию) но и замедляют исполнение (в хучшем случае больше чем в два раза).

А когда его смерджад

Ну надеюсь к релизу 4.0 успеют. Хотел к 3.9 успеть, но билдсервер нашел у меня iterator invalidation и патч откатили, а когда я пофиксил, релиз 3.9 уже прошел. Сейчас жду пока aKor (мейнтейнер msp430 бэкенда) найдет время потестить последнюю ревизию.

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