diff --git a/TODO b/TODO index aaebd607..c149b924 100644 --- a/TODO +++ b/TODO @@ -10,12 +10,25 @@ Working TODO list. should start creating issues for these to get them out of her move macro code to that module if necessary, write makefile directive to automate rebuilding cyclone for macro development + - clean up runtime + - fix up return_ macros, remove cgen comments + - remove unused runtime globals, rename others to make more sense + - need multiple closure types? maybe just migrate closureN to closure? + - remove unused code, old comments, etc + - clean up runtime-main.h + - macros - next steps: - - how should ex rename/compare work? check working implementations, papers + - how should ex rename/compare work? check working implementations, papers. find test cases that cyclone does not handle right now - review 4 cases below for handling macro expansion. I think there are still some outstanding issues with respect to eval'd macros - check chibi's syntax-rules + - macros within macros, 4 cases: + TODO: explain how each one will be expanded: + - compiled macro within compiled macro - expands fine, a lot of the built-in macros in scheme/base do this + - eval'd macro within compiled macro - ?? + - compiled macro within eval'd macro - ?? + - eval'd macro within eval'd macro - does not work yet, see test2.scm. would need to be able to add macros to an eval env so they can be seen by subsequent macros that use them * thought: if we go with meta files, the compiler can revert back to using compiled macros if we do not install the meta files. @@ -74,18 +87,6 @@ when it does not have to, and slowing down compilation even more - anything else? - - * macros within macros, 4 cases: - TODO: explain how each one will be expanded: - - compiled macro within compiled macro - - eval'd macro within compiled macro - - compiled macro within eval'd macro - - eval'd macro within eval'd macro - - - - - - profile cyclone code, see if there are any bottlenecks we can reduce EG: prof cyclone transforms.sld diff --git a/test2.scm b/test2.scm index 65433e1e..ea5d5e3d 100644 --- a/test2.scm +++ b/test2.scm @@ -42,9 +42,9 @@ ;; tbd how this parameter would be combined with eval's global env, ;; because it would need to extend it. ;; could eval expose a function to extend the global env (or any env)? - (test 1 2 3) ; breaks + ;(test 1 2 3) ; breaks ;(my-or 1 2 3) ; breaks - (list 'test #t)))) + (and 'test 'test2)))) ;(define-syntax or