The OpenNET Project / Index page

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



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

"Выпуск языка программирования Rust 1.54"  +/
Сообщение от opennews (??), 29-Июл-21, 22:11 
Опубликован релиз языка системного программирования Rust 1.54, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=55563

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

Оглавление

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


4. "Выпуск языка программирования Rust 1.54"  +7 +/
Сообщение от FortyTwo (ok), 29-Июл-21, 22:20 
> В разряд стабильных переведена новая порция API

Счачстье то какое!

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

11. "Выпуск языка программирования Rust 1.54"  +14 +/
Сообщение от НяшМяш (ok), 29-Июл-21, 22:36 
Где бы взять запасную печень, что не релиз, так праздник.
Ответить | Правка | Наверх | Cообщить модератору

293. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от trdm (ok), 30-Июл-21, 09:45 
Сколько весит хелло ворд на русте с зависимостями?
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

296. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (296), 30-Июл-21, 09:57 
Не помню точно, но вроде около метра.
Ответить | Правка | Наверх | Cообщить модератору

302. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним зеленый (?), 30-Июл-21, 10:21 
Какие у хелловорлда зависимости? 250кб без отладочных символов.
Ответить | Правка | К родителю #293 | Наверх | Cообщить модератору

372. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Хан (?), 30-Июл-21, 17:10 
Как минимум либа для работы с пайпами, тот же printf это замаскированный IPC
Ответить | Правка | Наверх | Cообщить модератору

313. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (313), 30-Июл-21, 11:37 
$ rustc -C opt-level=z -C lto -C codegen-units=1 -C panic=abort -Z strip=symbols hello.rs
$ du -h hello
224K    hello
Ответить | Правка | К родителю #293 | Наверх | Cообщить модератору

319. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 12:31 
> $ rustc -C opt-level=z -C lto -C codegen-units=1 -C panic=abort -Z strip=symbols
> hello.rs
> $ du -h hello
> 224K hello

-C prefer-dynamic
6,5K


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

322. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (-), 30-Июл-21, 12:44 
> Сколько весит хелло ворд на русте с зависимостями?

500 байт


$ cat hello.rs
#![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 {}
}


$ ./hello
Hello World

$ ll hello
-rwxr-x---   496B 30 Jul. 12:41 hello*
$  readelf -d hello  
There is no dynamic section in this file.
$ 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

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

331. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от n00by (ok), 30-Июл-21, 13:41 
Интересный листинг.

00000000004000b0 <.text>:
  4000b0:    55                       push   %rbp
  4000b1:    48 89 e5                 mov    %rsp,%rbp
  4000b4:    6a 04                    pushq  $0x4           ; #define __NR_stat 4
  4000b6:    58                       pop    %rax
  4000b7:    6a 09                    pushq  $0x9           ; строка Hello World занимает 11 байт.
  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           ; #define __NR_write 1
  4000c5:    58                       pop    %rax
  4000c6:    31 ff                    xor    %edi,%edi
  4000c8:    0f 05                    syscall
  4000ca:    eb fe                    jmp    0x4000ca

#define __NR_exit 60

Вот как выглядит корректный и с претензией минимальность


; fasm demonstration of writing 64-bit ELF executable
; (thanks to Franti.ek G.bri.)

; syscall numbers: /usr/src/linux/include/asm-x86_64/unistd.h
; parameters order:
; r9    ; 6th param
; r8    ; 5th param
; r10   ; 4th param
; rdx   ; 3rd param
; rsi   ; 2nd param
; rdi   ; 1st param
; eax   ; syscall_number
; syscall

format ELF64 executable 3

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


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

333. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Владимирemail (??), 30-Июл-21, 14:12 
push 1 / pop edi занимает меньше байт, чем mov edi, 1. mov eax, 1 то же самое. Да и mov eax, 60.
Ответить | Правка | Наверх | Cообщить модератору

336. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 14:34 
Речь не об опкодах, а о номерах системных вызовов. См. комментарии в первом листинге.
Ответить | Правка | Наверх | Cообщить модератору

346. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 15:04 
> Интересный листинг.
>
 
>     pushq  $0x4    
>       ; #define __NR_stat 4
>     pushq  $0x1    
>       ; #define __NR_write 1

> #define __NR_exit 60
> Вот как выглядит корректный и с претензией минимальность

Вы там поаккуратнее с ярлыками и суждениями о "корректности":


head -14 /usr/src/sys/sys/syscall.h
/*
* System call numbers.
*
* DO NOT EDIT-- this file is automatically @generated.
* $FreeBSD$
*/

#define    SYS_syscall    0
#define    SYS_exit    1
#define    SYS_fork    2
#define    SYS_read    3
#define    SYS_write    4
#define    SYS_open    5
#define    SYS_close    6

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

355. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 16:07 
>[оверквотинг удален]
>  * $FreeBSD$
>  */
> #define SYS_syscall 0
> #define SYS_exit 1
> #define SYS_fork 2
> #define SYS_read 3
> #define SYS_write 4
> #define SYS_open 5
> #define SYS_close 6
>

Да, это получился зачётный конфуз.

Тем не менее вопрос по размеру строки в силе. "Hello World\n" 12 байт без терминатора, а в листинге 9. В оригинале было "Hello BSD"?

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

358. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 16:16 
> Тем не менее вопрос по размеру строки в силе. "Hello World\n" 12
> байт без терминатора, а в листинге 9. В оригинале было "Hello BSD"?

Подловил. Просто "sometext\n"

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

409. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 18:59 
Это ещё кто кого подловил. Если бы не эта разница в длине, я бы не обратил внимания, или может даже догадался про другую систему подумать. А так нашёл лишнее подтверждение, что код какой-то "не тот". :)
Ответить | Правка | Наверх | Cообщить модератору

432. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним зеленый (?), 30-Июл-21, 19:56 
Нужно понимать, что минимальный не значит быстрый. Он может быть сильно медленней при исполнении.
Ответить | Правка | К родителю #346 | Наверх | Cообщить модератору

345. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (345), 30-Июл-21, 15:01 
Можно ссылку на собираемый проектик?
Ответить | Правка | К родителю #322 | Наверх | Cообщить модератору

424. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (-), 30-Июл-21, 19:44 
10 лет назад хелло_ворд весил 5 мегабайт. 7 лет назад хелло_ворд весил 3 мегабайта. 4 года назад хелло_ворд весил 1 мегабайт. Сейчас хелло ворд весит около 100 Килобайт.

Растаманы стыдятся отвечать на этот вопрос. Больше не задавай такие вопросы.

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

448. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 21:53 
> 10 лет назад хелло_ворд весил 5 мегабайт. 7 лет назад хелло_ворд весил
> 3 мегабайта. 4 года назад хелло_ворд весил 1 мегабайт.

У вас, криворуких - возможно все. И 100 мб.
> Сейчас хелло ворд весит около 100 Килобайт.

Врешь и не краснеешь.


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

494. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 31-Июл-21, 06:14 
>Врешь и не краснеешь.

Извини, сейчас helloworld на Расте весит 200-ти с чем-то килобайт.

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

506. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 31-Июл-21, 08:51 
>>Врешь и не краснеешь.
> Извини, сейчас helloworld на Расте весит 200-ти с чем-то килобайт.

Байт, без кило. 500 байтный пример https://www.opennet.ru/openforum/vsluhforumID3/124921.html#322 для FreeBSD можно ещё сократить, если рихтануть ELF, но это уже не относится к языку.
В других системах будет примерно так же, только некоторые параметры (номера сисколов) поменяются. Сравните с вариантом на ассемблере в моём ответе.

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

517. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 31-Июл-21, 13:17 
>>Врешь и не краснеешь.
> Извини, сейчас helloworld на Расте весит 200-ти с чем-то килобайт.

Как мило, очередной болту^W Экспердус опеннета.


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

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

572. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Растофиля (?), 01-Авг-21, 11:27 
> prefer-dynamic
> 6608 ./hello

Хитрозадый очень, да?
Статику давай, или считай все те либы, которые тащит за собой этот ваш раст.

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

573. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от anonymous (??), 01-Авг-21, 12:30 
151 байт, статика: https://github.com/kmcallister/tiny-rust-demo
Ответить | Правка | Наверх | Cообщить модератору

575. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 01-Авг-21, 12:55 
>> prefer-dynamic
>> 6608 ./hello
> Хитрозадый очень, да?

Если очередной опеннетный "антирастовец" не владеет предметом, то кто ему ССЗБ?

> Статику давай,

Тебе воон выше дали - с ходу 500 байт, без каких-то извращений с линковщиком.

> или считай все те либы, которые тащит за собой этот ваш раст.

Эталон давай, на труЪ языке, плюс как правильно собирать и что, как и где считать. А то знаю я вас - "тут считаем, тут ... не считаем! Не считаем, я скозал!"


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

625. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Растофиля (?), 02-Авг-21, 13:04 
> Если очередной опеннетный "антирастовец" не владеет предметом, то кто ему ССЗБ?

Ты не умеешь в статическую сборку, а не владею предметом оказывается я. Ну-да, ну-да.
Растоманы такие растоманы.

> Тебе воон выше дали - с ходу 500 байт, без каких-то извращений с линковщиком

Это не "Hello, World" на расте, это не кроссплатформенная хрень на сисколах.

"Hello, World" на расте выглядит вот так и никак иначе:
----
fn main() {
    println!("Hello, world!");
}
----

> плюс как правильно собирать и что, как и где считать.

В Си статическая сборка делается просто ключом "-static" у gcc.
В расте, начиная с версии 1.48+ должно быть с ключом: '-C target-feature=+crt-static'. Но не факт, что это будет работать.
Проверять статичность линковки нужно выхлопом ldd - он должен быть пустым.


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

627. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 02-Авг-21, 13:25 
>> Тебе воон выше дали - с ходу 500 байт, без каких-то извращений с линковщиком
> Это не "Hello, World" на расте, это не кроссплатформенная хрень на сисколах.

Опечатка то по Фрейду. Действительно, не какая-то хрень, кросплатформенная, а, внезапно, пример системного программирования. Но тут же некоторым главное передёрнуть. Если слинковаться с libc, тогда бы он написал: "глядите, у Rust есть рантайм!"

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

631. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Растофиля (?), 02-Авг-21, 14:53 
> внезапно, пример системного программирования.

Мы в этой подветке обсуждали размер бинаря "стандартного" helloworld-а со всеми его зависимостями, а не системное программирование на расте.
helloworld - это ни разу не системное программирование.

> Но тут же некоторым главное передёрнуть.

Вот подсовывание хрени на сисколах вместо "стандартного" helloworld-а и было передёргиванием.
Во-первых, вместо "стандартного" хотели подсунуть совсем другое, а, во-вторых, пытались увести дискуссию с неприятной для вас темы в сторону.

> Если слинковаться с libc, тогда бы он написал: "глядите, у Rust есть рантайм!"

Кто "он"? Разверни мысль.

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

634. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 02-Авг-21, 15:27 
>> внезапно, пример системного программирования.
> Мы в этой подветке обсуждали размер бинаря "стандартного" helloworld-а со всеми его
> зависимостями, а не системное программирование на расте.

Нет никакого стандарта на helloworld-ы. Вы это прекрасно понимаете, потому и закавычили. Исходный вопрос "Сколько весит хелло ворд на русте с зависимостями?"
https://www.opennet.ru/openforum/vsluhforumID3/124921.html#293
Пример показывает, что из зависимостей достаточно ядра. Наблюдаемый результат соответствует. Задача решена.

> helloworld - это ни разу не системное программирование.

helloworld и системное программирование ортогональны и не исключают друг друга.

>> Но тут же некоторым главное передёрнуть.
> Вот подсовывание хрени на сисколах вместо "стандартного" helloworld-а и было передёргиванием.

Это хороший, годный минимальный пример. Он показывает, что сам язык в какой-то мере самодостаточен и пригоден для написания системного ПО (я не говорю, что он является заменой императивному Си -- как выяснилось, Rust исходно функциональный язык).

С другой стороны вот здесь https://www.opennet.ru/openforum/vsluhforumID3/124921.html#588
пишут, что к программе на Rust проблематично прилинковать статично его стандартную библиотеку. Вот это уже звоночек. Похоже, вокруг языка крутятся посторонние люди, которые плохо понимают требования.

> Во-первых, вместо "стандартного" хотели подсунуть совсем другое, а, во-вторых, пытались
> увести дискуссию с неприятной для вас темы в сторону.

Вопрос надо формулировать соответствующим образом, или не додумывать условия за автора. Может это он и опубликовал решение с сисколами. =)

>> Если слинковаться с libc, тогда бы он написал: "глядите, у Rust есть рантайм!"
> Кто "он"? Разверни мысль.

Да хоть кто. Тема рантайма идёт рефреном под каждой новостью.

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

635. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 02-Авг-21, 16:08 
> из зависимостей достаточно ядра

Тю, спалил.
Кстати, как тут некоторые умники собрались линковать статику под венду - вопрос.
Раньше там вообще бинарник без импортов не считался валидным.

> пишут, что к программе на Rust проблематично прилинковать статично его стандартную библиотеку.
> Вот это уже звоночек.

Помимо того, что требовать беспроблемную _статическую_ линковку с любой, даже "хитровывернутой", либой на _другом_ как-то странно, glibC - ни разу не "стандартная библиотека" раста.
Но тоже очень удобная для местных:
https://man7.org/linux/man-pages/man2/syscalls.2.html
> System calls are generally not invoked directly, but rather via
> wrapper functions in glibc (or perhaps some other library).

Сделали свой дубль - "тащин ненужный рантайм", используют системную либу "Фе, зависят от сишного рантайма!". Было уже с аллокатором, тащили jemalloc - "блоатварь тащит свой велосипед!", перешли по умолчанию на системный - "фу, не осилили свой аллокатор, используют сишрный, зачем раст вообще нужен!".
Кстати, растовская стат. либа вполне себе нормально линкуется с сишными.


#[no_mangle]
pub extern "C" fn main() {
    println!("Hell world");
}
gcc -static rstest/target/release/libstatictest.a -lpthread

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

637. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 02-Авг-21, 16:47 

> либой на _другом_ как-то странно

на _другом_ ЯП
//fix

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

643. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Растофиля (?), 02-Авг-21, 20:44 
> как тут некоторые умники собрались линковать статику под венду - вопрос.

Ты всё перепутал. Я тебе предлагал просто собрать сискольно-растовый helloworld под винду, не обязательно в статике, но без модификаций исходника. И показать нам что у тебя получилось.

Я и под Бздю предлагал его тебе собрать, ибо чел выше написал, что он переделывал сискольно-растовый исходник под Линь. А я, не вдаваясь в подробности его модификаций, посчитал, что без них у него что-то не собиралось или не работало.
Но ты тут же прибежал и начал кричать что я дико обглюкался, показывая мне строчку "$FreeBSD$".

Мда уж... молодец.

> glibC - ни разу не "стандартная библиотека" раста.

Ага. Это системная библиотека на подавляющем большинстве GNU/Linux-ов.
Через неё ваш Раст и работает, если верить выхлопу ldd. И нет никаких оснований этому выхлопу не верить.

А ещё забавно, что никто так и не показал размер статически собранного растовского helloworld-а, того, который из книжки. Я уже и ключи для компилятора вам дал, но вы ни в какую.
Вангую, что там получается под пару мегабайт, а может и больше.

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

646. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 02-Авг-21, 21:49 
>> как тут некоторые умники собрались линковать статику под венду - вопрос.
> Ты всё перепутал. Я тебе предлагал просто собрать сискольно-растовый helloworld под винду,
> не обязательно в статике, но без модификаций исходника. И показать нам
> что у тебя получилось.

Хорошая отмазка но нет. У тебя претензии были 1) "не кроссплатформенно" 2) "собери статику".
Получается как обычно: "там считаем, там ... ты все перепутал!"

> Я и под Бздю предлагал его тебе собрать, ибо чел выше написал,
> что он переделывал сискольно-растовый исходник под Линь. А я, не вдаваясь
> в подробности его модификаций, посчитал, что без них у него что-то
> не собиралось или не работало.
> Но ты тут же прибежал и начал кричать что я дико обглюкался,
> показывая мне строчку "$FreeBSD$".

Конечно же обглюкался - потому что оригинал дампа и был собран под "бздю"


wc -c nostd && file nostd      
     496 nostd
nostd: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), statically linked, stripped

(к чему и были "претензии" - мол, чей это у вас номера сисколов странные, не порядок!).
Но ты читал афедроном - понял что-то совершенно свое и выдвинул соотв. претензии, причем в соотв. тоне.


>> glibC - ни разу не "стандартная библиотека" раста.
> Ага. Это системная библиотека на подавляющем большинстве GNU/Linux-ов.
> Через неё ваш Раст и работает, если верить выхлопу ldd. И нет никаких оснований этому выхлопу не верить.

Ну т.е. ты не знаешь разницы между системной и стандартной библиотекой.
Или же, я правильно понимаю, что (условная) "kernel32.dll" или "winnt" - стандартная библиотека сишки, плюсов (и еще кучи языков), потому что на венде "через нее ваш X и работает", если цитировать тебя же?
Или кто-то запутался в своей демагогии?

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

648. Скрыто модератором  +/
Сообщение от Растофиля (?), 03-Авг-21, 02:12 
Ответить | Правка | К родителю #646 | Наверх | Cообщить модератору

653. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 03-Авг-21, 14:12 
Сисколы в Виндосе, насколько помню, меняются в пределах версии ОС. Никто в здравом уме их там не использует. Если кто-то предлагает обойтись без ntdll.dll (а в случае вывода на консоль наверняка потребуется и WriteConsoleW из kernel32.dll) -- он либо не владеет предметом, либо намеренно пытается свести дискуссию к священной войне.
Ответить | Правка | К родителю #635 | Наверх | Cообщить модератору

638. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Растофиля (?), 02-Авг-21, 17:39 
> Нет никакого стандарта на helloworld-ы

Вообще-то растовский "стандартный" helloworld есть прямо в главной книжке по расту:
https://doc.rust-lang.org/book/ch01-02-hello-world.html

> Пример показывает, что из зависимостей достаточно ядра.

Практически любую прикладную программу можно написать на один только сисколах. Но так никто не делает. И этому есть много разных причин.

Вы здесь пытаетесь хитрить, но это же многие видят. И эти ваши хитрости бросают тень на всю экосистему раста. Странно, что вы этого не понимаете.

> helloworld и системное программирование ортогональны и не исключают друг друга

Это не совсем так. За helloworld-ом уже давно закрепился особый смысл.
Вот, например, его описание на Wiki: https://ru.wikipedia.org/wiki/Hello,_world!

> Это хороший, годный минимальный пример.

Возможно. Но к размеру бинаря классического helloworld-а имеет весьма далёкое отношение.

> Вопрос надо формулировать соответствующим образом, или не додумывать условия за автора.

Нормально там был сформулирован вопрос: "Сколько весит хелло ворд на русте с зависимостями?".

Но вместо прямого ответа последовали всякие плутовства. Тут тебе и сисколы, тут тебе и prefer-dynamic.  Всё это бросается в глаза.

Вы, ребята, этими своими хитростями создаёте своему любимому Расту плохую репутацию. Этот язык прямо на глазах становится "токсичным".
Я это и по буржуским форумам вижу, кстати. К RUST-евангелистам ведь не только на опеннете многие негативно относятся. Это уже общемировая тенденция, можно сказать.
Многих вы уже утомили своим Растом, да.


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

652. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 03-Авг-21, 14:07 
>> Нет никакого стандарта на helloworld-ы
> Вообще-то растовский "стандартный" helloworld есть прямо в главной книжке по расту:
> https://doc.rust-lang.org/book/ch01-02-hello-world.html

По ссылке насчитал 4 вхождения слова "standard":

"12.6. Writing Error Messages to Standard Error Instead of Standard Output

"If you want to stick to a standard style across Rust projects

"with the standard Rust distribution"

потому дальнейшую часть сообщения читать не буду, вряд ли она имеет смысл.

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

633. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Растофиля (?), 02-Авг-21, 15:05 
> Опечатка то по Фрейду. Действительно, не какая-то хрень, кросплатформенная, а, внезапно, пример системного программирования.

Ты и в этом случае, кстати, выдернул одну фразу из контекста. Такое "хитроумное" выборочное цитирование.

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

636. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 02-Авг-21, 16:45 
>> Если очередной опеннетный "антирастовец" не владеет предметом, то кто ему ССЗБ?
> Ты не умеешь в статическую сборку, а не владею предметом оказывается я.

Судя по тому, что для тебя стат. сборка "ух какой крутой скилл" и предыдущим (к сожалению, удаленным) перлам - не владеешь. Но исправно проецируешь какие-то свои фантазии.

>> плюс как правильно собирать и что, как и где считать.
> В Си статическая сборка делается просто ключом "-static" у gcc.

В последний раз:
давай полный пример, чтобы не было потом "Ты не так понял и вообще я не я и мопедолошадь - не моя!"

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

639. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Растофиля (?), 02-Авг-21, 18:18 
>> В Си статическая сборка делается просто ключом "-static" у gcc.
> ... для тебя стат. сборка "ух какой крутой скилл"

Да, знание ключа "-static" я считаю крутым скиллом. (facepalm.jpg) [нет, конечно]

> предыдущим (к сожалению, удаленным) перлам - не владеешь.

Ты свои перлы до сих пор продолжаешь извергать:

> как-то странно, glibC - ни разу не "стандартная библиотека" раста.

Собери свой растовский helloworld и посмотри наконец выхлоп ldd, что ли. Может поймёшь как оно у тебя работает. Я тебе писал это ночью, но всё потёрли.

> давай полный пример

Я не должен давать тебе никакой примеров.
Это ведь ты доказываешь крутизну Раста, а не я доказываю крутизну Си.
Есть такое общепринятое правило: "Бремя доказательства лежит на утверждающем".
Ты утверждаешь - ты и доказывай.

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

645. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 02-Авг-21, 21:27 
>> как-то странно, glibC - ни разу не "стандартная библиотека" раста.
> Собери свой растовский helloworld и посмотри наконец выхлоп ldd, что ли. Может поймёшь как оно у тебя работает. Я тебе писал это ночью, но всё потёрли.

Я то в курсе (и у меня оно ни разу не зависит от glibc),


rustc -O hello.rs && ldd hello
hello:
    libthr.so.3 => /lib/libthr.so.3 (0x8010af000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x8010dc000)
    libc.so.7 => /lib/libc.so.7 (0x8010f3000)

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

>> давай полный пример
> Я не должен давать тебе никакой примеров.
> Это ведь ты доказываешь крутизну Раста, а не я доказываю крутизну Си.

Ссылку на "ты доказываешь крутизну Раста" или балабол?


> Есть такое общепринятое правило: "Бремя доказательства лежит на утверждающем".
> Ты утверждаешь - ты и доказывай.

Видишь ли, балабол, ты ошибся методичкой - каких-то "доказательств" требуешь ты,
фыркая на существующие - "это не то! И это тоже не считается!". Ветку начал тоже "из ваших".
При этом четко и внятно описать что вам нужно, вы не в состоянии, отмазываясь "Я не должен давать тебе никакой примеров."
В общем-то, правильно опасаетесь, что вас опят ткнут носом в лужу.


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

647. Скрыто модератором  +/
Сообщение от Растофиля (?), 02-Авг-21, 23:21 
Ответить | Правка | Наверх | Cообщить модератору

651. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Котофалк (?), 03-Авг-21, 13:34 
извините, что прерываю, но откуда вообще появилось требование статической линковки? тем паче для helloworld?
Ответить | Правка | К родителю #625 | Наверх | Cообщить модератору

542. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (542), 31-Июл-21, 19:46 
Всего лишь 200+ килобайт. А какой вес у ноды? А какой у джавы? У дотнета? У питона?

А у C++? Тоже со стандартной либой?

#include <iostream>

int main() {
    std::cout << "hello world" << std::endl;
    return 0;
}

$ g++ hello.cpp -O2 -static-libstdc++

$ du -sh ./a.out
1.3M    ./a.out

$ strip a.out
$ du -sh ./a.out
948K    ./a.out

(и 880K если Clang)

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

588. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (588), 01-Авг-21, 22:20 
В Расте так вообще не получится.
Нужно специально устанавливать MUSL libc и выбирать соответствующий target, чтобы получить на 100% статический бинарник.
Ответить | Правка | Наверх | Cообщить модератору

590. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 01-Авг-21, 23:26 
> $ g++ hello.cpp -O2 -static-libstdc++

У мну без доп. -static ldd ругается на зависимости.
А полностью стат., "пострипаный" плюсовой бинарь выходит в 1.4МБ (1.1 для шланга).

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

552. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (552), 01-Авг-21, 00:27 
В любом случае меньше любого интерпретируемого языка,
а с учетом засилья PHP, Python, Ruby для сайтов (коих у каждой компании),
то не думаю, что это как-то сильно кого-то беспокоит.

А тебе рекомендую уже дойти до магазина и купить себе новый диск.
Сейчас уже SSD стали вполне доступными, а порнуху можно и в облако загрузить.

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

555. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 01-Авг-21, 00:46 
> В любом случае меньше любого интерпретируемого языка,
> а с учетом засилья PHP, Python, Ruby для сайтов (коих у каждой
> компании),
> то не думаю, что это как-то сильно кого-то беспокоит.

Ты его лучше спроси, как он вообще зависимости считает.
И пусть "эталонный" пример, с эталонными опциями сборки (и пояснением за эталонне окружение выполнения) на труЪ ЯП кинет, для начала.
Охренее^W Узнаешь много "нового".

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

596. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Растофиля (?), 02-Авг-21, 00:00 
> Узнаешь много "нового".

Уже узнали, что Раст не умеет в статическую линковку с glibc.
Для статической линковки ему нужна MUSL.

Это просто "праздник" какой-то.

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

626. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Растофиля (?), 02-Авг-21, 13:08 
Вроде в новых версиях линковать статически с glibc они уже научились. Но это всё нужно проверять. У них там есть оговорки.
Ответить | Правка | Наверх | Cообщить модератору

5. "Выпуск языка программирования Rust 1.54"  +18 +/
Сообщение от Аноним (5), 29-Июл-21, 22:21 
> Инкрементальная компиляция была отключена в выпуске 1.52.1 из-за выявления скрытых ошибок

Теперь не только безопасная работа с памятью, но и безопасная компиляция.

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

40. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (40), 29-Июл-21, 23:06 
Друг, безопасности памяти в коде и отсутствие уязвимостей в принципе - принципиально разные вещи, второе нельзя достигнуть, но лучше всё же жить без первого
Ответить | Правка | Наверх | Cообщить модератору

59. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (59), 29-Июл-21, 23:29 
Не такие уж и принципиальные, смежные. Ошибки работы с памятью запросто используют для уязвимостей.
Ответить | Правка | Наверх | Cообщить модератору

80. "Выпуск языка программирования Rust 1.54"  –5 +/
Сообщение от Аноним (80), 29-Июл-21, 23:50 
Тогда зачем нужна эта ваша «безопасная память»?
Ответить | Правка | К родителю #40 | Наверх | Cообщить модератору

89. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Sw00p aka Jerom (?), 30-Июл-21, 00:10 
безопасная память это физически разделенная
Ответить | Правка | Наверх | Cообщить модератору

290. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (290), 30-Июл-21, 09:38 
чтобы тратить больше времени на разработку, изворачиваясь, делая обычные вещи. как с С++ в своё время.
Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

254. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 07:48 
> безопасности памяти в коде (1)
> отсутствие уязвимостей  в принципе (2)

...
> второе нельзя достигнуть,
> но лучше всё же жить без
> первого

Так понятнее, что на самом деле написано.

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

256. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от КО (?), 30-Июл-21, 07:52 
"отсутствие уязвимостей в принципе" нельзя достигнуть, но лучше всё же жить без "безопасности памяти в коде".
Так понятнее, чем здец из ">"
Ответить | Правка | Наверх | Cообщить модератору

297. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 10:05 
Задним числом все умны.
Ответить | Правка | Наверх | Cообщить модератору

10. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноньимъ (ok), 29-Июл-21, 22:35 
>Вызов макросов внутри атрибутов может оказаться полезным для включения в документирующие комментарии содержимого из других файлов. Например, для вставки содержимого файла README и результата выполнения скрипта можно указать

Что-то я непронял совсем что тут происходит и зачем это нужно.
Макрос в коде меняет файл с кодом или что тут происходит?

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

19. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Dzen Python (ok), 29-Июл-21, 22:45 
Мне больше интересно, зачем вставлять в .rs файл содержимое .md файла.

Стандартный хедер "этот файл под лиценцией {0}, писан {1}, email {2}" может вставить даже не самая продвинутая IDE. Далее по идее ридми.тхт и комментарии должны наоборот, из src-файлов ИЗвлекаться, и на их основе генерироваться нормальная человеческая документация + файл ридми.

Также мне реально стало интересно, зачем пихать в .rs файл вывод .[скрипт].

Вот тут действительно, непонятно. Хотелось бы увидеть хотя бы три сценария использования, где это не натягивание совы на глобус, а глобуса - в попугая

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

21. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноньимъ (ok), 29-Июл-21, 22:48 
> Далее по идее ридми.тхт и комментарии должны наоборот, из src-файлов ИЗвлекаться, и на их основе генерироваться нормальная человеческая документация + файл ридми.

Вот и я раньше так думал, а теперь не понимаю что происходит. Может нам опытные растенианци объяснят.

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

420. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 19:37 
>Может нам опытные растенианци объяснят.

Растаманы - это растения? Растаман - это овощь?

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

53. "Выпуск языка программирования Rust 1.54"  +5 +/
Сообщение от ПомидорИзДолины (?), 29-Июл-21, 23:23 
В Расте документация генерируется на основе специально оформленных комментариев (doxigen вид сбоку). Когда документации становится много это усложняет навигацию по исходному когда.

Теперь часть документации можно вынести в отдельные файлы, а в исходниках остваить только краткую выжимку.

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

188. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 03:57 
Но зачем для этого какие-то макросы в исходниках? В доках пишешь имя функции и комментарий.

Или я чего-то не понимаю?

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

200. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Анонимъ (?), 30-Июл-21, 04:19 
Комментарии-документация чисто технически являются специальным синтаксисом для #[doc] макроса.
Ответить | Правка | Наверх | Cообщить модератору

210. "Выпуск языка программирования Rust 1.54"  +4 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 04:35 
Я к тому что.
1 Доки собираются из исходников.
2 В исходниках слишком много доков, вынесем их в отдельный файл. Чтобы... Чтобы линковать отдельный файл в исходники откуда собирать доки?

Почему бы не собирать доки сразу из отдельного файла с доками?
Зачем в исходники то тянуть что попало из каких-то файлов?

Или я всё неправильно понимаю?

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

229. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Анонимъ (?), 30-Июл-21, 05:29 
https://doc.rust-lang.org/std/pin/index.html

Вот пример выше. Подобную документацию удобнее держать рядом с кодом.

Ну или https://docs.rs/legion/0.4.0/legion/index.html в качестве случайного примера.

В дополнение: примеры кода в документации являются полноправными тестами (выполняются по cargo test).

Там подкрутили, здесь сделали удобнее, вон там ещё затюнили маленько. Мелочи, но по совокупности получаем одну из самых лучших документаций в индустрии. По крайней мере у крейтов, которые используют больше чем 1.5 землекопа.

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

246. "Выпуск языка программирования Rust 1.54"  +4 +/
Сообщение от Аноним (246), 30-Июл-21, 06:39 
> примеры кода в документации являются полноправными тестами (выполняются по cargo test)

Особенно удобно, если это пример кода к какому-нибудь std::fs::remove_dir_all :)

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

452. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Анонимъ (?), 30-Июл-21, 22:38 
Для таких случаев есть no_run.
Ответить | Правка | Наверх | Cообщить модератору

547. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (547), 31-Июл-21, 23:16 
Да это понятно :-) Просто не люблю такое неявное поведение.
Мне видится более разумным явное указание того, что пример кода является одновременно и тестом, чем такая инвертированная логика.
Ответить | Правка | Наверх | Cообщить модератору

455. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (-), 30-Июл-21, 23:15 
>> примеры кода в документации являются полноправными тестами (выполняются по cargo test)
> Особенно удобно, если это пример кода к какому-нибудь std::fs::remove_dir_all :)

Ага, и то ли дело "make test" или ./configure_портянка_на_пару_тысяч_строк - там такое ну абсолютно невозможно!

> Суть проблемы в том, что в файле install.sh для очистки локальной копии собранных файлов вместо команды "rm -r yd-tools/usr" по ошибке была добавлена строка "rm -r /usr". Проблема появилась в коде 20 мая в ходе переработки сборочных скриптов и была исправлена несколько часов назад

Ой!

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

263. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от n00by (ok), 30-Июл-21, 08:30 
> Почему бы не собирать доки сразу из отдельного файла с доками?
> Зачем в исходники то тянуть что попало из каких-то файлов?

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

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

350. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 15:56 
Это логично, однако.
Комментировать код, и иметь отдельный файл для хранения документации, друг другу не противоречащие вещи.

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

Понятно если к такой системе пришли эволюционно и постепенно.
Но было ли абсолютно необходимо для раста набивать все шишки прошлых поколений, вопрос открытый.

И мы так и не выяснили что за выход какого скрипта нужно подключать в исходный код этим макросом.

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

363. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 16:21 
Документация ведь делится на несколько уровней. Есть и краткое описание проекта (почти не меняется и к какому-то конкретному фрагменту кода не привязана), информация об авторе, лицензии и т.п. Вот пример титульной страницы документации на Доксиген, наверняка в отдельном файле https://www.doxygen.nl/index.html
Ответить | Правка | Наверх | Cообщить модератору

46. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (46), 29-Июл-21, 23:14 
В cargo doc появилась поддержка не только api документации, поэтому теперь не обязательно нужен дополнительный тулинг, чтобы писать гайды, туториалы и проч подобные вещи.
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

240. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от псевдонимус (?), 30-Июл-21, 06:13 
Тут происходит Чад кутежа во мгле ада.

Это раст, парень!

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

15. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Дмитрий (??), 29-Июл-21, 22:40 
А когда перепишут Rust на Rust'e?
Ответить | Правка | Наверх | Cообщить модератору

17. "Выпуск языка программирования Rust 1.54"  +10 +/
Сообщение от Аноним (17), 29-Июл-21, 22:43 
Он уже на расте.
Ответить | Правка | Наверх | Cообщить модератору

165. "Выпуск языка программирования Rust 1.54"  –6 +/
Сообщение от Аноним (165), 30-Июл-21, 03:10 
Дак вон оно что, Михалыч... Потому ошибки и вылазят.

> Инкрементальная компиляция была отключена в выпуске 1.52.1 из-за выявления скрытых ошибок

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

273. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (273), 30-Июл-21, 08:48 
Могу только предположить, но вероятно это происходило из-за логических ошибок в реализованных алгоритмах, а не из-за обращения к памяти после ее освобождения или выхода за границы буфера и т.п., что составляет 70-80 процентов ошибок в прогах на C/C++
Ответить | Правка | Наверх | Cообщить модератору

553. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Kuku (?), 01-Авг-21, 00:28 
Давайте не будем бла-бла-бла. Среднестатистически даже в релизах ПО 90 процентов ошибок - логические. А потом уже идут эти ваши обращения к освобожденной памяти и прочая фуета.
Интересно, как в расте борются с этой проблемой, учитывая то, насколько на нем неудобно выражать свои мысли, в отличие от того же питона, к примеру
Ответить | Правка | Наверх | Cообщить модератору

614. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (246), 02-Авг-21, 10:34 
Мне вот удобно выражать свои мысли на русском, чуть менее удобно на английском, поскольку не родной, а на китайском совсем неудобно, ведь я им не владею. А китайцу ровно наоборот.

С языками программирования та же ситуация.

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

629. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (629), 02-Авг-21, 14:02 
> А китайцу ровно наоборот.

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

Так что да. Пример очень показательный.

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

306. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от anonymous (??), 30-Июл-21, 11:09 
Есть какой-то компилятор в котором не допускали ошибок? Или какой-то язык, на котором не допускали ошибок?
Ответить | Правка | К родителю #165 | Наверх | Cообщить модератору

248. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от leap42 (ok), 30-Июл-21, 06:51 
>Он уже на расте.

Это как говорить что весь веб на JS, игнорируя весь бэкенд на PHP,Java,C#,Ruby,Go и т.д.

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

307. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от anonymous (??), 30-Июл-21, 11:10 
Что конкретно вы имели в виду?
Ответить | Правка | Наверх | Cообщить модератору

334. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (334), 30-Июл-21, 14:21 
наверное, что там llvm на на расте в качестве бэкэнда
Ответить | Правка | Наверх | Cообщить модератору

376. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (376), 30-Июл-21, 17:26 
Когда успели llvm на раст переписать?
Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

546. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от . (?), 31-Июл-21, 23:02 
А кто сказал что rustc только llvm умеет? Кроме другого бекенда написанного на C++ (gcc, он был недавно принят), уже давно поддерживается cranelift, а он целиком на Rust написан

Пускай cranelift пока не может соревноваться по скорости работы выхлопа с llvm (Для x86, основные усилия в нём брошены в сторону wasm), он уже работает, и для дебаг билдов его некоторые используют из за его высокой скорости компиляции

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

22. "Выпуск языка программирования Rust 1.54"  –8 +/
Сообщение от Кир (?), 29-Июл-21, 22:52 
> макросов, напоминающих функции (процедурные макросы и макросы, созданные при помощи макроса "macro_rules!"). От функций подобные макросы отличаются символом "!" после имени (macro!(...)) и подстановкой исходного текста макроса вместо генерирования вызова функции

Они наконец изобрели inline-функции? %D

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

24. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (24), 29-Июл-21, 22:54 
В каком смысле? Инлайн давно есть
Ответить | Правка | Наверх | Cообщить модератору

29. "Выпуск языка программирования Rust 1.54"  –5 +/
Сообщение от Кир (?), 29-Июл-21, 22:56 
Или, слава ржавчине, они изобрели #define? Непонятненько...
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

32. "Выпуск языка программирования Rust 1.54"  +13 +/
Сообщение от Аноним (24), 29-Июл-21, 22:58 
Макросы C - худшие макросы ever, не надо их тут вспоминать, пожалуйста
Ответить | Правка | Наверх | Cообщить модератору

75. "Выпуск языка программирования Rust 1.54"  –5 +/
Сообщение от Хан (?), 29-Июл-21, 23:46 
Макрос это не часть языка это препроцессор компилятора и чем же макросы rust лучше чем си?
Ответить | Правка | Наверх | Cообщить модератору

86. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (46), 30-Июл-21, 00:01 
Действительно, наверное и в стандартах языков С и С++ ничего нет про макросы?

А про разницу можно легко найти в гугле.

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

88. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Хан (?), 30-Июл-21, 00:08 
Спецификация C или C++ описывает не только сам язык, а еще например язык макросов для компилятора

А спецификация Java или C# описывает байткод, но ты же не пишешь на байткоде?

Есть технические особенности реализации того или иного ЯП которые отражены в стандарте ЯП, имеющие коственное отношение к ЯП и прямое к его компиляции или интерпритации, тобишь исполнению

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

104. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (46), 30-Июл-21, 01:05 
Кажется, что тебе нужно прочитать секцию Scope стандарта.
Ответить | Правка | Наверх | Cообщить модератору

113. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Хан (?), 30-Июл-21, 01:25 
Помню был тут один поехавший который мне доказывал что язык Си это ООП язык только по тому чтт в стандарте Си имеется слово "обьект трансляции" то есть всмысле раздельная компиляция, но слово же "обьект" есть в стандарте Си значит ООП? И ты туда же? А логику как? Включить не пробывал?
Ответить | Правка | Наверх | Cообщить модератору

119. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от adolfus (ok), 30-Июл-21, 01:50 
Нет в стандарте С никакого "объекта трансляции", но есть "единица трансляции" -- это то, что получается в результате работы препроцессора.
Ответить | Правка | Наверх | Cообщить модератору

149. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 02:45 
Был он меня задолбал этим слово, вроде в C89 его нашел... хз погугли
Ответить | Правка | Наверх | Cообщить модератору

90. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Хан (?), 30-Июл-21, 00:12 
Стандартная библиотека тоже отношения не имеет к синтаксису ЯП, она лишь описывает API для взаимодействия с окружением внутри ОС, но это же не мешает ей быть в стандарте

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

105. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (46), 30-Июл-21, 01:06 
Синтаксис языка != язык.
Ответить | Правка | Наверх | Cообщить модератору

108. "Выпуск языка программирования Rust 1.54"  –4 +/
Сообщение от Хан (?), 30-Июл-21, 01:16 
Хм, ЯП может считаться то что компилируется напрямую в машинный код(неважно как статически, через jit или интерпритатор)

Макрос транслируется в C/C++ код, какое отношение он имеет к ЯП?

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

114. "Выпуск языка программирования Rust 1.54"  –4 +/
Сообщение от Хан (?), 30-Июл-21, 01:27 
Синтаксис ЯП так или иначе имеет машинное отображение в виде исполняемого файла с инструкциями процессора... макросы этого не имеют
Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

111. "Выпуск языка программирования Rust 1.54"  +4 +/
Сообщение от Аноним (-), 30-Июл-21, 01:19 
> Макрос это не часть языка это препроцессор компилятора и чем же макросы rust лучше чем си?


// Wrong!
#define SWAP(x, y) \
  tmp = x; \
  x = y; \
  y = tmp

// Correct!
#define SWAP(x, y) \
  do { \
    tmp = (x); \
    (x) = (y); \
    (y) = tmp; } \
  while (0)


И правда, чем же макросы, которые часть языка и "умеют" в AST, лучше примотанного на синюю изоленту независимого текстового препроцессора, которому неведомы ни имена переменных, ни области видимости, ни прочее "ненужно"?


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

116. "Выпуск языка программирования Rust 1.54"  –4 +/
Сообщение от Хан (?), 30-Июл-21, 01:38 
Макросы это тупо подстановка кода из макросов в код программы, иначе говоря шаблонизатор... какое нафиг AST причем здесь оно?

Функциональный макрос это шаблон заполнения кода внутри него до этапа компиляции

Вышеприведенный тобой дефайн вычисляется только один раз на этапе компиляции после чего в место вызова дефайна просто подставляется вычисленное значение и все, то есть никакой не о какой динамической вычислимости дефайнов в процессе работы программы и речи быть не может

Ну и классическое, раз дефайн это тупо шаблонизатор подставляющих значения никакой проверки типов входящих значений в нем нет

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

126. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (-), 30-Июл-21, 02:15 
> Макросы это тупо подстановка кода из макросов в код программы, иначе говоря шаблонизатор... какое нафиг AST причем здесь оно?

"новое определение макроса бай опеннетный аноним"

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

"Папа, где море?!" (c)


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

132. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 02:24 
Ответь умник где найти код дефайна в обьектном файле? Ах да я ж забыл что он существует лишь в памяти компилятора на момент компиляции...или ты не согласен?
Ответить | Правка | Наверх | Cообщить модератору

148. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (-), 30-Июл-21, 02:44 
> Ответь умник где найти код дефайна в обьектном файле?

Зачем мне отвечать на твои бредовые фантазии, невежда, у которого "дефайн вычисляется только один раз на этапе компиляции"?
> Ах да я ж забыл что он существует лишь в памяти компилятора на момент компиляции...или ты не согласен?

На момент компиляции никаких "дефайнов" уже нет, компилятор работает с результатом препроцессора.
man cpp, man gcc -E, man что_такое_препроцессор (да хоть man gcc вводная часть).

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

133. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 02:25 
И не трави за подстановки дефайна, ты скажи где он как машинный код в обьектном файле?
Ответить | Правка | К родителю #126 | Наверх | Cообщить модератору

617. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от anonymous (??), 02-Авг-21, 11:39 
Он не говорил, что define-ы улетают в машинный код. Он говорил, что макросы как часть AST-а языка -- это лучше чем отдельный препроцессор.
Ответить | Правка | Наверх | Cообщить модератору

117. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 01:40 
Короче разберись что такое макросы, инлайн функции и обычные функции чем они отличаются, а то у тебя венегрет какой то в голове

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

138. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 02:30 
>> макросы, которые часть языка и "умеют" в AST
>> ... ни имена переменных, ни области видимости,
> какое нафиг AST причем здесь оно
> Функциональный макрос это шаблон заполнения кода внутри него до этапа компиляции
> Короче разберись что такое макросы, инлайн функции и обычные функции чем они отличаются, а то у тебя венегрет какой то в голове

Подсказка: для начала подтяни базовые (в смысле ВУЗа, а не школьных уроков информатики) знания по ЯП -- и многое перестанет быть "венегретом".

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

128. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 02:20 
Хотя вычисление макроса на этапе компиляции вроде нигде не прописано, поэтому в старых компиляторах применяется обычный копипаст

Ну и не все макросы можно вычислить, тот же printf например который работает со стандартным потоком ОС

Поэтому для каноничности без особо умных компиляторов, будем считать макросы копипастой

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

272. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от n00by (ok), 30-Июл-21, 08:44 
Смотрите раздел Translation phases. Препроцессор это отдельная фаза трансляции, семантический анализ и трансляция (компиляция) идут несколько позже, после чего происходит связывание (линковка).
Ответить | Правка | Наверх | Cообщить модератору

234. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (246), 30-Июл-21, 05:41 
Макросы раста - это конструкции языка, а не препроцессора. Уместнее сравнение с темплейтами в плюсах.
Ответить | Правка | К родителю #75 | Наверх | Cообщить модератору

23. "Выпуск языка программирования Rust 1.54"  +6 +/
Сообщение от Аноним (24), 29-Июл-21, 22:53 
Постепенно углубляюсь в этот язык, кайфую
После C/C++ совсем сказка, море возможностей и удобств, при этом высокая производительность

Советую всем, даже кого C/C++ держит и точно не отпустит. С разбором Раста приходит большее понимание, как лучше писать код вообще.

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

28. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноньимъ (ok), 29-Июл-21, 22:56 
Лисп попробуйте, схему какуюнить, Racket например.
Много почерпнёте.
Ответить | Правка | Наверх | Cообщить модератору

35. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (40), 29-Июл-21, 23:03 
Спасибо за рекомендацию!
К сожалению, как-то так складывается, что не перевариваются скобочные языки с фп в чистом виде. А вот элементы фп в других языках - приятное дополнение к их возможностям.
Ответить | Правка | Наверх | Cообщить модератору

225. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (246), 30-Июл-21, 05:15 
Да нет в этих лиспах никакого чистого ФП. В scheme ФП, конечно, побольше, чем в CL, но по сути там столько же ФП, сколько его в современном Джаваскрипте.

За чистым ФП - в Haskell, ну или к некоторым языкам семейства ML.

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

292. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (290), 30-Июл-21, 09:41 
для haskell нужно вспоминать забытый после универа матан( подзабил в своё время на его изучение
Ответить | Правка | Наверх | Cообщить модератору

403. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (547), 30-Июл-21, 18:43 
Да не надо там никакого матана. Просто он из академической среды, и потому им привычнее в терминах теории категорий рассуждать. На самом деле всё это объясняется на пальцах элементарно: http://learnyouahaskell.com/
Ответить | Правка | Наверх | Cообщить модератору

554. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Kuku (?), 01-Авг-21, 00:39 
Напоминает хаскелевский хайп надцатилетней давности. Потом как-то все устаканилось, и язык трехсот головоломных способов вычисления чисел Фибоначчи занял почетное место во главе промышленно используемых языков, но с конца.
Тем же окончится и абсолютистский подход к "безопасности использования памяти", когда без ансейфа код становится пароксизмом пи*доватизма, а безопасность страдает уже от множества других проблем, решение которых так и не удается загнать вместо линтера в компилятор ))
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

558. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноньимъ (ok), 01-Авг-21, 01:22 
Напоминает.
Но все-же хаскель был немного о другом. Если я верно понимаю, фишка хаскеля это корректность и верифицируемость (ещё про ленивость много шутили)

В то время как фишка раста, это универсальность в первую очередь но с сахаром и плюшками.
Раст можно сравнить в этом плане с котлином например.

Учитывая, что раст даже вот в линукс ядро пропихивают, есть некие надежды на то, что будет он чуть более популярнее хаскеля.

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

674. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от wyry (?), 14-Дек-21, 14:54 
Это другое!). А так история циклична, а ПО как писали на C/C++, JVM-семействе, так и пишут. Когда училась в универе функциональные и околофункциональные языки были очень в моде, с одной стороны Haskell, с другой стороны LISP'еры грозились захватить мир и было очень даже много неплохих ресурсов по LISP, Microsoft на хайпе запилили свой диалект OCaml и носились с ним просто ВЕЗДЕ! И знаете что? Все перечисленные языки во всех смыслах лучше и качественнее Rust! В каждом есть своя идея, реализация на уровне проектирования, вот почему-то F# написан на F#, то есть разработчики в кои то веки с технической точки зрения знали что делают и чего хотят достичь. Rust же до сих пор не вышел из состояния зародыша, НО УЖЕ покрылся ржавчиной (собственно правдивое название), причём язык даже не умудрился привнести вообще ничего нового. На C++ почти на всю функциональность Rust есть свои приёмы, можно без труда писать на C++ в стиле Rust и заиметь все те преимущества (не очень то и существенные) которые он даёт. То есть если Хаскель или ML-семейство или LISP или даже JVM-семейство даёт альтернативные пути и фишки, то Rust не привносит ВООБЩЕ НИЧЕГО кроме агрессивного маркетинга. Причём я никогда не хейтила Rust от чистого сердца, но разобравшись в нём получше поняла, что во-первых на C и С++ писать И ЧИТАТЬ (для меня) намного проще, во-вторых сам язык не несёт вообще никаких критических инноваций, по поводу удобств и производительности разработчика - я это слышу уже годами. Java говорила что она быстрее, удобнее и надёжнее, в итоге паттерны (а на практике чаще антипаттерны) создают настолько шизанутый код, что если бы он был тупо был написан в стиле чистого C - разобраться в нём было бы в разы легче. F# говорил что код можно писать значительно короче и сразу без ошибок. И да, там где задачу можно решить просто в функциональном стиле - F# хорош, как только дело доходит до чего-то другого, проще родить ежа и ужа, чем написать, в итоге производительность разработчика откатывается обратно в 0 или даже хуже.
Ответить | Правка | Наверх | Cообщить модератору

676. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноньимъ (ok), 14-Дек-21, 18:01 
Да, лучше бы типизированный лисп развивали конечно.

Я после того как осилил лисп смотрю на сиподобные языки как на ужасное нечно. Непонятно зачем вообще сделанное.

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

677. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноньимъ (ok), 14-Дек-21, 18:07 
>И да, там где задачу можно решить просто в функциональном стиле - F# хорош, как только дело доходит до чего-то другого, проще родить ежа и ужа, чем написать, в итоге производительность разработчика откатывается обратно в 0 или даже хуже.

Думаю всегда можно.
Не всегда наверное нужно.

Я так понимаю F# должен интегрироваться с C# ибо всё на одной платформе, так что штука по идее крутая для дотнетчиков, коим я уже давно не являюсь.

> Java говорила что она быстрее, удобнее и надёжнее, в итоге паттерны (а на практике чаще антипаттерны) создают настолько шизанутый код, что если бы он был тупо был написан в стиле чистого C - разобраться в нём было бы в разы легче

Джава создавалась для интернета вещей, затем сан убили, а оракл натянул сову на глобус, получили в итоге корпоративную джаву с фабриками фабрик порождений парсинга XML классов.

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

678. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноньимъ (ok), 14-Дек-21, 18:09 
>Rust же до сих пор не вышел из состояния зародыша, НО УЖЕ покрылся ржавчиной (собственно правдивое название), причём язык даже не умудрился привнести вообще ничего нового. На C++ почти на всю функциональность Rust есть свои приёмы, можно без труда писать на C++ в стиле Rust и заиметь все те преимущества (не очень то и существенные) которые он даёт.

Мне нужно написать на расте что нибудь достаточно объемное чтобы как-то об этом судить. Давно собирался, да руки как-то не доходили. Изис Агора Лавкрафт вроде отзывалась положительно о расте, надо в общем самому посмотреть.

А вас случайно на OSDN Conf 2021 не было?

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

31. "Выпуск языка программирования Rust 1.54"  –5 +/
Сообщение от Кир (?), 29-Июл-21, 22:57 
Углубляйся. Даже, можно сказать, погружайся! Смотри только, метаном не задохнись.
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

34. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (40), 29-Июл-21, 23:00 
Метаном пованивает, когда возвращаюсь C/C++
После Раста весьма прискорбное занятие.
Ответить | Правка | Наверх | Cообщить модератору

39. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Кир (?), 29-Июл-21, 23:05 
Это ты просто не переоделся после погружений в раст.
Ответить | Правка | Наверх | Cообщить модератору

41. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Аноним (40), 29-Июл-21, 23:09 
Ты же понимаешь, что после Раста это и правда совершенно ниочемные языки?
Особенно пустой C, в C++ хотя бы стандартная либа более-менее что-то из себя представляет (впрочем, нетворка всё равно до сих пор нет)
Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Кир (?), 29-Июл-21, 23:14 
А можно больше конкретики? Что именно позволяет сделать раст такого, чего нельзя (причем эффективнее) сделать на плюсах?
Ответить | Правка | Наверх | Cообщить модератору

56. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Кир (?), 29-Июл-21, 23:26 
Вот интересно, ярый фанат раста уже полчаса ничего не отвечает на этот простой вопрос... Отчего бы?
Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (59), 29-Июл-21, 23:31 
Спать пошёл, не?
Ответить | Правка | Наверх | Cообщить модератору

440. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (440), 30-Июл-21, 20:42 
Мамка запугала, что за компутером поздно сидит
Ответить | Правка | Наверх | Cообщить модератору

221. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 05:10 
Он ищет истину! Там где ее нет... заблудшие растоманы такие
Ответить | Правка | К родителю #56 | Наверх | Cообщить модератору

68. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Anonnnym (?), 29-Июл-21, 23:34 
> Что именно позволяет сделать раст такого, чего нельзя (причем эффективнее) сделать на плюсах?

Ну вот представь, понадобилось тебе выделить голой памяти через new. Не знаю зачем, просто понадобилось, и ты забыл потом вызвать delete - в плюсах ты получишь ворнинг, а в расте не получишь, потому что для выделения голых байтов, тебе придется нырнуть в unsafe.

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

236. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (246), 30-Июл-21, 05:50 
Статический анализатор для unsafe кода написать не проблема.

Просто никому не надо, поскольку в расте это исключение, а в плюсах (особенно в старом коде) вокруг и рядом.

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

275. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 08:51 
Если не знаете зачем понадобилась память, то и ошибки, вероятно, нет: это одна из стратегий работы с памятью. При завершении процесса она вернётся к системе. Ошибкой это будет в цикле, когда и сборщик мусора не всякий справится.
Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

87. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от ПомидорИзДолины (?), 30-Июл-21, 00:04 
Растовские маркросы - это просто песня. После них в сторону темплейты, даже с концептами, смотреть вообще не хочется.
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

94. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Кир (?), 30-Июл-21, 00:33 
Ну приведи же пример песни, что-нибудь такое, что заставит всех ахнуть от восхищения и навсегда забыть прочие богомерзкие ЯП! А то на поверку оказывается практически всегда, что растаманы просто не знают C++ и выдают теплое за мягкое )))))
Ответить | Правка | Наверх | Cообщить модератору

115. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от ПомидорИзДолины (?), 30-Июл-21, 01:28 
А ты такой наивный, крошка.
Если интересно - сам найдешь.
Ответить | Правка | Наверх | Cообщить модератору

118. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Кир (?), 30-Июл-21, 01:47 
То есть блеснуть киллер-фичей не могём, понятно. Ладно, не расстраивайся, продолжай надувать щёки...
Ответить | Правка | Наверх | Cообщить модератору

222. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (222), 30-Июл-21, 05:10 
Захочешь - сам найдешь. Не захочешь - тебе хоть двести фич под нос сунь, все равно плеваться будешь.
Ответить | Правка | Наверх | Cообщить модератору

324. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Кир (?), 30-Июл-21, 13:23 
Да ладно, слив уже засчитан.
Ответить | Правка | Наверх | Cообщить модератору

549. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от . (?), 31-Июл-21, 23:41 
Ну как пример которым пользуются в любой кодовой базе на Rust (А фич у макросов намного больше) - derive макросы

Есть у тебя структура, поставил ей #[derive(Debug)] - и для неё реализован отладочный вывод в консоль (трейт Debug), то же самое с Clone, Copy, PartialEq, Eq, PartialOrd, Ord...

Такую же штуку могут реализовывать библиотеки (Это всё же макросы, а не чот встроенное и заточенное под стандартную библиотеку) - например serde имеет макросы Serialize/Deserialize, которые после добавления позволяют писать данную структуру как json/cbor/xml/bson/msgpack/... (в любой формат, для которого реализована библиотека с поддержкой serde, под protobuf правда такого нет, у него отдельный #[derive(Message)])

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

454. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от freecoder (?), 30-Июл-21, 22:57 
Например вот:


let value = json!({
    "code": 200,
    "success": true,
    "payload": {
        "features": [
            "serde",
            "json"
        ]
    }
});

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

483. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Кир (?), 31-Июл-21, 02:28 
Серьёзно? https://github.com/nlohmann/json

auto j2 = R"(
{
    "happy": true,
    "pi": 3.141
  }
)"_json;

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

515. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от freecoder (?), 31-Июл-21, 12:40 
> Серьёзно? https://github.com/nlohmann/json
>
auto j2 = R"( 
> {
>     "happy": true,
>     "pi": 3.141
>   }
> )"_json;

Ваш вариант - это просто строка. В случае же макросов в Rust можно DSL-синтаксис смешивать с выражениями Rust:


let full_name = "John Doe";
let age_last_year = 42;

let john = json!({
    "name": full_name,
    "age": age_last_year + 1,
    "phones": [
        format!("+44 {}", random_phone())
    ]
});


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

535. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Кир (?), 31-Июл-21, 17:16 
Ну тогда так, устроит?
 #include <iostream>
#include <nlohmann/json.hpp>
  
using json = nlohmann::json;
  
int main()
{
     // create JSON values
     json j_empty_init_list = json({});
     json j_object = { {"one", 1}, {"two", 2} };
     json j_array = {1, 2, 3, 4};
     json j_nested_object = { {"one", {1}}, {"two", {1, 2}} };
     json j_nested_array = { {{1}, "one"}, {{1, 2}, "two"} };
  
     // serialize the JSON value
     std::cout << j_empty_init_list << '\n';
     std::cout << j_object << '\n';
     std::cout << j_array << '\n';
     std::cout << j_nested_object << '\n';
     std::cout << j_nested_array << '\n';
}

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

618. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от anonymous (??), 02-Авг-21, 11:43 
> json j_object = { {"one", 1}, {"two", 2} };

Это в JSON будет {"one":1, "two":2} ?

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

619. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от freecoder (?), 02-Авг-21, 11:53 
> Ну тогда так, устроит?

Сравни теперь это с вариантом на Rust и поймешь, почему разработчикам больше нравятся его макросы.

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

238. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (246), 30-Июл-21, 06:04 
Раст переносит гарантии смартпоинтеров в компайл тайм, убирая соответствующий рантайм-оверхед. Цена за это - когнитивная нагрузка, надо вникнуть в принципы, перестроить мышление, ну и временами уговаривать компилятор, чтобы он понял, что тут все окей (поскольку полный статический анализ сделать невозможно ввиду проблемы останова).

В остальном, конечно, разницы особо нет, больше вопрос предпочтений.

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

241. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (246), 30-Июл-21, 06:15 
Кстати, в теории возможно реализовать аналог компайл-тайм модели Раста на плюсовых темплейтах, они, как-никак, Тьюринг-полные.

Это, конечном будет полный brainfuck, для компиляции которого понадобятся терабайт памяти и пара лет, но в теории :)

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

276. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 08:55 
> Раст переносит гарантии смартпоинтеров в компайл тайм, убирая соответствующий рантайм-оверхед.

А какой у современных компиляторов оверхед в unique_ptr<>?

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

404. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (547), 30-Июл-21, 18:46 
У unique_ptr никакого, а вот у shared_ptr есть.

В Расте же compile time refcount.

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

245. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 30-Июл-21, 06:23 
serde.rs
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

303. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от red75prime (?), 30-Июл-21, 10:36 
> Что именно позволяет сделать раст такого, чего нельзя (причем эффективнее) сделать на плюсах?

Писать код без ошибок (инвалидация итераторов, exception unsafety, data races). А насчёт функциональности программ: что такого можно сделать в С++, чего нельзя (причём эффективнее) сделать на ассемблере?

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

328. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Кир (?), 30-Июл-21, 13:37 
> Писать код без ошибок

Что-то, судя по постоянным растопроблемам, нифига не получается )))) Детка, ни один ЯП не позволяет писать код без ошибок, серебряных пуль не бывает, тебя обманули.

> что такого можно сделать в С++, чего нельзя (причём эффективнее) сделать на ассемблере?

Естественно, все что можно сделать на C++, можно сделать на ассемблере. И все что можно сделать на ржавом, можно сделать на ассемблере. Как это влияет на сравнение плюсов с ржавым?

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

412. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от n00by (ok), 30-Июл-21, 19:12 
> что такого можно сделать в С++, чего нельзя (причём
> эффективнее) сделать на ассемблере?

Вычисления во время трансляции. Из ассемблеров только fasm на это способен (я не смотрел остальные, просто угадываю).

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

480. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Кир (?), 31-Июл-21, 00:14 
Стоп, ты сейчас написал, что C++ не умеет в вычисления на этапе компиляции? Серьезно, я тебя правильно понял? То есть ты признался, что нифига не знаешь C++? Похоже, рассказы про тупость растаманов имеют под собой нехилую основу...
Ответить | Правка | Наверх | Cообщить модератору

481. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Кир (?), 31-Июл-21, 00:19 
Прошу прощения, неправильно понял мысль, дико извиняюсь.
Ответить | Правка | Наверх | Cообщить модератору

453. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от freecoder (?), 30-Июл-21, 22:41 
Дело не в том, что Rust _позволяет_ сделать такого, чего нельзя на плюсах, а в том, что Rust _не позволяет_ делать, в сравнении с плюсами.
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

179. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 03:38 
У C++ есть два плюса Boost и Qt, ну и сишные либы ему как родные
Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

475. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 31-Июл-21, 00:01 
Буст - весьма специфическая штука и нужна именно языку C++
В Расте заменяется стандартной либой и некоторыми крейтами
Интеграция с Qt есть
Ответить | Правка | Наверх | Cообщить модератору

43. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Кир (?), 29-Июл-21, 23:12 
А почему ты пишешь C/C++? Не видишь разницы? Еще один товарищ из криокамеры с томиком Ритчи 80-лохматого года издания?
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

309. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от anonymous (??), 30-Июл-21, 11:16 
Он как раз видит разницу и она не в пользу раст. Например, на раст невозможно реализовать даже вектор - придётся лезть в ансейф.
Ответить | Правка | Наверх | Cообщить модератору

476. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 31-Июл-21, 00:01 
На Расте можно что угодно реализовать, а unsafe - часть Раста
Ответить | Правка | Наверх | Cообщить модератору

477. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 31-Июл-21, 00:03 
Потому что у C++ все те же болячки C и уши из 80-90ых
Да, C++ лучше, особенно для прикладного применения, но все новинки не избавляют его от древних болячек, увы
Они даже побоялись аби нарушить ради увеличения производительности
Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

103. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (103), 30-Июл-21, 01:04 
Метан - он без вкуса и запаха.
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

193. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (193), 30-Июл-21, 04:08 
Это он природный без запаха, а тут после интенсивной газификации малых водоёмов.
Ответить | Правка | Наверх | Cообщить модератору

287. "Выпуск языка программирования Rust 1.54"  +3 +/
Сообщение от Аноним (287), 30-Июл-21, 09:37 
Путаете метан с сероводородом и аммиаком.
Ответить | Правка | Наверх | Cообщить модератору

38. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Кир (?), 29-Июл-21, 23:05 
А вообще, хочешь совет? Если хочешь реально посмотреть на программирование с новой стороны, попробуй Haskell. Очень интересная, хотя и временами мозговыносящая штука.
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

51. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (46), 29-Июл-21, 23:21 
На Rust после C++ и Haskell мне было довольно приятно перейти. Теперь на нём фулл-тайм и пишу.
Ответить | Правка | Наверх | Cообщить модератору

310. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от anonymous (??), 30-Июл-21, 11:18 
Ты забыл уточнить кое-что важное - пишешь хэлворды за бесплатно. Интересно, какой в этом смысл?
Ответить | Правка | Наверх | Cообщить модератору

442. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (442), 30-Июл-21, 21:09 
Себя проецируешь, себя и спрашивай ;)
Ответить | Правка | Наверх | Cообщить модератору

55. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 29-Июл-21, 23:26 
Брат жив?
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

127. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от adolfus (ok), 30-Июл-21, 02:18 
Спецификация этого раста существует? Строгое описание синтаксиса, ситуации неопределенного поведения, особенности функционирование в среде, автономное функционирование? Срок поддержки текущих спецификаций какой? Вот все современные компиляторы языка С спокойно и без каких-либо проблем компилируют код, написанный в начале 80-х и содержащий кучу вызовов библиотечных функций, включая лонгджампы и сложный форматный ввод/вывод. Код не менялся около сорока лет и сегодня используется без какой-либо доработки в том виде, в котором использовался с самого начала.
Аналолгично и с C++ -- код, написанный в начале 90-х и компилировавшийся semantic C++ и topspeed C++ без проблем сегодня компилируется и собирается с помощью g++. Как обстоит дело с этим у раста? Ныне написанный код скомпилируется в 2035 году? Или нужно будет искать программиста, чтобы он апедйтил исходники от версии к версии этого раста?

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

181. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Хан (?), 30-Июл-21, 03:40 
Даже видео на эту тему Страуструп запи ывал))) но вы ни понимаете это другое
Ответить | Правка | Наверх | Cообщить модератору

299. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (299), 30-Июл-21, 10:08 
Правда? А чего для многих проектов указывают конкретные версии компиляторов?
Ибо на последних оно не соберется
Ответить | Правка | К родителю #127 | Наверх | Cообщить модератору

311. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от anonymous (??), 30-Июл-21, 11:21 
Я тебе сектрет открою, там указывают _протестированные_ компиляторы и их версии.
Ответить | Правка | Наверх | Cообщить модератору

620. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от anonymous (??), 02-Авг-21, 11:56 
Вообще-то если даже взять один и тот же компилятор Си (одной и той же версии) и попробовать собрать (и запустить) проект в других условиях (например, другая ОС), то уже вылезает тонна проблем. А если ещё и версию поменять, то ещё выползут. А если ещё и другой компилятор взять, то ещё выползут. Как минимум тупо разные UB создадут проблем. Я уж не говорю про такие мелочи, как -Werror делает тонну проектов не собираемых почти всегда (а без этого флага в коде копится ещё больше UB).

Но даже если забить на это, тут ещё проблема в том, что язык превращён в свалку (особенно последние С++).

Кстати говоря, не помню, чтобы в Go был стандарт, но там как раз без проблем можно собирать (и запускать) старые проекты.

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

624. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Совершенно другой аноним (?), 02-Авг-21, 12:41 
> Вообще-то если даже взять один и тот же компилятор Си (одной и
> той же версии) и попробовать собрать (и запустить) проект в других
> условиях (например, другая ОС), то уже вылезает тонна проблем.

Э.. а они точно вылезут из-за компилятора, а не, например, наличия библиотек, или настроек, сделанных при сборке самого компилятора? У нас есть самодельная прошивка, которая собирается GCC разных версий, и при сборке под Linux пришлось только добавлять -fleading-underscore, т.к. в сборке GCC она по-умолчанию выставлена для Windows, а для Linux нет.

> А если ещё и версию поменять, то ещё выползут. А если ещё и
> другой компилятор взять, то ещё выползут.

Вы точно говорите про компилятор C?

> Как минимум тупо разные UB создадут проблем. Я уж не говорю про такие мелочи, как -Werror
> делает тонну проектов не собираемых почти всегда (а без этого флага
> в коде копится ещё больше UB).

И часто Вы встречаете эти UB? Имхо, про них обычно узнают, когда что-то падает, и в итоге выясняется - да, здесь программист положился на UB, а в другой аппаратной платформе/другом компиляторе оно работает (или не работает) по-другому.

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

270. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Брат Анон (ok), 30-Июл-21, 08:43 
Что только люди не сделают. Лишь нормальные языки не учить.Согласен переход с извращения на другое извращение -- несколько разнообразит боль.
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

478. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 31-Июл-21, 00:05 
А какие есть нормальные с производительностью уровня раста / c++?
И такие, чтоб популярные, а не ним или кристал
Ответить | Правка | Наверх | Cообщить модератору

564. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Брат Анон (ok), 01-Авг-21, 08:39 
> А какие есть нормальные с производительностью уровня раста / c++?
> И такие, чтоб популярные, а не ним или кристал

При чём тут производительность? Если в С++ проблемы с текущей памятью, а в расте с концептуальной перегруженностью (и это только начало) -- как это поможет в написании надёжного софта?

Что ним, что кристалл -- одинаковые поделки любителей, попытка подражания мейнстриму.

Хочешь глоток свежего воздуха? Смотри в сторону Обероно-подобных языков. Например, MultiOberon. Если хочешь зашаливающей производительности -- посмотри на тесты варианта Оберона "Vostok". Там тебе и десктоп, и JVM, и ведроид. Ты сожешь попробовать Оберон прямо сейчас в песочнице браузера. Ссылки гуглятся на раз.

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

571. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (571), 01-Авг-21, 11:06 
Обероны с GC  поэтому конкуренты не для раста а для Go и D.
Ответить | Правка | Наверх | Cообщить модератору

587. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Брат Анон (ok), 01-Авг-21, 21:04 
> Обероны с GC  поэтому конкуренты не для раста а для Go
> и D.

Кто тебе такую чушь сказал? В 60% реализаций Оберонов нет никакого GC. Оберон успешно запускают (лично я, например), на STM32F4T6. Там памяти, простите за мой французский -- с гулькин нос. Какой там GC? именно в этом и сила Оберонов -- хочешь будет тебе GC, не хочешь -- не будет. Ещё обращу твоё внимание анон: в варианте "Vostok" Оберон откровенно нагибает С++ и заставляет нервничать Си. См. тесты в блогпосте от ComDiv. Ещё раз специально для тебя повторю: на Оберонах написан под десяток операционных систем. Сколько операционных систем написано на Расте, которые испольуются в боевых самолётах, типа "Еврофайтера"? Или сколько управляющих систем на Расте используется на Ростовской атомной станции? На подстанции 110 кВ (как в Калининграде)? Или при управлении БПЛА? Ты пишешь с умным видом глупости по теме, которой совершенно не знаешь.

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

615. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (571), 02-Авг-21, 11:13 
> В 60% реализаций Оберонов нет никакого GC

Ссылку можно хоть на одну реализацию и чтобы там прямо говорилось что без GC. А то гугль наоборот больше подсовывает ссылки как оберон умеет в GC даже в ядерном коде.

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

656. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Брат Анон (ok), 04-Авг-21, 08:34 
> Ссылку можно хоть на одну реализацию и чтобы там прямо говорилось что
> без GC. А то гугль наоборот больше подсовывает ссылки как оберон
> умеет в GC даже в ядерном коде.

Достаточно на сайте Вирта почитать сообщение  о языке. Там ни слова нет о GC. Я тебе даже дам ссылку на русский перевод. Плохо ищешь.

https://github.com/Spirit-of-Oberon/ProjectOberon2013 -- виртовский Оберон, даже с эмулятором. Нет GC.

https://github.com/AntKrotov/oberon-07-compiler -- работает на ТРЁХ осях. Нет GC.

https://docs.google.com/document/d/14-KQD4UT0_Xd_s7kVHVKa6tx... -- перевод на русский язык, где GC даже не упоминается.

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

658. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (658), 04-Авг-21, 13:33 
>виртовский Оберон, даже с эмулятором. Нет GC.

Есть GC https://github.com/Spirit-of-Oberon/ProjectOberon2013/blob/m...

>работает на ТРЁХ осях. Нет GC.

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

>перевод на русский язык, где GC даже не упоминается.

Тут http://www.projectoberon.com/ в pdfках много раз упоминается.

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

659. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Брат Анон (ok), 05-Авг-21, 09:02 
>>виртовский Оберон, даже с эмулятором. Нет GC.
> Есть GC https://github.com/Spirit-of-Oberon/ProjectOberon2013/blob/m...

Хм. Что-то новенькое. Когда последний раз смотрел -- не было. Как по мне -- даже хорошо.

>>работает на ТРЁХ осях. Нет GC.
> Тут да нет, но это не полноценная реализация оберона, код на него
> легко переносим не будет, сразу потечет. И из-за отсутствия GC нет
> одного из самых любых пропагандистами оберон фич - динамической модульности. Про
> компонентное программирование тоже можно сразу забыть.

Код будет перенесён легко. Три оси это доказывают. Динамической модульности нет, да.
Но это не функция языка -- это функция системы. Наоборот, чем меньше фич в ЯЗЫКЕ -- тем легче перенос. Компонентное программирование реализуется не через язык,а через среду. BBCB тебе в помощь.
Если ты внимательно прочитал описание -- там на нормальном буржуйском языке написано, что это не коммерческий вариант. Пацанчег его запили в одну харю. Попробую запили в одну харю Аду или ржавого. Ещё раз отдельно отмечу: существует ДВА ДЕСЯТКА реализаций Оберона одиночками. Переносимость у Оберона -- кратно выше, чем в Си. Зависимость от железа -- нулевая. Именно это главная фича Оберона, а не GC или динамическая модульность.

>>перевод на русский язык, где GC даже не упоминается.
> Тут http://www.projectoberon.com/ в pdfках много раз упоминается.

Нет. Нигде не упоминается обязательность GC. См. реализацию Оберона на основе виртовского от AIXP -- там всё также нет GC.

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

665. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (665), 06-Авг-21, 11:11 
>Хм. Что-то новенькое. Когда последний раз смотрел -- не было. Как по мне -- даже хорошо.

Судя по пдфкам последний раз 8 лет назад обновленным, оно там всегда было.

>Код будет перенесён легко. Три оси это доказывают

Я про перенос кода с других реализаций оберона, а там GC и все на этой реализации тупо утекет.

>Попробую запили в одну харю Аду или ржавого.

В свое время в одиночку форт пилил, ничего сложного в пилении примитивных языков не вижу.

>Ещё раз отдельно отмечу: существует ДВА ДЕСЯТКА реализаций Оберона одиночками.

Фортов и лиспов еще больше было, часто плохо совместимых, похоже тут та же болезнь.

>Нет. Нигде не упоминается обязательность GC.

Это очень плохо. Теперь более понятна стала для меня непопулярность оберонов. Вообще как-то раньше ставил побаловаться xds oberon,  его умения оптимизации кода тогда впечатлили.

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

650. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (246), 03-Авг-21, 08:55 
Если уж говорить о промышленных языках, на которых написано вот всякое такое, то это Ada.

А оберон это для узкого круга фанатов, он слишком уж вещь в себе.

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

657. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Брат Анон (ok), 04-Авг-21, 08:39 
> Если уж говорить о промышленных языках, на которых написано вот всякое такое,
> то это Ada.
> А оберон это для узкого круга фанатов, он слишком уж вещь в
> себе.

Нет. Ада это полукоммерческий продукт, который в ардуино ты не запихнёшь при всём желании.
Узкий круг фанатов Оберона, ещё раз для уяснения: фазированная антенная решётка основного боевого самолёта Евросоюза -- "Еврофайтер", швейцарский национальный центр управления дорожным движением. процессинговый центр "Дойчебанка", диспетчерский центр управления каскадом ГРЭС на Амазонке, подсистема резервирования телеметрии на Ростовской АЭС, управляющая программа БПЛА (в России, гуглится на раз), подсистема дорасчёта электрических параметров ПС 110 кВ "Восточная-1" Калининград, система диспетчерского управления перерабатывающих заводов в Орле(2 шт, Мираторг),символьная система расчёта проблемы дефекта массы нейтрино (объединённый центр ядерных исследований, Дубна), комплекс приборов для исследования эффекта люминисценции в биологических растворах (Новосибирск), основы преподавания программирования (клуб "Байтик", Троицк), кружок программирвоания для детей при Новосибирском государственном федеральном университете.

В каком месте это узкий круг фанатов? В каком месте тут хоть раз использована Ада? Пишешь то, о чём не имеешь ни малейшего понятия. Попробуй детям попреподавать Аду -- я на тебя посмотрю. Вот те самые детишки, что освоили Оберон -- будут программировать на нём ВСЁ, и уних не будет болеть голова от концепции владения раста (с его диким синтаксисом) и не думая о том, что такое адресная арифметика, как не поломать память, и всякие низкоуровневые вещи. Но при этом, при необходимости -- всего могут спуститься на аппаратный уровень. Один язык для всегда -- это технологическое преимущество перед всеми остальными, кто сначала учит Васик, потом Паскаль, потом С++, а когда приходят на работу -- оказывается надо было учить питон или пхп какой-нибудь. На Обероне -- для программирования железа даже ассемблер не нужен, как отдельная сущность. Собственно, как отдельной сущности -- ассемблера в Обероне и нет (в отличии от Си, который в ассемблере всё же нуждается -- в сущности, второй язык).

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

660. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Совершенно другой аноним (?), 05-Авг-21, 10:16 
> На Обероне -- для программирования железа даже ассемблер не нужен, как
> отдельная сущность. Собственно, как отдельной сущности -- ассемблера в Обероне и
> нет (в отличии от Си, который в ассемблере всё же нуждается
> -- в сущности, второй язык).

Если не сложно изложите по-подробнее - как Вы без ассемблера сможете в регистре CR0 установить соответствующий бит для перехода в защищенный режим? или загрузить регистр GDTR таблицы GDT?

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

663. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Брат Анон (ok), 06-Авг-21, 09:03 
> Если не сложно изложите по-подробнее - как Вы без ассемблера сможете в
> регистре CR0 установить соответствующий бит для перехода в защищенный режим? или
> загрузить регистр GDTR таблицы GDT?

Оберон -- это ЯВУ. Ему плевать какие есть регистры в процессоре, потому что это уже не ЯВУ. А если таки руки чешутся добраться до железа (за что в Оберонах придётся мягко говоря серьёзно держать ответ перед тимлидом за такие выкрутасы) -- для этого во всех Оберонах есть псевдомодуль SYSTEM (который позволяет творить с железом что угодно и для безопасности -- импорт этого модуля легко детектируется анализатором исходников). SYSTEM (* если прям очень сильно хочется *) может содержать ассемблер, но в сущности -- он просто не нужен.  Манипуляцию с байтами в машинной памяти берёт на себя компилятор (у которого есть высокоуровневые сущности от железа, что существенно снижает вероятность косяков, но не даёт ложную уверенность программисту, что всё будет ништяк).

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

664. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Совершенно другой аноним (?), 06-Авг-21, 10:13 
>> Если не сложно изложите по-подробнее - как Вы без ассемблера сможете в
>> регистре CR0 установить соответствующий бит для перехода в защищенный режим? или
>> загрузить регистр GDTR таблицы GDT?
> Оберон -- это ЯВУ. Ему плевать какие есть регистры в процессоре, потому
> что это уже не ЯВУ.

Ну, несмотря на то, что C до недавнего времени тоже был ЯВУ, и там для повседневной работы тоже не нужно было знать регистры, но мы вроде как про программирование железа - а там, как-раз эти регистры и есть, какие в процессоре, какие отображенные на память (иногда с хитрым поведением, когда для обнуления каких-то определённых бит надо именно эти биты записать в регистр, а иногда, которые просто обнуляются по факту чтения из данного регистра), а какие (в архитектуре 8086+) отображенные на специальное пространство ввода-вывода, к которому доступ идёт спец-командами (in/out).

> но в сущности -- он просто не нужен.  Манипуляцию с
> байтами в машинной памяти берёт на себя компилятор (у которого есть
> высокоуровневые сущности от железа, что существенно снижает вероятность косяков, но не
> даёт ложную уверенность программисту, что всё будет ништяк).

Всё-же не совсем понятно, как Вы можете не используя ассемблер, установить в регистре CR0, бит 0, чтобы перевести процессор в защищенный режим процессора. На память этот регистр не отображается. Ну или всякие взаимодействия с отладочными регистрами DR (мы-же вся так-же про программирование железа, в том числе и настроек самого процессора).

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

671. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Брат Анон (ok), 09-Авг-21, 08:55 
> Ну, несмотря на то, что C до недавнего времени тоже был ЯВУ,...

Си никогда не был ЯВУ.

> и там для повседневной работы тоже не нужно было знать регистры,

Поэтому Си не ЯВУ.

> Всё-же не совсем понятно, как Вы можете не используя ассемблер, установить в
> регистре CR0, бит 0, чтобы перевести процессор в защищенный режим процессора.

Откройте для себя машинные команды.


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

672. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Совершенно другой аноним (?), 09-Авг-21, 09:20 
>> Ну, несмотря на то, что C до недавнего времени тоже был ЯВУ,...
> Си никогда не был ЯВУ.

гм.. вообще-то был, до того, как пошли C++/Java.

>> и там для повседневной работы тоже не нужно было знать регистры,
> Поэтому Си не ЯВУ.

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

Как Вы из этого вывели, что C не ЯВУ? или под ЯВУ Вы понимаете что-то другое?

>> Всё-же не совсем понятно, как Вы можете не используя ассемблер, установить в
>> регистре CR0, бит 0, чтобы перевести процессор в защищенный режим процессора.
> Откройте для себя машинные команды.

какие-такие машинные команды, и как можно вписать в программу на Обероне? или как в старых ассемблерах, которые не поддерживали некоторые новые команды лепили что-то типа:

        db 0eah
        dw 0
        dw entry

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

630. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (630), 02-Авг-21, 14:53 
За него уже деньги платят? Трудяг реальных для интересных и стабильных работ ищут?
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

45. "Выпуск языка программирования Rust 1.54"  +3 +/
Сообщение от Anonnnym (?), 29-Июл-21, 23:13 
> управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора

lockfree без GC, или при чем тут упоминание параллелизма?

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

92. "Выпуск языка программирования Rust 1.54"  –14 +/
Сообщение от Хан (?), 30-Июл-21, 00:27 
Есть там GC, сказки растоманов про некую магию избавлющую от всех проблем это полная туфта
Ответить | Правка | Наверх | Cообщить модератору

120. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Aukamo (ok), 30-Июл-21, 01:51 
Приведите ссылку на строку(и) кода, благо Rust на Github есть, показывающего что в расте есть GC. Очень интересно посмотреть. Под GC имеется в виду именно runtime\времени исполнения.
Ответить | Правка | Наверх | Cообщить модератору

154. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 02:57 
Магия?
Ответить | Правка | Наверх | Cообщить модератору

162. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Aukamo (ok), 30-Июл-21, 03:08 
> Магия?

Да: https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html

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

172. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 03:24 
Ахахаха вот это да сильно... выдавать за ноухау подобие умных указателей C++ !!! Это фиаско братан
Ответить | Правка | Наверх | Cообщить модератору

237. "Выпуск языка программирования Rust 1.54"  +5 +/
Сообщение от Аноним (246), 30-Июл-21, 05:57 
На плюсах с умными указателями и RAII в смысле управления памятью и получится примерно Rust.
Принципиальных отличий два (и они тесно взаимосвязаны). Первое - это (почти) нулевой оверхед, поскольку проверки в Расте делаются в компайл-тайм (да, в это сложно поверить, видя впервые, надо вникать :). Второе - невозможность нарушения RAII заложена в дизайн языка, просто не скомпилируется.
Ответить | Правка | Наверх | Cообщить модератору

396. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Sem (??), 30-Июл-21, 18:28 
Поздравляю с разморозкой.
Лучше бы доку по расту почитал, чем время тратить на такие комментарии.
Ответить | Правка | К родителю #172 | Наверх | Cообщить модератору

173. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 03:24 
По секрету... чисто между нами... умные указатели это тоже разновидность GC...прикинь да...
Ответить | Правка | К родителю #162 | Наверх | Cообщить модератору

261. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Aukamo (ok), 30-Июл-21, 08:09 
Cемейство: Box, Rc, Arc, Cell и т.д. можно отнести к умным указателям, имеющим runtime overhead. Я уже говорил что говоря о GC имеется именно runtime а не механизм чистки. В основном, всё держится на механизме владения, и там никакого overhead-а нету, + ZST https://doc.rust-lang.org/nomicon/vec-zsts.html (о таком раньше вообще не слышал, если кто знает - дайте ссылку, интересно). Если что-то надо подчистить раньше чем это сделает компилятор - есть функция `drop`.
Ответить | Правка | Наверх | Cообщить модератору

281. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от n00by (ok), 30-Июл-21, 09:11 
> + ZST https://doc.rust-lang.org/nomicon/vec-zsts.html
> (о таком раньше вообще не слышал, если кто знает - дайте
> ссылку, интересно).

А для чего нужны эти типы нулевого размера? Какую задачу решают?

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

300. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (299), 30-Июл-21, 10:11 
Задач несколько, самая простая - это типизация без оберток.
Почитать можно тут
https://www.hardmo.de/article/2021-03-14-zst-proof-types.md#...
https://ferrous-systems.com/blog/zero-sized-references/#diff...
Ответить | Правка | Наверх | Cообщить модератору

315. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от n00by (ok), 30-Июл-21, 12:13 
> Задач несколько, самая простая - это типизация без оберток.
> Почитать можно тут
> https://www.hardmo.de/article/2021-03-14-zst-proof-types.md#...
> https://ferrous-systems.com/blog/zero-sized-references/#diff...

Спасибо, во втором случае увидел практический смысл.

В примере имеется два блока памяти, из которых выделяются элементы. Тут есть нюансы:
1. Информация о принадлежности элемента конкретному блоку содержится в адресе элемента.
2. Для задачи "вернуть элемент куда следует" явная обработка вышеуказанной информации не является необходимой.
3. Информация доступна во время исполнения. ZST (по определению) такое не обеспечивает. Насколько понимаю, инстанциируется (я слышал, что темплейты в С++ это жесть, но они это позволяют без ZST) два экземпляра деалокатора.

Наверное, я что-то упустил?

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

330. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (299), 30-Июл-21, 13:38 
Если честно, то я с ZST знаком теоретически, на практике в моих задачах они просто не были нужны. Но насколько я понимаю вся фишка что проверки типов идут на этапе компиляции, а не в рантайме и в момент компиляции подставится нужный вызов. Ну или просто не скомпилируется.
Так что сори что не смог ответить на вопросы. Нужно спросить кого-то более знающего.

Еще можно глянуть пример PhantomData как частный вариант ZST.
https://doc.rust-lang.org/stable/core/marker/struct.PhantomD...

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

339. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 14:41 
> Еще можно глянуть пример PhantomData как частный вариант ZST.
> https://doc.rust-lang.org/stable/core/marker/struct.PhantomD...

Я бы дал ссылку на
https://doc.rust-lang.org/nomicon/phantom-data.html

> PhantomData consumes no space, but simulates a field of the given type for the purpose of static analysis. This was deemed to be less error-prone than explicitly telling the type-system the kind of variance that you want, while also providing other useful things such as the information needed by drop check.

там и пример для ZST более лаконичен и поняте не-рустовцам
https://doc.rust-lang.org/nomicon/exotic-sizes.html
> On their own, Zero Sized Types (ZSTs) are, for obvious reasons, pretty useless.

...
> One of the most extreme examples of this is Sets and Maps. Given a Map<Key, Value>, it is common to implement a Set<Key> as just a thin wrapper around Map<Key, UselessJunk>. In many languages, this would necessitate allocating space for UselessJunk and doing work to store and load UselessJunk only to discard it. Proving this unnecessary would be a difficult analysis for the compiler.
> However in Rust, we can just say that Set<Key> = Map<Key, ()>. Now Rust statically knows that every load and store is useless, and no allocation has any size. The result is that the monomorphized code is basically a custom implementation of a HashSet with none of the overhead that HashMap would have to support values.

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

509. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Aukamo (ok), 31-Июл-21, 10:28 
> А для чего нужны эти типы нулевого размера? Какую задачу решают?

Rust ими активно пользуется в стандартной библиотеке, но в эту сторону я не сильно копал. Задача, на сколько я знаю, это Zero Cost Abstraction, примеры привели выше.

Самое большое впечатление составил этот проект: https://github.com/Rahix/avr-hal , это, грубо говоря, библиотека <Arduino> для Rust. Если посмотреть исходники, становится понятно то как используются ZST. По сути, ZST позволяют управлять потоком исполнения так, как и в случае если у тебя есть объект с данными, т.е. ты можешь обращаться к сущности, задавать или спрашивать некие свойства, хотя, под капотом, сама сущность не хранит никакой информации и её можно было бы заменить на 100500 #define\#if\#ifdef. Это как модуль или область видимости, но в виде объекта и со свойствами объекта. Короче, самое крутое, доведённое до предела использование ZST я, пока что, видел только в avr-hal (за счёт того что для embedded каждый байт на счету).

https://doc.rust-lang.org/stable/embedded-book/static-guaran... не помню где я видел класное описание того как в avr-hal пины\периферия в виде ZST создаются. Там, вроде как, смежный проект для cortex (вместо atmel), книгу написал как ZST можен это обиграть. Может где в issues есть ссылка, я просто, интерес к проэкту на время потерял, не хочу сейчас в нём копаться.

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

278. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от n00by (ok), 30-Июл-21, 09:06 
Умные указатели это разновидность автоматического управления памятью, как и сборка мусора. Путаница возникает, поскольку и там и там есть варианты с подсчётом ссылок.
Ответить | Правка | К родителю #173 | Наверх | Cообщить модератору

561. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (571), 01-Авг-21, 08:14 
То есть по твоему получается что C++ это тоже язык с GC? Ведь разницы у него с растом по подержке умных кказателей практически нет.
Ответить | Правка | К родителю #173 | Наверх | Cообщить модератору

347. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Anonnnym (?), 30-Июл-21, 15:06 
>> управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора
> lockfree без GC, или при чем тут упоминание параллелизма?

Судя по дискуссии, меня не совсем правильно поняли. Я не говорил о GC таком как в Java, C# или D, который прибирает за пользователем всю выделенную память. Я говорил о GC для lockfree структур.

Изначально процитированная часть (не полная) говорит о том, что в rast высокая скорость выполнения параллельных заданий достигается без использования GC и runtime. Тут я предположил 2 вещи о которых может вестись речь: выделение/освобождение памяти и lockfree структуры. Для первого сообщение в новости исключает кастомные аллокаторы, а без них мы не можем выделить памяти без блокировок, так как ходим в ядро. По этому я и спросил только про lockfree, т.к. мне не совсем понятно как можно организовать lockfree-структуру без сборщика мусора.

На пример возьмем односвязный список с 2мя полями - value и next, где next - указатель на следующий элемент, а value - значение, которое нам в примере неинтересно.

Для добавления элемента в список нам нужно создать его - записав значение и nullptr в next, после чего указатель на наш элемент надо добавить в конец списка, для этого через CAS сравниваем и заменяем nullptr поля next последнего элемента списка на указатель на наш новый элемент. Т.к. пока мы искали последний элемент списка он мог перестать быть последним, данная операция выполняется в бесконечном цикле.

Для удаления можно попробовать поступить так же, но если мы после удаления элемента из списка (замена указателя на него nullptr), удалим сам элемент (вызовем delete), то мы можем уронить приложение обращением к освобожденной памяти, из-за того, что другой поток обратился к элементу перед удалением, а прочитал поле из него уже после удаления.

По этому для удаления элементов нужен сборщик мусора, который когда-нибудь таки дернит блокировку и по удаляет элементы (вызовет delete).

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

437. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним зеленый (?), 30-Июл-21, 20:25 
О "безопасном" параллелизме в раст пишут только по одной причине. О подмножестве состояний гонки - гонки по данным. "когда разные потоки обращаются к одной ячейке памяти без какой-либо синхронизации и как минимум один из потоков осуществляет запись."

Такое в раст запрещено правилами владения/заимствования и не скомпилируется. Остальные гонки (логические) конечно приведут к дедлокам.

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

507. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 31-Июл-21, 09:17 
> О "безопасном" параллелизме в раст пишут только по одной причине. О подмножестве
> состояний гонки - гонки по данным. "когда разные потоки обращаются к
> одной ячейке памяти без какой-либо синхронизации и как минимум один из
> потоков осуществляет запись."

Если один _писатель_, то где там гонка? Запись одной ячейки атомарна. Скорее всего, вместо записи имелась ввиду модификация.

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

50. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Хан (?), 29-Июл-21, 23:20 
Неужели нельзя сделать не столь адовый синтаксис? Такое чувство что это C++ под веществами
Ответить | Правка | Наверх | Cообщить модератору

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

60. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 29-Июл-21, 23:30 
Нормальный? В каком месте? Это же кому то взбрело в голову скрестить ML-языки в которых шарит 3,5 анонимуса и ООП вроде C++/Java/C# которое знают процентов 90... от чего получился Rust который могут понимать все теже 3,5 анонисуса
Ответить | Правка | Наверх | Cообщить модератору

101. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 00:45 
> ML-языки в которых шарит 3,5 анонимуса

То что вы не шарите, не означает, что шарит мало людей.

> и ООП

И в чём тут проблема? ООП родной подход для функциональных языков.

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

139. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 02:31 
Аудитория OCaml, F#, Haskell, Lisp как бы намикает на популярность и понятность ФП

Особняком стоит Erlang который также непонятен но кое где взлетел

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

216. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 04:46 
>Аудитория OCaml, F#, Haskell, Lisp как бы намикает на популярность и понятность ФП

Вы забыли Javascript и Python.

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

436. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 20:21 
JS в котором любой базовый тип это обьект? Хммм не знал что в ФП все обьект и наследование есть через прототипы, хотя это уже неактуально в новом JS наследование правильное
Ответить | Правка | Наверх | Cообщить модератору

122. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:00 
С чего вы вдруг взяли что в Rust есть ООП? ООП держится на 3х китах: инкапсуляция, наследование, полиморфизм. Можете начать пояснять начиная с наследования.
Ответить | Правка | К родителю #60 | Наверх | Cообщить модератору

140. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 02:33 
Ключевое слово "Скрестить" ФП и ООП... понятное дело что нормальным ООП там и не пахнет
Ответить | Правка | Наверх | Cообщить модератору

147. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:44 
Т.е. ваше экспертное мнение таково, что LINQ для C# как и сам С# не состоятелет в силу того что используются 2 таких несовместимых подхода как ФП и ООП?
Ответить | Правка | Наверх | Cообщить модератору

152. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 02:52 
C# изначально спроектирован как ООП язык, различные фичи добавлялись походу, так что дефолтная концепция не пострадала

Скажи еще что у Java плохое ООП из за того что туда добавили лямбды

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

160. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Aukamo (ok), 30-Июл-21, 03:04 
RTFM: https://doc.rust-lang.org/book/ch17-00-oop.html
Ответить | Правка | Наверх | Cообщить модератору

171. "Выпуск языка программирования Rust 1.54"  –5 +/
Сообщение от Хан (?), 30-Июл-21, 03:22 
Наследования нет))) лол

Тупо почти структуры...

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

316. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (316), 30-Июл-21, 12:14 
А чего вы его здесь минусуете? Ну, ведь, действительно же в Rust нет нормального наследования.
Ответить | Правка | Наверх | Cообщить модератору

143. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от adolfus (ok), 30-Июл-21, 02:38 
Не три кита, а гораздо больше, причем главный из них -- это обмен сообщениями между объектами, чтобы передавать информацию, а не вызовы "методов". Кстати, в C++ вообще нет методов, только функции-члены классов.
Ответить | Правка | К родителю #122 | Наверх | Cообщить модератору

150. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:49 
> Не три кита, а гораздо больше

Нить рассуждений потеряна. Я выступил с критикой сравнения стуктур в Rust с ООП, в то время как вы.. не знаю о чём говорите.


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

527. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от adolfus (ok), 31-Июл-21, 15:32 
>> Не три кита, а гораздо больше
> Нить рассуждений потеряна. Я выступил с критикой сравнения стуктур в Rust с
> ООП, в то время как вы.. не знаю о чём говорите.

О том, что "три кита" инкапсуляция, наследование, полиморфизм для ООП вторичны, а первичен обмен сообщениями. Эти три кита появились в дискурсе потому, что не смогли в сообщения.

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

191. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 04:05 
>инкапсуляция, наследование, полиморфиз

Никакого отношения к ООП не имеет.
Это система типов страуструпа.

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

205. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 04:30 
Бредишь истинным ООП Алана Кея на клеточном уровне? Лол конечно, но это лютые тормоза... для примера можешь написать программу где каждая функция будет отдельным процессом и любой чих будет вызывать ОС для передачи сообщений через пайпы
Ответить | Правка | Наверх | Cообщить модератору

231. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (246), 30-Июл-21, 05:36 
Концепция не имеет никакого отношения к вопросам производительности. Концепция - одно, реализация - другое.

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

А вот полиморфизм обязателен - это просто другая формулировка принципа контрактов. А без виртуальных функций с соответствующим оверхедом никакого полиморфизма не будет, так что всегда в общем случае будет dispatch table. Называть это вызовом метода или обменом сообщениями - вопрос терминологии, суть та же. Принимать «неизвестные сообщения» (скажем, в специальный метод, как в Ruby), или не давать такое скомпилировать - вопрос дизайна языка, добавить или убрать случай «not found in dispatch table» можно всегда».

Инкапсуляция тоже обязательна, но она может быть и неявно выражена в языке.

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

253. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 07:48 
Действительно я то думал, че смолтолк так взлетел с его передачей сообщений! Прям да, тормоз был всех времен и народов
Ответить | Правка | Наверх | Cообщить модератору

228. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (246), 30-Июл-21, 05:26 
На трёх китах держится плоская земля. А для ООП достаточно понятия контракта и объекта как чёрного ящика, поддерживающего контракты.

Способ реализации в плюсах, позаимствованный из Симулы - это лишь способ реализации. Читайте Алана Кея, короче.

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

259. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 08:01 
ООП Кея больше подходит для сетей, в чем и нашло себя в виде микросервисов.... но в программе ООП по Кею не канает
Ответить | Правка | Наверх | Cообщить модератору

413. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (547), 30-Июл-21, 19:12 
Если воспринимать буквально, то не канает.

А если немного переформулировать, и добавить типизации (что намного чаще полезно, чем вредно), то получается:

1. Есть контракты, описывающие по сути сигнатуры методов,
2. Есть объекты, которые снаружи "черные ящики", о которых известно, что они поддерживают определенные контракты,
3. Нет привязки к конкретным объектам, есть привязка к контрактам.

Тогда внезапно получается, что:
1. Инксапсуляция нужна ("черный ящик", во внутренности которого не лезем),
2. Полиморфизм нужен (привязка к контрактам, конкретный объект не важен),
3. А вот наследование вообще мимо. И, действительно, наследование всегда заменяется композицией, и зачастую в языках, где есть наследование, композиция предпочтительнее (см. composite reuse principle).

При этом и Rust, и Go получаются вполне себе ООП.

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

415. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (547), 30-Июл-21, 19:18 
Другими словами, представь себе, что в С++ ты можешь наследоваться только от pure abstract классов. После чего, чтобы не городить кучу микрообъектов и ручное делегирование, добавим трейты как в Scala.

Что-то принципиально изменилось? Да ничего.

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

282. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от n00by (ok), 30-Июл-21, 09:12 
> Нормальный синтаксис, просто для некоторых незнакомый и непривычный, потому что нет опыта
> с ML-языками например.

Это не синтаксис. Когда вместо return пишется просто значение - в случае ML это семантика. Получается, что Rust исходно функциональный с императивными возможностями. Отсюда все споры и отторжение его как "замены Си".

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

93. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Rev (?), 30-Июл-21, 00:33 
Адовый синтаксис только если использовать дженерики и указание времён жизни. Но есть секрет - можно их не использовать :-D
Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

125. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:03 
А ещё можно разобраться в том как это всё работает, говорят помогает. + относительно новые версии раста много чего уже делают сами (вроде как в 1.28+ много сахара добавили)
Ответить | Правка | Наверх | Cообщить модератору

121. "Выпуск языка программирования Rust 1.54"  +6 +/
Сообщение от topin89 (ok), 30-Июл-21, 01:58 
Из всех языков на выбор, ты выбрал C++ для сравнения? C++?

С его шаблонами шаблонов шаблонов, где чёрт ногу сломит понять, как и что устроено, если писал не ты? И они при этом _не могут_ полностью заменить макросы для такой банальной вещи, как определить, под какую ОС компилируем.

Язык, в котором в try catch можно упихнуть всю функцию, примерно так:

void func() try {} catch(...) {}

Язык, в котором для проброса rvalue-ссылок нужно городить огород из шаблонов и std::forward? Вместе с самими rvalue/lvalue ссылками.

Язык, в котором до недавней редакции простая конкатенация векторов превращалась в квест с двумя begin'ами и одни end'ом?

Вместе с тем в новой редакции появились концепты с ещё одним новым, интересным синтаксисом?

Да по библиотекам, unique_ptr должен был быть очень простой, очень эффективной обёрткой над обычным указателем, с буквально нулевым оверхедом. Гугловцы выяснили, что оверхед дам огого, и без поломки совместимости это не исправить.

По самыми медленными регулярками в одном из самых быстрых языков только ленивый не прошёлся.

Тут доолллго продолжать можно. Можешь Мейерса почитать, там все эти кейсы прекрасно описаны. Да, у них была причина. Да, обратная совместимость, да, исторические причины, но суть это не меняет.

Rust -- это C++ без веществ, а не наоборот. Не уверен, помогут ли эпохи остаться таковым, но очень надеюсь.

Чего мне не хватает в нём -- это пользовательские литералы, типа 10ms вместо Duration::from_millis(10). Было предложение, но что-то заглохло.

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

129. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:22 
Если постараться, на Rust можно написать код который будет куда хуже того что вы привели. Много кто из новичков жалуется не неочевидность trait-ов. Библиотеки, в том числе стандартная, имеет тенденцию раскрывать потенциал структур через trait-ы, например используя `std::fs::File` нужно ещё `std::io::{Read, Write}` подключить. Обращу ваше внимание что они даже не в одном модуле находятся. И эта же ситуация возникает повсеместно во всех crate-ах, это уложняет понимание библитек без хорошой документации. В целом, ко всему есть доступ, но путаница всё равно возникает.

Ещё можно критиковать Rust за сырость и относительно частые deprecation. На С++ можно использовать последнюю версию GCC\Clang и просто ставить `std=c++11` или какую либо ещё версию, обновляется ли rustc\cargo если ставишь override на старую версию не знаю. Тот же С++ с нами уже очень давно, много проблем уже обросли костылями.

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

325. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Ordu (ok), 30-Июл-21, 13:25 
> Обращу ваше внимание что они даже не в одном модуле находятся.

В генерируемой документации есть ссылки на все трейты типа. Ты можешь вниз прокрутить, или в боковой панели посмотреть. И им не надо находиться здесь: что такое трейт Read, Write, я знаю и так. Когда используешь крейт постоянно (например std) все основные трейты его знаешь, иногда реализуешь их не консультируясь с документацией на тему того, как там в точности выглядит декларация методов. В std таких грядка -- Read, Write, Iterator, PartialEq, PartialOrd ... Их запоминаешь со временем примерно так же, как в C++ запоминаешь как перегружать те или иные операторы, и пишешь заголовок int operator+(чётотам) не консультируясь с документацией.

> это уложняет понимание библитек без хорошой документации.

Да. Но без документации разобраться сложно с библитекой на любом языке. В расте же есть гарантия документации -- может быть плохой документации, если разработчик не озаботился, но по-крайней мере иерархический html, с модулями, типами, с трейтами типов, и всякой прочей информацией ты получишь. Этим может заниматься IDE, наверное, выводя всю информацию о типах, но я пользуюсь сгенерённой документацией. Потому как не нашёл способ сделать всё это удобно в emacs -- всплывающие кстати и некстати подсказки я пробовал, мне они мешают. Может можно сделать, чтобы отдельная панель была для отображения структурированной информации, но emacs не дружит с мышью, её поддержка сделана через привычное для emacs'а место костылями, поэтому я предпочитаю браузер.

> Библиотеки, в том числе стандартная, имеет тенденцию раскрывать потенциал структур через trait-ы, например используя `std::fs::File` нужно ещё `std::io::{Read, Write}` подключить.

Да, это раздражает иногда. В качестве обходного манёвра библиотеки часто предоставляют модуль prelude, который можно импортировать все трейты сразу. Хотя я предпочитаю без этого: когда вручную импортируешь трейт за трейтом, особенно из новой для себя библиотеки, лучше понимаешь происходящее. Потом, когда происходящее стало понятно, можно и prelude импортировать.

> На С++ можно использовать последнюю версию GCC\Clang и просто ставить `std=c++11` или какую либо ещё версию, обновляется ли rustc\cargo если ставишь override на старую версию не знаю.

В расте есть эдишны. Edition 2015, Edition 2018, и тут на подходе Edition 2021. Ты можешь использовать распоследний компилятор с любым эдишном.

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

512. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Aukamo (ok), 31-Июл-21, 11:01 
Не знаю, может меня не так поняли, я Rust пользуюсь, относительно, давно. Критика была не вида "в Rust нету .." а, скорее, "хотелось бы чтобы было ..". Я понимаю, что к Rust можно привыкнуть, или, как минимум, попытаться. Да и то что я им пользуюсь никак не умоляет факт наличия косяков, ну прям совсем.
Ответить | Правка | Наверх | Cообщить модератору

144. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Хан (?), 30-Июл-21, 02:39 
Ключевое слово "Синтаксис" C++, а не детали реализации его стандартной либы или грязных костылей во имя совсестимости...

А Rust чисто синтаксис адовее C++ и это без всяких требований обратной совместимости не только с C98 но и с C89...

Казалось бы делайте с чистого листа, вы не обременены различными комитетами но все как всегда

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

170. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 03:19 
*C++98
Ответить | Правка | Наверх | Cообщить модератору

312. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним зеленый (?), 30-Июл-21, 11:36 
Серьезно, прочитайте уже https://habr.com/ru/post/532660/ а то опять про синтаксис, когда не в нем проблема. А в новых фичах, которых нет в С++ - отсюда сложность.
Ответить | Правка | К родителю #144 | Наверх | Cообщить модератору

332. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Ordu (ok), 30-Июл-21, 14:00 
Хорошая ссылка. Но мне кажется не поможет. Люди лезущие на баррикады из-за синтаксиса -- это безмозглые фанатики с мозгами отутюженными идеологией. Им бесполезно что-то объяснять.

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

Но когда претензии к синтаксису -- это всё, сливай воду.

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

343. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 14:52 
Ты ссылку на хабр кинь пацанам из Microsoft, а то они не знали как нужно  и значит сделали C# с одним из самых чистых и читаемых синтаксисов в статически типизированных языках
Ответить | Правка | К родителю #312 | Наверх | Cообщить модератору

349. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (349), 30-Июл-21, 15:56 
Как-то по последним версиям шарпа не видно что это "одним из самых чистых и читаемых синтаксисов в статически типизированных языках" там уже навортили почти как в C++. Хотя у ms есть такой чистый и очень читабельный язык - это F#.
Ответить | Правка | Наверх | Cообщить модератору

438. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним зеленый (?), 30-Июл-21, 20:29 
А как же сборщик мусора в виртуальной машине? Это сильно упрощает многое по синтаксису кмк.
Ответить | Правка | К родителю #343 | Наверх | Cообщить модератору

560. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 01-Авг-21, 03:41 
Даже если вручную удалять обьекты в C# синтаксис читается сразу, а не после пару банок темного нефильтрованного
Ответить | Правка | Наверх | Cообщить модератору

369. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Кир (?), 30-Июл-21, 16:48 
> И они при этом _не могут_ полностью заменить макросы для такой банальной вещи, как определить, под какую ОС компилируем

Ты правда настаиваешь, что

#[cfg(target_os = "macos")]
fn macos_only() {
  // ...
}

чем-то принципиально лучше чем
#ifdef __linux__
void linux_only() {
}
#endif
?
Как по мне, те же шарики, вид сбоку. Как минимум, в сишном варианте писать меньше: можно в один блок насовать много платформоспецифичного.

> Язык, в котором в try catch можно упихнуть всю функцию, примерно так: void func() try {} catch(...) {}

Да просто как жить-то теперь?

> Язык, в котором для проброса rvalue-ссылок нужно городить огород из шаблонов и std::forward? Вместе с самими rvalue/lvalue ссылками.

о, ты слышал про std::forward, молодец. а про std::move слышал?

> Да по библиотекам, unique_ptr должен был быть очень простой, очень эффективной обёрткой над обычным указателем

Он такой и есть ))

> Вместе с тем в новой редакции появились концепты с ещё одним новым, интересным синтаксисом?

Появились, и что? Полезная штука.

template<int N>
concept power_of_two = (N & (N-1)) == 0;

template<int N = 256>
auto fft(/*...*/) requires power_of_two<N> {
    cout << "Doing fast Fourier transform by " << N << " samples." << endl;
    //...
}

проделай такое на ржавом, пример в студию.

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

562. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (571), 01-Авг-21, 08:36 
Зря спорите, по хитровыкрученным конструкциям оба хороши.
Ответить | Правка | Наверх | Cообщить модератору

628. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним зеленый (?), 02-Авг-21, 13:44 
>проделай на расте

Я не тот чел, но вот константная функция которая вычисляется во время компиляции.

const fn power_of_two(n: u32) -> u32 {
    if n & (n-1) != 0 { panic!("oops"); }
    return n;
}

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

655. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Кир (?), 04-Авг-21, 00:22 
Нет, мне не нужно, чтобы функция вычислялась в компайл-тайме, мне нужно, чтобы компилятор проверил, что шаблон параметризуется не абы каким целым N, а степенью двойки. А работать функция должна в рантайме, выполняя N-точечное БПФ на данных, скажем, читаемых из файла.
Ответить | Правка | Наверх | Cообщить модератору

661. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним зеленый (?), 05-Авг-21, 20:42 
Пока не запилили в языке, вот таким макросом можно:

macro_rules! const_assert {
    ($x:expr $(,)?) => {
        const _: [(); 0 - !{ const ASSERT: bool = $x; ASSERT } as usize] = [];
    };
}

Это ассерт статических значений - стадии компиляции. (Из крейта static_assertions)
Ответить | Правка | Наверх | Cообщить модератору

662. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Кир (?), 05-Авг-21, 23:33 
Мои глаза.... Ты должен мне глаза!
Ответить | Правка | Наверх | Cообщить модератору

666. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Ф1 (?), 06-Авг-21, 13:58 
> Мои глаза.... Ты должен мне глаза!

Как художник художнику, у нас C++ программистов в этих глазах такое бревно, что должно быть стыдно такое про раст писать.

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

667. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 07-Авг-21, 11:17 
Чем-то отличается от устаревшего?

#define STATIC_ASSERT(COND,MSG) typedef char static_assertion_##MSG[(COND)?1:-1]

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

668. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Кир (?), 07-Авг-21, 14:45 
Серьезно? Смотри, static_assert в C++:

template<int N = 256>
auto fft(/*...*/) {
    static_assert((N & (N-1)) == 0, "Assert message");
    cout << "Doing fast Fourier transform by " << N << " samples." << endl;
    // ...
}

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

669. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 07-Авг-21, 17:49 
> Серьезно? Смотри, static_assert в C++:
>
template<int N = 256> 
> auto fft(/*...*/) {
>     static_assert((N & (N-1)) == 0, "Assert message");


"Серьезно? Смотри, жопа!"
Он привел _реализацию_ static_assert на мкаросах (а не вызов
const_assert!(std::mem::size_of::<String>() == 24);)

ты - просто вызов (реализованной где-то в недрах компилятора).

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

670. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Кир (?), 09-Авг-21, 02:30 
Ты не поверишь, какой магии можно накрутить в C++, но разве этим стоит хвастаться? По-моему, реализованный в компиляторе static_assert в миллион раз лучше всяких коловерчений на расте, не говоря уж про концепты. Именно эту мысль и хотелось подчеркнуть )
Ответить | Правка | Наверх | Cообщить модератору

52. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Аноним (52), 29-Июл-21, 23:23 
Какой язык выбрать новичку для изучения, чтобы потом грести бабло лопатой? rust, haskell, js, vlang, crystal, zig, java? Как я понимаю большие деньги можно заработать в кровавом энтерпрайзе, а они любят джавку, поэтому выбирать и не приходится. Только java?
Ответить | Правка | Наверх | Cообщить модератору

57. "Выпуск языка программирования Rust 1.54"  +8 +/
Сообщение от Аноним (46), 29-Июл-21, 23:26 
Выбирать лучше предметную область, а не язык.
Ответить | Правка | Наверх | Cообщить модератору

62. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 29-Июл-21, 23:32 
Бред сказал... тип ну например он выбрал веб и тут... бац!!!
PHP
Python
Ruby
Бац
Java
C#
Бац бац
Go

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

64. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноньимъ (ok), 29-Июл-21, 23:34 
> Бред сказал... тип ну например он выбрал веб и тут... бац!!!

Javascript.

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

67. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 29-Июл-21, 23:34 
Typescript
Бац бац
Ответить | Правка | Наверх | Cообщить модератору

69. "Выпуск языка программирования Rust 1.54"  +3 +/
Сообщение от Аноньимъ (ok), 29-Июл-21, 23:35 
Вжух! И в продакшен!
Ответить | Правка | Наверх | Cообщить модератору

317. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (316), 30-Июл-21, 12:15 
Вжух и в продакшен - это Electron.
Ответить | Правка | Наверх | Cообщить модератору

72. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (46), 29-Июл-21, 23:42 
Веб - слишком широкое понятие. Там например есть и фронт, и бэк. Поэтому странно просто выбрать "веб". Это как выбрать "прикладное программирование". Лучше чем ничего, потому что отсекает какое-то множество языков, но всё ещё недостаточно специализировано, чтобы остановиться на паре.
Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

73. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Хан (?), 29-Июл-21, 23:44 
А это уже абстракция реального мира за который так критикуют ООП они могут быть сколь угодно вложенными друг в друга, совсем другое дело манямирки зумеров у них все просто и понятно... ровно до того момента написания кода
Ответить | Правка | Наверх | Cообщить модератору

63. "Выпуск языка программирования Rust 1.54"  +3 +/
Сообщение от Аноньимъ (ok), 29-Июл-21, 23:33 
> Какой язык выбрать новичку для изучения, чтобы потом грести бабло лопатой?

Русский, английский. Язык бизнес отношений и социальных связей.

>rust, haskell, js, vlang, crystal, zig, java?

Точно не поможет.

> Как я понимаю большие деньги
> можно заработать в кровавом энтерпрайзе

Нельзя.

Какие-то особые доходы есть сейчас у "блокчейн девелоперов", криптография вот это всё.
И, чуть поскромнее в машинном обучении и ИИ.
Попробуйте поучиться контракты для эфира писать.

Когда заработаете много денег отпишитесь, дам кошелёк для доната.

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

91. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 00:15 
У нас только в банковском ИТ секторе водятся деньги, а там Java и C#

Все остальное это или 30-50 тыщ на госконторах или кукишь в статапах из сколково

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

298. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от RomanCh (ok), 30-Июл-21, 10:08 
А "у нас" это где? Учитывая что сейчас можно удалённо работать примерно где угодно и деньги там отличаются на порядок. И это вовсе не говномешалки блокчейна или стартупы с "гибким графиком" на котором вас будут гнуть во все стороны в любое время дня и ночи.

Да и по ЯП особо плотного зажима в отрасли вроде как нет. Нормальным спецам платят везде.

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

389. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 18:01 
В рфии на полную ставку официально, а так да аутсорс интернационален... но ипотеку под него не возьмешь((( таки дела
Ответить | Правка | Наверх | Cообщить модератору

443. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от RomanCh (ok), 30-Июл-21, 21:10 
> В рфии на полную ставку официально, а так да аутсорс интернационален... но

Вы что, эникей что-ли? Сейчас на удалёнку берут в обычные организации где стандартное 5/2 и раньше все ходили в офис, но теперь то же самое из дома. Сам в такой работаю, у нас уже пол отдела в офисе ни разу не было и контора на несколько сот человек приросла с начала ковида. Понятное дело что там полный соцпакет и т.д. И таких контор на рынке вообще-то не одна и не две, а чуть более чем дофига и кадровый дефицит серьёзный.

> ипотеку под него не возьмешь((( таки дела

Мне тут недавно банк где зарплатный проект ипотеку на 25 млн. предлагал. Такие дела.

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

444. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (547), 30-Июл-21, 21:18 
Если вбелую через ИП работать, и ИП больше, чем пара лет - никаких проблем нет.
Ответить | Правка | К родителю #389 | Наверх | Cообщить модератору

499. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от mma (?), 31-Июл-21, 06:52 
>У нас только в банковском ИТ секторе водятся деньги, а там Java и C#

Может у вас местные "царьки" бизнеса до сих пор живут по принципу рабовладельцев рассуждая "зачем босоте платить больше если все равно ни куда не денутся", но как мне кажется таких уже давно накрыл кадровый голод. Последних несколько лет толковый бизнес всех кто хочет, умеет и самое главное может у таких увел. Сейчас бьются между собой подымая планки годовых доходов. И условия все: хочешь переезд, хочешь удаленка, хочешь особый график, некоторые идут уже дальше, например "а собирайтесь как вы всей группой и поработайте в рамках рабочего расписания пару недель из крыма, сочи или турции, заодно отдохнете, вот вам билеты и гостиница"

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

>Все остальное это или 30-50 тыщ на госконторах или кукишь в статапах из сколково

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

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

65. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Хан (?), 29-Июл-21, 23:34 
В кровавом только два языка жабка и дотнет
Ответить | Правка | К родителю #52 | Наверх | Cообщить модератору

289. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Онаним (?), 30-Июл-21, 09:38 
Пых ещё, как ни странно. Почти во всех кровавых ныне там, где нужна пристойная морда.
Ответить | Правка | Наверх | Cообщить модератору

366. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 16:39 
Пых никуда не делся и все так же монопольно властвует в сети со своими то 70% то 80%
Ответить | Правка | Наверх | Cообщить модератору

632. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (630), 02-Авг-21, 15:00 
Да. Ентерпрайзу плевать на язык, он деньги делает и время экономит, поэтому использует языки с мощными фреймворками. А инты в циклах, кто быстрее, пацаны на форумах считают ...
Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

288. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Онаним (?), 30-Июл-21, 09:37 
Английский.
В худшем случае - китайский.
Ответить | Правка | К родителю #52 | Наверх | Cообщить модератору

465. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от freecoder (?), 30-Июл-21, 23:34 
Выбирай Rust и осваивай разработку под Solana или Polkadot.
Ответить | Правка | К родителю #52 | Наверх | Cообщить модератору

58. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (58), 29-Июл-21, 23:29 
Всё также полдня собирается?
Ответить | Правка | Наверх | Cообщить модератору

66. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (46), 29-Июл-21, 23:34 
Бесплатно ништяков не бывает, за всё надо чем-то платить. Был бы Rust как Go - собирался бы так же быстро, как и Go.
Ответить | Правка | Наверх | Cообщить модератору

70. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 29-Июл-21, 23:35 
В чем реальное преимущество Rust над Gо?
Ответить | Правка | Наверх | Cообщить модератору

77. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (80), 29-Июл-21, 23:48 
Го не орут на каждом шагу что безопасный. Хотя куда уж более безопасный.
Ответить | Правка | Наверх | Cообщить модератору

81. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Хан (?), 29-Июл-21, 23:52 
Ну да, они просто им пользуются... а не мечтают изобрести чудоязык
Ответить | Правка | Наверх | Cообщить модератору

513. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от anonymous (??), 31-Июл-21, 12:13 
Я пользуюсь Go и всё мечтаю заиметь immutable как в Rust :(
Ответить | Правка | Наверх | Cообщить модератору

82. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (46), 29-Июл-21, 23:53 
Преимущество в одном контексте является недостатком в другом. Rust как язык мощнее Go, но если команда на 75% из джунов, то это минус. Джуны на Go напишут лучше и быстрее, чем на Rust.
Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

83. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 29-Июл-21, 23:56 
Так Go лучше получается?

И кстати да, за широкими как галактика возможностями это к C++, но это вещь в себе

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

99. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 00:38 
> Так Go лучше получается?

Го хорошо подходит для написания сетевых сервисов.
Он именно для этого и создавался.
Ну или для чего-то с интенсивным IO.

Для всего остального, уже не так интересно.

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

136. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 02:27 
Ниша Go уже давно обозначена...

А для чего хорошо подходит Rust?

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

197. "Выпуск языка программирования Rust 1.54"  +3 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 04:13 
Раст универсальный, тоесть для всего.

Впрочем, время написания на нём больше чем на динамических языках вроде питона жс или лиспа. По слухам. Надо бы проверить.

Поэтому видимо не очень для прототипирования, и для каких-то наколенных скриптов.

В тоже время есть патерн матчинг, и макросы, так что может быть и с этим всё окей.

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

235. "Выпуск языка программирования Rust 1.54"  +4 +/
Сообщение от Аноним (246), 30-Июл-21, 05:44 
Что лучше - лопата или экскаватор?

Правильно, зависит от задачи.

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

556. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Kuku (?), 01-Авг-21, 00:46 
Так раст - это и есть лопата, в отличие от экскаватора Го. По скорости разработки, конечно. Зато потом скорость выполнения программ будет аж в 2-3 раза выше. Это ж жуть какая производительность!! ))
Ответить | Правка | Наверх | Cообщить модератору

566. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (571), 01-Авг-21, 08:40 
Так написанно как будто го может на порядки ускорить разработку, такое видел только со скриптовыми языками и с готовыми библиотеками под задачу.
Ответить | Правка | Наверх | Cообщить модератору

277. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (277), 30-Июл-21, 09:03 
>В чем реальное преимущество Rust над Gо?

Ты ещё С++ с PHP сравни.

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

528. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Хан (?), 31-Июл-21, 15:33 
Не могу, PHP интерпретируемый ЯП, C++ компилируемый ЯП

А вот Rust и Go можно оба компилируемые, оба с GC в исполняемом файле, оба с недоООП, оба системные

Только вот Go показал себя как годную технологию, а Rust как манямирок для идиотов вроде тебя

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

531. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 31-Июл-21, 16:04 
> А вот Rust и Go можно
> оба с GC в исполняемом файле,
> оба системные

Все продолжаешь газифицировать лужи?

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

532. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (349), 31-Июл-21, 16:17 
Про GC в расте это тролинг?
Ответить | Правка | К родителю #528 | Наверх | Cообщить модератору

557. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Kuku (?), 01-Авг-21, 00:48 
Там просто статический ГЦ. Кстати, он не всегда лучше динамического ))
Ответить | Правка | Наверх | Cообщить модератору

567. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (571), 01-Авг-21, 08:45 
Нет там ни какого статического GC. Там точно такой же контроль времени жизни и использование raii как и в C++. Отличие только в жестком контроле компилятора над ссылками и в перемещении вместо копирования по умолчанию.
Ответить | Правка | Наверх | Cообщить модератору

616. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Kuku (?), 02-Авг-21, 11:23 
Ты элементарной грамоте научись сначала, а потом уже будешь разглагольствовать о том, есть там GC или нет.
Ответить | Правка | Наверх | Cообщить модератору

622. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (571), 02-Авг-21, 12:29 
Если человеку нечего сказать по существу он резко становится громотеем. А настоящий статический GC конечно были попытки реализовать, но что-то реальное получилось только на регионах https://en.m.wikipedia.org/wiki/Region-based_memory_management и толком нигде не прижилось.  
Ответить | Правка | Наверх | Cообщить модератору

71. Скрыто модератором  –6 +/
Сообщение от Хан (?), 29-Июл-21, 23:36 
Ответить | Правка | Наверх | Cообщить модератору

76. Скрыто модератором  +3 +/
Сообщение от Ненавижу SJW (?), 29-Июл-21, 23:47 
Ответить | Правка | Наверх | Cообщить модератору

79. Скрыто модератором  –4 +/
Сообщение от Хан (?), 29-Июл-21, 23:49 
Ответить | Правка | Наверх | Cообщить модератору

95. Скрыто модератором  +2 +/
Сообщение от Rev (?), 30-Июл-21, 00:34 
Ответить | Правка | Наверх | Cообщить модератору

112. Скрыто модератором  –1 +/
Сообщение от Хан (?), 30-Июл-21, 01:19 
Ответить | Правка | Наверх | Cообщить модератору

141. Скрыто модератором  +1 +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:33 
Ответить | Правка | Наверх | Cообщить модератору

146. Скрыто модератором  –2 +/
Сообщение от Хан (?), 30-Июл-21, 02:43 
Ответить | Правка | Наверх | Cообщить модератору

153. Скрыто модератором  +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:53 
Ответить | Правка | Наверх | Cообщить модератору

169. Скрыто модератором  –3 +/
Сообщение от Хан (?), 30-Июл-21, 03:18 
Ответить | Правка | Наверх | Cообщить модератору

85. "Выпуск языка программирования Rust 1.54"  –4 +/
Сообщение от Хан (?), 30-Июл-21, 00:01 
Если долго вглядываться в код на расте, скоро раст начнет вглядываться в тебя
Ответить | Правка | Наверх | Cообщить модератору

96. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Аноним (96), 30-Июл-21, 00:35 
Виджетов нет, IDE нет. Софта на расте тоже не видно, так наколенные поделки качества хуже чем на питоне
Ответить | Правка | Наверх | Cообщить модератору

100. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 00:40 
> Виджетов нет, IDE нет. Софта на расте тоже не видно, так наколенные
> поделки качества хуже чем на питоне

Есть забытое искусство писать без IDE, функциональные языки позволяют это делать продуктивно.

Ну и таки, интеграция с VScode у раста отличная. Есть и Эклипс например. Чего тебе ещё собака надо?

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

156. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (156), 30-Июл-21, 03:00 
Есть забытое исскуство работать с памятью. Но это конечно другое.

IDE я не панацея от всего. Но элементарно хочется не просто подсветку синтаксиса, а контекстную навигацию, контекстный рефакторинг и элементарно встроенную документацию.

VSCode на минутку вообще ниразу ни IDE, это редактор текста с подсветкой синтаксиса. Он вообще ничего не умеет. Нужно тянуть васянские конфликтующие между собой плагины и мудохаться с всяки *опа сприптом. Писать код в броузере - жуйте сами.

Эклипс? Это то чудовище у которого по непонятным причинам вечно что-то слетает? То индексация то ещё чего. Спасибо, нэнадо.

Что до emacs, то опять таки, поддержка базовая. Просто поставить и наслаждаться языком не выйдет. Вечное мудохавство. Нафига оно тогда надо если есть нормальные языки где с этим всё впорядке.

C/C++ нет никаких проблем. А в современных плюсах даже не нужно забытое исскуство работы с памятью. Этих проблем там нет уже 100 лет в обед.

Так что собаки берите это ржавое и топайте в будку.

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

201. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 04:22 
>Есть забытое исскуство работать с памятью. Но это конечно другое.

Это как искусство вспахивать поле лопатой.
И не исскуство, и хорошо никогда не получалось.

>а контекстную навигацию, контекстный рефакторинг и элементарно встроенную документацию.

Для раста этого нет?

>Нафига оно тогда надо если есть нормальные языки где с этим всё впорядке.

С емасом всё в порядке, или с эклипсом?

>C/C++ нет никаких проблем.

Ну нет так нет. Главное 3 раза по 3 перед сном повторить.

>Так что собаки берите это ржавое и топайте в будку.

Злой вы, как собака.

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

353. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (349), 30-Июл-21, 16:04 
>Есть забытое исскуство работать с памятью. Но это конечно другое.

Это миф, до сих пор всплывают уязвимости в коде с возрастом больше десяти лет.

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

585. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от РЭЮЭШЬ (?), 01-Авг-21, 19:14 
Idea вполне ок с растом.
Ответить | Правка | К родителю #156 | Наверх | Cообщить модератору

107. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (103), 30-Июл-21, 01:08 
>Виджетов нет

60FPS.

>IDE нет

Qt Creator + rust-analyzer

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

161. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (156), 30-Июл-21, 03:06 
А можно подробнее про QtCreator и раст?
Ответить | Правка | Наверх | Cообщить модератору

284. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 09:26 
Скорее всего, имеется ввиду поддержка LSP. То есть QtCreator точно так же как и VSCode при просмотре исходников подгружал и выполнял код. :) https://opennet.ru/55159-rust
Ответить | Правка | Наверх | Cообщить модератору

529. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 31-Июл-21, 15:35 
Растоманы советуют плюсовую RAD QtCreator для разработки на расте...Теперь я слышал все
Ответить | Правка | К родителю #107 | Наверх | Cообщить модератору

533. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (349), 31-Июл-21, 16:21 
Плюсисты давно сидят в IDE написаных на яве, шарпе и даже на лиспе.
Ответить | Правка | Наверх | Cообщить модератору

109. "Выпуск языка программирования Rust 1.54"  –4 +/
Сообщение от Хан (?), 30-Июл-21, 01:18 
Нет софта нет проблем...стабильность!
Ответить | Правка | К родителю #96 | Наверх | Cообщить модератору

142. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:37 
Барин за слова не отвечает: Rust Language Server в виде Rust analyzer 100 лет как есть. Можно что на Vim что на VS Code писать с одинаковой степенью интеграции. VS Code даже дебажить через gdb может, если напрягает запуск с терминала.
Ответить | Правка | К родителю #96 | Наверх | Cообщить модератору

168. "Выпуск языка программирования Rust 1.54"  –4 +/
Сообщение от Аноним (156), 30-Июл-21, 03:17 
Барин тупит?

Где контекстный поиск? Где контекстный рефакторинг? Где интерактивная справка? Или у тебя ide это только подстветка синтаксиса.

Не удивительно что ты VSCode к IDE приплёл. Потому что кроме подсветки синтаксиса оно ничего не умеет. Или обмазывайся васянскими дырявыми тырящими всё на свете плагинами. Ни в одной серьёзной канторе тебе такое не позволят.

С language server. Тоже мне. Нахрена мне ещё сервер какой-то там пускать если у нормальных языков и так всё без проблем. Оно это только ржавое не хочет ворочаться нигде.

Но что меня обрадовало. Тут упомянули что QtCreator что-то может. А это уже заявка. Если доведут поддержку до ума это будет действительно прорыв для rust.

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

294. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (294), 30-Июл-21, 09:47 
> Барин тупит?

Да, барин тупит вместо того что бы посмотреть возможности VSCode c плагинами.
Барин не понимает, что IDE это и есть редактор кода с плагинами в большинстве своем.
По крайней мере, мне не извесно ни одного монолитного (без плагинов) IDE.

>Потому что кроме подсветки синтаксиса оно ничего не умеет.

Вот тут барин просто нагло врет.

>С language server. Тоже мне. Нахрена мне ещё сервер какой-то там пускать если у нормальных языков и так всё без проблем.

А вот тут барин опять проявил свою тупость, лень и незнание. Т.к.  нормальные языки и IDE с поддержкой нормальных языков не стесняються пользоваться серверами языков. Барин может загуглить что такое clangd, например, и в каких IDE он используется.

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

357. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (349), 30-Июл-21, 16:13 
>Где контекстный поиск? Где контекстный рефакторинг? Где интерактивная справка? Или у тебя ide это только подстветка синтаксиса.

Все это и больше, в плагине руста для иде от jetbrains. У меня например усановлен в clion и работает по моему лучше чем сам clion с С++.

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

586. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от РЭЮЭШЬ (?), 01-Авг-21, 19:15 
нечеловечески чудовищно плюсую!
Ответить | Правка | Наверх | Cообщить модератору

399. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Sem (??), 30-Июл-21, 18:37 
У меня VSCode всё это умеет. У нас разные VSCode?
Ответить | Правка | К родителю #168 | Наверх | Cообщить модератору

406. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (547), 30-Июл-21, 18:53 
> Где контекстный поиск? Где контекстный рефакторинг? Где интерактивная справка?

neovim + lsp + language server + конфигурация (neovim_rust, например). Всё есть, но требуется навык работы с вимом, да.

Если хочется прям IDE, то IntelliJ Rust есть.

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

247. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (24), 30-Июл-21, 06:41 
Вариантов для создания UI полно. Вопрос в том, зачем писать тот UI на языке, который для этого плохо подходит (Rust, C, C++, Java, etc)
Оптимальнее использовать core на Rust и что угодно иное для интерфейса

По IDE:
- rust analyzer действительно мощная штука, активно развивается.
vscode, vim, etc
- IntelliJ Rust, официальный плагин от JetBrains
Интересен своим собственным парсером, не лишен интеграции cargo check

Всё отлично с IDE.

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

326. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (316), 30-Июл-21, 13:29 
>зачем писать тот UI на языке, который для этого плохо подходит (Rust, C, C++, Java, etc)

Из перечисленных, C++ для (G)UI подходит лучше всего. Потому, что Qt, FLTK, FOX и менее известные.

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

456. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 30-Июл-21, 23:24 
Сила Qt как раз в выносе интерфейса в отдельный декларативный язык
А на виджеты они уже в целом забили
Ответить | Правка | Наверх | Cообщить модератору

97. "Выпуск языка программирования Rust 1.54"  +4 +/
Сообщение от Аноним (96), 30-Июл-21, 00:36 
https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust - это вот всё кто разгребать будет? Или они только и могут на других вину сваливать?
Ответить | Правка | Наверх | Cообщить модератору

98. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (96), 30-Июл-21, 00:36 
И это наминутку не в софте на расте. Это в САМОМ расте
Ответить | Правка | Наверх | Cообщить модератору

102. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 00:49 
> И это наминутку не в софте на расте. Это в САМОМ расте
>Deno is a runtime for JavaScript and TypeScript that uses V8
>Это в САМОМ расте

Чё?

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

257. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (257), 30-Июл-21, 07:54 
> И это наминутку не в софте на расте. Это в САМОМ расте

В первой же дыре код на _Си_ "A flaw was discovered in GNU libiberty within demangle_path() in rust-demangle.c". В остальном дыры в unsafe-блоках  каких-то левых crate-модулей.

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

283. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Совершенно другой аноним (?), 30-Июл-21, 09:15 
CVE-2020-36317, CVE-2020-36318, CVE-2020-36323, CVE-2021-31162, CVE-2021-28875 - CVE-2021-28879 тоже левые крейты? И как понять, какие крейты левые, а какие - одобренные к использованию?
Ответить | Правка | Наверх | Cообщить модератору

410. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (547), 30-Июл-21, 19:00 
Это всё дыры в unsafe-коде. Залатают.

Фишка в том, что unsafe-код базовых библиотек конечен, за несколько лет всех блох словят. Главное не добавлять нового unsafe-кода без крайней нужды.

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

450. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от пейсатель unsafe (?), 30-Июл-21, 22:14 
Ничего у вас не получится - unsafe в Расте будет всегда!

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

451. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от пейсатель unsafe (?), 30-Июл-21, 22:18 
Да здравствует unsafe в Расте!
Ответить | Правка | Наверх | Cообщить модератору

458. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (24), 30-Июл-21, 23:25 
Ну так в этом и смысл
В либах он есть, а программист чаще всего не нуждается

В любом случае, это лучше 100% unsafe

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

611. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Совершенно другой аноним (?), 02-Авг-21, 08:49 
> Ну так в этом и смысл
> В либах он есть, а программист чаще всего не нуждается

Возможно, но пока, судя по количеству CVE, и по просмотру некоторых проектов, складывается, возможно не верное, впечатление, что что-либо сделать на Rust нетривиальное требует этого самого unsafe. Т.е. количество unsafe-кода явно больше, чем это декларируется.

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

612. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Совершенно другой аноним (?), 02-Авг-21, 08:52 
> Это всё дыры в unsafe-коде. Залатают.

Ну а так - и в C, C++ и прочих языках, в библиотеках тоже ошибки исправляются, хотя это иногда кажется невероятным.

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

110. "Выпуск языка программирования Rust 1.54"  +8 +/
Сообщение от Аноним (110), 30-Июл-21, 01:18 
Раньше все отнекивался от раста и думал, что это очередной распиаренный проходняк. Но на днях решил попробовать на вкус, что это такое. Скачал компилятор, открыл растбук и начал писать код. И знаете, что? Мне понравилось, такого хорошего языка я еще не встречал. С первого взгляда зацепил, зараза. Поэтому желаю языку дальнейшего развития, чтобы однажды перейти на него полностью.
Ответить | Правка | Наверх | Cообщить модератору

124. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (165), 30-Июл-21, 02:02 
Какой-то п0pн0рассказ...
Ответить | Правка | Наверх | Cообщить модератору

130. Скрыто модератором  –3 +/
Сообщение от Аноним (588), 30-Июл-21, 02:22 
Ответить | Правка | Наверх | Cообщить модератору

135. Скрыто модератором  –1 +/
Сообщение от Аноним (110), 30-Июл-21, 02:26 
Ответить | Правка | Наверх | Cообщить модератору

157. Скрыто модератором  +/
Сообщение от Аноним (157), 30-Июл-21, 03:01 
Ответить | Правка | Наверх | Cообщить модератору

427. Скрыто модератором  –1 +/
Сообщение от Аноним (-), 30-Июл-21, 19:50 
Ответить | Правка | Наверх | Cообщить модератору

446. Скрыто модератором  +/
Сообщение от Аноним (157), 30-Июл-21, 21:44 
Ответить | Правка | Наверх | Cообщить модератору

459. Скрыто модератором  +/
Сообщение от Аноним (24), 30-Июл-21, 23:29 
Ответить | Правка | К родителю #157 | Наверх | Cообщить модератору

467. Скрыто модератором  +/
Сообщение от Аноним (157), 30-Июл-21, 23:36 
Ответить | Правка | Наверх | Cообщить модератору

159. Скрыто модератором  –1 +/
Сообщение от Аноним (156), 30-Июл-21, 03:03 
Ответить | Правка | К родителю #135 | Наверх | Cообщить модератору

163. Скрыто модератором  +/
Сообщение от Аноним (110), 30-Июл-21, 03:09 
Ответить | Правка | Наверх | Cообщить модератору

176. Скрыто модератором  +/
Сообщение от Аноним (156), 30-Июл-21, 03:32 
Ответить | Правка | Наверх | Cообщить модератору

274. Скрыто модератором  +1 +/
Сообщение от Прорыв_запарты_фелиал (ok), 30-Июл-21, 08:51 
Ответить | Правка | К родителю #163 | Наверх | Cообщить модератору

314. Скрыто модератором  +1 +/
Сообщение от anonymous (??), 30-Июл-21, 11:45 
Ответить | Правка | Наверх | Cообщить модератору

411. Скрыто модератором  +/
Сообщение от Аноним (547), 30-Июл-21, 19:01 
Ответить | Правка | К родителю #274 | Наверх | Cообщить модератору

460. Скрыто модератором  +/
Сообщение от Аноним (24), 30-Июл-21, 23:30 
Ответить | Правка | К родителю #274 | Наверх | Cообщить модератору

604. Скрыто модератором  +/
Сообщение от Прорыв_запарты_фелиал (ok), 02-Авг-21, 02:28 
Ответить | Правка | К родителю #274 | Наверх | Cообщить модератору

445. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (445), 30-Июл-21, 21:42 
> Потому что растоманы лицемеры. Но не удалил, так
> что его можно найти и раскрыть.

А может, потому что ты - очередной опеннетный невежда?
Теоремы Райса, Геделя (или если для совсем уж школьников и первокурсников: "проблема остановки")?
Не, не слышали ...

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

426. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 19:49 
Расобот - это бывший Си плюс-плюсник перешедший на Раст. Раньше они тут, в двоём или втроём, целые разговорные спектакли устраивали. В конце каждого спецтакля человек интересовавшийся Растом клятвенно обещал перейти на Раст.
Ответить | Правка | К родителю #130 | Наверх | Cообщить модератору

134. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 02:26 
Брат жив?
Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

145. "Выпуск языка программирования Rust 1.54"  +3 +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:40 
IMHO, лучше всего начинать читать Книгу (The Book https://doc.rust-lang.org/book/) там 20 глав, они покрывают 100% всего что есть в раст и дают понять где смотреть то, чего в книге нет.
Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

408. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (547), 30-Июл-21, 18:56 
Только начинать надо сразу с главы 4 :)
Ответить | Правка | Наверх | Cообщить модератору

174. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Аноним (156), 30-Июл-21, 03:25 
Что ты написал? Hello wrold копипастом?

Молодец, возьми пирожок с полочки

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

266. "Выпуск языка программирования Rust 1.54"  +3 +/
Сообщение от Аноним (266), 30-Июл-21, 08:38 
С прозрением и добро пожаловать в лучший ЯП ближайших как минимум двух десятилетий.
Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

352. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (352), 30-Июл-21, 16:00 
> Раньше все отнекивался ... думал, что  очередной проходняк. Но на днях решил попробовать на вкус ...И знаете, что? Мне понравилось!

Напоминает: "Я сначала как и все был уверен что это развод!... Сам был удивлен когда... Это действительно работает!!!"

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

375. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (110), 30-Июл-21, 17:26 
> Напоминает: "Я сначала как и все был уверен что это развод!... Сам был удивлен когда... Это действительно работает!!!"

Развод подразумевает какой-то ушерб, зачастую финансовый, но в этом случае я ничего не потерял, а наоборот, даже приобрел. Странные у вас разводы.

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

430. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 19:54 
>Развод подразумевает какой-то ушерб, зачастую финансовый, но в этом случае я ничего не потерял, а наоборот, даже приобрел.

Неважно, сама суть пропоганды Раста та же, и это вызывает подсознательное неоверие. Ах да, потерянное время на изучение Раста не считается?

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

449. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (352), 30-Июл-21, 21:56 
> Неважно, сама суть пропоганды Раста та же

+1

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

462. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 30-Июл-21, 23:32 
Отзыв по языку в новости о языке
ВЕЛИКАЯ ПРОПАГАНДА
Ответить | Правка | К родителю #430 | Наверх | Cообщить модератору

508. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Ф1 (?), 31-Июл-21, 10:14 
>Ах да, потерянное время на изучение Раста не считается?

Для С++ программиста это время точно не потерянное, даже если он никогда больше не будет писать на расте, во первых очень полезно посмотреть как все работает в очень близком, но намного более жестко контролируемом языке, во вторых рано или поздно в C++ добавят аналоги borrow checker.

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

365. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (365), 30-Июл-21, 16:33 
Сделай Redox на все ноутбуки
Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

377. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 17:27 
> Сделай Redox на все ноутбуки

Сделай Hurd на все ноутбуки.


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

545. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 31-Июл-21, 22:50 
Есть Minix, есть DFBSD из гибридномикроядерных которые уже работают... зачем нужен протухший 30 лет назад Hurd?

А у растоманов кроме Redox есть хоть что то?

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

551. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 01-Авг-21, 00:15 
>> на все ноутбуки
> Есть Minix, есть DFBSD из гибридномикроядерных которые уже работают...

Мощный пук! Респект!

> А у растоманов кроме Redox есть хоть что то?

Ты сейчас пишешь с оси конца 70х начала 80х? Или это был еще одинм мощный выброс метана?


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

595. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 01-Авг-21, 23:47 
Че там с Redox?
Ответить | Правка | Наверх | Cообщить модератору

123. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Аноним (165), 30-Июл-21, 02:01 
> Инкрементальная компиляция была отключена в выпуске 1.52.1 из-за выявления скрытых ошибок

Как так-то?! Раст же безопасный! Или раст не на расте растаманы пишут?

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

137. "Выпуск языка программирования Rust 1.54"  +7 +/
Сообщение от Второе Я (?), 30-Июл-21, 02:28 
Раст не панацея. От неосиляторов с опеннета, вот, например, - не спасает.
Ответить | Правка | Наверх | Cообщить модератору

166. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Хан (?), 30-Июл-21, 03:11 
И откуда на опеннете столько зумеров, считающих что здесь DTF какой нибудь где все друг друга хвалят и восторгаются хеллоуворлдами?

Любое обсуждение ЯП это ожесточенные споры, обвинения в некомпетности, троллинг и тонны лулзов причем жоских и это нормально

И когда комьюнити сливается сливается весь ЯП, в этом смысл холиваров

А с растоманами даже спорить не интересно, чуть что убегают и прячутся в своем манямирке где все безопасно и ничто не течет

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

175. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (156), 30-Июл-21, 03:28 
> А с растоманами даже спорить не интересно, чуть что убегают и прячутся в своем манямирке где все безопасно и ничто не течет

Вот тут ты прав.

Там выше было интерересно. Человек спросил кто вот это будет разгребать https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust

И что? его сообщение скрыл модератор, сделав вид что в растомире всё нормально и безопасно.

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

178. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (156), 30-Июл-21, 03:34 
Спорим это сообщение он тоже спрячет :D
Ответить | Правка | Наверх | Cообщить модератору

255. "Выпуск языка программирования Rust 1.54"  +3 +/
Сообщение от Аноним (257), 30-Июл-21, 07:49 
> Там выше было интерересно. Человек спросил кто вот это будет разгребать https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust
> И что? его сообщение скрыл модератор, сделав вид что в растомире всё
> нормально и безопасно.

А вы сами тот список читали? Там дыры в левых проектах и в областях, не касающихся областей, в которых Rust даёт возможность поднять безопасность. В первом CVE-2021-3530 дыра в коде на языке _Си_ в не имеющей никакой связи с Rust библиотеке - "A flaw was discovered in GNU libiberty within demangle_path() in rust-demangle.c". Во втором и третьем      дыры в  левой библиотеке в логике разбора HTTP-заголовка Content-Length и расчёта размера chunk-ов. В четвёртом дыра в JavaScript-движке Deno в логике загрузки модулей.  И т.п.

Какое отношение эти дыры имеют к Rust? Если бы код тех проектов был на Си, можно предположить, что дыр бы там было в три раза больше, из-за переполнений буфера и кривой работы с указателями.

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

265. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (80), 30-Июл-21, 08:35 
Т.е. вы тоже считаете что безопасность это просто слово, которое надо всем повторять, а не работа, которую надо делать? Безопасный язык, который на каждый чих вытягивают миллион пакетов, как какой-нибудь nodejs или php с известными уязвимостями, это просто смешно.
Ответить | Правка | Наверх | Cообщить модератору

177. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (110), 30-Июл-21, 03:33 
> Любое обсуждение ЯП это ожесточенные споры, обвинения в некомпетности, троллинг и тонны лулзов причем жоских и это нормально

Спор ради спора? А зачем? Можно и более полезными вещами заняться.

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

180. "Выпуск языка программирования Rust 1.54"  –4 +/
Сообщение от Аноним (156), 30-Июл-21, 03:39 
Тут другой вопрос. К нормальным людям. У растоманов память короткая из за наркотиков.

А вы помните когда они своего-же загнобили? Чувак там какой-то движок сайта на расте делал. Его загнобили что он не тру растоман и не по растомански пишет. Человека довели даже до того что он проект свернул послав всех.

Rust (ржавчина), как физическое явление, как процесс, токсичен и разрушителен. И такое ощущение что сообщство языка этому соответсвует.

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

182. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (110), 30-Июл-21, 03:44 
> А вы помните когда они своего-же загнобили? Чувак там какой-то движок сайта на расте делал. Его загнобили что он не тру растоман и не по растомански пишет. Человека довели даже до того что он проект свернул послав всех.

Ну справедливости ради, такое на всех языках происходит. Если ты будешь писать в Си стиле на С++, то тебя тоже никто по головке не погладит.

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

184. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Аноним (184), 30-Июл-21, 03:49 
Справедливо и ты прав. Это жутчайшая жуть писать в стиле C на C++

Тем не менее до истерики и закрытия проектов людей не доводят.

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

187. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 03:57 
Писательство в Си стиле порой вынужденно если не хочешь городить абстракции для сишных либ и потом их тестить и отлаживать

А так да, сишный код в плюсах чреват всем известными проблемами... выходы за границы массива с битьем памяти и утечками памяти, ну и макросы будь они не ладны отчего баги можно искать вечность

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

185. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 03:52 
Не спор ради спора, а по сути естественный отбор в ЯП и их фан базе... если их язык дно, а они толстенькие неженки с айфончиками тогда их чудотехнологию раздавят как катком адепты других ЯП вот с такими огроменными яелами
Ответить | Правка | К родителю #177 | Наверх | Cообщить модератору

189. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от deeaitch (ok), 30-Июл-21, 03:59 
Есть забавная история, с месяц назад. Я уже писал о том как пробовал использовать Rust в automotive. Повторятся не буду.

Но был у меня на собеседовании человек заявлявший что знает rust. Честно я думал одного взять. Для следующего поколения техники, может он поможет и подскажет то что не заметил я.

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

Я не говорю что все такие, я говорю что мне такой попался. О языке я по этому кандидату вывода не делал. Я вообще не делаю выводов. То что удобно - я использую, то что нет - не использую.

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

194. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 04:11 
Лол конечно... но что с них взять?

Асм никто в глаза не видел и не понимают к примеру что такое стек или куча, где хранятся обьявленные ими переменные, что такое массив на самом деле без абстракций и почему например он не может быть динамическим в исполняемом файле, чехарда в головах насчет что такое глобальная переменная и локальная(аля автоматическая память) или например не знают почему нужно приводить типы к одну...


Короче образование уровня Уганды и все

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

203. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от deeaitch (ok), 30-Июл-21, 04:30 
Понимаешь, мне потом кошмары реально снились от таких инопланетных технологий.
Ответить | Правка | Наверх | Cообщить модератору

212. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 04:37 
Я аж заскринил это))) но ты хоть обьяснил пареньку в чем суть?
Ответить | Правка | Наверх | Cообщить модератору

214. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от deeaitch (ok), 30-Июл-21, 04:44 
Нет, я не выдержал после того как он сказал что авторитетно может заявить что iOS это Linux и я ему могу верить потому что он специалист.

Мой мозг взорвался.

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

217. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от deeaitch (ok), 30-Июл-21, 04:49 
> Я аж заскринил это))) но ты хоть обьяснил пареньку в чем суть?

А как я мог объяснить по сути? Я даже не понимал за какую базу закрепится если там полностью инопланетяне скушали мозги. Где точка отсчёта? на основании чего эту всю кашу в голове можно разобрать? ААААААААААААААА

Зачем я про него вспомнил. Опять кошмары будут.

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

198. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 04:17 
Или спроси по приколу почему цикл никогда не вызовет переполнение стека в отличии от рекурсии
Ответить | Правка | К родителю #189 | Наверх | Cообщить модератору

206. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от deeaitch (ok), 30-Июл-21, 04:30 
Слушай, гениально. Всё, у меня на следующей неделе собеседование. Я обязательно спрошу. Классный вопрос. Спасибо.
Ответить | Правка | Наверх | Cообщить модератору

213. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 04:41 
Ну или такое, чем технически отличается глобальная переменная от статической?(спойлер... ничем... разница лишь в том что в функции известен ее адрес в исполняемом коде, а за ее пределами ее адрес не известен)
Ответить | Правка | Наверх | Cообщить модератору

215. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от deeaitch (ok), 30-Июл-21, 04:44 
Такой у меня уже есть вопрос.
Ответить | Правка | Наверх | Cообщить модератору

220. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 05:05 
Значит разрабы правильно юзают возрат из функции по ссылке на статическую переменную ибо безопасно
Ответить | Правка | Наверх | Cообщить модератору

386. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (376), 30-Июл-21, 17:57 
И юзают в другом потоке?
Ответить | Правка | Наверх | Cообщить модератору

374. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (349), 30-Июл-21, 17:18 
Если статическая внутри функции или блока кода то даже в c++ 98 отличаются так как инициалируется только если был вход в функцию, а начиная с c++ 11 еще обязаны потокобезопасно инициализироваться https://en.cppreference.com/w/cpp/language/storage_duration#...
Ответить | Правка | К родителю #213 | Наверх | Cообщить модератору

232. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 05:36 
Теперь поцелуйтесь.
Ответить | Правка | К родителю #206 | Наверх | Cообщить модератору

485. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от deeaitch (ok), 31-Июл-21, 02:41 
> Теперь поцелуйтесь.

Это ты к сладкой парочке Fracta1L и iPony обращайся, они по этому делу.

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

378. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от n00by (ok), 30-Июл-21, 17:30 

int main()
{
  for(int i = 1; ; ++i) {
    volatile int _[i];
    *_ = i;
  }
}

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

391. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (376), 30-Июл-21, 18:05 
> int _[i]

это на каком языке? не на си++ точно, на си++ так массивы можно только с константами объявлять

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

405. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 18:51 
>> int _[i]
> это на каком языке?

C99

> не на си++ точно, на си++ так массивы
> можно только с константами объявлять

Пффф. Ломать не строить! man alloca.

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

416. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (376), 30-Июл-21, 19:19 
А ничего что alloca в куче выделяет память, а не в стеке?
Ответить | Правка | Наверх | Cообщить модератору

421. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 19:38 
> А ничего что alloca в куче выделяет память, а не в стеке?

ОПИСАНИЕ
       Функция  alloca()  выделяет  size  байтов  памяти  в  стековом  кадре вызывающего. Это временное
       хранилище данных автоматически освобождается после возврата из функции, вызвавшей alloca().

https://www.opennet.ru/man.shtml?topic=alloca&category=3&rus...

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

418. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (376), 30-Июл-21, 19:25 
alloca не выделит памяти больше, чем возможно
Ответить | Правка | К родителю #405 | Наверх | Cообщить модератору

423. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 19:43 
> alloca не выделит памяти больше, чем возможно

Заблуждаетесь. Например, RPM5 в Rosa Tresh падал как раз из-за alloca() при установке пакетов с количеством фалов больше определённого.

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

486. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от deeaitch (ok), 31-Июл-21, 02:42 
>
 
> int main()
> {
>   for(int i = 1; ; ++i) {
>     volatile int _[i];
>     *_ = i;
>   }
> }
>

А сказать чего хотел? Или мы тут играем в телепатов как компилятор rust который на этапе компиляции предугадывает сколько я данных из файла в массив загружу? По крайней мере так любят утверждать некоторые фанаты.

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

500. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 31-Июл-21, 07:39 
>[оверквотинг удален]
>> {
>>   for(int i = 1; ; ++i) {
>>     volatile int _[i];
>>     *_ = i;
>>   }
>> }
>>
> А сказать чего хотел? Или мы тут играем в телепатов как компилятор
> rust который на этапе компиляции предугадывает сколько я данных из файла
> в массив загружу? По крайней мере так любят утверждать некоторые фанаты.

Скопирую контекст из сообщений, на которые я отвечал:
>>  Или спроси по приколу почему цикл
>> никогда не вызовет переполнение стека в отличии от рекурсии
> Слушай, гениально. Всё, у меня на следующей неделе собеседование.
> Я обязательно спрошу. Классный вопрос. Спасибо.

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

522. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от deeaitch (ok), 31-Июл-21, 14:59 
>[оверквотинг удален]
>>> }
>>>
>> А сказать чего хотел? Или мы тут играем в телепатов как компилятор
>> rust который на этапе компиляции предугадывает сколько я данных из файла
>> в массив загружу? По крайней мере так любят утверждать некоторые фанаты.
> Скопирую контекст из сообщений, на которые я отвечал:
>>>  Или спроси по приколу почему цикл
>>> никогда не вызовет переполнение стека в отличии от рекурсии
>> Слушай, гениально. Всё, у меня на следующей неделе собеседование.
>> Я обязательно спрошу. Классный вопрос. Спасибо.

А, вот оно что. Спасибо что контекст вернул, тут иногда его трудно отследить.

Что-ж, замечание достойное, принимается. Но поскольку мы тут стали играть в задачки со звёздочками твой пример не сработал. Давай подумаем почему?

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

534. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 31-Июл-21, 17:09 
>[оверквотинг удален]
>>> в массив загружу? По крайней мере так любят утверждать некоторые фанаты.
>> Скопирую контекст из сообщений, на которые я отвечал:
>>>>  Или спроси по приколу почему цикл
>>>> никогда не вызовет переполнение стека в отличии от рекурсии
>>> Слушай, гениально. Всё, у меня на следующей неделе собеседование.
>>> Я обязательно спрошу. Классный вопрос. Спасибо.
> А, вот оно что. Спасибо что контекст вернул, тут иногда его трудно
> отследить.
> Что-ж, замечание достойное, принимается. Но поскольку мы тут стали играть в задачки
> со звёздочками твой пример не сработал. Давай подумаем почему?

А зачем думать? У меня переполняет. Достаточно, что бы опровергнуть "никогда не вызовет переполнение". Выполнил ли кто-то ulimit -s 500000000, задал размер стека в заголовке PE образа, или же при адресации проскочили сторожевую страницу и программа завершилась "без ошибок" -- важно не это, а что она обязательно где-то упадёт. Просто изменят тип счётчика на "правильный" и она упадёт.

Она упадёт даже без цикла и с константным размером массива, потому что где-то WCHAR_MAX всего 65535, а где-то нет.

Она вообще просто так возьмёт и упадёт, потому что... смотрите внимательно за руками, что бы я не смухлевал:

Like all other architectures, x86_64 has a kernel stack for every
active thread.  These thread stacks are THREAD_SIZE (2*PAGE_SIZE) big.
https://www.kernel.org/doc/Documentation/x86/kernel-stacks

arch/x86/include/asm/page_32_types.h:#define THREAD_SIZE_ORDER    1
arch/x86/include/asm/page_32_types.h:#define THREAD_SIZE        (PAGE_SIZE << THREAD_SIZE_ORDER)

arch/x86/include/asm/page_64_types.h:#define THREAD_SIZE_ORDER    (2 + KASAN_STACK_ORDER)
arch/x86/include/asm/page_64_types.h:#define THREAD_SIZE  (PAGE_SIZE << THREAD_SIZE_ORDER)
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux...

но пока везёт и "у меня на виртуалке всё работает!"

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

570. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от deeaitch (ok), 01-Авг-21, 09:51 
> А зачем думать?

Действительно, зачем? Ведь божественный раст все спасёт. Удачи тебе ездить на авто писанное такими думателями.

p.s. ссылки твои и аргументы я рассмотрел. Ты в чём-то безусловно прав. Замечания все достойны.

Только вот нет, не упал твой весёлый цикл, прикинь. А как так?

Тут подумать бы. Но зачем? Ведь так?

p.p.s. раст валится ещё хуже кстати говоря и на более элементарных вещах. Подумать только надо. Но тут ведь "А зачем думать?"

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

574. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 01-Авг-21, 12:52 
Господин экзаменатор, я не у Вас на собеседовании. Если Вы согласились с тезисом, который по факту оказался ложным -- подумайте над этим сами. Да, "подумаем" -- это множественное число, а не только привычная манипуляторам фигура речи. Так что Ваша очередь, и нечего тут пальцы загибать, приплетая не относящийся к вопросу язык.
Ответить | Правка | Наверх | Cообщить модератору

597. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от deeaitch (ok), 02-Авг-21, 00:47 
> Господин экзаменатор, я не у Вас на собеседовании. Если Вы согласились с
> тезисом, который по факту оказался ложным -- подумайте над этим сами.
> Да, "подумаем" -- это множественное число, а не только привычная манипуляторам
> фигура речи. Так что Ваша очередь, и нечего тут пальцы загибать,
> приплетая не относящийся к вопросу язык.

Цетирую: "А зачем думать?"

Автора хоть узнали? ;)

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

621. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 02-Авг-21, 12:16 
>> Господин экзаменатор, я не у Вас на собеседовании. Если Вы согласились с
>> тезисом, который по факту оказался ложным -- подумайте над этим сами.
>> Да, "подумаем" -- это множественное число, а не только привычная манипуляторам
>> фигура речи. Так что Ваша очередь, и нечего тут пальцы загибать,
>> приплетая не относящийся к вопросу язык.
> Цетирую: "А зачем думать?"
> Автора хоть узнали? ;)

Естественно, я же помню контекст -- это мой ответ на предложение "давайте подумаем". Я не знаю, зачем мне думать о причине, из-за которой заведомо ошибочный пример не упал в частном случае -- запустить, что бы оно "работало", я тоже могу. Не вижу каких-либо подробностей о сборке и запуске. Не вижу других гипотез, лишь убеждения подумать. Не спорю, надо, значит надо. Давайте уже подумаем. :)

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

598. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от deeaitch (ok), 02-Авг-21, 00:50 
> Господин экзаменатор, я не у Вас на собеседовании. Если Вы согласились с
> тезисом, который по факту оказался ложным -- подумайте над этим сами.
> Да, "подумаем" -- это множественное число, а не только привычная манипуляторам
> фигура речи. Так что Ваша очередь, и нечего тут пальцы загибать,
> приплетая не относящийся к вопросу язык.

Не, человек, ты в принципе молодец. Отличный пример, отличное замечание. Жалко только что немного не туда и не о том. Но вообще мне понравилось и появилось дополнительно интересное.

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

623. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 02-Авг-21, 12:33 
> Жалко только что немного не туда и не о том.

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

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

329. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (316), 30-Июл-21, 13:38 
>если контроллеру не хватает памяти то он может попросить у другого через глобальные переменные....

Офигеть, прямо NUMA-кластер контроллеров!

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

192. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (110), 30-Июл-21, 04:07 
Бред какой-то. Я думал, что пригодность языка определяет его эфыктивность и удобство при решении задач, а не игра кто кого перевоняет в интернете.
Ответить | Правка | К родителю #185 | Наверх | Cообщить модератору

195. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Хан (?), 30-Июл-21, 04:11 
Вспомни D
Ответить | Правка | Наверх | Cообщить модератору

196. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 04:12 
Не перевоняет, а докажет ненужность... этл разные вещи
Ответить | Правка | К родителю #192 | Наверх | Cообщить модератору

223. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (222), 30-Июл-21, 05:14 
Хаааан, ты уже обоср@лся в каждой ветке под этой новостью. Заканчивай.
Ответить | Правка | Наверх | Cообщить модератору

207. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от deeaitch (ok), 30-Июл-21, 04:32 
Добро пожаловать в реальность.
Ответить | Правка | К родителю #192 | Наверх | Cообщить модератору

260. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (260), 30-Июл-21, 08:06 
Мне больше интересно как эти неженки смогли бы исправить ошибку в месе, которая приводила к тирингу в i3, и может других рабочих столах/вмах. Пусть эти малохольные как админы поддерживающие прости господи шиндоуз и линукс в одной конторе учат Си, С++, Ржавого, Жабу, Жабоскрипт, баш, питон и лишь потом вылезают с авторитетными комментариями. Даже создатели языков Си и С++ вели себя скромнее.
Ответить | Правка | К родителю #185 | Наверх | Cообщить модератору

218. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 04:53 
>Любое обсуждение ЯП это обвинения в некомпетности, троллинг и тонны лулзов причем жоских и это нормально

Это просто общение дебилов.
К ЯП отношения не имеет.

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

342. "Выпуск языка программирования Rust 1.54"  +3 +/
Сообщение от Ordu (ok), 30-Июл-21, 14:48 
> Любое обсуждение ЯП это ожесточенные споры, обвинения в некомпетности, троллинг и тонны лулзов причем жоских и это нормально

Смотри, я озаботился посчитать частоты ников:

$ sort tmp.txt | uniq -c | sort -n
...
      1 Совершенно другой аноним
      2 Anonnnym
      2 Ordu
      2 Rev
      2 Аноним зеленый
      2 Анонимъ
      2 Онаним
      3 adolfus
      3 ПомидорИзДолины
      6 anonymous
     11 deeaitch
     12 Кир
     13 Aukamo
     14 n00by
     20 Аноньимъ
     68 Хан
    104 Аноним

За ником Аноним прячется куча людей, он не считается. Ты на первом месте среди размахивающих шашкой, с большим отрывом от Аноньимъ, которого я бы объединил в одну группу с deeaitch, Кир, Aukamo и n00by, в группу людей умеренно размахивающих шашкой.

Это я к тому, что, действительно, в глаза бросается, что для тебя нормально превращать разговор о языках программирования в холивар. Ты эт, таблетки пить не пробовал?

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

344. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 14:57 
Оналитег однако!
Ответить | Правка | Наверх | Cообщить модератору

433. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (-), 30-Июл-21, 19:57 
Товарищ майор вам надо в отпуск. Вы заработались.
Ответить | Правка | К родителю #342 | Наверх | Cообщить модератору

183. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от deeaitch (ok), 30-Июл-21, 03:47 
Эх, а у меня почти получилось его внедрить в компании в automotive. Но нет, сыровато.

Тем не менее удачи проекту, а сообществу быть менее токсичным, перестать обвинять всех вокруг и научиться признавать ошибки и недочёты.

Буду следить и может через пару лет в новом поколении техники попробую ещё раз. Даже не может, а точно попробую. Думаю устранят недостатки.

Только честно, помимо карго добавьте нормальные вещи, карго не пропустят, честно.

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

208. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от deeaitch (ok), 30-Июл-21, 04:33 
О, классно, растоманы меня минусуют, не спят, бдят.

А вопрос почему? Ответа не будет. Но ребята, расслабтесь. Будет готово и я с удовольствием воспользуюсь. А пока гуглите на пример подгобного рассказа про ваш Rust и Automotive в двух томах. Эксперимент длинною в полтора года.

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

239. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Next_Losers_rules (?), 30-Июл-21, 06:07 
Не Automotive , а Automake руст лишь паразиты objectтированного кода созданного архитектором который переиначил пути для большей производительности
Ответить | Правка | Наверх | Cообщить модератору

484. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от deeaitch (ok), 31-Июл-21, 02:41 
> Не Automotive , а Automake руст лишь паразиты objectтированного кода созданного архитектором
> который переиначил пути для большей производительности

Ну вот глупость же поправил. Откуда ты там нарисовал Automake?

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

264. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (80), 30-Июл-21, 08:30 
Чтож вам хрустикам постоянно что-то мешает. Фаерфокс не смогли переписать, да ничего не смогли даже написать. Но мешают этому конечно же хейтеры, это из-за них вы ничего не можете сделать с вашим язычком.
Ответить | Правка | К родителю #208 | Наверх | Cообщить модератору

202. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Хан (?), 30-Июл-21, 04:23 
Вангую что растоманы даже не знают как передаются аргументы в функцию и почему например нельзя вернуть массив из функции, это же так низкоуровнево))) а в расте все просто и понятно
Ответить | Правка | Наверх | Cообщить модератору

209. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от deeaitch (ok), 30-Июл-21, 04:35 
Ты знал
Ответить | Правка | Наверх | Cообщить модератору

219. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 05:02 
Ладно расскажу и я, вообще думаю все помнят скандал со злополучным Audacity и сливом персональных данных, один разраб кричал что мол хэш-функция обратно не реверсится, на что ему знающие люди тактично указали что если число входящих значений в хэш-функцию конечно как те же IP-адреса, то не составляет труда составить таблицу хэшей всех IP адресов после чего прогнать интересующий тебя хэш по ней дабы найти соответствие и узнать IP-адрес... на что разраб сказал что вы все врети и отключился

Кстати эта лабуда с хэшами IP и тип анонимностью на каждом сайте

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

226. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 05:16 
Хотя вру, можно, по ссылке если массив обьявлен как static внутри функции
Ответить | Правка | К родителю #202 | Наверх | Cообщить модератору

243. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 06:21 
А кстати из функции struct можно вернуть. В нем массивы можно же сделать. Это не прокатит? :)
Ответить | Правка | К родителю #202 | Наверх | Cообщить модератору

249. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 07:25 
В общем то Си разрешает функциям возращать структуры, но это просто офигительные дополнительные расходы на копирование, представь если структура большая и не помещается в регистры которых в x86 кот наплакал, поэтому компилятор может так использовать стек для возврата не сбрасывая его указатель перед выходом из функции и лишь потом сбросить его чтобы было время сохранить значения, а если и этого не хватает тогда в зависимости от компилятора могут быть различные грязные хуки но опять же двойным а то и тройным копированием...

Поэтому проще, быстрее и надежнее пробрасывать ссылку(адрес) на static память вызываемой функции в вызываемую и работать с ней как с обычной глобальной переменной

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

285. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 09:35 
> В общем то Си разрешает функциям возращать структуры, но это просто офигительные
> дополнительные расходы на копирование

Не должно быть копирования. Достаточно зарезервировать стек перед вызовом.

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

318. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (165), 30-Июл-21, 12:18 
Будет или нет копирование - зависит от оптимизатора и конкретного кода. Хинто: сравни x=f(x) и y=f(x)
Ответить | Правка | Наверх | Cообщить модератору

323. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от n00by (ok), 30-Июл-21, 13:08 
> сравни x=f(x) и y=f(x)

Нет разницы, пока мы говорим о возврате структуры из функции, а не подменяем предмет обсуждения на сравнение f(x,y) и f(y,x). Что бы избежать копирования, достаточно передать её адрес неявным аргументом.

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

340. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 14:43 
Ну смотри стек функция не сбросила и сохранила в нем возвращаемое значение, но его же нужно как то обработать, а перед этим сохранить

Копирование 1
Из стека в регистры
Копирование 2
Из регистров в память

После чего сбросить стек

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

348. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от n00by (ok), 30-Июл-21, 15:41 
Что значит "сбросить стек"?

Вы предполагаете, что структура при возврате из функции куда-то копируется. Значит место (приёмник) зарезервировано в памяти. Для чего указатель стека уменьшается на размер структуры (плюс выравнивание, но это не существенно). Происходит это при определении экземпляра. То есть до вызова функции.

struct foo r;
r = foo_construct();

Далее в теле функции определяется второй экземпляр структуры и как-либо инициализируется.

struct foo
foo_construct()
{
  return (struct foo) { /* ... */ };
}

Локальные переменные живут до выхода из функции. Соответственно, при выполнении return, по-Вашему, необходимо скопировать данные из локального для вызванной функции экземпляра в стек вызывающей.
Представьте, что один из членов структуры инициализирован указателем на неё. Что предпринять в данном случае? Как видим, копирование вообще решением не является.
С другой стороны, если копирование должно быть выполнено до выхода из функции -- значит адрес приёмника каким-то образом в теле функции известен. А раз он известен, то незачем создавать локальную структуру, достаточно формировать результат непосредственно в стековом кадре вызывающей функции. На практике передаётся неявным аргументом указатель (как this в C++), либо функция-конструктор встраивается.

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

370. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 17:03 
Сбросить стек значит вернуть указатель стека в изначальное положение которое было до вызова функции(чтобы не получить переполнение стека)


... ну смотри ты говоришь что во время return локальные переменные копируются в стек вызываемой функции... только вот стек общий на всю программу(можешь себе представить стек разделяемой памятью фиксированного размера)


Отсюда ты и говоришь про некий адрес приемника... там адреса не нужны это или регистры или стек которые заранее известны

Локальной памяти не существует(она хранится в стеке), название неправильное, оно не отражает ее природу, в отличии от определения автоматической памяти

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

371. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 17:07 
*в стек вызывающей

Короче суть такова что стек один на всех, а не укаждого свой

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

398. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 18:36 
> Сбросить стек значит вернуть указатель стека в изначальное положение которое было до
> вызова функции(чтобы не получить переполнение стека)

"Восстановить" вместо "сбросить" было бы понятнее. Вернуть значение указателя нужно, что бы можно было дальше обращаться к своим локальным переменным. А то до переполнения дело не дойдёт.)

Единственно что, в зависимости от конвенции вызова, аргументы (если таковые были переданы через стек) могут быть оставлены на стеке (cdecl) или сняты вызывающей стороной (ctdcall). То есть при выходе из подпрограммы вершине стека не обязательно сразу же вернётся прежнее значение.

> ... ну смотри ты говоришь что во время return локальные переменные копируются
> в стек вызываемой функции...

Я говорю, что копирование вообще неправильно (почему -- подробнее можно почитать про глубокое копирование в С++). Но если бы оно было, то там ему самое место.

> только вот стек общий на всю программу(можешь
> себе представить стек разделяемой памятью фиксированного размера)

Стек общий, но у меня говорится о стековых кадрах. То есть об областях стека, где подпрограммы хранят свои локальные переменные. Дословно: достаточно формировать результат непосредственно в стековом кадре вызывающей функции.

По поводу разделяемой памяти - в моём понимании это страницы ОЗУ, которые принадлежат различным адресным пространствам (процессам). Стека в такой памяти быть не должно.

> Отсюда ты и говоришь про некий адрес приемника... там адреса не нужны
> это или регистры или стек которые заранее известны

Если возвращающая структуру функция (назовём её конструктором) вызывается из одного места, тогда строение стекового кадра вызывающей стороны действительно известно и однозначно, можно не передавать адрес для сохранения результата. Но в таком случае конструктор скорее всего окажется встроен (inline).

Если же вызывается из разных мест, или для массива структур, то придётся передавать адрес конструктору. И этот же адрес потребовался бы, если бы пришлось копировать структуры.

> Локальной памяти не существует(она хранится в стеке), название неправильное, оно не отражает
> ее природу, в отличии от определения автоматической памяти

Как раз вместо "автоматической памяти" в стандарте языка Си определено время жизни объектов (аutomatic storage duration). И опять же, у меня "локальные переменные". Кадр стека локален для каждого вхождения в подпрограмму, поскольку обращение к нему происходит относительно регистра стека.

> Короче суть такова что стек один на всех, а не укаждого свой

Вот именно. Потому, предприняв меры (передав указатель на место под результат), можно создавать структуру сразу в нужном месте и без копирования.

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

428. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 19:52 
Ты умный чел сразу видно.. но пиши чут чут попроще тип без такого формализма читать сложно...

Указатель стека нужно возвращать/сбрасывать дабы он не вышел за границы стека, ведь проверки границ стека как и массива не предусмотрено, разве что проц выкинет исключение на стек и Ояс завершит программу в отличии от массива

Спор насчет локальных или автоматических переменных ниочем, это же логично что с вызовом подпрограммы формируется ее стековый фрейм, а фрейм вызывающей не очищается так как она не завершена

Ясно что можно передавать структуру по указателю, мы же говорили про накладные расходы при передаче по значению

Насчет конструктуров и стековых фреймов чет не понял...

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

434. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 20:10 
С друго стороны такие хитроумные манипуляции похожи на костыль из разряда передать массив(до 8 байт) запаковать в long и вернуть по значению а потом распаковать снова в массив
Ответить | Правка | Наверх | Cообщить модератору

503. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 31-Июл-21, 08:14 
> Ты умный чел сразу видно.. но пиши чут чут попроще тип без
> такого формализма читать сложно...

Короче пушим дворды и зовём функу потом попаем. Это называется сидекл. В стдкол функа сама попает ретн. А в фастколе параметры в регистрах. :)

> Указатель стека нужно возвращать/сбрасывать дабы он не вышел за границы стека, ведь
> проверки границ стека как и массива не предусмотрено, разве что проц
> выкинет исключение на стек и Ояс завершит программу в отличии от
> массива

Верно. Но это не главное. Допустим, перед вызовом подпрограммы по адресу [rsp - 8] что-то сохранили. Подпрограмма изменила указатель стека, отработала, произошёл возврат. В rsp другое значение, и по [rsp - 8] прочитали мусор. Так до переполнения дело не дойдёт.

> Спор насчет локальных или автоматических переменных ниочем, это же логично что с
> вызовом подпрограммы формируется ее стековый фрейм, а фрейм вызывающей не очищается
> так как она не завершена

Так я и не спорю.

> Ясно что можно передавать структуру по указателю, мы же говорили про накладные
> расходы при передаче по значению

Я говорю только по поводу возврата структур https://www.opennet.ru/openforum/vsluhforumID3/124921.html#249
то есть отвечал вот на это:
> В общем то Си разрешает функциям возращать структуры, но это просто офигительные
> дополнительные расходы на копирование

С передачей всё верно. Если вызываемая функция меняет переданный аргумент и эти изменения не нужны вызывающей стороне, приходится создавать копию. Это дополнительные расходы, но без них запортится оригинал. Иначе передаём по указателю (константной ссылке в С++).

При возврате нет смысла создавать копию.

> Насчет конструктуров и стековых фреймов чет не понял...

Конструктором я назвал функцию, которая возвращает структуру, что бы меньше писать.

Про фреймы просто надо подумать, как в ассемблере будет выглядеть сишный псевдокод из исходного объяснения https://www.opennet.ru/openforum/vsluhforumID3/124921.html#348

Вот как оно описано в "System V Application Binary Interface AMD64 Architecture Processor Supplement"

The returning of values is done according to the following algorithm:

2. If the type has class MEMORY, then the caller provides space for the return
value and passes the address of this storage in %rdi as if it were the first
argument to the function. In effect, this address becomes a “hidden” first ar-
gument. This storage must not overlap any data visible to the callee through
other names than this argument.
On return %rax will contain the address that has been passed in by the
caller in %rdi.

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

394. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 18:16 
Локальные(автоматические) переменные могут и после выхода из функции, до тех пор пока не сбросится стек, это как раз случай возврата большой структуры для которой не хватает регистров
Ответить | Правка | К родителю #348 | Наверх | Cообщить модератору

402. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 18:42 
> Локальные(автоматические) переменные могут и после выхода из функции, до тех пор пока
> не сбросится стек, это как раз случай возврата большой структуры для
> которой не хватает регистров

Не стоит на это полагаться! Прерывание разрушит содержимое стека. System V x86-64 ABI гарантирует всего 128 байт Красной Зоны.

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

414. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 19:14 
Это уже особенности ОС как я понимаю....

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

425. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 19:48 
Особенность ОС это наличие красной зоны, или переключение адресного пространства/стека в обработчике прерывания, или гарантированное отсутствие прерываний. В общем же случае данные за вершиной стека сразу невалидны. И ловить это дело не слишком просто, особенно, если о таком не знать, а под отладчиком оно не проявится. :)
Ответить | Правка | Наверх | Cообщить модератору

429. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 19:53 
Скинь ссылку где это описано, я чет с этим не сталкивался
Ответить | Правка | Наверх | Cообщить модератору

504. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 31-Июл-21, 08:26 
> Скинь ссылку где это описано, я чет с этим не сталкивался

Параграф 3.2.2 The Stack Frame

System V Application Binary Interface
AMD64 Architecture Processor Supplement
Draft Version 0.99.7

https://www.uclibc.org/docs/psABI-x86_64.pdf

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

505. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 31-Июл-21, 08:33 
Вот новее версия в исходниках https://gitlab.com/x86-psABIs/x86-64-ABI

Вот pdf версии 1.0 https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-1.0...

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

250. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 07:26 
Прокатит, только это тормозной вариант
Ответить | Правка | К родителю #243 | Наверх | Cообщить модератору

251. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 07:31 
Кстати из за таких накладных расходов в Си нельзя массивы передавать по значению, а вовсе не потому что этому что то мешает...

А вот почему структурам разрешили передаваться по значению это вопрос, говорят так тип предполагалось что структуры были бы этакими пакетами сгруппированных значений небольшого размера, а потом пошло поехало массивы в структурах, структуры в структруктурах и тд

Кстати на обьектах в C++ весь это ад с передачей по значению закончился

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

252. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 07:41 
Чтобы просто было понятно

Между передачей функции ссылки на структуру и возвратом ссылки на static структуру нет никакой разницы обе структуры будут глобальными

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

262. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 08:10 
То есть невозможность передать и вернуть массив по значению это чисто ограничение языка Си, просто его создатели так решили массивы только по ссылкам, а структуры ладно и так сойдет
Ответить | Правка | К родителю #243 | Наверх | Cообщить модератору

286. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (294), 30-Июл-21, 09:36 
Ой, блин, умники.
Во первых вернуть массив из функции возможно во многих ЯП.
Даже в С++, если использовать std::array .

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

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

337. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 14:34 
std::array это стадартная либа, речь же шла про возможности синтанксиса
Ответить | Правка | Наверх | Cообщить модератору

362. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (294), 30-Июл-21, 16:21 
перечитай свое первое сообщение в этой ветке.
Где там говорилось что речь строго про синтаксис? Где там вообще говорилось про какой-либо ЯП.

Вот так вывалил поток сознания, и потом рассказывает что ему отвечают не то.

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

368. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 16:48 
Хера память как у рыбки... выше на коммент глянь, кто про C++ и std::array начал
Ответить | Правка | Наверх | Cообщить модератору

373. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (294), 30-Июл-21, 17:10 
Хера у тебя соображалка как у морской свинки.
Я же отвечал на твое сообщение, что где-то нельзя вернуть массив из функции.
Я же и привел как пример с std::array. Только вот не я начал, я уже писал в ответ на твое непонятное утверждение.

Что, уже на 2 уровня выше не в состоянии подняться по сообщениям?
Блин, и это недорозумение рассказывает какие растоманы тупые !!!

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

380. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 17:33 
Лол што? Что ты привел? std::array который выступает оберткой над обычным массивом? Действительно при чем тут втроенные возможности языка и синтаксис? Гений раста что тут еще скажешь
Ответить | Правка | Наверх | Cообщить модератору

338. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 14:38 
Уже ответил читай выше
Ответить | Правка | К родителю #286 | Наверх | Cообщить модератору

351. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от n00by (ok), 30-Июл-21, 15:59 
> Почему это в С нельзя вернуть
> массив сам по себе, но если завернуть его в структурку, то
> можно ?

"Еще более удивительно (по крайней мере на первый взгляд) то, что а[i] можно записать как *(а+i)" (c) K&R

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

356. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (-), 30-Июл-21, 16:12 
> "Еще более удивительно (по крайней мере на первый взгляд) то, что а[i]
> можно записать как *(а+i)" (c) K&R

i[a] же.

                                                                                         
int a = 123;                                                                        
int *b = &a;                                                                        
0[\b] = 456;   // форумный движок считает b в [] тегом
char* anon[2] =
    {"аноним","аноним"};                                                    
1[anon] = "рулит";                                                                    
  

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

367. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 16:43 
Не спойлери, что обращение к массиву тип mas[2] это просто синтаксический сахар над указателем *(mas+2)
Ответить | Правка | К родителю #351 | Наверх | Cообщить модератору

381. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Ф1 (?), 30-Июл-21, 17:37 
В си нельзя вернуть массив из функции тупо потому что он его не может толком отличить от указателя, в раст массив без проблем возвращается

fn tst() -> [i32; 3] {
    [1, 2, 3]
}    

fn main(){
    println!("{:?}", tst());
}  


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

382. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 17:47 
По значению нельзя, но это особенность реализации массива в Си, в той же структуре тот же Си обходится без указателей а просто пакует побайтово

Чтобы такие растоманы не гоняли память туда сюда без толку

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

387. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Ф1 (?), 30-Июл-21, 17:58 
> По значению нельзя, но это особенность реализации массива в Си,

Я тебе про это и пишу.

> Чтобы такие растоманы не гоняли память туда сюда без толку

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

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

392. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 18:08 
Хм посмотри на массив в структуре который запакован и передается по значению, такая реализация массива через указатель была выбрана во имя производительности ибо массив это самый гоняемый тудасюда тип данных в IPC, TCP/IP, i/o например
Ответить | Правка | Наверх | Cообщить модератору

526. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Ordu (ok), 31-Июл-21, 15:31 
> Чтобы такие растоманы не гоняли память туда сюда без толку

Оно не гоняет память туда-сюда без толку.

Глянь:

mod tmp {
    pub fn make_array() -> [i64; 128] {
    [-1; 128]
    }
}
fn main() {
    println!("{:?}", tmp::make_array());
}


(make_array засунута в сабмодуль, чтоб rustc её не инлайнил)

Другие твои комменты подсказывают мне, что ты хочешь доказать, что это крайне неэффективно, ибо копировать памяти много надо, и если так, то ты глобально ошибаешься. Забудь всё, что тебе рассказывал препод информатики в школе в 90-х. Это всё ложь. Уже лет 15-20 как это стало ложью.

Если это скомпилировать код выше с --emit=asm, то можно видеть такую штуку:

;; это main, прошу обратить внимание, mangled нехило, но тем не менее main
_ZN3tmp4main17hef74ed440589210dE:
    .cfi_startproc
    subq    $1112, %rsp     ; выделяется память на стеке под возвращаемое значение
    .cfi_def_cfa_offset 1120
    leaq    88(%rsp), %rdi  ; указатель на неё пошёл в %rdi, неявный аргумент для tmp::make_array
    callq    _ZN3tmp3tmp10make_array17h69c0c6c82460a46fE ; вызов make_array
        ...

Если ты заставишь C возвращать из функции объект килобайтового размера по значению, он сделает тебе примерно то же самое: память под возвращаемое значение будет выделять на стеке вызывающий код.

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

383. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 17:52 
Проще говоря выражение типа int mas[]={1,2,3,4} не создает никакой массив, просто создает указатель mas и выделяет 16 байт памяти и записывает ее адрес в указатель
Ответить | Правка | К родителю #381 | Наверх | Cообщить модератору

204. Скрыто модератором  +2 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 04:30 
Ответить | Правка | Наверх | Cообщить модератору

211. Скрыто модератором  –3 +/
Сообщение от deeaitch (ok), 30-Июл-21, 04:35 
Ответить | Правка | Наверх | Cообщить модератору

224. Скрыто модератором  +4 +/
Сообщение от Аноним (222), 30-Июл-21, 05:15 
Ответить | Правка | К родителю #204 | Наверх | Cообщить модератору

230. Скрыто модератором  +1 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 05:33 
Ответить | Правка | Наверх | Cообщить модератору

233. Скрыто модератором  –3 +/
Сообщение от Хан (?), 30-Июл-21, 05:38 
Ответить | Правка | Наверх | Cообщить модератору

242. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 06:18 
> #[path = concat(env!("OUT_DIR"), "/generated.rs")]

Прикольно, теперь хрустикам можно будет нетривиальные бекдоры без палева хреначить. Первое со вторым дружит надеюсь?

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

464. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 30-Июл-21, 23:33 
#include "generated.h"
Ответить | Правка | Наверх | Cообщить модератору

510. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Ф1 (?), 31-Июл-21, 10:38 
В раст есть прямой аналог #include из препроцессора C/C++ это макрос include!, с ним тоже будет что-то типа include!("generated.rs"), а конструкция свыше это полноценная загрузка модуля. Ну и напугавшие, как я понял тут всех, макросы concat и env позволяют задать путь в compile time что хоть и коряво, но весьма удобно в C/C++ все это придется выносить в систему сборки. Хотя когда в C++ модули доведут до ума нечто подобное тоже наверняка появится.
Ответить | Правка | Наверх | Cообщить модератору

468. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (165), 30-Июл-21, 23:37 
пипец синтаксис...
Ответить | Правка | К родителю #242 | Наверх | Cообщить модератору

267. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Имя (?), 30-Июл-21, 08:38 
В каждой минорной версии что-то добавляют и добавляют.. Он когда-то будет полным? По сложности уже, наверное, соперничает с плюсами, если еще не обогнал.
Ответить | Правка | Наверх | Cообщить модератору

305. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (305), 30-Июл-21, 10:59 
Нет конечно все менеджеры уверенны что пользователям нужны только новые фичи. И они правы фанатикам нужны именно они. Но нормальным людям работу надо работать, менеджерам это невдомек.
Ответить | Правка | Наверх | Cообщить модератору

341. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (341), 30-Июл-21, 14:47 
Ну не пользуйтесь новыми фичами, работайте свою работу, кто мешает?
Ответить | Правка | Наверх | Cообщить модератору

360. "Выпуск языка программирования Rust 1.54"  –3 +/
Сообщение от Аноним (305), 30-Июл-21, 16:18 
Отсутствие обратной совместимости? У хрустиков у них же стабилизация функции это целая фича.
Ответить | Правка | Наверх | Cообщить модератору

568. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (571), 01-Авг-21, 08:54 
У них эпохи придумали для того чтобы даже новые несовместимые компиляторы могли собирать старый код. Вообще адская несовместимость была только до выхода стабильной 1.0 версии.
Ответить | Правка | Наверх | Cообщить модератору

295. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (295), 30-Июл-21, 09:48 
Забавно видеть как этот недоязык превращается в C++. Забивает в собственный гроб гвозди. Ржавые.
Ответить | Правка | Наверх | Cообщить модератору

304. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (305), 30-Июл-21, 10:58 
На самом деле это С++ ввел у себя некоторые хайповые фичи. Но это не комплимент срастикам.
Ответить | Правка | Наверх | Cообщить модератору

469. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 30-Июл-21, 23:50 
Стоп-стоп, как это - Раст падает до уровня C++?
Ответить | Правка | К родителю #295 | Наверх | Cообщить модератору

354. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (354), 30-Июл-21, 16:07 
Привет еще растоненавистникам:) Я с растом уже как 3-4 года)...
Ответить | Правка | Наверх | Cообщить модератору

675. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от wyry (?), 14-Дек-21, 14:59 
Прям камингаут...
Ответить | Правка | Наверх | Cообщить модератору

379. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (376), 30-Июл-21, 17:30 
Не тратьте время на раст, лет через 10 стабилизируют, за это время на С++ еще библиотек напишут на миллиарды долларов, а вызвать С++ код из раста - это приключение, в котором вы не хотите приключаться
Ответить | Правка | Наверх | Cообщить модератору

400. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Sem (??), 30-Июл-21, 18:39 
Через 10 лет уже перепишут всё, что можно на раст )))
Шутка конечно, но тенденция есть.
Ответить | Правка | Наверх | Cообщить модератору

466. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (165), 30-Июл-21, 23:34 
Мозила показала, что это невозможно, и выгнала растаманов.
Ответить | Правка | Наверх | Cообщить модератору

470. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 30-Июл-21, 23:51 
Это ты прочитал в комментах на опеннете?)
Ответить | Правка | Наверх | Cообщить модератору

479. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Kuromi (ok), 31-Июл-21, 00:05 
Хаха...nope
https://wiki.mozilla.org/Oxidation

Хотя то, что после отделения Раста процесс притормозился (али как обычно заброслии вики обновлять) - факт. Тем не менее WebRender - растовый и он работает.

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

473. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 30-Июл-21, 23:53 
Кого стабилизируют-то? Раст вот уже, а C++ уже никогда
Ответить | Правка | К родителю #379 | Наверх | Cообщить модератору

393. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (376), 30-Июл-21, 18:14 
Начал седня изучать раст, первая же проблема - излишне длинный код. Почитал про макросы. Думаю ну ок, можно как-то извернуться, но хотелось бы постфиксные макросы. Почитал про то что постфиксные макросы нужно заключать в блок. Закрыл страницу
Ответить | Правка | Наверх | Cообщить модератору

472. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 30-Июл-21, 23:52 
А конкретнее, где длинный? Может, это ты что-то не так делаешь?
Ответить | Правка | Наверх | Cообщить модератору

401. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 30-Июл-21, 18:42 
Да здраствует великая Rust!!! Да здраствует язык будущего!!!
Скоро Linux весь на rust перепишут))))
Ответить | Правка | Наверх | Cообщить модератору

417. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 30-Июл-21, 19:20 
Все 24 млн строк сишного/ассемблерного кода?
Ответить | Правка | Наверх | Cообщить модератору

463. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (165), 30-Июл-21, 23:32 
> Скоро Linux весь на rust перепишут

Они свой редох написать не могут...

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

471. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 30-Июл-21, 23:51 
Кто - они? Несколько энтузиастов, которые пишут чисто изучения / прикола ради?
Ответить | Правка | Наверх | Cообщить модератору

482. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 31-Июл-21, 00:24 
>> Скоро Linux весь на rust перепишут
> Они свой редох написать не могут...

Ты уже довел Hurd до ума?

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

487. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 31-Июл-21, 02:44 
Что ты мелишь? Hurd еще в 90-е рипнули в угоду GNU/Linux даже Столлман об этом говорил в фильме про Linux...

А так да уже давно есть работоспособный Minix...Intel не даст соврать... смешно конечно же наблюдать как дедушка Таненбаум со студентами и аспирантами смогли в микроядро, а толпы растоманов только мечтают о Redox...

Код то хоть не из Minix воруете? А?

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

488. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 31-Июл-21, 03:25 
> Что ты мелишь? Hurd еще в 90-е рипнули в угоду GNU/Linux даже
> А так да уже давно есть
> отмазки и лютый бред поскипаны.

Ясно. Не осилил. Так и скажи - твои отмазки никому не интересны.

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

490. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 31-Июл-21, 04:44 
Лол))) вспомни еще мультикс 60-х годов... ее Кен Томпсон и Денис Ритчи неосилили
Ответить | Правка | Наверх | Cообщить модератору

491. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 31-Июл-21, 04:45 
Но про Minix ты тактично умолчал))) эх растоманы чуть что в кусты и классическое вы все врети
Ответить | Правка | К родителю #488 | Наверх | Cообщить модератору

518. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 31-Июл-21, 13:22 
> Но про Minix ты тактично умолчал)))

Зачем мне комментировать твой бред? Тебя спрослили за Hurd, а ты начал блеять за что-то там (при этом и рядом не стояв).
> эх растоманы чуть что в кусты и классическое вы все врети

Какой занимательный (нет) диалог шизофреника с лишь ему слышными голосами ...

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

524. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Хан (?), 31-Июл-21, 15:28 
Ну че там скоро Redox достигнет уровня Minix?

Вообщем криворучки за которых раст все сделает сам, вашу недоось ждет судьба все того же Hurd который так и не вышел

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

538. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 31-Июл-21, 19:07 
Ты что куришь? Кому вообще не плевать на Redox?
Ответить | Правка | Наверх | Cообщить модератору

544. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Хан (?), 31-Июл-21, 20:40 
Растоманам же
Ответить | Правка | Наверх | Cообщить модератору

419. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Аноним (-), 30-Июл-21, 19:32 
>Rust 1.54, основанного проектом Mozilla

Автор новости ошибся. Основал Раст некто Грейдон Хоар. Грейдона Хоара некоторая группа растаманов вытеснила - к его мнению не прислушивались, и он справедливо обидевшись ушёл.

>при этом обходясь без использования ... runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Рантайм в Расте есть. Есть только один язык программирования в, котором нет рантайма, это чистый Си!

Надеюсь, сейчас не выскочит растаман и скажет что при таких-то и таких-то опциях компилятора рантайма не будет. Не надо, нам это не интересно.

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

439. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Аноним зеленый (?), 30-Июл-21, 20:40 
Вот эти штуки без рантайма. https://rust-lang-nursery.github.io/rust-cookbook/concurrenc...
Ответить | Правка | Наверх | Cообщить модератору

441. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним зеленый (?), 30-Июл-21, 20:42 
Ошибся, там вроде токио используется.
Ответить | Правка | Наверх | Cообщить модератору

447. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (445), 30-Июл-21, 21:49 
> Рантайм в Расте есть. Есть только один язык программирования в, котором нет рантайма, это чистый Си!  
> ... и скажет что при таких-то и таких-то опциях компилятора рантайма не будет

О, очередных опеннетных бала^W теоретиков подвезли. Расскажи нам о том, как freestanding в gcc не требует memcpy, memset, memmove и опций компилятора, не стесняйся!

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

474. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Аноним (24), 30-Июл-21, 23:56 
Что такое "рантайм" в твоем понимании?
В моем - что-то будет вызываться просто потому что (gc и прочее недоразумение)
В Расте же вызывается только то, что вызвал программист
Ответить | Правка | К родителю #419 | Наверх | Cообщить модератору

501. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (165), 31-Июл-21, 07:55 
у Вас большие познания (нет)
Ответить | Правка | Наверх | Cообщить модератору

539. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (24), 31-Июл-21, 19:14 
сорян, но если у вас пушинки libc или rust std - рантайм и огромные so-дополнения, то что тогда не рантайм
условно тру рантайм - это монстры уровня джавы, ноды
в сравнении с ними rust std или libc просто незаметные песчинки на фоне огромной пустыни
Ответить | Правка | Наверх | Cообщить модератору

489. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (547), 31-Июл-21, 04:18 
Много вы на чистом Си напишете без стандартной библиотеки? (Нет, ну можно, если вы пишете ядро ОС, но там и ассемблер понадобится.)

Чем тот же glibc не "рантайм"?

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

496. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 31-Июл-21, 06:28 
>Чем тот же glibc не "рантайм"?

Тем, что в чистом Си glibc не часть языка.

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

511. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Ф1 (?), 31-Июл-21, 10:45 
Ну так и у раста есть аналог "чистого си" no_std https://docs.rust-embedded.org/book/intro/no-std.html
Ответить | Правка | Наверх | Cообщить модератору

514. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 31-Июл-21, 12:27 
>Надеюсь, сейчас не выскочит растаман и скажет что при таких-то и таких-то опциях компилятора рантайма не будет. Не надо, нам это не интересно.

смотри выше.

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

516. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (349), 31-Июл-21, 12:42 
Понятно цитируемый аноним просто тупо врет что только си язык без рантайма.
Ответить | Правка | Наверх | Cообщить модератору

519. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 31-Июл-21, 13:29 
>>Надеюсь, сейчас не выскочит растаман и скажет что при таких-то и таких-то опциях компилятора рантайма не будет. Не надо, нам это не интересно.
> смотри выше.

На что именно? На детский сад "Тама нету! А если кто-то даже и покажет что есть, то это НЕ СЧИТАИЦА!"?

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

520. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним зеленый (?), 31-Июл-21, 13:56 
Стандартная библиотека - часть Си и входит в стандарт. https://ru.wikipedia.org/wiki/Стандартная_библиотека_языка_Си
Ответить | Правка | К родителю #496 | Наверх | Cообщить модератору

536. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 31-Июл-21, 17:29 
Деннис Ритчи с тобой не согласен.
Ответить | Правка | Наверх | Cообщить модератору

523. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Ordu (ok), 31-Июл-21, 15:04 
> Надеюсь, сейчас не выскочит растаман и скажет что при таких-то и таких-то опциях компилятора рантайма не будет. Не надо, нам это не интересно.

В C ты тоже не сможешь собрать бинарь без libc.so не передавая дополнительных опций компилятору. Если твоя программа начинается с main, то значит в ней уже есть рантайм -- к ней линкуется crt0.o, crti.o, crtn.o плюс-минус ещё какие-то объектные файлы. Попробуй как-нибудь в образовательных целях слинковать C'шную программу вызовом ld. Вот не gcc запускай линкером, а ld. Много чего нового узнаешь, если слинкуешь.

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

521. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним зеленый (?), 31-Июл-21, 14:14 
Что делать если ты пряморукий, но язык тебе мешает? https://en.wikipedia.org/wiki/C_standard_library#Concepts,_p...

Есть эффективный способ выучить баги Си/С++ чтобы их эффективно обходить и не отстрелить конечности?

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

537. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (-), 31-Июл-21, 17:30 
>Си/С++

Никогда так не пиши. Это два совершенно разных языка.

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

540. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (24), 31-Июл-21, 19:17 
Почему же?
Да, это условно разные языки, но один - подмножество другого и основные проблемы у них общие, поэтому в некоторых контекстах это очевидно верное написание
Ответить | Правка | Наверх | Cообщить модератору

569. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (-), 01-Авг-21, 09:15 
Абревиатура "C/C++" выдумана Майкрософтом в её ВижуалСтудии. Отцы-юниксоиды из Белл Лабса никогда так не писали.

Абревиатура "C/C++" - маздаевский высер.

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

579. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от fsb4000 (?), 01-Авг-21, 15:23 
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2644.pdf

иди, жалуйся в комитет C(WG14), что они не знают как писать C/C++.

Отцы основатели теперь пишут С/С++.

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

654. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (-), 03-Авг-21, 15:37 
Ни бзди.
Ответить | Правка | Наверх | Cообщить модератору

543. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 31-Июл-21, 20:39 
C++ включает в себя в полном обьеме Си
Ответить | Правка | К родителю #537 | Наверх | Cообщить модератору

548. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (547), 31-Июл-21, 23:29 
Не совсем.
Например, в C я могу присвоить указатель на void* типизированному указателю, а в C++ (без явного кастинга) - нет.
Или, скажем, вложенные структуры по разному работают.
Короче, дофига мелких отличий на самом деле.
Ответить | Правка | Наверх | Cообщить модератору

559. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 01-Авг-21, 01:41 
C++ поддерживает Си на достаточном уровнем чтобы юзать Си библиотеки как родные без изменений кода, а это говорит о многом
Ответить | Правка | Наверх | Cообщить модератору

565. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (165), 01-Авг-21, 08:40 
я из Паскаля могу юзать Си библиотеки как родные, и что?!
Ответить | Правка | Наверх | Cообщить модератору

591. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 01-Авг-21, 23:38 
Для маленьких растоманов... на уровне исходного кода юзать, то есть буквально смешивать Си и C++ и все будет ок
Ответить | Правка | Наверх | Cообщить модератору

609. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (165), 02-Авг-21, 06:09 
> на уровне исходного кода юзать, то есть буквально смешивать Си и C++

Не учи детей плохому, они ведь поверят, а потом огребут на линковке :) когда случится "симбол нот фаунд". Ты, надеюсь, в курсе, что манглинг у них разный? И почему в сырцах идёт явное указание, что мы собираемся компилировать - си или плюсы.

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

613. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Совершенно другой аноним (?), 02-Авг-21, 08:59 
>> на уровне исходного кода юзать, то есть буквально смешивать Си и C++
> Не учи детей плохому, они ведь поверят, а потом огребут на линковке
> :) когда случится "симбол нот фаунд". Ты, надеюсь, в курсе, что
> манглинг у них разный? И почему в сырцах идёт явное указание,
> что мы собираемся компилировать - си или плюсы.

#ifdef __cplusplus
extern "C" {
#endif /*__cplusplus*/

...

#ifdef __cplusplus
}
#endif /*__cplusplus*/

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

641. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 02-Авг-21, 19:16 
Если чет не так, на уровне синтаксиса отгребают на стадии компиляции, линковка то дела уже ABI
Ответить | Правка | К родителю #609 | Наверх | Cообщить модератору

592. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 01-Авг-21, 23:41 
Любую функцию Си можно встроить в качестве метода в обьект C++ просто спопипастив... где еще так возможно?
Ответить | Правка | К родителю #565 | Наверх | Cообщить модератору

610. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (165), 02-Авг-21, 06:17 
> спопипастив

Попой пишешь? Оно и заметно.

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

640. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 02-Авг-21, 19:13 
Велосипедоизобретатель?
Ответить | Правка | Наверх | Cообщить модератору

642. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Ф1 (?), 02-Авг-21, 20:01 
В с++ такое невозможно, вот эта вполне легальная Си строка

int *arr = malloc(3 * sizeof(int));

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

644. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 02-Авг-21, 21:02 
С каких пор malloc не void? Где приведение типа? Это костыль а не Си-код
Ответить | Правка | Наверх | Cообщить модератору

649. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Ф1 (?), 03-Авг-21, 08:27 
> С каких пор malloc не void? Где приведение типа? Это костыль а
> не Си-код

Это валидный си код который компилируется с  -Wall -Wextra -pedantic без писка, так что тезис о копипасте несостоятелен. Но соглашусь с тем что из C++ си код очень легко использовать, но это также не отменяет того, что языки уже разошлись и вряд-ли в ближайшем будущем сойдутся до полной совместимости.

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

563. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (165), 01-Авг-21, 08:36 
Нет. Читайте спеки.
Ответить | Правка | К родителю #543 | Наверх | Cообщить модератору

583. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (442), 01-Авг-21, 19:05 
https://www.acm.org/media-center/2021/july/dissertation-awar...

In his dissertation, Jung tackles this challenge by developing semantic foundations for Rust that account directly for the interplay between safe and unsafe code. Building upon these foundations, Jung provides a proof of safety for a significant subset of Rust. Moreover, the proof is formalized within the automated proof assistant Coq and therefore its correctness is guaranteed. In addition, Jung provides a platform for formally verifying powerful type-based optimizations, even in the presence of unsafe code.

Осталось подождать срыва покровов от местных экспертом с девятью классами образования.

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

600. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Аноним (165), 02-Авг-21, 01:52 
Что сказать-то хотел? Ещё не научился выражать мысли?
Ответить | Правка | Наверх | Cообщить модератору

605. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Ага (?), 02-Авг-21, 02:51 
По твоему комменту видно, что ты не научился работать мозгом.
Ответить | Правка | Наверх | Cообщить модератору

608. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (165), 02-Авг-21, 04:57 
И только старый попугай вдруг громко крикнул из ветвей (с): "...не научился работать мозгом!".
Ответить | Правка | Наверх | Cообщить модератору

673. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от iZENemail (ok), 06-Сен-21, 19:35 
Собрал на FreeBSD из порта lang/rust. Пакет rust-1.54.0_1 при сборке выжрал 14 ГБ ОЗУ (82%) и 1.4 ГБ SWAP. Я опешил от такого.
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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