You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+20-7Lines changed: 20 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,11 +33,11 @@ A more detailed presentation takes place/took place in Hong Kong Functional Prog
33
33
34
34
## status
35
35
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.
37
37
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.
39
39
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.
41
41
42
42
## features
43
43
@@ -49,9 +49,12 @@ Lot's of stuff is missing...
49
49
- efficient storage of conses, with no overhead per cell, no tag word needed
50
50
- inline (no overhead at all!) small ints, short symbols (<=6 chars) stored INSIDE POINTER!
51
51
- 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/)
53
53
- 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).
54
55
- interpreted
56
+
- in/out/dht functions
57
+
- interrupt (counting) api and callback functions
55
58
56
59
## performace
57
60
@@ -67,7 +70,17 @@ In the read-eval loop:
67
70
- CTRL-L will reprint line cleanly
68
71
- CTRL-T print current status time/load
69
72
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
71
84
- CTRL-T print current status time/load and a compressed stack (names of functions only)
72
85
- CTRL-C will "break" the code and print the stack, cleanup and go to top-level
73
86
- 'kill -20 <pid>' in another will clear screen and print the current stack
@@ -119,15 +132,15 @@ It should contain something like:
119
132
120
133
- unix:esp-lisp> ./run
121
134
122
-
That will compile and run it on your desktop, it will also make the flash for the esp.
0 commit comments