The OpenNET Project / Index page

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



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

Оглавление

Выпуск языка программирования Rust 1.73, opennews (??), 05-Окт-23, (0) [смотреть все]

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


7. "Выпуск языка программирования Rust 1.73"  +1 +/
Сообщение от Аноним (7), 05-Окт-23, 23:16 
> runtime сводится к базовой инициализации и сопровождению стандартной библиотеки

Почему тогда хеллоуворлд зависит от glibc?

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

29. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (298), 06-Окт-23, 00:02 
>> runtime сводится к базовой инициализации и сопровождению стандартной библиотеки
> Почему тогда хеллоуворлд зависит от glibc?

Потому что жабоскриптозники, не в курсе, что такое *libc на *никсах, но упорно лезут в Воены Супротив Раста?

https://www.opennet.me/openforum/vsluhforumID3/124921.html#322


#![no_std]
#![no_main]
use core::panic::PanicInfo;
use syscall::syscall;
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! { loop {} }

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


$  readelf -d hello  
There is no dynamic section in this file.


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

36. "Выпуск языка программирования Rust 1.73"  +3 +/
Сообщение от Аноним (36), 06-Окт-23, 00:21 
Очень безопасный и скрепный пример, аплодирую стоя.
Ответить | Правка | Наверх | Cообщить модератору

255. "Выпуск языка программирования Rust 1.73"  +1 +/
Сообщение от Аноним (298), 06-Окт-23, 22:01 
> Очень безопасный и скрепный пример, аплодирую стоя.

Очень унылый спрыг с "зависит от libc", попробуй еще.


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

351. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (339), 08-Окт-23, 00:02 
Унылый спрыг это твой притянутый за уши пример.
Ответить | Правка | Наверх | Cообщить модератору

56. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (56), 06-Окт-23, 01:19 
Ну и на фига тут раст тогда нужен? Я такое и на ассемблере напишу без всякого раста, ещё и размер бинарника будет в разы меньше.
Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

84. "Выпуск языка программирования Rust 1.73"  +2 +/
Сообщение от Прохожий (??), 06-Окт-23, 05:00 
Пиши, конечно. На все архитектуры сразу сможешь?
Ответить | Правка | Наверх | Cообщить модератору

142. "Выпуск языка программирования Rust 1.73"  +3 +/
Сообщение от anonymous (??), 06-Окт-23, 09:51 
На все полторы поддерживаемые растом ?
Ответить | Правка | Наверх | Cообщить модератору

245. "Выпуск языка программирования Rust 1.73"  +1 +/
Сообщение от Аноним (245), 06-Окт-23, 19:14 
> На все полторы поддерживаемые растом ?

Без лжи никак?

https://doc.rust-lang.org/nightly/rustc/platform-support.html

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

350. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (339), 07-Окт-23, 23:54 
А в чем ложь-то? Дубли выкинь и сам посчитай.
Ответить | Правка | Наверх | Cообщить модератору

153. "Выпуск языка программирования Rust 1.73"  +1 +/
Сообщение от voiceofreason (?), 06-Окт-23, 10:31 
Нативные приложения нужны только под x86. С разморозкой!
Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

191. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от BeLord (ok), 06-Окт-23, 14:07 
А их много актуальных архитектур?-))
Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

230. "Выпуск языка программирования Rust 1.73"  +1 +/
Сообщение от _ (??), 06-Окт-23, 17:21 
Много.
Давай так - ты находишь в ынтернетах платформу на которой Си нетути и публикуешь тут :)
Думаю список будет короче, чем список платформ где ржавчик __есть__ :)
Ответить | Правка | Наверх | Cообщить модератору

236. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Менеджер Антона Алексеевича (?), 06-Окт-23, 17:59 
> Много.

Перечисли все, которые не EOS/EOL и имеют хотя бы миллион деплоев на планете. То, что С есть на какой-то богом забытой архитектуре из 70х волнует разве что археологов.

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

239. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от _ (??), 06-Окт-23, 18:30 
Предсказуемый слив :)
Ну да ладно, вы ещё всем покажите! (С)
Ответить | Правка | Наверх | Cообщить модератору

243. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Менеджер Антона Алексеевича (?), 06-Окт-23, 18:48 
> Предсказуемый слив :)

Ты список-то давай, предметно будем рассматривать все 3,5 архитектуры. Раст — язык практический. Нет деплоев, нет и интереса. Но если тебе лично не хватает раста на PDP11, то портируй, если сдюжишь. Это тебе не на форуме трепаться про 50 лет непрерывных побед Си над границами массивов.

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

313. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от _ (??), 07-Окт-23, 17:04 
>Ты список-то давай, предметно будем рассматривать все 3,5 архитектуры.

Женщины нетяжёлого поведения с завистью смотрят на то как ты крутишь задом :-D
У нас все ходы записаны - список просил я, делай или bail out :)

>Раст — язык практический.

- В Ынтронетах флудить - лучше нет! На 100% согласен!
- Переписать с чего то на Ём ... удачных ____завершённых____ примеров - на одной руке пальцев хватить чтобы пересчитать :) За все 10? лет его жизни.
- Написать что то новое и полезное, чего раньше не было ... ноль. Тупо ноль. 8-/

Причём я уверен что проблема не в самом Ёзыке (я и по-сподвыподвирстей видывал! :) ), а в самих ржавчиках. Ну лет 10 пройдёт, угомоняться и если Раст действительно хорош - начнут пахать, а не флудить :)
Этот путь прошли все ёзыки и их "тусовки", я вот помню жаба-боев в 90-е :)))
Тоже всё самое - кидались озЪ на жабе написать, и даже (тоже) написали и тоже - ... кто нить имя еЯ хоть помнит ?-)

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

374. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Менеджер Антона Алексеевича (?), 09-Окт-23, 00:17 
Кроме кривляний что-то будет или «Тупо ноль. 8-/»?
Ответить | Правка | Наверх | Cообщить модератору

246. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (4), 06-Окт-23, 19:41 
актуальных? все которые нужны

Tier1:
Linux: aarch64-unknown-linux-gnu, i686-unknown-linux-gnu, x86_64-unknown-linux-gnu
Windows: i686-pc-windows-gnu, i686-pc-windows-msvc, x86_64-pc-windows-gnu, x86_64-pc-windows-msvc
macOS: x86_64-apple-darwin

Tier2:
ARM64: Windows, Linux, macOS
ARMv6: Linux
MIPS64: Linux
PowerPC: Linux
RISC-V: Linux
даже LoongArch64 поддерживается, хотя нигде кроме китая не нужен
можно запускать даже на ios simulator

Этого мало? Что еще тебе нужно?
(про эльбрус можешь не писать, пока они не откроют спеки, никакого компилятора не будет)

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

306. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (305), 07-Окт-23, 15:51 
> А их много актуальных архитектур?-))

Ну попробуй хруста на PIC запустить? А сишку можно даже и на таком уг запустить вот.

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

262. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (298), 06-Окт-23, 23:46 
> Я такое и на ассемблере напишу без всякого раста, ещё и размер бинарника будет в разы меньше.

Ну давай, покажи "в разы меньше":


$ objdump -d  hello
Disassembly of section .text:
00000000004000b0 <.text>:
  4000b0:    55                       push   %rbp
  4000b1:    48 89 e5                 mov    %rsp,%rbp
  4000b4:    6a 04                    pushq  $0x4
  4000b6:    58                       pop    %rax
  4000b7:    6a 09                    pushq  $0x9
  4000b9:    5a                       pop    %rdx
  4000ba:    be cc 00 40 00           mov    $0x4000cc,%esi
  4000bf:    31 ff                    xor    %edi,%edi
  4000c1:    0f 05                    syscall
  4000c3:    6a 01                    pushq  $0x1
  4000c5:    58                       pop    %rax
  4000c6:    31 ff                    xor    %edi,%edi
  4000c8:    0f 05                    syscall
  4000ca:    eb fe                    jmp    0x4000ca

али очередной балаб^W Воен Супротив Раста?


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

264. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (56), 07-Окт-23, 01:03 
Ты покажи не дизассемблированный код, а промежуточный код который раст сгенерил.
Ответить | Правка | Наверх | Cообщить модератору

289. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (298), 07-Окт-23, 11:34 
>> <код без строчки асма>
> Я такое и на ассемблере напишу без всякого раста, ещё и размер бинарника будет в разы меньше.

...
> Ты покажи не дизассемблированный код, а промежуточный код который раст сгенерил.

Опять юлеж. Ну, было ожидаемо.


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

322. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (322), 07-Окт-23, 17:54 
Размер бинарника - это включая заголовки ELF. Плюс данные по адресу 0x4000cc, почему-то забытые. Так что ответ малость не в тему.

Мне лениво что-то кодить, а тем более шаманить с заголовками *), доказывая за заявившего, потому вот готовый пример, вдвое с лишним (229 против 496 в оригинале) меньше.

$ cd fasm_samples/console/00/

$ du -b a00
229    a00

$ cat a00.fasm
; fasm demonstration of writing 64-bit ELF executable
; note that linux from kernel 2.6.??? needs last segment to be writeable
; else segmentation fault is generated
; compiled with fasm 1.66

; syscall numbers: /usr/src/linux/include/asm-x86_64/unistd.h
; kernel parameters:
; r9    ; 6th param
; r8    ; 5th param
; r10    ; 4th param
; rdx    ; 3rd param
; rsi    ; 2nd param
; rdi    ; 1st param
; eax    ; syscall_number
; syscall
;
; return register:
; rax    ; 1st
; rdx    ; 2nd
;
; preserved accross function call: RBX RBP ESP R12 R13 R14 R15
;
; function parameter (when linked with external libraries):
; r9    ; 6th param
; r8    ; 5th param
; rcx    ; 4th param
; rdx    ; 3rd param
; rsi    ; 2nd param
; rdi    ; 1st param
; call library

format ELF64 executable at 0000000100000000h    ; put image over 32-bit limit

segment readable executable

entry $

    mov    edx,msg_size    ; CPU zero extends 32-bit operation to 64-bit
                ; we can use less bytes than in case mov rdx,...
    lea    rsi,[msg]
    mov    edi,1        ; STDOUT
    mov    eax,1        ; sys_write
    syscall

    xor    edi,edi        ; exit code 0
    mov    eax,60        ; sys_exit
    syscall

segment readable writeable

msg db 'Hello 64-bit world!',0xA
msg_size = $-msg


*) Если в примере закомментировать определение второй секции, получится 173 байт. Это не предел, но эти фокусы относятся не к языку, а к линкеру.

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

327. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (298), 07-Окт-23, 18:27 
> Размер бинарника - это включая заголовки ELF. Плюс данные по адресу 0x4000cc,
> почему-то забытые. Так что ответ малость не в тему.

...
> *) Если в примере закомментировать определение второй секции, получится 173 байт. Это
> не предел, но эти фокусы относятся не к языку, а к линкеру.

Размер бинарника на этом уровне (включая заголовки) - это вопрос линковки. В контексте рантайма (иначе зачем припрлетать асм) интересен сгенеренный код. Как мы видим ничего лишнего там нема, хотя там ни строчки асма нет (на самом деле конечно подставляется макросом syscall!, но это и у сишки примерно так же).


> Последний jmp на самого себя это похоже фишка Раста и не убирается.

Это фишка "loop{}" в самом коде.

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

364. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (322), 08-Окт-23, 07:30 
>> Размер бинарника - это включая заголовки ELF. Плюс данные по адресу 0x4000cc,
>> почему-то забытые. Так что ответ малость не в тему.
> ...
>> *) Если в примере закомментировать определение второй секции, получится 173 байт. Это
>> не предел, но эти фокусы относятся не к языку, а к линкеру.
> Размер бинарника на этом уровне (включая заголовки) - это вопрос линковки.  

Потому и уточнил в сноске. Однако, fasm-у не нужен линкер. Формат исполняемого файла, секции или сегменты описываются в исходном тексте. Так что формально пример подпадает под "на ассемблере напишу". Другое дело, что сам заявитель обещание не выполнил.

> В контексте рантайма (иначе зачем припрлетать асм) интересен сгенеренный код.
> Как мы видим ничего лишнего там нема, хотя там ни строчки асма нет
> (на самом деле конечно подставляется макросом syscall!, но это и у
> сишки примерно так же).

На лишнее я указал в отдельном сообщении - пролог с созданием стекового кадра. Впрочем, это вопрос к оптимизатору и опциям при компиляции. Если бы кто-то потрудился тот древний пример для FreeBSD пересобрать под их любимую ОС актуальным транслятором, вероятно, этих команд бы не было.

>> Последний jmp на самого себя это похоже фишка Раста и не убирается.
> Это фишка "loop{}" в самом коде.

Вопрос в убирается ли. На том же Си не всегда просто исключить ненужную команду ret.

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

323. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (322), 07-Окт-23, 17:59 
Кстати, кодогенератор мог бы исключить создание стекового кадра (push   %rbp), поскольку он не используется, играйте с ключами оптимизации, сэкономите 2 байта. Последний jmp на самого себя это похоже фишка Раста и не убирается.
Ответить | Правка | К родителю #262 | Наверх | Cообщить модератору

57. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (56), 06-Окт-23, 01:27 
То есть без libc даже хеллоувордл без unsafe не написать? Ясно-понятно.
Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

58. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Sem (??), 06-Окт-23, 01:33 
А где можно?
Ответить | Правка | Наверх | Cообщить модератору

81. "Выпуск языка программирования Rust 1.73"  –1 +/
Сообщение от leap42 (ok), 06-Окт-23, 04:41 
> А где можно?

В Go точно можно, главное под линуксом CGO_ENABLED=0 сделать (в других ОС оно уже выключено).

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

85. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Прохожий (??), 06-Окт-23, 05:02 
А без GC в Go можно?
Ответить | Правка | Наверх | Cообщить модератору

103. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от leap42 (ok), 06-Окт-23, 06:24 
> А без GC в Go можно?

Можно конечно, но зачем? Средний STW во время сборки мусора длится меньше(!) 0.5ms (обыватель не замечает ничего быстрее 10ms (разница в 20 раз), профи в некоторых областях замечают задержки 3-4ms (разница в 6-8 раз)). Поэтому Go довольно популярен в soft rt задачах (см. webrtc серваки например). Для hard rt нужно просто другой язык брать (и даже там скорее всего не будет привычных аллокаций), но это супер редкая вещь.

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

112. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (-), 06-Окт-23, 08:34 
> Можно конечно, но зачем? Средний STW во время сборки мусора длится меньше(!)
> 0.5ms (обыватель не замечает ничего быстрее 10ms (разница в 20 раз),

Кого интересует среднее, если интересует - наихучшее? И почему вообще у игого такие рехультате позорные в интенсивной математике? По сравнению с сабжем и сями например.

> профи в некоторых областях замечают задержки 3-4ms (разница в 6-8 раз)).
> Поэтому Go довольно популярен в soft rt задачах (см. webrtc серваки например).

Оно и видно, аж dropbox переписал бэк с игого на сабжа.

> Для hard rt нужно просто другой язык брать (и даже там скорее всего
> не будет привычных аллокаций), но это супер редкая вещь.

И в результате придется учить разные ЯП... очень круто и удобно. А сабж, вот, можно попробовать натянуть и туда.

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

128. "Выпуск языка программирования Rust 1.73"  +1 +/
Сообщение от leap42 (ok), 06-Окт-23, 09:19 
> Кого интересует среднее, если интересует - наихучшее?

Кого? Школьников? Наихудшее будет где-то в пределах 1ms, но оно будет случаться раз на миллион или около того (зависит от того что за данные).

> Оно и видно, аж dropbox переписал бэк с игого на сабжа.

Довольно странно, думал, у них головы между рук растут. А инфа какая-то есть?

> И в результате придется учить разные ЯП... очень круто и удобно.

Кому? Школьникам? Инженер сразу знает, нужен ему hard rt (супер редко) или нет. Соответственно сам характер проекта уже чётко диктует возможные ЯП.

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

212. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (-), 06-Окт-23, 15:59 
> Кого? Школьников? Наихудшее будет где-то в пределах 1ms, но оно будет случаться
> раз на миллион или около того (зависит от того что за данные).

Интересует оно как минимум
1) И правда геймеров. Потому что непредсказуемый джиттер или spike'ы потребления памяти - это не круто и может вызвать общесистемные лаги.
2) И игроделов заодно. Им предсказуемый перфоманс мастхэв. Это уже не школьники совсем.
3) Тех кому реалтайм не похрен. Это уже вообще совсем врядли школьники.
4) Юзеров DE, особенно с требованиями к латенси, например звукорежей всяких.

А то что оно там в среднем в этой недо-яве - только вебманкам и интересно со всеми вашими блабла про нетормозит. И еще поди окажется что надо помножить на 10 если это не Xeon окажется а ноут какой малохольный. В этом смысле хруст получает цать очков форы вперед, borrow checker довольно прикольно как идея так то.

> Довольно странно, думал, у них головы между рук растут. А инфа какая-то есть?

Они помнится переписывали минимум 2 раза, с питона на игого и потом на хруст. Наверное можно нагуглить это дело. Ну и вообще игогошка кроме веба не особо используется, и 6-метровые хелловорлды и GC в топе причин.

А так можно посмотреть как фуксики писали на игого драйверы ФС. Получилась, извините, полная хрень и тут они чего-то хруст разрешили как ЯП. И пошли переписывать свое недоразумение.

>> И в результате придется учить разные ЯП... очень круто и удобно.
> Кому? Школьникам? Инженер сразу знает, нужен ему hard rt (супер редко) или
> нет. Соответственно сам характер проекта уже чётко диктует возможные ЯП.

Ну вот мне hard rt - нужен. Поэтому я и не буду го изучать, как категорию.

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

244. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Менеджер Антона Алексеевича (?), 06-Окт-23, 18:56 
> Ну вот мне hard rt - нужен. Поэтому я и не буду го изучать, как категорию.

Какие милые, прямо-таки книжные, эгоцентризм и ригидность мышления. Тебе шестнадцать и ты у мамы самый умница и красавица, да? В комментах, вижу, из себя умного корчишь, а по факту ты one trick pony. Не можешь освоить больше одного языка программирования и почему-то считаешь это благом. Я за много лет профдеятельности заметил, что чем хуже человек умеет программировать, тем сложнее ему осваивать новые языки и инструменты. Судя по твоим утверждениям, ты кодер.

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

307. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (305), 07-Окт-23, 15:55 
> Какие милые, прямо-таки книжные, эгоцентризм и ригидность мышления. Тебе шестнадцать и
> ты у мамы самый умница и красавица, да? В комментах, вижу, из себя умного корчишь,
> а по факту ты one trick pony.

Хехе, манагер, ты так себя жесточайше развел устроив проекции и не угадав ни 1 буквы :)

> Не можешь освоить больше одного языка программирования и почему-то считаешь это
> благом. Я за много лет профдеятельности заметил, что чем хуже человек
> умеет программировать, тем сложнее ему осваивать новые языки и инструменты. Судя
> по твоим утверждениям, ты кодер.

А можно вот нахвататься всего понемногу - и тогда получится вообще эникей. Который ни в чем нормально не разбирается но мнение имеет.

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

279. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от leap42 (ok), 07-Окт-23, 05:10 
> Интересует оно как минимум
> 1) И правда геймеров. Потому что непредсказуемый джиттер или spike'ы потребления памяти
> - это не круто и может вызвать общесистемные лаги.
> 2) И игроделов заодно. Им предсказуемый перфоманс мастхэв. Это уже не школьники
> совсем.
> 3) Тех кому реалтайм не похрен. Это уже вообще совсем врядли школьники.
> 4) Юзеров DE, особенно с требованиями к латенси, например звукорежей всяких.

Первые 1,2,4 - soft rt, 3 - школьники. Сам факт непонимания того что такое hard rt уже делает дискуссию ненужной 🤷‍♂️

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

308. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (305), 07-Окт-23, 15:56 
> Первые 1,2,4 - soft rt, 3 - школьники. Сам факт непонимания того
> что такое hard rt уже делает дискуссию ненужной 🤷‍♂️

Ну да, вы так то програмеру мк с своим игого рассказали что он школьник и что не понимает что такое hard rt, вам то из вашего игого - виднее. Но если вы решили расставить точки над i в теме о школьниках - так и получите на пару с манагером, не жалко :)

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

171. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (171), 06-Окт-23, 11:48 
> 0.5ms (обыватель не замечает ничего быстрее 10ms (разница в 20 раз)

Обыватель заметит суммарную работу GC, а не мгновенную.

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

196. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (322), 06-Окт-23, 14:31 
Интегральный результат у GC может оказаться лучше тупого ручного управления. В частности за счёт того, что уплотняющие сборщики улучшают локальность данных.
Ответить | Правка | Наверх | Cообщить модератору

214. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (-), 06-Окт-23, 16:01 
> Интегральный результат у GC может оказаться лучше тупого ручного управления. В частности
> за счёт того, что уплотняющие сборщики улучшают локальность данных.

Что-то переписываюшие с го на хруст бэки и вон те фукмики в итоге иного мнения на этот счет оказались. Получилось очередное яванетормозит. Там тоже рассказывали всякие с горящими глазами, как можно крутой код нативный для проца по максимуму... потом оказалось что круто оптимизить код ресурсов жрет немеряно, GC дурные взбрыки вызывает, и вообще, без ксеона с 128 гигами лучше не соваться.

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

223. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (322), 06-Окт-23, 16:33 
Там было ключевое слово "может".)) Да и в GO вроде бы консервативный сборщик, то есть данные остаются на своих местах где попало, и куча так же фрагментируется как и любителей аллоцировать по 2 байта.
Ответить | Правка | Наверх | Cообщить модератору

309. "Выпуск языка программирования Rust 1.73"  –1 +/
Сообщение от Аноним (305), 07-Окт-23, 15:58 
> Там было ключевое слово "может".)) Да и в GO вроде бы консервативный
> сборщик, то есть данные остаются на своих местах где попало, и
> куча так же фрагментируется как и любителей аллоцировать по 2 байта.

Ну вот сабж лучше хотя-бы тем что всего этого брейнфака там нет. И если хочется аллоцировать 2 байта, значит 2 байта. И ничего такого за это не будет в общем случае. Уж гденить в стеке 2 байта аллоцировать вообще занятие невозбранное, а деаллоцируется это само даже в сях педальных.

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

155. "Выпуск языка программирования Rust 1.73"  –3 +/
Сообщение от voiceofreason (?), 06-Окт-23, 10:34 
Дыряшке ничего не мешает иметь zero runtime, но академики и онанисты на технологии 1970ых против.
Ответить | Правка | К родителю #58 | Наверх | Cообщить модератору

315. "Выпуск языка программирования Rust 1.73"  +2 +/
Сообщение от _ (??), 07-Окт-23, 17:16 
В великолепном до гениальности, самом низкоуровневом из высокоуровневых языков "Си" когда его применяют на всякой embedded - zero runtime настолько част, что причастные об этом даже не упоминают, это - само собой.

Ух сколько вам открытий чудных готовит (С)   :-D

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

383. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от voiceofreason (?), 11-Окт-23, 18:03 
Не-не-не, в эмбеддеде от цэ остался ассемблер со скобками. На ПК так никто не пишет. Когда будет с каким-то ключиком GCC хеллоуворлд на 20-30 байт, сразу, здесь и сейчас, без извращений - позовите. Вывод строки в сосноль в api был даже в досе 40 лет назад. Для этого не надо вообще никаких либ, окромя ОС как таковой.
Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск языка программирования Rust 1.73"  +1 +/
Сообщение от Аноним (61), 06-Окт-23, 02:07 
Без ансейф системный вызов дырявого сишного ядра не дернешь.
Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

116. "Выпуск языка программирования Rust 1.73"  +5 +/
Сообщение от Аноним (-), 06-Окт-23, 08:46 
> Без ансейф системный вызов дырявого сишного ядра не дернешь.

Ну так в редоксе дергай, фигле. А, он у тебя вообще безопасно не загружается? Так это и есть самое безопасное состояние системы. Представляешь как хакеры обломятся если у тебя например драйвера сетевухи нет? :)

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

253. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (298), 06-Окт-23, 21:39 
> То есть без libc даже хеллоувордл без unsafe не написать? Ясно-понятно.

То есть, тут перепись жабоскриптозников и прочих питонистов, которые не в курсе, что libc - интерфейс для взаимодействия с ядром ...

> The system call is the fundamental interface between an application and the Linux kernel.
> System calls are generally not invoked directly, but rather via
> wrapper functions in glibc
>

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

291. "Выпуск языка программирования Rust 1.73"  +1 +/
Сообщение от Аноним (56), 07-Окт-23, 12:24 
Нет, мы это прекрасно знаем в отличие от растаманов. Поэтому мы понимаем что все их потуги заменить C на безопасную работу с памятью - это просто потуги, потому что Линукс написан на C и чтобы даже один байт вывести на экран надо дёргать с скол через libc. Ну или вот так извращаться как в примере выше, дергая сисколы напрямую
Ответить | Правка | Наверх | Cообщить модератору

292. "Выпуск языка программирования Rust 1.73"  +/
Сообщение от Аноним (298), 07-Окт-23, 12:36 
> То есть без libc даже хеллоувордл без unsafe не написать?

...
> Нет, мы это прекрасно знаем в отличие от растаманов.

Чей-та непохоже.

> Поэтому мы понимаем что все их потуги заменить C на безопасную работу с памятью - это просто потуги, потому что Линукс написан на C и <остальные размышлизмы без конкретики поскипаны>

Правда, понимание на уровне жабоскриптозников ...

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

150. "Выпуск языка программирования Rust 1.73"  +4 +/
Сообщение от morphe (?), 06-Окт-23, 10:26 
Потому что во всех других системах нельзя быть не завязанным на libc.
У windows/macos/unixов отличных от linux - libc это единственный способ взаимодействия с ядром, номера сисколов там не фиксированные.

Даже если большую часть вызовов libc заменят на вызовы сисколов - то это не будет так просто работать, например если собирать rust код в динамическую библиотеку, а код использует TLS (thread local storage), то библиотека просто обязана знать о libc, поскольку TLS реализовано именно там.

Таким образом, полностью избавляться от libc идёт вразрез со сценариями использования Rust, это не экосистема замкнутая в себе, которая просто не хочет дружить со внешними библиотеками как golang (cgo всё ещё боль, да и он требует libc тоже)

Если же требуется собрать standalone программу, т.е не библиотеку, и не что-то, что хочет линковаться с другими библиотеками (по той же причине - поддержка TLS), то можно сейчас использовать musl.

Если хочется standalone, но без C - то есть https://github.com/sunfishcode/mustang, это реализация libc на Rust, с которой даже сишные программы можно компилировать, пускай пока и не все.

А в embedded тебе libc вовсе не нужен, и Rust с этим тоже работает.

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

349. "Выпуск языка программирования Rust 1.73"  –2 +/
Сообщение от Аноним (339), 07-Окт-23, 23:48 
То есть если совсем кратко и без воды - раст никогда не заменит Си, точка.
Ответить | Правка | Наверх | Cообщить модератору

354. "Выпуск языка программирования Rust 1.73"  +1 +/
Сообщение от Аноним (354), 08-Окт-23, 01:16 
>> Если хочется standalone, но без C - то есть https://github.com/sunfishcode/mustang, это реализация libc на Rust, с которой даже сишные программы можно компилировать, пускай пока и не все.
> То есть если совсем кратко и без воды и читать опой - раст никогда не заменит Си, точка. Точка, я СКАЗАЛ!!1

Пофиксил, не благодари!


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

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

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




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

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