М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 4 сентября 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

337 Кб, 2560x1536

52 Кб, 530x299

1199 Кб, 3000x2000

Rust THREAD 3.0 31 Янв, 14:03 #639238 В конец треда | Веб

https://www.rust-lang.org/downloads.html

Текущая версия: 1.6
Планы на 2016 год: http://blog.rust-lang.org/2015/08/14/Next-year.html

Книги:
= The Rust Programming Language https://doc.rust-lang.org/book/
= The Rustonomicon https://doc.rust-lang.org/nightly/nomicon/

Известные пректы:
= https://github.com/PistonDevelopers/piston
= https://github.com/servo/servo
= https://github.com/redox-os/redox

Прошлый тред тонет тут: https://2ch.hk/pr/res/572681.html (М)

Ответы>>652288>>711546>>718374>>769050>>775594>>777821

5918 Кб, Webm

31 Янв, 18:05 #2 #639475

— Одну минуту, — громко произнес ОП, — прежде чем продемонстрировать вам способ распития портвешка, о котором все вы, как будто, позабыли, я должен опорожнить свой кишечник.

Вот каким образом развратник приступил к омерзительной операции. Его окружили четверо ржавопетухов: один держал наготове большой ночной горшок, второй взял зажженную свечу и подставил ее поближе к анусу, чтобы было лучше видно происходящее, третий сосал ему член, четвертый, перекинув через руку белоснежное полотенце, целовал главпетуха в губы. Тот, опершись еще на двоих педерастов, поднатужился, и как только появилось невероятное количество дерьма, которое обыкновенно и регулярно выдавал хозяин параши, учитывая страшное количество поглощаемого им борща, тот петух, что держал горшок, принялся восхвалять экскременты. «Какое прекрасное ржаводерьмо! — восклицал он. — Ах, господин мой, какое превосходное говно! Как красиво вы испражняетесь». Когда дифирамбы закончились, педераст, вооруженный салфеткой, языком очистил преддверие ануса, а горшечник подставил содержимое горшка под нос главпетуху и опять громогласно восхвалял его. После этого мощная струя мочи ударила в рот сосателю, который тут же проглотил всю жидкость, полотенце завершило то, что не мог сделать язык, и четверо педерастов, оставшись без дела, долго сосали поочередно язык, фаллос и задний проход распутника.

Ответы>>640533>>640546

01 Фев, 20:54 #3 #640533

>>639475
Какая мерзость эта вебмка

01 Фев, 21:07 #4 #640546

>>639475
Что за фильм?

Ответы>>640572

01 Фев, 21:26 #5 #640572

>>640546
Скорее всего САЛО но хуй знает. Хуита для эстетствующих педрил.

03 Фев, 13:35 #6 #641808

Смотрите, какую штуку на расте запилили: https://pijul.org/
Все преимущества darcs без его чудовищных тормозов.

Ответы>>646602>>775494>>788441

sage 05 Фев, 10:41 #7 #643510

Очень плохая шапка, никуда не годится.
Объявляю тред досрочно утонувшим.

07 Фев, 20:04 #8 #646447

такая няша
https://www.youtube.com/watch?v=dIageYT0Vgg

Ответы>>646616

07 Фев, 21:23 #9 #646602

>>641808
Зачем ЭТО вообще существует?

Ответы>>652037

07 Фев, 21:31 #10 #646616

>>646447
Не милфа и не молодая, не смазливая и не страшная. Хз чот. Леночка ламповее, кек

13 Фев, 02:01 #11 #652037

>>646602
> There are basically two approaches to version control: either snapshot-based (git, mercurial, svn or their ancestors), or patch-based (darcs). Historically, patch-based systems have been very simple to learn and use, but slow, whereas snapshot-based systems can be extremely fast, but are usually hard to use for more than the simple operations. As an example, cherry-picking is not intuitive in git/mercurial, and merging is sometimes plain wrong.

13 Фев, 14:39 #12 #652288

>>639238 (OP)
Что там с серво? Далеко ещё до юзабельного состояния?

Ответы>>652293>>652727

13 Фев, 14:41 #13 #652293

>>652288
Очень далеко, ничего интересней простеньких демок не завезли.

Ответы>>652303>>738694

13 Фев, 14:46 #14 #652303

>>652293
У них какие-то непредвиденные трудности? ЕМНИП у них были наполеоновские планы на первую половину этого года.

Ответы>>652361>>652364

13 Фев, 15:17 #15 #652361

>>652303
У их трудности название "нельзя просто взять и написать браузерный движок с принципиально новой архитектуры с нуля".

Ответы>>652392

13 Фев, 15:18 #16 #652364

>>652303
А ещё "нельзя просто взять и разработать язык и бровсер одновременно".

Ответы>>652392

13 Фев, 15:31 #17 #652392

>>652364
>>652361
Ну, так это вроде не непредвиденные.

Ответы>>652435

13 Фев, 15:51 #18 #652435

>>652392
Проблемы у того, кто эти даты назначал.

13 Фев, 19:35 #19 #652727

>>652288
Что-то работает, что-то ещё нет. Макабу он до сих пор не осилил.

14 Фев, 14:33 #20 #653587

Тред жив/мёртв?
Допустим у нас есть некий тип struct SomeType. Можем ли мы используя return вернуть указатель на свежесозданный внутри функции экземпляр SomeType таким образом чтобы компилятор не наезжал по поводу того, что указатель сдох в том месте, где кончилась функция из которой мы делаем return?

Например есть функция, которая принимает путь(path) внутри себя вычисляет slice, который содержит скажем кусок пути. При попытке вернуть этот результат компилятор говорит мне что я дурак и дегенерат, бобик мёртв, вернуть его нельзя. Окай обвинения компилятора скорее всего уместны, но куда мне тогда поместить результат, чтобы он не помер при выходе из функции?

Ответы>>654367>>654415>>655459

15 Фев, 00:47 #21 #654367

>>653587
Что мешает просто вернуть значение, а не указатель?

Ответы>>654376>>669737

15 Фев, 00:57 #22 #654376

>>654367
Может просто структура жырная?

Ответы>>654402

15 Фев, 01:14 #23 #654402

>>654376
Если структура слишком жирная, чтобы класть её на стек (что странно), оберни её в Box<T>.
В любом случае, что-то должно сохранять владение.

15 Фев, 01:25 #24 #654415

>>653587
unsafe
n
s
a
f
e

15 Фев, 22:22 #25 #655459

>>653587
Вот как ты делают только мудаки. Нормальные поцы дают код который надо исправить. Тупо потому что ты сам не знаешь что хочешь, а так тебе хоть укажут в чем конкретно ты не прав.

Ответы>>669737

26 Кб, 600x600

17 Фев, 13:28 #26 #657442

17 Фев, 14:15 #27 #657490

https://github.com/ebkalderon/amethyst
Hello world c 324 строками кода. 2 месяца разработки. 150 звезд. Продал товар даже не начиная создавать.

Ответы>>657578

17 Фев, 16:05 #28 #657578

>>657490
Там дохуя кода

Ответы>>657795

8 Кб, 337x92

17 Фев, 19:22 #29 #657795

>>657578
Там учебник больше чем весь код с комментариями

23 Фев, 15:28 #30 #663859

Servo Webrender
http://www.youtube.com/watch?v=erfnCaeLxSI
https://air.mozilla.org/bay-area-rust-meetup-february-2016/

Ответы>>669855

25 Фев, 21:03 #31 #666748

Растаны,
имеется структура(Foo), в ней хочу замутить HashMap типа ключ-строка, значение-лямбда вида Fn(Hui) -> Govno.
Теперь:
1) Fn насколько я понял - это trait. А значит сущность безразмерная, и при попытке передать лямбду по значению, я сосну.
Получается тип значения у HashMap будет Box<Fn(Hui) -> Govno>?
2) Какой строковый тип подойдет для роли ключа? Если использовать &str, то ключ будет существовать, пока я нахожусь в области видимости этого &str. Верно ли, что в таком случае, если в дальнейшем я буду ебашить Foo-фабрику, а в ней задавать начальные значения HashMap'у, то life-checker меня обоссыт? Т.е. опять нужно выделять память в куче(использовать String)?

C#-вебмакака

Ответы>>666835

25 Фев, 21:48 #32 #666835

>>666748
https://play.rust-lang.org/?gist=d4bcb2e6902dea5a63df&version=stable

1) Получается что так. Причем сможешь хранить как лямбды, так и обычные функции. См. ссылку.
2) Не заебывайся и юзай String. Или &'static str если все ключи известны во время компиляции. Ты же не будешь хранить все ключи в одной длинной строке на стеке, так что в любом случае оно будет на куче. К чему эти преждевременные оптимизации. Будто в том же шарпе хэш мап не полностью в куче. Тем более если заполнять хэшмап последовательно большим количеством записей, то все равно все строки в куче будут последовательно лежать с минимальной фрагментацией.

Ответы>>666869

25 Фев, 22:18 #33 #666869

>>666835
Охуенно. Спасибо за разъяснение.

26 Фев, 01:43 #34 #667230

Rust такой охуенный, что я не могу на нем писать. Только заглядываю в документацию, как обканчиваю монитор, иду курить, а затем без сил падаю спать.

26 Фев, 19:05 #35 #667966

Как работать с матрицами в этом вашем расте? Возможно вопрос звучит глупо, но я правда не понимаю.
Более конкретно, как по-простому задать часть одной матрицы с помощью другой, что-то вроде A[a:b, c:d] = B?
Мне для этого нужно самому сделать обертку над вектором и при вставке этой матрицы проходить по строкам (или столбцам в зависимости от способа хранения), вычисляя индексы? Или такое уже кто-то запилил?

Ответы>>667982

26 Фев, 19:19 #36 #667982

>>667966
https://crates.io/search?q=matrix
Если нет того, что тебя удовлетворит - то да, пилить самому.

26 Фев, 21:32 #37 #668111

Посоны.
Посоветуйте годных ящиков.
1) Числа. BigInteger, BigRational, decimal
2) Вывод графиков (2d, линии уровня, поля). Есть обертки matplotlib или gnuplot годные?
3) GUI (нужно чтонибудь типа picturebox WinForm чтобы самому рисовать)

А, посоветуйте еще годных плагинов для Sublime Text 3.

Ответы>>668220

27 Фев, 00:01 #38 #668220

>>668111
В гугле забанили что ли?
1) https://github.com/rust-num/num
2) https://github.com/SiegeLord/RustGnuplot
3) https://github.com/PistonDevelopers/conrod

Ответы>>668239

27 Фев, 00:28 #39 #668239

>>668220
Да я дурак просто, навигацию по cargo.io осилить немогу.

28 Фев, 14:39 #40 #669737

>>654367
Так и сделал. Сперва не мог её вернуть так как получал указатель, не догадался его разименовать в переменную-результат.
>>655459
Понимаю неудобство, но с телефона не мог достать код.

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

Также есть сложности с компиляцией на windows некоторых библиотек, которые без проблем собираются под бубунтой.

28 Фев, 16:22 #41 #669855

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

Учитывая что проекту уже 3-й год - ещё ближайшие 3 года релиз чего-то более менее вменяемого сомнителен.

Ответы>>669903>>669919>>669970>>670755>>670825

28 Фев, 16:46 #42 #669903

>>669855
И да, Карл - 300мб на 1 вкладочку с двощиком. И это билд в релиз моде, без поеботы с дебагом.

Ответы>>669919

28 Фев, 16:52 #43 #669919

>>669855>>669903
Весь смак в том, что никто толком и не знает, что они подразумевали под "альфа-версией" в прошлом году. У Мозиллы даже в планах не было использовать этот проект по назначению. Это исследовательский проект как бы. Всё что у них запланировано на текущий момент - добавить одну микропиську в FF. Сейчас они вообще толком ничего не говорят, хоть и расширяют количество сотрудников.
Also, вот сами эти их тестики из презентации:
https://github.com/pcwalton/webrender-demos/
На лисе реально 1-2 кадра в секунду, но под хромом хоть и не 60fps, но прилично идет, так что врал Патрик.
> причём лагает как кусок дерьма даже на своих примерчиках
Ну так оптимизацией они и не занимались. Их задача на текущий момент чтобы эта хуйня хоть как-то работала. В команде где-то 10 человек. Gecko разрабатывают 50 человек штатных сотрудников. Сколько разрабатывает Webkit/Blink?
> он даже двощик не осилил
Можешь сделать скриншот, кстати?

Ответы>>669948

357 Кб, 1920x1080

450 Кб, 1920x1080

28 Фев, 17:11 #44 #669948

>>669919
>Сколько разрабатывает Webkit/Blink?
Аргумент уровня главы сбербанка, про то что гугл вносит nnnnnn изм. в свою ситему в год, а они - n. Дохуя разработчиков - не всегда ускорение разработки, из-за банальной толкучки.
>>669919
>Можешь сделать скриншот, кстати?
Пикрил.

Ответы>>669956>>670825

28 Фев, 17:26 #45 #669956

>>669948
Ну да, хуйня полная.

28 Фев, 17:45 #46 #669970

>>669855
Зато какои пиар

29 Фев, 01:55 #47 #670755

>>669855
>Подрубать гпу на мобильных платформах
Лол, как раз там это лучшее решение. У всех современных смартов и планшетов есть поддержка opengl es 2, зачем грузить cpu если можно загрузить gpu, который справится с рендером более энергоэффективно.

29 Фев, 06:50 #48 #670825

>>669855
> он даже двощик не осилил
Именно двощик он и не осилил. Макака немного намудрила с веб-магией.

>>669948
> Аргумент уровня главы сбербанка, про то что гугл вносит nnnnnn изм. в свою ситему в год, а они - n. Дохуя разработчиков - не всегда ускорение разработки, из-за банальной толкучки.
Десять человек на такой проект это действительно немного. Тем более, что им скорее интереснее сейчас прикручивать browser.html/mozbrowser api, чем фиксить рандомные баги с вёрсткой.

Ответы>>671101

29 Фев, 15:36 #49 #671101

>>670825
>Именно двощик он и не осилил. Макака немного намудрила с веб-магией.
Суть в том, что двощик ещё выглядит в нём относительно нормально, как и фочан распидорашен совсем немножко. Посмотри на более менее круто свёрстанные сайты, например как theverge пидорасит. Тот же медиум вообще не открывается, на вроде бы простом реддите вообще падает. Хабр не скроллится и падает через минуту, сомневаюсь что везде тут прям магия и хаки кругом используются.
>Десять человек на такой проект это действительно немного. Тем более, что им скорее интереснее сейчас прикручивать browser.html/mozbrowser api, чем фиксить рандомные баги с вёрсткой.
Ну, 10 человек - это видимо толлько команда в штате, на том же гитхабе числится 400+ контрибьютеров.

Ответы>>671185

29 Фев, 16:35 #50 #671185

>>671101
> на вроде бы простом реддите вообще падает
У меня вроде норм работает. Медиум начинает грузиться, но затем падает.
В случае двачика есть регрессия: раньше он рендерился намного лучше, лишь только постинг не работал.
> Ну, 10 человек - это видимо толлько команда в штате, на том же гитхабе числится 400+ контрибьютеров.
Большинство из них сделало примерно один маленький вклад за всё время.

Ответы>>671188

29 Фев, 16:38 #51 #671188

>>671185
>раньше он рендерился намного лучше, лишь только постинг не работал.
У меня в серво он и сейчас не работает вообще ни в какой форме.

29 Фев, 21:21 #52 #671576

На каком железе оно работает и как добавляют поддержку? На ARM работает?

Ответы>>672000>>672057

01 Мар, 07:50 #53 #672000

>>671576
> На ARM работает?
Да, работает.

01 Мар, 10:06 #54 #672057

>>671576
На любом, по идее. Там же LLVM бекенд.

03 Мар, 21:24 #55 #674770

Чейнжлог к 1.7 опубликовали, посаны: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-170-2016-03-03
Если я правильно понял, можно в хэшмэп свой хэшер использовать, глядишь перестанет так на интах тормозить.

03 Мар, 22:20 #56 #674875

А вот и анонсмент: http://blog.rust-lang.org/2016/03/02/Rust-1.7.html

Ответы>>674951>>675973

03 Мар, 23:01 #57 #674951

>>674875
Что-то жиденько как-то

Ответы>>674959

03 Мар, 23:06 #58 #674959

>>674951
Зато по расписанию.

Ответы>>674963

03 Мар, 23:09 #59 #674963

>>674959
Ну надож видимость для спонсоров создавать.

04 Мар, 18:37 #60 #675973

>>674875
Уже обсуждаем:)

Точки над бенчмарками уже расставили...

Ответы>>675976>>676017

04 Мар, 18:38 #61 #675976

>>675973
https://www.linux.org.ru/news/mozilla/12406508/page1#comments

04 Мар, 18:58 #62 #676017

>>675973
>Точки над бенчмарками уже расставили...
Ну, если ты это так называешь, то да. Хотя я бы сказал что один колобок обосрался выставив напоказ свою глупость.

Ответы>>730469

05 Мар, 00:54 #63 #676698

Rust заменит C++?

Ответы>>676711>>676897>>676943

05 Мар, 01:05 #64 #676711

>>676698
Его уже ничто не заменит.

05 Мар, 06:22 #65 #676897

>>676698
Тебе в /sn/ или /mg/, тут гадалок нет.
Прямо сейчас есть множество областей, где замены нет даже близко. Например, gui.

Ответы>>676938

05 Мар, 10:24 #66 #676938

>>676897
Так там же Tcl/Tk, не?

05 Мар, 10:28 #67 #676943

>>676698
JavaScript заменит всё.

05 Мар, 18:26 #68 #677538

Как отметили очередной релиз котаны?

Ответы>>677685>>681275

05 Мар, 21:29 #69 #677685

>>677538
А что, предполагается по случаю очередного релиза употреблять алкоголь/вещества/баб? Если да, то люди точно потянутся к расту.

09 Мар, 11:00 #70 #681241

https://www.youtube.com/watch?v=u0hYIRQRiws
Ну хуй знает. Они что, каким-то серво из параллельной вселенной пользуются?

Ответы>>681285>>681364

09 Мар, 11:37 #71 #681275

>>677538
Хули там отмечать, если релиз каждые 6 недель, вне зависимости от изменений.

Кстати, куда делся GC из дорелизных версий?

Ответы>>681514

09 Мар, 12:03 #72 #681285

>>681241
Не обязательно, просто в нём рендеринг на GPU доступен.

09 Мар, 13:31 #73 #681364

>>681241
В линуксе вебрендер работает не так хорошо, как в макосе, но он все ещё намного быстрее Firefox'а.

283 Кб, 1277x982

09 Мар, 13:41 #74 #681371

Через вебрендер, кстати, /pr/ норм рендерится.

Ответы>>681510>>740448

09 Мар, 14:29 #75 #681415

>Initial implementation of the `?` operator just landed
>The ? postfix operator is sugar equivalent to the try! macro, but is more amenable to chaining:
>File::open("foo")?.metadata()?.is_dir()

09 Мар, 15:38 #76 #681510

>>681371
А как его потыкать-то? Скомпилировал, куда засунуть либу, чо настроить?

Ответы>>681692

38 Кб, 500x550

09 Мар, 15:39 #77 #681514

>>681275
Убрали к хуям подальше, чтобы ещё и эту плашечку хейтеры не повесили. Вообще, вроде бы с нуля пишут.

126 Кб, 974x622

150 Кб, 974x622

107 Кб, 974x622

09 Мар, 16:00 #78 #681541

Windows 80.6%
Mac OS X 2.8%
Linux 16.6%
Nope?

Ответы>>682438

09 Мар, 18:21 #79 #681692

>>681510
./mach build --release
./mach run --release -- https://2ch.hk/pr/ (М) -w
Как-то так. Можно ещё browser.html поверх него навернуть.

10 Мар, 10:44 #80 #682438

>>681541
> Windows 80.6%
> Rust's support for the GNU ABI is more mature, and is recommended for typical uses.
Ребята там еще не убились о подводные камни?

12 Мар, 17:05 #81 #685093

А этот Servo уже собирали под ведроид?

Ответы>>685105

12 Мар, 17:21 #82 #685105

>>685093
На гитхабе заголовок в описании:
>Building for Android target
пиздуй собирай и тестируй, коли интересно.

13 Мар, 18:46 #83 #686456

Привет, аноним.
Есть `x: Vec<f32>` со значениями от -10 до 10 с шагом 0.5.
Есть функция `f(x:f32) -> f32`
Нужно сохранить `x` и соответствующий ему `f(x)`.
Попытался юзнуть `HashMap`, но rust говорит что у `f32` не реализован трейт `Ord` и `Eq`. Может есть какие-нибудь еще варианты структур?
Нужно чтобы структура была отсортирована по значениям `x` и значения `x` были уникальными.

Ответы>>686717

13 Мар, 20:42 #84 #686717

>>686456
Пройдись по всем элементам вектора, преврати каждый элемент в пару значения и функции от этого значения:
let v: Vec<(f32, f32)> = v0.iter().map(|x| (x, f(x)) );
У тебя и так в векторе значения уникальны и отсортированы, HashMap тебе (пока) не нужен. Если все-таки понадобится, используй метод collect.
Возможно, ты не понял что в векторе можно хранить пары значений?

Ответы>>686749

255 Кб, 577x825

13 Мар, 21:07 #85 #686749

>>686717
Я немного неправильно выразился.
Есть функция f(x). Она очень затратна по вычислениям.
Я хотел бы реализовать обертку вокруг этой функции с кэшем. Есть заранее заданный интервал значений x, где я могу в порядке инициализации посчитать этот f(x). Если юзер запрашивает уже посчитанное значение, то я возвращаю его из кэша, а если новое значение, то я считаю значение функции и помещаю в кэш (ну и конечно возвращаю). Требование сортированности я чет с неба взял, а уникальность мне очень даже нужна.
Гугл подсказывает мне, что проблема в NaN, и похоже мне придется писать обертку вокруг f32 и реализовывать для нее нужные трейты.

Ответы>>687135

14 Мар, 03:00 #86 #687135

>>686749
Бля, вот очередной мудак, который не показывает что у него там за секретный правительственный код который никто не может видеть, а все должны работать экстрасенсами.
Если юзер может запрашивать только определенные значения с заданным шагом - то просто принимай от него целочисленные значения или преобразуй принимаемые значения в дроби типа 1/2, 2/2, 3/2 где делитель константа. И по делимому пили хэшмап.
Если принимаемые значения произвольные, то хэшмап тут никаким вообще боков не пойдет. Тупо по тому что операция равенства для значений с плавающей точкой вообще точно не определена. Просто почитай как float работает в современных процессорах.
Можно конечно сделать обертку с имплементацией трейта и таки сделать хэшмап, но я не понимаю что это тебе даст.
В случае с произвольными значениями надо делать сортированный вектор из пар значений (x, f(x)), с бинарным поиском по первому значению с определенной погрешностью (например 0,005).
Но тут опять же не понятно, значения f(x) прямо пропорционально зависят от x? Если да, то например если посчитан результат для 0,4 и 0,6 то при запросе 0,5 можно взять два готовых результата и отинтерполировать.

Ответы>>687321

14 Мар, 11:49 #87 #687321

>>687135
Потише, братишка, в этой ситуации.
Я просто себе задание выдумал, чтобы выполняя его я познал вкус программирования на расте. На самом деле я из DARPA
Мне просто нужен кэш, куда я буду складывать вычисленные значения. А теперь следи за руками -
HashMap get O(1)~
> В случае с произвольными значениями надо делать сортированный вектор из пар значений (x, f(x)), с бинарным поиском по первому значению с определенной погрешностью
Binary search O(log n)
> но я не понимаю что это тебе даст
Скорость даст, которую я хочу получить, используя HashMap.
> Тупо по тому что операция равенства для значений с плавающей точкой вообще точно не определена.
А пацаны то и незнают про (a-b).abs() < f32::EPSILON

14 Мар, 15:00 #88 #687507

Чо такое 'a 'b 'huebe?

Ответы>>687829>>687952

392 Кб, 1400x1980

14 Мар, 18:50 #89 #687829

>>687507
Время жизни. В расте у всех данных есть один конкретный владелец.
В общих случаях компилятор сам определяет время жизни. Но иногда он у тебя хочет уточнить что ты хочешь от него. Например, ты заимствуешь какие-то данные из какой-то структуры. И ему нужно удостоверится, что заимствование (&) не переживет владеющей ею структуры.
Есть время жизни 'static. Данные с таким временем жизни данные существуют всё время работы программы. Остальные названия выбираются как тебе угодно.

856 Кб, 2560x1600

14 Мар, 18:54 #90 #687841

http://www.wired.com/2016/03/epic-story-dropboxs-exodus-amazon-cloud-empire/
Тут заявляют, что Dropbox с Go на Rust перекатился.

14 Мар, 20:02 #91 #687952

>>687507
https://www.linux.org.ru/forum/development/12387893

14 Мар, 20:24 #92 #687982

Вот вам еще проект принес:
https://github.com/twitter/rpc-perf

Ответы>>688026

14 Мар, 21:18 #93 #688026

>>687982
Ну у них все подряд на скале. Хипсторы такие хипсторы.

Ответы>>688038

SAGE 14 Мар, 21:23 #94 #688038

>>688026
Как что-то плохое.

Ответы>>688040>>688061

14 Мар, 21:25 #95 #688040

>>688038
Чертова сажа

2052 Кб, 2209x1000

14 Мар, 21:38 #96 #688061

>>688038
Да ничего плохого.
> Servo is going to have an alpha release in June: Servo + browser.html. Help them identify issues!
https://groups.google.com/forum/#!topic/mozilla.dev.servo/dcrNW6389g4

16 Мар, 13:39 #97 #689675

Когда раст будет готов к продакшену, котаны? Просматривал crates.io, там почти все либы с нулевой мажорной версией.
И поясните за версионность. Мне самому нужно менять version в toml файле, или какой-нибудь cargo release сам меняет его?

Ответы>>689700>>689815>>689816

16 Мар, 14:11 #98 #689700

>>689675
Нет продакшен грейд http библиотеки на mio, нет нормального gui, из встраиваемых языков только lua. А для числодробилок и игорей вполне годен. Язык сам по себе стабильный, вроде никуда меняться не собирается настолько чтобы все переписывать пришлось. Крейты некоторые бывает меняются вплоть до переписывания половины апи, да, но об этом обычно прямо указано на страницы репы, что они в стадии разработки.

Ответы>>690148

16 Мар, 16:45 #99 #689815

>>689675
1-3 года и будет готов для продакшена.
На текущий момент версию менять самому.

16 Мар, 16:46 #100 #689816

>>689675
Про версионирование - никто, кроме тебя, не знает, какой выставить следующий номер версии, Cargo уж точно.
В качестве схемы версионирования используй http://semver.org, как все нормальные люди (и почти все крейты на crates.io)

16 Мар, 19:00 #101 #689936

Гайз, паттернов проектирования завезите под раст.

16 Мар, 19:09 #102 #689956

Каталог библиотек: libs.rs
В отличии от crates.io здесь либы сгруппированы по категориям.

16 Мар, 20:35 #103 #690030

>cargo new hello_world --bin
>cd hello_world
>cargo build --release
>смотришь размер бинарника hello_world.exe
>более двух мегов
Хули тут так много?

Я думал этот язык специально сделали на замену дидовских крестов, а оказалось совсем не так.

Ответы>>690058>>690295>>690559

16 Мар, 20:51 #104 #690058

>>690030
Попробуй #![no_std]
https://doc.rust-lang.org/book/no-stdlib.html

16 Мар, 21:59 #105 #690148

>>689700
А mio уже годен? Сравняется по производительности с nginx?

Ответы>>690155>>690557

16 Мар, 22:03 #106 #690155

>>690148
Это библиотека ввода-вывода, ущербное.

Ответы>>690165

16 Мар, 22:15 #107 #690165

>>690155
Я понял.

16 Мар, 23:51 #108 #690295

>>690030
Всё повязано на libc со статической линковый. На линуксе пилят какие-то васяны отдельную привязку к musl, там в несколько кб можно обойтись. Но там вообще отдельная библиотека.

17 Мар, 11:08 #109 #690557

>>690148
Я его больше года назад последний раз тыкал, так то работало все, это просто обертка над epoll.
Но api было по стандартам раста довольно ущербное. Сейчас есть поверх него всякие обертки, посмотри, повыбирай. На crates.io просто в поиск mio вбей, там всякие mioco, rotor и т.д.

17 Мар, 11:09 #110 #690559

>>690030
Попробуй C скомпиль статически с libc.

Ответы>>690564

17 Мар, 11:24 #111 #690564

>>690559
>C скомпиль статически с libc
Это опасно же. Подключишь длл, а там, допустим, маллок по другому реализован.

Ответы>>690570

5 Кб, 780x275

17 Мар, 11:45 #112 #690570

>>690564
Я просто оставлю я здесь.

Ответы>>690633

17 Мар, 13:39 #113 #690633

>>690570
А можно скомпилить статически только то что используется в проге, без всего лишнего?

Ответы>>690723>>690904

17 Мар, 15:09 #114 #690723

>>690633
С glibc, вероятно, нельзя.

17 Мар, 19:10 #115 #690904

>>690633
Тебе это зачем? Ты прогу дискетами распространять собрался? Для микроконтроллеров все равно std не подходит, для них и исполняемый файл получается копеечный.

18 Мар, 15:14 #116 #691688

А в будущем планируется автовывод типа, а то как-то печально без этого. Или четкие чуваки сразу правильно пишут все эти обвесы из Box<<T>>>>?

Ответы>>691695

18 Мар, 15:24 #117 #691695

>>691688
Ну а сам-то ты как себе это представляешь? Напиши хоть псевдокодом что именно ты хочешь.

Если я тебя правильно понял – чтобы всё боксилось и тд автоматически – нет, слишком крутая абстракция для низкоуровенного языка, лишняя магия. Разве что как плагин для компилятора что вообще, как мне кажется, очень хуёвая фича – если язык выстрелит все начнут писать на своих диалектах раста, как в мире хачкеля.

Ответы>>691723

18 Мар, 15:51 #118 #691723

>>691695
Ну я просто в контрраст статьях натыкался на такие истории: "Писал писал, потом не скомпилировалось потому что нужно боксануть, а потом туда, а потом еще это, в итоге нужно в десяти местах поменять тип". А так везде бы писался var и было бы нормально. Почему сильно крутая абстракция, в це++ есть аuто.

Ответы>>691728

18 Мар, 15:56 #119 #691728

>>691723
Блядь, ты дурак, мозга мне выебал. В расте есть вывод типов все переменные, внезапон, имеют синтаксис вида let hui = Box(Hui::new());, только он не спасает от такой хуйни никак.

Ответы>>691730

18 Мар, 15:57 #120 #691730

>>691728
Знаичт я читал очень старые посты. А чего мозг сломался то? ты же словил эксепшн?

Ответы>>691737

18 Мар, 16:04 #121 #691737

>>691730
Дело не в постах, а в том что люди которые их писали не осилили шаблоны. Без них не в плюсах, ни в расте нормально редактировать обобщённые функции/прототипировать что-то то ещё удовольствие.
Эксепшенов в руст низавизли((

Ответы>>691755>>691835

18 Мар, 16:33 #122 #691755

>>691737
>Эксепшенов в руст низавизли((
Ну как в go, только без мерзких кортежей, а со вполне ясным Result

18 Мар, 19:15 #123 #691835

>>691737
> Эксепшенов в руст низавизли((
Как будто что-то плохое. Пердолится с отловом эксепшенов в мультипоточном коде не очень приятное занятие.
Пагни вообще охуенно сделали. Если дерьмо случилось, но не критично и вполне планово - return Err("Не получилось"). А если критичная ошибка, то panic!("НАЧАЛЬНИК ТУТ ПОТОК РАСПИДОРАСИЛО")

Ответы>>691837

18 Мар, 19:18 #124 #691837

>>691835
> ПердолитЬся (что делать?)
Самопочин

24 Мар, 19:51 #125 #697271

Тут растономикон перевели, вдруг кому пригодиться.
https://github.com/ruRust/rustonomicon

Ответы>>697484

24 Мар, 20:51 #126 #697353

>I lead the TypeScript team from its initial release to its use in major frameworks. I also helped design parts of Clang/LLVM, Chapel, and ChaiScript.
Jonathan Turner joins Mozilla's Rust team
https://internals.rust-lang.org/t/announcement-jonathan-turner-joins-mozillas-rust-team/3278

5 Кб, 260x193

25 Мар, 00:33 #127 #697484

>>697271
Насколько я понял, проблемы с памятью у Rust из-за того, что mem::forget не помечен как unsafe? Ну допустим похуй на unsafe. Почему деструктор то не вызвать?
Чтобы была возможность стрелять в ногу, очевидно же!

Ответы>>697524>>697564

25 Мар, 02:16 #128 #697524

>>697484
> Почему деструктор то не вызвать?
Потому, что он нужен именно для того, чтобы не вызывать деструктор.

25 Мар, 06:32 #129 #697564

>>697484
Он не помечен, потому что, а хуй его знает почему. На самом дело много дискуссий на эту тему, но в итоге пришло к тому что вызов деструктора в расте не гарантирован, а утечки памяти не нарушают memory safety. И что можно воспроизвести поведение mem:forget и без него, не использую при этом unsafe.

Ответы>>698530

25 Мар, 06:36 #130 #697565

Вот, даже нашел https://github.com/rust-lang/rust/issues/24456
Как раз из за этого говна scoped треды из std вырезали.

Ответы>>697615

25 Мар, 06:42 #131 #697566

Ну, собственно, это цикличная ссылка в Rс.
Создаешь Rc, счетчик внутри равен 1. Делаешь клон Rc, счетчик становится равным 2. Кладешь клон Rc в себя же.
При выходе из скопа в первоначальном Rc уменьшается счетчик и становится равным 1. Проверяется, что счетчик не 0 и деструктор не вызывается. В итоге содержимое навсегда зависает в памяти.

Ответы>>697629>>697636

25 Мар, 10:14 #132 #697615

>>697565
НЕ ОСИЛИЛ
@
ВЫПИЛИВАЙ ФИЧУ

Ответы>>697704

25 Мар, 10:58 #133 #697629

>>697566
Мне кажется это уже особенность самих указателей с счетчиком. В C++ вместе с shared_ptr завезли weak_ptr, чтобы циклы разбивать.
Хватит терпеть циклы! Даешь УМНЫЕ умные указатели!

Ответы>>697636>>697704

25 Мар, 11:13 #134 #697636

>>697629
>>697566
Ну так тут тоже weak и strong есть. Или они чем-то различаются от c++'ных?

Ответы>>697641

25 Мар, 11:28 #135 #697641

>>697636
Weak есть в Rust. У них поведение с плючами идентичное. Rc +1 при клонировании делает, а Weak не учитывается в счетчике.

Я к тому, что
> 2016
> AI подебил в го
> утечка памяти из-за циклических ссылок
Ничего круче счетчиков пока не придумали?

25 Мар, 13:05 #136 #697704

>>697615
>>697629
Ну так все как в С++, проблема в том что утечка памяти не так страшно, но если forget'нуть scoped тред, то это приведет к дедлоку в главном треде. Поэтому выпилили не Rc, а scoped треды, а forget сделали safe.
Но никто не мешает эти же scoped треды с crates.io забрать и пользоваться аккуратно.

Ответы>>698155

96 Кб, 1280x875

25 Мар, 19:29 #137 #698155

>>697704
Имхо, помечать forget как safe это идиотское решение. Как минимум из-за RAII. Память, файлы, сокеты, все завязано на этот механизм. И тут на тебе возможность наебать систему.

25 Мар, 19:38 #138 #698175

>>698165
Ну сборщик мусора это уже что-то тяжелое. Я имел ввиду додумались ли бородатые дядки до какого нибудь другого умного указателя.
Да и сборщик мусора тоже подвержен циклическим ссылкам. Питон до сих пор вроде (http://stackoverflow.com/questions/8025888/does-python-gc-deal-with-reference-cycles-like-this) не может разрубить цикл.

25 Мар, 20:10 #139 #698185

>>698176
Он будет медленнее когда у тебя много долгоживущих объектов. Когда куча маложивущих - подсчёт ссылок разорвёт память как полотно и целостность памяти пойдёт по пизде, тут gc выиграет и неоднократно.

Ответы>>698188>>698190

25 Мар, 20:18 #140 #698188

>>698185
>Когда куча маложивущих
Происходит куча stop-the-world'ов, не? По крайней мере в джаве используют приватную ансейф фичу что бы избавлятся от кучи побочных объектов.

Ответы>>698235

25 Мар, 20:20 #141 #698190

>>698185
> подсчёт ссылок разорвёт память как полотно и целостность памяти пойдёт по пизде
Поясни за фрагментацию. Я сам использовал только языки со сборкой мусора, и не очень понимаю в чем фишка.
Вот например память, со структурой A. (sizeof(A) == 3)
[A|A|A| | | | |]
Добавляем 2 структуры B (sizeof(B) == 2)
[A|A|A|B|B|B|B| ]
Удаляем первую структуру B
[A|A|A| | |B|B| ]
Дефрагментация ?
Вроде и память есть, но структуру А уже не добавить.
Как такую хуйню обрабатывать? Когда заморачиваться о такой хуйне?

25 Мар, 21:48 #142 #698235

>>698188
А теперь представь что из одного источника stop the world у тебя их столько, сколько элементов в массиве.

Ответы>>698400

26 Мар, 01:28 #143 #698400

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

Ответы>>698490

26 Мар, 09:30 #144 #698490

>>698400
Потому что перечитай ветку сообщений, вася. Есть конкретная ситуация где гц быстрее подсчёта ссылок – и всё, я не писал что это манна небесная.

9 Кб, 184x184

26 Мар, 11:05 #145 #698530

> https://doc.rust-lang.org/std/rc/
> Destruction is deterministic, and will occur as soon as the last owner is gone.
>>697564
> На самом дело много дискуссий на эту тему, но в итоге пришло к тому что вызов деструктора в расте не гарантирован
>> вызов деструктора в расте не гарантирован
Разрабы раста ловко себя обоссали.

Ответы>>698899

26 Мар, 17:11 #146 #698899

>>698530
> as soon as the last owner is gone
Ну так всё верно. Просто the last owner не может быть gone, если Rc владеет сам собой.

29 Мар, 00:38 #147 #701634

Есть Iron юзающие тут?
Есть вопрос по составлению View. Я сам избалованный MVC-ребенок, и мне интересно как вы решили проблему генерации View. Суть такова, что есть SPA, который возвращается при заходе юзера на домашнюю страницу, и API, который дергается из SPA/другого клиента. Нужен какой-то темплейт движок, который это добро рендерить будет. Какие middleware лучше подключить?
У меня ощущение, что либы еще достаточно сыроваты для сириуз бизнеса. Постоянно что-то недоделано, кривовато

Ответы>>701866

29 Мар, 12:39 #148 #701866

>>701634
1) Да, как и сам раст находящийся в разработке до сих пор.
2) Для сириус бизнеса в принципе-то юзать можно, только явно не для веб девелопмента. Какой гибудь плагин для nginx написать подойдёт идеально, делать на нём весь бэкэнд – пустодроч.

Ответы>>703271

30 Мар, 20:38 #149 #703271

>>701866
Я думаю, переписать уже готовый бэкэнд на раст довольно тривиально. А вот с нуля писать это пока что такое себе. Тем более при нахождении всех вэб либ в глубокой преальфе.

Ответы>>703325

30 Мар, 21:29 #150 #703325

>>703271
Если сравнивать со скриптовыми и управляемыми языками доминирующими в этой области - нихуя не тривиально переписать это всё, а потом ещё искать того кто всё это говно поддерживать будет.

Чо сразу на C++ то не переписать сайт-то? Там с поддержкой и преальфой библиотек проблем нет, лол.

05 Апр, 11:19 #151 #708262

Обновил Racer и он прямо раз в 10 быстрее стал (прошлый раз собирал в Январе). Но размер всё ещё огорчает. Он стал меньше на 400 кб но 30.9 мб это всё равно как-то не очень. Хотя я не обновлял сам раст, может так-то меньше.

Ответы>>708335>>709572

05 Апр, 12:20 #152 #708335

>>708262
Ещё бы он хотя бы начал нормально видеть импотры с макросами - цены бы ему не было.

06 Апр, 20:31 #153 #709572

>>708262
>30.9 мб это всё равно как-то не очень
Терабайты на харде копейки же стоят, не?

06 Апр, 21:35 #154 #709630

Там у них так не бомбит, что регулярно пишут мантры на эту тему.
http://huonw.github.io/blog/2016/04/memory-leaks-are-memory-safe/

Ответы>>726412

08 Апр, 22:42 #155 #711409

Есть какой-нибудь достаточно простой способ получить рандомное значение из enum?

Ответы>>711467

09 Апр, 00:04 #156 #711467

>>711409
https://crates.io/crates/enum_primitive

Ответы>>711496

09 Апр, 01:22 #157 #711496

>>711467
Спасибо. Хотя хотелось бы чего-нибудь покрасивее, такую хунту я могу и в крестах делать, хотя даже там enum class ввели ради безопасности.

59 Кб, 900x600

09 Апр, 06:26 #158 #711546

>>639238 (OP)
Недавно начал упарываться по расту. Пока всё нравится. Но интересует один вопрос. Можно ли в расте создавать треды (процессы) подобные эрланговским? Чтоб можно было несколько тысяч запустить и обмениваться сообщениями с ними. Я так понимаю что если обычные треды создавать в таком количестве, то операционка может вмешаться и прикрыть это дело, или я ошибаюсь?

Ответы>>711943

09 Апр, 15:44 #159 #711943

>>711546
Приветствую.
http://devdocs.io/rust/
Рекомендую в закладки добавить, если ещё не сделал. Там можно закачать всё и хранить автономно в браузере.
По твоему вопросу. Обмен между потоками можно осуществлять через вот это:
http://devdocs.io/rust/std/sync/mpsc/index
Помимо этого, в crates можно найти и иные решения по каналам и потокам.
Стандартно на данный момент нормальных легковесных не предусмотрено.
Изначально назначение языка как раз и было

Ответы>>711945

09 Апр, 15:46 #160 #711945

>>711943
Ой, не дописал.
Изначально назначение языка как раз и было на эту тему, само название Rust идёт откуда-то там из биологии и связано с данной темой.
Но пока приходится ограничиваться системными потоками.

Ответы>>712086>>712241

09 Апр, 18:02 #161 #712086

>>711945
Говоришь так будто сожалеешь, если бы грин треды оставили как часть языка, то у нас был бы совсем другой ненужный rust. А так мы получили такую-то няшку, к тому же почти ничто не мешает запилить рантайм для грин тредов, просто никто еще этого не сделал.
https://github.com/rust-lang/rfcs/blob/0806be4f282144cfcd55b1d20284b43f87cbe1c6/text/0230-remove-runtime.md

66 Кб, 436x500

09 Апр, 22:25 #162 #712241

>>711945
> само название Rust идёт откуда-то там из биологии
От ржавчинных грибов же.

Ответы>>712251

09 Апр, 22:51 #163 #712251

>>712241
А что в этих грибах связанного с тредами?

Ответы>>712256>>713453

09 Апр, 22:57 #164 #712256

>>712251
Они нативные.

Ответы>>713451>>713555

10 Апр, 23:35 #165 #713451

>>712256
Но в расте были не нативные треды.

10 Апр, 23:43 #166 #713453

>>712251
Надёжность и распределённость.

Ответы>>713555

11 Апр, 07:58 #167 #713555

>>712256
>>713453
Сук, трллте мня?

Ответы>>713561

11 Апр, 08:29 #168 #713561

>>713555
Сасай))

14 Апр, 18:48 #169 #716753

Где можно почитать release notes новой версии раста?

Ответы>>716834

14 Апр, 19:56 #170 #716834

>>716753
https://github.com/steveklabnik/blog.rust-lang.org/blob/1.8-announcement/_posts/2016-04-14-Rust-1.8.md
В блоге почему-то не вывесили еще.

Ответы>>716849>>716855

14 Апр, 20:06 #171 #716849

>>716834
Я так понял что в основном косметические улучшения пошли.
> cargo init can be used to start a Cargo project in your current working directory, rather than making a new subdirectory like cargo new.
Вот это заебись.

14 Апр, 20:08 #172 #716855

>>716834
Уже вывесили.
http://blog.rust-lang.org/2016/04/14/Rust-1.8.html

16 Апр, 08:36 #173 #718207

Мне вот интересно, когда они через 4 месяца дойдут до 2.0, то точно так же выпустят обещанный апдейт без нихуя, кроме пары замороженных апи?

Ответы>>718209

16 Апр, 08:53 #174 #718209

>>718207
1.10 же, не?

Ответы>>718211

16 Апр, 09:02 #175 #718211

>>718209
А сразу использовать нормальную версионировку, а не издеваться над системой счисления.

Ответы>>718307

16 Апр, 12:44 #176 #718307

>>718211
Ну так они и используют. В каждой версии ведь что-то добавлено кроме багфиксов.
Всё по semantic versioning.

Ответы>>718314

16 Апр, 12:58 #177 #718314

>>718307
Хз что за семантическое версионирование, но для моего парсера в мозгу цифры 1.1 и 1.10 идентичны (как и 1.10000 и тд).

Кроме багфиксов ещё баг/фича-фиксы в языке.

Ответы>>718828

16 Апр, 14:26 #178 #718374

>>639238 (OP)
Наверное очень популярные вопрос среди тех кто знакомится с растом. Поясните за параметры времени жизни.
Вот пример:
struct Customer<'a> {
car: Option<&'a Car>
}
>Теперь компилятор будет знать, что у экземпляра структуры Customer время жизни должно быть таким же как и у экземпляра структуры Car или меньше.
Почему компилятор не может сам автоматом подставить эти параметры? Все примеры, что я видел - какие-то слишком очевидные, более того, я когда писал свой небольшой код - нигде не ставил параметры, и компилятор ругался "ставь их", и я просто наставил везде и прога скомпилилась и работала верно. Почему компилятор не может за меня это делать? Я подозреваю что есть какие-то более неочевидные случаи использования параметров времени жизни. Может приведет кто пример?

Ответы>>718830>>718838

Превозмагая трудности 16 Апр, 19:29 #179 #718627

Ньюфаг вкатывается в тред,
Есть С-функция которая возвращает "%звездочка%const c_char" который нужно преобразовать в строку, как проверить возвращаемое значения на null pointer?

Вот что намудрил: https://ideone.com/FnH1jn
Пример 1: Крашится если c_function возвращает указатеть на null или возвращает корректное значение.
Пример 2: При null указателе возващает дефолтное значение "is_null_value" иначе всегда пустая стока.

Ответы>>718727

16 Апр, 21:09 #180 #718727

>>718627
Растономикон читал?

Ответы>>718739

16 Апр, 21:18 #181 #718739

>>718727
Только rust book осилять начал.

Ответы>>718785

16 Апр, 22:21 #182 #718785

>>718739
Тогда пока не лезь в unsafe и ffi. Как прочитаешь rustbook и разберешься с основами, можно начинать читать rustonomikon, там как раз то что тебе нужно, более глубокое погружение в язык и небезопасные возможности, без которого нормальную связь с библиотеками на других языках не осилишь.
https://doc.rust-lang.org/nightly/nomicon/
https://github.com/ruRust/rustonomicon

17 Апр, 00:03 #183 #718828

>>718314
Наркоман? Током ебнуть?
Версия это не вещественное число.
1.10 != 1.1

И как твой мозг представит 0.21.3 ?

17 Апр, 00:06 #184 #718830

>>718374
https://doc.rust-lang.org/book/lifetimes.html#lifetime-elision

17 Апр, 00:15 #185 #718838

>>718374
> Почему компилятор не может сам автоматом подставить эти параметры?
Может он еще за тебя код писать будет, и проектировать модели?
'a - это гарантия того, что ссылка на Car будет жить столько, сколько Customer. Это ты и указываешь, расставляя 'a в своем коде.

Как тут например расставить параметры?

struct Customer {
car: Option<& Car>,
hui: Option<& Hui>,
pizda: Option<& Pizda>
}

Ну поставит например компилятор

struct Customer<'a> {
car: Option<&'a Car>,
hui: Option<&'a Hui>,
pizda: Option<&'a Pizda>
}

А по моей модели нужно

struct Customer<'a, 'b> {
car: Option<&'static Car>,
hui: Option<&'a Hui>,
pizda: Option<&'b Pizda>
}

17 Апр, 00:15 #185 #718838

>>718374
> Почему компилятор не может сам автоматом подставить эти параметры?
Может он еще за тебя код писать будет, и проектировать модели?
'a - это гарантия того, что ссылка на Car будет жить столько, сколько Customer. Это ты и указываешь, расставляя 'a в своем коде.

Как тут например расставить параметры?

struct Customer {
car: Option<& Car>,
hui: Option<& Hui>,
pizda: Option<& Pizda>
}

Ну поставит например компилятор

struct Customer<'a> {
car: Option<&'a Car>,
hui: Option<&'a Hui>,
pizda: Option<&'a Pizda>
}

А по моей модели нужно

struct Customer<'a, 'b> {
car: Option<&'static Car>,
hui: Option<&'a Hui>,
pizda: Option<&'b Pizda>
}

Показать весь текст
Ответы>>814540

17 Апр, 10:46 #186 #718981

В чем ваши хваленые zero-cost заключаются, если для того чтоб что-то в куче создать, надо Box::new(x) делать, причем x - вначале появится на стеке, а потом будет в кучу перемещен?
Придется свой какой-то велосипед с использованием unsafe использовать, как это сделано в реализации Vec, иначе бы мы охуели создавать в стеке вектора по миллиону элементов и потом копировать в кучу их часами. Но если всё заканчивается unsafe, то нахуя нужен раст?

Ответы>>718982>>719021

17 Апр, 10:47 #187 #718982

>>718981
или наслаждаться переполнением стека

17 Апр, 11:57 #188 #719021

>>718981
zero-cost по мнению разрабов это "минимальная стоимость".
https://doc.rust-lang.org/book/ownership.html
> Rust has a focus on safety and speed. It accomplishes these goals through many ‘zero-cost abstractions’, which means that in Rust, abstractions cost as little as possible in order to make them work.

Для Box новый синтаксис пилится. Пацаны что-то не поделили с Box, Rc и Cell, и в итоге решили использовать Box::new, пока все не уляжется, и api библиотеки не стабилизируется.
https://github.com/rust-lang/rust/issues/28008

Ответы>>719023>>719223

17 Апр, 11:58 #189 #719023

>>719021
И вот еще ссылочка.
https://doc.rust-lang.org/book/box-syntax-and-patterns.html

17 Апр, 15:37 #190 #719223

>>719021
То есть box однажды появится в стейбл версии.
А в чем конкретно проблема? Что не поделили они там? Такое ощущение что проблемы на стороне LLVM.

Ответы>>719431

17 Апр, 19:17 #191 #719431

>>719223
Там довольно много чего не устоялось.
Вот tracking issue: https://github.com/rust-lang/rust/issues/22181

20 Апр, 08:19 #192 #721551

Какая альтернатива синглтону в расте? Как я понял реализовать то его можно, но это не идеамотично. Таскать контекст по функциям?

Ответы>>722111

20 Апр, 21:50 #193 #722111

>>721551
Та же что и в других языках, например, dependency injection, service locator.

21 Апр, 12:36 #194 #722502

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

Ответы>>722540

21 Апр, 13:45 #195 #722540

>>722502
Есть перевод rust book https://github.com/ruRust/rust_book_ru и rustonomikon https://github.com/ruRust/rustonomicon

21 Апр, 14:58 #196 #722620

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

код:
let x = 1;
let c = 'c';

match c {
x => println!("x: {} c: {}", x, c),
}

println!("x: {}", x);

вывод:
x: c c: c
x: 1

Ответы>>722636>>722772

21 Апр, 15:18 #197 #722636

>>722620
Текущий скоуп перекрывает имена родительских скоупов. в данном слуае в матче у тебя x => .. этот икс перекрывает тот икс что let x = 1;

Ответы>>722643

21 Апр, 15:26 #198 #722643

>>722636
это понятно, но откуда у x значение с, где оно присваивается? Ведь если через оператор => присваивается вывод println то в x будет совсем не c

Ответы>>722716>>722755

21 Апр, 16:29 #199 #722716

>>722643
Потому что паттерн матчинг так работает. У тебя в паттерне переменная, что говорит компилятору "возьми то, что я там пытаюсь заматчить и сделай так, чтобы оно называлось именем этой переменной".

21 Апр, 17:10 #200 #722755

>>722643
Извини анончик, писал пост про то как мы с тобой няшимся под пледиком и я рассказываю тебе про раст на примере розовых единорогов и бабочек, но отключилось электричество и все пропало. Так что коротко и зло, к тому же тебе уже ответили.
Ты читать что ли не умеешь?
In other words, x => matches the pattern and introduces a new binding named x. This new binding is in scope for the match arm and takes on the value of c. Notice that the value of x outside the scope of the match has no bearing on the value of x within it. Because we already have a binding named x, this new x shadows it.

Здесь у тебя нет сравненния, так как х затерла объявление твоей переменной, но эта новая х не инициализирована, следовательно здесь нечего сравнивать и раст закономерно решает что ты просто используешь патерн для связывания, что-то наподобие `x @ любое возможное значение` (так как в матче у тебя только одна рука). Поэтому у тебя просто создается биндинг (связывание) к значению c.
Это то же самое что и https://goo.gl/QpMHc3
Или чтобы тебе было еще понятнее это немного похоже на https://goo.gl/3LifL8 хоть и не совсем то.
Короче, перечитай еще раз главу про паттерн матчинг.

Ответы>>722764

21 Апр, 17:17 #201 #722764

>>722755
> Короче, перечитай еще раз главу про паттерн матчинг.

Спасибо, походу и правда надо еще читать дальше растбук, всеровно еще есть не до конца понимание

75 Кб, 736x490

21 Апр, 17:26 #202 #722772

>>722620
В конкретно твоем примере match не имеет смысла.
Фактически его можно представить вот в таком варианте:
https://play.rust-lang.org/?gist=f18337e68bfd66eedbeb0cbf740a28e9&version=nightly&backtrace=0
Т.е. эти две x - разные переменные в разных скопах. Если тебе надо это избежать, используй разные имена.
Твой пример имел бы смысл, если бы ты, например, сделал несколько вариаций:
https://play.rust-lang.org/?gist=df4400b0fdcd09b35fe7792a6713bc0a&version=nightly&backtrace=0
А, вообще, паттерн-мэтчинг и деструкторы - классные штуки. Не зря на них много внимания в мануалах сосредоточено.
С ними можно много чего делать.
https://play.rust-lang.org/?gist=1305382e6a7484d1b2b7ce37dd1785a5&version=nightly&backtrace=0

22 Апр, 22:16 #203 #724009

Когда книга уже выйдет где более подробно будет всё рассказано чем в the book?

Ответы>>724017

22 Апр, 22:26 #204 #724017

>>724009
Rustonomicon где-то переводили, там все узкие места и всё про ансейф облизано 10 раз.

Ответы>>726133

25 Апр, 07:55 #205 #726133

>>724017
Думаю он не это имел ввиду.

25 Апр, 14:46 #206 #726412

>>709630
Перевели
https://habrahabr.ru/post/281370/

25 Апр, 20:16 #207 #726852

CoLaboratory: Rust - конференция о Rust в Москве
https://rustycrate.ru/новости/2016/04/25/colaboratory-rust.html

28 Апр, 15:45 #208 #729519

http://blog.rust-lang.org/2016/04/19/MIR.html
Мир, короче, всем.

Ответы>>729696>>730442

28 Апр, 18:31 #209 #729696

>>729519
Тоже видел это. Прямо семимильными шагами к светлому будущему движемся.

29 Апр, 12:27 #210 #730442

>>729519
А я уж думал каноникал решили мир на расте переписать, ну вот.

29 Апр, 13:02 #211 #730469

>>676017
http://benchmarksgame.alioth.debian.org/u64q/performance.php?test=fasta
Всем привет от колобка, ЛАЛки!

04 Май, 11:45 #212 #733887

Почему вот так работает:
https://play.rust-lang.org/?gist=ea7718d84b14fa6c76fb013afa9ff358&version=stable&backtrace=0
А так не работает?
https://play.rust-lang.org/?gist=d73bd8ced4a8b434d36c75a25151d608&version=stable&backtrace=0

Ответы>>734923

05 Май, 11:11 #213 #734923

>>733887
Ты даже документацию по функции с которой у тебя возникла проблема не в силах прочитать?
https://doc.rust-lang.org/std/mem/fn.drop.html
>While this does call the argument's implementation of Drop, it will not release any borrows, as borrows are based on lexical scope.

Ответы>>736323>>736845

06 Май, 21:13 #214 #736323

>>734923
Да уже потом понял, что тупанул.

60 Кб, 409x428

07 Май, 13:55 #215 #736845

>>734923
Тут даже вопрос не в функции, а по механизму заимствования.
Потому что drop пустая и я от неё ничего не ожидал больше, чем от какой-либо другой функции.
pub fn drop<T>(_x: T) { }
А вот то что заимствования не освобождаются при передаче в функцию - в этом я ступил. Обычно же его передаешь как-нибудь так:
https://play.rust-lang.org/?gist=335ae238f07ac3d8c94c5d8399eba014&version=stable&backtrace=0
И не задумываешься об этом.
Спасибо за наводку.

09 Май, 22:45 #216 #738694

>>652293
>Очень далеко, ничего интересней простеньких демок не завезли.
нихуя себе простенькая демка, 500fps при анимации сотни дивов с тенью https://youtu.be/erfnCaeLxSI?t=125

Ответы>>739246>>739579

10 Май, 15:03 #217 #739246

>>738694
Когда двачик нормально рендерить сможет?

Ответы>>739574>>740448

10 Май, 18:40 #218 #739574

>>739246
У них текущая цель - чтобы 5 сайтов конкретных более-менее отображалось.

10 Май, 18:46 #219 #739579

>>738694
Наверно потому, что он на гпу всё рендерит?

Я посмотрю как его на телефоны/ноутбуки будут проталкивать, это ведь дикий ++ по энергопотреблению.

Ответы>>739643>>739843

10 Май, 20:06 #220 #739643

>>739579
Еще кто-то рендерит не на гпу?

10 Май, 22:17 #221 #739843

>>739579
Все на гпу рендерят. Просто гекко и вебкит не настолько "глубоко" это делают.

11 Май, 07:57 #222 #740113

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

Ответы>>740115>>740462>>740519

11 Май, 08:05 #223 #740115

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

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

Ответы>>740118>>740133

11 Май, 08:06 #224 #740116

228 пост ИТТ.

11 Май, 08:08 #225 #740118

>>740115
>сати
Сути.

11 Май, 09:06 #226 #740133

>>740115
Так может паттерны и читнуть разом? В планах тоже было.

Ответы>>740146

11 Май, 09:43 #227 #740146

>>740133
Если планируешь явамакакой работать – читай. Я ирл вне явы сталкивался только с визитором и синглтоном, сомнительная польза от их знания.

Ответы>>740172

11 Май, 10:19 #228 #740172

>>740146
Чтобы знать, какое говно мне пригодится, а какое - нет, надо хотя бы минимально в них разбираться.
А то как начал читать тред или смотреть описания языка, так натыкаюсь на всякое абстрактное говно, которое не знаю.
Меня просто интересует альтернатива С, да и в целом развиваться надо. Всякие ООП и прочее в моей области редко нужны.

11 Май, 16:43 #229 #740448

>>739246
=> >>681371

11 Май, 17:00 #230 #740462

>>740113
http://rustbyexample.com/ же.

11 Май, 18:22 #231 #740519

>>740113
Наверное книги по сипп читать лучше. Там полно инфы на русском. А в доках Раста все на английском. Алсо вот про эмбедед https://zinc.rs

Ответы>>740526

11 Май, 18:30 #232 #740526

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

11 Май, 22:00 #233 #740762

Может кто в курсе, как собрать приложение без привязки к терминалу под виндой? Создаю окошко с помощью glutin, но при запуске кроме него открывается и терминал.

Ответы>>740863>>741071

11 Май, 23:14 #234 #740863

>>740762
Гуглимо: http://stackoverflow.com/questions/29763647/how-to-make-a-program-that-does-not-display-the-console-window

12 Май, 06:46 #235 #741071

>>740762
Просто пропатч бинарник после компиляции. Там один байт всего поменять, по-моему.

15 Май, 21:44 #236 #744537

поясните про биндиги к си коду. я вот хотел embed базу данных использовать, типа sqlite, но нихуя не понял, мне что нужно отдельно си код ктмпилить? или ставить в окружение что-то?

Ответы>>744545

15 Май, 21:49 #237 #744545

>>744537
Бляяять. Ты из скриптопараши/явадотнетов вкатываешься чтоле?

Если у тебя нет бинарника – да, тебе в любом случае придётся его собирать отдельно.
А потом нужно просто импортировать экспортируемые бинарником функции, как в экземпле, всё.

Ответы>>744589

15 Май, 22:19 #238 #744589

>>744545
лол, канешн самые компилируемые языки были у меня это typescript и coffeescript. я прост не понял почему у меня flate2 скомпилилось само, хотя там тоже код на си. как различать биндинги на внешний код от биндингов на си код который идёт в комплекте?

Ответы>>744600

15 Май, 22:29 #239 #744600

>>744589
>я прост не понял
В таких случаях нужно ковырятся в проекте.
https://github.com/alexcrichton/flate2-rs/blob/master/miniz-sys/build.rs#L6
Вот так хитро он сам компилирует свои сишные зависимости.
> как различать биндинги на внешний код от биндингов на си код который идёт в комплекте?
Биндинги - просто объявления функций обрамлённые в extern. Раст не си/плюсы, и тут неимпортируемый код всегда пишется там же где объявляется.

16 Май, 14:15 #240 #744977

А что-нибудь известно про box синтаксис? Я его сейчас много использую, но он нестабилен, Вдруг закроют?

Ответы>>745349

16 Май, 21:51 #241 #745349

>>744977
усмысле? Box::new(hueta) - обёртка которая сразу кладёт в кучу?

Ответы>>745884

16 Май, 22:08 #242 #745355

А что там с гуем, посоны? Что-нибудь новенькое появилось? Или всё так же старый-добрый пердолинг с Сишними апями через unsafe и самописные костыли? QML-биндинги расто-сообщество так и ниасилило портировать (а ведь они есть и с сишными апи)?

А как там интеграция с C++? Шаблоны с енумами вызвать из раста без ручного unsafe байтоёбства (который сломается после первого обновления шланга) хоть как-то можно?

А то сейчас пишу на F#+WPF, а хочется попробовать что-нибудь функциональненькое и одновременно скоростное (и с няшным гуем). Но видимо расту ещё до этого срать и срать.

Ответы>>745380>>745398

16 Май, 22:57 #243 #745380

>>745355
https://crates.io/search?q=gtk
https://crates.io/crates/qmlrs

Ответы>>745408

16 Май, 23:22 #244 #745398

>>745355
>Шаблоны с енумами
Ааа блять, не пиши хуйни. Шаблоны с енумами остаются в компайлтайме, разница в манглинге у разных компиляторов и тд – это говнище не стандартизировано, и его никогда не получится импортировать никуда нормально. Даже в D их интерфейсить не получилось (это такие рефакторнутые плюсы, если чо).
>Но видимо
Но видимо ты плохо понимаешь зачем нужен раст. Пишешь гуй – используй высокоуровенный язык. Не еби мозги себе и окружающим.

Ответы>>745408>>745410

16 Май, 23:37 #245 #745408

>>745380
> https://crates.io/crates/qmlrs
Неполноценное альфа-дерьмецо. https://github.com/cyndis/qmlrs/issues/43
> https://crates.io/search?q=gtk
А вот это уже лучше. Надо будет глянуть.
>>745398
> Ааа блять, не пиши хуйни.
Что не пиши? Раст без дикий костылей вообще половину шаблонов С++ не осиливает (хотя учитывая, что эти сами шаблоны и есть костыли, то всё нормально). Или C++ библиотеки нинужны?
> Но видимо ты плохо понимаешь зачем нужен раст.
Для чего же? Хоть ORM или аналог LINQ завезли? Или базы данных тоже нинужны, а нормальные посоны ебашат чистым SQL?

Ответы>>745525>>745540

16 Май, 23:39 #246 #745410

>>745398
Нахуя это ваше говно нужно?
Поясни уж.

45 Кб, 353x609

17 Май, 06:00 #247 #745525

>>745408
> Хоть ORM или аналог LINQ завезли?

https://www.rust-lang.org/
> Rust is a systems programming language
> ORM
> LINQ

Ответы>>745812>>745868

17 Май, 07:24 #248 #745540

>>745408
>Раст без дикий костылей вообще половину шаблонов С++ не осиливает
Повторюсь: ты не понимаешь как эти шаблоны в крестах работают и, видимо, не умеешь читать.
>Или C++ библиотеки нинужны?
Ну сразу видно ни разу не писавшего на плюсах. Абсолютное большинство библиотек (та же Qt) их вообще не используют низачем, кроме как ради своих контейнеров.
>Или базы данных тоже нинужны
Бери высокоуровенный язык и ебашь гуи с крудами на нём. На расте ни ORM, ни LINQ адекватных аналогов нету и не будет. А ещё memory-safety модель языка будет тебе только мешать писать подобные вещи.

Ответы>>745798

17 Май, 07:42 #249 #745542

Ахуеваю конешн от туповатости хипсторов. Боженьки из мса им дали язык, с неебической платформой для гуя из коробки, ради него же добавили в язык асинхронность и даже специальную версию сборщика мусора. Им дали линк для быстрого шлёпанья крудов. Им дали мл на дотнете, назвав фшарпом – они всё равно ползут в мир низкоуровенного программирования и спрашивают чо там по гую.

Ответы>>745809

159 Кб, 850x470

17 Май, 09:39 #250 #745612

http://diesel.rs/

17 Май, 14:21 #251 #745798

>>745540
> Бери высокоуровенный язык и ебашь гуи с крудами на нём.
Т.е. раст вообще ни для чего нинужен? Зачем тогда эти дибилы с мозилы делают на нём браузер?
> А ещё memory-safety модель языка будет тебе только мешать писать подобные вещи.
Что-то уровня: А ещё type-safety будет тебе только мешать писать подобные вещи. от любителей javascripta и прочего подобного дерьмеца.

Ответы>>745820

17 Май, 14:26 #252 #745809

>>745542
> неебической платформой для гуя из коробки
В .NET Core, кстати, весь гуй уже выкинули (для кроссплатформенности). А что там будет с .NET Framework не совсем понятно. Может от него вообще откажутся (а может наоборот откажутся от кора). WPF (а уж тем более формочки) уже сейчас считается устаревшим, да и работает только на винде. Предлагаешь гуй на html+css лепить и таскать с собой вебкит для рендеринга?

17 Май, 14:28 #253 #745812

>>745525
> ORM
ORM даже на плюсах есть. Хотя с кем я разговариваю. Тебе же ничего нинужно кроме байтоёбства.

Ответы>>745834

17 Май, 14:34 #254 #745820

>>745798
> нет гуи с крудами
> раст вообще ни для чего нинужен
Ты тредом ошибся, маня.

> Зачем тогда эти дибилы с мозилы делают на нём браузер
И конечно, мозилы будут писать нотариально заверенные письма о своих намерениях дауненку с двощей, который
1) не может погуглить
2) не может скачать IRC клиент, зайти на канал разрабов раста и спросить.
Но давай ты сейчас попробуешь включить мыслительный нерв и порассуждать:
У мозилы возникли некоторые проблемы с C++ в фуррифоксе ->
нет нормальной замены C++ с решением существующих проблем ->
решили создать новый язык для решения существующих проблем.

> Что-то уровня: А ещё type-safety будет тебе только мешать писать подобные вещи. от любителей javascripta и прочего подобного дерьмеца.
Теперь точно можешь пиздовать отседова, так как сразу видно что с borrow-checker ты не сталкивался.

Ответы>>745836>>745848

17 Май, 14:40 #255 #745834

>>745812
> impying ORM на C++ такая уж важная вещь
Хотя крудошлепу вроде тебя это очень важно.

Если бы не был таким долбоебом, то мог бы уже найти http://www.arewewebyet.org/topics/database/ где ясно что ORM так то разрабатываются, но еще сырые.

Так что соглашусь с аноном выше.
> Но видимо ты плохо понимаешь зачем нужен раст.

17 Май, 14:42 #256 #745836

>>745820
Ой-ёй, кокой ты злобный. С твоих слов раст это вообще какой-то волшебный язык, всё чего нет - абсолютно нинужно. Во как. Фанбойство? Или магия языка программирования?
> Теперь точно можешь пиздовать отседова, так как сразу видно что с borrow-checker ты не сталкивался.
Ой всё. Видимо ты сам туповат, если borrow-checker для тебя вызвало хоть какие-то проблемы, хотя в интернете всё это по 200 раз разжёвывается для самых тупых (вроде тебя). А на расте я писал ещё с бета-версии. И вижу, что пока кроме улучшенного высокопроизводительного байтоёбства в нём ничего и нет. Хотя нет, вот хоть асинхронный HTTP-сервер завезли[1] (13 часов назад, гы-гы-гы), прогресс на лицо. Хотя ты даже что такое асинхронный HTTP-север не знаешь. И день назад бы утверждал, что он абсолютно не нужен в таком языка программирования как раст.

[1]: https://github.com/hyperium/hyper/pull/778

Ответы>>745844

17 Май, 14:48 #257 #745844

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

> Видимо ты сам туповат, если borrow-checker для тебя вызвало хоть какие-то проблемы,
А теперь ты кидаешь ссылку со своей реализацией LINQ или хотябы ORM.

> А на расте я писал ещё с бета-версии...
> мам мам сматри я олдфак тралю нюфагов

Ответы>>745851

60 Кб, 551x551

17 Май, 14:52 #258 #745848

>>745820
>У мозилы возникли некоторые проблемы с C++ в фуррифоксе
Заебись оправдание неосиляторству.

Ответы>>745854>>745856

17 Май, 14:55 #259 #745851

>>745844
> А теперь ты кидаешь ссылку со своей реализацией LINQ или хотябы ORM.
Но зачем? Это мне для домашних проектиков нужно. А то у очень больно смотреть как даже после обработки ngen'ом .net-приложение порой тормозит. Но видно не судьба. Самому писать лень, очевидно же.
Хотя вот уже делаю биндинги поверх [1]. Правда вряд ли я этим поделюсь с сообществом, потому что вангую, что полученный код будет невероятно уродлив (а может и не будет).
> > мам мам сматри я олдфак тралю нюфагов
Никто тебя не траллит. Просто я действительно не понимаю, что там может быть сложного.

[1]: https://github.com/filcuc/DOtherSide

Ответы>>745858

17 Май, 14:58 #260 #745854

>>745848
Ну куда ж мозилле до анона с двощей. Вот он бы им все правильно сделол.

17 Май, 14:59 #261 #745856

>>745848
> Мозилла - единственная более-менее крупная компания, у которой хватило яиц навести порядок.

Ответы>>745859

39 Кб, 174x177

17 Май, 15:04 #262 #745858

>>745851
А теперь смотри:
> Хоть ORM или аналог LINQ завезли?
> memory-safety модель языка будет тебе только мешать писать подобные вещи.

> Что-то уровня: А ещё type-safety будет тебе только мешать писать подобные вещи
> сразу видно что с borrow-checker ты не сталкивался.

> ты говно - я Д`Артаньян
> покажи свой LINQ \ ORM

> Это мне для домашних проектиков нужно
> pic related

Ок. Ты победил.

Ответы>>745861

17 Май, 15:04 #263 #745859

>>745856
Тащем-та тот же гугл гораздо больше языков программирования создал, чем мозилла. Даже пытался няшный дарт протолкнуть, но веб-макаки отказались от ЯП, который имел слишком слабый запах говня, и остались верны старому доброму яваскрипту. Да и вообще сейчас любая более менее крупная ит-корпорация обязательно создаёт свою OS (на базе андроид), свой ЯП (самый-самый быстрый, обычно поверх JVM), свою бд (для верибиг-дата) и свой бев-фреймворк (который почти не тормозит). Просто раст выделяется из этого всего тем, что это системный язык.

17 Май, 15:05 #264 #745861

>>745858
А что на домашних проектах нужно обязательно страдать и байтоёбить? Даже немножко абстракций и сахарку низзя?

Ответы>>745868

17 Май, 15:10 #265 #745868

>>745861
> страдать и байтоёбить
Еще раз блять повторяю. >>745525
Почитай определение системного программирования.

Хочешь сахарку - ищи другой язык\платформу. Раст для тебя еще сырой.

Ответы>>745870

17 Май, 15:13 #266 #745870

>>745868
Системное программирование и сырой это разные вещи. Раст попросту сырой. Отсутствие некоторых фич к какому-то там волшебному системному программированию, которое видимо летает над языком и уничтожает все абстракции ещё до того как они появятся, не имеет никакого отношения.

Ответы>>745878

17 Май, 15:33 #267 #745878

>>745870
Раст не попросту сырой.
В стандартной поставке нет средств ORM и LINQ потому что rust - системный язык.
Дизайнерам было похуй на крудоблядков, потому что язык предназначен для другой аудитории.
Сырой он в плане того, что либы сырые, что очевидно.
Вот здесь и переплетаются две разные вещи, понять которые ты не способен.

> волшебному системному программированию... бла бла бла...
У тебя батхерт какой-то. Иди обмажься C#. Ах да
> А то у очень больно смотреть как даже после обработки ngen'ом .net-приложение порой тормозит
У мсье просто руки из жопы, что круды тормозят, вот он и изливает тут душу, что в другом языке нет нужных ему фич.

Ответы>>745888

17 Май, 15:38 #268 #745884

>>745349
имеется ввиду box zalupa, допустим деалем матч и паттерн Huita(box zalupa) => {...}, говорит о том что zalupa обернута в бокс. Очень удобно.

17 Май, 15:40 #269 #745888

>>745878
> В стандартной поставке нет
И не должно быть. Только это не из-за того что он системный.
> У тебя батхерт
У всех баттхёрт кроме тебя.
> У мсье просто руки из жопы
Прост ты никогда не работал с нетом. И да мне просто интересно было узнать как там у раста с гуем и базами данных, а в ответ только "кудах, нинужно, мозилла лучше знает, системный язык, а чего добился ты".

Ответы>>745905

39 Кб, 174x177

17 Май, 16:00 #270 #745905

>>745888
> Прост ты никогда не работал с нетом.
Обосрался, маня. 4 года на asp.net крудошлеплю. Был в стартапе со спагетти-кодом - ничего не тормозило. В студенчестве писал диплом решал систему дифуров - числодробилка слишком громкое название - ничего не тормозило.

> И не должно быть. Только это не из-за того что он системный.
Тогда вопрос
> Для чего же [нужен раст]? Хоть ORM или аналог LINQ завезли?
решен.

> У всех баттхёрт кроме тебя.
Нет ты.

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

Хитрые маняврирования:
> И да мне просто интересно было узнать как там у раста с гуем и базами данных
> Зачем тогда эти дибилы с мозилы делают на нём браузер
> pic related[1]

Ответы>>745916

17 Май, 16:06 #271 #745916

>>745905
> 4 года на asp.net крудошлеплю.
> мам мам сматри я олдфак тралю нюфагов

> Был в стартапе со спагетти-кодом - ничего не тормозило.
Очевидно, ты не писал десктопные приложения, сложнее, чем решалка системы диффуров.

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

> Пиздоглаз или жопочтец?
> Приводит аргумент >мозилла лучше знает< из списка.
Да ты у нас сам тот ещё жопочтец. Попу хоть после проигрываний вытираешь?

Ответы>>745931

17 Май, 16:19 #272 #745931

>>745916
> Приводит аргумент >мозилла лучше знает< из списка.
> Я говорю что раст в первую очередь создан мозилами для своих проектов. Все остальное пилится силами сообщества.
Мозилла не юзает эти технологии. Коммюнити пилит либы. Где ты тут увидел "мозилла лучше знает"? Дерьмо с глаз убери, мудила.

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

> Очевидно, ты не писал десктопные приложения, сложнее, чем решалка системы диффуров.
Очевидно, ты не писал %everything else%. Хотя какая разница, сразу видно твои познания, если ты ноешь тут про недостаток ORM и LINQ в системном языке, и гонишь на мозиллу, которые этим языком решают свои проблемы.

Ответы>>745939>>759191

17 Май, 16:24 #273 #745939

>>745931
> системном языке
Ты так и будешь продолжать повторять эту мантру? У тебя кроме раста и ассемблера системные языки вообще есть? Или отсутствие библиотек это у нас теперь новый признак элитарной системности?

Ответы>>745950>>746020

17 Май, 16:37 #274 #745950

>>745939
Ты какой-то дурашка, серьёзно. Тебе 21 раз сказали что это системный язык (читай для хуйлоад сервисов, риалтайма и прочего) с крутой системой типов, который решает проблемы в своей области, и в крудошлёпстве, где чтобы напороться на решаемые языком проблемы нужно очень постараться он нахуй не нужен. Это не того уровня язык, чтобы шлёпнуть кнопочку, и в контролере прописать запрос к бд одной строчкой. В чём суть твоего истегания говном здеся?
другой анон

Ответы>>745952

17 Май, 16:39 #275 #745952

>>745950
> читай для хуйлоад сервисов, риалтайма и прочего
Давай на чистоту. Даже в этих областях он не используется (можешь привести один контр-пример из дропбокса, но ведь больше у тебя ничего и нет) из-за своей сырости. Он не системный в твоём понимании. Никто не запрещает писать на нём всё что захочешь. Он просто сырой.

Ответы>>745959>>746020

17 Май, 16:46 #276 #745959

>>745952
Его нигде не использую потому что нет библиотек, писать свою велосипеды вместо использования существующих никому не всралось представь себе, чего стоит перенести хотя бы один рендер любого ААА движка на него, который писался десятками лет на плюсах, в этом направлении - да, он очень сырой, у него даже IDE с базовой навигацией по коду нету. В отличии от Goвна порог вхождения выше => библиотеки появляются очень и очень неспешно.

280 Кб, 1012x755

17 Май, 17:02 #277 #745967

Stop right there, you bigots.
This place is supposed to be free of hate speech.

17 Май, 18:26 #278 #746020

>>745939
> системный язык
> мантра
Очень смешно. А вообще да, буду повторять. Могу даже ссылку на сайт раста https://www.rust-lang.org/ прикреплять и цитировать
> Rust is a systems programming language

> Или отсутствие библиотек это у нас теперь новый признак элитарной системности?
А вот тут я непонял. Где ты элитарность увидел? В языке нет сахара по твоему вкусу и готовых либ, и он уже для тебя элитарен?

>>745952
Давай на чистоту. Где ты видел использование С\С++ для крудов? Либ-то дохуя там.
> Никто не запрещает писать на нём всё что захочешь.
Но они ПРОСТО не подходят для этих задач. Ты просто обосрешься, пока реализуешь нормальный прототип, а потом придется перепиливать из-за изменяющихся требований, чтобы в итоге получить несопровождаемое дырявое говно с уязвимостями типа Heartbleed.

Ответы>>746025

17 Май, 18:28 #279 #746025

>>746020
> Ты просто обосрешься, пока реализуешь нормальный прототип, а потом придется перепиливать из-за изменяющихся требований, чтобы в итоге получить несопровождаемое дырявое говно с уязвимостями типа Heartbleed.
Т.е. раст лучше вообще не использовать чтобы не получить уязвимости? Значит уже и сам раст нинужен? Вот это поворот.

Ответы>>746038>>746039>>746057

17 Май, 18:40 #280 #746038

>>746025
Если у тебя мир заканчивается на крудах с гуем – да, нинужен.

Ответы>>746043

24 Кб, 512x512

sage 17 Май, 18:40 #281 #746039

>>746025
>и сам раст нинужен

17 Май, 18:42 #282 #746043

>>746038
Но ведь в системных приложениях тоже изменяются требования и там тоже очень важна безопасность. Зачем там использовать такой небезопасный язык как раст?

Ответы>>746045>>746057

17 Май, 18:43 #283 #746045

>>746043
Чтобы ты мог смишно жиреть в итт трете)))

Ответы>>746052

17 Май, 18:45 #284 #746052

>>746045
Ну ладно. Странно конечно, даже сами фанаты раста говорят, что он не нужен. Первый раз такой вижу.

17 Май, 19:00 #285 #746057

>>746025
Ты контекст проебал, зеленый.
> С\С++ для крудов

>>746043
> небезопасный язык как раст
Ну это вообще пушка.

Ответы>>746061

17 Май, 19:04 #286 #746061

>>746057
Но ведь ты сам сказал, что раст небезопасен и лучше его не использовать. Причём тут контекст? Если вместо крудов я начну его использовать для системного программирования он волшебными образом станет безопасней и больше никаких уязвимостей написать на нём будет невозможно, я так понимаю? Это у нас определения "языка системного программирования" - язык, у которого магическим образом понижается безопасность если его не использовать для системного программирования. Интересно, а серво - это системное программирование? Мозилловцы знают, что рас у них слишком небезопасен и им лучше вместо браузера делать сразу операционную систему для её, безопасности, повышения?

Ответы>>746226

17 Май, 21:38 #287 #746226

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

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

Ответы>>746246

17 Май, 21:50 #288 #746246

>>746226
Умничка. Теперь ты сам видишь, что "системное программирование" тут совсем не причём. А если подумать ещё чуть-чуть, то можно прийти к выводу, что и для системного программирования его почти не используют из-за отсутствия тех самых библиотек.

А ещё, кстати, в расте нет наследования для структур, только для аналога нетовских интерфейсов под названием трейты, да и то в трейтах нет поддержки проперти. Видимо растокодеры (игнорируя кукарекания НИНУЖНО со стороны мозиллы) будут как в жавке писать методы getXXX() setXXX(... value). Из-за этого, кстати, в лоб биндинги для Qt и не напишешь. Хотя макросы, да, шикарны. Это вам не сишные дефайны, тут все серьёзно.

Ответы>>746278

17 Май, 22:26 #289 #746278

>>746246
я не тот анон с которым ты спорил, лол
из того что он "для системного программирования" выходит только то что у него нет жирного рантайма с GC и прочим оверхедом. т.е. на нём МОЖНО писать низкоуровневые штуки, которые обычно пишут на С/С++. больше ничего это не значит, на нём так же можно писать серверы с крудами и десктопы с гуями

21 Май, 14:52 #290 #749296

Ну что же вы, растаны. Какие рода проекты колотите на расте?

Ответы>>749303

21 Май, 14:59 #291 #749303

>>749296
я вот пилю ebaltvoymamku-rs

Ответы>>749379

84 Кб, 800x831

21 Май, 16:35 #292 #749379

>>749303
Attaboy

23 Май, 03:42 #293 #751121

Как в Расте заюзать СИшную либу?

Ответы>>751147>>751335>>751336

23 Май, 04:29 #294 #751147

>>751121
https://doc.rust-lang.org/book/ffi.html
Но лучше найти готовые биндинги.

23 Май, 12:56 #295 #751335

>>751121
https://github.com/crabtw/rust-bindgen такая вот хрень еще имеется

23 Май, 12:56 #296 #751336

>>751121
https://crates.io/
Здесь поищи привязки, для большинства известных библиотек должно быть. Обычно у них к названию приписывается sys.

26 Май, 21:36 #297 #754902

1.9
> Controlled unwinding
> Compile time improvements
> Rolling out use of specialization
> Cargo can now be run concurrently.

Ответы>>755028

27 Май, 00:02 #298 #755028

>>754902
https://github.com/rust-lang/rust/blob/master/RELEASES.md

> Cool! :skull: to the ".to_string()" is slow memes!

31 Кб, 771x1004

27 Май, 05:35 #299 #755085

Ответы>>755086

27 Май, 05:38 #300 #755086

>>755085
Выглядит, как с++ моча.
консультант мимо проходил

Ответы>>755095

27 Май, 06:40 #301 #755095

>>755086
Я просто нуб, но расстроился когда дошел до этой главы. Для меня выглядит как обфускация простейшей функции. Пишут что это хороший стиль. Значит придется учиться такое читать

Ответы>>755097

27 Май, 06:41 #302 #755097

>>755095
Вроде ж сахарок с try/catch'ами в последних версиях уже добавили. Или ещё нет?

Ответы>>755099

27 Май, 06:44 #303 #755099

>>755097
Только RFC приняли.

Ответы>>755106

31 Кб, 686x744

27 Май, 07:48 #304 #755106

>>755099
Ну знак вопроса уже добавили в раст (с версии 1.9 вроде), а значит тот пример можно переписать гораздо няшнее.

Ответы>>755197

27 Май, 11:34 #305 #755197

>>755106
> I can guarantee you it will not. ? is still unstable, and since the release of 1.9 means that 1.10 is in beta, it will not be in 1.10.
> Well for one, there's a huuuuuge unresolved question: should it work for Option as well as Result? If we stabilized just the Result version, would we lock out the possibility of extending it in the future?
> Just in general, it is a huge, and widely debated new feature that only landed recently. It needs more time before we can consider stabilizing it. One of the longest-running and most-commented RFCs in Rust history deserves to not just be made stable as quickly as possible, but to take it slow and make sure we get it right.

Ответы>>755200>>755669

27 Май, 11:36 #306 #755200

>>755197
Ну это понятно. А пока пусть растовцы страдают.

28 Май, 01:51 #307 #755669

>>755197
Алсо, есть ещё макрос `try!`. Выглядит конечно не так красиво, но работает даже в релизной версии:
[CODE]
fn file_double<P: AsRef<Path>>(file_path: P) -> Result<i32, MyError> {
let mut contents = String::new();
try!(try!(File::open(file_path)).read_to_string(&mut contents));
let n: i32 = try!(contents.trim().parse());
Ok(n * 2)
}
[/CODE]

31 Май, 00:41 #308 #758066

Ебусь с нечеткими нейросетями. Нужно распараллелить один метод.

В чем суть - каждый `Мейкер` принимает на вход сырые данные и отдает обработанные. Причем имеется метод для объединения этих данных.
`Завод` дает каждому `Мейкер` одни и те же сырые данные и потом объединяет их и возвращает.

Вопрос знатокам - как можно распараллелить это дело? Язык вроде как нацелен на решение таких проблем?

Ответы>>758067>>758183

31 Май, 00:42 #309 #758067

>>758066
Ссылку проебал.

https://play.rust-lang.org/?gist=d7a9afd0ae73d5107d40c12e28d18b1f&version=stable&backtrace=0

Ответы>>758183

31 Май, 08:25 #310 #758183

>>758066
>>758067
> Язык вроде как нацелен на решение таких проблем?
Нуу, не совсем. В стандартной библиотеке есть только дубовые одноразовые треды, которые работают только со статическими переменными. Есть пара крейтов, но они вроде как не совсем стабильно. В общем как-то так: http://pastebin.com/gBcQsg9K

Ответы>>758233>>758949

31 Май, 10:55 #311 #758233

>>758183
Алсо, можно сделать так: http://pastebin.com/WgKY51bZ
Тут уже нет лишних мьютексов и Item::compose выполняется в главном треде. Да и выглядит красивее.
Да и выполняется чутка быстрее, только тут уже если Item::compose выполняется медленно, то потоки будут забивать память новыми make_result'ами если это важно.

test tests::bench_concurrent ... bench: 926,797 ns/iter (+/- 86,735)
test tests::bench_concurrent_new ... bench: 831,805 ns/iter (+/- 16,123)

Ответы>>758235>>758949

31 Май, 10:57 #312 #758235

>>758233
> http://pastebin.com/WgKY51bZ
Ой. Не ту ссылку дал. Вот правильная: http://pastebin.com/jThDrPDp

Ответы>>758949

113 Кб, 459x465

31 Май, 23:44 #313 #758949

>>758235
>>758233
>>758183
Спасибо анон. Ты охуеннен. Пойду дальше дрочить Rust.

Алсо, правильно ли я понял, что к выходу из замыкания в`pool.scoped` будет ожидание завершения дочерних тредов?

Где ты научился этой черной магии?

Ответы>>759029>>759030

01 Июн, 04:32 #314 #759029

>>758949
Угу. Это особенность библиотеки такая. Потому второй вариант и неверен.
> Где ты научился этой черной магии?
Честно говоря, я просто сам заинтересовался и начал гуглить.

01 Июн, 04:35 #315 #759030

>>758949
Алсо, во всех случаях если в дочернем процессе произойдёт ошибка (или в растовом понятии паника), то в обоих случаях произойдёт deadlock. Возможность глобально ловить panick'и добавили только в версии языка 1.9, но пока ещё ни одна библиотека её не использует. Так что избегай unwrap'ов если 100% не уверен в их корректности.

01 Июн, 12:49 #316 #759191

>>745931
>Мозилла не юзает эти технологии.
Ебать ты конченый. В firefox'e уже переписали несколько компонентов на rust. Dropbox на него переписал тоже несколько компонентов своей инфраструктуры.

Ответы>>759276

01 Июн, 14:36 #317 #759276

>>759191
Мозида спонсирует серво с растом напрямую, у дропбокса на расте облачное хранилище – скелет их инфраструктуры.

Ответы>>759352

67 Кб, 317x372

01 Июн, 16:06 #318 #759352

>>759276
>https://news.ycombinator.com/item?id=11283685
>Actually, full disclosure, we really just rewrote a couple of components in Rust. Most of Magic Pocket (the distributed storage system) is still written in golang.

Что еще спизданешь?

11 Июн, 22:45 #319 #767394

Не врубаюсь
> error: #[feature] may not be used on the stable release channel
Но я использую nightly. Что нужно добавить, чтобы нормально воспринимало как nightly?

Ответы>>767484

12 Июн, 00:31 #320 #767484

>>767394
Разобрался. В какой-то либе была кастомная сборка и она собиралась не той версией раста.

12 Июн, 17:26 #321 #767888

можно ли уже считать, что rust не выстрелил?

Ответы>>767969

392 Кб, 1400x1980

12 Июн, 18:39 #322 #767969

>>767888
А ты много знаешь языков, которые "выстрелили" за короткий период времени?
inb4: swift; там анальный господин всё порешал.
Субъективно, по опросам stackoverflow, у раста есть как минимум большой потенциал в плане желающих им начать пользоваться. Но язык ещё дорабатывается. Доделают MIR, доделают оракл, rustup.
Больше всего вызывает опасение отсутствия привязки к C++. Если эту проблему не решат - это огромный минус будет. Отмазки типа "нинужно" звучат убого.
Года через 2 приходи - если к тому времени не выстрелит - тогда да.

Ответы>>768067>>768141

12 Июн, 19:59 #323 #768067

>>767969
раст бы смог, если бы углубился в веб, понимая мейнстрим.
А переманить матерых сишников, которые пишут на сяшках по 20 лет, это верх идиотизма

Ответы>>768208

12 Июн, 21:13 #324 #768141

>>767969
То есть сейчас нет смысла учить раст, вместо C\C++?

Ответы>>768208>>768337

12 Июн, 22:23 #325 #768208

>>768067
Наверно в начале веб подразумевался, но из-за Go отказались.
Вот сишников пытаться перетянуть - маразм, да. Но они ориентируется на С++ разработчиков и умеренных функциональщиков, наверно.
>>768141
Одно другому не мешает. Если ты делаешь какие-то свои поделки, то почему бы его не сделать на каком-нибудь хипстерском языке?
А для работы - никому не нужно (это норма, рынок очень медленно реагирует на новые технологии). И тупо работать не с чем в данный момент. Есть либы какие-то на разные темы, есть попытка сделать веб-фреймворки, но пока ничего интересного. Iron явно умер, например.

Ответы>>768337>>768377

13 Июн, 01:01 #326 #768337

>>768141
если для себя, то хоть ассемблер, если с охватом для работы, смотри вакансии, они решают.

>>768208

Чем их Го то напугал? С вебом они обосрались точно, сейчас такой спрос на шустрые и маленькие микросервисы, что просто просрать это все, надо было еще суметь.
Даже на джаве и то пилять всякие standalone приложения, ибо тренд. И можно было вкатится в это все громко.

Я не сильно слежу за растом, но по-моему количество сторонников, которые смотрели в его сторону, ранее было больше? Чем они еще отпугнули сообщество? (меня, как уже понятно, вебом).

Ответы>>768377>>768603>>768799

13 Июн, 03:48 #327 #768377

>>768208
>>768337
Спасибо что пояснил, анон.

13 Июн, 14:17 #328 #768594

Хуй знает чем Rust кому-то не угодил. Синтаксис-хуинтаксис, а такую охуенную весщь как cargo чет все упускают из виду.
1) Прописал зависимости в cargo.toml
2) $ cargo build
3) ??? (сборка проекта и зависимостей)
4) ЗКЩАШЕ
Сам перекатился с плюсов и не хочется уходить

Ответы>>768598

13 Июн, 14:24 #329 #768598

>>768594
>Сам перекатился с плюсов
В этом и суть. Я тоже кончил когда первый раз увидел тот же dub в D (с абсолютно тем же функционалом), но менеджер зависимостей есть в любом современном яп.

13 Июн, 14:31 #330 #768603

>>768337
Ничего не изменилось, хайпить стали меньше (и хейтеров бампающих этот тред тоже).

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

Ответы>>768639

13 Июн, 15:57 #331 #768639

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

Ответы>>768642

13 Июн, 16:07 #332 #768642

>>768639
Тонны памяти стоят заметно меньше, чем команда разработчиков на расте (чем сложнее инструмент – тем выше требуется квалификация и время дл выпуска продукта).

Короче – докупить пару серверов всегда легче, если ты не гугл/фейсбук.

Ответы>>768663>>768664

13 Июн, 16:57 #333 #768663

>>768642
>Тонны памяти стоят заметно меньше
эту фразу до дыр уже затерли те, кто как бы к бизнесу отношения не имеет.
А потом из-за них со всяких пхп, питонов нод.жс переписывают на что-то вменяемое.

В общем есть ниша эта, не хочу спорить, удачи расту на системном уровне

Ответы>>768683>>768991

13 Июн, 16:59 #334 #768664

>>768642
Проблема в том, что этот подход ведет скорее не к тормознутому ПО, а к тому что ПО в принципе не работает или падает с непонятной частотой, и никто нихуя ничего поняить не может как все это пофиксить, ребутнули и живем молимся.

Ответы>>768683

13 Июн, 17:14 #335 #768683

>>768664
Это ж золотой стандарт легаси! Даже паттерн такой есть: если дёшево падать и подниматься – занимайся этим сколько влезет.

>>768663
>В общем есть ниша эта
В общем, ты вообще не понимаешь о чем говоришь. Почему по твоему даже гугл свои сервисы пишет на яве (кроме поиска с почтой, разумеется)? Прост))) наверн))))

Ответы>>768686>>768714

13 Июн, 17:18 #336 #768686

>>768683
Ну ты просто сокращаешь расходы на дев и поднимаешь на операторов. Из пустого в порожнее. В итоге у тебя пятьдесят дешевых ртов, кто умеет зайти в консоль и пару комманд вбить из гайда. А чем чаще падает система, тем чило этих ртов шириться.

13 Июн, 17:43 #337 #768714

>>768683
>Почему по твоему даже гугл свои сервисы пишет на яве (кроме поиска с почтой, разумеется)?

ну и почему же?

Ответы>>768718>>768731

13 Июн, 17:45 #338 #768718

>>768714
он наверно имеет ввиду вся джава индус аутсорс.

Ответы>>768738

37 Кб, 604x545

13 Июн, 17:56 #339 #768731

>>768714
Потому что тогда не было раста.

13 Июн, 18:07 #340 #768738

>>768718
В гугле - код пишут индусы в аутсорсе?

>он наверно имеет ввиду
вот мне и интересно, что он имел ввиду

Ответы>>768747

13 Июн, 18:29 #341 #768746

Вот есть такой инструменты как Dependency Walker и dumpbin /dependents
Как можно автоматически собирать зависимости в одну директорию (ну, кроме системных), если нужно сделать сборку для распространения?

Ответы>>768949

13 Июн, 18:29 #342 #768747

>>768738
То что ты, животное, читать не умеешь, очевидно.

Я пытаюсь сказать, что если у девелоперов зарплаты не 30 т.р. – железо в большинстве случаев будет банально дешевле команды ртов.

Ответы>>768754

13 Июн, 18:38 #343 #768751

Помогите, почему peek тут все равно жрет мой токен?
https://gist.github.com/anonymous/bdb8e4b640efe1704bf118a058e02df9

Ответы>>768757>>768769

13 Июн, 18:44 #344 #768754

>>768747
Зарелизили проект, который писали 20 человек, оставили для поддержки только двоих на фиксы и вуаля есть мега-класстер который дороже даже двух этих программистов (даже по расходам на электричество).

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

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

Ответы>>768798

13 Июн, 18:53 #345 #768757

>>768751
Переформулируй свой вопрос, пожалуйста.

13 Июн, 19:34 #346 #768769

>>768751
https://doc.rust-lang.org/src/core/up/src/libcore/iter.rs.html#3648
Уходит внутрь. При нормальном использовании это норм, но если всё время дропать Peekable, то данные съедаются.

Ответы>>768945

126 Кб, 1600x1200

13 Июн, 20:18 #347 #768798

>>768754
Ты все правильно говоришь, и очень странно что в современном мире стало уже хорошим тоном забивать на стоимость железа и все эти мантры про "программисты же дороже".

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

У эрланга, например, очень немало областей, где его применение очень даже целесообразно. Но аккуратно, потому что такого тормоза еще поискать. Часто люди, которые не сталкивались с масштабированием более, чем на десяток-другой машин, приводят аргументы навроде "зато мы быстро сделали, всё работает и похрену, что машинок надо до 5-7 раз больше — наша работа стоит дороже". Для этого надо ну хоть раз рассчитать хоть какой-то нетривиальный проект вплоть до стоимости электричества и аренды места (или хоть стоек) в датацентре. Даже на одной стойке вот только про электричество эти моменты уже становится существенными

13 Июн, 20:22 #348 #768799

>>768337
>Я не сильно слежу за растом, но по-моему количество сторонников, которые смотрели в его сторону, ранее было больше? Чем они еще отпугнули сообщество?

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

Ответы>>768822

13 Июн, 21:07 #349 #768822

>>768799
ну как и с D было, мозгов сделать продукт не хватало, а вот поиграться с кодом - наше все.

Ответы>>768828>>768841

13 Июн, 21:17 #350 #768828

>>768822
С одной стороны да. С другой стороны, есть вот пример Clojure, где Рич и еще несколько его ближайших соратников пилят язык по ночам под одеялом как им нравится, и всех посылают нахуй. И в результате наиболее активные члены сообщества забивают на Clojure хуй, потому что ни их патчи никому не нужны, ни их предложения, ни даже баг-репорты. "Без вас разберемся". И пока Рич красиво придумывает Трансдюсеры, куча core-функциональности нихуя не работает.

Совсем недавно было много обсуждений по этому поводу
http://ashtonkemerling.com/blog/2016/06/11/my-increasing-frustration-with-clojure/
https://news.ycombinator.com/item?id=11883579
https://www.reddit.com/r/programming/comments/4nlhih/my_increasing_frustration_with_clojure/

Это не вчера началось https://www.reddit.com/r/Clojure/comments/3jjit5/what_does_steve_yegge_mean_by_clojure_being/

Ответы>>768841>>768875

13 Июн, 21:35 #351 #768841

>>768822
Ебануктий, у D изначально другая проблема - нехватка людей. Когда его начинали пилить ни у gcc не было отдельного бэкэнда, ни llvm-а не было (он был где-то на диске какого-то студента, ок), авторы были заняты компилятором, при этом хотели более-менее вменяемую стандартную библиотеку с рантаймом - обосрались и у них стало 2 стандартных библиотеки, рантайм до сих пор довольно слабенький (пилит это всё дело 6-8 человек, в свободное время, не считая Александерску, который недавно начал на фултайме над этим работать.

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

Ответы>>768843>>768862

13 Июн, 21:36 #352 #768843

>>768841
>над этим работать.
Скобочка ) конешно.
>и над языком работают на фултайме.
Благодаря чему видно хоть какую-то доделанность.

13 Июн, 22:32 #353 #768862

>>768841
Над кложурой тоже работают на фуллтайме, Рич с друзьями в компании https://web.archive.org/web/20140704050611/http://clojure.org/funding

> в кложуре всё тоже не так как в расте
Я и говорил что в кложуре ситуация обратная растовой, что имеет уже свои недостатки.

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

13 Июн, 22:58 #354 #768875

>>768828

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

В этом и проблемы этих языков, программисты ими тупо играются.

Ответы>>768888

13 Июн, 23:11 #355 #768888

>>768875
Чтобы пользовались тысячи и миллионы нужно сделать много чего и вложить дохуя денег.
От языка вообще ничего в этом смысле не зависит.
Решили бы большие дяди вместо Java подарить миру INTERCAL, хуярили бы все сейчас на INTERCAL как миленькие.

13 Июн, 23:14 #356 #768891

> Rust thread
> срач про D и Closure
Че за хуйня происходит?
Подскажите лучше как распространять бинарники. Запилил я например YOBA-AAA-INDIE-игрулю с дохуищей зависимостей которая компилируется час. Как мне теперь распространить этот продукт конечному юзеру? Подойдет ли для этого 'cargo package'?

Ответы>>768892>>768949

13 Июн, 23:17 #357 #768892

>>768891
> Подскажите лучше как распространять бинарники.
Казалось бы, а причём тут раст?

Ответы>>768896

13 Июн, 23:24 #358 #768896

>>768892
Вопрос не про сам раст, а про cargo или про инструмент, который решит данную проблему.

Ответы>>768898

13 Июн, 23:31 #359 #768898

>>768896
Карго это ж только для исходников вроде. С бинарями каждый ебётся как хочет, разве нет?

14 Июн, 01:01 #360 #768945

>>768769
Всё равно непонятно что ты хочешь спросить, честно говоря. Какие данные? Итератор? Структура, по которой идёт итерация? Можешь привести полноценный пример при которых это происходит?

Ответы>>769072

14 Июн, 01:11 #361 #768949

>>768891
Тоже интересует. Вот выше нечто подобное спрашивал: >>768746

14 Июн, 05:11 #362 #768991

>>768663
Потому что час работы навороченного сервера стоит 20$, а час работы программиста - 60$. Вот когда сервера становятся дороже, тогда и начинают переписывать, но происходит это нечасто и не у всех.

Ответы>>769024

14 Июн, 08:22 #363 #769024

>>768991
Тебе говорили уже - возьми и посчитай, и сразу в голове прояснится.
Программист твой 8 часов работает, а сервер 24 - привет, уже сравнялись. Даже пока сервер всего один, а программист все еще пилит эту глюкалу.

Ответы>>769025

14 Июн, 08:24 #364 #769025

>>769024
Программист работает 8 часов и дальше не работает нихуя, а сервер собирает мусор все время. Плюс веб-макака тоже денег стоит, и не всегда дешевле программиста.

Ответы>>769026

14 Июн, 08:34 #365 #769026

>>769025
А ещё веб макака гарантированно быстрее сделает продукт – с его инструментом мозги можно не включать.

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

Ответы>>769028

14 Июн, 08:37 #366 #769028

>>769026
>А ещё веб макака гарантированно быстрее сделает продукт – с его инструментом мозги можно не включать.
Макака - это 30% экономии на зарплате, и 300% переплаты на железе.
>А ещё веб макаку можно обучить Goвну за недельку от силы, и она с похожец скоростью будет говнокодить, а не думать хули там компилятор ноет про проёбанный борровинг.
С этим согласен, раст не нужен, когда есть Go и C++.

Ответы>>769035

14 Июн, 09:00 #367 #769035

>>769028
Go не нужен потому есть LuaJIT.
C++ не нужен потому что те кто умеет на нем писать, стоят как три мейнфрейма.

Ответы>>769036>>769039

14 Июн, 09:01 #368 #769036

>>769035
>веб макака гарантированно быстрее сделает нерабочее говно, и можно будет нанять программиста это выкинуть и переписать за втрое большие деньги

не благодари, поправил тебя

14 Июн, 09:11 #369 #769039

>>769035
Lua динамически типизирован, а стоимость знающих C++ и Rust примерно равна. Кстати, не такая уж она и высокая, на С++-сеньер стоит столько же, сколько и Java-сеньер, например.

Ответы>>769044

14 Июн, 09:20 #370 #769044

>>769039
Да, Lua динамически типизирован. При чем здесь это его положительное свойство?

Я про сеньёров ничего не говорил. Я говорил про тех кто умеет С++. Их, конечно, больше чем растеров, но только потому что количество растеров равно нулю.

Ответы>>769051

14 Июн, 09:28 #371 #769050

>>639238 (OP)
Напомните, в Петухане Куриханыче можно формошлепить, или все печально, как и в Go?

Ответы>>769053

14 Июн, 09:30 #372 #769051

>>769044
>При чем здесь это его положительное свойство?
Это отрицательное свойство - вместо написания программ приходится писать тривиальные тесты. Впрочем, если тебе это не очевидно, иди нахуй.

Ответы>>774985

14 Июн, 09:32 #373 #769053

>>769050
Всё печально. Вроде есть биндинги для гтк, но формошлёпить не получится. Делай как все нормальные посоны: формошлёпай в html и в свою программу встраивай вебкит, который и будет отображать гуй.

Ответы>>769057>>769161

14 Июн, 09:35 #374 #769057

>>769053
А как с Qt? Там можно рисовать формочки в Qt Designer независимо от языка программирования.

Ответы>>769058>>769067

14 Июн, 09:38 #375 #769058

>>769057
Нет нормальных биндингов. Есть что-то полурабочее, но последнее обновление крейта с биндингами было 4 апреля, а нового ничего нет.

14 Июн, 09:49 #376 #769067

>>769057
был биндинг к qt-qml. может живо еще

Ответы>>769072

14 Июн, 09:55 #377 #769072

>>768945
Это не вопрос, это ответ.

>>769067
Не юзабельно, увы: https://github.com/cyndis/qmlrs/issues/22

14 Июн, 13:12 #378 #769161

>>769053
Есть альтернатива, тоже html, но с помощью какой-то другой либы (C-шная). но найти не могу.

14 Июн, 19:16 #379 #769438

https://github.com/habitat-sh
Те кто пишет описание продукции, они, случайно, не у юристов учатся формулировать предложения?
Что эта хрень делает? Это типа докера?

Ответы>>774893

14 Июн, 23:25 #380 #769597

Кто-нибудь пояснит, как пользоваться xml-rs?
Смотрю доки, а они там предлагают мне проходиться по всем элементам в документе ЛИНЕЙНО, блядь. Что за обосраное говно? В примере показано, что берется xml документ, и, блядь, ЛИНЕЙНО проходит по всем элементам по порядку, всрав нахуй всю вложенность. Что за пиздец? Почему по-человечески нельзя? Я чего-то не понимаю? Мне что, блядь, парсер xml писать, чтобы распарсить сраную колладу? Как же мне бомбит с этого обосраного говна.

Ответы>>769627

15 Июн, 00:11 #381 #769627

>>769597
Ну ты и лолка. StAX это для бааальших хмлок нужно. А тебе нужен парсер с DOM-деревом и возможно поддержкой XPath.

Вот что нашёл:
https://github.com/shepmaster/sxd-document/
https://github.com/shepmaster/sxd-xpath

15 Июн, 10:22 #382 #769855

Вообще, по поводу библиотек лучше заходить на https://github.com/kud1ing/awesome-rust/ и смотреть что есть.

15 Июн, 12:38 #383 #769927

https://www.rust-lang.org/friends.html
Вот такой список всплыл

15 Июн, 23:55 #384 #770482

Подскажите пожалуйста, как определить сколько стоит скопировать объект. По занимаемой памяти и/или времени.

Хочу узнать, дорого ли будет делать .copy() на итератор. Но интересно, может есть какой универсальный способ и для других объектов.

Ответы>>770489>>770492

16 Июн, 00:00 #385 #770489

>>770482
Кажется, я нашел в книге - https://doc.rust-lang.org/book/benchmark-tests.html

16 Июн, 00:02 #386 #770492

>>770482
А размер вроде так https://doc.rust-lang.org/std/mem/fn.size_of.html

13 Кб, 577x527

17 Июн, 15:46 #387 #772048

Какой есть способ не таскать за собой это перечисление.

Тут https://doc.rust-lang.org/std/any/trait.Any.html
сказано "Unstable (get_type_id #27745): this method will likely be replaced by an associated static"

Но что это за ассоциированный статик я не нашел.

Ответы>>772209

102 Кб, 558x759

17 Июн, 18:06 #388 #772209

>>772048
Два часа не мог раздуплиться. Оказалось у Any есть еще метод
fn is<T: Any>(&self) -> bool
Returns true if the boxed type is the same as T

24 Кб, 560x744

18 Июн, 23:53 #389 #773671

Я все. Может лучше кирпичи таскать

Ответы>>774048

19 Июн, 11:53 #390 #774048

>>773671
Зачем тебе вообще Any?

Ответы>>775402

19 Июн, 23:26 #391 #774893

>>769438
https://www.opennet.ru/opennews/art.shtml?num=44619

20 Июн, 07:32 #392 #774985

>>769051
В языках со статической типизацией тестов, очевидно, можно не писать?

Ответы>>774992

20 Июн, 07:57 #393 #774992

>>774985
В статических языках (тем более с адекватной системой типов, а не сишечным стёбом над типизацией) их требуется раз в 8 так меньше чем в динамике.

Ответы>>774995>>775046

20 Июн, 08:08 #394 #774995

>>774992
Какое смелое заявление. Из него можно сделать вывод что семь ошибок из каждых восьми в программах - это ошибки "перепутал литры с килограммами" (ни от каких других статическая типизация не помогает), что реальности не соответствует.

Также интересно узнать, не изменилось ли что-нибудь с момента появления умных тестогенераторов типа QuickCheck (имплементации которого существуют как для Rust - кстати, зачем? в нем ведь тесты можно не писать - так и для динамических языков)?

20 Июн, 09:21 #395 #775015

Банальную опечатку "сложили вместо того чтоб вычесть" и компилятором не выявишь, а ведь именно такие опечатки и важны, задрачивать все типами чтобы ловить prink вместо print - это очень странное времяпрепровождение.

> пропатчил сигнатуру у функции, в статике ты компилируешь и фиксишь места, где тебе указал компилятор
Используем компилятор в качестве grep - ну что ж, отлично, развиите Computer Science наконец-то увенчалось полным успехом.

20 Июн, 10:22 #396 #775037

>>775031
>смена интерфейса не превращается в боль (и grep тебе тут не поможет)
Обоснуй.

20 Июн, 10:34 #397 #775046

>>774992
Тайпчекер может верифицировать программу и доказать ее соответствие спецификациям, но спецификации всегда не полны. Если же спецификации хотя бы близки к полноте, то сложность спецификаций приближается к сложности программного кода - как следствие, в спецификациях будет не меньше ошибок, чем в программном коде. И встает вопрос о том, чтобы верифицировать спецификации - то есть писать спецификации спецификаций. Здесь я вижу один путь - доказывать о программе какие-то отдельные интересные факты. То есть - динамическая типизация с опциональной управляемой статикой, или еще лучше - с системой поддержки контрактов, которые есть как для Lua, так и для большинства динамических языков. Полная же статика - это как колоть орехи микроскопом. Причем тогда, когда микроскопа нет - то есть мы должны для начала этот микроскоп придумать, спроектировать, произвести - и только потом расколоть наш орех. Примитивные системы типов, вроде системы типов хаскеля, и уж тем более раста, не позволяют отловить никаких "интересных" ошибок ("интересными" назовем те ошибки, которые не будут обнаружены на первом же тесте). То есть они, по сути, лишь не дают складывать слонов с телегами - чего явно недостаточно. Когда же мы хотим находить "интересные" ошибки, то приходим к проблемам со спецификациями на спецификации. На практике же мы имеем вполне определенную ситуацию - практически все ошибки подобного характера обнаруживаются при первой же проверке работоспособности кода. 99% незамеченных ошибок - логические, система типов их не ловит. Вот на отладку таких ошибок и следует потратить время, сэкономленное на борьбе с системой типов.

Ответы>>775050

30 Кб, 408x306

sage 20 Июн, 10:41 #398 #775050

>>775046
> Тайпчекер может верифицировать программу и доказать ее соответствие спецификациям, но спецификации всегда не полны

20 Июн, 13:04 #399 #775145

>>775143
Будет использовать умные IDE уровня VisualStudio+ReSharper. Такие, кстати, для Lua есть?

Ответы>>775167

20 Июн, 13:18 #400 #775164

>>775151
> Что будет делать IDE?
Хуй её знает. Они ж там все файлы анализируют составляют AST-дерево и уже по нему ищут где что используется и переименовывают только нужное. Ну и у тебя на всякий случай спросят, выдав список всех найденных совпадений.

71 Кб, 1024x728

20 Июн, 13:20 #401 #775167

>>775145
https://studio.zerobrane.com/features

20 Июн, 13:48 #402 #775189

>>775188
Ну ладно. Я тебе верю. Невозможно, так невозможно.

14 Кб, 490x441

15 Кб, 485x395

20 Июн, 19:41 #403 #775402

>>774048
Потому, что я совсем не разбираюсь ни в ООП, ни в функциональщине, особенно трудно даются времена, заимствования и трейты с имплементациями (эти подстановки типов с кучей времен рядом сними). А начал изучать все это с раста.

Ну не получается у меня переопределить метод insert для BTreeMap, новый сделать получается, а когда называю его insert, он обращается к оригинальному. Вот пидор

Ответы>>775509

20 Июн, 22:19 #404 #775494

>>641808
> pijul
Интересная вещь. Никак не могу прочитать какое-нибудь интро в теоркат, чтобы прочитать их статью.

Но раст они зря взяли. Я бы на их месте попытался бы собрать на OCaml-е под винду, либо перекатился на питухон.

Ответы>>775737

13 Кб, 498x293

5 Кб, 427x140

6 Кб, 439x173

20 Июн, 22:33 #405 #775509

>>775402
https://github.com/rust-lang/rfcs/blob/master/text/1210-impl-specialization.md
https://github.com/rust-lang/rust/blob/ea6b3ddee9663e27221f366671261b21618394a0/src/libcollections/btree/map.rs
Я так понимаю, проблема у тебя в следующем:
1. insert - не trait в оригинале, а просто метод, но ладно
2. Для того, чтобы функцию/трейт можно специализировать, он(а) (оригинал) должен(на) быть помечен(а) default

24 Кб, 450x353

sage 20 Июн, 23:58 #406 #775594

>>639238 (OP)
>https://github.com/PistonDevelopers/piston

meine respektierung to all roosters sage 21 Июн, 00:37 #407 #775629

Посмотрел на реализацию хешинга в русте. А там запилили по уму, не как сейчас в C++. Отделили алгоритм хеширования от хешируемого типа.

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3980.html вроде не берут в C++17 :(

21 Июн, 06:50 #408 #775734

Почему не работает? Хотел контрибьютить в RUSL, но чет не получается. Тока учусь.

https://play.rust-lang.org/?code=#![feature(libc)]extern crate core;extern crate libc;use libc::{c_schar,size_t};use core::usize;#[no_mangle]pub unsafe extern "C" fn stpcpy(dest:mut%20c_schar,%20source:%20const%20c_schar)%20-%3E%20mut%20c_schar%20{%0A%20%20%20%20//%20TODO(adam)%20compare%20and%20copy%20as%20word-size%20chunks%0A%0A%20%20%20%20for%20i%20in%200..%20{%0A%20%20%20%20%20%20%20%20dest.offset(i)%20%3D%20source.offset(i);%0A%20%20%20%20%20%20%20%20if%20dest.offset(i)%20%3D%3D%200%20{%0A%20%20%20%20%20%20%20%20%20%20%20%20break;%0A%20%20%20%20%20%20%20%20}%0A%20%20%20%20}%0A%0A%20%20%20%20dest%0A}%0A%0A%23[no_mangle]%0Apub%20unsafe%20extern%20%22C%22%20fn%20strlen(s:%20const%20c_schar)%20-%3E%20size_t%20{%0A%20%20%20%20//%20TODO(adam)%20convert%20to%20checking%20word-size%20chunks%0A%20%20%20%20for%20i%20in%200..%20{%0A%20%20%20%20%20%20%20%20if%20s.offset(i)%20%3D%3D%200%20{%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20i%20as%20usize;%0A%20%20%20%20%20%20%20%20}%0A%20%20%20%20}%0A%20%20%20%20usize::MAX%0A}%0A%23[no_mangle]%0Apub%20unsafe%20extern%20%22C%22%20fn%20strcat(dest:%20mut%20c_schar,%20source:%20const%20c_schar)%20-%3E%20mut%20c_schar%20{%0A%20%20%20%20let%20len%20%3D%20strlen(dest)%20as%20isize;%0A%20%20%20%20for%20i%20in%20len..%20{%0A%20%20%20%20%20%20%20%20dest.offset(i)%20%3D%20source.offset(i);%0A%20%20%20%20%20%20%20%20if%20dest.offset(i)%20%3D%3D%200%20{%0A%20%20%20%20%20%20%20%20%20%20%20%20break;%0A%20%20%20%20%20%20%20%20}%0A%20%20%20%20}%0A%0A%20%20%20%20dest%0A}%0A%0Afn%20main()%20{%0A%0A%20%20%20%20unsafe%20{%0A%20%20%20%20print!(%22{:%3F}%22,%20strcat(b%22a\0%22.as_ptr()%20as%20_,%20b%22_b\0%22.as_ptr()%20as%20_));%0A%20%20%20%20%20%20%20//%20assert_eq!(strcat(b%22a\0%22.as_ptr()%20as%20_,%20b%22_b\0%22.as_ptr()%20as%20_),%20b%22a_b%22%20as%20_);%0A%0A%20%20%20%20}%20%20%20%20%0A}%0A&version=nightly&backtrace=0

21 Июн, 06:50 #408 #775734

Почему не работает? Хотел контрибьютить в RUSL, но чет не получается. Тока учусь.

https://play.rust-lang.org/?code=#![feature(libc)]extern crate core;extern crate libc;use libc::{c_schar,size_t};use core::usize;#[no_mangle]pub unsafe extern "C" fn stpcpy(dest:mut%20c_schar,%20source:%20const%20c_schar)%20-%3E%20mut%20c_schar%20{%0A%20%20%20%20//%20TODO(adam)%20compare%20and%20copy%20as%20word-size%20chunks%0A%0A%20%20%20%20for%20i%20in%200..%20{%0A%20%20%20%20%20%20%20%20dest.offset(i)%20%3D%20source.offset(i);%0A%20%20%20%20%20%20%20%20if%20dest.offset(i)%20%3D%3D%200%20{%0A%20%20%20%20%20%20%20%20%20%20%20%20break;%0A%20%20%20%20%20%20%20%20}%0A%20%20%20%20}%0A%0A%20%20%20%20dest%0A}%0A%0A%23[no_mangle]%0Apub%20unsafe%20extern%20%22C%22%20fn%20strlen(s:%20const%20c_schar)%20-%3E%20size_t%20{%0A%20%20%20%20//%20TODO(adam)%20convert%20to%20checking%20word-size%20chunks%0A%20%20%20%20for%20i%20in%200..%20{%0A%20%20%20%20%20%20%20%20if%20s.offset(i)%20%3D%3D%200%20{%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20i%20as%20usize;%0A%20%20%20%20%20%20%20%20}%0A%20%20%20%20}%0A%20%20%20%20usize::MAX%0A}%0A%23[no_mangle]%0Apub%20unsafe%20extern%20%22C%22%20fn%20strcat(dest:%20mut%20c_schar,%20source:%20const%20c_schar)%20-%3E%20mut%20c_schar%20{%0A%20%20%20%20let%20len%20%3D%20strlen(dest)%20as%20isize;%0A%20%20%20%20for%20i%20in%20len..%20{%0A%20%20%20%20%20%20%20%20dest.offset(i)%20%3D%20source.offset(i);%0A%20%20%20%20%20%20%20%20if%20dest.offset(i)%20%3D%3D%200%20{%0A%20%20%20%20%20%20%20%20%20%20%20%20break;%0A%20%20%20%20%20%20%20%20}%0A%20%20%20%20}%0A%0A%20%20%20%20dest%0A}%0A%0Afn%20main()%20{%0A%0A%20%20%20%20unsafe%20{%0A%20%20%20%20print!(%22{:%3F}%22,%20strcat(b%22a\0%22.as_ptr()%20as%20_,%20b%22_b\0%22.as_ptr()%20as%20_));%0A%20%20%20%20%20%20%20//%20assert_eq!(strcat(b%22a\0%22.as_ptr()%20as%20_,%20b%22_b\0%22.as_ptr()%20as%20_),%20b%22a_b%22%20as%20_);%0A%0A%20%20%20%20}%20%20%20%20%0A}%0A&version=nightly&backtrace=0

Показать весь текст
Ответы>>775841

21 Июн, 07:13 #409 #775737

>>775494
Раст они взяли чтобы исправить тормоза хаскеля, которые на окамле без анала не покрыть.

Ответы>>775763

21 Июн, 08:42 #410 #775763

>>775737
Асимптотики алгоритма darcs они же исправили своей теорией патчей. Смысл в микрооптимизациях вроде выбора языка?

Ответы>>776146

21 Июн, 11:48 #411 #775841

>>775734
Макаба съела все звёздочки. Дай нормальную ссылку (нажми кнопку Gist).

Ответы>>775845

21 Июн, 11:51 #412 #775845

>>775841
Playground URL: https://play.rust-lang.org/?gist=ed2c4625f0f8bb8476eeaf3a0101f72f&version=nightly&backtrace=0

Gist URL: https://gist.github.com/ed2c4625f0f8bb8476eeaf3a0101f72f

Ответы>>775871

21 Июн, 12:30 #413 #775871

>>775845
Ты пытаешься писать в константную статическую строку. Не удивительно, что у тебя application terminated abnormally with signal 11. Кроме того, у тебя strcat сломан.
Вот, попробовал слегка починить: https://play.rust-lang.org/?gist=7fa075ea95a8248dac19d6772bed7db0&version=nightly Работает даже с включёнными оптимизациями.

Ответы>>775879>>775889

21 Июн, 12:46 #414 #775879

>>775871
> if ★dest.offset(len + i)
ffix.

21 Июн, 13:00 #415 #775889

>>775871
Спасибо! А как ассерты делать?
пишу: assert_eq!(strcat(bytes.as_mut_ptr() as _, b"_b\0".as_ptr() as _), b"a_b\0".as_ptr() as _);

а он мне:
thread 'main' panicked at 'assertion failed: `(left == right)` (left: `0x7fff672b3bbe`, right: `0x7f8f1610daeb`)'

Ответы>>775893

21 Июн, 13:06 #416 #775893

>>775889
Ты сравниваешь указатели, а они, само собой, разные.

Ответы>>775897

21 Июн, 13:09 #417 #775897

>>775893
а, вот почему они каждый раз разные.
>(left: `0x7fff672b3bbe`, right: `0x7f8f1610daeb`)'

Ответы>>777821

21 Июн, 18:39 #418 #776146

>>775763
Как только проект у тебя разрастается во что-то побльшее пары-тройки KLOC и это всё безостановочно редактируется это уже далеко не микроопиимизация.

22 Июн, 23:51 #419 #777589

https://github.com/rust-lang/rfcs/pull/1657
Это ОНИ. Да, это действительно ОНИ.
Зависимые типы.

Ответы>>777596

23 Июн, 00:01 #420 #777596

>>777589
Вот это уже интересно.
Расскажите что сейчас у Rust плохо? (рассказами что в нем хорошо и так весь гугл забит)

Ответы>>777605

23 Июн, 00:10 #421 #777605

>>777596
Нет HKT, ! (нижний тип) пока ещё не тип, шумный синтаксис, множество фич делает язык не самым лёгким для изучения, автокомплит работает через racer а не через компилятор, инкрементальную компиляцию ещё нет, плагины к компилятору (aka процедурные макросы) в unstable, да и у обычных макросов много чего ещё нет. Ну и так далее.

Ответы>>777620

23 Июн, 00:24 #422 #777620

>>777605
Спасибо.
Но это все о языке, а что с экосистемой?
Есть ли библиотеки, насколько они в среднем сырые?
Что с community, побороли ли порочную практику долго обсуждать, доделывать до середины, начинать обсуждать как это можно было бы сделать лучше,бросать недоделанное и начинать заново?

Ответы>>777627

23 Июн, 00:29 #423 #777627

>>777620
> Есть ли библиотеки, насколько они в среднем сырые?
Зависит от того, какие библиотеки тебе нужны. Можешь на https://rust.libhunt.com/ глянуть.
> Что с community, побороли ли порочную практику долго обсуждать, доделывать до середины, начинать обсуждать как это можно было бы сделать лучше,бросать недоделанное и начинать заново?
Не совсем понял, о чём ты.

12 Кб, 487x496

7 Кб, 376x284

14 Кб, 476x552

23 Июн, 10:56 #424 #777821

>>775897
Может это из-за https://ru.wikipedia.org/wiki/ASLR

>>639238 (OP)
Люди, как можно передать массив (без использования as_ref), чтоб он таки удовлетворил этот трейт?

На втором скрине трейт удовлетворяется, но там принимает переменная, которая может привести Vec<T> в Vec<u8>

На третьем - еще один неудовлетворительный способ

Ответы>>778019

77 Кб, 450x539

23 Июн, 11:31 #425 #777860

> Results of Rust Survey 2016
> The first diagram shows that 35.5% of respondents don't use, or stopped using, rust
> https://docs.google.com/document/d/1F6oELZcO_ejX2oVk20hmiBWd4lQugfFahn7OOOOyKsw

/thread

Ответы>>777979>>778001>>778019>>778110

23 Июн, 12:41 #426 #777979

>>777860
уносите этого.

23 Июн, 13:02 #427 #778001

>>777860
И что? Может они просто учатся или следят за развитием? Как я например.

23 Июн, 13:27 #428 #778019

>>777821
У тебя `&[T; n]` вместо `&[T]`. Поэтому тебе нужно или реализовывать типаж для всевозможных n, либо ждать ИХ, либо реализовать для &[T] и использовать метод borrow().
Кстати, есть же `std::convert::From`, зачем велосипеды писать?

>>777860
> 1 in 4 people mentioned Rust's learning curve. People commented on the borrow-checker and how lifetimes were tricky to effectively master. Echoing the complexity concern from non-Rust users, here people also mentioned the sense of a feeling of complexity.
> 1 in 7 people mentioned the lack of libraries. The kinds of libraries people mentioned ran the gamut in terms of topic, covering areas like GUIs, scientific/numeric computing, serialization support, web/networking, async I/O, parallel/concurrent patterns, and richer data structures (including more containers and broader coverage of general algorithms).
> 1 in 8 people mentioned the continued presence and growth of C++ as a challenge. C++ continues to be a vital part of application development, especially systems programming. Its recent interest in static analysis is causing some to wait and see if C++ can close some of the gap.

Ответы>>778106

6 Кб, 597x154

13 Кб, 547x424

23 Июн, 15:53 #429 #778106

>>778019
>std::convert::From
С ним у меня не получалось перевести все унифицированно. Кажись проблема со String была. Там нужен был дополнительный шаг или что-то в этом роде.

>либо реализовать для &[T]
Тогда проблемы уже на самом первом этапе.

У меня получалось с AsRef, а не Borrow. Но только напечатать, а не insert'нуть в BTreeMap, к сожалению

Ответы>>778115

23 Июн, 15:54 #430 #778110

>>777860
Не читается. email ввести просит

Ответы>>778215

23 Июн, 16:08 #431 #778115

>>778106
Просто делай `b"bytes".borrow().cv()` вместо `b"bytes".cv()`. Незачем придумывать хитрый способ скормить &[T, n].

23 Июн, 18:28 #432 #778215

>>778110
Зайди в приватном режиме.

11 Кб, 445x556

23 Июн, 20:06 #433 #778306

Я нашел как запретить пользователю в Any какашки запихивать. Теперь не будет во время исполнения вылетать!

Ответы>>778333>>778410

38 Кб, 604x452

23 Июн, 20:46 #434 #778333

>>778306
А нельзя просто использовать Box<AllowedTypes>?

Ответы>>778378

1864 Кб, 346x194

23 Июн, 21:35 #435 #778378

>>778333
Я хочу чтоб пользователю функции push не пришлось самому в бокс запихивать.

Еще хотел, чтоб можно было и массивы( &[u8; _] ), и одновременно слайсы( &[u8] ) в аргументе функции передавать, но это оказалось невозможно сделать во время компиляции. (Динамически не проверял вроде, но думаю там можно через коробку опять же.) По крайней мере я почти неделю мучился, так и не нашел способ.

23 Июн, 21:57 #436 #778410

>>778306
Если у тебя ограниченный набор типов, то почему бы просто не ввести enum и использовать From?

Ответы>>778413>>778467

23 Июн, 21:58 #437 #778413

>>778410
> From/Into
ffix

23 Июн, 22:38 #438 #778430

Попробовал набросать что-нибудь: https://ideone.com/GMLFj0

Ответы>>778463>>778467

61 Кб, 650x482

23 Июн, 23:21 #439 #778463

>>778430
Посмотришь на такие решения, и сразу руки что-либо изучать опускаются. Сидишь неделю, ломаешь мозг над одной простой истиной

13 Кб, 489x684

23 Июн, 23:26 #440 #778467

>>778430
После подсказки >>778410 начал вот Такое писать.

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

Ответы>>778471>>778501

23 Июн, 23:29 #441 #778471

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

24 Июн, 00:33 #442 #778501

>>778467
Rust by example читай. Ну и https://llogiq.github.io/2015/07/30/traits.html
Да, и в BTreeMap ты скорее всего хочешь хранить Vec<u8>, а не &[u8].

25 Июн, 01:31 #443 #779207

https://github.com/andreaferretti/on-rust-and-nim

Ответы>>779324>>779363>>779377

25 Июн, 10:10 #444 #779324

>>779207
Сложна, сложнааа, нихуя нипанятна. Как обычно короч.

103 Кб, 604x603

25 Июн, 12:03 #445 #779363

>>779207
> I am a beginner both with Rust and Nim
> I am looking forward to their 1.0 release (rust v0.12)
Нахуй ты сюда это притащил?

Ну ладно, покормлю:
>the whole language is verbose: compare these 10 lines with this single line
>> Rust - 10 строк - деструктуризация и пустые строки
>> Nim - 1 строка (на деле 2) - обращение к полям

25 Июн, 12:32 #446 #779377

>>779207
Ему надо в раст компиляцию запилить, лол – получится отличный язык и без GC.

01 Июл, 16:22 #447 #785255

У серво теперь ночные сборки есть:
https://servo-builds.s3.amazonaws.com/index.html

Ответы>>785724

01 Июл, 22:35 #448 #785542

Rust опять отсосал у Сишечки
http://lexborisov.github.io/benchmark-html-persers/

02 Июл, 10:09 #449 #785724

>>785255
Нормальную ссылку дай, йобаный https://download.servo.org/index.html

На сосаче по прежнему баги с рендерингом и теперь ещё и со скроллингом :)

03 Июл, 11:14 #450 #786579

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

Ответы>>786602

03 Июл, 11:51 #451 #786602

>>786579
>Зачем вообще кто-то так сильно упирается и хочет использовать раст в вебе?
Либо риалтайм проект, либо скудоумие.
>Подозреваю что в скорости исполнения и пожирания памяти
Грубо говоря, чуть больше кушает чем плюсы/няшная по процессору/памяти, но это не всегда эквивалентно времени выполнения – что и как напишешь, конкретных примеров с адекватным сравнением я не видел.

Разница по памяти/процессору в бенчмарках по сравнению с той же явой до 10-20 раз, со скриптотой умножай ещё на 3.

Ответы>>786612>>788389

03 Июл, 12:04 #452 #786612

>>786602
Как думаешь, для веб-сервиса аля гугл-поиск подойдет раст? У гугла-поиска по сути одна простая страница, и все самое интересное творится на бэкэнде.

Ответы>>786645

03 Июл, 12:34 #453 #786645

>>786612
А есть причины по которым может не подойти?
Единственная - нахуя тебе тратить в 5 раз больше времени на проект, которым пользоваться будет 1.5 человек включая тебя?

У того же яндекса по заверениям их разработчиков, большая часть поиска до сих пор на перле.

Ответы>>786679>>792401

03 Июл, 13:03 #454 #786679

>>786645
В моем случае время не так важно, важна дешевизна арендуемого железа, на котором будет крутиться это дело. То есть нужно чтоб софт был минимально жрущий ресурсы. Присматриваюсь еще в сторону Erlang/Elixir решений, но на Rust я уже имею определенный опыт, написал несколько тысяч строк, а вот Erlang хоть и трогал, но всё-таки это что-то довольно новое.

Ответы>>786682

03 Июл, 13:12 #455 #786682

>>786679
Если так – тот тут только раст (ну ещё может Go подойти, но он тоже достаточно прожорлив).

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

Ответы>>786684

03 Июл, 13:21 #456 #786684

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

Ответы>>786688>>788387

03 Июл, 13:25 #457 #786688

>>786684
Я выше уже писал на эту тему, повторюсь: прожорливость до ресурсов != скорость выполнения.

Ответы>>786690

03 Июл, 13:26 #458 #786690

>>786688
Имею в виду "много жрёт – не обязательно медленно".

05 Июл, 06:03 #459 #788259

Можно ли констатировать что Rust не взлетел.

Ответы>>788348>>788384

05 Июл, 09:55 #460 #788348

>>788259
Нельзя.

05 Июл, 11:19 #461 #788384

>>788259
Летит низенько и точно уж дальше Cyclone (спасибо Samsung & Mozilla). Как убийца плюсов, наверное можно делать выводы - не реализовался.

05 Июл, 11:22 #462 #788387

>>786684
Любая дура с IO на select и асинхронной обработкой (например за счет кооперативной многозадачности на основе библиотеки) держит столько же коннектов. Ессно, сосалово придет вместе с вычислениями.

05 Июл, 11:26 #463 #788389

>>786602
Про десятичный порядок проеба по памяти в сравнении с жабой - верю. Про cpu - не верю. Скорее бинарный порядок, т/е жаба сливает в x2-3.

05 Июл, 13:14 #464 #788441

>>641808
Мне кажется мир еще не осознал всего величия данной штуки.

09 Июл, 20:17 #465 #792401

>>786645
Поиск на крестах, но перл у некоторых подразделений для байнда поиска используется.

15 Июл, 12:00 #466 #796612

Расскажите почему Rust лучше чем Swift?

Ответы>>796619

15 Июл, 12:08 #467 #796619

>>796612
Тем, что работа с памятью явная. И да, swift уже можно запустить на микроконтроллере?

Ответы>>796628>>796767

15 Июл, 12:21 #468 #796628

>>796619
Раст ты тоже на МК не запустишь, а бинарь, им собранный, возможно на некоторых камнях.

15 Июл, 16:12 #469 #796767

>>796619
На микроконтроллеры похуй. Во всяком случае пока.
У Rust эта явная работа с памятью может превратиться в такие конструкции, что уже вся эффективность явной работы может похериться. Тут надо быть очень большим спецом по расту чтоб что-то делать. В прочем справкедливости ради надо отменить что надо быть спецом в любом языке чтоб нормально писать.

Ответы>>796787

15 Июл, 16:51 #470 #796787

>>796767
На них вообще всегда похуй, это аргумент из серии "смотри, а я зато на голове стоять умею!". Софту для микроволновки меморисейфети и прочее точно не нужно.

В расте относительно тех же плюсов эта самая работа с памятью вообще скрыта.

Со свифтом его мягко говоря нихуя не корректно сравнивать: сравнение хаскеля с плюсами. Один низкоуровенный даёт рассмотреть все проржавевшие кишки, второй на уровне птичьего полёта даёт глядеть на программу.

Ответы>>796798>>796836>>796848

72 Кб, 604x368

15 Июл, 17:04 #471 #796798

>>796787
>Софту для микроволновки меморисейфети и прочее точно не нужно.
Анон, ты бесподобен

15 Июл, 17:48 #472 #796836

>>796787
Можешь более развернуто высказать свое мнение на счет Rust? Ну и немного про Swift, всё-таки тред про раст.

Ответы>>796875

15 Июл, 17:57 #473 #796848

>>796787
>Софту для микроволновки меморисейфети и прочее точно не нужно.
Если микроволновка подключена к интернету, то нужна.

Ответы>>796875

15 Июл, 18:17 #474 #796875

>>796848
А нахуя ей это? Во всяких кококумных домах есть одна центральная пека – там не нужен не перформанс, нихуя, можно хоть жаву накатить.
>>796836
Что именно-то? В свифте нихуя низкоуровенного банально нету, даже ссылок – всё скрыто, в расте – наоборот, вот и всё сравнение.

Ответы>>796893

15 Июл, 18:45 #475 #796893

>>796875
Ты наверное не слышал о находках уязвимости во всяких умных телевизорах, микроволновках, холодильниках.

Ответы>>796898

15 Июл, 18:50 #476 #796898

>>796893
А раст уже успел стать серебряной пулей?

155 Кб, 1280x840

19 Июл, 08:11 #477 #799897

Скажите, если я буду писать максимально в функциональном стиле на расте, на сколько сильно это повлияет на производительность?
Я имею ввиду, использовать максимум иммутабельности и чистых функций.

Ответы>>799908>>800315

19 Июл, 08:25 #478 #799908

>>799897
Зависит от кода же. Просто так в иммутабельности и в чистых функциях нет ничего плохого, даже наоборот.

Ответы>>799916

19 Июл, 08:34 #479 #799916

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

Ответы>>799944

19 Июл, 09:20 #480 #799944

>>799916
Очевидно, копирование больших данных не полезно для производительности, как и слишком частое выделение и освобождение памяти в куче. Ну и ещё плохо, когда данные разбиты на мельчайшие осколки, хаотично расположенные в памяти, с косвенной адресацией на каждом шагу (привет, связные списки).
А вообще, просто пиши чистый и понятный код, и профилируй его периодически. Тем более, что профилировать крайне легко:
http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html
https://doc.rust-lang.org/book/benchmark-tests.html

Ответы>>800029

283 Кб, 1280x960

19 Июл, 12:16 #481 #800029

>>799944
А вот move сементика как реализована внутри? Надеюсь не происходит никакого копирования данных?
И еще коль уж начал спрашивать, есть ли где-то наконец-то нормальное пояснение по лайфтайм параметрам? Борроуинг понятен. В принципе даже можно привыкнуть. Немного бесит, что в Rust Book подробно расписывается какая-то херня типа точки с запятой, cargo run, всякие идиоматичности кода (этов ажно, согалсен), всякие циклы, ифы, а блядь самая мутная тема быстро галопом по верхам, я имею ввижу лайфтаймы. Какого хуя?
В своем коде еще сталкивался с такой штукой, что компилятор мне говорил " у тебя вот тут не указан параметр" - ну я взял да указал, и норм стало. Компилятор мог и без меня это сделать. В общем я пока не сталкивался с ситуациями где бы компилятор не могс ам догадаться куда ставить эти параметры. Может есть примеры какие-то?

Ответы>>800047>>800052

19 Июл, 12:43 #482 #800047

>>800029
> Надеюсь не происходит никакого копирования данных?
Только данных на стеке, это совсем-совсем дёшево.
> Компилятор мог и без меня это сделать
Мог. Но раст предпочитает явное вместо магии.
http://stackoverflow.com/questions/31609137/why-are-explicit-lifetimes-needed-in-rust/

19 Июл, 12:52 #483 #800052

>>800029
>А вот move сементика как реализована внутри?
Как и в плюсах – просто обнуляется старая ссылка с присвоением значения новой. Учитывая что у раста несколько промежуточных представлений – в банальных случаях в скомпилированном коде этого перемещения не будет вообще.

19 Июл, 17:52 #484 #800315

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

23 Июл, 09:17 #485 #803315

Я вам верификации принёс: https://github.com/Kha/electrolysis

Ответы>>806670

4 Кб, 928x208

27 Июл, 10:09 #486 #806651

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

Ответы>>808626>>814701

27 Июл, 11:10 #487 #806670

>>803315
Что это за хуёвина? Влом смотреть презентацию.

30 Июл, 01:17 #488 #808626

>>806651
я что-то пропустил, что за ref? это же по идее & ?

Ответы>>808692

30 Июл, 11:14 #489 #808692

>>808626
http://rustbyexample.com/flow_control/match/destructuring/destructure_pointers.html
По идее, должно быть ∗, но этот RFC не приняли.

30 Июл, 11:48 #490 #808712

https://github.com/tailhook/vagga убийца докера

05 Авг, 21:17 #491 #814082

Стоит ли вкатываться в раст, если до этого писал только хеловорлды на шарпе?

Ответы>>814087>>814493

05 Авг, 21:19 #492 #814087

>>814082
Цель-то какая? Если её нету – забей, нахуй не стоит.

06 Авг, 13:00 #493 #814493

>>814082
перекатывайся сразу в хаскель/эрланг и пиши хелоуворды там, делов то

06 Авг, 14:34 #494 #814540

>>718838
А почему в твоей модели возможна разная длительность жизни для hui и pizda? Типа возможен момент времени, когда hui уже будет уничтожен, а pizda нет? Как тогда может существовать в этот момент Customer, он же будет в неконсистентном состоянии?

Ответы>>816105

06 Авг, 17:58 #495 #814701

>>806651
Красота, чо. Прям как в хачкеле.

08 Авг, 16:19 #496 #816105

>>814540
> Option

Ответы>>816477

09 Авг, 10:29 #497 #816477

>>816105
Это всё равно неправильно. Немножечко окамеля:
type xyupizda = Hui | Pizda
and car = ...
and customer = {
car: car option;
sex: xyupizda
}

10 Авг, 17:13 #498 #817265

let v:Vec<Vec<i32>> = vec![];
v.push(vec![1,2,3,4]);
v.push(vec![5,6]);
v.push(vec![7,8,9,10,11,12,13,14]);
...

Как подобное сделать const?
Например, массив можно сделать
const a: [[4];5] = [[1,2,3,4], [5,6,7,8]...];
но тут каждый подмассив одинаоковой длины должен быть.
Ну или не обязательно const, главное чтоб не динамически выделялась память.

Ответы>>817292

10 Авг, 17:50 #499 #817292

>>817265
што я за хуйню сейчас прочитал /0
1) Раст – хуёвый выбор для новичка;
2) Именно с векторов – никак. Это, сука, динамический массив. И твою задачу без аллокаций памяти не решить – не страдает фигнёй.

Ответы>>817313

10 Авг, 18:22 #500 #817313

>>817292
>Как подобное сделать
Я имею ввиду может какая другая есть структура данных. Никаких измененией данных не планиурется, ни добавление, ни удаление, ни редактирование элементов.

Ответы>>817317>>817501

10 Авг, 18:26 #501 #817317

>>817313
Тогда unsafe и c-like указатель на указатель (он же двухместный массив).

10 Авг, 23:15 #502 #817501

>>817313
Непонятно, такое что ли?
let a = [&[1,2,3,4][..], &[5,6][..], &[7,8,9,10,11,12,13,14][..]];
println!("{:?}", a); // [[1, 2, 3, 4], [5, 6], [7, 8, 9, 10, 11, 12, 13, 14]]

Объясни для чего это, чтоб понятней стало что тебе надо.
Посмотри на сорсы макроса vec! или какого там. Сделай себе похожий, если ты хочешь в коде какие-то необычные финтифлюшки удобно вытворять.

Ответы>>817706

11 Авг, 11:52 #503 #817706

>>817501
Ты - молодец.
Сделал так:
const a:[&'static [usize];2] = [&[1,2,3],&[4,5]];

18 Авг, 12:16 #504 #822304

Добавьте в шапку и вообще помогите ребятам сделать tiling wm

https://github.com/Immington-Industries/way-cooler

Ответы>>827105

25 Авг, 15:48 #505 #827105

>>822304
Есть ещё https://github.com/Kintaro/wtftw

102 Кб, 944x645

25 Авг, 21:40 #506 #827267

Судя по комментам, тут более менее вменяемая аудитория, поэтому решился на вопрос.

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

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

Советчики типа:
-Кококо это системный язык, на нем писать только системные системки...
-Кококо бери мой любиый питон и ноду.жс, программист дешевле железа, кококо...

Все этим маня-архитекторы идут нахуй, у меня именно такая задача, но на плюсах писать не охота

PS Го не предлагать, это без меня :)

25 Авг, 22:49 #507 #827328

Меня чет порвала эта мелкая нелепость

~~~~
Конкатенация
Но если у вас есть две String, то необходимо использовать &:

let hello = "Hello ".to_string();
let world = "world!".to_string();

let hello_world = hello + &world;
Это потому, что &String может быть автоматически приведен к &str. Эта возможность называется «Приведение при разыменовании».
~~~~

Это конечно лютый пиздец дизайна, вот бля будешь ты ставить про строку + строку (да еще и в циклах) и догадывайся, что там будет происходит какое-то преобразование в строку, но вот в другую "&str" (блять в литерал). Просто высший пилотаж магического дизайна.

Изъебывали язык годами, ожидаешь грамотного академического подхода... а нет, очередная хипстота (но безопасная).

PS может я ппц тупой, но какой смысл делать такую откровенную неюзабильную магию, особенно порадовало что text[3] - так нельзя, мол мы не хотим показать что тут так просто все и быстро, а вот через жопу на text.nth(3) норм же теперь блять, если ты через анус достучался, значит и компилятор страдал с тобой, блять.

И что блять за nth, что блять за экономия символов в 2016 году. Давайте снова писать как WinAPI "LPCSTR" или GJEK!JEJJHKJJKQW, сука...

Ответы>>827608

16 Кб, 384x288

26 Авг, 11:43 #508 #827608

>>827328
да ты же ролидовый!

это не дизайн, это ЯВНОЕ ЛУЧШЕ НЕЯВНОГО, а ты просто неосилятор. покури маны почему нельзя две строки вот так просто взять и конкатенировать, нахуя срезы и тд
нелепость его порвала, вообще ахуеть

Ответы>>827718

26 Авг, 14:04 #509 #827718

>>827608
>>827608
хуячишь на тысячах языках, конкатинируешь как все вменяемые str1 + str2 (а тут же норм компиляторы собирают через всякие StringBuilder) а тут хуяк в ржавой хуйне надо приписать str1 + &str2, ведь это же блять так явно к неявному, строка каким-то волшебным хером преобразуется к литералу (по сути к константной строке из исходника).

Кококо - я не могу в дискас, назову всех неосилятором.
Какой нахер неосилятор если я пример то понял и его еще привел? Я не говорю что сложно, я говорю ЧТО ГОВНО.

Я уверен если на таком обослались, там дальше будет веселей.

Ответы>>827763

26 Авг, 15:00 #510 #827763

>>827718
пиши макросы, прячь всё за абстракции, хули ты хотел?
не оправдало твои ожидания, сразу говном бросать. обосрались? нет, это как раз та НИЗКОУРОВНЕВОСТЬ

String - это, блядь, вектор в хипе, а срез строки &str, это ссылка на память, которая может быть где угодно. это легко спрятать в макрос и питушки вроде тебя пришедшие с питонов будут и дальше писать строка + строка не задумываясь что там происходит под капотом. отсюда же твоё непонимание про text[3] и text.nth(3). в памяти строки хранятся в utf-8, а там 1 байт не всегда равен 1 символу. text[3] - вернёт четвёртый байт, а .nth сисмвол. что, сука, в своих высокоуровневых комбайнах никогда с байтами не работал? пиздуй в го хомячь, там даже жопу за тебя вытирать будут

Ответы>>827836

26 Авг, 16:05 #511 #827836

>>827763
>пиши макросы, прячь всё за абстракции, хули ты хотел?

Нас ждут тогда полные чудеса.

>питушки вроде тебя пришедшие с питонов будут и дальше писать строка + строка не задумываясь что там происходит под капотом

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

Блять, SQL запрос тяжеловесный, давайте сделаем вызов через оператор "-=]}<SELECT...>" - а то блять будут пользоваться такими тяжелыми операциями (ты ощущаешь всю нелепость ситуации и долбоебизма??).

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

Про то как utf8 устроенно будешь на собеседованиях рассказывать и в документации разжевали, но все равно насрали, потому что ты ванька, мы тебя тут оберегаем. Предлагаю получать строку так text[(}3{)] - я бы тут сразу догадался что это трудная операция и подумол много раз (а то прям эти клоуны не будут юзать text.nth(3) автоматом)!!!

PS раньше языки делали для людей, конечно обсерались, конечно на легалиси синтаксисе строили чудовишь, но там никто не пытался показать как кому, что надо делать и когда. Опытные программисты понимают как устроенны хешмапы, массивы, а неопытным со своим бложиком потери в 1мс из-за text.непонятнаяХуйня(3) - ничем ужасным не покажется.

Феномен 21 века, хипстер-архитекторы языков, лол, аж смузи на лептоп пролил

Ответы>>827906

26 Авг, 17:12 #512 #827906

>>827836
ебать у тебя в голове каша

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

>по какой-то магии строка бля в литерал превращалась
нихуя не понятно, пиши яснее. какая нахуй "строка в литерал превращаетя"? нихуя там не превращается, литары в расте - это как раз те константы, но при создании его - он возвращает ссылку на себя и дальше ты работаешь с ним как со срезом. ты совсем охуел память в которой програма лежит менять? вот для этого ты явно делаешь .to_string() что бы получить String на куче. и вот у типа String перегружен оператор "+" для конкатенации. хули тебе непонятно? почему он автоматом не делает срез, если получает строку? тем более что раст хвалён дженериками.

>хипстер-архитекторы языков
всё с тобой понятно. ты поехавший. хипстеры - это как раз маньки, вроде тебя, которые не хотят ни в чём разбиратся, пусть сычи пишут код, а я не хочу ничего решать, я хочу просто скачать крейт и что бы всё привычно было как пистоне!

Ответы>>827996

26 Авг, 19:08 #513 #827996

>>827906
нахера ты мне про устройство раста каждый раз рассказываешь, я тебя в конкретное говно тыкаю же.

>нихуя не понятно, пиши яснее. какая нахуй "строка в литерал превращаетя"?

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

ПОЭТОМУ

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

2. Совершенный идиотизм, что строка из кучи преобразуется в строку-литерал (когда в норм языках обычно наоборот и обычно прозрачно)

3. Нахера на операторе конкатенации "строки-из-кучи" и результатом которой будет "строка-из-кучи", делать преобразование в строку-литерал.
Логичнее даже литералы привести к динамичной строке, но не наоборот же.
Ну вот просто - нахрена??

26 Авг, 19:35 #514 #828031

>устройство раста каждый раз рассказываешь

потому что ты не въежаешь в устройство раста.

если ты под литералом имеешь в виду "строку как поледовательность символов", то это данные которые хранятся в String, а $str - это не литерал, а ссылка на данные, срез.
а вот если ты про "константную строку из исходного кода", она представляется тем самым $str.

вот поэтому мне и не понятно о чём ты говоришь, когда пишешь "строка из кучи преобразуется в строку-литерал"

1. потому что это вообще разные сущности, работать с которыми приходится из-за того их не скрыть за zero-cost абстракцией

2. она никуда не преобразовывается, & возвращает ссылку, йтть

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

вообще странно что из всех вычурностей этого ЯП ты приебался к строкам. ведь после понимания owning and borrowing подобные вопросы сами отпадают

Ответы>>828060

26 Авг, 19:42 #515 #828040

>в принцепи
>пи
>с тобой все ясно
лол

Ответы>>828065

26 Авг, 19:59 #516 #828060

>>828031
>а вот если ты про "константную строку из исходного кода", она представляется тем самым $str.

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

Так вот мой юный друг, статическая херня при компиляции, которая уже входит в состав программы, а не будет в куче создаваться и есть литерал (он и статический, он и константный, потому что там память при старте выделилась уже для него, туда не вписать)

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

То что им пришлось делать две строки и одна из них псевдо-литерал - это обосрамс.
Вот найдешь реально решение почему они
1. Ввели два вида строк (и не надо говорить zero-cost, это оверхед вообще-то)
2. Перезагрузили оператор "+" так что он преобразует (или извлекает ссылку, не важно) &str из вектора, но возвращает вектор (это как если бы складывать int'ы но сначала преобразовывать в long'и).

Вот тогда мы поговорим, а так все пусто. Я аргументирую ты мне документацию рассказываешь (где мотивация эта не расписана)

Ответы>>828099

26 Авг, 20:01 #517 #828065

>>828040
"мне этот собеседник не нравится, но сказать что-то по теме мозгов нет, поэтому я докопаюсь до орфографии"

Ответы>>828071

26 Авг, 20:09 #518 #828071

>>828065
не, если бы мне не нравился собеседник, я бы ен писал. а к орфографии как раз не доебался в ответе, а заметил уже когда перечитывал, оттого и проиграл. а ты чё обиделся?

олсо

ПЕРЕКАТ

http://2ch.hk/pr/res/828070.html (М)
http://2ch.hk/pr/res/828070.html (М)
http://2ch.hk/pr/res/828070.html (М)

26 Авг, 20:27 #519 #828099

>>828060
->
>>828093

Тред утонул или удален.
Это копия, сохраненная 4 сентября 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion