<feed xmlns='http://www.w3.org/2005/Atom'>
<title>fwd/lib, 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>2025-03-30T19:41:21Z</updated>
<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>add move queues</title>
<updated>2025-03-18T16:37:00Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-03-18T16:37:00Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=3d7713b5af2e1229949b31dcce74c7aba1fe042a'/>
<id>urn:sha1:3d7713b5af2e1229949b31dcce74c7aba1fe042a</id>
<content type='text'>
+ Returning blocks don't want to show moves for subsequent statements,
  but do want to show them for possible closure callers above.
</content>
</entry>
<entry>
<title>improve codegen</title>
<updated>2025-03-17T18:25:27Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-03-17T18:25:27Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=f9c5985ce715cb2b353d87a19fed71d9904b60ed'/>
<id>urn:sha1:f9c5985ce715cb2b353d87a19fed71d9904b60ed</id>
<content type='text'>
+ Probably kind of silly since I'll probably not use the C++ backend in
  the future but at least it's a bit easier to read what's going on

+ Total move checking doesn't seem to work in if statements, will have
  to fix at some point
</content>
</entry>
<entry>
<title>detect leaks</title>
<updated>2025-03-17T00:12:02Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-03-17T00:12:02Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=78bf3e039d77e3eb0d5e394273adb69b2b70a76d'/>
<id>urn:sha1:78bf3e039d77e3eb0d5e394273adb69b2b70a76d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>initial ptr stuff</title>
<updated>2025-01-09T21:00:01Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-01-09T21:00:01Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=2367a8b63c3bcfe62d1aaf7d82c0ab3622f3b16c'/>
<id>urn:sha1:2367a8b63c3bcfe62d1aaf7d82c0ab3622f3b16c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>implement move checking further</title>
<updated>2025-01-05T23:05:57Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2025-01-05T23:05:21Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=89bac537165bf262594cca343cb45e16a2167145'/>
<id>urn:sha1:89bac537165bf262594cca343cb45e16a2167145</id>
<content type='text'>
+ Enough that examples still compile, but missing references etc.
</content>
</entry>
<entry>
<title>add trailing closures</title>
<updated>2024-12-06T18:00:42Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-12-06T18:00:42Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=0cef986e6958a0a6a7e94e8256b0039709aed56b'/>
<id>urn:sha1:0cef986e6958a0a6a7e94e8256b0039709aed56b</id>
<content type='text'>
+ Useful for guard statements, not entirely sure about the final syntax
  but at least they're possible
</content>
</entry>
<entry>
<title>add types to parser</title>
<updated>2024-12-06T16:14:40Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-12-06T16:14:40Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=e5fda1c96af409065fedbe032b0f7908d9f312ac'/>
<id>urn:sha1:e5fda1c96af409065fedbe032b0f7908d9f312ac</id>
<content type='text'>
+ No actual type checking is implemented as of yet, but with references
  and pointers I should be able to start playing around with checking
  move semantics and so on

+ Might at some point also look into type propagation for let,
  annoying to have to specify the same thing twice.
</content>
</entry>
<entry>
<title>implement expression handling further</title>
<updated>2024-12-04T09:04:16Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-12-04T09:04:16Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=5d4b4ef80d8dc427b0e2803d50e439f76f06e17a'/>
<id>urn:sha1:5d4b4ef80d8dc427b0e2803d50e439f76f06e17a</id>
<content type='text'>
+ Add some notes about returning functions that I started thinking about
  as a result of the fib example
</content>
</entry>
<entry>
<title>initial commit</title>
<updated>2024-12-03T20:04:38Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-12-03T20:04:38Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/fwd/commit/?id=2253da61e9b3dd5408bed182ea08e5270156c17e'/>
<id>urn:sha1:2253da61e9b3dd5408bed182ea08e5270156c17e</id>
<content type='text'>
+ Lots of code copied from ek, so didn't have to start from scratch, but
  might mean there are some quirks here and there that made sense in ek
  but not necessarily here.
</content>
</entry>
</feed>
