<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Futhark Developer Blog</title>
    <subtitle><![CDATA[High-performance purely functional data-parallel array programming on the GPU]]></subtitle>
    <link href="http://futhark-lang.org/atom.xml" rel="self" />
    <link href="http://futhark-lang.org" />
    <id>http://futhark-lang.org/atom.xml</id>
    <author>
        <name>Troels Henriksen</name>
        
        <email>athas@sigkill.dk</email>
        
    </author>
    <updated>2026-07-04T00:00:00Z</updated>
    <entry>
    <title>The cost of constants</title>
    <link href="http://futhark-lang.org/blog/2026-07-04-the-cost-of-constants.html" />
    <id>http://futhark-lang.org/blog/2026-07-04-the-cost-of-constants.html</id>
    <published>2026-07-04T00:00:00Z</published>
    <updated>2026-07-04T00:00:00Z</updated>
    <summary type="html"><![CDATA[While assigning a cost model to constants in a programming language isn't exceedingly complicated, there are still some quirks that are interesting to think about.]]></summary>
</entry>
<entry>
    <title>Data parallel pretty-printing</title>
    <link href="http://futhark-lang.org/blog/2026-06-18-data-parallel-pretty-printing.html" />
    <id>http://futhark-lang.org/blog/2026-06-18-data-parallel-pretty-printing.html</id>
    <published>2026-06-18T00:00:00Z</published>
    <updated>2026-06-18T00:00:00Z</updated>
    <summary type="html"><![CDATA[A case study in how to pretty-print expression trees in Futhark.]]></summary>
</entry>
<entry>
    <title>Futhark 0.26.3 released - now with property-based testing</title>
    <link href="http://futhark-lang.org/blog/2026-05-27-futhark-0.26.3-released.html" />
    <id>http://futhark-lang.org/blog/2026-05-27-futhark-0.26.3-released.html</id>
    <published>2026-05-27T00:00:00Z</published>
    <updated>2026-05-27T00:00:00Z</updated>
    <summary type="html"><![CDATA[A quick release with not too much new stuff, but one very big things that I hope will eventually change how we test Futhark programs.]]></summary>
</entry>
<entry>
    <title>Benchmarking a real Futhark application</title>
    <link href="http://futhark-lang.org/blog/2026-05-22-benchmarking-a-real-futhark-application.html" />
    <id>http://futhark-lang.org/blog/2026-05-22-benchmarking-a-real-futhark-application.html</id>
    <published>2026-05-22T00:00:00Z</published>
    <updated>2026-05-22T00:00:00Z</updated>
    <summary type="html"><![CDATA[Futhark has good tools for benchmarking programs specifically written to be benchmarks, but what happens when you have a full program and you want to investigate how it works? This post tells you what ought to happen.]]></summary>
</entry>
<entry>
    <title>Count trailing zeros</title>
    <link href="http://futhark-lang.org/blog/2026-05-06-count-trailing-zeros.html" />
    <id>http://futhark-lang.org/blog/2026-05-06-count-trailing-zeros.html</id>
    <published>2026-05-06T00:00:00Z</published>
    <updated>2026-05-06T00:00:00Z</updated>
    <summary type="html"><![CDATA[A fun little parallel programming problem, complete with property-based testing.]]></summary>
</entry>
<entry>
    <title>Breaking ten years of API compatibility</title>
    <link href="http://futhark-lang.org/blog/2026-04-29-breaking-api-compatibility.html" />
    <id>http://futhark-lang.org/blog/2026-04-29-breaking-api-compatibility.html</id>
    <published>2026-04-29T00:00:00Z</published>
    <updated>2026-04-29T00:00:00Z</updated>
    <summary type="html"><![CDATA[The Futhark C API has been remarkably stable, but it is unfortunately time to break it.]]></summary>
</entry>
<entry>
    <title>Value-oriented programming in Futhark</title>
    <link href="http://futhark-lang.org/blog/2026-04-22-value-oriented-programming.html" />
    <id>http://futhark-lang.org/blog/2026-04-22-value-oriented-programming.html</id>
    <published>2026-04-22T00:00:00Z</published>
    <updated>2026-04-22T00:00:00Z</updated>
    <summary type="html"><![CDATA[Futhark isn't really a functional language - it is a value-oriented language, and while the distinction is not particularly precise, it affects how you think about things.]]></summary>
</entry>
<entry>
    <title>How should property-based tests be defined in Futhark?</title>
    <link href="http://futhark-lang.org/blog/2026-03-25-property-based-testing.html" />
    <id>http://futhark-lang.org/blog/2026-03-25-property-based-testing.html</id>
    <published>2026-03-25T00:00:00Z</published>
    <updated>2026-03-25T00:00:00Z</updated>
    <summary type="html"><![CDATA[Property-based testing is challenging to fit into a restricted language such as Futhark, but it turns out that the biggest question is a fairly superficial design issue about how to specify the tests - because many approaches are viable.]]></summary>
</entry>
<entry>
    <title>Scan-scatter fusion</title>
    <link href="http://futhark-lang.org/blog/2026-03-24-scan-scatter-fusion.html" />
    <id>http://futhark-lang.org/blog/2026-03-24-scan-scatter-fusion.html</id>
    <published>2026-03-24T00:00:00Z</published>
    <updated>2026-03-24T00:00:00Z</updated>
    <summary type="html"><![CDATA[Fusing an unusual pattern that occurs frequently in some kinds of programs.]]></summary>
</entry>
<entry>
    <title>Addressing a type system limitation with syntactic sugar</title>
    <link href="http://futhark-lang.org/blog/2026-03-04-array-record-updates.html" />
    <id>http://futhark-lang.org/blog/2026-03-04-array-record-updates.html</id>
    <published>2026-03-04T00:00:00Z</published>
    <updated>2026-03-04T00:00:00Z</updated>
    <summary type="html"><![CDATA[A discussion of mixed record/array updates, which turns out to address a problem that would otherwise require a rather complicated extension of the type system.]]></summary>
</entry>

</feed>
