1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/examples/lua_REPL
Juan I Carrano ee6b6b9c38 boards/mips-malta: remove board.
The mips-malta board is a maintainance burden, has no working UART input
and is unobtainable and thus must be removed.

1. Unobtainable board
=====================

The mips-malta board is not an off-the-shelf part. A quick web
search only show the MIPS website where one is told to "contact sales".

I could find it on ebay, used, at €155 and from single seller.

Not having access to the board means:

a. We cannot maintain it. In fact it could be broken right now.
b. Potential RIOT uses have not access to the board either. In other
   words, it is pointless to run on hardware nobody has.

2. No working UART input
========================

Not all applications need UART input, but that is no excuse for not supporting
it:

a. Makes development & debugging way harder.
b. It is impossible to run interactive tests.
 b.1. Constrains the rest of the platforms by providing an incentive to not
      make tests interactive.
c. The lack of UART is a witness to the poor quality of the port.

I want to stress point (c). If something as basic as a serial port cannot work,
how can we expect more complex fucntionality to work. The answer is impossible
to know, because of point (1).

3. Maintainance burden
======================

The RIOT project has limited time and human resources which can be better spent.

a. Compiling for mips-malta wastes CPU time.
b. Blacklisting the board in the test wastes contributor's time.
c. Adapting the board's makefile during build system rework takes time and makes
   the reworks harder.
 c.1. Add to that that the changes are most of the time not even tested on the board
      because of (1). Look at the github issues/PRs and you will see it.
d. Developers usually stick to the lowest common denominator. Issue (2) sets this
   denominator unacceptably low.

MIPS platform in general
========================

In commits I will address general issues in the MIPS platform and why it should all
be removed.
2019-07-12 12:24:52 +02:00
..
main.c examples/lua_REPL: cast pointer to void in printf 2018-08-03 11:03:59 +02:00
Makefile boards/mips-malta: remove board. 2019-07-12 12:24:52 +02:00
README.md examples/lua: Add REPL. 2018-07-02 15:39:31 +02:00
repl.lua examples/lua: Add REPL. 2018-07-02 15:39:31 +02:00

Lua interactive interpreter

About

This example shows how to run a Lua Read-Eval-Print loop. It works in a similar way to the lua shell that comes with your operating system's default lua installation.

How to run

Type make all flash to program your board. The lua interpreter communicates via UART (like the shell).

It is not recommended to use make term because the default RIOT terminal messes up the input and output and the REPL needs multi-line input. Instead, use something like miniterm.py from pyserial:

miniterm.py --eol LF --echo /dev/ttyACM0 115200

By default only some of the builtin modules are loaded, to preserve RAM. See the definition of BARE_MINIMUM_MODS in main.c.

Using the interpreter

See the Lua manual for the syntax of the language.

Each piece of single or multi-line input is compiled as a chunk and run. For this reason, issuing "local" definitions may not work as expected: the definitions will be local to that chunk only.