diff options
| author | Joel Martin <github@martintribe.org> | 2014-10-09 22:10:15 -0500 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2015-01-06 21:57:02 -0600 |
| commit | 1771ab50b87c745181e4e30f94b63e3f23d33dac (patch) | |
| tree | c1c9b5d80ba9261c5f16bab1b52c1bb0f559407c /docs/step_notes.txt | |
| parent | f2544a9467ea032aff505b3ced3b4b3510a828fe (diff) | |
| download | mal-1771ab50b87c745181e4e30f94b63e3f23d33dac.tar.gz mal-1771ab50b87c745181e4e30f94b63e3f23d33dac.zip | |
go: update README. Backport Func usage.
Diffstat (limited to 'docs/step_notes.txt')
| -rw-r--r-- | docs/step_notes.txt | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/docs/step_notes.txt b/docs/step_notes.txt index 94665d8..44cf8f8 100644 --- a/docs/step_notes.txt +++ b/docs/step_notes.txt @@ -323,10 +323,23 @@ Step Notes: - EVAL: - add 'defmacro!' and 'macroexpand' - set ismacro property on function + - Details: + - cp step7_quote.EXT to step8_macros.EXT + - if compiled update Makefile + - add isMacro property to Mal Function type + - may need to go back and adjust step5-7 + - implement is_macro_call and macroexpand + - call macroexpand on ast before apply in EVAL + - add defmacro! and macroexpand to EVAL switch + - make test^go^step8 should pass some basic macros + - add first, rest and nth to core.ns + - make test^go^step8 should now pass - step9_interop - convert returned data to mal data - recursive, similar to pr_str + - Details: + - can be done after stepA_more - stepA_more - core module: @@ -340,6 +353,33 @@ Step Notes: otherwise extracts full value - set and print *host-language* - define cond and or macros using REP/RE + - Details: + - cp step8_macros.EXT to stepA_more.EXT + - if compiled update Makefile + - core.ns implement nil?, true?, false?, symbol?, sequential?, + vector, vector? + - add mal error type which wraps normal mal type + - in core.ns add throw which wraps type in mal error type + and throws/raises/sets exception + - add try*/catch* support to EVAL + - if mal error type, bind to catch* bind symbol + - otherwise, bind string of error to catch* bind symbol + - implement apply, map in core.ns + - make test^go^stepA + - implement readline.EXT + - provide option (e.g. commented out) to link with GNU + readline (GPL) or libedit (BSD) + - add hash-map functions: hash-map, map?, assoc, dissoc, get, + contains?, keys, vals + - add metadata support to List, Vector, HashMap, and Functions + - add reader macro + - may need to box HashMap and native functions + - add atom type, reader macro and functions: with_meta, meta + - get `make test^go^stepA` to fully pass + - get `./stepA_more ../mal/step1_read_print` to pass + - continue for each mal step until ../mal/stepA_more + - Now self-hosting! + - Extra defintions needed for self-hosting - core module: |
