From 9570363aec35e187e2395b1760a4b94e71580ac9 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Wed, 29 Jul 2015 15:55:05 -0700 Subject: 1885 --- index.html | 45 ++++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) (limited to 'index.html') diff --git a/index.html b/index.html index 40aea7b9..422f3a30 100644 --- a/index.html +++ b/index.html @@ -35,7 +35,7 @@ also supports first-class functions and delimited continuations.
  • simple examples showing off support for concurrency: fork.mu, channel.mu
  • simple examples showing off hardware control: display.mu, -keyboard.mu. +console.mu.
  • screen.mu: example program showing print primitives that inject a screen dependency which can be faked for testing. @@ -109,31 +109,34 @@ synchronization between routines.

    Part III: transforms to provide 80% of the benefits of high-level languages. -
    040brace.cc: how mu provides +
    040brace.cc and +041jump_label.cc: how mu provides structured goto-less programming without introducing the syntax of conditionals and loops other languages require. -
    041name.cc: how mu transforms variable +
    042name.cc: how mu transforms variable names to raw memory addresses. -
    042new.cc: rudimentary memory +
    043new.cc: rudimentary memory allocator that is aware of all global types in any mu program. -
    043space.cc: how variables in +
    044space.cc: how variables in different routines are isolated from each other using spaces. Mu ‘local variables’ are allocated on the heap. -
    044space_surround.cc: +
    045space_surround.cc: Chaining spaces together to accomodate variables with varying lifetimes and ownership properties. -
    045closure_name.cc: how spaces +
    046closure_name.cc: how spaces can implement lexical scope. -
    046tangle.cc: support for layers in +
    047global.cc: support for 'global' +variables that are always available inside a single routine. Mu has no +variables that are available transparently across routines. +
    048typecheck.cc: a simple +transformer to insert missing types in instructions. +
    050scenario.cc: mu's first syntax +— not for code but for tests. (example) +
    052tangle.cc: support for layers in mu programs. They've been so good to us. -
    047jump_label.cc: since we have -
    048call_variable.cc: -higher-order functions. -
    049continuation.cc: +
    053continuation.cc: first-class and delimited continuations, primitives for yield, exceptions and much else besides. -
    050scenario.cc: mu's first syntax -— not for code but for tests. (example)

    Part IV: beginnings of a standard library

    060string.mu: strings in mu are @@ -142,8 +145,14 @@ bounds-checked rather than null-terminated. They're also unicode-aware. only synchronization primitive, queues that can cause the routine reading or writing from them to stall without taking up CPU resources.
    062array.mu -
    063list.mu +
    063list.mu: linked lists where each +node points to the next, permitting fast insertion/deletion but slow for +search.
    064random.cc +
    065duplex_list.mu: doubly linked +lists that can be traversed both forwards and back. +
    066stream.mu: data structure to +efficiently append strings.

    Part V: Nascent tools for browsing mu codebases, and for teaching programming to non-programmers by getting them hooked on the value of tests. @@ -166,6 +175,12 @@ writing tests for keyboard and mouse using the fakes.
    080trace_browser.cc: a zoomable UI for inspecting traces generated by mu programs. Allows both scanning a high-level view and drilling down into selective details. +
    081run_interactive.cc: +hacky primitives for supporting the mu programming environment in edit.mu. +
    082persist.cc: more hacky +primitives for supporting saving/restoring sessions in the mu programming +environment.

    Epilogue: maps summarizing various address spaces, and the conventions that regulate their use in previous -- cgit 1.4.1-2-gfad0