fixes & enhandcements

(benchmark code..) implemented
repl completion very first version
(string xx) added
some builtin renames
a bit of comments
a bit of cocumentation
(sleep interval) added
This commit is contained in:
2021-03-14 16:15:04 +01:00
parent 8fad428a4b
commit c4e4522492
12 changed files with 276 additions and 110 deletions

View File

@@ -1,27 +1,20 @@
### BUGS
- (read-file "nonexisting/file.csv") shows only "could not open file"
- (read-file "nonexisting/file.csv") shows only "could not open file" - should print filename
### TODO
- support for (), nil, t, in lsp code replace 0 by nil in logicals
- casting to string (like ti int and to float)
- some performance functionality (at least counting how many times symbol was evaluated)
- documentation
- add url of source/inspiration to clib/*.cpp
- add stdtest - to test every functionality
- rename ivaluize
- add benchmark
- add instrumentation (time, nr of evals, num of atoms, debug info, debug environment etc)
- in casting functions (as_string..)
- better exception description
- add debug support function call could keep call stack
- add better print (coloring output)
- add command line options -h for help, -v for version, -b for no stdlib.lsp on startup
- add readline like functionality (libnoise)
- multiline editting (kilo editor)
- execute system command should capture stderr
- add builtin or lib function sleep
- add built in for and, or
- add debug support
- add some mem stats to benchmark
- support for (), nil, t, in lsp code replace 0 by nil in logicals
- file functions
- name it here
- string functions
@@ -35,17 +28,17 @@
- env functions
- get env
- set env
- add hash datatype
- conversion functions like parse-integer
- in test.lisp some explaining prints
- format (sprintf)
- setq
- mapcar (funcall, apply)
- syntax highlighting do VS Code
- add hash datatype
#### Performance
- push_back - repeatedly without reserving size
- range - with for(int i...) and reserving result size can be 3times faster on (range 1 10000)
- mini_sprintf - unnecesary copying between vector and list
- (do ..) repeatedly assign to acc, maybe somewhere else
#### Install
```
@@ -55,7 +48,7 @@ cp stdlib/*.lsp /usr/local/var/mlisp/
#### Compile
```
gcc -o ml -I/usr/local/opt/openssl/include -Iclib -L/usr/local/lib -L/usr/local/opt/openssl/lib -lm -lstdc++ -lcrypto -lssl -Wl,-stack_size -Wl,0x1000000 --std=c++17 ml.cpp ml_io.cpp ml_date.cpp ml_string.cpp clib/json11.cpp clib/csvparser.cpp clib/sslclient.cpp clib/printf.cpp clib/linenoise.c
gcc -o ml -I/usr/local/opt/openssl/include -Iclib -L/usr/local/lib -L/usr/local/opt/openssl/lib -lm -lstdc++ -lcrypto -lssl -Wl,-stack_size -Wl,0x1000000 --std=c++17 ml.cpp ml_io.cpp ml_date.cpp ml_string.cpp ml_util.cpp clib/json11.cpp clib/csvparser.cpp clib/sslclient.cpp clib/printf.cpp clib/linenoise.c
```
or
cmake