Skip to content

Commit db23294

Browse files
committed
update readme regarding NLAMBDA and imacs
1 parent 71ee02a commit db23294

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

README.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ A more detailed presentation takes place/took place in Hong Kong Functional Prog
3333

3434
## status
3535

36-
The core is about 1000 lines of code. Total less than 3000 with xml/web server support.
36+
The core is about 1000 lines of code. Total around 4000 with extentions functions and xml/web server support.
3737

38-
I just have the first working [relase](https://github.com/yesco/esp-lisp/releases), got a editable readline interface! See the docs in [wiki](https://github.com/yesco/esp-lisp/wiki) for simple examples.
38+
It is now at it's 4th release [relase](https://github.com/yesco/esp-lisp/releases), it now even got a full screen editor functions (ala emacs), got a editable readline interface! See the docs in [wiki](https://github.com/yesco/esp-lisp/wiki) for simple examples.
3939

40-
Lot's of stuff is missing...
40+
The esp-lisp has been used to build some smaller game devices by other persons, still things being added.
4141

4242
## features
4343

@@ -49,9 +49,12 @@ Lot's of stuff is missing...
4949
- efficient storage of conses, with no overhead per cell, no tag word needed
5050
- inline (no overhead at all!) small ints, short symbols (<=6 chars) stored INSIDE POINTER!
5151
- tail recursion optimization using "immediate" thunks, handles mutual/self recursion
52-
- eval/neval primitive functions, no need for macros, no code explosion
52+
- eval/neval LAMBDA/NLAMBDA primitive functions, no need for macros, no code explosion [reddit](https://www.reddit.com/r/lisp/comments/4u19sf/esp_lisp/)
5353
- readline, with limited editing (backspace), similar to nodemcu lua
54+
- full screen editor function, like emacs implemented in ~500 lines single file [imacs](https://github.com/yesco/imacs).
5455
- interpreted
56+
- in/out/dht functions
57+
- interrupt (counting) api and callback functions
5558

5659
## performace
5760

@@ -67,7 +70,17 @@ In the read-eval loop:
6770
- CTRL-L will reprint line cleanly
6871
- CTRL-T print current status time/load
6972

70-
During evalation
73+
### Full screen emacs-style editing
74+
75+
Uses the [imacs](https://github.com/yesco/imacs) minimal editor implementation as a sub-project.
76+
77+
lisp> (define txt "foobar")
78+
lisp> (set! txt (edit txt))
79+
... edit in fullscreen! ...
80+
81+
(+ 3 4) ctrl-x ctrl-e ==> 7
82+
83+
### During evalation
7184
- CTRL-T print current status time/load and a compressed stack (names of functions only)
7285
- CTRL-C will "break" the code and print the stack, cleanup and go to top-level
7386
- 'kill -20 <pid>' in another will clear screen and print the current stack
@@ -119,15 +132,15 @@ It should contain something like:
119132

120133
- unix:esp-lisp> ./run
121134

122-
That will compile and run it on your desktop, it will also make the flash for the esp.
135+
That will compile and run it on your desktop.
123136

124137
- unix:esp-lisp> make flash
125138

126139
Flashes it to your esp-8266 device.
127140

128141
- unix:esp-lisp> ./mcu
129142

130-
To connect to it and run it.
143+
To connect to it and run it. Requires screen.
131144

132145
## Memory optimizations
133146

imacs

Submodule imacs updated 1 file

0 commit comments

Comments
 (0)