awestlake87/helix

create a dependency graph for everything

Closed this issue · 2 comments

instead of generating a module in the order it was declared, maybe the AST's job should be to construct a dependency graph. this will be crucial to resolving circular dependencies between modules, functions and data structures because hoist_* is confusing and not nearly flexible enough to handle these situations.

abandoned ast generation in favor of procedural hoisting, dependency generation, and code generation. It's ridiculous how easy it was to implement in comparison to using functions in the ast.

kinda hard to resolve, now that I think about it. continuing in #24