# TODO ## CURRENT - `~` expansion - implement dealiasing conditions correctly - heap deallocation ## NEXT TOPICS - fd-based redirects - arithmetic ## LATER - proper error handling - marked todos in code - extensibility hooks and exposed constant - freeing allocs ## EVEN LATER - globbing ## BUGS # IMPLEMENTATION NOTES (for some of the above) ## Proper error handling There should be a global error struct with a string buffer, and functions would be adding context to it. We could define a Maybe-like _Result_ "generic" with a macro and wrap the return type of most functions in it, and add the checks for this around calls. We also have to add error checks around stuff that can go wrong. Particularly around: - opening files, opening pipes, managing fd-s - malloc/free stuff - array accesses (should be bounds checked)