<feed xmlns='http://www.w3.org/2005/Atom'>
<title>aup/examples/words.aup, branch master</title>
<subtitle>Declarative systems language and compiler targeting verified Pure modules.
</subtitle>
<id>http://git.yeowoo.org/aup/atom?h=master</id>
<link rel='self' href='http://git.yeowoo.org/aup/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/aup/'/>
<updated>2026-09-25T14:14:08Z</updated>
<entry>
<title>Add fns and libraries</title>
<updated>2026-09-25T14:14:08Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-25T14:14:08Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/aup/commit/?id=c298c2eec0b7ec0fcdacb8f661a9da3c184d2960'/>
<id>urn:sha1:c298c2eec0b7ec0fcdacb8f661a9da3c184d2960</id>
<content type='text'>
fn name(params) = value declares one expression, inlined where it is
called: arguments are computed once onto the stack and the body reads them
with PICK, so a fn costs no runtime call and keeps Pure's bound on work.
Parameters take any kind of value; recursion is a compile error.

use name reads name.aup beside the source or from AUP_PATH. A library
declares only fns and uses, sees only its parameters, and is called as
name.fn(...). Diagnostics now carry the file they are in, and the
compiler takes a loader so that sources come from the host.

examples/words.aup is such a library; examples/tasks.aup uses it and still
matches its reference model.

</content>
</entry>
</feed>
