more thinking around compatibility and governance
This commit is contained in:
parent
80d6db0760
commit
e43cdbeac8
63
README.md
63
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 ‘improve’ 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?
|
||||
|
||||
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.
|
||||
* [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`).
|
||||
|
||||
## Will it run any Lua [lcurses](https://github.com/lcurses/lcurses) program?
|
||||
The modules mentioned above are always available, just like standard Lua 5.1
|
||||
libraries. They're available in their entirety with one exception:
|
||||
|
||||
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 ‘clear’. Very much aspirational.
|
||||
|
||||
## Coda
|
||||
## Feedback
|
||||
|
||||
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.
|
||||
|
||||
Send all praise to them, brickbats to [me](http://akkartik.name/contact).
|
||||
[Here.](http://akkartik.name/contact)
|
||||
|
|
Loading…
Reference in New Issue