Mercerenies / gdlisp

Lisp on the Godot platform
GNU General Public License v3.0
141 stars 1 forks source link

Symbol macros clobber both namespaces #51

Closed Mercerenies closed 2 years ago

Mercerenies commented 3 years ago

In the perfect world, a symbol macro only occupies the value namespace and leaves the function namespace untouched. Currently, we occupy the value namespace and clobber the function namespace. So if I define a symbol macro named foo, then the value foo refers to this symbol macro, but the function foo can never be defined in the same scope.

This is arguably acceptable behavior, provided we document it thoroughly, but I'll open this issue regardless. If it's an easy fix, we may as well go for it.

Mercerenies commented 2 years ago

Adding bug label since it's come to my attention that this actually hangs the interpreter. If it just erred out, I'd call it a missing feature, but a hang is a problem.