|
1 | 1 | # TODO |
2 | 2 |
|
3 | | -1. ~implement `compile = compileWith(options)` correctly~ |
4 | | -1. implement compiler directives |
5 | | -1. add `option` to forbid compiler directives in source |
6 | | -1. side effects? keywords for magic things like print to console? maybe just give `stdin` and `stdout` preloaded and inspect them afterwards? |
7 | | -1. ~prettier error messages ( we already use an index into the current string for that. may be OK already )~ |
8 | | -1. compiler / evaluator debugging output dependent on log level |
| 3 | +1. ~implement `compile = compileWith(options)` correctly~ solved |
| 4 | +1. ~implement compiler directives~ open issue |
| 5 | +1. ~add `option` to forbid compiler directives in source~ open issue |
| 6 | +1. ~side effects? keywords for magic things like print to console? maybe just give `stdin` and `stdout` preloaded and inspect them afterwards?~ open issue |
| 7 | +1. ~prettier error messages ( we already use an index into the current string for that. may be OK already )~ solved |
| 8 | +1. ~compiler / evaluator debugging output dependent on log level~ open issue |
9 | 9 |
|
10 | 10 | * `Calm` should log nothing and just throw errors on failure. |
11 | 11 | * `Concise` could log what is being compiled: the name but not the definition. do not enter into recursion. |
12 | 12 | * `Loquacious` could then also log definitions. |
13 | 13 | * `Verbose` could additionally log things for recursive calls. this would probably explode the amount of logging. |
14 | 14 |
|
15 | 15 | `eval` can do something analogous. show exactly where any `Error` is thrown, and dump the environment at higher levels. |
16 | | -1. ~tidy line 127 in src/lambda-calculus.js ( the free variables check wrapper )~ |
| 16 | +1. ~tidy line 127 in src/lambda-calculus.js ( the free variables check wrapper )~ solved |
17 | 17 | > ~This is why I wrap terms with the environment at that moment.~ |
18 | 18 |
|
19 | | - This should get done with the redesign to terms having an environment |
| 19 | + ~This should get done with the redesign to terms having an environment~ solved |
20 | 20 |
|
21 | | - Generally, go over, `lint` and `indent` code |
22 | | -1. constants. currently all variables can not only be shadowed but also overwritten. this might mean introducing full scoping, and might not be worth it. or is it just a matter of tagging names in the environment? |
23 | | -1. ~`boolEncoding` ? LC bools translate perfectly to JS choice functions; this might also not be worth it.~ not worth it |
24 | | -1. Strings ( would depend on list, char _and_ number encodings; the concept seems too high level for LC ) |
25 | | -1. Make helper functions available, maybe as `LC.helpers` or with `#import` ( datatype en/decoders, standard combinators ). "Standard library" support, including a standard library? Can be showcased in example kata for now. |
26 | | -1. ~Write some large kata for stress testing.~ |
| 21 | + ~Generally, go over, `lint` and `indent` code~ open issue |
| 22 | +1. ~constants. currently all variables can not only be shadowed but also overwritten. this might mean introducing full scoping, and might not be worth it. or is it just a matter of tagging names in the environment?~ open issue |
| 23 | +1. ~`boolEncoding` ? LC bools translate perfectly to JS choice functions; this might also not be worth it.~ not worth it / open issue |
| 24 | +1. ~Strings ( would depend on list, char _and_ number encodings; the concept seems too high level for LC )~ not worth it / open issue |
| 25 | +1. ~Make helper functions available, maybe as `LC.helpers` or with `#import` ( datatype en/decoders, standard combinators ). "Standard library" support, including a standard library? Can be showcased in example kata for now.~ open issue |
| 26 | +1. ~Write some large kata for stress testing.~ solved |
0 commit comments