LINUX.ORG.RU

Доступен язык программирования Hare

 hare, ,


1

5

Впервые представлен широкой публике язык программирования Hare, который разрабатывает Дрю ДеВолт (автор Sway и SourceHut) со своей командой последние пару лет.
Hare — язык для системного программирования с минималистичным рантаймом, статической типизацией и ручным управлением памятью.

Исходный код компилятора предоставляется под лицензией GPLv3, а для стандартной библиотеки под лицензией MPL (Mozilla Public License). Компилятор Hare не основан на LLVM или GCC, а использует легковесный qbe. Программы на Hare не линкуются с libc по умолчанию.

На данный момент заявлена поддержка архитектур x86_64, aarch64 и riscv64, а также операционных систем Linux и FreeBSD. Поддержкой несвободных платформ команда заниматься не намеревается и предлагает это делать сторонним разработчикам, благо язык хорошо стандартизован.

На Hare уже есть написанные проекты; например, микроядро Helios.

Пример кода:

use crypto::sha256;
use encoding::hex;
use fmt;
use hash;
use io;
use os;

export fn main() void = {
	const hash = sha256::sha256();
	const file = os::open("main.ha")!;
	defer io::close(file);
	io::copy(&hash, file)!;

	let sum: [sha256::SIZE]u8 = [0...];
	hash::sum(&hash, sum);
	hex::encode(os::stdout, sum)!;
	fmt::println()!;
};

>>> Подробности

★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 5)

Ответ на: комментарий от Psilocybe

Да, пару десятков. Мертвичина как есть.

liksys ★★★☆
()
Ответ на: комментарий от saahriktu

Самые разные люди для самых разных целей.

Это словоблудие из разряда «не всем нужен юникод». Конкретизируй.

Не очень много, но есть. Уже приводили списки.

В студию.

На github’е его поисковик находит 5117 репозиториев с кодом

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

Из линуксового софта на Паскале известны, например, CudaText, Double Commander, PeaZip, eMKatic,… и т.д.

Кому известны? Я вот только про CudaText слышал. Меньше 1к старов на гитхабе, 20 контрибьютеров. Судя по всему, он нужен только тем, кто его разрабатывает, и еще паре сотен человек. Это ни о чем вообще. Почти весь софт на паскале - какая-то маргинальщина, за редкими исключениями.

Вы уж определитесь

Логика уровня «дом-табурет-плутон». Да, вакансии нужны, это показатель живости языка. Если вакансий нет (или около того) - язык мёртв.

liksys ★★★☆
()
Ответ на: комментарий от liksys

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

Я и код, который люди пишут в стол (никуда не выкладывают), но при этом применяют для каких-то своих целей, считаю за код. Так правильнее.

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

А уже набранные 10-20 лет назад команды программистов вполне могут поддерживать в т.ч. и проприетарщину на Delphi.

какая-то маргинальщина

Нормальный софт. Это в Вас какой-то снобизм говорит.

saahriktu ★★★★★
()
Ответ на: комментарий от derlinux

Hare

Харе

А нет.рес.нет(Java-кэк)? Динамического линковщика и сборщика мусора нет.

Woofywoof
()
Последнее исправление: Woofywoof (всего исправлений: 1)
Ответ на: комментарий от Xintrea

const file = os::open(«main.ha»)!; defer io::close(file);

Не совсем понял. Открытие файла происходит через функцию в пространстве имен os, а закрытие в пространстве имен io? Никто не запрещает так делать, но зочем?

В Си++ тоже никто ifstream и ofstream отдельно не запрещает пользоваться вместо fstream.

Woofywoof
()
Ответ на: комментарий от beastie

У нас семейный анекдот есть. Мама работала в Красном Университете на кафедре «Химия и Анализ Редких Элементов». Сокращённо ХАРЭ. Так вот звонит какая-та тётя на кафедру. Дело было в восьмидесятых. Мамам берёт трубку и отвечает. «ХАРЭ». На что тётя сильно возмутилась «Девушка, чего вы ругаетесь!?».

Может не редких, а редкоземельных?

Woofywoof
()
Ответ на: комментарий от bioreactor

Hare Krishna!

А когда от какой-то ужасной работы с указателями память заканчивается кричать «Hare RAM’аllocation»?

Woofywoof
()
Последнее исправление: Woofywoof (всего исправлений: 1)
Ответ на: комментарий от shkolnick-kun

Надо было назвать Hatе, взять Маяковского в качестве маскота и принять WTFCoC.

Ага и компилировать в Облаке в Штанах, а не в Штатах! СоеДИТЁнные Штаны - если Одесса - одесса мать, то Нью-йорк - одесса отец.

Woofywoof
()
Ответ на: комментарий от Oldboy

ну что значит «уже было»? вон, си-подобных уже 100500 наклепали и новые всё продолжают и ничо

mumpster ★★★★★
()

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

use errors;
use fmt;
use fs;
use fs::{flags};
use io;
use os;
use strings;

export fn main() void = {
	const path = os::args[1];
	match (writehello(path)) {
	case void =>
		yield;
	case let err: fs::error =>
		fmt::fatal("Error writing {}: {}", path, fs::strerror(err));
	case let err: io::error =>
		fmt::fatal("Error writing {}: {}", path, io::strerror(err));
	};
};

fn writehello(path: str) (fs::error | io::error | void) = {
	const oflags = flags::WRONLY | flags::TRUNC;
	const file = os::create(path, 0o644, oflags)?;
	defer io::close(file)!;
	const buf = strings::toutf8("Hello world!\n");
	io::write(file, buf)?;
};

Psilocybe ★★★★
()
Ответ на: комментарий от saahriktu

Еще раз, а то тут решили комментарии почистить.

Все эти Ваши вопросы, по ходу, от того, что Вы не считаете код написанный не на работе за зарплату за код.

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

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

Это один из показателей живости. Второй показатель - наличие активно поддерживаемых значимых проектов. На паскале таких нет. Суммируем: паскаль мёртв.

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

liksys ★★★☆
()
Последнее исправление: liksys (всего исправлений: 2)
Ответ на: комментарий от liksys

При чём тут какие-то «широко используемые проекты»? Это винда и софт под винду. Тут это оффтопик. Тут мы говорим про то, чем пользуются не более чем 1-2 % юзеров. При этом, это живой софт.

Это один из показателей живости.

Это Ваши проблемы, что Вы выделяете такие критерии.

Если я напишу свежий код на PL/1 и опубликую на гитхабе, язык от этого не оживёт.

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

А если есть знающие язык люди и есть новый код на этом языке, то язык жив.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

При чём тут какие-то «широко используемые проекты»?

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

Это Ваши проблемы, что Вы выделяете такие критерии.

Это объективные критерии и твои личные проблемы, что ты их не принимаешь.

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

BASIC тоже знают старые и молодые, потому что его учат в школе. Это не делает язык более живым.

А если есть знающие язык люди и есть новый код на этом языке, то язык жив.

COBOL.

liksys ★★★☆
()
Последнее исправление: liksys (всего исправлений: 2)
Ответ на: комментарий от liksys

Я вот только про CudaText слышал. Меньше 1к старов на гитхабе, 20 контрибьютеров. Судя по всему, он нужен только тем, кто его разрабатывает, и еще паре сотен человек. Это ни о чем вообще.

Я лично оценил количество юзеров CudaText в 400…2000 человек. Потому что скачки идут. Можно посмотреть их число. И потом еще по скачкам аддонов я оценил - тоже намекает что юзеров более 200-500.

Alexey_Tor_
()

Will Hare replace C? Or Rust? Or Zig? Or anything else?

I was pretty frustrated to see the “Hare is a C replacement” mantra repeated in the media despite issuing no such claims. I am even more frustrated with the moral crusaders from languages like Rust, one of whom went as far as to suggest that I should personally be criminally prosecuted if some downstream Hare software has a use-after-free bug. My goal is not to force anyone who doesn’t like Hare to use it, or issue judgements upon projects which choose another language. In return, I will be pleased if members of other language communities refrain from flaming too much on Hare.

dataman ★★★★
()
Ответ на: комментарий от EXL

Синтаксисом. fn вот это. Ещё чем-то неуловимым. Но лучше сравнить с Rust, конечно.

Wizard_ ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.