-- Leo's gemini proxy

-- Connecting to bbs.geminispace.org:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini; charset=utf-8

How do I reduce binary size when compiling a Hare program?


I compiled the example Hello World program as depicted on the official website, and the binary size is ~121kB after stripping. I then tried to rewrite the Hello World program using io::write and strings::toutf8, and the stripped binary is ~34kB. Is there any way to reduce binary size even further, using lto or compiler flags?


The source code of the modified Hello World is this:


use io;
use strings;
export fn main() void = {
        io::write(1, strings::toutf8("Hello, World!\n"))!;
};

Posted in: s/Harelang

🔭 DocEdelgas

2023-11-18 · 6 months ago


1 Comment


🔭 DocEdelgas [OP] · 2023-11-20 at 00:28:

Thanks for the reply. After checking the implementation of strings::toutf8 in the standard library, I rewrote the Hello World program like this:


use io;
export fn main() void = {
        let s: str = "Hello, World!\n";
        io::write(1, *(&s: *[]u8))!;
};

The resulting stripped binary is, unfortunately, the same size.

-- Response ended

-- Page fetched on Sun May 19 13:35:31 2024