The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск языка программирования Rust 1.33"
Отправлено Аноним84701, 03-Мрт-19 18:33 
>>> А разве кто-то утверждал, что это тоже на Rust?
>> А кто утверждал-то, что оно полностью на Rust?
> В #110 анон утверждает, требуя от меня аналогичный код на плюсах для
> опровержения его гипотезы. :)

Э-э, это конечно же, очень-очень интересно … но причем тут именно эта вот ветка?


> Там не инлайн, если уж заниматься буквоедством, а вполне файлы *.s

Если заниматься буквоедством, то в GRUB точно то же кино с файлами. При этом MS VC++ инлайном ни в армщину, ни в 64 бита не умеет, да и вообще по стандарту:
> The asm declaration is conditionally-supported; its meaning is implementation-defined.

.
> Вот пример вполне практического "zero-runtime" на С++ https://github.com/icestudent/ontl/tree/master/ntl/rtl
> К бутлоадерам отношения не имеет.
> Асм там может потребоваться* - обратите, пожалуйста, на этот момент внимание -
> потому что тамошний компилятор для поддержки исключений генерирует определённые структуры,
> для работы с которыми интринсиков недостаточно.

А, это такое замысловатое "да, но пока еще нет, но почти что да, только пока нет"? :)
Кстати, если уж буквоедствовать, то интринсики (которые вроде как и в ржавчине не один год имеются) у нас в каком стандарте-то прописаны?

> Теперь возвращаемся к исходной посылке "рантайм LLVM, причем, например, паники там реализованы
> с использованием механизма исключений C++".
> Так вот мне, что бы считать "реализовать можно" без "наверное таки", желательно
> увидеть подобную реализацию

https://os.phil-opp.com/freestanding-rust-binary/
https://github.com/phil-opp/blog_os/blob/post-01/src/main.rs

Бинарник в пару KB (на самом деле, заполнен нулями чуть менее чем полностью), без зависимостей, нормально собирается и исправно запускается, демонстрируя JMP@here в gdb.

cargo rustc -- -Clink-arg=-nostartfiles
Тот же cargo rustc -- -Clink-arg=-nostartfiles --emit asm
дает выхлоп:


        .text
        .file   "blog_os.6pwfxw6d-cgu.0"
        .section        .text._start,"ax",@progbits
        .globl  _start
        .p2align        4, 0x90
        .type   _start,@function
_start:
        pushq   %rbp
        movq    %rsp, %rbp
        .p2align        4, 0x90
.LBB0_1:
        jmp     .LBB0_1
.Lfunc_end0:
        .size   _start, .Lfunc_end0-_start

        .section        .text.rust_begin_unwind,"ax",@progbits
        .hidden rust_begin_unwind
        .globl  rust_begin_unwind
        .p2align        4, 0x90
        .type   rust_begin_unwind,@function
rust_begin_unwind:
        pushq   %rbp
        movq    %rsp, %rbp
        .p2align        4, 0x90
.LBB1_1:
        jmp     .LBB1_1
.Lfunc_end1:
        .size   rust_begin_unwind, .Lfunc_end1-rust_begin_unwind
        .section        ".note.GNU-stack","",@progbits


очень смахивет на q.e.d.
 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру