From 32b8fac2799ac7cec613e84a3eb9c009141b6a3a Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Mon, 25 Apr 2016 22:27:19 -0700 Subject: 2866 --- index.html | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'index.html') 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.
Various primitive operations: on numbers, booleans, for control flow, and comparing values. +
026call.cc: calls to functions look +just like primitive operations. +
027call_ingredient.cc: how +functions pass arguments or 'ingredients' without introducing any syntax and +breaking the metaphor of functions as lists of instructions. +
028call_reply.cc: functions can +return arbitrary numbers of values to their callers.
029tools.cc: various primitive operations to help with testing and debugging.

030container.cc: Mu supports compound types calledcontainers akin to records, structs or classes. -
031address.cc: adding and removing -layers of indirection to Mu data. -
032array.cc: all Mu data structures +
031array.cc: all Mu data structures are bounds-checked. -
033exclusive_container.cc: +
032exclusive_container.cc: tagged unions or sum types. -
034call.cc: calls to functions look -just like primitive operations. -
035call_ingredient.cc: how -functions pass arguments or 'ingredients' without introducing any syntax and -breaking the metaphor of functions as lists of instructions. -
036call_reply.cc: functions can -return arbitrary numbers of values to their callers. -
037new.cc: rudimentary memory -allocator that is aware of all global types in any Mu program. -
061recipe.cc: passing functions +
033address.cc: 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). + +

061recipe.cc: passing functions around as first-class values in higher-order functions.
062scheduler.cc: running multiple functions concurrently using routines that might execute in -- cgit 1.4.1-2-gfad0