← Home ← Back to /g/

Thread 105680443

10 posts 4 images /g/
Anonymous No.105680443 >>105680869 >>105681184 >>105684569
/chug/ - comfy hare users general
The purpose of this General is to discuss Hare, Low level and also systems programming in general.
Hare is a successor to C. Therefore, hare users are experts on C. Because of that, questions and discussion about C are also welcome.

What is Hare?
>https://harelang.org
>Hare is a systems programming language designed to be simple, stable, and robust. Hare uses a static type system, manual memory management, and a minimal runtime. It is well-suited to writing operating systems, system tools, compilers, networking software, and other low-level, high performance tasks.

What does Hare bring to the table?
>Staying loyal to C ideal of simplicity while revamping the error handling, module system and the standard library
Other than that, Hare doesn't deviate from C that much unlike Zig, Rust, etc. That is why Hare is best used by seasoned C developers who do not dislike C, but have only minor nitpicks with C.

Don't know how to write Hare? Start here:
General documentation: https://harelang.org/documentation/
General language introduction: https://harelang.org/tutorials/introduction
Standard library: https://harelang.org/tutorials/stdlib
Tsoding's review: https://www.youtube.com/watch?v=2E3E_Rh3mvw [Embed]

The flagship feature of Hare is the "Tagged Unions". C users who have used OCaml in the past will feel right at home!

type signed = (int | i8 | i16 | i32 | i64);
type unsigned = (uint | u8 | u16 | u32 | u64);
type integer = (...unsigned | ...signed);


Previous: >>105604073
Anonymous No.105680481 >>105680509
Hare 0.25.2 was just released.
https://harelang.org/blog/2025-06-21-hare-0.25.2-released/

The most interesting thing in my opinion is this paragraph:
>This release also adds support for semantic code annotations, to enrich your Hare code with additional metadata. Here’s an example of how this is being used to prototype JSON encoders and decoders for hare-json:

#[json::gen]
export type player = struct {
name: str,
#[json::field(name = "X", omit_null=true)]
x: *f64,
#[json::field(name = "Y", omit_null=true)]
y: *f64,
};


So this is Hare's answer to reflection. In-code tags + codegen tools. Codegen tools are actually baked into "hare" build driver itself, which is neat.
Anonymous No.105680509
>>105680481
Oopsie, messed up the code. Let's try that again.
#[json::gen]
export type player = struct {
name: str,
#[json::field(name = "X", omit_null=true)]
x: *f64,
#[json::field(name = "Y", omit_null=true)]
y: *f64,
};
Anonymous No.105680756 >>105682096
buy an ad
Anonymous No.105680869 >>105682096
>>105680443 (OP)
Nobody wants to use your language, pedophile fuck.

Buy an ad and stop making generals.

>sage
Anonymous No.105681184 >>105682096
>>105680443 (OP)
Go shill your garbage language to your troons, faggot
Anonymous No.105682096
>>105681184
>>105680869
>>105680756
You are mentally ill, bro. 3 posts in a row over nothing? You should consult a doctor or you will end up ACK-ing. Just saying.
Anonymous No.105682304 >>105683630
>json through tags and separate programs generating code
based or cring?
Anonymous No.105683630
>>105682304
Based
Anonymous No.105684569
>>105680443 (OP)
>What is Hare?
Useless.
>What does Hare bring to the table?
Nothing