<feed xmlns='http://www.w3.org/2005/Atom'>
<title>fwd/examples, branch master</title>
<subtitle>A programming language that cannot return</subtitle>
<id>https://metanimi.dy.fi/cgit/fwd/atom?h=master</id>
<link rel='self' href='https://metanimi.dy.fi/cgit/fwd/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/'/>
<updated>2026-05-01T19:43:13Z</updated>
<entry>
<title>remove examples in favour of tests</title>
<updated>2026-05-01T19:43:13Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2026-05-01T19:43:13Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=db3809488805fbdcd9d726d9ed45ad7335812bd1'/>
<id>urn:sha1:db3809488805fbdcd9d726d9ed45ad7335812bd1</id>
<content type='text'>
+ Might come up with proper examples at some point, but for now tests at
  least tell us if they're broken
</content>
</entry>
<entry>
<title>add initial reference invalidation</title>
<updated>2026-03-13T12:09:53Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2026-03-13T12:07:29Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=ed7da0d9e31e8dd6847e2e603f0d1943330cf4d0'/>
<id>urn:sha1:ed7da0d9e31e8dd6847e2e603f0d1943330cf4d0</id>
<content type='text'>
+ Makes vec example actually memory safe, which is cool

+ Specify owner &gt; sub relationships with "&gt;" in closure parameter
  lists, uses the same group idea as closure calls

+ Relies on users implementing functions in a consistent manner,
  since you can kind of do whatever with pointers. Presumably
  there would be a stdlib of vec/map/set etc. which applications
  could then use and by proxy be memory safe. Although some more
  checks wouldn't hurt, I suppose?

+ Not sure I like having reference invalidation be 'just a move',
  seems to work alright but the semantics of it are a bit muddy.
</content>
</entry>
<entry>
<title>fix vec example</title>
<updated>2026-02-26T15:45:31Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2026-02-26T15:45:31Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=25b8db28cf87708808744b97774c2a8427e129e2'/>
<id>urn:sha1:25b8db28cf87708808744b97774c2a8427e129e2</id>
<content type='text'>
+ Compiler works fine, example was borked :)

+ Although, not a very good example I must admit, it bashes a hole into
  my nice memory analysis plan :(
</content>
</entry>
<entry>
<title>add comment about hole in my assumptions</title>
<updated>2026-02-25T23:30:36Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2026-02-25T23:30:36Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=c134c59004175375e74b19216040078c6cbeb3c1'/>
<id>urn:sha1:c134c59004175375e74b19216040078c6cbeb3c1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>example/vec fixes</title>
<updated>2026-02-25T23:19:56Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2026-02-25T23:19:56Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=e36f35d0ee1132a8aa998891ca333ff0c4ed64c2'/>
<id>urn:sha1:e36f35d0ee1132a8aa998891ca333ff0c4ed64c2</id>
<content type='text'>
+ Doesn't quite work yet, but compiles fine. Some issues were in the
  example itself, heh
</content>
</entry>
<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>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>
</feed>
