<feed xmlns='http://www.w3.org/2005/Atom'>
<title>fwd, branch gnc</title>
<subtitle>A programming language that cannot return</subtitle>
<id>https://metanimi.dy.fi/cgit/fwd/atom?h=gnc</id>
<link rel='self' href='https://metanimi.dy.fi/cgit/fwd/atom?h=gnc'/>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/'/>
<updated>2026-01-06T15:19:52Z</updated>
<entry>
<title>improve move checker to detect pointer leaks</title>
<updated>2026-01-06T15:19:52Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2026-01-06T15:17:27Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=99601456e6ad4c86287ba786923c99c5499037e0'/>
<id>urn:sha1:99601456e6ad4c86287ba786923c99c5499037e0</id>
<content type='text'>
+ Currently requires a lot of unnecessary `forget` statements,
  but at least some can likely be eliminated by doing some
  basic origin analysis, kind of like with groups
</content>
</entry>
<entry>
<title>allow omitting ';' in trivial calls</title>
<updated>2026-01-06T15:19:52Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2026-01-06T13:51:30Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=64146b46da45ce69ab380add00459f7b60fe9196'/>
<id>urn:sha1:64146b46da45ce69ab380add00459f7b60fe9196</id>
<content type='text'>
</content>
</entry>
<entry>
<title>work towards a simple integer vector implementation</title>
<updated>2026-01-06T15:19:52Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-12-28T22:07:16Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=c7b41b47d038fd4973da05224b7aa29efaae1784'/>
<id>urn:sha1:c7b41b47d038fd4973da05224b7aa29efaae1784</id>
<content type='text'>
+ Hopefully shows that useful programs can be implemented with
  the rules present

+ Still missing at least external functions with non-void returns
</content>
</entry>
<entry>
<title>implement enough type analysis for vector example</title>
<updated>2026-01-06T15:19:52Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-05-07T18:22:38Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=d501b2c9ebab6f5b90c808ea0e5fde912818707d'/>
<id>urn:sha1:d501b2c9ebab6f5b90c808ea0e5fde912818707d</id>
<content type='text'>
+ Big commit, scary
+ Some details still a bit up in the air, mainly about move checking
  structure member access ('register' types are freely copied I guess,
  same as in rust? How about user types?)
</content>
</entry>
<entry>
<title>small build system improvements</title>
<updated>2025-08-10T18:44:58Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-08-10T18:44:43Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=49320376a1ba3fcc7eba7ceda2c728649ee8323e'/>
<id>urn:sha1:49320376a1ba3fcc7eba7ceda2c728649ee8323e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Copy individual fields instead of a whole struct</title>
<updated>2025-05-01T12:21:25Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-05-01T12:21:25Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=1fadcec6d7b26d34edf3b5b3a293deea0edb4139'/>
<id>urn:sha1:1fadcec6d7b26d34edf3b5b3a293deea0edb4139</id>
<content type='text'>
+ Still not quite as robust as I'd like (and the autovectorization
  problem persists) but at least there shouldn't be a risk of
  overwriting a field following the parameters
</content>
</entry>
<entry>
<title>WIP: rewrite C++ backend to be C</title>
<updated>2025-03-30T19:41:21Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-03-30T19:36:53Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=957da9056c36a5eea15c6058701f7465b31f64a8'/>
<id>urn:sha1:957da9056c36a5eea15c6058701f7465b31f64a8</id>
<content type='text'>
+ C allows for a bit more control, and we can manually handle closure
  contexts. For example `examples/fib.fwd` now works for effectively any
  `n`, pretty cool.

+ Fairly slow Fibonacci, I must admit. Initial profiling indicates it's
  mainly due to branch mispredictions, but I'll have to look into this a
  bit deeper.

+ The code is a bit hacked together, for now I'm more interested in
  getting things working, I'll worry about making things pretty later.

+ For testing, there's also initial support for modules, just so I can
  print stuff to the terminal

+ This commit is way too big, lol
</content>
</entry>
<entry>
<title>start sketching out type system</title>
<updated>2025-03-23T20:29:11Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-03-23T20:29:11Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=c87f5a8871edf6880b894a00b180c554ffd46d0a'/>
<id>urn:sha1:c87f5a8871edf6880b894a00b180c554ffd46d0a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>use maps in scope</title>
<updated>2025-03-22T14:36:18Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-03-22T14:36:18Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=350f6c40fa18c35bde9489225175c82de44ba709'/>
<id>urn:sha1:350f6c40fa18c35bde9489225175c82de44ba709</id>
<content type='text'>
</content>
</entry>
<entry>
<title>improve printing</title>
<updated>2025-03-22T13:40:15Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-03-22T13:40:15Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=199d1342d76b5cae6503fa0a97322d2658d43b5f'/>
<id>urn:sha1:199d1342d76b5cae6503fa0a97322d2658d43b5f</id>
<content type='text'>
</content>
</entry>
</feed>
