The OpenNET Project / Index page

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

Выпуск языка программирования Hare 0.24.2

16.07.2024 12:03

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

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

Для выполнения приложения поставляется минимальный runtime, а для разработки распространяется стандартная библиотека функций, предоставляющая доступ к базовым интерфейсам операционной системы, а также предлагающая функции для работы с типовыми алгоритмами, протоколами и форматами, включая средства для использования регулярных выражений и шифрования. Для разработки графических приложений развивается инструментарий hare-wayland, а также привязки для доступа к возможностям GTK, Vulkan, OpenGL, SDL2 и libui.

В новой версии:

  • Добавлена поддержка операционной системы NetBSD (в дополнение к ранее поддерживаемым OpenBSD, FreeBSD и Linux).
  • Добавлен синтаксис для определения циклов "for-each", упрощающих перебор элементов массивов и срезов.
    
       let items = [1, 2, 3, 4, 5];
       for (let item .. items) {
    	fmt::println(item)!;
       };
    
  • Предоставлена возможность определения необязательных параметров функций, значение по умолчанию которых задаётся во время определения функции.
    
       fn example(x: int, y: int = 34) void = {
    	// ...
       };
       example(12);	//эквивалентно вызову example(12, 34);
    
  • Повышена производительность модуля bufio и связанных с ним API, использующих буферизированный ввод/вывод, таких как unix::resolvconf, unix::hosts и unix::passwd.
  • В модуле "regex::" в регулярных выражениях предоставлена возможность использование шаблонов вида "(ha|py|sh)" для перечисления нескольких вариантов выбора.
  • Добавлена поддержка разделяемой памяти (shm_open) и механизма memfd, позволяющего идентифицировать область памяти через передаваемый между процессами файловый дескриптор. Разделяемая память, которая может использоваться для межпроцессного и внутрипроцессного взаимодействия, например, уже задействована в реализации клиента и сервера Wayland hare-wayland.
  • Добавлены криптографические функции crypto::ec, crypto::ecdh и crypto::ecdsa.


  1. Главная ссылка к новости (https://harelang.org/blog/2024...)
  2. OpenNews: Первый тестовый выпуск языка программирования Hare
  3. OpenNews: В языке системного программирования Hare реализована поддержка OpenBSD
  4. OpenNews: Автор оболочки Sway и языка Hare развивает новое микроядро Helios и OC Ares
  5. OpenNews: Дрю ДеВолт представил язык системного программирования Hare
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61551-hare
Ключевые слова: hare, lang
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (147) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:07, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    То же самое что TypeScript для JavaScript.
     
  • 1.2, Аноним (2), 12:12, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +26 +/
    Посмотрел примеры хело ворлда на их сайте и понял, что этот язык мертворождён.

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

     
     
  • 2.11, нах. (?), 12:36, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    что-то вот да. Потянуло хрустом с тем же закорючко-синтаксисом но без борова.

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

     
     
  • 3.24, Аноним (1), 12:53, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это как молодёжь говорит на своём языке. Программировать они тоже хотят на своём. Но у них на получается.
     
     
  • 4.27, нах. (?), 12:57, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    дрюша конечно молод душой, но помогите деду отмотать седую бороду от ножки стола.

     
  • 4.99, ДругойАнон (?), 18:40, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы еще бородатый APL не видели
     
     
  • 5.159, Аноним (159), 18:32, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это круче JCL с PL/I?
     
     
  • 6.161, ДругойАнон (?), 18:49, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пример ConvexHull 8592 9053 9077 matrix 2 rows of points - first ro... большой текст свёрнут, показать
     
     
  • 7.169, Аноним (169), 23:20, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Этакий предок MATLAB'а с уклоном в функциональщину и тотемные столбы (⍝?).

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

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

     
  • 5.178, Аноним (178), 05:42, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы еще бородатый APL не видели

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

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

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

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

     
  • 3.28, Аноним (-), 12:59, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А зачем нам неудобочитаемые закорючки вместо си - непонятно.

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

     
     
  • 4.35, Аноним (35), 13:39, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > свалка костылей и UB?

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

     
     
  • 5.39, Аноним (39), 13:47, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +7 +/
    мало того, что сишка почти целиком состоит из UB, так еще чтобы их все вызубрить, придется покупать стандарт сишки, потому что бесплатно его не достать. Еще раз: платишь бабки, а получаешь pdf, в котором на каждой странице undefined behavior. Прикольный стандарт, правда?
     
     
  • 6.41, Аноним (35), 13:58, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это опять про С++. Чистая сишка кристально ясна.
     
     
  • 7.53, Аноним (-), 14:19, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Это опять про С++. Чистая сишка кристально ясна.

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

     
     
  • 8.137, Аноним (-), 07:00, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну тогда какой-нибудь хруст это вообще чистый и дистиллированый апокалиптец Да ... текст свёрнут, показать
     
     
  • 9.142, Прохожий (??), 07:39, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Почему Что ты бы назвал костылем в Rust ... текст свёрнут, показать
     
     
  • 10.157, Аноним (-), 15:44, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вон там try_ для линукскернела сгородили Надо же, при попытке прогать для керн... текст свёрнут, показать
     
     
  • 11.166, Аноним (166), 21:02, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не, просто ты, как обычно - что-то, где-то прочитал опой и с какого-то перепугу ... текст свёрнут, показать
     
     
  • 12.170, Аноним (-), 23:39, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Во первых, они вроде как в вооооон той версии сподвиглись аллокатор таки - докос... большой текст свёрнут, показать
     
     
  • 13.189, Аноним (166), 21:59, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Проблемка в том, что все это - до сих пор общедоступно и легко проверяется http... текст свёрнут, показать
     
  • 7.60, Аноним (-), 14:46, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Это опять про С++. Чистая сишка кристально ясна.

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

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

     
  • 7.151, a (??), 12:47, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Смешно.
    https://thephd.dev/conformance-should-mean-something-fputc-and-freestanding
     
  • 6.70, YetAnotherOnanym (ok), 16:15, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > pdf, в котором на каждой странице undefined behavior

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

     
     
  • 7.115, голос из леса (?), 21:03, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    gist.github.com/Earnestly/7c903f481ff9d29a3dd1
     
     
  • 8.124, YetAnotherOnanym (ok), 23:24, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, давай разберём хотя бы первый пункт этого списка Пункт 4 2 полностью выгл... большой текст свёрнут, показать
     
  • 5.68, Аноним (68), 15:43, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А назовёшь хотя бы три C++-специфичных кейса UB? Нет, весь UB растёт именно из C. И в C при этом нет никаких способов их обходить, как-то автоматическое управление памятью, checked math, да и вообще банальный range based for loop.
     
     
  • 6.89, Аноним (89), 17:46, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    union {
        float f;
        i32 I;
    }
    Например ок в С и не ок в с++.
     
     
  • 7.95, Аноним (95), 18:23, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это не UB, а разница между разными языками программирования. UB - это неопределённое поведение. А здесь оно чётко определено.
     
     
  • 8.110, Аноним (35), 20:26, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, определено так что С компилятор может скомпилировать нормально, а может х... текст свёрнут, показать
     
  • 7.109, Аноним (109), 20:17, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а чо в с++ будет с этим?
     
  • 6.98, Совершенно другой аноним (?), 18:35, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще, в C23, который должен скоро выйти, checked math завезли.
     
     
  • 7.102, Аноним (-), 18:46, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вообще, в C23, который должен скоро выйти, checked math завезли.

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

     
     
  • 8.143, Совершенно другой аноним (?), 08:47, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    От окамемевшего С89 отказались только в 2021 году 2021 год, Карл Э ну это в... большой текст свёрнут, показать
     
  • 8.156, Аноним (-), 15:38, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кто и где отказался На этом антике хватает софта, попробуй от него откажись ... текст свёрнут, показать
     
  • 4.71, YetAnotherOnanym (ok), 16:22, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ещё один неосилятор Си, которому виноваты все, от K&R до ISO/IEC WG14 в полном составе.
     
     
  • 5.78, Аноним (78), 16:45, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ещё один неосилятор Си, которому виноваты все, от K&R до ISO/IEC WG14 в полном составе.

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

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


     
     
  • 6.106, YetAnotherOnanym (ok), 19:17, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > кто-то нагадил в память

    Вот-вот.

     
     
  • 7.108, vitalif (ok), 19:52, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сам и нагадил))
     
  • 7.139, Прохожий (??), 07:13, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    “Вот-вот“ означает, что с тобой бы такого никогда не случилось? Все профессиональные системные программисты на Си - лохи, один ты д'Артаньян?
     
  • 5.136, Илья (??), 03:09, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А есть смысл осилять? Можно же просто взять Раст или с#
     
     
  • 6.140, Прохожий (??), 07:16, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема в том, что огромное количество местных экспертов едва-едва Си осилили. А ты им куда более сложные языки программирования предлагаешь освоить.
     
  • 3.186, Аноним (186), 21:10, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Потянуло хрустом с тем же закорючко-синтаксисом но без борова.

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

     
  • 2.19, ИмяХ (ok), 12:49, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Не совсем мертворожден, но судя по логотипу людей написавших сойдут с ума
     
  • 2.48, Аноним (48), 14:11, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Но Hare позволяет достичь до максимальной производительности!
     
     
  • 3.141, Прохожий (??), 07:19, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Анониму (65). А в чем ты здесь видишь проблему?
     
  • 3.144, Прохожий (??), 09:15, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не позволяет, потому что основан на qbe, который, в свою очередь, по заявлению авторов языка генерирует код на 25-75% более медленный, чем LLVM.
     
  • 2.65, Аноним (65), 15:09, 16/07/2024 Скрыто ботом-модератором     [к модератору]
  • +6 +/
     
     
  • 3.174, Аноним (174), 01:36, 18/07/2024 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     

     ....ответы скрыты (48)

  • 1.3, zeecape (ok), 12:14, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Hare плодить не нужные языки. С - для старых профи. С++ - для молодых профи. Rust - для зумеров пока-не-но-скоро-станут-профи.
     
     
  • 2.34, Аноним (39), 13:36, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Си - для любителей повылазить за буфер (других профи у меня для вас нет).
     
     
  • 3.42, Аноним (42), 14:00, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И часто линукс у вас вылазит за буфер? И в целом, какой софт такое часто делает? Мне кажется что программы на С вполне быстры и с отказоустойчивостью там вроде вполне нормально все. Не чаще случаются ошибки такие как переполнение буфера чем и на других языках.Это уже от программиста зависит больше.
     
     
  • 4.61, Аноним (-), 14:56, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А сколько раз в неделю нужно чтобы сказать часто)?

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

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

     
  • 4.72, Аноним (72), 16:24, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если я постоянно попадаю молотком по пальцам — то вроде бы и сам виноват. Но если после покупки другого молодка ситуация выправляется — повод задуматься о разнице между молотками.
     
     
  • 5.80, Аноним (-), 17:15, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Та если бы был просто молоток Тут у молотка голова может улететь, просто в зави... большой текст свёрнут, показать
     
     
  • 6.129, YetAnotherOnanym (ok), 00:01, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Тут у молотка голова может улететь, просто в зависимости от того в
    > какой цвет покрашена ручка и какой там логотип.

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

     
     
  • 7.160, Аноним (-), 18:48, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > У хорошего мастера рукоять молотка выточена из древесины твёрдой породы и точно подогнана под форму отверстия в головке, а сама головка намертво зафиксирована на рукояти плотно вбитым клином.

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

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

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

     
  • 5.81, Аноним (-), 17:16, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я уже молчу про необязательность реализации отдельных модулей.
    И при этом называть получившиеся "компилятор С99"
    А когда просишь скажите какой опенсорсный компилятор реализует язык полностью, то начинаются какие-то виляния.
    А потому что их нет! (с)
    en.cppreference.com/w/c/compiler_support
     
     
  • 6.105, Совершенно другой аноним (?), 19:15, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    К сожалению не всему, что по приведённой Вами ссылке написано можно доверять Н... большой текст свёрнут, показать
     
     
  • 7.123, Аноним (169), 22:59, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не-не-не. Доверять можно, смотри в чём дело.

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

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

     
  • 5.82, _kp (ok), 17:20, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    первый был микроскоп
     
     
  • 6.96, Аноним (72), 18:24, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я понимаю, что при слове «молоток» нужно искромётно пошутить про микроскоп (хотя местные ни того, ни другого в руках не держали), но микроскоп — это тоже инструмент, и он может быть плохим, дрянным и просто опасным для жизни (поинтересуйтесь ускоряющим напряжением у электронного микроскопа).
     
     
  • 7.127, Аноним (127), 23:46, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > при слове «молоток» нужно искромётно пошутить про микроскоп (хотя местные ни того, ни другого в руках не держали)

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

     
     
  • 8.130, Аноним (72), 00:11, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Уроки труда в 2010 выкинуты Собираются вернуть, но какое импортозамещённое кита... текст свёрнут, показать
     
     
  • 9.158, Аноним (158), 15:48, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Врядли хуже раздристаных совковых Ах да, даже откровенно доисторические станки,... текст свёрнут, показать
     
  • 9.175, Аноним (174), 01:45, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хоть что-то полезное сделали И вечно пьяных матерящихся трудовиков, небось, поу... текст свёрнут, показать
     
     
  • 10.179, Аноним (179), 05:54, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Мне пару раз в жизни даже доверяли там не очень убитый рубанок Правда, и его вс... большой текст свёрнут, показать
     
     
  • 11.181, Совершенно другой аноним (?), 09:00, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Прошу прощения, что вмешиваюсь, но от уроков физики в школе Вы тоже ожидали, что... большой текст свёрнут, показать
     
     
  • 12.190, Аноним (186), 22:10, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    У школьников просто рабочие часы бесплатные, и по этому их чем только не нагружа... текст свёрнут, показать
     
  • 12.197, Аноним (-), 19:16, 25/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Поэтому я и считал ту школу по сути бесполезным времяпровождением Все что они т... большой текст свёрнут, показать
     
  • 4.126, Аноним (127), 23:38, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Не чаще случаются ошибки такие как переполнение буфера чем и на других языках.

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

     
     
  • 5.152, Аноним (152), 13:07, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    О других типах ошибок и уязвимостей они конечно же тактично умолчали.
     
     
  • 6.163, Аноним (-), 19:00, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Разве?
    Во-первых, 70% CVE - это ошибки, от которых рас защищает.
    Во-вторых, защищать от остальных (логическая ошибка, копипаста кода) он и не обещал.
     
  • 5.154, Серб (ok), 13:16, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И по этому представители google в 2024 году сказали, что в обозримом будущем не собираются отказываться от C/C++ и выделили 1М на улучшение интеграции rust с C/C++?
     
     
  • 6.162, Аноним (-), 18:59, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А ты ту новость читал opennet ru opennews art shtml num 60556 и первоисточник ... большой текст свёрнут, показать
     
     
  • 7.164, Серб (ok), 19:11, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А что ты это не привел?

    “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

     
     
  • 8.165, Аноним (-), 19:17, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Оно ж не противоречит тому что я написал Хотя Раст не подходит для всех прилож... текст свёрнут, показать
     
     
  • 9.172, Аноним (172), 00:14, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сразу видно евангилиста Тут как раз и имелось ввиду, что rust полностью заменит... текст свёрнут, показать
     
  • 4.185, Аноним (186), 21:08, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >И часто линукс у вас вылазит за буфер?

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

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

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

     
  • 3.101, Аноним (101), 18:43, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В то время когда я программировал на С, ничего никуда не вылезало, потому, что вначале думаешь над данными потом делаешь, а не полагаешься на то, что компилятор за тебя все сделает
     
     
  • 4.128, Аноним (127), 23:49, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Неуловимый Джо? Или создатель qmail'а почтил нас своим присутствием? Дэниел Бернштейн, Вы ли это?
     
  • 4.187, Аноним (186), 21:15, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Расскажи это авторам Linux для начала.
     
  • 2.43, Аноним (43), 14:05, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я начал изучать Си и С++ одновременно в ВУЗе. Я какой профи, стары или молодой?
     
     
  • 3.67, Аноним (39), 15:21, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не ломай ему картину мира, а то сегфолтнется.
     
  • 3.107, Бывалый Смузихлёб (ok), 19:20, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ещё не стар, но уже и не молод. В общем, и там и там - мимо )
     

     ....большая нить свёрнута, показать (35)

  • 1.4, Ося Бендер (?), 12:18, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Название прикольное. харЭ, я сказал!
    Проще Си, может быть только Си. Фор-ич уже добавили, ждем-с классы, модули и т.д.
     
     
  • 2.16, Аноним (16), 12:44, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Фор-ич уже добавили

    где?

     
     
  • 3.37, Аноним (37), 13:43, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так в новсти же:
    "Добавлен синтаксис для определения циклов "for-each", упрощающих перебор элементов массивов и срезов."
     

  • 1.12, Аноним (12), 12:37, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Когда новая версия Nemerle?
     
  • 1.21, Вован (??), 12:51, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +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

     
     
  • 2.180, Аноним (179), 05:58, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему не собирается? Такая же ошибка была и на предыдущих версиях
    > 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 одноименным архиватором :)

     

  • 1.31, nume (ok), 13:19, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Снова эти let, а-а-а!!!
     
  • 1.32, Аноним (32), 13:29, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше бы sr.htом занимался.
     
  • 1.33, Аноним (-), 13:31, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Молодец Дрю!
     
  • 1.38, Аноним (37), 13:47, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Дрю, давай механизм наподобие alias this из BetterC, шаблоны не хуже, если сможешь, даже лучше.
     
     
  • 2.91, Аноним (-), 17:49, 16/07/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.94, 9392012938к8282 (?), 18:20, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Есть кстати первоапрельский патчсет где добавляются шаблоны в Hare.
     

  • 1.40, Швондик (?), 13:53, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    ТО что надо! Я как раз хочу написать DOS для z280
     
     
  • 2.73, Аноним (72), 16:26, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для Z280 сам бог велел писать на ассемблере.
    Но ты ведь ни на чём не напишешь всё равно.
     
     
  • 3.86, Швондик (?), 17:43, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно же я пошутил. DOS я собираюсь делать на ассумблере, а если брать в основу исходники CP/M-3 то большая часть работы уже сделана:
    https://oldcomputers.dyndns.org/public/pub/rechner/zilog/z280/my_old_z280/syst
     
     
  • 4.138, Аноним (-), 07:13, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Конечно же я пошутил. DOS я собираюсь делать на ассумблере, а если
    > брать в основу исходники CP/M-3 то большая часть работы уже сделана:

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

     
     
  • 5.148, Швондик (?), 10:57, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А кто обошел, чем обошли? я даже не слыхал, можно ссылку?
     
     
  • 6.176, Аноним (-), 05:35, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А кто обошел, чем обошли? я даже не слыхал, можно ссылку?

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

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

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

     
     
  • 7.182, Швондик (?), 13:57, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А какое отношение майкрософт с MSDOS имеет к z280? Вы слышали звон, но не поняли где он!
     
     
  • 8.192, Аноним (192), 12:36, 19/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В Z280 есть MMU и прочее, а вы туда дос хотите чтобы все это игнорировать Туда ... текст свёрнут, показать
     
     
  • 9.193, Швондик (?), 14:28, 19/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вы для каких задач мне советуете OS 2 для z280 Опять - слышу звон, но не знаю г... текст свёрнут, показать
     
  • 2.75, Аноним (37), 16:34, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем DOS? Лучше какой-нить mini NIX.
     
     
  • 3.92, Швондик (?), 17:58, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ну NIX на ассумблере мне не подсилу, у меня вообще мозги куриные
     
  • 3.195, Швондик (?), 11:26, 21/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    уже есть, пользуйтесь
    https://github.com/hperaza/UZI180
     

  • 1.44, Wed (??), 14:06, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне больше нравится Nim вместо C.
     
     
  • 2.49, Аноним (1), 14:11, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Единственная норма это zig
     

  • 1.46, pavlinux (ok), 14:10, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    >  ..., но проще, чем Си.




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



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

     
     
  • 2.51, Аноним (1), 14:13, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Ты программировать то умеешь? Это дефолтное значение, а не константа.
     
     
  • 3.55, pavlinux (ok), 14:22, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • –8 +/
    > Это дефолтное значение, а не константа.

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

     
     
  • 4.58, Ананимус (?), 14:24, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > гoвнoкoдя, прикинь, это называется константа.  

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

     
     
  • 5.59, pavlinux (ok), 14:31, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> гoвнoкoдя, прикинь, это называется константа.
    > а в другом -- три?

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

     
     
  • 6.66, Ананимус (?), 15:14, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Там "по дефолту" не написано 34,   va_arg это отдельная тема, тоже корявость С  

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

     
     
  • 7.77, pavlinux (ok), 16:40, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> это довольно жирный плюс C

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

     
  • 7.145, Аноним (-), 09:19, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Потому что та же самая задача в C реализована через va_arg. И
    > нет, это не корявость, это довольно жирный плюс C, которого не
    > хватает в том же Rust.

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

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

     
     
  • 8.150, Ананимус (?), 11:59, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Через макросы Сильная сторона раста это годные макросы с нормальным доступом к ... текст свёрнут, показать
     
     
  • 9.153, Аноним (152), 13:09, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Годные макросы - это у Zig ... текст свёрнут, показать
     
     
  • 10.177, Аноним (-), 05:37, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Эти да, довели идею до абсолюта - все компил тайм вычисления с тем же синтаксисо... текст свёрнут, показать
     
  • 10.191, Ананимус (?), 22:33, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Они и у раста годные Тут не то чтобы только один может быть ... текст свёрнут, показать
     

  • 1.50, Аноним (48), 14:12, 16/07/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     ....ответы скрыты (3)

  • 1.63, Аноним (169), 15:01, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Есть вообще целый феномен языков-убийц С, напирающих на простоту Они не уточняю... большой текст свёрнут, показать
     
     
  • 2.69, Аноним (169), 16:14, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И ещё - в ядре линукса в 60 файлах используется _Generic. Язык расширили дженериками не без помощи макросов образца 1973 года и жить стало немного лучше.

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

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

    [1] https://github.com/systemd/systemd/blob/main/src/fundamental/macro-fundamental
    [2] https://github.com/systemd/systemd/blob/main/src/network/tc/tclass.h#L34

     
     
  • 3.97, 9392012938к8282 (?), 18:26, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    _Generic в C позволяет перегружать. Это не то, что обычно имеется в виду под дженериками (параметрический полиморфизм).
     
     
  • 4.122, Аноним (169), 22:46, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хм, да, это ad-hoc-полиморфизм и лучше _Generic дженериками не называть.

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

     
  • 2.188, Аноним (186), 21:18, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Зато можно спать спокойно, не взлетит. Нет у них таких денег на рекламу, как у гугла с голангом.
     

  • 1.74, zog (??), 16:31, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > for (let item .. items) {

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

     
     
  • 2.93, Аноним (93), 18:05, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Автор не знает, как везде. Потому и взялся за свой язык.
     

  • 1.104, Аноним (72), 19:07, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > x: int, y: int = 34

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

     
     
  • 2.114, 9392012938к8282 (?), 20:51, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Потому что в этом случае декларации читаются слева направо, а не по спирали, как в C.

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

     
     
  • 3.116, Аноним (72), 21:32, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я не спорю. Вообще по факту особой разницы нет.
    Просто зачем трындеть про сишечку?
     
     
  • 4.125, Аноним (169), 23:24, 16/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    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

     
     
  • 5.132, Аноним (72), 00:54, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну в принципе достаточно яркий пример синтаксиса, чтобы понять, почему дишечка мертворождённая.
     
     
  • 6.135, Аноним (169), 03:07, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > почему дишечка мертворождённая

    Не из-за синтаксиса же. Но я хотел указать правильное начало - справа от имени переменной нет частей её типа. Скобки массива перенесены влево, как в 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



     

  • 1.111, Аноним (111), 20:36, 16/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Всё это не нужно. Потому что текстовые AI модели про этот язык ничего не знают. И не надо говорить, что вы по старинке кодите. Даже в захудалых компаниях сейчас есть prompt engineer.
     
     
  • 2.147, Прохожий (??), 09:35, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Как показывает мой личный опыт, часто (не всегда) ИИ генерирует или неполный код, или вообще какую-то ахинею. Поэтому всё равно приходится самому в итоге вникать в тематику.
     
  • 2.168, kusb reg (ok), 22:12, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Они могут знать даже про те языки, которых не существует.
     

  • 1.146, Прохожий (??), 09:31, 17/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Смешанные впечатления о языке.

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

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

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

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

     
     
  • 2.149, Аноним (149), 11:08, 17/07/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Не уверен, что надо сколь-либо внимательно следить за развитием этого языка.

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

     
     
  • 3.183, Аноним (-), 18:54, 18/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да что с ним не так?
     

  • 1.184, Аноним (186), 21:00, 18/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Казалось бы, двадцать первый век, прогресс, но язык как-будьто из восьмидесятых. Прорывных идей в языке не видно, но язык до сих пор не стабилен(перепишите код при переходе на новую версию). Вместо работы, например над алгебраическими типами данных, автор делает foreach как костыль для отдельного случая, гораздо логичнее было бы дать рекурсию, вместе с map, fold, iter. В лучшем случае, автор переизобретёт условный паскаль, который и так есть, и мало кому нужен. Казалось бы есть куча разных идей, будь-то системный язык с зависимыми типами как ATS, оптимизирующий компилятор, как Clean, эффекты, как Eff или Koka, и так далее, но автор с умным видом продвигает посредственность.
     
  • 1.194, randomize (?), 15:17, 20/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Hare fits on a 3½" floppy disc — these will be available for purchase when Hare 1.0 is released!

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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