<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: dinfuehr</title><link>https://news.ycombinator.com/user?id=dinfuehr</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 08 Apr 2026 11:47:53 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dinfuehr" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dinfuehr in "Show HN: Nova JavaScript Engine"]]></title><description><![CDATA[
<p>I see. Thanks for the answers btw!<p>I get your point but a few gaps here and there likely don't matter at all for performance. At least it's a lot better than making everything super compact all the time. Assuming you are splitting vectors at some points into chunks: In such a world you could choose to get rid of chunks with a lot of gaps and move the remaining entries into other chunks. At that point you really have a regular GC.<p>And the free list could be stored in the vector itself. E.g. if an entry is empty it would store the pointer to the next free entry. So all you need is a single head/tail index for each vector.<p>I also wonder how you handle pointers which could point into one of many vectors. E.g. a field could easily point either to an object or an array. Do you plan to pack this vector id into the 32-bit value? If so wouldn't there be a lot of dispatch like this as well:<p>if (index & VECTOR_ID_MASK == OBJECTS_VECTOR_ID) { return objects[index&VECTOR_INDEX_MASK]; } else { .. }<p>I hope it's clear what I mean with this.</p>
]]></description><pubDate>Tue, 19 Nov 2024 10:09:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=42181796</link><dc:creator>dinfuehr</dc:creator><comments>https://news.ycombinator.com/item?id=42181796</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42181796</guid></item><item><title><![CDATA[New comment by dinfuehr in "Show HN: Nova JavaScript Engine"]]></title><description><![CDATA[
<p>> The GC has to now move every object remaining in the vector down a step to make the vector dense again<p>Is there something which forces you to compact everything here? Or could you do what most GCs do and track that free entry in a free list?</p>
]]></description><pubDate>Mon, 18 Nov 2024 16:02:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=42173654</link><dc:creator>dinfuehr</dc:creator><comments>https://news.ycombinator.com/item?id=42173654</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42173654</guid></item><item><title><![CDATA[New comment by dinfuehr in "Show HN: Nova JavaScript Engine"]]></title><description><![CDATA[
<p>Would this mean that each shape/structure/map get its own vector for each field in order for this to work?</p>
]]></description><pubDate>Mon, 18 Nov 2024 15:56:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=42173584</link><dc:creator>dinfuehr</dc:creator><comments>https://news.ycombinator.com/item?id=42173584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42173584</guid></item></channel></rss>