about summary refs log tree commit diff stats
path: root/README.md
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-11-21 18:02:27 -0800
committerKartik K. Agaram <vc@akkartik.com>2021-11-21 18:02:27 -0800
commite43cdbeac858c1fecae67c6ffcc62021356baed2 (patch)
treee97723ac5f3238541e4c008c51d3205f374ef05c /README.md
parent80d6db07604a47ac9594263c69bf2888e8b081d9 (diff)
downloadteliva-e43cdbeac858c1fecae67c6ffcc62021356baed2.tar.gz
more thinking around compatibility and governance
Diffstat (limited to 'README.md')
-rw-r--r--README.md63
1 files changed, 35 insertions, 28 deletions
diff --git a/README.md b/README.md
index 66f9ee1..0ae3792 100644
--- a/README.md
+++ b/README.md
@@ -12,9 +12,9 @@
 ## What's this, then?
 
 An extremely naïve, [brutalist](https://en.wikipedia.org/wiki/Brutalist_architecture)
-attempt at packaging up simple [Lua](http://www.lua.org) ([5.1](https://www.lua.org/manual/5.1))
-apps with almost all the stuff needed to edit and build them. You will need
-some Unix-like platform[1] with a C compiler and the ncurses and openssl libraries.
+attempt at packaging up simple [Lua](http://www.lua.org) apps with almost all
+the stuff needed to edit and build them. You will need some Unix-like
+platform[1] with a C compiler and the ncurses and openssl libraries.
 
 Here's how you run one of the example apps (the [Tower of Hanoi](https://en.wikipedia.org/wiki/Tower_of_Hanoi)):
 
@@ -66,47 +66,54 @@ them in Teliva and let people use regular Lua. Or other platforms!
   support for graphics at the moment.
 
 - Teliva initializes the ncurses library by default, so apps should assume
-  they have access to a text-mode window for printing text to, and a keyboard
-  for reading unbuffered keystrokes from.
+  they have access to a (color, UTF-8) text-mode window for printing text to,
+  and a keyboard for reading unbuffered keystrokes from.
 
 - I want to provide sandboxed access to system resources (file system,
   network, etc.) which will likely create incompatibilities with the standard
   library. I'm disinclined to try to &lsquo;improve&rsquo; on Lua syntax,
   however. It's not my favorite, but it's good enough.
 
+- To create a well-behaved sandbox, Teliva includes a small set of native
+  libraries and doesn't support adding more native libraries.
+
 Teliva is not tested much at all yet. This is my first time programming either
 in Lua or within Lua. So bug reports are most appreciated if Lua programs
 behave unexpectedly under Teliva.
 
-## Will it run any ncurses program?
+## What's included?
+
+* [Lua 5.1](https://www.lua.org/manual/5.1)
+* The [ncurses](https://tldp.org/HOWTO/NCURSES-Programming-HOWTO) library for
+  building text-mode user interfaces. ([Alternative documentation](https://tldp.org/LDP/lpg-0.4.pdf))
+* The [Kilo](https://github.com/antirez/kilo) text editor, modified to use
+  ncurses. (Read more about it in this [fantastic walk-through](https://viewsourcecode.org/snaptoken/kilo).)
+* The [lcurses](https://github.com/lcurses/lcurses) binding for ncurses (as
+  module `curses`).
+* The [luasocket](https://w3.impa.br/~diego/software/luasocket) library of
+  networking primitives (modules `socket`, `http`, `url`, `headers`, `mime`,
+  `ltn12`).
+* The [luasec](https://github.com/brunoos/luasec) library for HTTPS support
+  (modules `https` and `ssl`).
+* The [json.lua](https://github.com/rxi/json.lua) library for
+  serializing/deserializing to JSON (module `json`).
 
-Hopefully. ncurses is extremely portable; I don't test on all the
-configurations ncurses runs on. In particular, I assume terminals with colors
-and UTF-8 support.
+The modules mentioned above are always available, just like standard Lua 5.1
+libraries. They're available in their entirety with one exception:
 
-## Will it run any Lua [lcurses](https://github.com/lcurses/lcurses) program?
+* Some functions in lcurses have [additional smarts](https://github.com/lcurses/lcurses/blob/master/lib/curses.lua).
+  Teliva is consistent with the underlying ncurses.
 
-Some functions in lcurses have [additional smarts](https://github.com/lcurses/lcurses/blob/master/lib/curses.lua).
-Teliva is consistent with the underlying ncurses.
+While most things in these modules are currently available, I expect to delete
+capabilities throughout this stack as I discover features that don't fit well
+with the Teliva experience. If you use Teliva, please [introduce yourself](http://akkartik.name/contact)
+to me so that I am aware of your use cases. Anybody who is interested is
+welcome to join me in discussing its future direction.
 
 ## What's with the name?
 
 Teliva is the Tamil root for &lsquo;clear&rsquo;. Very much aspirational.
 
-## Coda
-
-In addition to Lua 1.5, Teliva forks or depends on:
-
-* The [ncurses](https://tldp.org/HOWTO/NCURSES-Programming-HOWTO) library for
-  building text-mode user interfaces. ([Alternative documentation](https://tldp.org/LDP/lpg-0.4.pdf))
-* The [lcurses](https://github.com/lcurses/lcurses) binding for ncurses.
-  ([Documentation](http://lcurses.github.io/lcurses))
-* The [Kilo](https://github.com/antirez/kilo) text editor. (Read more about it
-  in this [fantastic walk-through](https://viewsourcecode.org/snaptoken/kilo).)
-* The [luasocket](https://w3.impa.br/~diego/software/luasocket) library of
-  networking primitives.
-* The [luasec](https://github.com/brunoos/luasec) library for HTTPS support.
-* The [json.lua](https://github.com/rxi/json.lua) library for
-  serializing/deserializing to JSON.
+## Feedback
 
-Send all praise to them, brickbats to [me](http://akkartik.name/contact).
+[Here.](http://akkartik.name/contact)