| ▲ | ashton314 5 hours ago | |
A few years ago, I was working on an interpreter implemented in elixir for a domain specific language. It was a pretty basic metacircular interpreter. It relied heavily on function signature dispatch. When I tried breaking up the massive “interpret” function across modules, performance tanked. I got it all back by using some macro shenanigans, but understandably the team did not like this. Knowing what I know now, I would’ve tried to push for a threaded interpreter to get rid of the runtime overhead of dispatching altogether. I don’t know if they’ve changed the architecture of that module much since I left :-) | ||