The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на языке Rust, opennews (??), 18-Фев-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


20. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от анонн (ok), 18-Фев-21, 22:25 
> Если оно либхруст статически в себя вконпеляет, то весить будет такое приложение как минималистичный линукс дистр с набором утилит.


$ cat hello.rs && rustc hello.rs -C link-args=-s && ./hello && wc -c ./hello && ldd -f "%o\n" ./hello                                                                                      
fn main() {
  println!("Hello World!");
}
Hello World!
  301672 ./hello
libthr.so.3
libgcc_s.so.1
libc.so.7

$ uname -m
amd64


Уважаемый Опеннетный Эксперт По Всему видит где-то зависимость от librust (на самом деле libstd-XXX.so)?
Вот и я не вижу. Вкомпилено статически.
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

25. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от Сишник (?), 18-Фев-21, 22:50 
> Так что жду от Уважаемого Опеннетного Эксперта ссылку на дистр в 300KB "с набором утилит", для этой же архитектуры.

А сабж скомпилянный сколько весит?

Ответить | Правка | Наверх | Cообщить модератору

38. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от Аноним (-), 19-Фев-21, 07:59 
Так написано же - 301672 ./hello

Нормальный такой hello world, в следующей версии go как раз догонят.

Ответить | Правка | Наверх | Cообщить модератору

46. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от Аноним (46), 19-Фев-21, 08:58 
Я про uefi бинарь спрашивал. В статье про это стыдливо в умалчивают.
Ответить | Правка | Наверх | Cообщить модератору

66. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от Аноним (66), 19-Фев-21, 13:41 
> Так написано же - 301672 ./hello
> Нормальный такой hello world, в следующей версии go как раз догонят.

А теперь, дорогой опеннетный Питонист, собери для плюсов или сишки с обычным системным libc/glibc - и удивись.

Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

76. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от Аноним (-), 19-Фев-21, 23:01 
> А теперь, дорогой опеннетный Питонист,

Немного не угадал на свое горе, эксперт.

> собери для плюсов или сишки с обычным системным libc/glibc - и удивись.


16600 Feb 19 22:57 a.out

Самый наидефолтнейший компил hello world. Можно стрипнуть, станет 14408. Не предел мечтаний, есть методы его сдуть еще в несколько раз, там 90% - пустое место (alignment секций).

Значит, грите, всего в 18 раз жирнее? Ну да, до игогошечки не дотягивает :)

Ответить | Правка | Наверх | Cообщить модератору

84. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от Аноним (84), 20-Фев-21, 01:48 
>> А теперь, дорогой опеннетный Питонист,
> Немного не угадал на свое горе, эксперт.

Да вроде бы угадал.

>> собери для плюсов или сишки с обычным системным libc/glibc - и удивись.
>

 
> 16600 Feb 19 22:57 a.out
>

> Самый наидефолтнейший компил hello world. Можно стрипнуть, станет 14408. Не предел мечтаний,

Потому что только питонист бы не обратил внимания на "Вкомпилено статически."

> Значит, грите, всего в 18 раз жирнее? Ну да, до игогошечки не дотягивает :)

Значит, слышится Питонистам опять что-то эдакое?


% cat hello.rs && rustc hello.rs -C prefer-dynamic  && ./hello && wc -c ./hello          
fn main() {
  println!("Hello World!");
}
Hello World!
   11288 ./hello

Можно стрипнуть, станет
> 7696 hello
Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  –2 +/
Сообщение от Аноним (-), 19-Фев-21, 09:16 
Так написано же вроде - 301672. Нормальный такой hello world, проигрывает только go.
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

52. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  –1 +/
Сообщение от Брат Анон (ok), 19-Фев-21, 10:15 
Не совсем. Если вырезать всю отладку и ужать upx -- почти столько же получается.
Ответить | Правка | Наверх | Cообщить модератору

65. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от Аноним (66), 19-Фев-21, 13:33 
> Так написано же вроде - 301672. Нормальный такой hello world, проигрывает только go.

Еще сишке с libc/glibc, плюсам ...
Но откуда местным Ыкспертам-питонистам об этом знать?
Правильно, неоткуда.


cat helloc.c && gcc -O2 -static helloc.c -s  -o hello && wc -c ./hello  
#include <stdio.h>
int main (void) {
        puts("Hello World");
        return 0;
}  
571016


cat hello.cpp && g++ -O2 -static hello.cpp -s  -o hello && wc -c ./hello  
#include <iostream>
int main (void) {
    std::cout <<"Hello World";
    return 0;
}
1503192

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

77. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от Аноним (-), 19-Фев-21, 23:04 
А зачем его как статик компилить? Но вообще для извращенцев есть и супер-минимальные реализации либц.

А если без либц - то вообще,


While the Standard imposes some requirements beyond what would be practical on some of the smaller C platforms, some almost-conforming implementations of C can be quite usefully employed on processors with only enough storage to hold 256 instructions and 16 bytes' worth of variables. If something like a digital kitchen thermometer/timer gadget doesn't have a file system or console, why should it waste storage on things like descriptors for stdout?

Это есчо цитата 9899:1999, раздел про "freestanding". А что нам растовики предложат на эту тему? Если уж меряться... :)
Ответить | Правка | Наверх | Cообщить модератору

85. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от Аноним (84), 20-Фев-21, 01:50 
> А зачем его как статик компилить?

А затем, что ветка была о "Если оно либхруст статически в себя вконпеляет" ...

Ответить | Правка | Наверх | Cообщить модератору

88. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от anonymous (??), 20-Фев-21, 11:52 
Тут хочется поделиться: https://github.com/kmcallister/tiny-rust-demo :)
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

91. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  –1 +/
Сообщение от Аноним (-), 21-Фев-21, 05:30 
> Тут хочется поделиться: https://github.com/kmcallister/tiny-rust-demo :)

Выглядит забавно но куча дурных закорюк и состоит из unsafe чуть менее чем полностью :P

Ответить | Правка | Наверх | Cообщить модератору

98. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  +/
Сообщение от анонн (ok), 21-Фев-21, 15:17 
> Тут хочется поделиться: https://github.com/kmcallister/tiny-rust-demo :)

Да оно и без кастомных ELF-хидеров, линк-скриптов и ручной линковки достаточно мелкое выходит ;)


$ cat nostd.rs && rustc nostd.rs --edition=2018 -C opt-level=z -C link-args="-s -static" -C panic=abort --extern syscall="/tmp/nostd/target/release/deps/libsyscall-ffd7038713ab7739.rlib" -C relocation-model=static -C linker=ld.bfd && ./nostd && wc -c ./nostd
#![no_std]
#![no_main]
use core::panic::PanicInfo;
use syscall::syscall;

#[panic_handler]
fn panic(_info: &PanicInfo) -> ! { loop {} }

#[no_mangle]
pub extern "C" fn _start() -> ! {
    let hello = "Hello\n".as_bytes();
    unsafe {
        syscall!(WRITE, 0, hello.as_ptr(), hello.len());
        syscall!(EXIT,0);
    }
    loop {}
}

Hello
     496 ./nostd


Ответить | Правка | К родителю #88 | Наверх | Cообщить модератору

28. "Выпуск uefi-rs 0.8, обвязка для создания UEFI-приложений на ..."  –1 +/
Сообщение от Аноним (7), 18-Фев-21, 22:53 
Это не статический бинарь. Емнип статический бинарь у глибц 700кб у мюслей около 15кб.
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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