The OpenNET Project / Index page

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



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

Оглавление

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

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


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ообщить модератору

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

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




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

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