The OpenNET Project / Index page

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



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

"Выпуск языка программирования Hare 0.24.2"  +/
Сообщение от opennews (??), 16-Июл-24, 12:07 
Дрю ДеВолт (Drew DeVault), автор пользовательского окружения Sway, почтового клиента Aerc и платформы совместной разработки SourceHut, опубликовал выпуск языка программирования Hare 0.24.2 (номер версии образован как 0.YY.Q, где YY - две последние цифры года, а Q - номер квартала). Hare преподносится как язык системного программирования, близкий к языку Си, но проще, чем Си. Исходный код компилятора и инструментария распространяются под лицензией GPLv3, а код стандартной библиотеки под лицензией MPL (Mozilla Public License)...

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

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

Оглавление

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

1. Сообщение от Аноним (1), 16-Июл-24, 12:07   –7 +/
То же самое что TypeScript для JavaScript.
Ответить | Правка | Наверх | Cообщить модератору

2. Сообщение от Аноним (2), 16-Июл-24, 12:12   +26 +/
Посмотрел примеры хело ворлда на их сайте и понял, что этот язык мертворождён.

Не постите больше о нём новости.

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

3. Сообщение от zeecape (ok), 16-Июл-24, 12:14   +2 +/
Hare плодить не нужные языки. С - для старых профи. С++ - для молодых профи. Rust - для зумеров пока-не-но-скоро-станут-профи.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #34, #43

4. Сообщение от Ося Бендер (?), 16-Июл-24, 12:18   +4 +/
Название прикольное. харЭ, я сказал!
Проще Си, может быть только Си. Фор-ич уже добавили, ждем-с классы, модули и т.д.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #16

11. Сообщение от нах. (?), 16-Июл-24, 12:36   +1 +/
что-то вот да. Потянуло хрустом с тем же закорючко-синтаксисом но без борова.

А зачем нам неудобочитаемые закорючки вместо си - непонятно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #24, #28, #186

12. Сообщение от Аноним (12), 16-Июл-24, 12:37   +3 +/
Когда новая версия Nemerle?
Ответить | Правка | Наверх | Cообщить модератору

16. Сообщение от Аноним (16), 16-Июл-24, 12:44   +/
> Фор-ич уже добавили

где?

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

19. Сообщение от ИмяХ (ok), 16-Июл-24, 12:49   +4 +/
Не совсем мертворожден, но судя по логотипу людей написавших сойдут с ума
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

21. Сообщение от Вован (??), 16-Июл-24, 12:51   +1 +/
Почему не собирается? Такая же ошибка была и на предыдущих версиях

Syntax error: unexpected 'error' at rt/+linux/+x86_64.ha:44:34, expected '{'
make: *** [makefiles/linux.x86_64.mk:11: .cache/rt.ssa] Error 1

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

24. Сообщение от Аноним (1), 16-Июл-24, 12:53   +4 +/
Это как молодёжь говорит на своём языке. Программировать они тоже хотят на своём. Но у них на получается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #27, #99

27. Сообщение от нах. (?), 16-Июл-24, 12:57   +/
дрюша конечно молод душой, но помогите деду отмотать седую бороду от ножки стола.

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

28. Сообщение от Аноним (-), 16-Июл-24, 12:59   +/
> А зачем нам неудобочитаемые закорючки вместо си - непонятно.

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

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

31. Сообщение от nume (ok), 16-Июл-24, 13:19   +/
Снова эти let, а-а-а!!!
Ответить | Правка | Наверх | Cообщить модератору

32. Сообщение от Аноним (32), 16-Июл-24, 13:29   +/
Лучше бы sr.htом занимался.
Ответить | Правка | Наверх | Cообщить модератору

33. Сообщение от Аноним (-), 16-Июл-24, 13:31   –1 +/
Молодец Дрю!
Ответить | Правка | Наверх | Cообщить модератору

34. Сообщение от Аноним (39), 16-Июл-24, 13:36   –3 +/
Си - для любителей повылазить за буфер (других профи у меня для вас нет).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #42, #101

35. Сообщение от Аноним (35), 16-Июл-24, 13:39   –1 +/
> свалка костылей и UB?

Путаешь с С++.

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

37. Сообщение от Аноним (37), 16-Июл-24, 13:43   +/
Так в новсти же:
"Добавлен синтаксис для определения циклов "for-each", упрощающих перебор элементов массивов и срезов."
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

38. Сообщение от Аноним (37), 16-Июл-24, 13:47   +/
Дрю, давай механизм наподобие alias this из BetterC, шаблоны не хуже, если сможешь, даже лучше.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #91, #94

39. Сообщение от Аноним (39), 16-Июл-24, 13:47   +7 +/
мало того, что сишка почти целиком состоит из UB, так еще чтобы их все вызубрить, придется покупать стандарт сишки, потому что бесплатно его не достать. Еще раз: платишь бабки, а получаешь pdf, в котором на каждой странице undefined behavior. Прикольный стандарт, правда?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #41, #70

40. Сообщение от Швондик (?), 16-Июл-24, 13:53   +1 +/
ТО что надо! Я как раз хочу написать DOS для z280
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #73, #75

41. Сообщение от Аноним (35), 16-Июл-24, 13:58   –2 +/
Это опять про С++. Чистая сишка кристально ясна.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #53, #60, #151

42. Сообщение от Аноним (42), 16-Июл-24, 14:00   +/
И часто линукс у вас вылазит за буфер? И в целом, какой софт такое часто делает? Мне кажется что программы на С вполне быстры и с отказоустойчивостью там вроде вполне нормально все. Не чаще случаются ошибки такие как переполнение буфера чем и на других языках.Это уже от программиста зависит больше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #61, #72, #126, #185

43. Сообщение от Аноним (43), 16-Июл-24, 14:05   +/
Я начал изучать Си и С++ одновременно в ВУЗе. Я какой профи, стары или молодой?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #67, #107

44. Сообщение от Wed (??), 16-Июл-24, 14:06   +/
Мне больше нравится Nim вместо C.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #49

46. Сообщение от pavlinux (ok), 16-Июл-24, 14:10   –9 +/
>  ..., но проще, чем Си.


fn example(x: int, y: int = 34) void = {
    // ...
};
example(12);    //эквивалентно вызову example(12, 34);


Нуфуя создавать ф-цию я ДВУМЯ аргументами, когда один из них всегда константа?!!!

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

48. Сообщение от Аноним (48), 16-Июл-24, 14:11   +/
Но Hare позволяет достичь до максимальной производительности!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #141, #144

49. Сообщение от Аноним (1), 16-Июл-24, 14:11   +4 +/
Единственная норма это zig
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

50. Сообщение от Аноним (48), 16-Июл-24, 14:12    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #52, #57, #88

51. Сообщение от Аноним (1), 16-Июл-24, 14:13   +10 +/
Ты программировать то умеешь? Это дефолтное значение, а не константа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #55

52. Сообщение от Аноним (1), 16-Июл-24, 14:13   +/
Никогда.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

53. Сообщение от Аноним (-), 16-Июл-24, 14:19   +2 +/
> Это опять про С++. Чистая сишка кристально ясна.

Может та которая был от K и Р.
Даже 99 это просто груда костылей.
Ну и писаки тоже хороши, что-то не кастится? void* спасет всех!

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

55. Сообщение от pavlinux (ok), 16-Июл-24, 14:22   –8 +/
> Это дефолтное значение, а не константа.

это называется константа.  

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

57. Сообщение от Аноним (-), 16-Июл-24, 14:24   +1 +/
Уже: https://drewdevault.com/2024/05/24/2024-05-24-Bunnix.html
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

58. Сообщение от Ананимус (?), 16-Июл-24, 14:24   +3 +/
> гoвнoкoдя, прикинь, это называется константа.  

Это называется опциональные параметры, лол. Тебя не смущает что open() имеет в одном случае два аргумента, а в другом -- три?

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

59. Сообщение от pavlinux (ok), 16-Июл-24, 14:31   +/
>> гoвнoкoдя, прикинь, это называется константа.
> а в другом -- три?

Там "по дефолту" не написано 34,   va_arg это отдельная тема, тоже корявость С  

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

60. Сообщение от Аноним (-), 16-Июл-24, 14:46   +2 +/
> Это опять про С++. Чистая сишка кристально ясна.

О! Это не ыксперт, а Ыкспертище!
Просто открываешь ту кучу, что по недоразумению называется стандартом, www.dii.uchile.cl/~daespino/files/Iso_C_1999_definition.pdf
Ищешь там слова undefined behavior.
Просветляешься.

Некотрые даже собрали это в список (наверное было много свободного времени))
gist.github.com/Earnestly/7c903f481ff9d29a3dd1

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

61. Сообщение от Аноним (-), 16-Июл-24, 14:56   +/
А сколько раз в неделю нужно чтобы сказать часто)?

Вот типичнейший пример
opennet.ru/opennews/art.shtml?num=59867
запись значения за пределы выделенного буфера -> права root в большинстве дистрибутивов Linux

Типичная дыряшка.

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

63. Сообщение от Аноним (169), 16-Июл-24, 15:01   +2 +/
Есть вообще целый феномен языков-убийц С, напирающих на простоту. Они не уточняют, что за простота (это как безопасность - безопасность от вас с помощью DRM - тоже безопасность), а просты они для создания языка. С точки зрения пользователя это примитивность.

"There are no macros, generics, or metaprogramming features"
"Omitting generics (and similar features) in Hare is a deliberate design choice which simplifies the language considerably and is more aligned with its design roots in C."
"We use terms like "borrow" and "ownership" to reason about memory, but this is not enforced at the language level. The compiler does not prevent double-free or use-after-free bugs."

То есть в языке отказались от фич C++, D, Rust, от Zig'овского comptime, даже от C-макросов, отказались от тесной совместимости с C (только обычный FFI). Вот вам C в синтаксисе Go (заяц, суслик - почти одно и то же) и даже с defer'ом.

Автора понять и простить - создавать язык с нуля веселее, чем разгребать проблемы других (как делают в cppfront и в Circle C++, например), а до скучной стадии языку не обязательно доживать. Но зачем пользователям клевать на ограниченность языка, преподносимую как преимущество? Hare хочет быть как Go, но FAANG-компании за ним почему-то не видно.

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

65. Сообщение от Аноним (65), 16-Июл-24, 15:09    Скрыто ботом-модератором+6 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #174

66. Сообщение от Ананимус (?), 16-Июл-24, 15:14   +/
> Там "по дефолту" не написано 34,   va_arg это отдельная тема, тоже корявость С  

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

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

67. Сообщение от Аноним (39), 16-Июл-24, 15:21   +2 +/
Не ломай ему картину мира, а то сегфолтнется.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

68. Сообщение от Аноним (68), 16-Июл-24, 15:43   +/
А назовёшь хотя бы три C++-специфичных кейса UB? Нет, весь UB растёт именно из C. И в C при этом нет никаких способов их обходить, как-то автоматическое управление памятью, checked math, да и вообще банальный range based for loop.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #89, #98

69. Сообщение от Аноним (169), 16-Июл-24, 16:14   –1 +/
И ещё - в ядре линукса в 60 файлах используется _Generic. Язык расширили дженериками не без помощи макросов образца 1973 года и жить стало немного лучше.

systemd написан даже не с defer, а с RAII[1]. И с виртуальными методами. Только не средствами языка, а вручную, макросами и расширениями языка.

То есть они не находят какой-то правильной архитектурной чистоты в старом C. Они видят ограничения языка, которые кое-как обходятся отступлениями от стандарта, макросами и паттернами проектирования. На кого рассчитаны слова про "aligned with its design roots"?

[1] https://github.com/systemd/systemd/blob/main/src/fundamental...
[2] https://github.com/systemd/systemd/blob/main/src/network/tc/...

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

70. Сообщение от YetAnotherOnanym (ok), 16-Июл-24, 16:15   +1 +/
> pdf, в котором на каждой странице undefined behavior

Ты, конечно же, можешь привести хотя бы десяток примерв с указанием идущих подряд номеров страниц этого pdf?

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

71. Сообщение от YetAnotherOnanym (ok), 16-Июл-24, 16:22   +1 +/
Ещё один неосилятор Си, которому виноваты все, от K&R до ISO/IEC WG14 в полном составе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #78, #136

72. Сообщение от Аноним (72), 16-Июл-24, 16:24   +/
Если я постоянно попадаю молотком по пальцам — то вроде бы и сам виноват. Но если после покупки другого молодка ситуация выправляется — повод задуматься о разнице между молотками.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #80, #81, #82

73. Сообщение от Аноним (72), 16-Июл-24, 16:26   +1 +/
Для Z280 сам бог велел писать на ассемблере.
Но ты ведь ни на чём не напишешь всё равно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #86

74. Сообщение от zog (??), 16-Июл-24, 16:31   +1 +/
> for (let item .. items) {

Почему они используют упавшее двоеточие? Чтобы было не так, как везде?

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

75. Сообщение от Аноним (37), 16-Июл-24, 16:34   +/
Зачем DOS? Лучше какой-нить mini NIX.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #92, #195

77. Сообщение от pavlinux (ok), 16-Июл-24, 16:40   +/
>> это довольно жирный плюс C

С c плюсами это в другой теме  

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

78. Сообщение от Аноним (78), 16-Июл-24, 16:45   –1 +/
> Ещё один неосилятор Си, которому виноваты все, от K&R до ISO/IEC WG14 в полном составе.

Какой громкий пук!
Просто восхитительно.

Для того чтобы говорить "нужник вида 'дырка в земле' это устарело" не нужно им пользоваться массово.
Достаточно одного раза.
Мне, к сожалению, довелось писать под СИ лет десять назад. Много кода.
Ночные забеги с дебагом тк кто-то нагадил в память, ну удовольствия в этом мало.
Слава богу машине, свалил из этого болота.


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

80. Сообщение от Аноним (-), 16-Июл-24, 17:15   +2 +/
> Если я постоянно попадаю молотком по пальцам — то вроде бы и сам виноват.
> Но если после покупки другого молодка ситуация выправляется — повод задуматься
> о разнице между молотками.

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

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

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

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

81. Сообщение от Аноним (-), 16-Июл-24, 17:16   +/
Я уже молчу про необязательность реализации отдельных модулей.
И при этом называть получившиеся "компилятор С99"
А когда просишь скажите какой опенсорсный компилятор реализует язык полностью, то начинаются какие-то виляния.
А потому что их нет! (с)
en.cppreference.com/w/c/compiler_support
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #105

82. Сообщение от _kp (ok), 16-Июл-24, 17:20   +/
первый был микроскоп
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #96

86. Сообщение от Швондик (?), 16-Июл-24, 17:43   +/
Конечно же я пошутил. DOS я собираюсь делать на ассумблере, а если брать в основу исходники CP/M-3 то большая часть работы уже сделана:
https://oldcomputers.dyndns.org/public/pub/rechner/zilog/z28...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #138

88. Сообщение от _ (??), 16-Июл-24, 17:45   +/
>Отлично! Когда на него перепишут линукс?

В очередь СД!!!
Вначале - на раст!
Потом на JS\TS!
А вот тут уже занимайте очередь, мордобой разрешён! :-)

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

89. Сообщение от Аноним (89), 16-Июл-24, 17:46   +/
union {
    float f;
    i32 I;
}
Например ок в С и не ок в с++.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #95, #109

91. Сообщение от Аноним (-), 16-Июл-24, 17:49    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

92. Сообщение от Швондик (?), 16-Июл-24, 17:58   +/
ну NIX на ассумблере мне не подсилу, у меня вообще мозги куриные
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

93. Сообщение от Аноним (93), 16-Июл-24, 18:05   +/
Автор не знает, как везде. Потому и взялся за свой язык.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74

94. Сообщение от 9392012938к8282 (?), 16-Июл-24, 18:20   +/
Есть кстати первоапрельский патчсет где добавляются шаблоны в Hare.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

95. Сообщение от Аноним (95), 16-Июл-24, 18:23   +/
Это не UB, а разница между разными языками программирования. UB - это неопределённое поведение. А здесь оно чётко определено.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89 Ответы: #110

96. Сообщение от Аноним (72), 16-Июл-24, 18:24   +/
Я понимаю, что при слове «молоток» нужно искромётно пошутить про микроскоп (хотя местные ни того, ни другого в руках не держали), но микроскоп — это тоже инструмент, и он может быть плохим, дрянным и просто опасным для жизни (поинтересуйтесь ускоряющим напряжением у электронного микроскопа).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82 Ответы: #127

97. Сообщение от 9392012938к8282 (?), 16-Июл-24, 18:26   +1 +/
_Generic в C позволяет перегружать. Это не то, что обычно имеется в виду под дженериками (параметрический полиморфизм).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #122

98. Сообщение от Совершенно другой аноним (?), 16-Июл-24, 18:35   +/
Вообще, в C23, который должен скоро выйти, checked math завезли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #102

99. Сообщение от ДругойАнон (?), 16-Июл-24, 18:40   +1 +/
Вы еще бородатый APL не видели
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #159, #178

101. Сообщение от Аноним (101), 16-Июл-24, 18:43   +1 +/
В то время когда я программировал на С, ничего никуда не вылезало, потому, что вначале думаешь над данными потом делаешь, а не полагаешься на то, что компилятор за тебя все сделает
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #128, #187

102. Сообщение от Аноним (-), 16-Июл-24, 18:46   –1 +/
> Вообще, в C23, который должен скоро выйти, checked math завезли.

А в ядре он появится когда? Лет через 10?
От окамемевшего С89 отказались только в 2021 году. 2021 год, Карл!
Так что С23 стоит ждать где-то в году 35м. Если доживем, конечно.

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

104. Сообщение от Аноним (72), 16-Июл-24, 19:07   +3 +/
> x: int, y: int = 34

Его Вирт покусал?
Нет, не то что бы что-то плохое, но ЗАЧЕМ, если мы пишем замену сишечке?

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

105. Сообщение от Совершенно другой аноним (?), 16-Июл-24, 19:15   +/
К сожалению не всему, что по приведённой Вами ссылке написано можно доверять.

Например для "C99 core language features" есть запись про "Variably-modified (VM) types" (N2778).

Идём на сайт стандарта и смотрим это предложение, для начала на его заголовок:

JTC1/SC22/WG14 - N2778
Title: Variably-Modified Types
Author: Martin Uecker, University of Göttingen
Date: 2021-07-11
      ^^^^^^^^^^

И видим, что оно поступило в 2021 году, и в C99 оно не могло никак попасть. Далее, на сайте стандарта смотрим один из черновиков стандарта С23 - N3096 working draft — April 1, 2023 ISO/IEC 9899:2023 (E), и видим там, что оно применено, в контексте C23.

Далее по существу, если почитать данное предложение, то там предлагают "we propose to make variably-modified types mandatory in C23".

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

106. Сообщение от YetAnotherOnanym (ok), 16-Июл-24, 19:17   +/
> кто-то нагадил в память

Вот-вот.

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

107. Сообщение от Бывалый Смузихлёб (ok), 16-Июл-24, 19:20   +/
ещё не стар, но уже и не молод. В общем, и там и там - мимо )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

108. Сообщение от vitalif (ok), 16-Июл-24, 19:52   +1 +/
Сам и нагадил))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106

109. Сообщение от Аноним (109), 16-Июл-24, 20:17   +1 +/
а чо в с++ будет с этим?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89

110. Сообщение от Аноним (35), 16-Июл-24, 20:26   +/
Ага, определено так что С++ компилятор может скомпилировать нормально, а может херню выдать - никакой гарантии нет, использовать union в С++ просто нельзя, но в языке есть. Хотя пока вроде как работает. Но это не точно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95

111. Сообщение от Аноним (111), 16-Июл-24, 20:36   +1 +/
Всё это не нужно. Потому что текстовые AI модели про этот язык ничего не знают. И не надо говорить, что вы по старинке кодите. Даже в захудалых компаниях сейчас есть prompt engineer.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #147, #168

114. Сообщение от 9392012938к8282 (?), 16-Июл-24, 20:51   –1 +/
Потому что в этом случае декларации читаются слева направо, а не по спирали, как в C.

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

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

115. Сообщение от голос из леса (?), 16-Июл-24, 21:03   +/
gist.github.com/Earnestly/7c903f481ff9d29a3dd1
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70 Ответы: #124

116. Сообщение от Аноним (72), 16-Июл-24, 21:32   +1 +/
Я не спорю. Вообще по факту особой разницы нет.
Просто зачем трындеть про сишечку?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114 Ответы: #125

122. Сообщение от Аноним (169), 16-Июл-24, 22:46   +/
Хм, да, это ad-hoc-полиморфизм и лучше _Generic дженериками не называть.

Кстати, в Hare перегрузки нет.

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

123. Сообщение от Аноним (169), 16-Июл-24, 22:59   +/
Не-не-не. Доверять можно, смотри в чём дело.

> там предлагают "we propose to make variably-modified types mandatory in C23".

Это не потому что их не было в C99, а потому что их успели сделать необязательными в C11

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

124. Сообщение от YetAnotherOnanym (ok), 16-Июл-24, 23:24   –1 +/
> gist.github.com/Earnestly/7c903f481ff9d29a3dd1

Ну, давай разберём хотя бы первый пункт этого "списка".
> C99 List of Undefined Behavior
> From N1256: (See http://port70.net/~nsz/c/c99/n1256.html#J.2)
> A "shall" or "shall not" requirement that appears outside of a constraint is violated (clause 4).

Пункт 4.2 полностью выглядит так:
> If a ‘‘shall’’ or ‘‘shall not’’ requirement that appears outside of a constraint is violated, the behavior is undefined.

Чтобы понять его смысл, необходимо прочесть пункт 4.1, в котором определены понятия "shall" и "shall not":
> In this International Standard, ‘‘shall’’ is to be interpreted as a requirement on an implementation or on a program; conversely, ‘‘shall not’’ is to be interpreted as a prohibition.

В переводе на общепонятный п. 4.2 означает: Если "implementation or program" нарушает требования настоящего стандарта, то уже не имеет значения, как именно они работают, и стандарт никак не определяет поведение продуктов, в которых он не соблюдается.
Дальше, извини, читать не стал.

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

125. Сообщение от Аноним (169), 16-Июл-24, 23:24   +/
2ALL: спираль всё-таки неудобна, но её можно исправить с сохранением преемственности с C.

Вместо let и const без типов тогда будут auto и const auto.


int[] a;      // dynamic array of ints
int[4][3] b;  // array of 3 arrays of 4 ints each
int[][5] c;   // array of 5 dynamic arrays of ints.
int*[]*[3] d; // array of 3 pointers to dynamic arrays of pointers to ints
int[]* e;     // pointer to dynamic array of ints

void f(int);
void function(int) fp = &f; // fp is a pointer to a function taking an int


https://dlang.org/spec/function.html#function-pointers
https://dlang.org/spec/arrays.html#declarations
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116 Ответы: #132

126. Сообщение от Аноним (127), 16-Июл-24, 23:38   +/
> Не чаще случаются ошибки такие как переполнение буфера чем и на других языках.

Но не на всех "других языках". В том же уже набившем оскомину полуторагодичной давности отчете гугловских андроид-разработчиков об использовании раста в разработке системных компонент андроида заявляется, что не допустили ни одной ошибки работы с памятью (т.е. не только выхода за пределы буфера) за несколько лет использования этого самого раста. Даже жирным шрифтом выделили это утверждение: "...To date, there have been zero memory safety vulnerabilities discovered in Android’s Rust code..."

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

127. Сообщение от Аноним (127), 16-Июл-24, 23:46   +/
> при слове «молоток» нужно искромётно пошутить про микроскоп (хотя местные ни того, ни другого в руках не держали)

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

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

128. Сообщение от Аноним (127), 16-Июл-24, 23:49   +/
Неуловимый Джо? Или создатель qmail'а почтил нас своим присутствием? Дэниел Бернштейн, Вы ли это?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101

129. Сообщение от YetAnotherOnanym (ok), 17-Июл-24, 00:01   +/
> Тут у молотка голова может улететь, просто в зависимости от того в
> какой цвет покрашена ручка и какой там логотип.

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

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

130. Сообщение от Аноним (72), 17-Июл-24, 00:11   +/
Уроки труда в 2010 выкинуты. Собираются вернуть, но какое импортозамещённое китайское качество будет у инструментов, могу догадаться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #127 Ответы: #158, #175

132. Сообщение от Аноним (72), 17-Июл-24, 00:54   +/
Ну в принципе достаточно яркий пример синтаксиса, чтобы понять, почему дишечка мертворождённая.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #125 Ответы: #135

135. Сообщение от Аноним (169), 17-Июл-24, 03:07   +/
> почему дишечка мертворождённая

Не из-за синтаксиса же. Но я хотел указать правильное начало - справа от имени переменной нет частей её типа. Скобки массива перенесены влево, как в C# и Java. А ты углубился в то, что они правило "читать тип справа налево" довели до абсурда:


    int[1][10] x;
    auto y = new int[1][10];
    auto z = new int[][](10,1);
    
    x[9][0] = 1; // OK
    y[9][0] = 1; // OK
    z[9][0] = 1; // OK

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

136. Сообщение от Илья (??), 17-Июл-24, 03:09   +1 +/
А есть смысл осилять? Можно же просто взять Раст или с#
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #140

137. Сообщение от Аноним (-), 17-Июл-24, 07:00   +1 +/
> Даже 99 это просто груда костылей.

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

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

138. Сообщение от Аноним (-), 17-Июл-24, 07:13   +/
> Конечно же я пошутил. DOS я собираюсь делать на ассумблере, а если
> брать в основу исходники CP/M-3 то большая часть работы уже сделана:

Ну да, самое время в 2024 писать CP/M... :). Я конечно понимаю что некоторые медленно запрягают, но, кажется, вас уже обошли на целый круг.

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

139. Сообщение от Прохожий (??), 17-Июл-24, 07:13   +1 +/
“Вот-вот“ означает, что с тобой бы такого никогда не случилось? Все профессиональные системные программисты на Си - лохи, один ты д'Артаньян?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106

140. Сообщение от Прохожий (??), 17-Июл-24, 07:16   +/
Проблема в том, что огромное количество местных экспертов едва-едва Си осилили. А ты им куда более сложные языки программирования предлагаешь освоить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136

141. Сообщение от Прохожий (??), 17-Июл-24, 07:19   +/
Анониму (65). А в чем ты здесь видишь проблему?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

142. Сообщение от Прохожий (??), 17-Июл-24, 07:39   +/
>>> Даже 99 это просто груда костылей.
>Ну тогда какой-нибудь хруст это вообще чистый и дистиллированый апокалиптец

Почему? Что ты бы назвал костылем в Rust?

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

143. Сообщение от Совершенно другой аноним (?), 17-Июл-24, 08:47   +/
> > А в ядре он появится когда? Лет через 10?

От окамемевшего С89 отказались только в 2021 году. 2021 год, Карл!

Э... ну это вопрос, наверное, к Линусу, почему он там не хотел раньше переходить. Может, потому, что хватало того самого минимума из С89, а чего не хватало - специалисты уровня разработчиков ядра ОС вполне себе могут сами реализовать в любом удобном им виде.

Например, нестандартные checked math в виде builtin-ов существуют как минимум с версии gcc 5.1.0 (https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Integer-Overflo...). А возможно и в более ранних версиях. Как минимум есть подозрение, что с версии gcc 5.0. А до того делались, скорее всего, ассемблерными вставками, для архитектуры x86, например:

static inline int __builtin_sadd_overflow(int a, int b, int *c)
{
  _Bool p;

  asm __volatile__("addl %2, %0\n\tseto %1" : "+g"(a) , "=g"(p) : "g"(b));

  *c = a;

  return p;
}

а то и вообще, переносимым, в общем, способом, без всякой ассемблерной магии:

static inline int __builtin_sadd_overflow(int a, int b, int *c)
{
  *c = a + b;
  return (((*c ^ a) & (*c ^ b)) < 0);
}

Из того, что добавили в С99 по сравнению с C89, как по мне, это разве что designated initializers очень удобная вещь и составные константы, хотя второе уже сильно на любителя, ещё стандартизировали inline. Остальное, не очень то и нужно, особенно в разных ядрах ОС.

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

144. Сообщение от Прохожий (??), 17-Июл-24, 09:15   +/
Не позволяет, потому что основан на qbe, который, в свою очередь, по заявлению авторов языка генерирует код на 25-75% более медленный, чем LLVM.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

145. Сообщение от Аноним (-), 17-Июл-24, 09:19   +/
> Потому что та же самая задача в C реализована через va_arg. И
> нет, это не корявость, это довольно жирный плюс C, которого не
> хватает в том же Rust.

А что хрустики делают при реализации чего-то типа printf? oO

Еще variadic macro забавные. Можно даже исхитриться посчитать аргументы - в компил тайме - и таки прямо в компилтайме например выбрать разные имплементации с нужным числом параметров. В том числе можно и дефолты вкатить если параметры не дадены. Это конечно чуть кривее, но круть си в том что - так можно было. Без редизайна нового ЯП и постоянной его правки на каждый пшик. Мол, мы тут упростили немного парсер - и теперь любой такой фокус требует менять код компилера.

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

146. Сообщение от Прохожий (??), 17-Июл-24, 09:31   +/
Смешанные впечатления о языке.

С одной стороны, вроде бы, боремся за скорость, с другой - используем qbe ради простоты пронимания всего фреймворка. По заявлению авторов qbe генерирует на 25-75% более медленный код, чем LLVM.

Далее. Декларируем приверженность открытому коду, не желая поддерживать проприетарные ОС. Но при это не поощряем использовать этот самый открытый код, чем оправдываем отсутствие менеджера пакетов.

Дженерики, которые как бы упрощают разработку, отсутствуют. Автоматическое управление памятью отсутствует. Зато есть defer, как в Golang.

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

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

147. Сообщение от Прохожий (??), 17-Июл-24, 09:35   +/
Как показывает мой личный опыт, часто (не всегда) ИИ генерирует или неполный код, или вообще какую-то ахинею. Поэтому всё равно приходится самому в итоге вникать в тематику.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111

148. Сообщение от Швондик (?), 17-Июл-24, 10:57   +/
А кто обошел, чем обошли? я даже не слыхал, можно ссылку?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #138 Ответы: #176

149. Сообщение от Аноним (149), 17-Июл-24, 11:08   +2 +/
> Не уверен, что надо сколь-либо внимательно следить за развитием этого языка.

Достаточно посмотреть пример helloworld на главной странице, чтобы понять это.

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

150. Сообщение от Ананимус (?), 17-Июл-24, 11:59   +/
> А что хрустики делают при реализации чего-то типа printf? oO

Через макросы. Сильная сторона раста это годные макросы с нормальным доступом к AST, что позволяет делать много прикольных штук.

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

151. Сообщение от a (??), 17-Июл-24, 12:47   +/
Смешно.
https://thephd.dev/conformance-should-mean-something-fputc-a...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41

152. Сообщение от Аноним (152), 17-Июл-24, 13:07   +/
О других типах ошибок и уязвимостей они конечно же тактично умолчали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #163

153. Сообщение от Аноним (152), 17-Июл-24, 13:09   +/
Годные макросы - это у Zig.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #150 Ответы: #177, #191

154. Сообщение от Серб (ok), 17-Июл-24, 13:16   +/
И по этому представители google в 2024 году сказали, что в обозримом будущем не собираются отказываться от C/C++ и выделили 1М на улучшение интеграции rust с C/C++?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #162

156. Сообщение от Аноним (-), 17-Июл-24, 15:38   +/
> От окамемевшего С89 отказались только в 2021 году. 2021 год, Карл!

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

> Так что С23 стоит ждать где-то в году 35м. Если доживем, конечно.

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

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

157. Сообщение от Аноним (-), 17-Июл-24, 15:44   –1 +/
> Почему? Что ты бы назвал костылем в Rust?

Вон там try_* для линукскернела сгородили. Надо же, при попытке прогать для кернела для wannabe-системного-яп дошло наконец почему сишники это делали - вот так. А не вон так что нате вам panic и что хотите то и делайте, зато безопасно. Конечно, ОС с упавшим в панику ядро и правда не хакнут, но радости с того? И это азы управления памятью, ать-ать-ать.

А если посмотреть сколько и чего там докостыливали для того чтобы хоть что-то в кернеле можно было на этом якобы-системном - там весьма длинный список так то.

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

158. Сообщение от Аноним (158), 17-Июл-24, 15:48   +/
> Уроки труда в 2010 выкинуты. Собираются вернуть, но какое импортозамещённое китайское качество
> будет у инструментов, могу догадаться.

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

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

159. Сообщение от Аноним (159), 17-Июл-24, 18:32   +/
Это круче JCL с PL/I?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #161

160. Сообщение от Аноним (-), 17-Июл-24, 18:48   +/
> У хорошего мастера рукоять молотка выточена из древесины твёрдой породы и точно подогнана под форму отверстия в головке, а сама головка намертво зафиксирована на рукояти плотно вбитым клином.

Да именно так!
СИшка - это молоток у которого ручка может быть из мореного дуба, а может из навоза и соломы.
Кто знает. Ведь в так называемом 'стандарте' написано "ХЗ как сделать, разбирайтесь сами"
Может голова там тоже из пластилина?

Приходится смотреть на логотипы.
Вот есть ЖЦЦ - вроде нормальный, а ковырнешь, так мало того что он стандарт не полностью поддерживает, так до 2008 года заражал гну-раком код который компилировал (пришлось даже экстеншины пилить)

Слава богу в нормальных языках от такого отказываются.

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

161. Сообщение от ДругойАнон (?), 17-Июл-24, 18:49   +1 +/
> Это круче JCL с PL/I?

Пример:

ConvexHull←{
⍝ ⍵: matrix (2 rows) of points - first row:abscissae  second row:ordinates
⍝ return: matrix (2 rows) of points of convex hull

⍝ try:  ConvexHull ⍉9 2⍴1 0,1 ¯10,3 3,2 1,6 3,1 6,3 1,6 1,9 0

     ⎕IO←0
     pts←(⊂⍋⊃↓⍵)⌷[1]⍵                        ⍝sort by x-values:first point←→start vertex
     phs←{                                   ⍝ 12○⍵ polar phase ○¯1>≥○1.  see DFNS
         x y←⊂[1↓⍳⍴⍴⍵]⍵                      ⍝ x and y coordinates.
         x0 xn←1 0=⊂0=x                      ⍝ points on/off y axis.
         top←(x0×○0.5)+xnׯ3○(|y)÷x+x0       ⍝ upper quadrants.
         (0∨.≠⍵)×(1-2×y<0)×top+○x<0          ⍝ other quadrants.
     }
     angles←phs(0 1↓pts)-[0]0⌷[1]pts         ⍝phases(radians) of the vectors
     ixStart←0,1+⊃angles⍳⌊/angles            ⍝start with indexes of first segment
     ixHull←{
         ix0 ix1←¯2↑⍵                        ⍝ix1: index of last point←→last vertex
         v←{⍵+(⍵<0)×○2}phs pts-[0]ix1⌷[1]pts ⍝phases with respect to the last vertex
         other←(⍳1↓⍴pts)~ix0 ix1             ⍝indexes of other points
         angles←|(ix0⊃v)-(⊂other)⌷v              ⍝       _______/\_______
         angles←{f←⍵>○1 ⋄ (⍵×~f)+f×-⍵-○2}angles  ⍝angles (p0-p1)  (p1-px)
         ⍵,(angles⍳⌈/angles)⊃other           ⍝new vertex is where angle is largest
     }⍣{
         0=⊃⌽⍺                               ⍝repeat until first and last vertex coincide
     }ixStart
     (⊂ixHull)⌷[1]pts
}

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

162. Сообщение от Аноним (-), 17-Июл-24, 18:59   +/
А ты ту новость читал?
opennet.ru/opennews/art.shtml?num=60556
и первоисточник security.googleblog.com/2024/02/improving-interoperability-between-rust-and-c.html

Вот что пишет гугл  
"At the time, Rust was already in wide use across Android and other Google products. ...
Rust is one of the strongest tools we have to address memory safety security issues."
Т.е Раст у них уже применяется массово и это один из самых полезных инструментов.

"We are delighted to announce that Google has provided a grant of $1 million to the Rust Foundation to support efforts that will improve the ability of Rust code to interoperate with existing legacy C++ codebases."
А тут речь идет о легаси кодах. От которых действительно отказываться не хотят - тк дорого.
Но если добавить туда секретный ингредиент - то они станут гораздо лучше и менее дырявыми.

“Based on historical vulnerability density statistics, Rust has proactively prevented hundreds of vulnerabilities from impacting the Android ecosystem. This investment aims to expand the adoption of Rust across various components of the platform.”
Думаю тут комментарии излишни.

И наконец-то мы пришли к тому "а зачем это делается?!" все-таки лям баксов это не мало.
As these improvements have continued, we’ve seen a reduction in the barriers to adoption and accelerated adoption of Rust.
Т.е это все затеяли чтобы ускорить внедрение Раста!

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

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

163. Сообщение от Аноним (-), 17-Июл-24, 19:00   +/
Разве?
Во-первых, 70% CVE - это ошибки, от которых рас защищает.
Во-вторых, защищать от остальных (логическая ошибка, копипаста кода) он и не обещал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152

164. Сообщение от Серб (ok), 17-Июл-24, 19:11   +/
А что ты это не привел?

“While Rust may not be suitable for all product applications, prioritizing seamless interoperability with C++ will accelerate wider community adoption, thereby aligning with the industry goals of improving memory safety.” – Royal Hansen, Google Vice President of Safety & Security

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

165. Сообщение от Аноним (-), 17-Июл-24, 19:17   +/
> “While Rust may not be suitable for all product applications, prioritizing seamless
> interoperability with C++ will accelerate wider community adoption, thereby aligning with
> the industry goals of improving memory safety.” – Royal Hansen, Google
> Vice President of Safety & Security

Оно ж не противоречит тому что я написал)

"Хотя Раст не подходит для всех приложений" - логично, это не питон на котором можно быстро делать прототипы, это не бащъ где можна выдавить портянку кода, зато за пять минут -
"внедрение совместимости с С++ ускорит его более широкое внедрение с целью улучшения безопасности памяти..."

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

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

166. Сообщение от Аноним (166), 17-Июл-24, 21:02   +/
>> Почему? Что ты бы назвал костылем в Rust?
> Вон там try_* для линукскернела сгородили. Надо же, при попытке прогать для
> кернела для wannabe-системного-яп дошло наконец почему сишники это делали - вот

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


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

168. Сообщение от kusb reg (ok), 17-Июл-24, 22:12   +/
Они могут знать даже про те языки, которых не существует.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111

169. Сообщение от Аноним (169), 17-Июл-24, 23:20   +/
Этакий предок MATLAB'а с уклоном в функциональщину и тотемные столбы (⍝?).

Что создатель - Кеннет Айверсон - нашёл в идее "1 функция - 1 символ"? Он сделал новые символы для известных математических операций, ln - слишком длинно, поэтому натуральный логарифм там ⍟.

Но некоторые его изобретения (floor, ceil и iota) прижились.

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

170. Сообщение от Аноним (-), 17-Июл-24, 23:39   +/
> Не, просто ты, как обычно - что-то, где-то прочитал опой и с
> какого-то перепугу решил, что ядерный аллокатор с "другим" (отличным от юзерспейса)
> интерфейсом - костыли.

Во первых, они вроде как в вооооон той версии сподвиглись аллокатор таки - докостылить. Не прошло и 10 лет.

Во вторых, изменение с try_ для всяких box и проч - именно костыль! Ибо не было в начальной логике ЯП, а потом - заметили что лажа вышла и отыграли решения взад, вернув логику "как у сишечки" по сути. Потому что иначе в системщине - фигня получается, если безопасТно улетать в панику при первом же OOM почему-то не катило. Ну что, пчелы против меда, оказывается, с этим какая-то подстава была? ЗатобезопасТно вылетающий в панику на первой ошибке аллокации кернел почему-то народу не нравится :).

Осталось теперь еще объяснить - чем это отличалось по логике действа от *alloc + проверок, кроме того что сделано как костыль через ж@пу, но эффект ровно тот же.

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

172. Сообщение от Аноним (172), 18-Июл-24, 00:14   +1 +/
Сразу видно евангилиста.

Тут как раз и имелось ввиду, что rust полностью заменить C/C++ не может. Если ты этого не видишь, то твои глаза застилает слепая вера.

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

174. Сообщение от Аноним (174), 18-Июл-24, 01:36   –2 +/
> Интересно что в примере хелловорлда "Привет мир!" стал "Привіт, світе!"

Всё правильно сделали.


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

175. Сообщение от Аноним (174), 18-Июл-24, 01:45   +/
> Уроки труда в 2010 выкинуты

Хоть что-то полезное сделали. И вечно пьяных матерящихся трудовиков, небось, поувольняли к чёртовой матери, аллилуйя.

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

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

176. Сообщение от Аноним (-), 18-Июл-24, 05:35   +/
> А кто обошел, чем обошли? я даже не слыхал, можно ссылку?

С тех пор во первых майкрософт скопипастил и улучшил - как MSDOS. Более того - скопипастил не у себя так что еще и суд продул. С треском! Заплптив сколько-то миллионов оригинальному автору.

Они уже даже от щедрот сорц этого барахла вроде релизнули, хоть и под жлобской лицензией. На версию 3, чтоли. Впрочем кому не хочется подачек от проприетариев, freedos есть. Этот с сорцами с самого начала. Это только из релевантных проектов.

А на круг обошли - многочисленные task switching многозадачки, в изобилии нагенеренные студнями на все вкусы. Как бы более другой уровень технологии ОСостроения уже.

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

177. Сообщение от Аноним (-), 18-Июл-24, 05:37   +1 +/
> Годные макросы - это у Zig.

Эти да, довели идею до абсолюта - все компил тайм вычисления с тем же синтаксисом что основной ЯП. Что, хрустики, а вам так слабо было. Нагенерили какой-то блевоты. А надо то было - вот так.

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

178. Сообщение от Аноним (178), 18-Июл-24, 05:42   +/
> Вы еще бородатый APL не видели

Зато, вот, нашлось тут... https://gist.github.com/fogus/9fd771e38c561d868216725dc67e0f57 :)

Да, кто-то натурально сделал из сишки ну вот реально ООП с классами, new, и проч. ЧСХ сишку так можно расширить средствами яп. А почему хари и хрусты на каждый пшик компилер переделывать идут? Гениальности архитектам не хватило? Бывает, кули.

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

179. Сообщение от Аноним (179), 18-Июл-24, 05:54   +/
> Я помню что нас на уроках труда то какие-то гвозди заставляли выпрямлять,
> то ржавую проволоку чистить. Не думаю, чтобы у меня была прямо
> совсем уникальная школа.

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

А, во, разок на всю толпу таки устроили праздник и дали поорудовать разъ...м, но все ж сверлильным станком всем желающим. Правда, это 1 раз за всю жизнь, а станок видел еще дедушку Ленина и, ессно, в диком виде его такой - разве что в музее удастся найти. Так что хрен бы его знает куда этот скилл применить потом. Но продырявить большую железку и сделать туповатый но все же молоток из какой-то фигни все же было немного забавнее чем зубрить примитивную хрень для тупарей.

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

180. Сообщение от Аноним (179), 18-Июл-24, 05:58   +/
> Почему не собирается? Такая же ошибка была и на предыдущих версиях
> Syntax error: unexpected 'error' at rt/+linux/+x86_64.ha:44:34, expected '{'
> make: *** [makefiles/linux.x86_64.mk:11: .cache/rt.ssa] Error 1

Попробуй распаковывать .ha одноименным архиватором :)

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

181. Сообщение от Совершенно другой аноним (?), 18-Июл-24, 09:00   +/
>> Я помню что нас на уроках труда то какие-то гвозди заставляли выпрямлять,
>> то ржавую проволоку чистить. Не думаю, чтобы у меня была прямо
>> совсем уникальная школа.
> Мне пару раз в жизни даже доверяли там не очень убитый рубанок.
> Правда, и его все равно сперва пришлось пересобрать до того как
> он заработал. Не, как им орудовать правильно - не показали почти.
> Долбоклюев много, а учитель 1, урок 1 в неделю, на всех
> благодати не хватает хоть тресни. Уделить каждому минуту в неделю -
> да, вы сразу станете столяром экстра класса. Ну и вот на
> что убито время? Не, таким скиллом даже на жрат не заработаешь.

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

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

182. Сообщение от Швондик (?), 18-Июл-24, 13:57   +/
А какое отношение майкрософт с MSDOS имеет к z280? Вы слышали звон, но не поняли где он!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #176 Ответы: #192

183. Сообщение от Аноним (-), 18-Июл-24, 18:54   +/
Да что с ним не так?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149

184. Сообщение от Аноним (186), 18-Июл-24, 21:00   +/
Казалось бы, двадцать первый век, прогресс, но язык как-будьто из восьмидесятых. Прорывных идей в языке не видно, но язык до сих пор не стабилен(перепишите код при переходе на новую версию). Вместо работы, например над алгебраическими типами данных, автор делает foreach как костыль для отдельного случая, гораздо логичнее было бы дать рекурсию, вместе с map, fold, iter. В лучшем случае, автор переизобретёт условный паскаль, который и так есть, и мало кому нужен. Казалось бы есть куча разных идей, будь-то системный язык с зависимыми типами как ATS, оптимизирующий компилятор, как Clean, эффекты, как Eff или Koka, и так далее, но автор с умным видом продвигает посредственность.
Ответить | Правка | Наверх | Cообщить модератору

185. Сообщение от Аноним (186), 18-Июл-24, 21:08   –1 +/
>И часто линукс у вас вылазит за буфер?

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

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

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

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

186. Сообщение от Аноним (186), 18-Июл-24, 21:10   +/
>Потянуло хрустом с тем же закорючко-синтаксисом но без борова.

Уровень познания языка: споткнулись на синтаксисе. Раст есть за что ругать, но ситнаксис - едва ли не последняя вещь.

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

187. Сообщение от Аноним (186), 18-Июл-24, 21:15   +/
Расскажи это авторам Linux для начала.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101

188. Сообщение от Аноним (186), 18-Июл-24, 21:18   +/
Зато можно спать спокойно, не взлетит. Нет у них таких денег на рекламу, как у гугла с голангом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

189. Сообщение от Аноним (166), 18-Июл-24, 21:59   +/

> Во первых, они вроде как в вооооон той версии сподвиглись аллокатор таки
> - докостылить. Не прошло и 10 лет.
> Во вторых, изменение с try_ для всяких box и проч - именно
> костыль! Ибо не было в начальной логике ЯП, а потом -

Проблемка в том, что все это - до сих пор общедоступно и легко проверяется:
https://lore.kernel.org/lkml/20220805154231.31257-9-ojeda�.../
> This customizes the subset of the Rust standard library `alloc` that

was just imported as-is, mainly by:
> Adding fallible (`try_*`) versions of existing infallible methods

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

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

190. Сообщение от Аноним (186), 18-Июл-24, 22:10   +/
У школьников просто рабочие часы бесплатные, и по этому их чем только не нагружают. К выпусному классу школьник(если занимается) уже вполне может сносно коммерчески программировать, как минимум на уровне джуна, паять всякую электронику, рисовать и так далее. Но на практике, большинство выпускников ничего не умеют, зря что ли в школе штаны просиживали?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #181

191. Сообщение от Ананимус (?), 18-Июл-24, 22:33   +/
>  Годные макросы - это у Zig.

Они и у раста годные. Тут не то чтобы только один может быть.

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

192. Сообщение от Аноним (192), 19-Июл-24, 12:36   +/
В Z280 есть MMU и прочее, а вы туда дос хотите чтобы все это игнорировать.

Туда что-то уровня OS/2 просится...

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

193. Сообщение от Швондик (?), 19-Июл-24, 14:28   +/
Вы для каких задач мне советуете OS/2 для z280? Опять - слышу звон, но не знаю где он! Или это такой толстый троллинг?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #192

194. Сообщение от randomize (?), 20-Июл-24, 15:17   +/
> Hare fits on a 3½" floppy disc — these will be available for purchase when Hare 1.0 is released!

Дрю делал язык для троллинга?

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

195. Сообщение от Швондик (?), 21-Июл-24, 11:26   +/
уже есть, пользуйтесь
https://github.com/hperaza/UZI180
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

197. Сообщение от Аноним (-), 25-Июл-24, 19:16   +/
> Прошу прощения, что вмешиваюсь, но от уроков физики в школе Вы тоже
> ожидали, что Вам дадут знания на уровне чуть ниже Стивена Хокинга,

Поэтому я и считал ту школу по сути бесполезным времяпровождением. Все что они там вещали я и сам в паре книжек прочитал. Да, старый учебник физики и математики, так то, даже и покруче были.

> а на уроках музыки научат сочинять музыку чуть хуже Чайковского?

Б... я после них даже нот не знал. Так, пару раз за всю жизнь попели, фиг знает что и зачем. Смысл этого? А хрен его знает. Не, с таким скилом даже на школьном стадионе петь сыкотно, закидают каким-нибудь гуано.

> Вообще-то школа немного не про это, а про то, чтобы дать базис,
> чтобы ребёнок примерно знал про то, что это всё вообще такое
> и имел общее представление о мире.

При том с этим базисом - ну, в лучшем случае, на кассе можно в пятерочке сидеть. Только учиться для этого 10 лет - перебор. Арифметику такого уровня можно с полного нуля за полгода или меньше смочь. Зачем убивать 10 лет на тусню с толпой иди@тин пускающих пузыри - я не знаю.

И какую базу я получил возякнув пару раз рубанком - тоже фиг бы его разберет.

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

198. Сообщение от Аноним (198), 15-Сен-24, 19:31   +/
>> Вы еще бородатый APL не видели
> Зато, вот, нашлось тут... https://gist.github.com/fogus/9fd771e38c561d868216725dc67e0f57
> :)
> Гениальности архитектам не хватило? Бывает, кули.

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

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


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

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




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

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