about summary refs log tree commit diff stats
path: root/index.html
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-04-25 22:27:19 -0700
committerKartik K. Agaram <vc@akkartik.com>2016-04-25 22:27:19 -0700
commit32b8fac2799ac7cec613e84a3eb9c009141b6a3a (patch)
tree11f56c1a235abf7b626ea8983fff3d2edb1fcf98 /index.html
parent224972ee9871fcb06ee285fa5f3d9528c034d414 (diff)
downloadmu-32b8fac2799ac7cec613e84a3eb9c009141b6a3a.tar.gz
2866
Diffstat (limited to 'index.html')
-rw-r--r--index.html32
1 files changed, 18 insertions, 14 deletions
diff --git a/index.html b/index.html
index 1f72e0d6..36050d5d 100644
--- a/index.html
+++ b/index.html
@@ -89,27 +89,31 @@ harness for adding per-primitive checks to run before running a program.
 <br/>Various primitive operations: on <a href='html/022arithmetic.cc.html'>numbers</a>,
 <a href='html/023boolean.cc.html'>booleans</a>, for <a href='html/024jump.cc.html'>control flow</a>,
 and <a href='html/025compare.cc.html'>comparing values</a>.
+<br/><a href='html/026call.cc.html'>026call.cc</a>: calls to functions look
+just like primitive operations.
+<br/><a href='html/027call_ingredient.cc.html'>027call_ingredient.cc</a>: how
+functions pass arguments or 'ingredients' without introducing any syntax and
+breaking the metaphor of functions as lists of instructions.
+<br/><a href='html/028call_reply.cc.html'>028call_reply.cc</a>: functions can
+return arbitrary numbers of values to their callers.
 <br/><a href='html/029tools.cc.html'>029tools.cc</a>: various primitive
 operations to help with testing and debugging.
 
 <p/><a href='html/030container.cc.html'>030container.cc</a>: Mu supports
 compound types called<em>containers</em> akin to records, structs or classes.
-<br/><a href='html/031address.cc.html'>031address.cc</a>: adding and removing
-layers of indirection to Mu data.
-<br/><a href='html/032array.cc.html'>032array.cc</a>: all Mu data structures
+<br/><a href='html/031array.cc.html'>031array.cc</a>: all Mu data structures
 are bounds-checked.
-<br/><a href='html/033exclusive_container.cc.html'>033exclusive_container.cc</a>:
+<br/><a href='html/032exclusive_container.cc.html'>032exclusive_container.cc</a>:
 tagged unions or sum types.
-<br/><a href='html/034call.cc.html'>034call.cc</a>: calls to functions look
-just like primitive operations.
-<br/><a href='html/035call_ingredient.cc.html'>035call_ingredient.cc</a>: how
-functions pass arguments or 'ingredients' without introducing any syntax and
-breaking the metaphor of functions as lists of instructions.
-<br/><a href='html/036call_reply.cc.html'>036call_reply.cc</a>: functions can
-return arbitrary numbers of values to their callers.
-<br/><a href='html/037new.cc.html'>037new.cc</a>: rudimentary memory
-allocator that is aware of all global types in any Mu program.
-<br/><a href='html/061recipe.cc.html'>061recipe.cc</a>: passing functions
+<br/><a href='html/033address.cc.html'>033address.cc</a>: Mu requires you to
+manually manage memory. However, it provides transparent refcounting for all
+addresses, making it entirely safe from the sorts of undefined behavior and
+security vulnerabilities that plague C. Compared to Rust, Mu gives up some
+runtime efficiency in exchange for C-like flexibility (you can copy addresses
+around all you like, and write from any copy of an address) and simpler
+implementation (since I punt on Rust's static analysis).
+
+<p/><a href='html/061recipe.cc.html'>061recipe.cc</a>: passing functions
 around as first-class values in higher-order functions.
 <br/><a href='html/062scheduler.cc.html'>062scheduler.cc</a>: running multiple
 functions concurrently using <em>routines</em> that might execute in