The OpenNET Project / Index page

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



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

"70% проблем с безопасностью в Chromium вызваны ошибками при ..."  +/
Сообщение от opennews (ok), 24-Май-20, 14:02 
Разработчики проекта Chromium проанализировали 912 опасных и критических уязвимостей, выявленных в  стабильных выпусках Chrome с 2015 года, и пришли к выводу, что 70% из них были вызваны небезопасной работой с памятью (ошибками, при работе с указателями в коде на  C/C++). Половина из данных проблем (36.1%) вызвана обращениями к буферу, после освобождения связанной с ним памяти (use-after-free)...

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

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

Оглавление

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

1. Сообщение от JL2001 (ok), 24-Май-20, 14:02   +29 +/
chromium на rust перепишут или выкинут в пользу движка firefox ?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #4, #5, #18, #25, #85, #253, #303

2. Сообщение от Аноним (2), 24-Май-20, 14:04   +4 +/
Второе
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #469

4. Сообщение от zurapa (ok), 24-Май-20, 14:09   –5 +/
Лучше движок Presto.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #158, #301

5. Сообщение от Аноним (5), 24-Май-20, 14:12   +/
Ни то ни другое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

6. Сообщение от JL2001 (ok), 24-Май-20, 14:12   +7 +/
> Разработчики проекта Chromium
> Применение языков, рассчитанных на выполнение проверок безопасности работы с памятью во время компиляции (позволит исключить негативное влияние на производительность за счёт избавления от осуществления подобных проверок во время выполнения кода

ну хоть какие-то разрабы, пишущие на C, адекватные, и признают проблему
а то сплошное "да у вас руки кривые, опыта мало, рука не набита, молокосос!"

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

9. Сообщение от Fracta1L (ok), 24-Май-20, 14:16   –19 +/
Надеюсь, это уже начало конца убогих древних языков, генерящих дыры на ровном месте
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #12, #32, #129, #156, #164, #254

12. Сообщение от Аноним (359), 24-Май-20, 14:21   +/
Куда лучше будет научить программистов прогонять свой код в анализаторе и не совершать уб. Для ошибок в асме не поможет правда, но это надо асм начать хомячкам прививать и они больше не будут косячить так.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #20, #38, #42, #125

13. Сообщение от Аноним (359), 24-Май-20, 14:24   +8 +/
Они пишут на си? Я не знал, всю жизнь думал, что там плюсы. Неужели си можно превратить в такого монстра? Да не, вряд ли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #23, #31

15. Сообщение от Андрей (??), 24-Май-20, 14:31   +/
Вот это поворот!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #496

16. Сообщение от mumu (ok), 24-Май-20, 14:35   +8 +/
Кастую в тред аналитиков из всех предыдущих топиков, которые любят повторять "Нужно всего лишь программировать правильно, C++ тут вовсе не при чем".
Может соберетесь и поможете гуглу? А то гугл не способен найти нормальных программеров. Одни олимпиадники и специалисты по крышкам люков работают.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #24, #26, #64, #101

18. Сообщение от арсений (?), 24-Май-20, 14:39   +27 +/
одна вкладка -3GB оперативы
отличные нынче программисты
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #108, #138, #355, #361

19. Сообщение от Аноним (19), 24-Май-20, 14:41   +7 +/
может быть, таки, Rust?!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #40, #239

20. Сообщение от Fracta1L (ok), 24-Май-20, 14:43   +/
Комментом выше можно наблюдать пример необучаемости.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

21. Сообщение от Аноним (21), 24-Май-20, 14:44   –4 +/
Ну пусть перепишут С/С++ код на расте, альтернатива есть и попутного ветра им в горбатую спину.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #51, #480, #488

23. Сообщение от Аноним (23), 24-Май-20, 14:46   –8 +/
C и есть монстр.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #29

24. Сообщение от Аноним (24), 24-Май-20, 14:50   +9 +/
http://robert.ocallahan.org/2017/07/confession-of-cc-program...

Один из крутых C++ программеров (Роберт О'Каллахан когда работал с Мозилле, то писал ядро движка Gecko, подсистему "layout") - говорит о том, что он *не может* постоянно писать безопасный код на плюсах. И ревью коллег не помогают.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #44, #308

25. Сообщение от Аноним (25), 24-Май-20, 14:56   +4 +/
Скорее каждую вкладку в doker завернут
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #68

26. Сообщение от Anonymoustus (ok), 24-Май-20, 14:56   +/
Не для того великие Томпсон и Пайк изобрели Игогошечку, чтоб жадный Гугл нанимал дорогих погромиздов, мечтающих всё переписать на Хрусте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

27. Сообщение от Андрей (??), 24-Май-20, 14:56   –4 +/
36,1% use after free

Казалось бы, что может быть проще: free(p); p = NULL;

А потом один раз if (p == NULL) goto out;

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #28, #39, #90, #256, #354

28. Сообщение от Fracta1L (ok), 24-Май-20, 14:58   +2 +/
Вот именно, что казалось бы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

29. Сообщение от Аноним (359), 24-Май-20, 15:01   +/
> C и есть монстр.

Разве? Можно примеры?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #47, #105

30. Сообщение от user90 (?), 24-Май-20, 15:03   –2 +/
> организацию взаимодействия кода на новом языке с кодом на С++

This! Ну и прочие подобные перлы создают какую-то странную картину. Зоопарк? ;)

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

31. Сообщение от oopssss (?), 24-Май-20, 15:04   +4 +/
Не обращай внимания, большинство смузихлёбов не тв курсе чем це от це-крест-крест отличается
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #41

32. Сообщение от user90 (?), 24-Май-20, 15:06   +/
Толстоват ты) Может дело таки не в языках, а в условных индусах?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #35, #45

33. Сообщение от poige (ok), 24-Май-20, 15:09   +/
> В настоящее время
> возможности применения данной технологии достигли предела своих
> возможностей

и пусть потом не говорят, что возможностей мало. Вон их тут сколько. Сплошные!

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

35. Сообщение от Fracta1L (ok), 24-Май-20, 15:12   +3 +/
Весь мир - индусы, кроме диванных хеллоувордщиков, понимаю
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

36. Сообщение от Eric Hartman (?), 24-Май-20, 15:22   +17 +/
Гугл сегодня одна из самых позорных шараг во всех отношениях. Они всегда делали галимый треш. Даже свой поисковик превратили в аналог зомбоящика с тотальной цензурой и рекламой.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #93, #120, #148, #175

37. Сообщение от Аноним (39), 24-Май-20, 15:26   +2 +/
Прав был Фрактал.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #379

38. Сообщение от red75prim (?), 24-Май-20, 15:27   +10 +/
Правильно, нафига ставить всякие чехлы на болгарки. Пусть каждый юзер проходит курс техники безопасности и не делает ошибок.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #43

39. Сообщение от Аноним (39), 24-Май-20, 15:27   +3 +/
Это должен делать компилятор на худой конец интерпретатор. Кодогенерация опять же.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #46, #78, #174

40. Сообщение от iLex (ok), 24-Май-20, 15:28   –5 +/
Ну вот Firefox на Rust переписали. И как, меньше там уязвимостей находят, чем в Chrome? Так, может, не в языке дело?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #50, #55, #57, #61, #124

41. Сообщение от JL2001 (ok), 24-Май-20, 15:33   +1 +/
> Не обращай внимания, большинство смузихлёбов не тв курсе чем це от це-крест-крест
> отличается

а что, в свете данной новости C от C++ чем-то отличается?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #48

42. Сообщение от JL2001 (ok), 24-Май-20, 15:36   +1 +/
> Куда лучше будет научить программистов прогонять свой код в анализаторе и не
> совершать уб. Для ошибок в асме не поможет правда, но это
> надо асм начать хомячкам прививать и они больше не будут косячить
> так.

парни из новости, которую ты комментишь, признали, что это не помогает

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #65

43. Сообщение от Аноним (359), 24-Май-20, 15:37   +/
> Правильно, нафига ставить всякие чехлы на болгарки. Пусть каждый юзер проходит курс
> техники безопасности и не делает ошибок.

Все отрезанные пальцы как раз из-за пользовательских нарушений. Но от выбитых глаз наверно и чехлы никакие не помогут. У каждого инструмента своя область применения и нельзя об этом забывать. Если не use after free, то жит пробьют при желании (это едва ли не 99,999% успешных атак). Вот контроль за песочницей должен быть очень жёстким, чтобы ничто не смогло просочиться.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #66, #70, #194

44. Сообщение от Аноним (44), 24-Май-20, 15:37   +/
Ну плюсам не хватает safe mode какого-то.
Вопрос знатокам можно ли в STL выстрелить себе в ногу ? Обратившись за границы массива, например ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #49, #123, #438

45. Сообщение от JL2001 (ok), 24-Май-20, 15:38   +/
> Толстоват ты) Может дело таки не в языках, а в условных индусах?

тебя в гугл не взяли и теперь ты говоришь, что в гугле все индусы?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #75, #83

46. Сообщение от Аноним (44), 24-Май-20, 15:38   +/
Ждем safe метаклассы для этого.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #59

47. Сообщение от Аноним (222), 24-Май-20, 15:41   +6 +/
C++
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #336

48. Сообщение от Аноним (222), 24-Май-20, 15:42   –7 +/
Ничем не отличается, а наоборот C++ в себя включает Cи
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #53

49. Сообщение от Аноним (222), 24-Май-20, 15:46   +4 +/
Нет нельзя, просто берешь контейнер типа вектор, суешь в него что хочешь и итерируешь и итерируешь)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #63, #126

50. Сообщение от Аноним (222), 24-Май-20, 15:48   –5 +/
Именно, память лиса жрать стала только больше, вот и весь Rust
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #62

51. Сообщение от Аноним (222), 24-Май-20, 15:49   +1 +/
Просто из стандарта C++ уже давно пора выпилить указатели, вроде в 23-ей версии собираются
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #54, #76, #91, #94, #237

52. Сообщение от d (??), 24-Май-20, 15:49   –3 +/
Имхо проблема не в языках, а в x86, arm и им подобным.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #149

53. Сообщение от Аноним (359), 24-Май-20, 15:51   –1 +/
> Ничем не отличается, а наоборот C++ в себя включает Cи

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #69, #243, #288

54. Сообщение от Аноним (222), 24-Май-20, 15:53   –1 +/
И Сишный препроцессор убрать к чертям, иначе не код, а не отлаживаемый и не читаемый кусок Г получается
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #245, #249

55. Сообщение от JL2001 (ok), 24-Май-20, 15:55   +/
> Ну вот Firefox на Rust переписали. И как, меньше там уязвимостей находят,
> чем в Chrome? Так, может, не в языке дело?

те на русском вот прям в этой новости написали - 70% ошибок будет убрано если переписать на rust

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #60

57. Сообщение от Fracta1L (ok), 24-Май-20, 15:57   +5 +/
> Firefox на Rust переписали

Нет

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #115

58. Сообщение от Dzen Python (ok), 24-Май-20, 15:57   +3 +/
"Сделаем хром жирнее и медленнее again"?
А чтобы юзвери не рыдали - нарисуем им красивую инфографику, что ай-яй-яй, дыры-память-указатели! И не программисты же виноваты, что не могут сделать пару malloc()-free() или new()-delete(), в творческом порыве насирания кода, это все неправильные языки [которые принудительно не отслеживают время жизни указателей в куче и не могут предугадать любой сценарийй мемаллока] и плохие компиляторы [которые понимают адресную арифметику и позволяют собирать красивый и быстрый код, вместо подтирания мочи за "погромистами"-быдлокодерами].
Ответить | Правка | Наверх | Cообщить модератору

59. Сообщение от JL2001 (ok), 24-Май-20, 15:59   +/
> Ждем safe метаклассы для этого.

они уже есть - в rust

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #96

60. Сообщение от Аноним (222), 24-Май-20, 16:00   –3 +/
Капец ты тугой, а знаешь почему большой и сложный софт пишут не на няшном C# или богоизбранной Java, а на таком обьектно-ориентированном полуассеблере как C++? Во первых скорость, во вторых память, ручное управление которой и дает эту скорость по сравнению с безопасными языками
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #67, #165, #319

61. Сообщение от Лолкек (?), 24-Май-20, 16:00   +7 +/
Там несколько подсистем переписали - css движок, вроде рендерер и ещё что то.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #224

62. Сообщение от JL2001 (ok), 24-Май-20, 16:03   +1 +/
> Именно, память лиса жрать стала только больше, вот и весь Rust

на днях обновился таки в одном месте с firefox 56 на текущий (уж очень там нужна была группировка вкладок, а в глобальный инет не ходил им)
потребление памяти упало в 1.5-2 раза (цифры на глаз по процмонитору)
что я сделал не так?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #107, #188

63. Сообщение от red75prim (?), 24-Май-20, 16:03   +5 +/
А потом в цикле делаешь push_back и хрясь граблями между глаз.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49

64. Сообщение от Dzen Python (ok), 24-Май-20, 16:05   +2 +/
Не вопрос.
- Сколько платишь за фулдей?
- Куда мне можно будет посылать разного рода манагеров/комитеты [вплоть до генеральных] с их ВИДЕНИЕМ, невменяемым дедлайнами и кранчами?
Остальные вопросы вытекают из этих двух.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #122

65. Сообщение от Аноним (222), 24-Май-20, 16:06   +/
Программисты гугла, это те которые не могут за 10 лет свою недоос привести в юзабельный вид без микро и макролагов? ммм, да не смешите меня
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #79, #153

66. Сообщение от red75prim (?), 24-Май-20, 16:07   +/
Ну в статье-же прямо написано: "В настоящее время возможности применения [sandboxing] достигли предела своих возможностей [...]".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #84

67. Сообщение от JL2001 (ok), 24-Май-20, 16:07   +2 +/
> Капец ты тугой, а знаешь почему большой и сложный софт пишут не
> на няшном C# или богоизбранной Java, а на таком обьектно-ориентированном полуассеблере
> как C++? Во первых скорость, во вторых память, ручное управление которой
> и дает эту скорость по сравнению с безопасными языками

капец ты тугой, а знаешь, что бенчмарки rust vs C показывают 90-110% скорости C?
https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #71

68. Сообщение от Аноним (222), 24-Май-20, 16:08   +3 +/
И в Xen-е поднимут
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

69. Сообщение от Аноним (222), 24-Май-20, 16:10   –5 +/
Это так, C++ обратно совместим с Cи, то есть C++ включает C99
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #373

70. Сообщение от red75prim (?), 24-Май-20, 16:11   +2 +/
>  Если не use after free, то жит пробьют при желании (это едва ли не 99,999% успешных атак)

Где эта статистика опубликована?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #77, #99

71. Сообщение от Аноним (222), 24-Май-20, 16:12   –2 +/
В синтетике и жаба при определенных условиях быстрее C++ в полтора раза и шо?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #80, #118, #159

72. Сообщение от Да ну вас нахрен (?), 24-Май-20, 16:13   +/
> Использование библиотек для безопасной работы с памятью является наиболее простым, но и менее эффективным способом. Переписывание же кода на Rust оценивается как наиболее эффективный, но и очень дорогой путь.

Так и какое заключение то? Что выберет Google?

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

75. Сообщение от Аноним (222), 24-Май-20, 16:17   –3 +/
Лучше идти в дизайнеры, чем в программисты... фэ прогеры даже звучит зашкварно
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

76. Сообщение от Аноним (76), 24-Май-20, 16:17   +1 +/
Большей чепухи давно не видел.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

77. Сообщение от Аноним (359), 24-Май-20, 16:17   +/
Статистика получена на основании анализа всяких соревнований по взлому, результатов обхода drm, и путей распространения малвари. В парсере dom я припомню всего пару уязвимостей. Там ещё что-то в css и html5/media было недавно, но это не серьёзно. Всё остальное это жит. Все эти уязвимости во флэше тоже, это всё жит и только он. Это наиболее удобный и очевидный вектор атаки, песочницы хоть как-то спасают, но только если они сами не уязвимы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70 Ответы: #87

78. Сообщение от Аноним (76), 24-Май-20, 16:19   –3 +/
Это должен делать программист - освободить память после использования.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #127, #163

79. Сообщение от коржик (?), 24-Май-20, 16:19   +4 +/
разработчики хрома дилетанты, а я молодец!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #86

80. Сообщение от Аноним (222), 24-Май-20, 16:19   –1 +/
Ох уж эти тесты Java vs C++, а сколько споров было шо жаба могет в 1 случае из миллиона
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #89

81. Сообщение от Аноним (76), 24-Май-20, 16:20   +/
Дай скажу гипотезу. Программисты Microsoft в Google перешли?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #202

83. Сообщение от user90 (?), 24-Май-20, 16:22   –1 +/
1. Речь о хромом. 2. Хватает: https://www.linuxjournal.com/files/linuxjournal.com/linuxjou...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #161

84. Сообщение от Аноним (359), 24-Май-20, 16:22   +1 +/
> Ну в статье-же прямо написано: "В настоящее время возможности применения [sandboxing] достигли
> предела своих возможностей [...]".

Они внезапно осознали, что от дыр в вебгл песочница не спасает. Не иначе.

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

85. Сообщение от Аноним (-), 24-Май-20, 16:23   +6 +/
на жаваскрипте. И круг замкнется
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #489

86. Сообщение от Аноним (222), 24-Май-20, 16:26   –4 +/
Разработчики хрома жалкие воры неспособные довести до ума то что стырили, да и я про WebKit/KHTML который хвала богам не стал тормозящее жруще многопроцессорным, в отличии от Blink... господи какой это кал
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79 Ответы: #140

87. Сообщение от red75prim (?), 24-Май-20, 16:27   –2 +/
Сто тысяч случаев проанализировали и не опубликовали? А вы скромный.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #104

89. Сообщение от Аноним (359), 24-Май-20, 16:30   +/
"Джаба быстрее ассемблера*", это каждый знает. Интересно, а если в том кейсе где джаба победила заюзать libgccjit, он сможет быстрее быть?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #95

90. Сообщение от Ordu (ok), 24-Май-20, 16:31   +3 +/
Это в простейшем случае. Но прикинь теперь, что, допустим, у тебя есть гуй, который представляется в памяти в виде дерева виджетов. Каждый виджет представлен кусоком памяти, на который в этом дереве есть ровно один указатель. Теперь представь, что среди этих виджетов есть кнопка, и ты вешаешь обработчик на эту кнопку, например, это может быть замыкание, которое захватило указатель на кусок памяти представляющий эту кнопку. Или, если нефункционально зато в стиле ООП, то это будет объект, который имеет метод onclick, и поле button, хранящее указатель на эту кнопку. Этот объект-замыкание мы засовываем в наш менеджер ивентов. И вот ты решил удалить кнопку, сделал на неё free, а тут прилетел onclick event, и объект-замыкание сделало use-after-free.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #98, #169, #341, #358, #368, #418

91. Сообщение от Аноним (91), 24-Май-20, 16:31   +1 +/
Удаление классических указателей из C++23 - двухлетняя первоапрельская шутка
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

93. Сообщение от Аноним (222), 24-Май-20, 16:31   –2 +/
Тут плюсую, ибо я не отчего не испытывал столько боли как от использования подделий гугла
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #110

94. Сообщение от анононимчик (?), 24-Май-20, 16:32   +/
И го теперь на асме надо будет с памятью напрямую работать? O_o
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

95. Сообщение от Аноним (222), 24-Май-20, 16:34   +1 +/
Можно пойти дальше и заявить что жаба быстрее самого процессора, просто цп слишком медленный для нее вот и тормозит) Не успевает так сказать
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89

96. Сообщение от анононимчик (?), 24-Май-20, 16:34   +/
Rust дубовый язык. C в кандалах:)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59 Ответы: #168, #170

98. Сообщение от анононимчик (?), 24-Май-20, 16:40   +/
Такие проблемы были давным давно решены и в Delphi/Pascal, и в MFC, и в Qt.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #103

99. Сообщение от Аноним (99), 24-Май-20, 16:40   –2 +/
любой разумный программист это и так знает без всякой статистики
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

101. Сообщение от Аноним (99), 24-Май-20, 16:42   –6 +/
Нужно всего лишь программировать правильно, C++ тут вовсе не при чем.
Просто нужно нанимать правильных программистов которые не делают глупых ошибок, недопускают ub и прогоняют код через анализатор.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #114, #332

103. Сообщение от Ordu (ok), 24-Май-20, 16:54   +3 +/
Какие именно проблемы из перечисленных были решены?

Я спросил у гугла про qt + use-after-free и тут же он нашёл мне:
https://nvd.nist.gov/vuln/detail/CVE-2020-12267
https://bugreports.qt.io/browse/QTBUG-60786
https://bugreports.qt.io/browse/QTBUG-62443

Ты можешь сам поискать ещё, если тебе мало. qt точно так же ходит по граблям use-after-free как и все остальные.

Насчёт Delphi/Pascal я не уверен, я никогда не писал на них сколь-нибудь серьёзно, но загуглил и вот что нашёл: https://wiert.me/2020/01/20/delphi-a-few-notes-on-tracking-d.../
Что наводит на мысль о том, что в Delphi тоже вполне возможно наступить на use-after-free.

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

ps. Да и в любом случае -- решены или не решены, -- всё равно ситуация оказывается резко сложнее, чем описывает ТС.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98 Ответы: #419

104. Сообщение от Аноним (359), 24-Май-20, 16:56   +/
Ничто не мешает экстраполировать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87 Ответы: #116

105. Сообщение от VINRARUS (ok), 24-Май-20, 16:59   +/
> > C и есть монстр.
> Разве? Можно примеры?

Linux

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #109

107. Сообщение от Аноним (136), 24-Май-20, 17:02   –3 +/
Отвалились расширения, которые и жрали. Это как уменьшение веса путём ампутации конечностей.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #141, #206

108. Сообщение от Gemorroj (ok), 24-Май-20, 17:02   +8 +/
вы что-то имеете против аджалйла и девопс?
до свидания, собеседование закончено, мы вам перезвоним.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

109. Сообщение от Аноним (359), 24-Май-20, 17:03   +3 +/
Ммм файл 2 мегабайта являющийся полноценной современной системой с поддержкой всего железа и кучей фреймворков и апи для всего что только можно. Ну ладно в несжатом виде это файл 20мб, но там сплошные нули и выравнивания.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105 Ответы: #113, #134

110. Сообщение от Аноним (136), 24-Май-20, 17:04   +2 +/
А куда ты денешься с подводной лодки? Стандартны вэба давно диктует гугол, и бабки платят тем, кто десятками мегабайт в скрипты загоняет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #93 Ответы: #197, #213

112. Сообщение от Онаним (?), 24-Май-20, 17:07   +5 +/
[sarcasm mode on]
Слабо хромиум на электроне переписать?
[sarcasm mode off]
Ну или на хрусте хотя бы.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #130, #203

113. Сообщение от VINRARUS (ok), 24-Май-20, 17:08   –6 +/
Ты исходник ядра видел хоть раз в жызни?
https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.14.ta...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #109 Ответы: #117, #338

114. Сообщение от Аноним (24), 24-Май-20, 17:09   +5 +/
Знаешь что, правильный ты наш, когда твоя кодовая база перевалит за 10 млн. строк, в которые постоянного коммитят хотя бы 50 разработчиков - то ты зае…мучаешься программировать "правильно". Это если ты реально спец. Нуб там вообще без шансов написать нормальный код за вменяемое время.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101 Ответы: #139, #184, #401

115. Сообщение от Аноним (24), 24-Май-20, 17:10   +4 +/
Ещё нет.
fxd =)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

116. Сообщение от red75prim (?), 24-Май-20, 17:14   –1 +/
В статистике вы похоже также хорошо разбираетесь. Сказали бы "Это оценка с точностью 1 значащая цифра" и претензий бы не было.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104

117. Сообщение от Аноним (359), 24-Май-20, 17:16   +3 +/
Я его каждую неделю вижу, а что? 90% кода там амдшные дрова. Я просто привёл пример моего ядра, там даже всякие беспроводные геймпады и диски в юсб хабах вкомпилены, а также 4 штуки разных звуковух и разные отладочные фишечки. Т.е. вообще всё моё железо железо поддерживает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113

118. Сообщение от коржик (?), 24-Май-20, 17:16   +6 +/
Вообще и на дотнете можно писать очень быстрый, не требовательный к памяти код. Но на проектах немного приоритеты другие, всегда стремишься к покрытию тестами и чистому коду, а так же к удобствам языка.
Как следствие, в рантайме получаешь оверхед по динамическому диспачу и упаковке, иногда огребаешь от рефлексии (привет, автофак) и компилирующихся на лету экспрешенов (mvvm биндинги к примеру).

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

А у раста с динамикой не очень, наследования там вообще нет, vtable работает через толстые ссылки и только там где надо. Весь полиморфный код можно писать через дженерики (100% статика). Гц нет. Вот этого "всё есть объект" там тоже нет. Всё что можно работает на стеке.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #212, #417

120. Сообщение от Gemorroj (ok), 24-Май-20, 17:19   +/
мне думается что гугель уже переплюнул ящик в плане промывки мозгов
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

121. Сообщение от Райзер (?), 24-Май-20, 17:22   +1 +/
MS тужится родить свой форк Rust, возможно его будут использовать для переписывания библиотек
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #178, #205

122. Сообщение от annual slayer (?), 24-Май-20, 17:22   –1 +/
> Dzen Python

всё хорошо, спасибо, мы вам когда-нибудь перезвоним

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

123. Сообщение от Аноним (99), 24-Май-20, 17:24   +/
у std::vector нет обязательной проверки на допустимость границ массива https://en.cppreference.com/w/cpp/container/vector/operator_at
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #136, #143

124. Сообщение от Аноним (124), 24-Май-20, 17:25   +/
Не переписали
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40

125. Сообщение от Аноним (99), 24-Май-20, 17:26   +1 +/
std::vector<T,Allocator>::operator[]
Returns a reference to the element at specified location pos. No bounds checking is performed.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #374

126. Сообщение от Аноним (99), 24-Май-20, 17:28   +2 +/
std::vector<T,Allocator>::operator[]
Returns a reference to the element at specified location pos. No bounds checking is performed.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #398

127. Сообщение от коржик (?), 24-Май-20, 17:28   +4 +/
Вот открываете вы тикет на работе, а там написано:

"Написать программу которая хорошо освобождает память".

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

129. Сообщение от proninyaroslavemail (ok), 24-Май-20, 17:33   –2 +/
А я всегда думал что не язык, а люди генерят дыры...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #226

130. Сообщение от proninyaroslavemail (ok), 24-Май-20, 17:34   +1 +/
>Слабо хромиум на электроне переписать?

Тогда получится бесконечная рекурсия

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #183

131. Сообщение от Nopomukemail (?), 24-Май-20, 17:40   –1 +/
"Вызваны ошибками при работе с памятью" он вообще умеет с ней работать???
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #179

134. Сообщение от Аноним (-), 24-Май-20, 17:54   –5 +/
> Ммм файл 2 мегабайта являющийся полноценной современной системой с поддержкой всего железа
> Ну ладно в несжатом виде это файл 20мб, но там сплошные нули
> и выравнивания.

https://packages.debian.org/ru/sid/linux-image-5.6.0-1-amd64
> Архитектура    Размер пакета    В установленном виде    Файлы
> amd64    49 083,5 Кб    277 116,0 Кб     [список файлов]

... то ли в дебиане лохи, то ли очередные фантазии почти-трехсотого^W очередного анонима опеннета.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #109 Ответы: #137, #339

135. Сообщение от Вы забыли заполнить поле Name (?), 24-Май-20, 17:55   +/
Авторы chromium пришли с посланием... Но анонимы опеннета не поняли его.

Короче, копите деньги на память. В ближайшем будущем она вам понадобиться.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #144, #167, #316

136. Сообщение от Аноним (136), 24-Май-20, 17:58   +/
Допустим, она бы там была. Запросили элемент вне границ, дальше то что делать? Работать дальше, будто ничего и не было, или всё же исключение кинуть и ткнуть рожей того, кто это написал?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123 Ответы: #154, #160

137. Сообщение от Аноним (359), 24-Май-20, 18:06   +1 +/
Я уже упоминал за амдшные дрова? Чё ты споришь, я по фактажу говорю. Всё вкомпилено в self-bootable ядро (efi) и initramfs выключен. Даже рейды и всякие сетевые фс есть. Кроме этого ведь, в ядре есть много очень специфичного железа, которое ты никогда не увидишь в дикой природе. Но оно ведь будет валяться мёртвым грузом на диске, если не используется. Это на самом деле верная оценка эффективности си.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #134 Ответы: #147

138. Сообщение от Fracta1L (ok), 24-Май-20, 18:07   +2 +/
У меня в FF вкладки редко за 300 Мб выбираются, лол
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #209

139. Сообщение от Fracta1L (ok), 24-Май-20, 18:09   +/
Зачем ты рушишь маняфантазии диванных экспертов
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114 Ответы: #353

140. Сообщение от Аноним (140), 24-Май-20, 18:30   +1 +/
Господи, какой некомпетентный комментарий выше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86 Ответы: #172, #171

141. Сообщение от Аноним (140), 24-Май-20, 18:35   –2 +/
> Это как уменьшение веса путём ампутации конечностей.

Рудиментов может быть?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107 Ответы: #142

142. Сообщение от Аноним (136), 24-Май-20, 18:44   +1 +/
Для кого-то и ноги рудименты. Вот они и не заметили.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #141 Ответы: #217, #352

143. Сообщение от Аноним (143), 24-Май-20, 18:47   +2 +/
С разморозкой:
Есть at()
https://en.cppreference.com/w/cpp/container/vector/at
Нормальные люди пользуются итераторами или ranged-base for циклом.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123 Ответы: #310

144. Сообщение от Аноним (136), 24-Май-20, 18:47   +3 +/
>ться.

Расстрелять. Два раза.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #145, #152

145. Сообщение от Аноним (145), 24-Май-20, 18:52   –1 +/
Может понадобиться
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144

147. Сообщение от Аноним (-), 24-Май-20, 19:00   –4 +/
> Я уже упоминал за амдшные дрова?
>> 90% кода там амдшные дрова. Я просто привёл пример моего ядра
>>>  файл 2 мегабайта являющийся полноценной современной системой с поддержкой всего железа и кучей фреймворков

Всегда знал, что амд - не железо!

> Чё ты споришь, я по фактажу говорю.

Оторванному от реальности - возможно. В реальности "твое железо" != "все железо".

> Это на самом деле верная оценка эффективности си.

Скорее, эффективности сравнения пальца с жопой.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137 Ответы: #151

148. Сообщение от Аноним (148), 24-Май-20, 19:01   +/
Хромиум тоже относится к подделкам гугла? Он вроде как его не пилит, но все же мы понимаем, что руководит Хромиумом гугл.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #198, #367

149. Сообщение от Аноним (148), 24-Май-20, 19:02   +1 +/
Обоснуйте. Можно более развёрнутый комментарий? :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #276

151. Сообщение от Аноним (359), 24-Май-20, 19:05   +3 +/
Речь только про использующийся код. Вполне можно оценить, раз всё вкомпилено в самодостаточный файл. С другим железом бинарник будет того же размера, но с иным содержимым.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147 Ответы: #180

152. Сообщение от Аноним (148), 24-Май-20, 19:09   +/
Хорошо, но ты память всё равно купи))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144

153. Сообщение от Аноним (99), 24-Май-20, 19:18   +/
Действительно, микролаги это ужастно. Никогда не буду пользоваться гуглоос
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #173

154. Сообщение от Аноним (99), 24-Май-20, 19:21   +2 +/
>дальше то что делать?

исключение бросать

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136 Ответы: #311

156. Сообщение от Корец (?), 24-Май-20, 19:31   +/
Надеюсь, что нет, а то как ты потом будешь писать забавные комменты в интернетах?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

158. Сообщение от YetAnotherOnanym (ok), 24-Май-20, 19:37   +/
Трайдент лучче!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #222

159. Сообщение от JL2001 (ok), 24-Май-20, 19:37   +/
> В синтетике и жаба при определенных условиях быстрее C++ в полтора раза
> и шо?

по ссылке вроде не прям чисто синтетика и не определённые условия

да там почти все тесты быстрее C/C++ вышли - может реально потому, что на этих языках в правильном коде надо позаботится о проверках в рантайме, а в rust за тебя посчитает в момент компиляции и не будет вставлять эти проверки в код?

зы: над исходниками не зависал, возможно я не прав

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #181

160. Сообщение от коржик (?), 24-Май-20, 19:43   +1 +/
>дальше то что делать?

исключение бросать

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

161. Сообщение от JL2001 (ok), 24-Май-20, 19:43   +/
> 1. Речь о хромом. 2. Хватает: https://www.linuxjournal.com/files/linuxjournal.com/linuxjou...

речь о том, что в команде разрабов chromium точно есть квалифицированные прогеры на C

именно те, кто будет писать либы для безопасной работы с памятью или принимать решение о переходе на rust

и они уже сказали, что жить на C тяжко даже с их опытом и руками

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #376

163. Сообщение от JL2001 (ok), 24-Май-20, 19:47   +/
> Это должен делать программист - освободить память после использования.

а вы, видимо, дизайнер или менеджер? ну или строитель там...

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78 Ответы: #330, #334

164. Сообщение от vitalif (ok), 24-Май-20, 19:53   +/
Ты б сделал сам сначала волшебный язык, который и удобный, и безопасный, и быстрый. А потом рассказывал
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

165. Сообщение от коржик (?), 24-Май-20, 19:53   +1 +/
> Капец ты тугой, а знаешь почему большой и сложный софт пишут не на няшном C# или богоизбранной Java,

И да, большой и сложный софт пишут на C# и Java

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #193

166. Сообщение от th3m3 (ok), 24-Май-20, 19:57   +3 +/
Теперь до некоторых дойдёт, зачем Firefox на Rust перешёл?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #216, #279, #281

167. Сообщение от th3m3 (ok), 24-Май-20, 19:58   +5 +/
>Короче, копите деньги на память

Зачем? Когда есть Firefox.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #404

168. Сообщение от Аноним (273), 24-Май-20, 20:07   +4 +/
Для неосиляторов (и писателей низкоуровневых библиотек) всегда есть unsafe.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96

169. Сообщение от Зз (?), 24-Май-20, 20:11   +2 +/
А как это будет на Расте?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #257, #342, #383

170. Сообщение от Аноним (273), 24-Май-20, 20:11   +1 +/
Уместно ли тут сравнение с работой в Линуксе из-под рута по-умолчанию?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96 Ответы: #320

171. Сообщение от Аноним (222), 24-Май-20, 20:24   –2 +/
Смешно конечно, какое отношение национальность имеет к кодовой базе которую гугль скоммуниздил у яблока который допилил kde-шных KHTML до практически 100% поддержки веб-стандартов... И если тебе так интересно, я не русский, поэтому исходя из твоей логики лжецом я быть попросту не могу, ибо все что я говорю истина в последней инстанции
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140

172. Сообщение от Аноним (222), 24-Май-20, 20:25   –2 +/
Так опровергни
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140

173. Сообщение от Аноним (222), 24-Май-20, 20:30   –1 +/
Я из за этой херни не один ведротелефон разбил
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153

174. Сообщение от заминированный тапок (ok), 24-Май-20, 20:31   –1 +/
>Это должен делать компилятор на худой конец интерпретатор. Кодогенерация опять же.

ну и какой тогда нахрен zero-cost abstraction?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #250

175. Сообщение от Аноним (175), 24-Май-20, 20:32   +1 +/
Да и поисковик у них какой-то странный. Лет 5 назад ещё я его предпочитал, а теперь Яша ищет лучше. Делал сайт со 100% уникальным и специфичным контентом, так яндекс на первой странице выдаёт, а гугл не до листался, всё какую-то коммерческую и ненужную дичь выводит не в тему.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #201

176. Сообщение от FixingGunsInAiremail (ok), 24-Май-20, 20:32   –1 +/
4 слова: С++ in a nutshell

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

Даже в CLR, если бы на нём написали движок, было бы меньше дыр.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #218, #282

178. Сообщение от FixingGunsInAiremail (ok), 24-Май-20, 20:34   +1 +/
Пруфы/линк?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121 Ответы: #191

179. Сообщение от FixingGunsInAiremail (ok), 24-Май-20, 20:35   +1 +/
Chromium - да. Люди, которые его пишут, скорее всего - нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #131

180. Сообщение от Аноним (180), 24-Май-20, 20:35   –4 +/
> Речь только про использующийся код. Вполне можно оценить, раз всё вкомпилено в самодостаточный файл.

По сравнению с KolibriOS - абсолютно не впечатляет.

И нахваливать С могут разве что луддиты, слаще морковки не едавшие - куча UB-граблей на ровном месте в ЯП, куча просто граблей и грабелек в т.н. "макросах", отсутствие поддержки нормальных библиотек (вставка инклудом кода "либы" целиком в основной - это совсем немного не то) и результирующие костыли, отсутствие неймспейсов, отсутствие поддержки многопоточного и асинхронного программирования, шаблонов/дженериков, слабая типизация.

> С другим железом бинарник будет того же размера, но с иным содержимым.

Просто кинь ссылку на современное пятое ядро для amd64, c дровами для какого-нибудь _реального_ ноута/писюка (на усмотрение анонима) и сжимающееся до 2МБ с помощью gz -9.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #151 Ответы: #208, #210, #236, #475

181. Сообщение от Аноним (222), 24-Май-20, 20:36   –4 +/
не помнишь сколько пруфов было от джавистов как жабка рвет C++ в пух и прах?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159 Ответы: #241, #242

183. Сообщение от FixingGunsInAiremail (ok), 24-Май-20, 20:39   –2 +/
Pypy же как-то справляется с ней.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130

184. Сообщение от Аноним (222), 24-Май-20, 20:39   +4 +/
Если кодовая база 10 млн строк написанных только при помощи if и while, без классов или хотя бы функций для разделения кода на модули, то это бида конечно
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114 Ответы: #468

186. Сообщение от Аноним (186), 24-Май-20, 20:40   +/
Сказочный д..указатель
Ответить | Правка | Наверх | Cообщить модератору

188. Сообщение от Аноним (222), 24-Май-20, 20:43   –2 +/
Вот не надо гнать, если лиса в быту монолитности жрала на старте с одной вкладкой 350-380мб, то сейчас с модной многопроцессорностью сходу 500мб и в районе сотни мегов на каждую вкладку, помимо этого около сотни мегов на вспомогательные процессы лисы, так зачем врать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #204, #214, #225, #322, #493

190. Сообщение от FixingGunsInAiremail (ok), 24-Май-20, 20:44   +/
Пока это всё разговорчики. Признание проблемы. Теперь они ещё несколько месяцев будут решать, куда двигаться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

191. Сообщение от Аноним (191), 24-Май-20, 20:44   +1 +/
https://www.opennet.ru/opennews/art.shtml?num=51966
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #178

192. Сообщение от Оно им (?), 24-Май-20, 20:45   –1 +/
Ни одного нормального браузера не осталось... :(
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #219

193. Сообщение от Аноним (222), 24-Май-20, 20:45   +/
Пишут, но я про прикладной софт, а на шарпе и жабе как правило сервер сайд, но по сложности кода такие вещи как правило не уступают самому MSOffice, дело в другом, понимаешь железо на серверах помощнее и памяти побольше чем у среднестатистического юзера
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #165

194. Сообщение от Michael Shigorinemail (ok), 24-Май-20, 20:46   +/
Ммм... полагаете, у фрактала эти комментарии -- плод невыразимой ненависти, выражаемый полуслепым восьмипальцевым?..
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #231

197. Сообщение от Аноним (222), 24-Май-20, 20:47   +/
мягкие и яблоко конечно не удел
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110

198. Сообщение от Аноним (222), 24-Май-20, 20:49   +1 +/
Многопроцессорность говорили они, безопасность говорили они, а что мы видим в итоге тормоза, отжор памяти и все те же дыры
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148

201. Сообщение от Аноним (222), 24-Май-20, 20:51   +/
Порнуху яндекс лучше ищет чем гугл, еще вопросы есть?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #175 Ответы: #317, #499

202. Сообщение от Аноним (222), 24-Май-20, 20:53   +4 +/
чиво? Гугл даже пеинт и косынку не может запилить, о чем речь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81

203. Сообщение от Аноним (222), 24-Май-20, 20:54   –1 +/
Всмысле нельзя, если электрон на базе хрома?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112

204. Сообщение от JL2001 (ok), 24-Май-20, 20:56   +/
> Вот не надо гнать, если лиса в быту монолитности жрала на старте
> с одной вкладкой 350-380мб, то сейчас с модной многопроцессорностью сходу 500мб
> и в районе сотни мегов на каждую вкладку, помимо этого около
> сотни мегов на вспомогательные процессы лисы, так зачем врать?

не знаю про с одной, у меня около 250-300 вкладок на 4 окна
было примерно 750+500+300+300 по процессам
сейчас стало примерно 500+200+150+150 по процессам

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #188 Ответы: #211

205. Сообщение от Аноним (222), 24-Май-20, 20:56   +/
Наверное патентных претензий мозиллы боится MS? Не смешите меня пожалуйста... Очередной экспериментальный язык по типу зайдет не зайдет, как F# и КВАНТОВЫЙ Q#, ну такое
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121

206. Сообщение от JL2001 (ok), 24-Май-20, 20:57   +/
> Отвалились расширения, которые и жрали. Это как уменьшение веса путём ампутации конечностей.

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

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

208. Сообщение от Аноним (359), 24-Май-20, 20:58   +/
Так xz оно сжимается, какой ещё gz? Gz в 2 раза больше.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #180 Ответы: #240

209. Сообщение от Оно им (?), 24-Май-20, 20:58   +/
Видимо грядки у всех разные. У меня и на Хроме всё путём. Меньше, чем в фф.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #138 Ответы: #273

210. Сообщение от Аноним (359), 24-Май-20, 21:00   +1 +/
пс

>KolibriOS

Колибриос по сравнению с линуксом абсолютно не впечатляет.

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

211. Сообщение от Аноним (222), 24-Май-20, 21:00   –2 +/
Зачем ты загоняешь дичь, если сами мозилловцы сказали шо из за многопроцессорности лисичка будет кушать больше памяти на порядок? В чем смысл? Новость эта кстати здесь же
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #204 Ответы: #228

212. Сообщение от Аноним (222), 24-Май-20, 21:01   –1 +/
Зачем из дотнета делать C++? Шарпик в своей сфере просто цацка
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118

213. Сообщение от Аноним (222), 24-Май-20, 21:05   –4 +/
Современные веб-стандарты которыми ты так кичишься, чуть менее чем совсем состоят из отсебятины MS еще в бытность IE6/7
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110 Ответы: #312

214. Сообщение от FixingGunsInAiremail (ok), 24-Май-20, 21:05   +5 +/
Может новый Firefox и жрёт больше памяти по сравнению со старым добрым, монолитным. Такое поведение ожидалось. Таков наш "дивный новый мир", где предполагается, что десктопе минимум 4 гига, да будет. Но всё это было в угоду скорости и стабильности.

Однако, по сравнению с Chromium, ситуация с памятью гораздо лучше у Firefox. Т.к. Firefox выделяет по процессу на каждое ядро + вспомогательный для gpu.

И самое главное, когда я сравнивал последний раз Chromium с Firefox, я заметил один факт. В отличии от Chromium, Firefox умеет освобождать память. А Chromium освобождает либо неохотно, либо вообще не освобождает, пока отдельный процесс не будет закрыт. В отдельных вкладках открыл 3 стресс-теста с веба и прогнал. После закрытия этих вкладок, Firefox освободил память сразу же до минималки, Chromium же оставил её при себе, пока не закрыл его совсем.

Вот и думай теперь, кто умеет управлять памятью, а кто нет.

P.S. Конечно же это всё мои субъективные тесты в моём персональном вакууме. Камшоты не сохранились с тех пор, потому пруфов не будет. Если хотите, сравнивайте сами.

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

216. Сообщение от Аноним (222), 24-Май-20, 21:08   +1 +/
Зачем?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166

217. Сообщение от Michael Shigorinemail (ok), 24-Май-20, 21:09   –1 +/
> Для кого-то и ноги рудименты. Вот они и не заметили.

Скорее не ноги, а мозги.  Впрочем, таким несложно запутаться...

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

218. Сообщение от Аноним (222), 24-Май-20, 21:09   +1 +/
шарпик в unsafe позволяет долбится в указатели не хуже крестов
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #176 Ответы: #221, #265

219. Сообщение от Аноним (222), 24-Май-20, 21:09   –2 +/
Safari на WebKit наше все
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #192 Ответы: #234, #235, #260

221. Сообщение от FixingGunsInAiremail (ok), 24-Май-20, 21:17   +1 +/
> шарпик в unsafe позволяет долбится в указатели не хуже крестов

Вот только в unsafe лезть никто не заставляет, кроме случаев, когда используешь с нативные библиотеки, где ручное выделение памяти.

Реализовав банальный IDispose нормально, можно большинство таких проблем избежать.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #218 Ответы: #227, #375

222. Сообщение от Аноним (222), 24-Май-20, 21:19   +4 +/
зачотная ракета
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #158

224. Сообщение от НяшМяш (ok), 24-Май-20, 21:24   +2 +/
https://wiki.mozilla.org/Oxidation#Shipped

Переписали на самом деле немало, но компоненты относительно мелкие. В любом случае надо с чего-то начинать.

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

225. Сообщение от Shevchuk (ok), 24-Май-20, 21:24   +4 +/
Вот не поленился, создал чистый профиль и открыл в нём вкладку https://opennet.ru

> smem -tc 'pid name command pss' -P '^/usr/lib/firefox'        

  PID Name                     Command                          PSS
84318 Web Content              /usr/lib/firefox/firefox -c    29991
84230 WebExtensions            /usr/lib/firefox/firefox -c    49505
84194 Web Content              /usr/lib/firefox/firefox -c    97468
84113 firefox                  /usr/lib/firefox/firefox      203801
--------------------------------------------------------------------
    4                                                        380765


Для сравнения, Chromium (snap, так что не совсем православно, конечно):

> smem -tc 'pid name command pss' -P '^/snap/chromium'      

  PID Name                     Command                          PSS
86108 chrome                   /snap/chromium/1165/usr/lib     3071
86105 chrome                   /snap/chromium/1165/usr/lib    11180
86142 chrome                   /snap/chromium/1165/usr/lib    11829
86104 chrome                   /snap/chromium/1165/usr/lib    12006
86276 chrome                   /snap/chromium/1165/usr/lib    16830
86131 chrome                   /snap/chromium/1165/usr/lib    30461
86262 chrome                   /snap/chromium/1165/usr/lib    48198
86125 chrome                   /snap/chromium/1165/usr/lib   122773
85886 chrome                   /snap/chromium/1165/usr/lib   176314
--------------------------------------------------------------------
    9                                                        432662

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #188 Ответы: #325

226. Сообщение от JL2001 (ok), 24-Май-20, 21:24   +/
> А я всегда думал что не язык, а люди генерят дыры...

это совместно
но любой человек в решете воды не наносит

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129 Ответы: #229, #258

227. Сообщение от Аноним (222), 24-Май-20, 21:26   –1 +/
Так и я про это же, что не нужно превращать шапр в кресты, если есть кресты, у шарпа своя огромная ниша
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #221 Ответы: #407, #413

228. Сообщение от Shevchuk (ok), 24-Май-20, 21:28   +3 +/
> на порядок

Ясно, понятно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #211 Ответы: #233

229. Сообщение от Michael Shigorinemail (ok), 24-Май-20, 21:29   –2 +/
> но любой человек в решете воды не наносит

Как будем с поверхностным натяжением, со следующего года отменим или немедленно?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #226 Ответы: #263

231. Сообщение от kusb (?), 24-Май-20, 21:32   +/
Привет, ты же у нас по  эльбрусам? Помогла бы их хвалёная технология защищённого режима? Или не это?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #194 Ответы: #251

233. Сообщение от Аноним (222), 24-Май-20, 21:34   –1 +/
Тебе в килобайтах сказать для точности?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #228 Ответы: #306

234. Сообщение от Оно им (?), 24-Май-20, 21:38   –1 +/
Ну неее... Не кашерно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #219

235. Сообщение от Нонон (?), 24-Май-20, 21:41   +/
Сафари? Он же второй IE
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #219 Ответы: #238

236. Сообщение от Валик (?), 24-Май-20, 21:42   –1 +/
> Просто кинь ссылку на современное пятое ядро для amd64

я дам ссылку.
не совсем что бы к самому "современному", возможно даже не к "пятому" и не для амуде и даже не на 2, а аж 4... зато там и ядро и libc и куча юзерспейсных утилит, ФС и вебсервер до кучи.
это любой дешманский китай-роутер с флехой на 4МБ.
а еще некоторые старые линуксы во времена 2,3,4хх-версий влазили на дискетку меньше 2МБ.
но ты сейчас начнешь про "не современное" и не на амуле и вообще "то ядро", это якобы "не это", да и Си там другой и.. и..

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #180 Ответы: #246

237. Сообщение от topin89 (ok), 24-Май-20, 21:44   –1 +/
Ты хоть писал на плюсах? Пользовался сишными библиотеками?

Они и в расте есть, в небезопасных участках, ибо иначе никак порой.

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

238. Сообщение от Аноним (222), 24-Май-20, 21:46   –1 +/
Закрытый или фичи свои? Вроде нет
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #235 Ответы: #247

239. Сообщение от topin89 (ok), 24-Май-20, 21:47   +1 +/
Вполне может

https://chromium-review.googlesource.com/q/project:experimen...

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

240. Сообщение от Аноним (240), 24-Май-20, 21:51   +1 +/
> Так xz оно сжимается, какой ещё gz? Gz в 2 раза больше.

Не в два, а где-то в 1⅓. Но ладно, чертяка, уговорил -- пусть будет xz -6 или даже xz -9 и дровина для интеграшки intel, давай уже ссылку.

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

Это прекрасно, что не взлетело. Как это отменяет реальность (и перечисленные пункты).
Есть тот же zig, иногда пихаемый тут каким-то анонимом (так я и вышел на него - но в отличие от 95% любительских поделок - оно вполне неплохо рабочее(!), развиваемое(!), с минимальным рантаймом и даже более-менее продуманное в смысле использования наработок теории типов и прочих вещей (это если брать отличия от того же nim, где понадерганно отовсюду понемногу)).
C Tier1
https://ziglang.org/#Support-Table
учитывая, что пилиться это в одно рыло - очень даже неплохой результат. Так - может выглядеть альтернатива.


> Остальное +- макросами разруливается. Ты ещё пожалуйся на типизацию в ассемблере.

Я пожаловался, аноним (ожидаемо) рассказал что "все норм" -  что дальше? Дженерики от этого так и не появились.
Жирноплюсы - это не альтернатива си, это чуть ли не эталон другой крайности.

> Очень многое в си является сахаром для ассемблера, собственно он ведь и задумывался как кроссплатформенная альтернатива асму.

Очень многое в си является легаси из древнемохнатых семидесятых. Инструменты (в том числе и для написания компилятора) с тех пор изменились, теория типов - особенно сильно подтянулась где-то в конце 80х - начале 90х.
Так батхертящая некоторых местных ржавчина - это в том числе и демка новых теоретических и практических достижений компиляторостроения. Одно только вычисление  (aliasing model/pointers, причем, емнип, частично даже в unsafe) - довольно интересная и забористая штука.
А от вот задумки си -- "близости к железу", давно осталась дырка от бублика. Скорее даже забавный эффект, когда производители железа (интель) ориентируется и подстраивается под генерируемый основными компиляторами код.
https://queue.acm.org/detail.cfm?id=3212479
> C Is Not a Low-level Language
> Your computer is not a fast PDP-11.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #208 Ответы: #326

241. Сообщение от JL2001 (ok), 24-Май-20, 21:53   +2 +/
> не помнишь сколько пруфов было от джавистов как жабка рвет C++ в
> пух и прах?

вы как-то нездорово циклитесь на Java, она вас покусала или в детстве обидела?

речь о вон тех примерах кода на rust, C и C++ и времени их выполнения
причём для каждого теста там несколько реализаций на каждом языке

где там синтетика или подтасованные цифры?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #181 Ответы: #248

242. Сообщение от JL2001 (ok), 24-Май-20, 21:54   +/
> не помнишь сколько пруфов было от джавистов как жабка рвет C++ в
> пух и прах?

и что, те пруфы опровергли или таки реально рвёт, пусть и на определённых алгоритмах?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #181 Ответы: #269, #426

243. Сообщение от Аноним (243), 24-Май-20, 21:55   +/
Но если не брать плюсы, то как тогда быть в "Си с классами"? В C классов нет. Разве что вспомнить про Objective-C.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

245. Сообщение от Аноним (243), 24-Май-20, 21:58   –1 +/
+100500 Вот это да, это пора сделать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

246. Сообщение от Аноним (240), 24-Май-20, 21:58   –2 +/
>> Просто кинь ссылку на современное пятое ядро для amd64
> я дам ссылку.
> не совсем что бы к самому "современному", возможно даже не к "пятому"
> и не для амуде и даже не на 2, а аж 4...

Т.е. ссылку абсолютно мимо темы. Яснопонятно.

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

Т.е. ты ни прочитать тему, ни сделать нормальное и логичное объяснение, как твое "я дам, правда там не совсе" вяжется с аргументацией вопроса в этой ветке
> > C и есть монстр.
> Разве? Можно примеры?

не осилил, зато сумел прочитать между строк и приписать мне какую-то фигню?


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

247. Сообщение от th3m3 (ok), 24-Май-20, 22:01   +2 +/
Они любят пилить свои стандарты, а общепринятые - плохо поддерживают. В итоге, все браузеры умеют, а Сафари не торопится поддерживать, что умеют другие, пилит что-то своё. Поэтому, он сейчас занимает трон IE.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #238 Ответы: #252

248. Сообщение от Аноним (222), 24-Май-20, 22:01   +/
Java в свое время была темой насколько ожесточенных споров, что Rust и рядом не валялся, вот я и вспомнил...

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

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

249. Сообщение от Michael Shigorinemail (ok), 24-Май-20, 22:02   –1 +/
> И Сишный препроцессор убрать

Долой макросы, всё руками колотить и каждый раз в каждом месте менять!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54 Ответы: #270, #272

250. Сообщение от JL2001 (ok), 24-Май-20, 22:03   +/
>>Это должен делать компилятор на худой конец интерпретатор. Кодогенерация опять же.
> ну и какой тогда нахрен zero-cost abstraction?

так в рантайме ж получается zero-cost?

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

251. Сообщение от Аноним (243), 24-Май-20, 22:04   +1 +/
Это военная тайна.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #231

252. Сообщение от Аноним (222), 24-Май-20, 22:04   –1 +/
HTML5 и CSS3 поддерживают, ECMAScript в последних редакция поддерживают, HTTP всех версий заверенных нотариальным скриншотом IETF поддерживают... Чего тебе еще надо?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #247

253. Сообщение от Аноним (253), 24-Май-20, 22:09   –1 +/
> chromium на rust перепишут или выкинут в пользу движка firefox ?

Ну что только не сделают, чтобы не нанимать на хорошую зарплату грамотных программистов, а нанимать макакокодеров криворучек, и по результатом которых потом грешить на Си и плакаться, что на xRust долго и дорого переписывать!
Но они таки что-нибудь придумают в эту сторону, раз появляются такие статьи - "это ЖЖЖ неспроста!"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #275, #307, #331, #335, #357

254. Сообщение от Аноним (254), 24-Май-20, 22:10   –1 +/
С++, конечно, знатный уродец, но ничего другого пока нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #277

256. Сообщение от Аноним (243), 24-Май-20, 22:13   +1 +/
>Казалось бы, что может быть проще: free(p); p = NULL;
>А потом один раз if (p == NULL) goto out;

А не лучше ли было бы объявить в LibC эту free(p) deprecated и предлагать вместо неё free(&p), которая сама перед выходом делает *p = NULL; ?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #343, #344, #408

257. Сообщение от растоман (?), 24-Май-20, 22:16   –2 +/
> А как это будет на Расте?

unsafe {
тажехерня
}

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #169 Ответы: #274, #285

258. Сообщение от proninyaroslav (ok), 24-Май-20, 22:18   –1 +/
> но любой человек в решете воды не наносит

Разве C/C++ имеет какие то архитектурные дыры или дыры безопасности? Да, есть UB, есть ручное управление памятью, нет проверки границ массива, есть возможность выстрелить в ногу другими способами, но это регламентировано языком. И если язык разрешает такие вольности, а разработчик всё равно использует его, то вся ответственность лежит на разработчике и винить надо только его самого. Иначе не используйте этот язык (хотя чисто технически и экономически не всегда возможно, поэтому C/C++ будет ещё долго использоваться, а разработчики продолжать винить сам язык)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #226 Ответы: #268

259. Сообщение от Аноним (243), 24-Май-20, 22:25   +1 +/
Гугелю бы присмотреться к D. Границы массивов в нём проверяются, тоже есть @safe. В последнюю версию 2.092 эталоннго компилятора добавили владение/заимствование. Зато, в отличие от Rust, у него с синтаксисом и объектностью всё красиво.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #264, #458

260. Сообщение от Аноним (243), 24-Май-20, 22:28   +/
Safari - код закрыт. Значит, оно только ваше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #219 Ответы: #262

261. Сообщение от Вы забыли заполнить поле Name (?), 24-Май-20, 22:29   +/
Новость от гугла попахивет желтизной. Не хватает конкретной информации о том, где именно были проблемы. Просто кодовая база довольно большая с большим кол-вом сторонних библиотек и от перехода на прикладного код на rust тот же openssl не станет безопаснее.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #318

262. Сообщение от Аноним (222), 24-Май-20, 22:29   –1 +/
Chrome код закрыт и шо?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #260 Ответы: #267

263. Сообщение от JL2001 (ok), 24-Май-20, 22:30   +/
>> но любой человек в решете воды не наносит
> Как будем с поверхностным натяжением, со следующего года отменим или немедленно?

никак
раскалим решет0 до 4к кельвинов (там на днях как раз новый материал на 4к сделали) и вручим разработчику как инструмент для переноса воды

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

264. Сообщение от Вы забыли заполнить поле Name (?), 24-Май-20, 22:31   +1 +/
Александреску, залогинтесь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #259 Ответы: #266

265. Сообщение от Аноним (243), 24-Май-20, 22:31   +/
Как будто в Rust нет unsafe.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #218 Ответы: #283

266. Сообщение от Аноним (243), 24-Май-20, 22:32   +/
Александреску же ушёл из проекта год назад.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #264 Ответы: #286

267. Сообщение от Аноним (243), 24-Май-20, 22:35   +/
Chromium открыт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #262 Ответы: #271

268. Сообщение от JL2001 (ok), 24-Май-20, 22:37   +/
>> но любой человек в решете воды не наносит
> Разве C/C++ имеет какие то архитектурные дыры или дыры безопасности? Да, есть
> UB, есть ручное управление памятью, нет проверки границ массива, есть возможность
> выстрелить в ногу другими способами, но это регламентировано языком. И если
> язык разрешает такие вольности, а разработчик всё равно использует его, то
> вся ответственность лежит на разработчике и винить надо только его самого.
> Иначе не используйте этот язык (хотя чисто технически и экономически не
> всегда возможно, поэтому C/C++ будет ещё долго использоваться, а разработчики продолжать
> винить сам язык)

не имеет дыр

C/C++ замечательный мультиархитектурный ассемблер
и поверх ассемблера должен быть более человекоориентированный и умный (автоматезированный) язык

а для написания таких монструозных программ как браузер (куча протоколов, разнородных и противоречивых поддерживаемых стандартов, куча возможностей и функционала, даже встроенный язык! и не один!!) - не предназначен

если бы люди на C/C++ писали драйвера (даже - только части дров), планировщики, менеджеры памяти - а не вот это вот всё остальное - может даже яблони на марсе уже б цвели

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #258 Ответы: #302, #377

269. Сообщение от Аноним (222), 24-Май-20, 22:39   –1 +/
в циклах жаба рвет, ну и там где можно выжать из конкретного железа всю мощь(за счет оптимизации машинного кода под конкретное железо на котором крутится jvm), а из C++ машинный код генерится максимально обобщенно под некий абстрактный x86-64 комп
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #242

270. Сообщение от Аноним (222), 24-Май-20, 22:52   +1 +/
видимо мусье не знаком с макросами и не понимает, что их в си используют не как функции или другие способы группировки кода, а как способ метапрограммирования вместо шаблонов которых в си нет, а в C++ есть и спрашивается а нахрена в C++ макросы? инлайн функции которыми хоть как то можно оправдать макросы давно есть и в С/C++, разве что для ассемблерных вставок оставить в урезанном виде без макрофункций и дифайнов
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #249

271. Сообщение от Аноним (222), 24-Май-20, 22:54   –1 +/
WebKit открыт
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #267 Ответы: #280

272. Сообщение от Аноним (222), 24-Май-20, 22:57   +/
уродливые инклуды чего стоят?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #249

273. Сообщение от Аноним (273), 24-Май-20, 22:59   –1 +/
На компе с 4гиг оперативы вкладка почему-то жрет на 15% больше чем на компе с 16гиг. Показания одного проц.манагера (Process Hacker) на двух системах - 1: Win7x64, 2: Win10x64
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #209 Ответы: #313

274. Сообщение от Аноним (222), 24-Май-20, 23:01   –4 +/
Истину глаголит
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #257

275. Сообщение от JL2001 (ok), 24-Май-20, 23:01   –3 +/
>> chromium на rust перепишут или выкинут в пользу движка firefox ?
> Ну что только не сделают, чтобы не нанимать на хорошую зарплату грамотных
> программистов, а нанимать макакокодеров криворучек, и по результатом которых потом грешить
> на Си и плакаться, что на xRust долго и дорого переписывать!
> Но они таки что-нибудь придумают в эту сторону, раз появляются такие статьи
> - "это ЖЖЖ неспроста!"

на C/C++ писать грамотно нельзя, запрещено законами физики: или C/C++, или грамотно
https://www.opennet.ru/openforum/vsluhforumID3/120718.html#24

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

276. Сообщение от Аноним (243), 24-Май-20, 23:02   +/
Даёшь систему команд без косвенной адресации! Это избавит от необходимости низкоуровневой работы с памятью. :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149

277. Сообщение от JL2001 (ok), 24-Май-20, 23:03   +/
> С++, конечно, знатный уродец, но ничего другого пока нет.

D, rust, и остальные, с кем я мало знаком, но готовые жить на микроконтроллерах

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #254 Ответы: #298

279. Сообщение от Аноним (243), 24-Май-20, 23:05   –2 +/
С++ придумали не они.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166 Ответы: #284, #294

280. Сообщение от Аноним (243), 24-Май-20, 23:06   +/
Но в стагнации.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #271 Ответы: #295, #296

281. Сообщение от Аноним (222), 24-Май-20, 23:07   +2 +/
От крестов не уйти, не спрятаться, они найдут тебя и накажут за все...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166

282. Сообщение от Аноним (282), 24-Май-20, 23:07   –1 +/
А че хаять ручное управление памятью? При нем хотя бы высвобождение аллоцированного в хипе участка детерминировано, в отличие от "сборки мусора". У C++ прописана в стандарте memory model и выработана куча бестпрактисов, как работать с ним так, чтобы не подрываться каждые 5 минут. Если выработана привычка работать с ресурсами через RAII и набита рука на смартпоинтерах, то все не так плохо, как тут пишут. Уж точно лучше, чем ситуация на работе, когда Teamcity CI после суток аптайма мог уйти в denial of service на 15-20 минут в разгар рабочего дня. Спрашиваем у дево псов, че такое, отвечают что у JVM GC случится stop-the-world, чет-то там собирает, ждите. Тьфу. А если говорить про Rust, то бесспорно, у него есть 2 ништяка - это borrow checker и named lifetimes, но memory model стандартизированной пока нет, что плохо. Да и работу пока найти сложно на нём. Но очевидно, что еще лет через 5-10, при наличии полноценной спеки, его будут требовать знать в каждой подворотне, где пишут что-то околосистемное. Уж больно круто, когда zero-cost abstractions действительно такие и большинство вещей можно поймать в compile-time.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #176 Ответы: #293, #299

283. Сообщение от JL2001 (ok), 24-Май-20, 23:08   –1 +/
> Как будто в Rust нет unsafe.

в Java тоже есть и в C# - только все прикладники и весь энтерпрайз его в жизни не встречал, и в rust так же будет

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #265 Ответы: #287

284. Сообщение от Аноним (222), 24-Май-20, 23:08   +4 +/
C++ вообще вещь в себе, создавался как костыль к Си, таким и остается до сих пор, правда с оговоркой что стал костылем всего и вся
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #279

285. Сообщение от JL2001 (ok), 24-Май-20, 23:09   +/
>> А как это будет на Расте?
> unsafe {
> тажехерня
> }

https://www.opennet.ru/openforum/vsluhforumID3/120718.html#283

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

286. Сообщение от JL2001 (ok), 24-Май-20, 23:11   +/
> Александреску же ушёл из проекта год назад.

а куда ушёл?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #266 Ответы: #289

287. Сообщение от Аноним (222), 24-Май-20, 23:12   +1 +/
ну так товарищ выше не шарит шо есть низкоуровневые либы которые пишутся на сях и крестах, а есть высокоуровневые ЯП которые их юзают через стандартные обвязки, иначе говоря прикладник практически никогда не будет копаться в кишках либ, а только их юзать
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #283

288. Сообщение от Аноним (222), 24-Май-20, 23:16   +/
"Си с классами" это не про ООП и присущие ему фичи типа наследования, полиформизма, а про тупую группировку функций в классы, ака структуры
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #360

289. Сообщение от Аноним (243), 24-Май-20, 23:20   +1 +/
Наверное, неточно выразился: "Андрей Александреску покинул пост заместителя руководителя отдела языка программирования D" https://habr.com/ru/post/471950/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #286

293. Сообщение от Аноним (222), 24-Май-20, 23:33   –1 +/
Просто растоманы не понимают, что для каждой сферы свой инструмент... Нужно тебе постоянно общаться с си-кодом напрямую без магических unsafe бери C++, хочешь писать быстро и выдавать производительный код бери Java/C#, хочешь писать еще быстрее, но более медленный код, бери пистон или пых(МИНЗДРАВ НЕ РЕКОМЕНДУЕТ), хочешь писать скрипты для линух бери bash, но ни как не C++, а если тебе нужно таблички почекать бери awk
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #282 Ответы: #422

294. Сообщение от JL2001 (ok), 24-Май-20, 23:33   +/
> С++ придумали не они.

ах если бы из-за этого все, кто не придумал C++, перешли на rust - было бы чудно

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #279 Ответы: #297

295. Сообщение от Аноним (222), 24-Май-20, 23:34   –1 +/
Apple переходит на Blink?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #280

296. Сообщение от Аноним (222), 24-Май-20, 23:35   –1 +/
Apple стагнирует?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #280 Ответы: #314

297. Сообщение от Аноним (222), 24-Май-20, 23:37   –1 +/
Haskell технологичнее раста
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #294 Ответы: #327, #384

298. Сообщение от Аноним (222), 24-Май-20, 23:40   –1 +/
смысл брать C++ для микроконтроллеров? Это как бы сфера си, как и дела ядерные, драйвера и прочая близость к железу
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #277

299. Сообщение от JL2001 (ok), 24-Май-20, 23:43   +/
> Уж точно лучше,
> чем ситуация на работе, когда Teamcity CI после суток аптайма мог
> уйти в denial of service на 15-20 минут в разгар рабочего
> дня. Спрашиваем у дево псов, че такое, отвечают что у JVM
> GC случится stop-the-world, чет-то там собирает, ждите.

чёт мне подсказывает, что ваши девопсы вам напиз^w обманули

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

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

300. Сообщение от dmitriygessus (ok), 24-Май-20, 23:43   –1 +/
> Разработчики проекта Chromium проанализировали 912 опасных и критических уязвимостей,
> выявленных в  стабильных выпусках Chrome с 2015 года, и пришли
> к выводу, что 70% из них были вызваны небезопасной работой с
> памятью (ошибками, при работе с указателями в коде на  C/C++).
> Половина из данных проблем (36.1%) вызвана обращениями к буферу, после освобождения
> связанной с ним памяти (use-after-free)...
> Подробнее: https://www.opennet.ru/opennews/art.shtml?num=53019

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

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

301. Сообщение от Аноним (301), 24-Май-20, 23:51   +1 +/
Хороший движок, но вроде параллелится так себе, да и не хотят законно открывать. Разработка нелегальными энтуазистами идёт плохо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

302. Сообщение от proninyaroslav (ok), 24-Май-20, 23:55   +/
Язык с GC для этих целей не подойдёт (по крайней мере для движка браузера), а жизнеспособных альтернатив C/C++ на тот момент не было. Ну а теперь переписывать полностью на другой язык дорого, так как время - деньги и найти спецов которые знают какой нибудь Rust сложно и дорого (ну или в мозиллу обратится)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #268

303. Сообщение от Оно им (?), 24-Май-20, 23:59   –1 +/
Не выкинут. Влажные мечты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

306. Сообщение от Shevchuk (ok), 25-Май-20, 00:03   +2 +/
Если с абсолютными значениями у вас так же, как с относительными, то не утруждайтесь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #233

307. Сообщение от виндотролль (ok), 25-Май-20, 00:07   +2 +/
> на хорошую зарплату грамотных программистов
> на Си
> макакокодеров криворучек

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #253 Ответы: #350, #363, #471

308. Сообщение от Анонимemail (308), 25-Май-20, 00:13   +/
Да, но. В свое время java(безопасный, переносимый) должна былы исправить недостатки и заместить c/c++. Но "не шмогла". Не смогли и последователи и предшественники всегда оказывается за "безопасность" нужно чем-то платить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #387

310. Сообщение от Аноним (311), 25-Май-20, 00:38   +1 +/
С заморозкой. В исключении что будешь делать? Прерывать работу программы, или пытаться дальше криво работать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #143 Ответы: #329, #340

311. Сообщение от Аноним (311), 25-Май-20, 00:40   +/
А дальше?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154 Ответы: #416

312. Сообщение от Аноним (311), 25-Май-20, 00:45   +/
MS уже сдался. Свой движок выкидывают.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #213 Ответы: #498

313. Сообщение от Anonymou (?), 25-Май-20, 00:45   +/
Ставьте 16гб на 10ку тоже
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #273

314. Сообщение от Аноним (243), 25-Май-20, 01:02   +1 +/
Какое мне дело до вашего Яббла?
А по поводу движков. Открываю в браузере на QtWebkit https://html5test.com/ - 342 из 555, открываю тоже в браузере на QtWebengine (код портируется из Blink) - 528 из 555. Результат на лицо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #296 Ответы: #321, #323, #324

315. Сообщение от Ilya Indigo (ok), 25-Май-20, 01:03   –2 +/
> 70% проблем с безопасностью в Chromium вызваны ошибками при работе с памятью

%{Подавляющее большинство} проблем с безопасностью в %{любое ПО} вызваны ошибками при работе с памятью.

И что сказать-то этой новостью хотел Гугл?

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

316. Сообщение от Аноним (243), 25-Май-20, 01:12   +/
>Короче, копите деньги на память. В ближайшем будущем она вам понадобиться.

Понадобится гораздо раньше из-за мартышколюбви к Electron.

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

317. Сообщение от Аноним (243), 25-Май-20, 01:13   –1 +/
DDG тоже стал неплохо искать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #201 Ответы: #386

318. Сообщение от Аноним (321), 25-Май-20, 01:18   –3 +/
Ага, новость шикарная. Все проблемы хрома - other, other-memory-related и use after free. Очень содержательная классификация!

Пускай хоть на питоне переписывают, раз такие смелые... запасаемся попкорном.

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

319. Сообщение от Аноним (319), 25-Май-20, 01:25   +1 +/
> память, ручное управление которой и дает эту скорость по сравнению с безопасными языками

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

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

320. Сообщение от Аноним (319), 25-Май-20, 01:27   +2 +/
Нет, ибо в С++ вообще один ансейф. А в расте только где надо - т.е. как sudo
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #170

321. Сообщение от Аноним (321), 25-Май-20, 01:31   +/
> QtWebengine

Он сильно с другой архитектурой. QtWebkit не так уж и плох, но там придется многое вручную переизобретать (всякие кодеки прикручивать и web-приложения нормально поддерживать), да и QScript вместо полноценного яваскрипта (тормоз и вряд ли 100% соответствует стандарту).

В QtWebengine почти полноценный хромиум запущен, это лучше на совместимости сказывается.

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

322. Сообщение от cool29 (?), 25-Май-20, 01:42   +1 +/
Ну в любом случае лисой можно пользоваться хотя бы на 8 гигах памяти. Но chromium это просто чудовище ненасытное: как-то на 8 вкладках сожрал у меня около 5 гб. После этого основной браузер у меня лиса.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #188

323. Сообщение от Аноним (222), 25-Май-20, 02:09   –2 +/
Ого, ну если Qt перешел на Blink в качестве КОМПОНЕНТА для отображения веб-содержимого который используется чуть менее чем нигде кроме как в браузерах, то все победа? На Qt мир клином сошелся? Чего же на Qt не пилят браузеры, в отличии от GTK который к слову юзает WebKit в тех же целях? Детские у тебя какие то суждения
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #314 Ответы: #411

324. Сообщение от Аноним (222), 25-Май-20, 02:32   +/
Приведенный тобой сайт шляпа полная, я только зашел и оказывается chrome не поддерживает стиминговое видео ни MPEG-DASH, ни HLS вот это поворот...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #314

325. Сообщение от Anonymoustus (ok), 25-Май-20, 02:58   +/
Глянул и я скуки ради. И вот ведь что интересно:


$ smem -tc 'pid name command pss' -P 'chromium'

  PID Name                     Command                          PSS
4393 chromium                 /usr/lib/chromium/chromium      9027
7912 smem                     /usr/bin/python /usr/bin/sm     9228
4390 chromium                 /usr/lib/chromium/chromium     80674
--------------------------------------------------------------------
    3                                                         98929


$ sudo smem -tc 'pid name command pss' -P 'chromium'

  PID Name                     Command                          PSS
4392 chrome-sandbox           /usr/lib/chromium/chrome-sa      115
7913 sudo                     sudo smem -tc pid name comm     1198
4395 chromium                 /usr/lib/chromium/chromium      1234
4393 chromium                 /usr/lib/chromium/chromium      9025
7914 smem                     /usr/bin/python /usr/bin/sm    10498
4551 chromium                 /usr/lib/chromium/chromium     11905
4531 chromium                 /usr/lib/chromium/chromium     12768
4544 chromium                 /usr/lib/chromium/chromium     16197
4534 chromium                 /usr/lib/chromium/chromium     39575
4646 chromium                 /usr/lib/chromium/chromium     40501
4677 chromium                 /usr/lib/chromium/chromium     43886
4666 chromium                 /usr/lib/chromium/chromium     53088
4390 chromium                 /usr/lib/chromium/chromium     80672
4526 chromium                 /usr/lib/chromium/chromium     87549
--------------------------------------------------------------------
   14                                                        408211

Почему, кто знает?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #225 Ответы: #397

326. Сообщение от Anonymoustus (ok), 25-Май-20, 03:06   +/
Про Си всё и так понятно ещё с семидесятых. Но с тех пор придумали и развили до всяческих высот Аду, в которой решены чуть ли не все проблемы и опасТности программирования. Что же вам мешает её использовать? А, скобочки не те… Ну так жрите кактусы и не возмущайтесь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #240

327. Сообщение от Аноним (327), 25-Май-20, 04:07   +/
Я пока не добрался до Haskell, да и о функциональщине пока имею только общее представление, но насколько знаю, он совсем не zero-cost, имеет GC и непредсказуем по производительности. А так да, будет круто, если мы однажды доживем до времени, когда компиляторы функциональных языков будут собирать оптимальный машинный код и можно будет писать кроссплатформенные программы на функциональных языках, агностичных к архитектуре компьютера. Но пока, мне кажется, это все еще исследовательское направление, а Rust как промежуточный шаг: он уже впитал в себя горы функциональных концепций в сравнении с другими императивными языками.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #297

328. Сообщение от Аноним (328), 25-Май-20, 05:59   –1 +/
Rust не бывает без unsafe, так что будут те же 70% ошибок с памятью, но в unsafe-коде. И да, в стандартной библиотеке он тоже есть, так что всякие #![forbid_unsafe] для основного крейта не считаются.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #371, #382

329. Сообщение от Аноним (329), 25-Май-20, 06:43   –1 +/
Прерывать и слать отчёт разработчикам. А что?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #310

330. Сообщение от Аноним (330), 25-Май-20, 06:45   –2 +/
Т.е. Вы специально закладываете в программный проект критические и трудно локализуемые ошибки при работе с памятью, а именно - выделяете ее, но явно не освобождаете, либо освобождаете, но затем используете, забыв об этом, либо используете больше, чем выделяете?

Именно поэтому пишу свой код сам.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #163 Ответы: #372

331. Сообщение от Анончик (?), 25-Май-20, 07:03   +4 +/
Ты размер кодовой базы хромиума видел? В таком огромном проекте, да без использования умных указателей, иметь уязвимости будет любой проект с трижды топовыми цпп разработчиками.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #253 Ответы: #351

332. Сообщение от qetuo (?), 25-Май-20, 07:44   –1 +/
Просто не пиши баги, и в программе их не будет!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101 Ответы: #370

334. Сообщение от Аноним (330), 25-Май-20, 07:49   +/
> в общем не указывайте программисту, что он должен делать

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

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

335. Сообщение от Аноним (335), 25-Май-20, 07:52   –2 +/
> Ну что только не сделают, чтобы не нанимать на хорошую зарплату грамотных программистов

Ну так наняли кучу вебмакак, которым вообще лучше бы рассаду выращивать, зато дешево. Казалось бы. Правда потом оказалось что клетку чистить за этими господами надо много, регулярно и это почему-то не дешево.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #253 Ответы: #388, #454

336. Сообщение от Аноним (335), 25-Май-20, 07:53   +/
Он внезапно не си. Некоторые сишные конструкции в C++ вообще низя.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

337. Сообщение от Аноним (330), 25-Май-20, 07:55   +2 +/
Это когда вместо изучения и грамотного использования одного инструмента начинаются обвинения в низком его качестве и скачки в сторону. Если потенциальный кандидат заявляет, что "это нельзя сделать на С, в Linux etc" (подставить нужное), но можно на Delphi, Visual Basic etc (подставить нужное), на этом профессиональное общение заканчивается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

338. Сообщение от Аноним (335), 25-Май-20, 07:56   +/
> Ты исходник ядра видел хоть раз в жызни?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113 Ответы: #406

339. Сообщение от Аноним (339), 25-Май-20, 07:58   +/
> ... то ли в дебиане лохи, то ли очередные фантазии почти-трехсотого^W очередного анонима опеннета.

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

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

340. Сообщение от Аноним (340), 25-Май-20, 08:03   +/
Это зависит от контекста. Универсальных правил тут нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #310

341. Сообщение от Аноним (340), 25-Май-20, 08:11   +/
Объект замыкание должно отвалиться с исключением или игнорированием события, в зависимости от контекста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90

342. Сообщение от Аноним (340), 25-Май-20, 08:12   –3 +/
unsafe{
    main(){
    ///весь остальной код
    }
}
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #169

343. Сообщение от Аноним (340), 25-Май-20, 08:14   +/
Это уже будет другой язык.
С++ занято
С# тоже
гммм

пусть будет
C$

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #256 Ответы: #390

344. Сообщение от Аноним (344), 25-Май-20, 08:21   +3 +/
а смысл, если у тебя один и тот же адрес может храниться в нескольких p?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #256 Ответы: #389

348. Сообщение от Сишникemail (?), 25-Май-20, 08:44   +/
Можно ж для любого языка с указателями сделать borrow cheker как в расте и рефакторить по кусочкам, дёшево и надёжно.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #392, #459

350. Сообщение от Lex (??), 25-Май-20, 08:55   +1 +/
Самое забавное, что т.н «грамотному сишнику» для его «грамотности в Сях» нередко требуется меньший поток  знаний, чем т.к макакакодеру... да и знания у первых устаревают гораздо медленней( да и получают действительно годные сишники, а не симакаки, ооочень неплохо )

Выучил, что такое указатель - оно и через 20 лет указателем и будет.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #307 Ответы: #364, #410

351. Сообщение от Fracta1L (ok), 25-Май-20, 08:57   +2 +/
Не мешай маням фантазировать про мифических сишников-технобогов)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #331 Ответы: #472

352. Сообщение от Fracta1L (ok), 25-Май-20, 09:01   –1 +/
Вспомнился пародийный псевдодокументальный фильм "ноги это атавизм", рекомендую)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142

353. Сообщение от Lex (??), 25-Май-20, 09:04   +3 +/
Невольно один из заказчиков вспомнился..

«Тестирование !? А зачем нам тестирование - вы сразу без ошибок делайте! У нас и так сроки поджимают, на тестирование времени нет»

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

354. Сообщение от Аноним (358), 25-Май-20, 09:50   –1 +/
В C++ есть std::vector, std::make_shared, std::make_unique. Вот и попробуй с ними добиться use after free. malloc и free в C++ не нужны, так как даже если нужен указатель, он может быть получен из управляемых классов.
В Си уже не всё так просто, нужно ещё следить за копированием указателей. Ведь p = nullptr очевидно не обнулит копии указателя.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #365

355. Сообщение от лютый жабби__ (?), 25-Май-20, 09:53   –1 +/
>одна вкладка -3GB оперативы

Бред ) у меня РАМы 4ГБ, я бы заметил.

Таб Опеннет ест мегабайт 150.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #359

357. Сообщение от Отражение луны (ok), 25-Май-20, 10:05   +2 +/
Всегда забавно видеть как джуны (в лучшем случае) рассуждают на тему грамнотности програамистов)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #253

358. Сообщение от Аноним (358), 25-Май-20, 10:07   –1 +/
Там должен быть не указатель, а shared_ptr. И тогда в описанной ситуации обработчик обратится к объекту отключенному от дерева и у которого parent == null. Правда тут мы получим классическую утечку памяти. В идеале менеджер сообщений должен отработать только после изменения и пересчёта DOM.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90

359. Сообщение от Аноним (359), 25-Май-20, 10:11   +1 +/
Я и 10 видел. Открываешь какой-нибудь 9гаг или реддит  с тумблером, вот и нет твоих 4гб. А это только 1 таб.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #355

360. Сообщение от Аноним (359), 25-Май-20, 10:14   –1 +/
> "Си с классами" это не про ООП и присущие ему фичи типа
> наследования, полиформизма, а про тупую группировку функций в классы, ака структуры

Это лучше, чем строить ООП поверх struct. А почему нельзя сделать наследование и полиморфизм? Было бы желание. Но они просто не нужны.

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

361. Сообщение от Аноним (361), 25-Май-20, 10:16   +3 +/
Типичный профан. Причем тут программисты? Ты видел нонешниее количество свойств для одного узла DOM? А дизайнеров видел современных генерящих какое-то бесконечное количество классов? Вот к ним и отправляй зуд. Программисты самое плохое что сделали, так это пул памяти и то это не точно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

362. Сообщение от Аноним (358), 25-Май-20, 10:41   +1 +/
> 70% из них были вызваны небезопасной работой с
> памятью (ошибками, при работе с указателями в коде на  C/C++).

Однако забыли упомянуть, что абсолютное большинство этих дыр появились из за новомодных фич, которым в обозревателе интернета не место. FileAPI,WebRTC,Video,Audio кодеки,Sqlite и т.д.

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

363. Сообщение от Аноним (364), 25-Май-20, 10:42   +/
Если сишник получает меньше, то он плохой сишник. Потому что хорошие сишники пишут движки браузеров, ядро Linux/Windows и прочее. Ты знаком с такими хорошими сишниками?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #307 Ответы: #409

364. Сообщение от Аноним (364), 25-Май-20, 10:46   +1 +/
bind еще не потерял актуальность, потому что кое-что из ф-ций браузера через function и реализацию "псевдо классов через function" сделано. И чтобы поведение этого поменять для нестандартных случаев надо знать что такое bind. Еще много проектов с кодом 3 летней давности с bind и никто не будт переписывать тысячи строк кода в проекте который приносит деньги, по крайней мере не на проекте в проде и всегда нужны будут люди которые фиксят баги и делают мелкие доработки пока параллельно пишется прототип на новых технологиях.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #350

365. Сообщение от Аноним (330), 25-Май-20, 10:47   +/
Чем Вас не устраивает что-то типа

...

long *x;

...

x = new long [n];

...

delete [] x;


Нужен массив - выделили память (в примере не производится проверка результата - реально это нужно делать), использовали, освободили память (до выхода из функции).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #354 Ответы: #378, #380

366. Сообщение от Аноним (366), 25-Май-20, 10:47   –3 +/
Выкинуть JIT и использовать нормальные ядра ОС.
Ответить | Правка | Наверх | Cообщить модератору

367. Сообщение от Аноним (330), 25-Май-20, 10:52   +/
Совершенно верно. Когда мы говорим о Linux, то понимаем, что делают его не кучка гиков, а IBM.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148

368. Сообщение от Lex (??), 25-Май-20, 10:53   +/
В подобных случаях( правда, на уровне того же веба и жс ) обычно на удаление вешают функцию, которая вначале очищает все обработчики событий( всм, относящиеся к конкретному объекту ) и, уже только после этого, выпиливается сам объект( мб, даже по какому-нибудь колбэку аля onDone / onSuccess, притом, с проверкой актуальности самой ссылки на удаляемый объект, т.к в вебе может и несколько запросов на удаление прилететь.. что-то где заглючило или браузер лаганул и в этот момент юзер кучу раз нажал на соотв кнопку итп )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90

369. Сообщение от JL2001 (ok), 25-Май-20, 10:56   +/
>> 70% проблем с безопасностью в Chromium вызваны ошибками при работе с памятью
> %{Подавляющее большинство} проблем с безопасностью в %{любое ПО} вызваны ошибками при работе
> с памятью.
> И что сказать-то этой новостью хотел Гугл?

что C/C++ так себе и надо брать что-то другое

зы: *любое ПО на C/C++

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #315 Ответы: #381

370. Сообщение от Аноним (370), 25-Май-20, 11:01   +1 +/
Всегда так делаю.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #332 Ответы: #402, #403

371. Сообщение от JL2001 (ok), 25-Май-20, 11:12   +/
> Rust не бывает без unsafe

бывает без

> так что будут те же 70% ошибок
> с памятью, но в unsafe-коде.

искать ошибки гораздо проще в 10 строках чем в 100500 строках в 105 файлах

> И да, в стандартной библиотеке он
> тоже есть, так что всякие #![forbid_unsafe] для основного крейта не считаются.

у вас жаваскриптеры пишут на C, так как интерпретатор JS использует libc

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

372. Сообщение от JL2001 (ok), 25-Май-20, 11:15   +1 +/
> Именно поэтому пишу свой код сам.

простите, но всёж линукс/виндовс/другую прокладку между вами и железом тоже написали сами?

остальной бред не комментирую

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

373. Сообщение от Аноним (373), 25-Май-20, 11:31   +/
Заведомо ложная информация
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

374. Сообщение от Аноним (373), 25-Май-20, 11:35   +/
Теперь про std::vector::at процитируй
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #125

375. Сообщение от Аноним (375), 25-Май-20, 11:37   +/
А класс Marhall тебе зачем, тогда?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #221

376. Сообщение от Аноним (373), 25-Май-20, 11:38   +/
Квалифицированные прогеры не могли такое сказать, потому что понимают что C и C++ это разные языки. Похоже кто-то врёт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #161

377. Сообщение от Аноним (373), 25-Май-20, 11:39   –1 +/
Абсолютно некомпетентное мнение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #268

378. Сообщение от Аноним (373), 25-Май-20, 11:45   +/
Тем что так писать не обязательно, можно написать безопасно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #365

379. Сообщение от Аноним (373), 25-Май-20, 11:48   +/
Сам себя не похвалишь — никто не похвалит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

380. Сообщение от Аноним (358), 25-Май-20, 11:54   +1 +/
if(error) throw MyException();
И Ваш массив навсегда остаётся в памяти. Причём эта строчка необязательно должна быть в той же функции, достаточно, чтобы программист не стал обрабатывать это исключение по незнанию или из уверенности, что его никогда не будет. finally в C++ нет! Именно по этому среди локальных переменных не должно быть ни одной, требующей ручного освобождения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #365 Ответы: #421

381. Сообщение от Аноним (373), 25-Май-20, 11:57   +1 +/
На C++ и даже на C — можно писать безопасно, проблема google в старой кодовой базе в которой код написан как не попадя и переписывать они видимо не хотят.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #369 Ответы: #445

382. Сообщение от Аноним (373), 25-Май-20, 11:59   +/
Именно так, первое что сделают гуглопрограмисты — это понатыкают везде unsafe и через 5 лет будет такая же статья уже про rust.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #328

383. Сообщение от Ordu (ok), 25-Май-20, 12:40   +1 +/
Раст не позволит хранить ссылку в двух разных местах просто так. Там без явного или неявного использования unsafe не удастся выкрутится. Например, в std есть Rc, который может приделать к объекту счётчик ссылок, и при помощи unsafe он может клонировать и удалять ссылки таким образом, чтобы после удаления последней, вызвать free на объект. Если использовать Rc, то тебе самому не надо прибегать к помощи unsafe (всё это спрятано в Rc, наружу Rc выставляет safe интерфейс).

В C++ есть shared_ptr, который делает то же самое. Разница лишь в том, что C++ с радостью позволит тебе сделать всё то же самое без shared_ptr, и получить use-after-free, в то время как rust заставит тебя обратить внимание на сложившуюся ситуацию и совершить какие-то телодвижения.

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

384. Сообщение от user (??), 25-Май-20, 12:59   +1 +/
Слишкам радикальное изменение, лучше начать с Ocaml. Он точно подходит для 90% браузера.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #297 Ответы: #393

385. Сообщение от bOOster (ok), 25-Май-20, 13:12   –1 +/
Блин, пока корпорации не вернут профессиональных программистов в разработку, хотя-бы на контроль кода можно будет цитировать только басню Крылова с оконцовкой
«Чтоб музыкантом быть, так надобно уменье
                   И уши ваших понежней, —
                   Им отвечает Соловей, —
                   А вы, друзья, как ни садитесь,
                   Всё в музыканты не годитесь».

И все эти дрязги с рустом и т.п. как раз напоминают пересаживание с места на место. Прям как в басне.

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

386. Сообщение от Аноним (-), 25-Май-20, 13:12   +1 +/
Посмотрите где хостится DDG. Посмотрите кто у него Главный Партнер По Рекламе. DDG - это ручная собачка одной из самых влиятельных IT корпораций планеты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #317 Ответы: #391

387. Сообщение от X5asd5 (?), 25-Май-20, 13:13   +1 +/
> Да, но. В свое время java(безопасный, переносимый) должна былы исправить недостатки и заместить c/c++. Но "не шмогла".

ну потому что не в ту сторону начали "исправлять недостатки" :-) ..

это с таким же успехом как и Java -- можно было бы и сказать что и "Microsoft Visual Basic" должен был заменить C/C++ .

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

388. Сообщение от Аноним (388), 25-Май-20, 14:22   –1 +/
>> Ну что только не сделают, чтобы не нанимать на хорошую зарплату грамотных программистов
> Ну так наняли кучу вебмакак, которым вообще лучше бы рассаду выращивать, зато
> дешево. Казалось бы. Правда потом оказалось что клетку чистить за этими
> господами надо много, регулярно и это почему-то не дешево.

Я вот, агроном по образованию, для себя выращиваю рассаду дома, гляда на работу современных вэбмакак, я бы даже поливать сорняки их не подпустил!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #335 Ответы: #473

389. Сообщение от Аноним (243), 25-Май-20, 14:32   +/
Но в таком разе и предложение от https://www.opennet.ru/openforum/vsluhforumID3/120718.html?n... тоже не очень много имеет смысла.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #344

390. Сообщение от Аноним (243), 25-Май-20, 14:35   +1 +/
Ну прям, добавили/удалили фунций в библиотеку, заметьте, без внесения изменений в синтаксис языка, и вот уже новый язык.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #343

391. Сообщение от Аноним (243), 25-Май-20, 14:39   +/
Но прон ищет, независимо от партнёров.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #386

392. Сообщение от JL2001 (ok), 25-Май-20, 14:49   +/
> Можно ж для любого языка с указателями сделать borrow cheker как в
> расте и рефакторить по кусочкам, дёшево и надёжно.

в rust это в момент компиляции считается почти во всех случаях
так можно сделать для любого языка с указателями?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #348 Ответы: #394

393. Сообщение от Аноним (393), 25-Май-20, 15:23   +1 +/
Ну как бы Rust изначально и был диалектом ML, а его первый компилятор был написан на OCaml. Но понятно, что опеннетовскому илитарию на все это пофиг, потому что Rust - модный и молодежный, а значит автоматически не тру, OCaml - нишевый и малоизвестный, а значит автоматически тру. Ясно-понятно. И кто тут еще хипстер?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #384

394. Сообщение от Аноним (394), 25-Май-20, 15:28   +/
> почти во всех случаях

Если «почти во всех случаях», то очевидно что да, разница будет только в количестве этих случаев.

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

395. Сообщение от Аноним (395), 25-Май-20, 15:47   +3 +/
Каких "профессиональных"?
Более профессиональных чем написали дыру Heartbleed в OpenSSL?
Или в memcpy для Glibc (ARM)?
Или в FreeBSD (недавно целая пачка была, большая часть из-за памяти)?
Или... или... да ведь тысячи их!

Потому что каждый раз когда такая лажа случается, сразу начинается "это не настоящий C++ программист, вот настоящий бы сделал все правильно!"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #385 Ответы: #460

396. Сообщение от Аноним (398), 25-Май-20, 16:04   –1 +/
потому что обезьянки не умеют с памятью. а не c\C++ они толко свой *script могут.
Ответить | Правка | Наверх | Cообщить модератору

397. Сообщение от Shevchuk (ok), 25-Май-20, 16:06   +/
Подозреваю, другие процессы могут быть запущены под другим пользователем. Чтобы прояснить ситуацию, попробуйте

sudo smem -atP '^/usr/lib/chromium'

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

398. Сообщение от Аноним (398), 25-Май-20, 16:08   +1 +/
std::vector::at
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126

400. Сообщение от Аноним (400), 25-Май-20, 16:37   +1 +/
не перепишут на rust,  нет ни виджетов ни инфраструктуры, толко на вставки rust и годится
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #428

401. Сообщение от Alex (??), 25-Май-20, 17:24   –1 +/
А для этого есть CI с инструментированными автотестами
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114

402. Сообщение от Аноним (-), 25-Май-20, 17:36   +/
Мы бы наняли Вас, но у нас денег нет на хороших программистов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #370

403. Сообщение от Аноним (-), 25-Май-20, 17:37   +/
С Уважением, Гугл (Не прилипляется имя почему-то)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #370

404. Сообщение от Нолекс (?), 25-Май-20, 17:45   +1 +/
Его в попытках сделать Firefox OS тоже уже давно сломали. А что-то путное сделать так и не шмогли...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #167

405. Сообщение от Нолекс (?), 25-Май-20, 18:12   –1 +/
Давно бы свалил на Midori или NetSurf (вчера, кстати вышла 3.10), если бы не нужда по работе в некоторых дополнениях...

Что FF, что Chrome раздуют браузер до неполноценной ОС, а потом жалуются...

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

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

Спору нет, языки с чистильщиками памяти найдут своё применение. Но почему бы тогда сразу не использовать интерпретаторы? Тот же мышезмей (Python) имеет привязки чуть ли не к каждому пакету GNU. Bash вообще родной для *nix. Нет, нам надо выпендриться и использовать что-то инородное...

На дотнет пусть переходят. Приспичит, форкану нужные мне плагины под один из вышеупомянутых и пересяду. Задолбали эти сопли. Шёл 2 десяток 21 века...

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

406. Сообщение от VINRARUS (ok), 25-Май-20, 18:27   +/
>> Ты исходник ядра видел хоть раз в жызни?
> Не мешает опенвртшникам делать из него 900 кило бинарь, при том что
> там куча фич. Более жирный бинарь видите ли на мелкой флехе
> класть некуда - там партиции нарезаны и для кернела своя может
> быть. Больше чем партиция кернел тупо невозможно флешануть. Вот и собирают...

А можна ЯП не путать с машынным кодом?
Ведь и жест с 3х пальцев намногопроще и понятнее за стишок на 20 строк.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #338 Ответы: #474

407. Сообщение от коржик (?), 25-Май-20, 18:32   +1 +/
n лет пишу под дотнет, ни разу в unsafe не вляпался. Ни разу не напоролся на UB, разве что только численное переполнение и многопоточка. Но это другая история.

Вот сейчас сижу и думаю, как люди вообще живут с UB. Какие нервы нужно иметь чтобы бороться с ним.

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

408. Сообщение от Аноним (442), 25-Май-20, 18:37   +/
Ну да, был у тебя:
void free(void *ptr);
А теперь будет:
void free(void *ptr);
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #256 Ответы: #424

409. Сообщение от виндотролль (ok), 25-Май-20, 18:52   +2 +/
> пишут движки браузеров, ядро Linux/Windows и прочее.

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

Продали продукт → нарезали бюджет между непосредственными авторами продукта и сишниками, работа которых вот так сразу не видна.

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

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

410. Сообщение от виндотролль (ok), 25-Май-20, 19:01   +/
> Выучил, что такое указатель - оно и через 20 лет указателем и
> будет.
> Выучил, что такое контекст выполнения и bind  - и через несколько
> лет за их упоминания уже с собеседования сс.ными тряпками гонят, т.к
> с приходом подобиях классов и стрелочных функций bind-оцирк практически полностью потерял
> актуальность, а то и стал плохой практикой.

Хорошая точка зрения, справедливая.

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

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

411. Сообщение от Аноним84701 (ok), 25-Май-20, 19:28   +1 +/
>  Чего же на Qt не пилят браузеры, в отличии от GTK

Потому что ... э-э-э ... с разморозкой Вас?

https://www.opennet.ru/opennews/art.shtml?num=50362
> Релиз браузера Falkon 3.1.0, развиваемого проектом KDE

https://www.opennet.ru/opennews/art.shtml?num=52832
> Доступны web-браузеры qutebrowser 1.11.0 и Min 1.14
> Код написан на языке Python с использованием PyQt5 и QtWebEngine.

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

412. Сообщение от Оно им (?), 25-Май-20, 20:09   +/
Ну, Мидори до нормального браузера ещё как до Луны. Бажное нестабильное поделие.
Есть еще подобное - Выдра и Орёл. Нерасширяемые кривые поделки. Которые даже работать адекватно не могут в современном вэбе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #405

413. Сообщение от FixingGunsInAiremail (ok), 25-Май-20, 20:15   +1 +/
Вы так говорите, словно, если представить сферическую реализацию движка в вакууме на C#, без unsafe в более чем половине классов, этого сделать нельзя.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #227

416. Сообщение от Аноним (416), 26-Май-20, 01:50   +/
Обрабатывать его. Как в Яве, Питоне и прочем
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #311

417. Сообщение от Аноним (416), 26-Май-20, 02:13   +/
> Я склонен полагать, что продвинутый c++ разработчик сам все эти проверки вставляет, чтобы яйца себе не отстрелить.

Скорее избегает доступа к массиву по индексу. Например с помощью range for. А если не удается - да, надо проверять индексы, смещения, размеры.

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

418. Сообщение от Андрей (??), 26-Май-20, 03:14   +/
> например, это может быть замыкание, которое захватило указатель на кусок памяти представляющий эту кнопку.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #429

419. Сообщение от Андрей (??), 26-Май-20, 03:20   +1 +/
> Где надо вызывать free -- это очень сложный вопрос, на который не всегда можно ответить статически, иногда ответ надо искать динамически.

К счастью, в автоматизации этого направления делаются успехи. Две недели назад была новость:

https://www.opennet.ru/opennews/art.shtml?num=52903
> Релиз набора компиляторов GCC 10
> Основные изменения:
> Добавлен экспериментальный режим статического анализа "-fanalyzer", который выполняет ресурсоёмкий межпроцедурный анализ путей выполнения кода и потоков данных в программе. Режим способен на этапе компиляции выявлять такие проблемы, как ... обращение к освобождённым блокам памяти, ... Применение нового режима для кода OpenSSL уже позволило выявить опасную уязвимость. https://www.opennet.ru/opennews/art.shtml?num=52782

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103 Ответы: #420, #433

420. Сообщение от Совершенно другой аноним (?), 26-Май-20, 08:44   +1 +/
И до этого были такие программы, как cppcheck, Pvs-studio и куча других. И в clang есть встроенный статический анализатор, некоторым даже нравится, но как сказал предыдущий оратор - всё не так просто. Опять-же до C11 основным императивом языка С было - программист знает, что делает. Т.е. если хочет стрельнуть в ногу - пусть стреляет, может ему так надо. Сейчас это немного поменялось. Хотя по-мне - подход был правильный, просто при этом действительно наращивать разные анализаторы и прочее. Т.е. хотите скорость, для критичных именно по скорости вещей - вам нужен Assembler, C, C++. Нужна безопасность - берите другой язык, ту-же Java.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #419

421. Сообщение от Аноним (340), 26-Май-20, 08:45   +1 +/
finally можно иммитировать перехватом всех исключений и повторной генерацией.

типа
try{
...
}catch(Exception ex)
{
free_arroy();
throw ex;
}

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #380 Ответы: #423

422. Сообщение от Аноним (340), 26-Май-20, 08:51   +/
и получается 100500 зависимостей по библиотекам, которые, по сути, детают одно и тоже.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #293

423. Сообщение от Аноним (358), 26-Май-20, 09:19   +1 +/
Только вот С++ не C# и преобразование std::out_of_range в std::exception необратимо. Невозможно отправить дальше тоже исключение, что было обработано общим обработчиком. Пример http://cpp.sh/4dx7q
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #421 Ответы: #481

424. Сообщение от Совершенно другой аноним (?), 26-Май-20, 09:32   +/
Тогда уже:
void freezero(void**);
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #408

425. Сообщение от Аноним (425), 26-Май-20, 10:21   +2 +/
Какие, нафиг, «Разработчики проекта Chromium»? Это «Chromium security team».

«The Chromium security team aims to provide Chrome and Chrome OS users with the most secure platform to navigate the web, and just generally make the Internet a safer place to hang out. We work on solutions for the biggest user / ux security problems, drive secure architecture design and implementation projects for the Chromium platform, find and help fix security bugs, help developers to create more secure apps, and act as a general security consulting / review group for the larger Chromium project».

Профессиональными разработчиками они не являются и не являлись. Их писанина — стандартный набор SJW-бредятины.

«We still have a lot of code that violates this rule. For example, until very recently, all of the network stack was... We now have the network stack in its own dedicated process, and have begun the process of reducing that process' privilege».

Перевожу: ни сделано н..я, кроме переусложнения архитектуры на ровном месте, но мы «движемся».

Судя по всему, настоящие разработчики относятся к «творчеству» security team положительно. Ложат, т.е. Точнее — кладут.

Короче говоря, это — частное мнение одной отдельно взятой команды внутри одного из проектов Гугла, и на истину ну уж никак не претендует.

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

426. Сообщение от Аноним (426), 26-Май-20, 12:11   +1 +/
В java есть jit, jvm в рантайме собирает статистику и делает ассемблерный блоки, который может инлайнить, во время исполнения делать подмены в стеках вызовов. Т.е. в отличии от компилятора который не располагает данными как код выполнятся у jit есть некоторое преимущество в виде частотного анализа. Только это jit нужно "разогревать", потому бенчмарки на жабе делают хитро - выполняют несколько прогонов и например 10-ю итерацию уже засчитывают в результаты.
Фактически я думаю "порвать" может на синтетическом примере, если написать код нормально на сях а потом хитро мудро на java с анализом того что выкидывает jit :)

В кажется уже в 2004 году уже были статьи что Java быстрее сей, тогда переписали движок quake2 на java и средний fps был чуть выше чем у оригинала.

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

427. Сообщение от Аноним (-), 26-Май-20, 13:24   +/
Такое впечатление, что уволенные из Мозиллы по причине финансовых проблем разработчики, которые так и не смогли переписать больше пары процентов кода лисы на расте, просто хотят устроиться в Гугл.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #431

428. Сообщение от Аноним (-), 26-Май-20, 13:28   –1 +/
Главное, что раст, как показала уже многолетняя практика, подходит для больших проектов не лучше, чем Си.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #400 Ответы: #461

429. Сообщение от Ordu (ok), 26-Май-20, 13:39   +/
>> например, это может быть замыкание, которое захватило указатель на кусок памяти представляющий эту кнопку.
> Похоже, если нужно захватывать указатель, то нужно захватывать указатель на этот указатель.
> Если уж добвалять синтаксический сахар, так не оставлять при этом дыр.

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

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

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

430. Сообщение от Аноним (-), 26-Май-20, 13:41   +/
Саттера слушать не хотят, хотят продолжать плевать на лучшие практики и писать на своём недоC++ без исключений и с raw-указателями. https://pspdfkit.com/blog/2020/the-cpp-lifetime-profile/
Ответить | Правка | Наверх | Cообщить модератору

431. Сообщение от Anonim (??), 26-Май-20, 14:07   +/
Конечно, хотят. Там зарплаты больше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427

432. Сообщение от Anonim (??), 26-Май-20, 14:37   +/
Сейчас вообще перестали мочь писать код грамотно, минимальным по весу, по размеру, по жручести, никто за собой не подчищает, не оптимизирует. Раздуют программу, как дирижабль. И хрен с ним, и так схавают.
Тока давай обновления строчить каждый день. Не до оптимизации тут.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #462

433. Сообщение от Ordu (ok), 26-Май-20, 14:43   +1 +/
>> Где надо вызывать free -- это очень сложный вопрос, на который не всегда можно ответить статически, иногда ответ надо искать динамически.
> К счастью, в автоматизации этого направления делаются успехи.

Да, успехи делаются. Но если ты попробуешь раст, ты увидишь где эти успехи заканчиваются. Борроу-чекер может вычислить много чего, но он ограничивает. Иногда очень болезненно. Например, есть у меня структура, в ней много нодов. Допустим, каждый нод содержит int. Я хочу получить N нодов (для выбора каждого нода у меня своё правило), после чего провернуть какие-то манипуляции над ними, которые изменят все эти N нодов. То есть я хочу прописать в каждый нод новое значение, которое будет вычислено на основании текущих значений в этих N нодах.

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

Ограничение на количество активных мутабельных указателей нужно, потому что благодаря этому ограничению обеспечивается консистентность памяти. Но на выходе я получаю гемморрой на, казалось бы, ровном месте: в моём случае никак не могут возникнуть проблемы с консистентностью памяти, даже если я расчехлю unsafe и сделаю это в C'шном стиле. Я это знаю, но борроу-чекер не видит этого.

Борроу-чекер работает как задумано лишь в относительно простых случаях. Да этих случаев -- подавляющее большинство, но всё равно появляются такие случаи, в которых надо либо отключать borrow-checker unsafe'ом и думать своей головой, либо городить огород мозголомных API для решения простых задач.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #419 Ответы: #442, #444

434. Сообщение от Аноним (99), 26-Май-20, 16:07   –2 +/
пусть перепишут хром на единственном нормальном языке программирования, на C#
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #439, #441, #476

438. Сообщение от Аноним (99), 26-Май-20, 16:28   –1 +/
STL не позволяет выстрелить себе в ногу, просто программисты не умеют им пользоваться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

439. Сообщение от Аноним (439), 26-Май-20, 16:51   +1 +/
Спасибо, интернет эксплорер они уже переписали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #434

440. Сообщение от Аноним (441), 26-Май-20, 17:14   –2 +/
Все говорят что раст безопаснее, но никто не говорит почему. Борроу чеккер не допилили, больше причин почему он безопаснее С++ я не знаю.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #443, #464

441. Сообщение от Аноним (441), 26-Май-20, 17:14   +/
Спасибо, посмеялся
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #434

442. Сообщение от Аноним (442), 26-Май-20, 17:37   +1 +/
Это вот так чтоли?

https://play.rust-lang.org/?version=stable&mode=debug&editio...

Компилируется...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #433 Ответы: #446

443. Сообщение от Аноним (439), 26-Май-20, 17:56   +/
А чего там в борроу чекере не доделано? Там другая проблема: этот борроу чекер настолько замусорил синтаксис и усложнил язык, что он может претендовать на звание самого ужасного и неудобного. При том, что там даже нет ни исключений, ни наследования поведения (читай ООП).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #440 Ответы: #463

444. Сообщение от red75prim (?), 26-Май-20, 18:08   +1 +/
> Я хочу получить N нодов [...], после чего провернуть какие-то манипуляции над ними, которые изменят все эти N нодов.

И проблема тут в том, что эти N указателей могут алиаситься. Делаем *node[0]=1; *node[1]=2; и получаем, что неожиданно *node[0] теперь тоже 2, так они указываются на один и тот же инт.

Если разные ноды принадлежат разным частям структуры (то есть алиасинг исключён), раст позволит это сделать:

struct Foo { a: Vec<i32>, b: Vec<i32> }

fn nodes(a: &mut Foo) -> Vec<&mut i32> {
    vec![&mut a.a[0], &mut a.b[0]]
}

Если алиасинг действительно нужен, то используется не i32, а Cell<i32> - zero-cost обёртка над i32 говорящая компилятору, что нам действительно нужен мутабельный алиасинг. Потом используем шареные ссылки на Cell<i32> и меняем данные через них. Борроу-чекер доволен.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #433 Ответы: #447, #450

445. Сообщение от red75prim (?), 26-Май-20, 18:15   +2 +/
Да что там, даже на ассемблере можно писать безопасно. Главное найти эталонных программистов. А с этим сложности. Если их достать из фирменной вакуумной упаковки с надписью "УМВР", то они быстро портятся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #381

446. Сообщение от Ordu (ok), 26-Май-20, 18:24   +1 +/
> Это вот так чтоли?
> https://play.rust-lang.org/?version=stable&mode=debug&editio...
> Компилируется...

Потому что в этом случае борроу-чекер справляется. Он в состоянии проанализировать код, и придти к выводу, что ref_a и ref_b ссылаются на непересекающиеся куски памяти.

Если код сделать чуть сложнее он споткнётся:

https://play.rust-lang.org/?version=stable&mode=debug&editio...

Может со временем борроу-чекер станет умнее и научится справляться и с этой ситуацией. Но прикинь теперь, что get_node принимает не идентификатор нода, а лямбду, и работает как std::iter::Iterator::find. И внутри лямбды я вызываю функцию находящуюся в другом крейте, которая вообще (с точки зрения компилятора) хрен знает что делает. Я применяю такой get_node дважды, и получаю две ссылки внутрь структуры. Борроу-чекер вообще уже никак не может проверить, что ref_a и ref_b ссылаются на непересекающиеся куски памяти. На самом деле это и мне может быть неочевидно в каких-то случаях, и мне отдельно придётся размышлять над этим.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #442 Ответы: #448

447. Сообщение от Аноним (442), 26-Май-20, 18:29   +1 +/
> Если алиасинг действительно нужен, то используется не i32, а Cell<i32> - zero-cost
> обёртка над i32 говорящая компилятору, что нам действительно нужен мутабельный алиасинг.
> Потом используем шареные ссылки на Cell<i32> и меняем данные через них.
> Борроу-чекер доволен.

...
И ловим косяки (если будут) в рантайме.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #444 Ответы: #449

448. Сообщение от Аноним (442), 26-Май-20, 18:40   +1 +/
> Может со временем борроу-чекер станет умнее и научится справляться и с этой
> ситуацией. Но прикинь теперь, что get_node принимает не идентификатор нода, а
> лямбду, и работает как std::iter::Iterator::find. И внутри лямбды я вызываю функцию
> находящуюся в другом крейте, которая вообще (с точки зрения компилятора) хрен
> знает что делает. Я применяю такой get_node дважды, и получаю две
> ссылки внутрь структуры. Борроу-чекер вообще уже никак не может проверить, что
> ref_a и ref_b ссылаются на непересекающиеся куски памяти. На самом деле
> это и мне может быть неочевидно в каких-то случаях, и мне
> отдельно придётся размышлять над этим.

Конечно можно щас это всё на глупый borrow checker списать, но как до вызова некой неведомой какой лямбды можно было бы понять что она заимствовать будет? Здесь не проверятор тупой, а разработчик хочет невозможного.

Есть гораздо понятнее случаи, когда оно не справляется. Например если структура с дженериком, который в impl задан как Self. Если есть лайфтайм на структуре, которым типизировано хотя бы одно поле - скомпилировать не выйдет, потому что лайфтайм к дженерику не пришить. А он там есть в impl, да задать никак, в синтаксисе не предусмотрено.
А это очень даже надо, чтобы тесты можно было писать, задавая все зависимости через дженерики и передавая в тестах туда заглушки и имитаторы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #446 Ответы: #451

449. Сообщение от red75prim (?), 26-Май-20, 18:52   +1 +/
Дык, что написали, то и получим. Хотели мутабельный алиасинг, получили мутабельный алиасинг. Паник в коде с Cell<i32> не будет, могут быть логические ошибки.

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

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

450. Сообщение от Ordu (ok), 26-Май-20, 18:59   +1 +/
Я понимаю в чём проблема, и я не говорю, что нельзя выкрутится в этой ситуации. Я говорю, что придётся городить огород мозголомных API.

Например, заворачивать все ноды в RefCell, чтобы динамически проверять правила борроу-чекера. (фууу, динамически). Можно подумать о том, какие именно наборы нодов мне надо выбирать, и создать способ описания набора, передавать в структуру это описание и лямбду, с тем чтобы она сделала бы нужную выборку нодов, и передала бы в мою лямбду эту выборку массивом.

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

> Cell<i32> - zero-cost обёртка над i32

Она лишь условно zero-cost. Она zero-cost в том смысле, что не надо заморочного рантайма, и что она добавляет O(1) сложности. Но это не значит, что она обходится бесплатно. Если ты попробуешь сделать для одного и того же RefCell<T> два borrow, то получишь панику: RefCell при создании ссылки проверяет не существует ли ещё одной. Точнее два borrow прокатят, но если один из них будет borrow_mut, то вот тогда ты получишь панику.

Кроме того, все эти Option<Arc<RefCell<SomeThing>>> иногда начинают напрягать. Особенно когда это накладывается на Result<Result<T, E1>, E2>.

> Если разные ноды принадлежат разным частям структуры (то есть алиасинг исключён), раст позволит это сделать:

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #444 Ответы: #452

451. Сообщение от Ordu (ok), 26-Май-20, 19:07   +1 +/
> Конечно можно щас это всё на глупый borrow checker списать, но как
> до вызова некой неведомой какой лямбды можно было бы понять что
> она заимствовать будет? Здесь не проверятор тупой, а разработчик хочет невозможного.

Это не всегда "невозможное". Бывают случаи, когда я могу доказать, что создание двух ссылок не нарушит никаких инвариантов, а борроу-чекер не может доказать. И это же самый гнусный вариант: если я заткну борроу-чекер unsafe'ом, то потом изменения в программе могут привести к тому, что моё доказательство станет неверным, и я могу забыть проверить это доказательство. А если я буду разруливать по правилам борроу-чекера, то мне придётся переходить к динамическим проверкам borrow, что тоже сакс: мало того, что это дополнительные тормоза, так ещё и падения программы, происходящие при определённом стечении обстоятельств.

Но так или иначе, мне кажется, мы сходимся к одному и тому же: несмотря на прогресс в статическом анализе кода, пока ещё есть пределы возможностей всех этих статических проверок, есть куда улучшаться, и rust позволяет эти пределы пощупать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #448 Ответы: #453

452. Сообщение от red75prim (?), 26-Май-20, 19:22   +1 +/
Cell именно что zero-cost.

> борроу-чекер самым тупым образом не справляется

Не тупым. Информацию о том, что структура позаимствована частично нужно где-то хранить. Хранить в рантайме дорого, значит нужно хранить в типе возвращаемого значения. Что именно заимствуется зависит от входных параметром, значит выходный тип должен зависеть от входного значения. А это уже dependent types и намного сложнее.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #450 Ответы: #455

453. Сообщение от Аноним (442), 26-Май-20, 19:42   +/
> Это не всегда "невозможное". Бывают случаи, когда я могу доказать, что создание
> двух ссылок не нарушит никаких инвариантов, а борроу-чекер не может доказать.
> И это же самый гнусный вариант: если я заткну борроу-чекер unsafe'ом,
> то потом изменения в программе могут привести к тому, что моё
> доказательство станет неверным, и я могу забыть проверить это доказательство. А
> если я буду разруливать по правилам борроу-чекера, то мне придётся переходить
> к динамическим проверкам borrow, что тоже сакс: мало того, что это
> дополнительные тормоза, так ещё и падения программы, происходящие при определённом стечении
> обстоятельств.

Ты конкретного примера пока не привел. Ладно, давай я попробую что-то очевидное.
Для любого положительного целого i, ссылка на диапазон в массиве вида [0..(i/2)] очевидно не будет пересекаться с ссылкой вида [(i/2)..].
Почему бы это не проверять в borrow checker? Ну хотя бы для всех случаев, когда множество из одно range не пересекается с другим?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #451 Ответы: #456

454. Сообщение от burjui (ok), 26-Май-20, 19:45   +1 +/
По-вашему, это вебмакаки пишут движок браузера на C++? Это что-то новое, никогда о таком не слыхал. Таки как вы себе это представляете?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #335

455. Сообщение от Ordu (ok), 26-Май-20, 19:51   +1 +/
> Cell именно что zero-cost.
>> борроу-чекер самым тупым образом не справляется
> Не тупым. Информацию о том, что структура позаимствована частично нужно где-то хранить.
> Хранить в рантайме дорого, значит нужно хранить в типе возвращаемого значения.
> Что именно заимствуется зависит от входных параметром, значит выходный тип должен
> зависеть от входного значения. А это уже dependent types и намного
> сложнее.

Именно что тупым. Мне не требуется более сложной системы типов в расте, для того, чтобы рассуждать лучше борроу-чекера о данной ситуации. И борроу-чекеру dependent types особо не нужны -- он же может в пределах одной функции придти к выводу, что создаётся две независимые ссылки внутрь структуры? И может он это сделать без dependent types. Его тупость проявляется в том, что его способность рассуждать не может пересекать границ функций.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #452 Ответы: #457

456. Сообщение от Ordu (ok), 26-Май-20, 19:56   +1 +/
> Ты конкретного примера пока не привел.

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

> Для любого положительного целого i, ссылка на диапазон в массиве вида [0..(i/2)]
> очевидно не будет пересекаться с ссылкой вида [(i/2)..].
> Почему бы это не проверять в borrow checker? Ну хотя бы для
> всех случаев, когда множество из одно range не пересекается с другим?

И почему же? Для этого в slice есть split_at_mut, потому как борроу-чекер не умеет так, но я не задумывался, почему он этого не умеет, и почему бы его не научить этому.

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

457. Сообщение от red75prim (?), 26-Май-20, 20:15   +1 +/
Это будет не рассуждение, а "натыкать вариантов для частных случаев". Линейный конгруэнтный метод генерации случайных чисел, может выводить уникальные индексы из какого-то диапазона пока не начнёт повторяться. Использовать N этих индексов будет безопасно, ссылки не будут пересекаться. Этот случай тоже добавлять в borrow checker?

Доказать отсутствие алиасинга в общем случае невозможно. Тривиальные случаи решаются тривиально: например не использовать отдельную функцию get_node, чтобы borrow-checker видел, что берутся разные элементы. Нетривиальные случаи доказываются вручную и изолируются за безопасным интерфейсом.

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

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

458. Сообщение от burjui (ok), 26-Май-20, 20:16   +/
С синтаксисом всё нормально, ага. Положим, мы хотим написать код с теми же свойствами, что и в Rust по умолчанию (безопасность, производительность, вот это всё):
void foo(Bar b) pure nothrow @safe @live @nogc ...
Радует глаз примерно как картины в стиле кубизма.

ООП - это вообще какой-то наркотик от программирования. Начинается всё с Dog is a subclass of Animal, а заканчивается полной неспособностью написать даже простейший алгоритм без объектов, даже если они там нужны, как собаке - хобот. Так что спорное "преимущество".

И да, у D, в отличии от Rust, всё не очень красиво с его багованным фронтендом компилятора, полусделанными фичами, а также слабыми vision, integrity, type theory и прочими умными словами. Уж извините за англицизмы - профдеформация. Как бы я раньше ни любил D, сейчас в нём просто нет смысла, когда есть альтернативы лучше и надёжнее, а D всё ещё не созрел после почти 20 лет разработки.

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

459. Сообщение от burjui (ok), 26-Май-20, 20:23   +1 +/
Так что же тогда его не сделают для C++? Не потому ли, что это потребует тотальной переработки языка с выбрасыванием legacy и сломает почти все приплюснутые проекты так, что придётся переписывать больше половины кода?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #348 Ответы: #467

460. Сообщение от burjui (ok), 26-Май-20, 20:38   +2 +/
Некоторые особо приплюснутые мне напоминают драчунов-теоретиков, которые верят в эффективность айкидо в уличной драке и изучают ножевой бой. В голове у них - сплошь влажные фантазии об идеальных героях из художественной литературы, которые всё всегда делают правильно. Вот придёт настоящий программист - и всё-всё напишет так правильно, что не будет ни одного бага, а код будет легко читаем, быстр и легко расширяем. Осталось только его найти. А лучше десятка два, чтобы проект дошёл до альфы чуть ранее, чем через 30 лет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #395

461. Сообщение от burjui (ok), 26-Май-20, 20:39   +1 +/
Аргументируйте, будьте так любезны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #428 Ответы: #466

462. Сообщение от burjui (ok), 26-Май-20, 21:04   +1 +/
Вам не приходило в голову, что современное ПО намного функциональнее и сложнее, чем 20 лет назад? Я не говорю о поделках вроде калькулятора на electron, разумеется. К примеру, первые компиляторы генерировали отвратительный, по современным меркам, машинный код, потому что представляли собой простые прямолинейные трансляторы, просто неспособные, в силу своего устройства, на какой-либо анализ. Понадобились десятилетия работы лучших программистов и математиков, чтобы разработать алгоритмы, которые могут сгенерировать хороший код (лучше, чем напишут даже топовые программисты) за приемлемое время, а также соответствующие структуры данных и промежуточные представления кода (то же SSA). Как результат, хороший компилятор уже не напишешь в 2000 строк, и работает он медленнее, но и результат лучше на порядок, и иногда и на несколько.

Что-то я сомневаюсь, что нормальный человек готов отказаться от благ цивилизации и, грубо говоря, пересесть на DOS, где всё написанное на C и асме "летает", но имеет 10% современного функционала.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #432 Ответы: #482

463. Сообщение от burjui (ok), 26-Май-20, 21:30   +1 +/
Да не особо усложнил, честно говоря. Использовать ссылки везде и всюду никто не заставляет, и часто с точки зрения логики алгоритма или производительности это даже не имеет смысла. В подавляющем большинстве случаев никаких затруднений borrow checker не вызывает, просто у него довольно крутая кривая обучения, но это лечится практикой. Я уже давно пишу правильный с его точки зрения код на автомате, а если он иногда и грозит пальцем, то это стопроцентно мой косяк, который в том же C++ просто молча выстрелит в ногу, и не обязательно сразу. Короче, обычный навык, который нужно тренировать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #443

464. Сообщение от burjui (ok), 26-Май-20, 21:50   +/
Кто "все"? В официальной документации предельно понятно разжёвано, как и почему. Просто вам лень читать, и у вас предвзятое мнение о языке, не в последнюю очередь сформированное местными консерваторами и мифическими гуру C++, для которых всё новое - говно для вебмакак. Другой синтаксис - глаза вытекают, другая идеология - вытекают мозги. Лучше ведь сидеть на жопе ровно и следующие 10 лет бодро шагать по граблям привычным маршрутом. Зато можно хвастаться, как ты ловко умеешь от них уворачиваться, вдыхая аромат очередной свеженапечатанной книги "55 секретов профессионального граблехода".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #440 Ответы: #465

465. Сообщение от Аноним (-), 26-Май-20, 22:22   +/
Чувак, ты в курсе сколько между C++98 и С++20 было редакций стандарта C++ и в чем они заключались? Когда твой раст наберет хотя-бы десятую часть кодовой базы плюсов, при этом не потеряв способность меняться и приобретать новые свойства, сохраняя преемственность, тогда и поговорим.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #464 Ответы: #502

466. Сообщение от Аноним (-), 26-Май-20, 22:30   –1 +/
Посмотри на флагманский растопроект - вечнонедоделанный падучий бажный servo. Остальные не лучше. Всё, что больше небольшой библиотечки - такое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #461

467. Сообщение от Сишникemail (?), 26-Май-20, 22:43   +1 +/
Естественно, код придётся переписывать, но не на другой язык и не весь сразу. Отдельный от компилятора чекер может выборочно исходники проверять, соответственно будет safe и unsafe часть проекта, прямо как известно где.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #459

468. Сообщение от mail (?), 26-Май-20, 22:56   +/
>> без классов

С классами 10.000.000 строк кодa вообще никогда не раскуришь.

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

469. Сообщение от Аноним (469), 27-Май-20, 08:04   +/
Скорее JS везде понапихают, его там и так уже есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

471. Сообщение от Аноним (469), 27-Май-20, 08:08   +/
> грамотные сишники получают сильно меньше чем макакокодеры

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

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

472. Сообщение от Аноним (469), 27-Май-20, 08:09   +/
Ну вот посмотришь на тебя и поверишь в то что технобоги бывают. Во всяком случае технопланктон точно бывает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #351

473. Сообщение от Аноним (469), 27-Май-20, 08:11   –1 +/
Ну вот с этим они как раз справляются. Поэтому помидоров нет, зато вот вам 2 самосвала полыни. Бесплатно. С доставкой на дом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #388

474. Сообщение от Аноним (474), 27-Май-20, 08:16   +1 +/
> А можна ЯП не путать с машынным кодом?

А можно уже наконец открыть для себя модульный подход? И при чем тут ЯП? В линухе просто дофига всего опциональное и оформлено как независимые штуки. Можно выбросить или оформить опциональным модулем. При том если совсем выбросили - этот код вообще никуда не попадает. А то что он нужен кому-то другому - может, это хорошо? Да, код поддержки RISCV никогда не будет работать на x86-64. Так его туда и не потащит никто. Его просто не будет. Равно как и драйверов железок уникальных для того RISCV SoC.

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

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

475. Сообщение от Аноним (474), 27-Май-20, 08:22   +1 +/
> По сравнению с KolibriOS - абсолютно не впечатляет.

Я бы сказал что KolibriOS абсолютно не впечатляет. Кроме разве что тем что до них доперло что писать на x86 асме было так себе идеей т.к. тут видите ли 64 бита появились и все надо переписывать, лол. И уж наверное не фанатам этой шляпы на си гавкать.

> отсутствие поддержки многопоточного и асинхронного программирования, шаблонов/дженериков,

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

> слабая типизация.

И чего? Warning пуляет. А в системных делах иногда таки объективно надо объявить бананы грушами. Другое дело что если этим злоупотреблять - станет как у яваскриптеров. Но если у тех оно автоматически, то тут надо вручную кастовать, или будет куча варнингов. Намного менее удобно - так что провоцирует делать так только когда есть хорошая причина.

Я бы скорее сказал "старые апи с дурной типизацией и реализацией".

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

476. Сообщение от Аноним (476), 27-Май-20, 12:59   +/
Ага, и ОС тоже. А потом пусть сами на нее свалят и там этим всем пользуются.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #434

477. Сообщение от Аноним (-), 27-Май-20, 15:04   –2 +/
Если бы Раст имел лицензию GPL v3+, то Гугл бы и не посмотрел в его сторону. Раст пермиссивен поэтому нравится копирастам.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #478

478. Сообщение от Аноним84701 (ok), 27-Май-20, 17:10   +1 +/
> Если бы Раст имел лицензию GPL v3+, то Гугл бы и не посмотрел в его сторону. Раст пермиссивен поэтому нравится копирастам.

А можно с этого момента поподробнее, о мудрый и всезнающий неномерной тезка?
https://github.com/sapir/gcc-rust
> Rust frontend for GCC

https://github.com/sapir/gcc-rust/blob/rust/COPYING3
> GNU GENERAL PUBLIC LICENSE
>  Version 3, 29 June 2007

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #477 Ответы: #479

479. Сообщение от burjui (ok), 28-Май-20, 01:45   +1 +/
Во-первых, это лицензия этого конкретного фронтенда, а не rustc и иже с ними.

Во-вторых:
"This is currently at a very early stage. At the time of writing, it can compile trivial functions, like:
fn my_function(x: i32) -> i32 { x }
But most language features don't work yet."
То есть, практически неюзабельно.

В-третьих, лицензия Rust потому и называется пермиссивной, что снимает обязательства по открытию кода производных работ, так что взять пермиссивные сорцы и сделать из них GPL-продукт можно, но наоборот нельзя. На это и указывает комментатор выше. Впрочем, я с ним несогласен, т.к. тот же Linux используется Google'ом, при этом имея лицензию GPL. Просто у них уже трещины в черепе от плюсовых граблей.

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

480. Сообщение от Аноним (480), 28-Май-20, 08:21   +/
https://www.openhub.net/p/chrome/analyses/latest/languages_s...

Language: C++
Code lines: 12,188,073

Вперед, переписывай.

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

481. Сообщение от Аноним (340), 28-Май-20, 11:31   +/
Какой глюк.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #423

482. Сообщение от Anonim (??), 28-Май-20, 20:42   +/
Вот поэтому и имеем то что имеем. И с каждым годом все хуже и хуже. С точки зрения качества и изготовления. Такие "блага цивилизации" с суперпуперфункционалом, который не нужен и половине пользователей. Но зато хорошее оправдание постоянных дыр, заплаток, патчей, багов и т.д. Ну как же, всё же усложняется. Только ответственность и качество работы не улучшаются. И нормального классического вэба давно нет. Там где появляются "продвинутый функционал и блага" всё почему-то превращается в помойку. :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #462 Ответы: #483

483. Сообщение от burjui (ok), 28-Май-20, 21:05   +1 +/
Главная причина превращения софта в помойку - капитализм. В условиях рынка заниматься полировкой кода невыгодно, ведь на это нужно время, которое можно потратить на прикручивание очередной фичи. Если улучшения не видны невооружённым глазом, дядя с деньгами будет недоволен производительностью разраба и предпочтёт нанять вместо него двух говнокодеров за те же деньги, которые будут молча пилить столько фич, сколько требуется для завлечения новых лохов, то есть, я хотел сказать, пользователей.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #482 Ответы: #484

484. Сообщение от Michael Shigorinemail (ok), 28-Май-20, 21:37   +/
> Главная причина превращения софта в помойку - капитализм.

А железа -- социализм?  Напомнить, как у нас практически железа-то не осталось своего?..

Ох уж мне эти политиканы мамкины.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #483 Ответы: #485

485. Сообщение от burjui (ok), 28-Май-20, 21:48   +/
Напомните, интересно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #484 Ответы: #486

486. Сообщение от Michael Shigorinemail (ok), 28-Май-20, 22:06   +/
> Напомните, интересно.

1967 год, замена своих разработок клонами (СМ и ЕС)... по сути выжил тогда только эльбрус, и то благодаря военным.

См., скажем, http://www.olap.ru/home.asp?artId=2148

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

488. Сообщение от paulus (ok), 29-Май-20, 03:42   +/
>пусть перепишут С/С++ код на расте

им больше Java нравица... Ото жесть будет ;)  

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

489. Сообщение от заминированный тапок (ok), 29-Май-20, 13:11   +/
круг по интересам
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

492. Сообщение от JL2001 (ok), 31-Май-20, 13:26   +1 +/
попалась статья несколько расширяющая/объясняющая термин "безопасность rust"
https://habr.com/ru/post/492410/
Ответить | Правка | Наверх | Cообщить модератору

493. Сообщение от J.L. (?), 31-Май-20, 18:17   +/
> Вот не надо гнать, если лиса в быту монолитности жрала на старте
> с одной вкладкой 350-380мб, то сейчас с модной многопроцессорностью сходу 500мб
> и в районе сотни мегов на каждую вкладку, помимо этого около
> сотни мегов на вспомогательные процессы лисы, так зачем врать?

3 вкладки, прогружена одна (мелкий простой сайт) (ублок, уматрикс, хттпсэвревере)

firefox.57.0.4 (ubuntu забыл какая, наверно 16.04, дебник могу предоставить) (через долгогое время после запуска, запустил и на ночь забыл)
sudo smem -tc 'pid name command pss' -P '^/usr/lib/firefox'
  PID Name                     Command                          PSS
25787 Web Content              /usr/lib/firefox/firefox -c    46268
25707 firefox                  /usr/lib/firefox/firefox      372619
--------------------------------------------------------------------
    2                                                        418887

firefox.76.0.1 (ubuntu 20.04) (сразу после запуска)
sudo smem -tc 'pid name command pss' -P '^/usr/lib/firefox'
  PID Name                     Command                          PSS
23888 Web Content              /usr/lib/firefox/firefox -c    27386
23753 Web Content              /usr/lib/firefox/firefox -c    77361
23724 WebExtensions            /usr/lib/firefox/firefox -c    95657
23573 firefox                  /usr/lib/firefox/firefox      244842
--------------------------------------------------------------------
    4                                                        445246

firefox.76.0.1 (ubuntu 20.04) (полчаса после запуска - пока опеннет в хромиуме открывал, пока комментарий искал, пока то-сё)
sudo smem -tc 'pid name command pss' -P '^/usr/lib/firefox'
  PID Name                     Command                          PSS
24499 Web Content              /usr/lib/firefox/firefox -c    27384
24412 Web Content              /usr/lib/firefox/firefox -c    77078
24461 WebExtensions            /usr/lib/firefox/firefox -c    94116
24333 firefox                  /usr/lib/firefox/firefox      173608
--------------------------------------------------------------------
    4                                                        372186
и оно продолжает падать.... 445246 411270 380679 380498 374238 372531 372186
понятия не имею как это работает

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #188 Ответы: #494

494. Сообщение от J.L. (?), 31-Май-20, 18:40   +/
>[оверквотинг удален]
>   173608
> --------------------------------------------------------------------
>     4        
>            
>            
>            
>            
>     372186
> и оно продолжает падать.... 445246 411270 380679 380498 374238 372531 372186
> понятия не имею как это работает

понятия не имею что происходит и как это работает, фаерфокс как запущен и с тех пор я его не трогаю, проверяю с консольки память и своп (своп не меняется 690-710 метров), пару раз делал окно активным
sudo smem -tc 'pid name command pss' -P '^/usr/lib/firefox'
  PID Name                     Command                          PSS
24499 Web Content              /usr/lib/firefox/firefox -c    20970
24412 Web Content              /usr/lib/firefox/firefox -c    67045
24461 WebExtensions            /usr/lib/firefox/firefox -c    81592
24333 firefox                  /usr/lib/firefox/firefox      155960
--------------------------------------------------------------------
    4                                                        325567

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #493 Ответы: #495

495. Сообщение от J.L. (?), 01-Июн-20, 10:20   +/
>[оверквотинг удален]
> 24412 Web Content          
>     /usr/lib/firefox/firefox -c    67045
> 24461 WebExtensions          
>  /usr/lib/firefox/firefox -c    81592
> 24333 firefox          
>        /usr/lib/firefox/firefox    
>   155960
> --------------------------------------------------------------------
>     4        
>     325567

оставил на ночь
sudo smem -tc 'pid name command pss' -P '^/usr/lib/firefox'
[sudo] password for jl:
  PID Name                     Command                          PSS
24499 Web Content              /usr/lib/firefox/firefox -c     5297
24461 WebExtensions            /usr/lib/firefox/firefox -c    30611
24412 Web Content              /usr/lib/firefox/firefox -c    56058
24333 firefox                  /usr/lib/firefox/firefox      185339
--------------------------------------------------------------------
    4                                                        277305

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

496. Сообщение от Аноним (496), 02-Июн-20, 09:41   +/
Мыло на шило.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

498. Сообщение от без имени (?), 03-Июн-20, 09:40   +/
Лиса давно ходит прогнувшись.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #312

499. Сообщение от без имени (?), 03-Июн-20, 09:41   +/
Смотря где ты её ищешь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #201

502. Сообщение от Аноним (502), 20-Авг-20, 23:08   +/
В Расте для этого есть редакции (Editions). Подобное хотят притащить к себе плюсовики, в виде эпох (Epochs).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #465


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

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




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

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