<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[i have seen true evil.]]></title><description><![CDATA[<p>i have seen true evil. yes.</p><p>mozilla firefox has a custom allocator that redefines/macros a bunch of malloc/free calls. it does this to intercept them, calling the real (system) allocator sparingly in large chunks, and its own for small allocations. useful for optimising lots of small allocations.</p><p>the code doesn't match obsd. llvm 19 was ok, 20+ is stricter. re-trying librewolf 149 build on obsd current, wiith llvm 19... otherwise i'll just build with --disable-jemalloc (i want to avoid that)</p>

<div class="row mt-3"><div class="col-12 mt-3"><img class="img-thumbnail" src="https://media.mas.to/media_attachments/files/116/398/434/942/097/507/original/942077f113528cb2.png" alt="Link Preview Image" /></div></div>]]></description><link>https://board.circlewithadot.net/topic/39d7c63f-047c-473d-9397-48d3beb854b1/i-have-seen-true-evil.</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 19:45:47 GMT</lastBuildDate><atom:link href="https://board.circlewithadot.net/topic/39d7c63f-047c-473d-9397-48d3beb854b1.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 13 Apr 2026 16:53:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 21:55:43 GMT]]></title><description><![CDATA[<span><a href="/user/libreleah%40mas.to" rel="ugc">@<span>libreleah</span></a></span> it's using syscalls implemented by the kernel (mmap and/or brk probably), but those aren't what firefox is reimplementing<br /><br />whatever firefox is doing does seem to break LD_PRELOADing another allocator, which is annoying. when I tried LD_PRELOADing mimalloc globally on alpine it broke audio/video playback]]></description><link>https://board.circlewithadot.net/post/https://berkeley.edu.pl/objects/87b3b710-4490-49c7-98ff-e2aa5cb690ea</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://berkeley.edu.pl/objects/87b3b710-4490-49c7-98ff-e2aa5cb690ea</guid><dc:creator><![CDATA[noisytoot@berkeley.edu.pl]]></dc:creator><pubDate>Mon, 13 Apr 2026 21:55:43 GMT</pubDate></item><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 21:44:00 GMT]]></title><description><![CDATA[<p><span><a href="/user/noisytoot%40berkeley.edu.pl">@<span>noisytoot</span></a></span> how asinine. yes, technically you are correct, but what, pray tell, implements said allocator that malloc returns pointers from?</p>]]></description><link>https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116399580145035456</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116399580145035456</guid><dc:creator><![CDATA[libreleah@mas.to]]></dc:creator><pubDate>Mon, 13 Apr 2026 21:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 19:41:52 GMT]]></title><description><![CDATA[<span><a href="/user/libreleah%40mas.to" rel="ugc">@<span>libreleah</span></a></span> malloc isn't a kernel function, it's part of libc]]></description><link>https://board.circlewithadot.net/post/https://berkeley.edu.pl/objects/767669aa-e6d4-4e2e-9793-d542bbb32742</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://berkeley.edu.pl/objects/767669aa-e6d4-4e2e-9793-d542bbb32742</guid><dc:creator><![CDATA[noisytoot@berkeley.edu.pl]]></dc:creator><pubDate>Mon, 13 Apr 2026 19:41:52 GMT</pubDate></item><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 18:26:25 GMT]]></title><description><![CDATA[<p>fuck u mozilla</p><p>--- memory/build/mozjemalloc.cpp.orig<br />+++ memory/build/mozjemalloc.cpp<br />@@ -5257,7 +5257,7 @@ static void replace_malloc_init_funcs(malloc_table_t* table) {<br /> <a href="https://mas.to/tags/endif" rel="tag">#<span>endif</span></a><br /> <br /> <a href="https://mas.to/tags/define" rel="tag">#<span>define</span></a> NOTHROW_MALLOC_DECL(...) \<br />-  MOZ_MEMORY_API MACRO_CALL(GENERIC_MALLOC_DECL, (noexcept(true), __VA_ARGS__))<br />+  MOZ_MEMORY_API MACRO_CALL(GENERIC_MALLOC_DECL, (, __VA_ARGS__))</p><p>u will not defeat me mozilla</p>]]></description><link>https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116398803190278010</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116398803190278010</guid><dc:creator><![CDATA[libreleah@mas.to]]></dc:creator><pubDate>Mon, 13 Apr 2026 18:26:25 GMT</pubDate></item><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 18:21:22 GMT]]></title><description><![CDATA[<p><span><a href="/user/libreleah%40mas.to">@<span>libreleah</span></a></span><br />Aaaaaaaaaaa</p>]]></description><link>https://board.circlewithadot.net/post/https://mstdn.social/users/ozzelot/statuses/116398783349316636</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://mstdn.social/users/ozzelot/statuses/116398783349316636</guid><dc:creator><![CDATA[ozzelot@mstdn.social]]></dc:creator><pubDate>Mon, 13 Apr 2026 18:21:22 GMT</pubDate></item><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 17:21:17 GMT]]></title><description><![CDATA[<p><span><a href="/user/thelancashireman%40hostux.social">@<span>TheLancashireman</span></a></span> i mean, i wrap malloc in my programs too (mostly to check nulls and such - and i wrap free and make it set a pointer to null after freeing - and my malloc wrapper will err if being given a pointer that isn't null).</p><p>but directly redefining functions, yeah, that's evil.</p>]]></description><link>https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116398547080053401</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116398547080053401</guid><dc:creator><![CDATA[libreleah@mas.to]]></dc:creator><pubDate>Mon, 13 Apr 2026 17:21:17 GMT</pubDate></item><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 17:14:39 GMT]]></title><description><![CDATA[<p><span><a href="/user/libreleah%40mas.to">@<span>libreleah</span></a></span> </p><p>There are some interesting edge cases where redefining malloc etc. is useful. Imagine a safety process that has specific requirements like near-constant time, no chance of a failure to allocate, etc.</p><p>But I wouldn't say a browser falls into that category ...</p>]]></description><link>https://board.circlewithadot.net/post/https://hostux.social/users/TheLancashireman/statuses/116398521006859432</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://hostux.social/users/TheLancashireman/statuses/116398521006859432</guid><dc:creator><![CDATA[thelancashireman@hostux.social]]></dc:creator><pubDate>Mon, 13 Apr 2026 17:14:39 GMT</pubDate></item><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 17:14:37 GMT]]></title><description><![CDATA[<p><span><a href="/user/libreleah%40mas.to" rel="nofollow noopener noreferrer">@<span>libreleah</span></a></span> Well, I guess I <em>should</em> have looked at your librewolf WIP before commenting</p>]]></description><link>https://board.circlewithadot.net/post/https://bsd.network/users/vlkrs/statuses/116398520884193045</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://bsd.network/users/vlkrs/statuses/116398520884193045</guid><dc:creator><![CDATA[vlkrs@bsd.network]]></dc:creator><pubDate>Mon, 13 Apr 2026 17:14:37 GMT</pubDate></item><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 17:10:03 GMT]]></title><description><![CDATA[<p><span><a href="https://bsd.network/@vlkrs">@<span>vlkrs</span></a></span> yeah, no idea why firefox builds on current. (though i didn't test-build that)</p><p>have a look here: <a href="https://codeberg.org/vimuser/librewolf-openbsd-port" rel="nofollow noopener"><span>https://</span><span>codeberg.org/vimuser/librewolf</span><span>-openbsd-port</span></a></p><p>i removed use of www/mozilla and put everything in one place. standalone port.</p><p>builds fine with llvm 19 on openbsd 7.8, when you use my stable-7.8 branch (uses librewolf 143)</p><p>149 (master branch on my port repo) needs some work. i'm rebuilding with</p><p>MODCLANG_VERSION = 19</p><p>hopefully that'll fix it for now. and either i, or upstream, will fix mozilla's allocator later.</p>]]></description><link>https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116398502967962354</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116398502967962354</guid><dc:creator><![CDATA[libreleah@mas.to]]></dc:creator><pubDate>Mon, 13 Apr 2026 17:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 17:07:34 GMT]]></title><description><![CDATA[<p><span><a href="/user/libreleah%40mas.to" rel="nofollow noopener noreferrer">@<span>libreleah</span></a></span> I didn't look deeply into librewolf, but firefox 149.0.2 hums along nicely on -current here, why not base your work on the existing port?</p>]]></description><link>https://board.circlewithadot.net/post/https://bsd.network/users/vlkrs/statuses/116398493192909486</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://bsd.network/users/vlkrs/statuses/116398493192909486</guid><dc:creator><![CDATA[vlkrs@bsd.network]]></dc:creator><pubDate>Mon, 13 Apr 2026 17:07:34 GMT</pubDate></item><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 17:05:28 GMT]]></title><description><![CDATA[<p>here's a thought: maybe *DON'T* redeclare kernel functions in your codebase? if you're having to write your own allocator, then you are hacking around a much deeper problem. but this is mozilla. anything is possible.</p>]]></description><link>https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116398484928755244</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116398484928755244</guid><dc:creator><![CDATA[libreleah@mas.to]]></dc:creator><pubDate>Mon, 13 Apr 2026 17:05:28 GMT</pubDate></item><item><title><![CDATA[Reply to i have seen true evil. on Mon, 13 Apr 2026 16:57:18 GMT]]></title><description><![CDATA[<p>i *will* have librewolf 149 compiling, TONIGHT, on openbsd -CURRENT</p><p>if building with llvm 19 still dosen't work, i'm going to gut mozilla's allocator myself, fixing all the declarations by hand.</p><p>using the system allocator directly (no intercept functions) is possible using --disable-jemalloc in ./configure, when building mozilla code. but that means using openbsd's... slow allocator, for every allocation. and that would make the javascript engine slow as molasses.</p><p>mozilla firefox is a sin.</p>]]></description><link>https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116398452771653098</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://mas.to/users/libreleah/statuses/116398452771653098</guid><dc:creator><![CDATA[libreleah@mas.to]]></dc:creator><pubDate>Mon, 13 Apr 2026 16:57:18 GMT</pubDate></item></channel></rss>