flesh out todo list, better configure code

Signed-off-by: Ava Hahn <ava@aidanis.online>
This commit is contained in:
Ava Hahn 2023-01-21 16:12:21 -08:00
parent d296eb4510
commit e7dd0caa4a
Signed by untrusted user who does not match committer: affine
GPG key ID: 3A4645B8CF806069
4 changed files with 64 additions and 26 deletions

View file

@ -11,6 +11,7 @@ https://gitlab.com/whom/shs
** To be as portable as possible
** To provide code and framework that can be embedded in other applications needing a user facing interpreter
** To be well tested code
** No unsafe code without extreme consideration and rigorous containment
* Current Status
*** DONE Core interpreter stuffs
@ -19,19 +20,36 @@ https://gitlab.com/whom/shs
**** DONE Evaluation
**** DONE Function table
**** DONE Variable table
*** DONE Echo function
In string lib
*** TODO Rudimentary Control Flow
**** TODO if clause
**** TODO loop clause
**** TODO while clause
**** TODO circuit clause
*** TODO Configuration
**** DONE Function to load configuration into Variable and Function tables
**** DONE Configure in main shell
**** DONE manual verification of config settings
**** FAILING manual verification of config defaults
Cannot get default CFG_RELISH_PROMPT. Unclear if this is a bug in FTable or config
*** TODO Help function
*** TODO Env function
*** TODO User variable declaration
*** TODO User function declaration
*** TODO Load (load a script) function
Pull/Refactor the logic out of the configure functions.
Optionally return a list of new variables and/or functions?
Will need a concatenate function for func tables
*** TODO Main shell calls Load function on arg and exits
*** TODO Shell module
**** TODO Process launching with environment variables
**** TODO Foreground process TTY
**** TODO Background processes
*** TODO Custom error printing
*** TODO Custom ast pretty print
*** TODO Implement Ctr, Ast to_string / Display trait
*** TODO get_stdlibphase1 -> configuration -> get_stdlibphase2
*** TODO STDLIB
**** DONE append
**** TODO string operations
@ -64,7 +82,7 @@ By default Relish will read from ~/.relishrc for configuration, but the default
*** The configuration file
The configuration file is a script containing arbitrary Relish code.
On start, any shell which leverages the configuration code in [the config module](src/config.rs) will create a clean seperate context, including default configuration values, within which the standard library will be initialized.
On start, any shell which leverages the configuration code in the config module (file:src/config.rs) will create a clean seperate context, including default configuration values, within which the standard library will be initialized.
The configuration file is evaluated and run as a standalone script and may include arbitrary executable code. Afterwards, configuration values found in the variable map will be used to configure the standard library function mappings that the shell will use.
Errors during configuration are non-terminal and will result in default values being returned.