|
|
|
4.372, Хан (?), 17:10, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Как минимум либа для работы с пайпами, тот же printf это замаскированный IPC
| |
|
3.313, Аноним (313), 11:37, 30/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
$ rustc -C opt-level=z -C lto -C codegen-units=1 -C panic=abort -Z strip=symbols hello.rs
$ du -h hello
224K hello
| |
|
4.319, Аноним (-), 12:31, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> $ 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
| |
|
|
|
5.333, Владимир (??), 14:12, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
push 1 / pop edi занимает меньше байт, чем mov edi, 1. mov eax, 1 то же самое. Да и mov eax, 60.
| |
|
6.336, n00by (ok), 14:34, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Речь не об опкодах, а о номерах системных вызовов. См. комментарии в первом листинге.
| |
|
5.346, Аноним (-), 15:04, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Интересный листинг.
>
> 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
| |
|
6.355, n00by (ok), 16:07, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>[оверквотинг удален]
> * $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"?
| |
|
7.358, Аноним (-), 16:16, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Тем не менее вопрос по размеру строки в силе. "Hello World\n" 12
> байт без терминатора, а в листинге 9. В оригинале было "Hello BSD"?
Подловил. Просто "sometext\n"
| |
|
8.409, n00by (ok), 18:59, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Это ещё кто кого подловил Если бы не эта разница в длине, я бы не обратил внима... текст свёрнут, показать | |
|
|
|
|
|
3.424, Аноним (-), 19:44, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
10 лет назад хелло_ворд весил 5 мегабайт. 7 лет назад хелло_ворд весил 3 мегабайта. 4 года назад хелло_ворд весил 1 мегабайт. Сейчас хелло ворд весит около 100 Килобайт.
Растаманы стыдятся отвечать на этот вопрос. Больше не задавай такие вопросы.
| |
|
4.448, Аноним (-), 21:53, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> 10 лет назад хелло_ворд весил 5 мегабайт. 7 лет назад хелло_ворд весил
> 3 мегабайта. 4 года назад хелло_ворд весил 1 мегабайт.
У вас, криворуких - возможно все. И 100 мб.
> Сейчас хелло ворд весит около 100 Килобайт.
Врешь и не краснеешь.
| |
|
5.494, Аноним (-), 06:14, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Врешь и не краснеешь.
Извини, сейчас helloworld на Расте весит 200-ти с чем-то килобайт.
| |
|
6.506, n00by (ok), 08:51, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>>Врешь и не краснеешь.
> Извини, сейчас helloworld на Расте весит 200-ти с чем-то килобайт.
Байт, без кило. 500 байтный пример https://www.opennet.dev/openforum/vsluhforumID3/124921.html#322 для FreeBSD можно ещё сократить, если рихтануть ELF, но это уже не относится к языку.
В других системах будет примерно так же, только некоторые параметры (номера сисколов) поменяются. Сравните с вариантом на ассемблере в моём ответе.
| |
6.517, Аноним (-), 13:17, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>>Врешь и не краснеешь.
> Извини, сейчас 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
Приятного обтекания!
| |
|
7.572, Растофиля (?), 11:27, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
> prefer-dynamic
> 6608 ./hello
Хитрозадый очень, да?
Статику давай, или считай все те либы, которые тащит за собой этот ваш раст.
| |
|
|
|
|
|
12.634, n00by (ok), 15:27, 02/08/2021 [^] [^^] [^^^] [ответить] | +/– | Нет никакого стандарта на helloworld-ы Вы это прекрасно понимаете, потому и зак... большой текст свёрнут, показать | |
|
13.635, Аноним (-), 16:08, 02/08/2021 [^] [^^] [^^^] [ответить] | +/– | Тю, спалил Кстати, как тут некоторые умники собрались линковать статику под вен... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
6.542, Аноним (542), 19:46, 31/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
Всего лишь 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)
| |
|
7.588, Аноним (588), 22:20, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
В Расте так вообще не получится.
Нужно специально устанавливать MUSL libc и выбирать соответствующий target, чтобы получить на 100% статический бинарник.
| |
7.590, Аноним (-), 23:26, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
> $ g++ hello.cpp -O2 -static-libstdc++
У мну без доп. -static ldd ругается на зависимости.
А полностью стат., "пострипаный" плюсовой бинарь выходит в 1.4МБ (1.1 для шланга).
| |
|
|
|
|
3.552, Аноним (552), 00:27, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
В любом случае меньше любого интерпретируемого языка,
а с учетом засилья PHP, Python, Ruby для сайтов (коих у каждой компании),
то не думаю, что это как-то сильно кого-то беспокоит.
А тебе рекомендую уже дойти до магазина и купить себе новый диск.
Сейчас уже SSD стали вполне доступными, а порнуху можно и в облако загрузить.
| |
|
4.555, Аноним (-), 00:46, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
> В любом случае меньше любого интерпретируемого языка,
> а с учетом засилья PHP, Python, Ruby для сайтов (коих у каждой
> компании),
> то не думаю, что это как-то сильно кого-то беспокоит.
Ты его лучше спроси, как он вообще зависимости считает.
И пусть "эталонный" пример, с эталонными опциями сборки (и пояснением за эталонне окружение выполнения) на труЪ ЯП кинет, для начала.
Охренее^W Узнаешь много "нового".
| |
|
5.596, Растофиля (?), 00:00, 02/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Узнаешь много "нового".
Уже узнали, что Раст не умеет в статическую линковку с glibc.
Для статической линковки ему нужна MUSL.
Это просто "праздник" какой-то.
| |
|
6.626, Растофиля (?), 13:08, 02/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
Вроде в новых версиях линковать статически с glibc они уже научились. Но это всё нужно проверять. У них там есть оговорки.
| |
|
|
|
|
|
1.5, Аноним (5), 22:21, 29/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +18 +/– |
> Инкрементальная компиляция была отключена в выпуске 1.52.1 из-за выявления скрытых ошибок
Теперь не только безопасная работа с памятью, но и безопасная компиляция.
| |
|
2.40, Аноним (40), 23:06, 29/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Друг, безопасности памяти в коде и отсутствие уязвимостей в принципе - принципиально разные вещи, второе нельзя достигнуть, но лучше всё же жить без первого
| |
|
3.59, Аноним (59), 23:29, 29/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Не такие уж и принципиальные, смежные. Ошибки работы с памятью запросто используют для уязвимостей.
| |
|
4.290, Аноним (290), 09:38, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
чтобы тратить больше времени на разработку, изворачиваясь, делая обычные вещи. как с С++ в своё время.
| |
|
3.254, n00by (ok), 07:48, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> безопасности памяти в коде (1)
> отсутствие уязвимостей в принципе (2)
...
> второе нельзя достигнуть,
> но лучше всё же жить без
> первого
Так понятнее, что на самом деле написано.
| |
|
4.256, КО (?), 07:52, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
"отсутствие уязвимостей в принципе" нельзя достигнуть, но лучше всё же жить без "безопасности памяти в коде".
Так понятнее, чем здец из ">"
| |
|
|
|
1.10, Аноньимъ (ok), 22:35, 29/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>Вызов макросов внутри атрибутов может оказаться полезным для включения в документирующие комментарии содержимого из других файлов. Например, для вставки содержимого файла README и результата выполнения скрипта можно указать
Что-то я непронял совсем что тут происходит и зачем это нужно.
Макрос в коде меняет файл с кодом или что тут происходит?
| |
|
2.19, Dzen Python (ok), 22:45, 29/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Мне больше интересно, зачем вставлять в .rs файл содержимое .md файла.
Стандартный хедер "этот файл под лиценцией {0}, писан {1}, email {2}" может вставить даже не самая продвинутая IDE. Далее по идее ридми.тхт и комментарии должны наоборот, из src-файлов ИЗвлекаться, и на их основе генерироваться нормальная человеческая документация + файл ридми.
Также мне реально стало интересно, зачем пихать в .rs файл вывод .[скрипт].
Вот тут действительно, непонятно. Хотелось бы увидеть хотя бы три сценария использования, где это не натягивание совы на глобус, а глобуса - в попугая
| |
|
3.21, Аноньимъ (ok), 22:48, 29/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Далее по идее ридми.тхт и комментарии должны наоборот, из src-файлов ИЗвлекаться, и на их основе генерироваться нормальная человеческая документация + файл ридми.
Вот и я раньше так думал, а теперь не понимаю что происходит. Может нам опытные растенианци объяснят.
| |
|
4.420, Аноним (-), 19:37, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Может нам опытные растенианци объяснят.
Растаманы - это растения? Растаман - это овощь?
| |
|
3.53, ПомидорИзДолины (?), 23:23, 29/07/2021 [^] [^^] [^^^] [ответить]
| +5 +/– |
В Расте документация генерируется на основе специально оформленных комментариев (doxigen вид сбоку). Когда документации становится много это усложняет навигацию по исходному когда.
Теперь часть документации можно вынести в отдельные файлы, а в исходниках остваить только краткую выжимку.
| |
|
4.188, Аноньимъ (ok), 03:57, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Но зачем для этого какие-то макросы в исходниках? В доках пишешь имя функции и комментарий.
Или я чего-то не понимаю?
| |
|
5.200, Анонимъ (?), 04:19, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Комментарии-документация чисто технически являются специальным синтаксисом для #[doc] макроса.
| |
|
6.210, Аноньимъ (ok), 04:35, 30/07/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
Я к тому что.
1 Доки собираются из исходников.
2 В исходниках слишком много доков, вынесем их в отдельный файл. Чтобы... Чтобы линковать отдельный файл в исходники откуда собирать доки?
Почему бы не собирать доки сразу из отдельного файла с доками?
Зачем в исходники то тянуть что попало из каких-то файлов?
Или я всё неправильно понимаю?
| |
|
7.229, Анонимъ (?), 05:29, 30/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
https://doc.rust-lang.org/std/pin/index.html
Вот пример выше. Подобную документацию удобнее держать рядом с кодом.
Ну или https://docs.rs/legion/0.4.0/legion/index.html в качестве случайного примера.
В дополнение: примеры кода в документации являются полноправными тестами (выполняются по cargo test).
Там подкрутили, здесь сделали удобнее, вон там ещё затюнили маленько. Мелочи, но по совокупности получаем одну из самых лучших документаций в индустрии. По крайней мере у крейтов, которые используют больше чем 1.5 землекопа.
| |
7.263, n00by (ok), 08:30, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Почему бы не собирать доки сразу из отдельного файла с доками?
> Зачем в исходники то тянуть что попало из каких-то файлов?
Потому что процесс под названием "комментировать код" является приёмом реверс-инженерии. Когда разработка прямая, сначала формулируются требования к коду, а потом уже сам код. Когда требования и код расположены рядом, проще сохранять их соответствие. Таким образом возникли doxygen и подобные системы. Потом уже в них добавили опцию "вот этот файлик хорошо бы целиком включить в документацию".
| |
|
|
9.363, n00by (ok), 16:21, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Документация ведь делится на несколько уровней Есть и краткое описание проекта ... текст свёрнут, показать | |
|
|
|
|
|
|
|
2.46, Аноним (46), 23:14, 29/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
В cargo doc появилась поддержка не только api документации, поэтому теперь не обязательно нужен дополнительный тулинг, чтобы писать гайды, туториалы и проч подобные вещи.
| |
|
|
|
3.165, Аноним (165), 03:10, 30/07/2021 [^] [^^] [^^^] [ответить]
| –6 +/– |
Дак вон оно что, Михалыч... Потому ошибки и вылазят.
> Инкрементальная компиляция была отключена в выпуске 1.52.1 из-за выявления скрытых ошибок | |
|
4.273, Аноним (273), 08:48, 30/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
Могу только предположить, но вероятно это происходило из-за логических ошибок в реализованных алгоритмах, а не из-за обращения к памяти после ее освобождения или выхода за границы буфера и т.п., что составляет 70-80 процентов ошибок в прогах на C/C++
| |
|
5.553, Kuku (?), 00:28, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
Давайте не будем бла-бла-бла. Среднестатистически даже в релизах ПО 90 процентов ошибок - логические. А потом уже идут эти ваши обращения к освобожденной памяти и прочая фуета.
Интересно, как в расте борются с этой проблемой, учитывая то, насколько на нем неудобно выражать свои мысли, в отличие от того же питона, к примеру
| |
|
6.614, Аноним (246), 10:34, 02/08/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Мне вот удобно выражать свои мысли на русском, чуть менее удобно на английском, поскольку не родной, а на китайском совсем неудобно, ведь я им не владею. А китайцу ровно наоборот.
С языками программирования та же ситуация.
| |
|
7.629, Аноним (629), 14:02, 02/08/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А китайцу ровно наоборот.
Очень удачный пример.
У китайцев новые слова для новых, выявленных в науке, понятий каждый афтор придумывает сам. И, очень часто, одному и тому же понятию соответствует десяток слов, каждое из которыйх длинной в 20 иероглифов. И не читая книг, где эти понятия вводились, ты даже приблизительно не можешь понять о чем речь. Ибо именно в книгах приводится ассоциативный ряд, который привел к возникновению данной последовательности иероглифов.
Так что да. Пример очень показательный.
| |
|
|
|
4.306, anonymous (??), 11:09, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Есть какой-то компилятор в котором не допускали ошибок? Или какой-то язык, на котором не допускали ошибок?
| |
|
3.248, leap42 (ok), 06:51, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Он уже на расте.
Это как говорить что весь веб на JS, игнорируя весь бэкенд на PHP,Java,C#,Ruby,Go и т.д.
| |
|
4.546, . (?), 23:02, 31/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
А кто сказал что rustc только llvm умеет? Кроме другого бекенда написанного на C++ (gcc, он был недавно принят), уже давно поддерживается cranelift, а он целиком на Rust написан
Пускай cranelift пока не может соревноваться по скорости работы выхлопа с llvm (Для x86, основные усилия в нём брошены в сторону wasm), он уже работает, и для дебаг билдов его некоторые используют из за его высокой скорости компиляции
| |
|
|
|
1.22, Кир (?), 22:52, 29/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –8 +/– |
> макросов, напоминающих функции (процедурные макросы и макросы, созданные при помощи макроса "macro_rules!"). От функций подобные макросы отличаются символом "!" после имени (macro!(...)) и подстановкой исходного текста макроса вместо генерирования вызова функции
Они наконец изобрели inline-функции? %D
| |
|
2.29, Кир (?), 22:56, 29/07/2021 [^] [^^] [^^^] [ответить]
| –5 +/– |
Или, слава ржавчине, они изобрели #define? Непонятненько...
| |
|
3.32, Аноним (24), 22:58, 29/07/2021 [^] [^^] [^^^] [ответить]
| +13 +/– |
Макросы C - худшие макросы ever, не надо их тут вспоминать, пожалуйста
| |
|
4.75, Хан (?), 23:46, 29/07/2021 [^] [^^] [^^^] [ответить]
| –5 +/– |
Макрос это не часть языка это препроцессор компилятора и чем же макросы rust лучше чем си?
| |
|
5.86, Аноним (46), 00:01, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Действительно, наверное и в стандартах языков С и С++ ничего нет про макросы?
А про разницу можно легко найти в гугле.
| |
|
6.88, Хан (?), 00:08, 30/07/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
Спецификация C или C++ описывает не только сам язык, а еще например язык макросов для компилятора
А спецификация Java или C# описывает байткод, но ты же не пишешь на байткоде?
Есть технические особенности реализации того или иного ЯП которые отражены в стандарте ЯП, имеющие коственное отношение к ЯП и прямое к его компиляции или интерпритации, тобишь исполнению
| |
|
|
8.113, Хан (?), 01:25, 30/07/2021 [^] [^^] [^^^] [ответить] | –3 +/– | Помню был тут один поехавший который мне доказывал что язык Си это ООП язык толь... текст свёрнут, показать | |
|
|
6.90, Хан (?), 00:12, 30/07/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
Стандартная библиотека тоже отношения не имеет к синтаксису ЯП, она лишь описывает API для взаимодействия с окружением внутри ОС, но это же не мешает ей быть в стандарте
| |
|
|
8.108, Хан (?), 01:16, 30/07/2021 [^] [^^] [^^^] [ответить] | –4 +/– | Хм, ЯП может считаться то что компилируется напрямую в машинный код неважно как ... текст свёрнут, показать | |
8.114, Хан (?), 01:27, 30/07/2021 [^] [^^] [^^^] [ответить] | –4 +/– | Синтаксис ЯП так или иначе имеет машинное отображение в виде исполняемого файла ... текст свёрнут, показать | |
|
|
|
5.111, Аноним (-), 01:19, 30/07/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
> Макрос это не часть языка это препроцессор компилятора и чем же макросы 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, лучше примотанного на синюю изоленту независимого текстового препроцессора, которому неведомы ни имена переменных, ни области видимости, ни прочее "ненужно"?
| |
|
6.116, Хан (?), 01:38, 30/07/2021 [^] [^^] [^^^] [ответить]
| –4 +/– |
Макросы это тупо подстановка кода из макросов в код программы, иначе говоря шаблонизатор... какое нафиг AST причем здесь оно?
Функциональный макрос это шаблон заполнения кода внутри него до этапа компиляции
Вышеприведенный тобой дефайн вычисляется только один раз на этапе компиляции после чего в место вызова дефайна просто подставляется вычисленное значение и все, то есть никакой не о какой динамической вычислимости дефайнов в процессе работы программы и речи быть не может
Ну и классическое, раз дефайн это тупо шаблонизатор подставляющих значения никакой проверки типов входящих значений в нем нет
| |
|
7.126, Аноним (-), 02:15, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Макросы это тупо подстановка кода из макросов в код программы, иначе говоря шаблонизатор... какое нафиг AST причем здесь оно?
"новое определение макроса бай опеннетный аноним"
>>> чем оно лудьше?
>> классический пример, почему препроцессор - это костыль
> то есть никакой не о какой динамической вычислимости дефайнов в процессе работы
> программы и речи быть не может
> Ну и классическое, раз дефайн это тупо шаблонизатор подставляющих значения никакой проверки
> типов входящих значений в нем нет
"Папа, где море?!" (c)
| |
|
8.132, Хан (?), 02:24, 30/07/2021 [^] [^^] [^^^] [ответить] | –1 +/– | Ответь умник где найти код дефайна в обьектном файле Ах да я ж забыл что он сущ... текст свёрнут, показать | |
|
9.148, Аноним (-), 02:44, 30/07/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Зачем мне отвечать на твои бредовые фантазии, невежда, у которого дефайн вычисл... текст свёрнут, показать | |
|
8.133, Хан (?), 02:25, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | И не трави за подстановки дефайна, ты скажи где он как машинный код в обьектном ... текст свёрнут, показать | |
|
|
6.117, Хан (?), 01:40, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Короче разберись что такое макросы, инлайн функции и обычные функции чем они отличаются, а то у тебя венегрет какой то в голове
| |
|
7.138, Аноним (-), 02:30, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>> макросы, которые часть языка и "умеют" в AST
>> ... ни имена переменных, ни области видимости,
> какое нафиг AST причем здесь оно
> Функциональный макрос это шаблон заполнения кода внутри него до этапа компиляции
> Короче разберись что такое макросы, инлайн функции и обычные функции чем они отличаются, а то у тебя венегрет какой то в голове
Подсказка: для начала подтяни базовые (в смысле ВУЗа, а не школьных уроков информатики) знания по ЯП -- и многое перестанет быть "венегретом".
| |
|
6.128, Хан (?), 02:20, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Хотя вычисление макроса на этапе компиляции вроде нигде не прописано, поэтому в старых компиляторах применяется обычный копипаст
Ну и не все макросы можно вычислить, тот же printf например который работает со стандартным потоком ОС
Поэтому для каноничности без особо умных компиляторов, будем считать макросы копипастой
| |
|
7.272, n00by (ok), 08:44, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Смотрите раздел Translation phases. Препроцессор это отдельная фаза трансляции, семантический анализ и трансляция (компиляция) идут несколько позже, после чего происходит связывание (линковка).
| |
|
|
5.234, Аноним (246), 05:41, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Макросы раста - это конструкции языка, а не препроцессора. Уместнее сравнение с темплейтами в плюсах.
| |
|
|
|
|
1.23, Аноним (24), 22:53, 29/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
Постепенно углубляюсь в этот язык, кайфую
После C/C++ совсем сказка, море возможностей и удобств, при этом высокая производительность
Советую всем, даже кого C/C++ держит и точно не отпустит. С разбором Раста приходит большее понимание, как лучше писать код вообще.
| |
|
2.28, Аноньимъ (ok), 22:56, 29/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Лисп попробуйте, схему какуюнить, Racket например.
Много почерпнёте.
| |
|
3.35, Аноним (40), 23:03, 29/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Спасибо за рекомендацию!
К сожалению, как-то так складывается, что не перевариваются скобочные языки с фп в чистом виде. А вот элементы фп в других языках - приятное дополнение к их возможностям.
| |
|
4.225, Аноним (246), 05:15, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Да нет в этих лиспах никакого чистого ФП. В scheme ФП, конечно, побольше, чем в CL, но по сути там столько же ФП, сколько его в современном Джаваскрипте.
За чистым ФП - в Haskell, ну или к некоторым языкам семейства ML.
| |
|
5.292, Аноним (290), 09:41, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
для haskell нужно вспоминать забытый после универа матан( подзабил в своё время на его изучение
| |
|
6.403, Аноним (547), 18:43, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да не надо там никакого матана. Просто он из академической среды, и потому им привычнее в терминах теории категорий рассуждать. На самом деле всё это объясняется на пальцах элементарно: http://learnyouahaskell.com/
| |
|
|
|
3.554, Kuku (?), 00:39, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
Напоминает хаскелевский хайп надцатилетней давности. Потом как-то все устаканилось, и язык трехсот головоломных способов вычисления чисел Фибоначчи занял почетное место во главе промышленно используемых языков, но с конца.
Тем же окончится и абсолютистский подход к "безопасности использования памяти", когда без ансейфа код становится пароксизмом пи*доватизма, а безопасность страдает уже от множества других проблем, решение которых так и не удается загнать вместо линтера в компилятор ))
| |
|
4.558, Аноньимъ (ok), 01:22, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
Напоминает.
Но все-же хаскель был немного о другом. Если я верно понимаю, фишка хаскеля это корректность и верифицируемость (ещё про ленивость много шутили)
В то время как фишка раста, это универсальность в первую очередь но с сахаром и плюшками.
Раст можно сравнить в этом плане с котлином например.
Учитывая, что раст даже вот в линукс ядро пропихивают, есть некие надежды на то, что будет он чуть более популярнее хаскеля.
| |
|
5.674, wyry (?), 14:54, 14/12/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Это другое А так история циклична, а ПО как писали на C C , JVM-семействе, т... большой текст свёрнут, показать | |
|
6.676, Аноньимъ (ok), 18:01, 14/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
Да, лучше бы типизированный лисп развивали конечно.
Я после того как осилил лисп смотрю на сиподобные языки как на ужасное нечно. Непонятно зачем вообще сделанное.
| |
6.678, Аноньимъ (ok), 18:09, 14/12/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Rust же до сих пор не вышел из состояния зародыша, НО УЖЕ покрылся ржавчиной (собственно правдивое название), причём язык даже не умудрился привнести вообще ничего нового. На C++ почти на всю функциональность Rust есть свои приёмы, можно без труда писать на C++ в стиле Rust и заиметь все те преимущества (не очень то и существенные) которые он даёт.
Мне нужно написать на расте что нибудь достаточно объемное чтобы как-то об этом судить. Давно собирался, да руки как-то не доходили. Изис Агора Лавкрафт вроде отзывалась положительно о расте, надо в общем самому посмотреть.
А вас случайно на OSDN Conf 2021 не было?
| |
|
|
|
|
2.31, Кир (?), 22:57, 29/07/2021 [^] [^^] [^^^] [ответить]
| –5 +/– |
Углубляйся. Даже, можно сказать, погружайся! Смотри только, метаном не задохнись.
| |
|
3.34, Аноним (40), 23:00, 29/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Метаном пованивает, когда возвращаюсь C/C++
После Раста весьма прискорбное занятие.
| |
|
4.39, Кир (?), 23:05, 29/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Это ты просто не переоделся после погружений в раст.
| |
|
5.41, Аноним (40), 23:09, 29/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Ты же понимаешь, что после Раста это и правда совершенно ниочемные языки?
Особенно пустой C, в C++ хотя бы стандартная либа более-менее что-то из себя представляет (впрочем, нетворка всё равно до сих пор нет)
| |
|
6.47, Кир (?), 23:14, 29/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
А можно больше конкретики? Что именно позволяет сделать раст такого, чего нельзя (причем эффективнее) сделать на плюсах?
| |
|
7.56, Кир (?), 23:26, 29/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Вот интересно, ярый фанат раста уже полчаса ничего не отвечает на этот простой вопрос... Отчего бы?
| |
7.68, Anonnnym (?), 23:34, 29/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Что именно позволяет сделать раст такого, чего нельзя (причем эффективнее) сделать на плюсах?
Ну вот представь, понадобилось тебе выделить голой памяти через new. Не знаю зачем, просто понадобилось, и ты забыл потом вызвать delete - в плюсах ты получишь ворнинг, а в расте не получишь, потому что для выделения голых байтов, тебе придется нырнуть в unsafe.
| |
|
8.275, n00by (ok), 08:51, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Если не знаете зачем понадобилась память, то и ошибки, вероятно, нет это одна и... текст свёрнут, показать | |
|
7.87, ПомидорИзДолины (?), 00:04, 30/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
Растовские маркросы - это просто песня. После них в сторону темплейты, даже с концептами, смотреть вообще не хочется.
| |
|
8.94, Кир (?), 00:33, 30/07/2021 [^] [^^] [^^^] [ответить] | –1 +/– | Ну приведи же пример песни, что-нибудь такое, что заставит всех ахнуть от восхищ... текст свёрнут, показать | |
|
|
10.118, Кир (?), 01:47, 30/07/2021 [^] [^^] [^^^] [ответить] | –1 +/– | То есть блеснуть киллер-фичей не могём, понятно Ладно, не расстраивайся, продол... текст свёрнут, показать | |
|
11.549, . (?), 23:41, 31/07/2021 [^] [^^] [^^^] [ответить] | +/– | Ну как пример которым пользуются в любой кодовой базе на Rust А фич у макросов ... текст свёрнут, показать | |
|
|
|
|
7.238, Аноним (246), 06:04, 30/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
Раст переносит гарантии смартпоинтеров в компайл тайм, убирая соответствующий рантайм-оверхед. Цена за это - когнитивная нагрузка, надо вникнуть в принципы, перестроить мышление, ну и временами уговаривать компилятор, чтобы он понял, что тут все окей (поскольку полный статический анализ сделать невозможно ввиду проблемы останова).
В остальном, конечно, разницы особо нет, больше вопрос предпочтений.
| |
|
8.241, Аноним (246), 06:15, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Кстати, в теории возможно реализовать аналог компайл-тайм модели Раста на плюсов... текст свёрнут, показать | |
|
9.404, Аноним (547), 18:46, 30/07/2021 [^] [^^] [^^^] [ответить] | +2 +/– | У unique_ptr никакого, а вот у shared_ptr есть В Расте же compile time refcount... текст свёрнут, показать | |
|
|
7.303, red75prime (?), 10:36, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Что именно позволяет сделать раст такого, чего нельзя (причем эффективнее) сделать на плюсах?
Писать код без ошибок (инвалидация итераторов, exception unsafety, data races). А насчёт функциональности программ: что такого можно сделать в С++, чего нельзя (причём эффективнее) сделать на ассемблере?
| |
|
8.328, Кир (?), 13:37, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Что-то, судя по постоянным растопроблемам, нифига не получается Детка, ни о... текст свёрнут, показать | |
8.412, n00by (ok), 19:12, 30/07/2021 [^] [^^] [^^^] [ответить] | –1 +/– | Вычисления во время трансляции Из ассемблеров только fasm на это способен я не... текст свёрнут, показать | |
|
9.480, Кир (?), 00:14, 31/07/2021 [^] [^^] [^^^] [ответить] | –1 +/– | Стоп, ты сейчас написал, что C не умеет в вычисления на этапе компиляции Серь... текст свёрнут, показать | |
|
|
7.453, freecoder (?), 22:41, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Дело не в том, что Rust _позволяет_ сделать такого, чего нельзя на плюсах, а в том, что Rust _не позволяет_ делать, в сравнении с плюсами.
| |
|
6.179, Хан (?), 03:38, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
У C++ есть два плюса Boost и Qt, ну и сишные либы ему как родные
| |
|
7.475, Аноним (24), 00:01, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Буст - весьма специфическая штука и нужна именно языку C++
В Расте заменяется стандартной либой и некоторыми крейтами
Интеграция с Qt есть
| |
|
|
|
4.43, Кир (?), 23:12, 29/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
А почему ты пишешь C/C++? Не видишь разницы? Еще один товарищ из криокамеры с томиком Ритчи 80-лохматого года издания?
| |
|
5.309, anonymous (??), 11:16, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Он как раз видит разницу и она не в пользу раст. Например, на раст невозможно реализовать даже вектор - придётся лезть в ансейф.
| |
5.477, Аноним (24), 00:03, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Потому что у C++ все те же болячки C и уши из 80-90ых
Да, C++ лучше, особенно для прикладного применения, но все новинки не избавляют его от древних болячек, увы
Они даже побоялись аби нарушить ради увеличения производительности
| |
|
|
5.193, Аноним (193), 04:08, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это он природный без запаха, а тут после интенсивной газификации малых водоёмов.
| |
|
|
|
2.38, Кир (?), 23:05, 29/07/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
А вообще, хочешь совет? Если хочешь реально посмотреть на программирование с новой стороны, попробуй Haskell. Очень интересная, хотя и временами мозговыносящая штука.
| |
|
3.51, Аноним (46), 23:21, 29/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
На Rust после C++ и Haskell мне было довольно приятно перейти. Теперь на нём фулл-тайм и пишу.
| |
|
4.310, anonymous (??), 11:18, 30/07/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
Ты забыл уточнить кое-что важное - пишешь хэлворды за бесплатно. Интересно, какой в этом смысл?
| |
|
|
2.127, adolfus (ok), 02:18, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Спецификация этого раста существует Строгое описание синтаксиса, ситуации неопр... большой текст свёрнут, показать | |
|
3.181, Хан (?), 03:40, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Даже видео на эту тему Страуструп запи ывал))) но вы ни понимаете это другое
| |
3.299, Аноним (299), 10:08, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Правда? А чего для многих проектов указывают конкретные версии компиляторов?
Ибо на последних оно не соберется
| |
|
4.311, anonymous (??), 11:21, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Я тебе сектрет открою, там указывают _протестированные_ компиляторы и их версии.
| |
|
3.620, anonymous (??), 11:56, 02/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
Вообще-то если даже взять один и тот же компилятор Си (одной и той же версии) и попробовать собрать (и запустить) проект в других условиях (например, другая ОС), то уже вылезает тонна проблем. А если ещё и версию поменять, то ещё выползут. А если ещё и другой компилятор взять, то ещё выползут. Как минимум тупо разные UB создадут проблем. Я уж не говорю про такие мелочи, как -Werror делает тонну проектов не собираемых почти всегда (а без этого флага в коде копится ещё больше UB).
Но даже если забить на это, тут ещё проблема в том, что язык превращён в свалку (особенно последние С++).
Кстати говоря, не помню, чтобы в Go был стандарт, но там как раз без проблем можно собирать (и запускать) старые проекты.
| |
|
2.270, Брат Анон (ok), 08:43, 30/07/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
Что только люди не сделают. Лишь нормальные языки не учить.Согласен переход с извращения на другое извращение -- несколько разнообразит боль.
| |
|
3.478, Аноним (24), 00:05, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
А какие есть нормальные с производительностью уровня раста / c++?
И такие, чтоб популярные, а не ним или кристал
| |
|
4.564, Брат Анон (ok), 08:39, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
> А какие есть нормальные с производительностью уровня раста / c++?
> И такие, чтоб популярные, а не ним или кристал
При чём тут производительность? Если в С++ проблемы с текущей памятью, а в расте с концептуальной перегруженностью (и это только начало) -- как это поможет в написании надёжного софта?
Что ним, что кристалл -- одинаковые поделки любителей, попытка подражания мейнстриму.
Хочешь глоток свежего воздуха? Смотри в сторону Обероно-подобных языков. Например, MultiOberon. Если хочешь зашаливающей производительности -- посмотри на тесты варианта Оберона "Vostok". Там тебе и десктоп, и JVM, и ведроид. Ты сожешь попробовать Оберон прямо сейчас в песочнице браузера. Ссылки гуглятся на раз.
| |
|
|
|
7.615, Аноним (571), 11:13, 02/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
> В 60% реализаций Оберонов нет никакого GC
Ссылку можно хоть на одну реализацию и чтобы там прямо говорилось что без GC. А то гугль наоборот больше подсовывает ссылки как оберон умеет в GC даже в ядерном коде.
| |
|
|
|
|
11.665, Аноним (665), 11:11, 06/08/2021 [^] [^^] [^^^] [ответить] | +/– | Судя по пдфкам последний раз 8 лет назад обновленным, оно там всегда было Я про... большой текст свёрнут, показать | |
|
|
|
|
7.650, Аноним (246), 08:55, 03/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
Если уж говорить о промышленных языках, на которых написано вот всякое такое, то это Ada.
А оберон это для узкого круга фанатов, он слишком уж вещь в себе.
| |
|
|
|
|
|
2.630, Аноним (630), 14:53, 02/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
За него уже деньги платят? Трудяг реальных для интересных и стабильных работ ищут?
| |
|
1.45, Anonnnym (?), 23:13, 29/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
> управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора
lockfree без GC, или при чем тут упоминание параллелизма?
| |
|
2.92, Хан (?), 00:27, 30/07/2021 [^] [^^] [^^^] [ответить]
| –14 +/– |
Есть там GC, сказки растоманов про некую магию избавлющую от всех проблем это полная туфта
| |
|
3.120, Aukamo (ok), 01:51, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Приведите ссылку на строку(и) кода, благо Rust на Github есть, показывающего что в расте есть GC. Очень интересно посмотреть. Под GC имеется в виду именно runtime\времени исполнения.
| |
|
|
|
6.172, Хан (?), 03:24, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Ахахаха вот это да сильно... выдавать за ноухау подобие умных указателей C++ !!! Это фиаско братан
| |
|
7.237, Аноним (246), 05:57, 30/07/2021 [^] [^^] [^^^] [ответить]
| +5 +/– |
На плюсах с умными указателями и RAII в смысле управления памятью и получится примерно Rust.
Принципиальных отличий два (и они тесно взаимосвязаны). Первое - это (почти) нулевой оверхед, поскольку проверки в Расте делаются в компайл-тайм (да, в это сложно поверить, видя впервые, надо вникать :). Второе - невозможность нарушения RAII заложена в дизайн языка, просто не скомпилируется.
| |
7.396, Sem (??), 18:28, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Поздравляю с разморозкой.
Лучше бы доку по расту почитал, чем время тратить на такие комментарии.
| |
|
6.173, Хан (?), 03:24, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
По секрету... чисто между нами... умные указатели это тоже разновидность GC...прикинь да...
| |
|
7.261, Aukamo (ok), 08:09, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Cемейство: Box, Rc, Arc, Cell и т.д. можно отнести к умным указателям, имеющим runtime overhead. Я уже говорил что говоря о GC имеется именно runtime а не механизм чистки. В основном, всё держится на механизме владения, и там никакого overhead-а нету, + ZST https://doc.rust-lang.org/nomicon/vec-zsts.html (о таком раньше вообще не слышал, если кто знает - дайте ссылку, интересно). Если что-то надо подчистить раньше чем это сделает компилятор - есть функция 'drop'.
| |
|
|
|
10.315, n00by (ok), 12:13, 30/07/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Спасибо, во втором случае увидел практический смысл В примере имеется два блока... большой текст свёрнут, показать | |
|
|
12.339, Аноним (-), 14:41, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Я бы дал ссылку на https doc rust-lang org nomicon phantom-data html там и при... большой текст свёрнут, показать | |
|
|
|
9.509, Aukamo (ok), 10:28, 31/07/2021 [^] [^^] [^^^] [ответить] | +/– | Rust ими активно пользуется в стандартной библиотеке, но в эту сторону я не силь... большой текст свёрнут, показать | |
|
|
7.278, n00by (ok), 09:06, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Умные указатели это разновидность автоматического управления памятью, как и сборка мусора. Путаница возникает, поскольку и там и там есть варианты с подсчётом ссылок.
| |
7.561, Аноним (571), 08:14, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
То есть по твоему получается что C++ это тоже язык с GC? Ведь разницы у него с растом по подержке умных кказателей практически нет.
| |
|
|
|
|
|
|
3.437, Аноним зеленый (?), 20:25, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
О "безопасном" параллелизме в раст пишут только по одной причине. О подмножестве состояний гонки - гонки по данным. "когда разные потоки обращаются к одной ячейке памяти без какой-либо синхронизации и как минимум один из потоков осуществляет запись."
Такое в раст запрещено правилами владения/заимствования и не скомпилируется. Остальные гонки (логические) конечно приведут к дедлокам.
| |
|
4.507, n00by (ok), 09:17, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> О "безопасном" параллелизме в раст пишут только по одной причине. О подмножестве
> состояний гонки - гонки по данным. "когда разные потоки обращаются к
> одной ячейке памяти без какой-либо синхронизации и как минимум один из
> потоков осуществляет запись."
Если один _писатель_, то где там гонка? Запись одной ячейки атомарна. Скорее всего, вместо записи имелась ввиду модификация.
| |
|
|
|
1.50, Хан (?), 23:20, 29/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Неужели нельзя сделать не столь адовый синтаксис? Такое чувство что это C++ под веществами
| |
|
2.54, Аноним (46), 23:25, 29/07/2021 [^] [^^] [^^^] [ответить]
| +3 +/– |
Нормальный синтаксис, просто для некоторых незнакомый и непривычный, потому что нет опыта с ML-языками например.
| |
|
3.60, Хан (?), 23:30, 29/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Нормальный? В каком месте? Это же кому то взбрело в голову скрестить ML-языки в которых шарит 3,5 анонимуса и ООП вроде C++/Java/C# которое знают процентов 90... от чего получился Rust который могут понимать все теже 3,5 анонисуса
| |
|
4.101, Аноньимъ (ok), 00:45, 30/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
> ML-языки в которых шарит 3,5 анонимуса
То что вы не шарите, не означает, что шарит мало людей.
> и ООП
И в чём тут проблема? ООП родной подход для функциональных языков.
| |
|
5.139, Хан (?), 02:31, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Аудитория OCaml, F#, Haskell, Lisp как бы намикает на популярность и понятность ФП
Особняком стоит Erlang который также непонятен но кое где взлетел
| |
|
6.216, Аноньимъ (ok), 04:46, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Аудитория OCaml, F#, Haskell, Lisp как бы намикает на популярность и понятность ФП
Вы забыли Javascript и Python.
| |
|
7.436, Хан (?), 20:21, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
JS в котором любой базовый тип это обьект? Хммм не знал что в ФП все обьект и наследование есть через прототипы, хотя это уже неактуально в новом JS наследование правильное
| |
|
|
|
4.122, Aukamo (ok), 02:00, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
С чего вы вдруг взяли что в Rust есть ООП? ООП держится на 3х китах: инкапсуляция, наследование, полиморфизм. Можете начать пояснять начиная с наследования.
| |
|
5.140, Хан (?), 02:33, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Ключевое слово "Скрестить" ФП и ООП... понятное дело что нормальным ООП там и не пахнет
| |
|
6.147, Aukamo (ok), 02:44, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Т.е. ваше экспертное мнение таково, что LINQ для C# как и сам С# не состоятелет в силу того что используются 2 таких несовместимых подхода как ФП и ООП?
| |
|
7.152, Хан (?), 02:52, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
C# изначально спроектирован как ООП язык, различные фичи добавлялись походу, так что дефолтная концепция не пострадала
Скажи еще что у Java плохое ООП из за того что туда добавили лямбды
| |
|
|
5.143, adolfus (ok), 02:38, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не три кита, а гораздо больше, причем главный из них -- это обмен сообщениями между объектами, чтобы передавать информацию, а не вызовы "методов". Кстати, в C++ вообще нет методов, только функции-члены классов.
| |
|
6.150, Aukamo (ok), 02:49, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Не три кита, а гораздо больше
Нить рассуждений потеряна. Я выступил с критикой сравнения стуктур в Rust с ООП, в то время как вы.. не знаю о чём говорите.
| |
|
7.527, adolfus (ok), 15:32, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>> Не три кита, а гораздо больше
> Нить рассуждений потеряна. Я выступил с критикой сравнения стуктур в Rust с
> ООП, в то время как вы.. не знаю о чём говорите.
О том, что "три кита" инкапсуляция, наследование, полиморфизм для ООП вторичны, а первичен обмен сообщениями. Эти три кита появились в дискурсе потому, что не смогли в сообщения.
| |
|
|
5.191, Аноньимъ (ok), 04:05, 30/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
>инкапсуляция, наследование, полиморфиз
Никакого отношения к ООП не имеет.
Это система типов страуструпа.
| |
|
6.205, Хан (?), 04:30, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Бредишь истинным ООП Алана Кея на клеточном уровне? Лол конечно, но это лютые тормоза... для примера можешь написать программу где каждая функция будет отдельным процессом и любой чих будет вызывать ОС для передачи сообщений через пайпы
| |
|
7.231, Аноним (246), 05:36, 30/07/2021 [^] [^^] [^^^] [ответить] | +2 +/– | Концепция не имеет никакого отношения к вопросам производительности Концепция -... большой текст свёрнут, показать | |
|
8.253, Хан (?), 07:48, 30/07/2021 [^] [^^] [^^^] [ответить] | –1 +/– | Действительно я то думал, че смолтолк так взлетел с его передачей сообщений Пря... текст свёрнут, показать | |
|
|
|
5.228, Аноним (246), 05:26, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
На трёх китах держится плоская земля. А для ООП достаточно понятия контракта и объекта как чёрного ящика, поддерживающего контракты.
Способ реализации в плюсах, позаимствованный из Симулы - это лишь способ реализации. Читайте Алана Кея, короче.
| |
|
6.259, Хан (?), 08:01, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
ООП Кея больше подходит для сетей, в чем и нашло себя в виде микросервисов.... но в программе ООП по Кею не канает
| |
|
7.413, Аноним (547), 19:12, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Если воспринимать буквально, то не канает А если немного переформулировать, и д... большой текст свёрнут, показать | |
|
|
|
|
3.282, n00by (ok), 09:12, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Нормальный синтаксис, просто для некоторых незнакомый и непривычный, потому что нет опыта
> с ML-языками например.
Это не синтаксис. Когда вместо return пишется просто значение - в случае ML это семантика. Получается, что Rust исходно функциональный с императивными возможностями. Отсюда все споры и отторжение его как "замены Си".
| |
|
2.93, Rev (?), 00:33, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Адовый синтаксис только если использовать дженерики и указание времён жизни. Но есть секрет - можно их не использовать :-D
| |
|
3.125, Aukamo (ok), 02:03, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
А ещё можно разобраться в том как это всё работает, говорят помогает. + относительно новые версии раста много чего уже делают сами (вроде как в 1.28+ много сахара добавили)
| |
|
2.121, topin89 (ok), 01:58, 30/07/2021 [^] [^^] [^^^] [ответить]
| +6 +/– |
Из всех языков на выбор, ты выбрал C++ для сравнения? C++?
С его шаблонами шаблонов шаблонов, где чёрт ногу сломит понять, как и что устроено, если писал не ты? И они при этом _не могут_ полностью заменить макросы для такой банальной вещи, как определить, под какую ОС компилируем.
Язык, в котором в try catch можно упихнуть всю функцию, примерно так:
void func() try {} catch(...) {}
Язык, в котором для проброса rvalue-ссылок нужно городить огород из шаблонов и std::forward? Вместе с самими rvalue/lvalue ссылками.
Язык, в котором до недавней редакции простая конкатенация векторов превращалась в квест с двумя begin'ами и одни end'ом?
Вместе с тем в новой редакции появились концепты с ещё одним новым, интересным синтаксисом?
Да по библиотекам, unique_ptr должен был быть очень простой, очень эффективной обёрткой над обычным указателем, с буквально нулевым оверхедом. Гугловцы выяснили, что оверхед дам огого, и без поломки совместимости это не исправить.
По самыми медленными регулярками в одном из самых быстрых языков только ленивый не прошёлся.
Тут доолллго продолжать можно. Можешь Мейерса почитать, там все эти кейсы прекрасно описаны. Да, у них была причина. Да, обратная совместимость, да, исторические причины, но суть это не меняет.
Rust -- это C++ без веществ, а не наоборот. Не уверен, помогут ли эпохи остаться таковым, но очень надеюсь.
Чего мне не хватает в нём -- это пользовательские литералы, типа 10ms вместо Duration::from_millis(10). Было предложение, но что-то заглохло.
| |
|
3.129, Aukamo (ok), 02:22, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Если постараться, на Rust можно написать код который будет куда хуже того что вы... большой текст свёрнут, показать | |
|
4.325, Ordu (ok), 13:25, 30/07/2021 [^] [^^] [^^^] [ответить] | +2 +/– | В генерируемой документации есть ссылки на все трейты типа Ты можешь вниз прокр... большой текст свёрнут, показать | |
|
5.512, Aukamo (ok), 11:01, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Не знаю, может меня не так поняли, я Rust пользуюсь, относительно, давно. Критика была не вида "в Rust нету .." а, скорее, "хотелось бы чтобы было ..". Я понимаю, что к Rust можно привыкнуть, или, как минимум, попытаться. Да и то что я им пользуюсь никак не умоляет факт наличия косяков, ну прям совсем.
| |
|
|
3.144, Хан (?), 02:39, 30/07/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
Ключевое слово "Синтаксис" C++, а не детали реализации его стандартной либы или грязных костылей во имя совсестимости...
А Rust чисто синтаксис адовее C++ и это без всяких требований обратной совместимости не только с C98 но и с C89...
Казалось бы делайте с чистого листа, вы не обременены различными комитетами но все как всегда
| |
|
|
5.332, Ordu (ok), 14:00, 30/07/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Хорошая ссылка Но мне кажется не поможет Люди лезущие на баррикады из-за синта... большой текст свёрнут, показать | |
5.343, Хан (?), 14:52, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ты ссылку на хабр кинь пацанам из Microsoft, а то они не знали как нужно и значит сделали C# с одним из самых чистых и читаемых синтаксисов в статически типизированных языках
| |
|
6.349, Аноним (349), 15:56, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Как-то по последним версиям шарпа не видно что это "одним из самых чистых и читаемых синтаксисов в статически типизированных языках" там уже навортили почти как в C++. Хотя у ms есть такой чистый и очень читабельный язык - это F#.
| |
|
7.560, Хан (?), 03:41, 01/08/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Даже если вручную удалять обьекты в C# синтаксис читается сразу, а не после пару банок темного нефильтрованного
| |
|
|
|
|
3.369, Кир (?), 16:48, 30/07/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Ты правда настаиваешь, что code cfg target_os macos fn macos_only ... большой текст свёрнут, показать | |
|
4.628, Аноним зеленый (?), 13:44, 02/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
>проделай на расте
Я не тот чел, но вот константная функция которая вычисляется во время компиляции.
const fn power_of_two(n: u32) -> u32 {
if n & (n-1) != 0 { panic!("oops"); }
return n;
}
| |
|
5.655, Кир (?), 00:22, 04/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
Нет, мне не нужно, чтобы функция вычислялась в компайл-тайме, мне нужно, чтобы компилятор проверил, что шаблон параметризуется не абы каким целым N, а степенью двойки. А работать функция должна в рантайме, выполняя N-точечное БПФ на данных, скажем, читаемых из файла.
| |
|
6.661, Аноним зеленый (?), 20:42, 05/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
Пока не запилили в языке, вот таким макросом можно:
macro_rules! const_assert {
($x:expr $(,)?) => {
const _: [(); 0 - !{ const ASSERT: bool = $x; ASSERT } as usize] = [];
};
}
Это ассерт статических значений - стадии компиляции. (Из крейта static_assertions)
| |
|
|
8.666, Ф1 (?), 13:58, 06/08/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Как художник художнику, у нас C программистов в этих глазах такое бревно, что ... текст свёрнут, показать | |
|
9.667, n00by (ok), 11:17, 07/08/2021 [^] [^^] [^^^] [ответить] | +/– | Чем-то отличается от устаревшего define STATIC_ASSERT COND,MSG typedef char s... текст свёрнут, показать | |
9.668, Кир (?), 14:45, 07/08/2021 [^] [^^] [^^^] [ответить] | –1 +/– | Серьезно Смотри, static_assert в C code template int N 256 auto fft ... текст свёрнут, показать | |
|
|
11.670, Кир (?), 02:30, 09/08/2021 [^] [^^] [^^^] [ответить] | +/– | Ты не поверишь, какой магии можно накрутить в C , но разве этим стоит хвастатьс... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
1.52, Аноним (52), 23:23, 29/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Какой язык выбрать новичку для изучения, чтобы потом грести бабло лопатой? rust, haskell, js, vlang, crystal, zig, java? Как я понимаю большие деньги можно заработать в кровавом энтерпрайзе, а они любят джавку, поэтому выбирать и не приходится. Только java?
| |
|
|
3.62, Хан (?), 23:32, 29/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Бред сказал... тип ну например он выбрал веб и тут... бац!!!
PHP
Python
Ruby
Бац
Java
C#
Бац бац
Go
| |
|
4.64, Аноньимъ (ok), 23:34, 29/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Бред сказал... тип ну например он выбрал веб и тут... бац!!!
Javascript.
| |
4.72, Аноним (46), 23:42, 29/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Веб - слишком широкое понятие. Там например есть и фронт, и бэк. Поэтому странно просто выбрать "веб". Это как выбрать "прикладное программирование". Лучше чем ничего, потому что отсекает какое-то множество языков, но всё ещё недостаточно специализировано, чтобы остановиться на паре.
| |
|
5.73, Хан (?), 23:44, 29/07/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
А это уже абстракция реального мира за который так критикуют ООП они могут быть сколь угодно вложенными друг в друга, совсем другое дело манямирки зумеров у них все просто и понятно... ровно до того момента написания кода
| |
|
|
|
2.63, Аноньимъ (ok), 23:33, 29/07/2021 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Какой язык выбрать новичку для изучения, чтобы потом грести бабло лопатой?
Русский, английский. Язык бизнес отношений и социальных связей.
>rust, haskell, js, vlang, crystal, zig, java?
Точно не поможет.
> Как я понимаю большие деньги
> можно заработать в кровавом энтерпрайзе
Нельзя.
Какие-то особые доходы есть сейчас у "блокчейн девелоперов", криптография вот это всё.
И, чуть поскромнее в машинном обучении и ИИ.
Попробуйте поучиться контракты для эфира писать.
Когда заработаете много денег отпишитесь, дам кошелёк для доната.
| |
|
3.91, Хан (?), 00:15, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
У нас только в банковском ИТ секторе водятся деньги, а там Java и C#
Все остальное это или 30-50 тыщ на госконторах или кукишь в статапах из сколково
| |
|
4.298, RomanCh (ok), 10:08, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
А "у нас" это где? Учитывая что сейчас можно удалённо работать примерно где угодно и деньги там отличаются на порядок. И это вовсе не говномешалки блокчейна или стартупы с "гибким графиком" на котором вас будут гнуть во все стороны в любое время дня и ночи.
Да и по ЯП особо плотного зажима в отрасли вроде как нет. Нормальным спецам платят везде.
| |
|
5.389, Хан (?), 18:01, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
В рфии на полную ставку официально, а так да аутсорс интернационален... но ипотеку под него не возьмешь((( таки дела
| |
|
6.443, RomanCh (ok), 21:10, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> В рфии на полную ставку официально, а так да аутсорс интернационален... но
Вы что, эникей что-ли? Сейчас на удалёнку берут в обычные организации где стандартное 5/2 и раньше все ходили в офис, но теперь то же самое из дома. Сам в такой работаю, у нас уже пол отдела в офисе ни разу не было и контора на несколько сот человек приросла с начала ковида. Понятное дело что там полный соцпакет и т.д. И таких контор на рынке вообще-то не одна и не две, а чуть более чем дофига и кадровый дефицит серьёзный.
> ипотеку под него не возьмешь((( таки дела
Мне тут недавно банк где зарплатный проект ипотеку на 25 млн. предлагал. Такие дела.
| |
6.444, Аноним (547), 21:18, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Если вбелую через ИП работать, и ИП больше, чем пара лет - никаких проблем нет.
| |
|
|
4.499, mma (?), 06:52, 31/07/2021 [^] [^^] [^^^] [ответить] | +/– | Может у вас местные царьки бизнеса до сих пор живут по принципу рабовладельцев... большой текст свёрнут, показать | |
|
|
|
3.289, Онаним (?), 09:38, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Пых ещё, как ни странно. Почти во всех кровавых ныне там, где нужна пристойная морда.
| |
|
4.366, Хан (?), 16:39, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Пых никуда не делся и все так же монопольно властвует в сети со своими то 70% то 80%
| |
|
3.632, Аноним (630), 15:00, 02/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
Да. Ентерпрайзу плевать на язык, он деньги делает и время экономит, поэтому использует языки с мощными фреймворками. А инты в циклах, кто быстрее, пацаны на форумах считают ...
| |
|
|
|
2.66, Аноним (46), 23:34, 29/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Бесплатно ништяков не бывает, за всё надо чем-то платить. Был бы Rust как Go - собирался бы так же быстро, как и Go.
| |
|
|
4.77, Аноним (80), 23:48, 29/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Го не орут на каждом шагу что безопасный. Хотя куда уж более безопасный.
| |
|
5.81, Хан (?), 23:52, 29/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну да, они просто им пользуются... а не мечтают изобрести чудоязык
| |
|
4.82, Аноним (46), 23:53, 29/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Преимущество в одном контексте является недостатком в другом. Rust как язык мощнее Go, но если команда на 75% из джунов, то это минус. Джуны на Go напишут лучше и быстрее, чем на Rust.
| |
|
5.83, Хан (?), 23:56, 29/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Так Go лучше получается?
И кстати да, за широкими как галактика возможностями это к C++, но это вещь в себе
| |
|
6.99, Аноньимъ (ok), 00:38, 30/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Так Go лучше получается?
Го хорошо подходит для написания сетевых сервисов.
Он именно для этого и создавался.
Ну или для чего-то с интенсивным IO.
Для всего остального, уже не так интересно.
| |
|
7.136, Хан (?), 02:27, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Ниша Go уже давно обозначена...
А для чего хорошо подходит Rust?
| |
|
6.235, Аноним (246), 05:44, 30/07/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
Что лучше - лопата или экскаватор?
Правильно, зависит от задачи.
| |
|
7.556, Kuku (?), 00:46, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
Так раст - это и есть лопата, в отличие от экскаватора Го. По скорости разработки, конечно. Зато потом скорость выполнения программ будет аж в 2-3 раза выше. Это ж жуть какая производительность!! ))
| |
|
8.566, Аноним (571), 08:40, 01/08/2021 [^] [^^] [^^^] [ответить] | +/– | Так написанно как будто го может на порядки ускорить разработку, такое видел тол... текст свёрнут, показать | |
|
|
|
|
4.277, Аноним (277), 09:03, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>В чем реальное преимущество Rust над Gо?
Ты ещё С++ с PHP сравни.
| |
|
5.528, Хан (?), 15:33, 31/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не могу, PHP интерпретируемый ЯП, C++ компилируемый ЯП
А вот Rust и Go можно оба компилируемые, оба с GC в исполняемом файле, оба с недоООП, оба системные
Только вот Go показал себя как годную технологию, а Rust как манямирок для идиотов вроде тебя
| |
|
6.531, Аноним (-), 16:04, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> А вот Rust и Go можно
> оба с GC в исполняемом файле,
> оба системные
Все продолжаешь газифицировать лужи?
| |
|
7.557, Kuku (?), 00:48, 01/08/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Там просто статический ГЦ. Кстати, он не всегда лучше динамического ))
| |
|
8.567, Аноним (571), 08:45, 01/08/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Нет там ни какого статического GC Там точно такой же контроль времени жизни и и... текст свёрнут, показать | |
|
9.616, Kuku (?), 11:23, 02/08/2021 [^] [^^] [^^^] [ответить] | –1 +/– | Ты элементарной грамоте научись сначала, а потом уже будешь разглагольствовать о... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
1.85, Хан (?), 00:01, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
Если долго вглядываться в код на расте, скоро раст начнет вглядываться в тебя
| |
1.96, Аноним (96), 00:35, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Виджетов нет, IDE нет. Софта на расте тоже не видно, так наколенные поделки качества хуже чем на питоне
| |
|
2.100, Аноньимъ (ok), 00:40, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Виджетов нет, IDE нет. Софта на расте тоже не видно, так наколенные
> поделки качества хуже чем на питоне
Есть забытое искусство писать без IDE, функциональные языки позволяют это делать продуктивно.
Ну и таки, интеграция с VScode у раста отличная. Есть и Эклипс например. Чего тебе ещё собака надо?
| |
|
3.156, Аноним (156), 03:00, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Есть забытое исскуство работать с памятью Но это конечно другое IDE я не панац... большой текст свёрнут, показать | |
|
4.201, Аноньимъ (ok), 04:22, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Есть забытое исскуство работать с памятью. Но это конечно другое.
Это как искусство вспахивать поле лопатой.
И не исскуство, и хорошо никогда не получалось.
>а контекстную навигацию, контекстный рефакторинг и элементарно встроенную документацию.
Для раста этого нет?
>Нафига оно тогда надо если есть нормальные языки где с этим всё впорядке.
С емасом всё в порядке, или с эклипсом?
>C/C++ нет никаких проблем.
Ну нет так нет. Главное 3 раза по 3 перед сном повторить.
>Так что собаки берите это ржавое и топайте в будку.
Злой вы, как собака.
| |
4.353, Аноним (349), 16:04, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Есть забытое исскуство работать с памятью. Но это конечно другое.
Это миф, до сих пор всплывают уязвимости в коде с возрастом больше десяти лет.
| |
|
|
|
3.529, Хан (?), 15:35, 31/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Растоманы советуют плюсовую RAD QtCreator для разработки на расте...Теперь я слышал все
| |
|
4.533, Аноним (349), 16:21, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Плюсисты давно сидят в IDE написаных на яве, шарпе и даже на лиспе.
| |
|
|
2.142, Aukamo (ok), 02:37, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Барин за слова не отвечает: Rust Language Server в виде Rust analyzer 100 лет как есть. Можно что на Vim что на VS Code писать с одинаковой степенью интеграции. VS Code даже дебажить через gdb может, если напрягает запуск с терминала.
| |
|
3.168, Аноним (156), 03:17, 30/07/2021 [^] [^^] [^^^] [ответить]
| –4 +/– |
Барин тупит?
Где контекстный поиск? Где контекстный рефакторинг? Где интерактивная справка? Или у тебя ide это только подстветка синтаксиса.
Не удивительно что ты VSCode к IDE приплёл. Потому что кроме подсветки синтаксиса оно ничего не умеет. Или обмазывайся васянскими дырявыми тырящими всё на свете плагинами. Ни в одной серьёзной канторе тебе такое не позволят.
С language server. Тоже мне. Нахрена мне ещё сервер какой-то там пускать если у нормальных языков и так всё без проблем. Оно это только ржавое не хочет ворочаться нигде.
Но что меня обрадовало. Тут упомянули что QtCreator что-то может. А это уже заявка. Если доведут поддержку до ума это будет действительно прорыв для rust.
| |
|
4.294, Аноним (294), 09:47, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Барин тупит?
Да, барин тупит вместо того что бы посмотреть возможности VSCode c плагинами.
Барин не понимает, что IDE это и есть редактор кода с плагинами в большинстве своем.
По крайней мере, мне не извесно ни одного монолитного (без плагинов) IDE.
>Потому что кроме подсветки синтаксиса оно ничего не умеет.
Вот тут барин просто нагло врет.
>С language server. Тоже мне. Нахрена мне ещё сервер какой-то там пускать если у нормальных языков и так всё без проблем.
А вот тут барин опять проявил свою тупость, лень и незнание. Т.к. нормальные языки и IDE с поддержкой нормальных языков не стесняються пользоваться серверами языков. Барин может загуглить что такое clangd, например, и в каких IDE он используется.
| |
4.357, Аноним (349), 16:13, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Где контекстный поиск? Где контекстный рефакторинг? Где интерактивная справка? Или у тебя ide это только подстветка синтаксиса.
Все это и больше, в плагине руста для иде от jetbrains. У меня например усановлен в clion и работает по моему лучше чем сам clion с С++.
| |
4.406, Аноним (547), 18:53, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Где контекстный поиск? Где контекстный рефакторинг? Где интерактивная справка?
neovim + lsp + language server + конфигурация (neovim_rust, например). Всё есть, но требуется навык работы с вимом, да.
Если хочется прям IDE, то IntelliJ Rust есть.
| |
|
|
2.247, Аноним (24), 06:41, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вариантов для создания UI полно. Вопрос в том, зачем писать тот UI на языке, который для этого плохо подходит (Rust, C, C++, Java, etc)
Оптимальнее использовать core на Rust и что угодно иное для интерфейса
По IDE:
- rust analyzer действительно мощная штука, активно развивается.
vscode, vim, etc
- IntelliJ Rust, официальный плагин от JetBrains
Интересен своим собственным парсером, не лишен интеграции cargo check
Всё отлично с IDE.
| |
|
3.326, Аноним (316), 13:29, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>зачем писать тот UI на языке, который для этого плохо подходит (Rust, C, C++, Java, etc)
Из перечисленных, C++ для (G)UI подходит лучше всего. Потому, что Qt, FLTK, FOX и менее известные.
| |
|
4.456, Аноним (24), 23:24, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Сила Qt как раз в выносе интерфейса в отдельный декларативный язык
А на виджеты они уже в целом забили
| |
|
|
|
|
|
3.102, Аноньимъ (ok), 00:49, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> И это наминутку не в софте на расте. Это в САМОМ расте
>Deno is a runtime for JavaScript and TypeScript that uses V8
>Это в САМОМ расте
Чё?
| |
3.257, Аноним (257), 07:54, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> И это наминутку не в софте на расте. Это в САМОМ расте
В первой же дыре код на _Си_ "A flaw was discovered in GNU libiberty within demangle_path() in rust-demangle.c". В остальном дыры в unsafe-блоках каких-то левых crate-модулей.
| |
|
4.283, Совершенно другой аноним (?), 09:15, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
CVE-2020-36317, CVE-2020-36318, CVE-2020-36323, CVE-2021-31162, CVE-2021-28875 - CVE-2021-28879 тоже левые крейты? И как понять, какие крейты левые, а какие - одобренные к использованию?
| |
|
5.410, Аноним (547), 19:00, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Это всё дыры в unsafe-коде. Залатают.
Фишка в том, что unsafe-код базовых библиотек конечен, за несколько лет всех блох словят. Главное не добавлять нового unsafe-кода без крайней нужды.
| |
|
|
7.458, Аноним (24), 23:25, 30/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ну так в этом и смысл
В либах он есть, а программист чаще всего не нуждается
В любом случае, это лучше 100% unsafe
| |
|
6.612, Совершенно другой аноним (?), 08:52, 02/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Это всё дыры в unsafe-коде. Залатают.
Ну а так - и в C, C++ и прочих языках, в библиотеках тоже ошибки исправляются, хотя это иногда кажется невероятным.
| |
|
|
|
|
|
1.110, Аноним (110), 01:18, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +8 +/– |
Раньше все отнекивался от раста и думал, что это очередной распиаренный проходняк. Но на днях решил попробовать на вкус, что это такое. Скачал компилятор, открыл растбук и начал писать код. И знаете, что? Мне понравилось, такого хорошего языка я еще не встречал. С первого взгляда зацепил, зараза. Поэтому желаю языку дальнейшего развития, чтобы однажды перейти на него полностью.
| |
|
|
|
|
|
6.445, Аноним (445), 21:42, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Потому что растоманы лицемеры. Но не удалил, так
> что его можно найти и раскрыть.
А может, потому что ты - очередной опеннетный невежда?
Теоремы Райса, Геделя (или если для совсем уж школьников и первокурсников: "проблема остановки")?
Не, не слышали ...
| |
|
|
4.426, Аноним (-), 19:49, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Расобот - это бывший Си плюс-плюсник перешедший на Раст. Раньше они тут, в двоём или втроём, целые разговорные спектакли устраивали. В конце каждого спецтакля человек интересовавшийся Растом клятвенно обещал перейти на Раст.
| |
|
|
2.174, Аноним (156), 03:25, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Что ты написал? Hello wrold копипастом?
Молодец, возьми пирожок с полочки
| |
2.266, Аноним (266), 08:38, 30/07/2021 [^] [^^] [^^^] [ответить]
| +3 +/– |
С прозрением и добро пожаловать в лучший ЯП ближайших как минимум двух десятилетий.
| |
2.352, Аноним (352), 16:00, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Раньше все отнекивался ... думал, что очередной проходняк. Но на днях решил попробовать на вкус ...И знаете, что? Мне понравилось!
Напоминает: "Я сначала как и все был уверен что это развод!... Сам был удивлен когда... Это действительно работает!!!"
| |
|
3.375, Аноним (110), 17:26, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Напоминает: "Я сначала как и все был уверен что это развод!... Сам был удивлен когда... Это действительно работает!!!"
Развод подразумевает какой-то ушерб, зачастую финансовый, но в этом случае я ничего не потерял, а наоборот, даже приобрел. Странные у вас разводы.
| |
|
4.430, Аноним (-), 19:54, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Развод подразумевает какой-то ушерб, зачастую финансовый, но в этом случае я ничего не потерял, а наоборот, даже приобрел.
Неважно, сама суть пропоганды Раста та же, и это вызывает подсознательное неоверие. Ах да, потерянное время на изучение Раста не считается?
| |
|
5.508, Ф1 (?), 10:14, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Ах да, потерянное время на изучение Раста не считается?
Для С++ программиста это время точно не потерянное, даже если он никогда больше не будет писать на расте, во первых очень полезно посмотреть как все работает в очень близком, но намного более жестко контролируемом языке, во вторых рано или поздно в C++ добавят аналоги borrow checker.
| |
|
|
|
|
|
4.545, Хан (?), 22:50, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Есть Minix, есть DFBSD из гибридномикроядерных которые уже работают... зачем нужен протухший 30 лет назад Hurd?
А у растоманов кроме Redox есть хоть что то?
| |
|
5.551, Аноним (-), 00:15, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
>> на все ноутбуки
> Есть Minix, есть DFBSD из гибридномикроядерных которые уже работают...
Мощный пук! Респект!
> А у растоманов кроме Redox есть хоть что то?
Ты сейчас пишешь с оси конца 70х начала 80х? Или это был еще одинм мощный выброс метана?
| |
|
|
|
|
1.123, Аноним (165), 02:01, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
> Инкрементальная компиляция была отключена в выпуске 1.52.1 из-за выявления скрытых ошибок
Как так-то?! Раст же безопасный! Или раст не на расте растаманы пишут?
| |
|
2.137, Второе Я (?), 02:28, 30/07/2021 [^] [^^] [^^^] [ответить]
| +7 +/– |
Раст не панацея. От неосиляторов с опеннета, вот, например, - не спасает.
| |
|
1.166, Хан (?), 03:11, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
И откуда на опеннете столько зумеров, считающих что здесь DTF какой нибудь где все друг друга хвалят и восторгаются хеллоуворлдами?
Любое обсуждение ЯП это ожесточенные споры, обвинения в некомпетности, троллинг и тонны лулзов причем жоских и это нормально
И когда комьюнити сливается сливается весь ЯП, в этом смысл холиваров
А с растоманами даже спорить не интересно, чуть что убегают и прячутся в своем манямирке где все безопасно и ничто не течет
| |
|
2.175, Аноним (156), 03:28, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А с растоманами даже спорить не интересно, чуть что убегают и прячутся в своем манямирке где все безопасно и ничто не течет
Вот тут ты прав.
Там выше было интерересно. Человек спросил кто вот это будет разгребать https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust
И что? его сообщение скрыл модератор, сделав вид что в растомире всё нормально и безопасно.
| |
|
3.255, Аноним (257), 07:49, 30/07/2021 [^] [^^] [^^^] [ответить] | +3 +/– | А вы сами тот список читали Там дыры в левых проектах и в областях, не касающих... большой текст свёрнут, показать | |
|
4.265, Аноним (80), 08:35, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Т.е. вы тоже считаете что безопасность это просто слово, которое надо всем повторять, а не работа, которую надо делать? Безопасный язык, который на каждый чих вытягивают миллион пакетов, как какой-нибудь nodejs или php с известными уязвимостями, это просто смешно.
| |
|
|
2.177, Аноним (110), 03:33, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Любое обсуждение ЯП это ожесточенные споры, обвинения в некомпетности, троллинг и тонны лулзов причем жоских и это нормально
Спор ради спора? А зачем? Можно и более полезными вещами заняться.
| |
|
3.180, Аноним (156), 03:39, 30/07/2021 [^] [^^] [^^^] [ответить]
| –4 +/– |
Тут другой вопрос. К нормальным людям. У растоманов память короткая из за наркотиков.
А вы помните когда они своего-же загнобили? Чувак там какой-то движок сайта на расте делал. Его загнобили что он не тру растоман и не по растомански пишет. Человека довели даже до того что он проект свернул послав всех.
Rust (ржавчина), как физическое явление, как процесс, токсичен и разрушителен. И такое ощущение что сообщство языка этому соответсвует.
| |
|
4.182, Аноним (110), 03:44, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А вы помните когда они своего-же загнобили? Чувак там какой-то движок сайта на расте делал. Его загнобили что он не тру растоман и не по растомански пишет. Человека довели даже до того что он проект свернул послав всех.
Ну справедливости ради, такое на всех языках происходит. Если ты будешь писать в Си стиле на С++, то тебя тоже никто по головке не погладит.
| |
|
5.184, Аноним (184), 03:49, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Справедливо и ты прав. Это жутчайшая жуть писать в стиле C на C++
Тем не менее до истерики и закрытия проектов людей не доводят.
| |
5.187, Хан (?), 03:57, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Писательство в Си стиле порой вынужденно если не хочешь городить абстракции для сишных либ и потом их тестить и отлаживать
А так да, сишный код в плюсах чреват всем известными проблемами... выходы за границы массива с битьем памяти и утечками памяти, ну и макросы будь они не ладны отчего баги можно искать вечность
| |
|
|
3.185, Хан (?), 03:52, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Не спор ради спора, а по сути естественный отбор в ЯП и их фан базе... если их язык дно, а они толстенькие неженки с айфончиками тогда их чудотехнологию раздавят как катком адепты других ЯП вот с такими огроменными яелами
| |
|
4.189, deeaitch (ok), 03:59, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Есть забавная история, с месяц назад. Я уже писал о том как пробовал использовать Rust в automotive. Повторятся не буду.
Но был у меня на собеседовании человек заявлявший что знает rust. Честно я думал одного взять. Для следующего поколения техники, может он поможет и подскажет то что не заметил я.
Но после того как я узнал от него об инопланетных технологиях. А именно что если контроллеру не хватает памяти то он может попросить у другого через глобальные переменные.... мой интузиазм упал.
Я не говорю что все такие, я говорю что мне такой попался. О языке я по этому кандидату вывода не делал. Я вообще не делаю выводов. То что удобно - я использую, то что нет - не использую.
| |
|
5.194, Хан (?), 04:11, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Лол конечно... но что с них взять?
Асм никто в глаза не видел и не понимают к примеру что такое стек или куча, где хранятся обьявленные ими переменные, что такое массив на самом деле без абстракций и почему например он не может быть динамическим в исполняемом файле, чехарда в головах насчет что такое глобальная переменная и локальная(аля автоматическая память) или например не знают почему нужно приводить типы к одну...
Короче образование уровня Уганды и все
| |
|
6.203, deeaitch (ok), 04:30, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Понимаешь, мне потом кошмары реально снились от таких инопланетных технологий.
| |
|
7.212, Хан (?), 04:37, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Я аж заскринил это))) но ты хоть обьяснил пареньку в чем суть?
| |
|
|
5.198, Хан (?), 04:17, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Или спроси по приколу почему цикл никогда не вызовет переполнение стека в отличии от рекурсии
| |
|
6.206, deeaitch (ok), 04:30, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Слушай, гениально. Всё, у меня на следующей неделе собеседование. Я обязательно спрошу. Классный вопрос. Спасибо.
| |
|
7.213, Хан (?), 04:41, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну или такое, чем технически отличается глобальная переменная от статической?(спойлер... ничем... разница лишь в том что в функции известен ее адрес в исполняемом коде, а за ее пределами ее адрес не известен)
| |
|
|
9.220, Хан (?), 05:05, 30/07/2021 [^] [^^] [^^^] [ответить] | –2 +/– | Значит разрабы правильно юзают возрат из функции по ссылке на статическую переме... текст свёрнут, показать | |
|
8.374, Аноним (349), 17:18, 30/07/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Если статическая внутри функции или блока кода то даже в c 98 отличаются так к... текст свёрнут, показать | |
|
7.378, n00by (ok), 17:30, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
int main()
{
for(int i = 1; ; ++i) {
volatile int _[i];
*_ = i;
}
}
| |
|
|
|
|
11.534, n00by (ok), 17:09, 31/07/2021 [^] [^^] [^^^] [ответить] | +/– | gt оверквотинг удален А зачем думать У меня переполняет Достаточно, что бы о... большой текст свёрнут, показать | |
|
|
|
|
15.621, n00by (ok), 12:16, 02/08/2021 [^] [^^] [^^^] [ответить] | +/– | Естественно, я же помню контекст -- это мой ответ на предложение давайте подума... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
5.329, Аноним (316), 13:38, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
>если контроллеру не хватает памяти то он может попросить у другого через глобальные переменные....
Офигеть, прямо NUMA-кластер контроллеров!
| |
|
4.192, Аноним (110), 04:07, 30/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
Бред какой-то. Я думал, что пригодность языка определяет его эфыктивность и удобство при решении задач, а не игра кто кого перевоняет в интернете.
| |
|
|
6.223, Аноним (222), 05:14, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Хаааан, ты уже обоср@лся в каждой ветке под этой новостью. Заканчивай.
| |
|
|
4.260, Аноним (260), 08:06, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Мне больше интересно как эти неженки смогли бы исправить ошибку в месе, которая приводила к тирингу в i3, и может других рабочих столах/вмах. Пусть эти малохольные как админы поддерживающие прости господи шиндоуз и линукс в одной конторе учат Си, С++, Ржавого, Жабу, Жабоскрипт, баш, питон и лишь потом вылезают с авторитетными комментариями. Даже создатели языков Си и С++ вели себя скромнее.
| |
|
|
2.218, Аноньимъ (ok), 04:53, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Любое обсуждение ЯП это обвинения в некомпетности, троллинг и тонны лулзов причем жоских и это нормально
Это просто общение дебилов.
К ЯП отношения не имеет.
| |
2.342, Ordu (ok), 14:48, 30/07/2021 [^] [^^] [^^^] [ответить] | +3 +/– | Смотри, я озаботился посчитать частоты ников sort tmp txt 124 uniq -c 12... большой текст свёрнут, показать | |
|
1.183, deeaitch (ok), 03:47, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Эх, а у меня почти получилось его внедрить в компании в automotive. Но нет, сыровато.
Тем не менее удачи проекту, а сообществу быть менее токсичным, перестать обвинять всех вокруг и научиться признавать ошибки и недочёты.
Буду следить и может через пару лет в новом поколении техники попробую ещё раз. Даже не может, а точно попробую. Думаю устранят недостатки.
Только честно, помимо карго добавьте нормальные вещи, карго не пропустят, честно.
| |
|
2.208, deeaitch (ok), 04:33, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
О, классно, растоманы меня минусуют, не спят, бдят.
А вопрос почему? Ответа не будет. Но ребята, расслабтесь. Будет готово и я с удовольствием воспользуюсь. А пока гуглите на пример подгобного рассказа про ваш Rust и Automotive в двух томах. Эксперимент длинною в полтора года.
| |
|
3.239, Next_Losers_rules (?), 06:07, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Не Automotive , а Automake руст лишь паразиты objectтированного кода созданного архитектором который переиначил пути для большей производительности
| |
|
4.484, deeaitch (ok), 02:41, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Не Automotive , а Automake руст лишь паразиты objectтированного кода созданного архитектором
> который переиначил пути для большей производительности
Ну вот глупость же поправил. Откуда ты там нарисовал Automake?
| |
|
3.264, Аноним (80), 08:30, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Чтож вам хрустикам постоянно что-то мешает. Фаерфокс не смогли переписать, да ничего не смогли даже написать. Но мешают этому конечно же хейтеры, это из-за них вы ничего не можете сделать с вашим язычком.
| |
|
|
1.202, Хан (?), 04:23, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Вангую что растоманы даже не знают как передаются аргументы в функцию и почему например нельзя вернуть массив из функции, это же так низкоуровнево))) а в расте все просто и понятно
| |
|
|
3.219, Хан (?), 05:02, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Ладно расскажу и я, вообще думаю все помнят скандал со злополучным Audacity и сливом персональных данных, один разраб кричал что мол хэш-функция обратно не реверсится, на что ему знающие люди тактично указали что если число входящих значений в хэш-функцию конечно как те же IP-адреса, то не составляет труда составить таблицу хэшей всех IP адресов после чего прогнать интересующий тебя хэш по ней дабы найти соответствие и узнать IP-адрес... на что разраб сказал что вы все врети и отключился
Кстати эта лабуда с хэшами IP и тип анонимностью на каждом сайте
| |
|
2.226, Хан (?), 05:16, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Хотя вру, можно, по ссылке если массив обьявлен как static внутри функции
| |
2.243, Аноним (-), 06:21, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
А кстати из функции struct можно вернуть. В нем массивы можно же сделать. Это не прокатит? :)
| |
|
3.249, Хан (?), 07:25, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
В общем то Си разрешает функциям возращать структуры, но это просто офигительные дополнительные расходы на копирование, представь если структура большая и не помещается в регистры которых в x86 кот наплакал, поэтому компилятор может так использовать стек для возврата не сбрасывая его указатель перед выходом из функции и лишь потом сбросить его чтобы было время сохранить значения, а если и этого не хватает тогда в зависимости от компилятора могут быть различные грязные хуки но опять же двойным а то и тройным копированием...
Поэтому проще, быстрее и надежнее пробрасывать ссылку(адрес) на static память вызываемой функции в вызываемую и работать с ней как с обычной глобальной переменной
| |
|
4.285, n00by (ok), 09:35, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> В общем то Си разрешает функциям возращать структуры, но это просто офигительные
> дополнительные расходы на копирование
Не должно быть копирования. Достаточно зарезервировать стек перед вызовом.
| |
|
5.318, Аноним (165), 12:18, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Будет или нет копирование - зависит от оптимизатора и конкретного кода. Хинто: сравни x=f(x) и y=f(x)
| |
|
6.323, n00by (ok), 13:08, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> сравни x=f(x) и y=f(x)
Нет разницы, пока мы говорим о возврате структуры из функции, а не подменяем предмет обсуждения на сравнение f(x,y) и f(y,x). Что бы избежать копирования, достаточно передать её адрес неявным аргументом.
| |
|
5.340, Хан (?), 14:43, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну смотри стек функция не сбросила и сохранила в нем возвращаемое значение, но его же нужно как то обработать, а перед этим сохранить
Копирование 1
Из стека в регистры
Копирование 2
Из регистров в память
После чего сбросить стек
| |
|
6.348, n00by (ok), 15:41, 30/07/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Что значит сбросить стек Вы предполагаете, что структура при возврате из функ... большой текст свёрнут, показать | |
|
7.370, Хан (?), 17:03, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Сбросить стек значит вернуть указатель стека в изначальное положение которое было до вызова функции(чтобы не получить переполнение стека)
... ну смотри ты говоришь что во время return локальные переменные копируются в стек вызываемой функции... только вот стек общий на всю программу(можешь себе представить стек разделяемой памятью фиксированного размера)
Отсюда ты и говоришь про некий адрес приемника... там адреса не нужны это или регистры или стек которые заранее известны
Локальной памяти не существует(она хранится в стеке), название неправильное, оно не отражает ее природу, в отличии от определения автоматической памяти
| |
|
8.371, Хан (?), 17:07, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | в стек вызывающей Короче суть такова что стек один на всех, а не укаждого свой... текст свёрнут, показать | |
8.398, n00by (ok), 18:36, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Восстановить вместо сбросить было бы понятнее Вернуть значение указателя ну... большой текст свёрнут, показать | |
|
9.428, Хан (?), 19:52, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Ты умный чел сразу видно но пиши чут чут попроще тип без такого формализма чит... текст свёрнут, показать | |
|
10.434, Хан (?), 20:10, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | С друго стороны такие хитроумные манипуляции похожи на костыль из разряда переда... текст свёрнут, показать | |
10.503, n00by (ok), 08:14, 31/07/2021 [^] [^^] [^^^] [ответить] | +/– | Короче пушим дворды и зовём функу потом попаем Это называется сидекл В стдкол ... большой текст свёрнут, показать | |
|
|
|
7.394, Хан (?), 18:16, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Локальные(автоматические) переменные могут и после выхода из функции, до тех пор пока не сбросится стек, это как раз случай возврата большой структуры для которой не хватает регистров
| |
|
8.402, n00by (ok), 18:42, 30/07/2021 [^] [^^] [^^^] [ответить] | +/– | Не стоит на это полагаться Прерывание разрушит содержимое стека System V x86-6... текст свёрнут, показать | |
|
|
|
|
|
3.251, Хан (?), 07:31, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Кстати из за таких накладных расходов в Си нельзя массивы передавать по значению, а вовсе не потому что этому что то мешает...
А вот почему структурам разрешили передаваться по значению это вопрос, говорят так тип предполагалось что структуры были бы этакими пакетами сгруппированных значений небольшого размера, а потом пошло поехало массивы в структурах, структуры в структруктурах и тд
Кстати на обьектах в C++ весь это ад с передачей по значению закончился
| |
3.252, Хан (?), 07:41, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Чтобы просто было понятно
Между передачей функции ссылки на структуру и возвратом ссылки на static структуру нет никакой разницы обе структуры будут глобальными
| |
3.262, Хан (?), 08:10, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
То есть невозможность передать и вернуть массив по значению это чисто ограничение языка Си, просто его создатели так решили массивы только по ссылкам, а структуры ладно и так сойдет
| |
|
2.286, Аноним (294), 09:36, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ой, блин, умники.
Во первых вернуть массив из функции возможно во многих ЯП.
Даже в С++, если использовать std::array .
А теперь давай, просвети нас, неразумных. Почему это в С нельзя вернуть массив сам по себе, но если завернуть его в структурку, то можно ?
| |
|
3.337, Хан (?), 14:34, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
std::array это стадартная либа, речь же шла про возможности синтанксиса
| |
|
4.362, Аноним (294), 16:21, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
перечитай свое первое сообщение в этой ветке.
Где там говорилось что речь строго про синтаксис? Где там вообще говорилось про какой-либо ЯП.
Вот так вывалил поток сознания, и потом рассказывает что ему отвечают не то.
| |
|
5.368, Хан (?), 16:48, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Хера память как у рыбки... выше на коммент глянь, кто про C++ и std::array начал
| |
|
6.373, Аноним (294), 17:10, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Хера у тебя соображалка как у морской свинки.
Я же отвечал на твое сообщение, что где-то нельзя вернуть массив из функции.
Я же и привел как пример с std::array. Только вот не я начал, я уже писал в ответ на твое непонятное утверждение.
Что, уже на 2 уровня выше не в состоянии подняться по сообщениям?
Блин, и это недорозумение рассказывает какие растоманы тупые !!!
| |
|
7.380, Хан (?), 17:33, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Лол што? Что ты привел? std::array который выступает оберткой над обычным массивом? Действительно при чем тут втроенные возможности языка и синтаксис? Гений раста что тут еще скажешь
| |
|
|
|
|
3.351, n00by (ok), 15:59, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Почему это в С нельзя вернуть
> массив сам по себе, но если завернуть его в структурку, то
> можно ?
"Еще более удивительно (по крайней мере на первый взгляд) то, что а[i] можно записать как *(а+i)" (c) K&R
| |
|
4.356, Аноним (-), 16:12, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> "Еще более удивительно (по крайней мере на первый взгляд) то, что а[i]
> можно записать как *(а+i)" (c) K&R
i[a] же.
int a = 123;
int *b = &a;
0[\b] = 456; // форумный движок считает b в [] тегом
char* anon[2] =
{"аноним","аноним"};
1[anon] = "рулит";
| |
4.367, Хан (?), 16:43, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Не спойлери, что обращение к массиву тип mas[2] это просто синтаксический сахар над указателем *(mas+2)
| |
|
|
2.381, Ф1 (?), 17:37, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
В си нельзя вернуть массив из функции тупо потому что он его не может толком отличить от указателя, в раст массив без проблем возвращается
fn tst() -> [i32; 3] {
[1, 2, 3]
}
fn main(){
println!("{:?}", tst());
}
| |
|
3.382, Хан (?), 17:47, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
По значению нельзя, но это особенность реализации массива в Си, в той же структуре тот же Си обходится без указателей а просто пакует побайтово
Чтобы такие растоманы не гоняли память туда сюда без толку
| |
|
4.387, Ф1 (?), 17:58, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> По значению нельзя, но это особенность реализации массива в Си,
Я тебе про это и пишу.
> Чтобы такие растоманы не гоняли память туда сюда без толку
А вот это точно не имеет отношения к вопросу, в си просто компромиссно выбрали удобство представления массива как указателя и пожертвовали возвратом из функций и передачей как параметров, никто ни делал это ограничение для того что не разрешать гонять массивы по стеку.
| |
|
5.392, Хан (?), 18:08, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Хм посмотри на массив в структуре который запакован и передается по значению, такая реализация массива через указатель была выбрана во имя производительности ибо массив это самый гоняемый тудасюда тип данных в IPC, TCP/IP, i/o например
| |
|
4.526, Ordu (ok), 15:31, 31/07/2021 [^] [^^] [^^^] [ответить] | +/– | Оно не гоняет память туда-сюда без толку Глянь mod tmp pub fn make_array... большой текст свёрнут, показать | |
|
3.383, Хан (?), 17:52, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Проще говоря выражение типа int mas[]={1,2,3,4} не создает никакой массив, просто создает указатель mas и выделяет 16 байт памяти и записывает ее адрес в указатель
| |
|
|
1.242, Аноним (-), 06:18, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> #[path = concat(env!("OUT_DIR"), "/generated.rs")]
Прикольно, теперь хрустикам можно будет нетривиальные бекдоры без палева хреначить. Первое со вторым дружит надеюсь?
| |
|
|
3.510, Ф1 (?), 10:38, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
В раст есть прямой аналог #include из препроцессора C/C++ это макрос include!, с ним тоже будет что-то типа include!("generated.rs"), а конструкция свыше это полноценная загрузка модуля. Ну и напугавшие, как я понял тут всех, макросы concat и env позволяют задать путь в compile time что хоть и коряво, но весьма удобно в C/C++ все это придется выносить в систему сборки. Хотя когда в C++ модули доведут до ума нечто подобное тоже наверняка появится.
| |
|
|
1.267, Имя (?), 08:38, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
В каждой минорной версии что-то добавляют и добавляют.. Он когда-то будет полным? По сложности уже, наверное, соперничает с плюсами, если еще не обогнал.
| |
|
2.305, Аноним (305), 10:59, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Нет конечно все менеджеры уверенны что пользователям нужны только новые фичи. И они правы фанатикам нужны именно они. Но нормальным людям работу надо работать, менеджерам это невдомек.
| |
|
3.341, Аноним (341), 14:47, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Ну не пользуйтесь новыми фичами, работайте свою работу, кто мешает?
| |
|
4.360, Аноним (305), 16:18, 30/07/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
Отсутствие обратной совместимости? У хрустиков у них же стабилизация функции это целая фича.
| |
|
5.568, Аноним (571), 08:54, 01/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
У них эпохи придумали для того чтобы даже новые несовместимые компиляторы могли собирать старый код. Вообще адская несовместимость была только до выхода стабильной 1.0 версии.
| |
|
|
|
|
1.295, Аноним (295), 09:48, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Забавно видеть как этот недоязык превращается в C++. Забивает в собственный гроб гвозди. Ржавые.
| |
|
2.304, Аноним (305), 10:58, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
На самом деле это С++ ввел у себя некоторые хайповые фичи. Но это не комплимент срастикам.
| |
|
1.379, Аноним (376), 17:30, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Не тратьте время на раст, лет через 10 стабилизируют, за это время на С++ еще библиотек напишут на миллиарды долларов, а вызвать С++ код из раста - это приключение, в котором вы не хотите приключаться
| |
|
2.400, Sem (??), 18:39, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Через 10 лет уже перепишут всё, что можно на раст )))
Шутка конечно, но тенденция есть.
| |
|
1.393, Аноним (376), 18:14, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Начал седня изучать раст, первая же проблема - излишне длинный код. Почитал про макросы. Думаю ну ок, можно как-то извернуться, но хотелось бы постфиксные макросы. Почитал про то что постфиксные макросы нужно заключать в блок. Закрыл страницу
| |
1.401, Аноним (-), 18:42, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Да здраствует великая Rust!!! Да здраствует язык будущего!!!
Скоро Linux весь на rust перепишут))))
| |
|
2.463, Аноним (165), 23:32, 30/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Скоро Linux весь на rust перепишут
Они свой редох написать не могут...
| |
|
3.471, Аноним (24), 23:51, 30/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Кто - они? Несколько энтузиастов, которые пишут чисто изучения / прикола ради?
| |
3.482, Аноним (-), 00:24, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>> Скоро Linux весь на rust перепишут
> Они свой редох написать не могут...
Ты уже довел Hurd до ума?
| |
|
4.487, Хан (?), 02:44, 31/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Что ты мелишь? Hurd еще в 90-е рипнули в угоду GNU/Linux даже Столлман об этом говорил в фильме про Linux...
А так да уже давно есть работоспособный Minix...Intel не даст соврать... смешно конечно же наблюдать как дедушка Таненбаум со студентами и аспирантами смогли в микроядро, а толпы растоманов только мечтают о Redox...
Код то хоть не из Minix воруете? А?
| |
|
5.488, Аноним (-), 03:25, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Что ты мелишь? Hurd еще в 90-е рипнули в угоду GNU/Linux даже
> А так да уже давно есть
> отмазки и лютый бред поскипаны.
Ясно. Не осилил. Так и скажи - твои отмазки никому не интересны.
| |
|
6.490, Хан (?), 04:44, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Лол))) вспомни еще мультикс 60-х годов... ее Кен Томпсон и Денис Ритчи неосилили
| |
6.491, Хан (?), 04:45, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Но про Minix ты тактично умолчал))) эх растоманы чуть что в кусты и классическое вы все врети
| |
|
7.518, Аноним (-), 13:22, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Но про Minix ты тактично умолчал)))
Зачем мне комментировать твой бред? Тебя спрослили за Hurd, а ты начал блеять за что-то там (при этом и рядом не стояв).
> эх растоманы чуть что в кусты и классическое вы все врети
Какой занимательный (нет) диалог шизофреника с лишь ему слышными голосами ...
| |
|
8.524, Хан (?), 15:28, 31/07/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Ну че там скоро Redox достигнет уровня Minix Вообщем криворучки за которых раст... текст свёрнут, показать | |
|
|
|
|
|
|
|
1.419, Аноним (-), 19:32, 30/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
>Rust 1.54, основанного проектом Mozilla
Автор новости ошибся. Основал Раст некто Грейдон Хоар. Грейдона Хоара некоторая группа растаманов вытеснила - к его мнению не прислушивались, и он справедливо обидевшись ушёл.
>при этом обходясь без использования ... runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Рантайм в Расте есть. Есть только один язык программирования в, котором нет рантайма, это чистый Си!
Надеюсь, сейчас не выскочит растаман и скажет что при таких-то и таких-то опциях компилятора рантайма не будет. Не надо, нам это не интересно.
| |
|
2.447, Аноним (445), 21:49, 30/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Рантайм в Расте есть. Есть только один язык программирования в, котором нет рантайма, это чистый Си!
> ... и скажет что при таких-то и таких-то опциях компилятора рантайма не будет
О, очередных опеннетных бала^W теоретиков подвезли. Расскажи нам о том, как freestanding в gcc не требует memcpy, memset, memmove и опций компилятора, не стесняйся!
| |
2.474, Аноним (24), 23:56, 30/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Что такое "рантайм" в твоем понимании?
В моем - что-то будет вызываться просто потому что (gc и прочее недоразумение)
В Расте же вызывается только то, что вызвал программист
| |
|
|
4.539, Аноним (24), 19:14, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
сорян, но если у вас пушинки libc или rust std - рантайм и огромные so-дополнения, то что тогда не рантайм
условно тру рантайм - это монстры уровня джавы, ноды
в сравнении с ними rust std или libc просто незаметные песчинки на фоне огромной пустыни
| |
|
|
2.489, Аноним (547), 04:18, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Много вы на чистом Си напишете без стандартной библиотеки? (Нет, ну можно, если вы пишете ядро ОС, но там и ассемблер понадобится.)
Чем тот же glibc не "рантайм"?
| |
|
3.496, Аноним (-), 06:28, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Чем тот же glibc не "рантайм"?
Тем, что в чистом Си glibc не часть языка.
| |
|
|
5.514, Аноним (-), 12:27, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Надеюсь, сейчас не выскочит растаман и скажет что при таких-то и таких-то опциях компилятора рантайма не будет. Не надо, нам это не интересно.
смотри выше.
| |
|
6.516, Аноним (349), 12:42, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Понятно цитируемый аноним просто тупо врет что только си язык без рантайма.
| |
6.519, Аноним (-), 13:29, 31/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>>Надеюсь, сейчас не выскочит растаман и скажет что при таких-то и таких-то опциях компилятора рантайма не будет. Не надо, нам это не интересно.
> смотри выше.
На что именно? На детский сад "Тама нету! А если кто-то даже и покажет что есть, то это НЕ СЧИТАИЦА!"?
| |
|
|
|
|
2.523, Ordu (ok), 15:04, 31/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Надеюсь, сейчас не выскочит растаман и скажет что при таких-то и таких-то опциях компилятора рантайма не будет. Не надо, нам это не интересно.
В C ты тоже не сможешь собрать бинарь без libc.so не передавая дополнительных опций компилятору. Если твоя программа начинается с main, то значит в ней уже есть рантайм -- к ней линкуется crt0.o, crti.o, crtn.o плюс-минус ещё какие-то объектные файлы. Попробуй как-нибудь в образовательных целях слинковать C'шную программу вызовом ld. Вот не gcc запускай линкером, а ld. Много чего нового узнаешь, если слинкуешь.
| |
|
|
|
3.540, Аноним (24), 19:17, 31/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Почему же?
Да, это условно разные языки, но один - подмножество другого и основные проблемы у них общие, поэтому в некоторых контекстах это очевидно верное написание
| |
|
4.569, Аноним (-), 09:15, 01/08/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Абревиатура "C/C++" выдумана Майкрософтом в её ВижуалСтудии. Отцы-юниксоиды из Белл Лабса никогда так не писали.
Абревиатура "C/C++" - маздаевский высер.
| |
|
|
4.548, Аноним (547), 23:29, 31/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не совсем.
Например, в C я могу присвоить указатель на void* типизированному указателю, а в C++ (без явного кастинга) - нет.
Или, скажем, вложенные структуры по разному работают.
Короче, дофига мелких отличий на самом деле.
| |
|
5.559, Хан (?), 01:41, 01/08/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
C++ поддерживает Си на достаточном уровнем чтобы юзать Си библиотеки как родные без изменений кода, а это говорит о многом
| |
|
|
7.591, Хан (?), 23:38, 01/08/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Для маленьких растоманов... на уровне исходного кода юзать, то есть буквально смешивать Си и C++ и все будет ок
| |
|
|
9.641, Хан (?), 19:16, 02/08/2021 [^] [^^] [^^^] [ответить] | +/– | Если чет не так, на уровне синтаксиса отгребают на стадии компиляции, линковка т... текст свёрнут, показать | |
|
|
7.592, Хан (?), 23:41, 01/08/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Любую функцию Си можно встроить в качестве метода в обьект C++ просто спопипастив... где еще так возможно?
| |
|
8.642, Ф1 (?), 20:01, 02/08/2021 [^] [^^] [^^^] [ответить] | +/– | В с такое невозможно, вот эта вполне легальная Си строка code int arr mal... текст свёрнут, показать | |
|
9.644, Хан (?), 21:02, 02/08/2021 [^] [^^] [^^^] [ответить] | +/– | С каких пор malloc не void Где приведение типа Это костыль а не Си-код... текст свёрнут, показать | |
|
10.649, Ф1 (?), 08:27, 03/08/2021 [^] [^^] [^^^] [ответить] | +/– | Это валидный си код который компилируется с -Wall -Wextra -pedantic без писка, ... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
1.583, Аноним (442), 19:05, 01/08/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
https://www.acm.org/media-center/2021/july/dissertation-award-2020
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.
Осталось подождать срыва покровов от местных экспертом с девятью классами образования.
| |
|
|
3.605, Ага (?), 02:51, 02/08/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
По твоему комменту видно, что ты не научился работать мозгом.
| |
|
4.608, Аноним (165), 04:57, 02/08/2021 [^] [^^] [^^^] [ответить]
| +/– |
И только старый попугай вдруг громко крикнул из ветвей (с): "...не научился работать мозгом!".
| |
|
|
|
1.673, iZEN (ok), 19:35, 06/09/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Собрал на FreeBSD из порта lang/rust. Пакет rust-1.54.0_1 при сборке выжрал 14 ГБ ОЗУ (82%) и 1.4 ГБ SWAP. Я опешил от такого.
| |
|