lisp is not the most powerful language, it's lua. because in lua the default data structure is the iterable, conditionally ordered hashmap, which is a universal container. And the module system lets you define arbitrary functions for loading modules, so you can write a dsl, compile it to bytecode (or lua, which is very easy, and run eval), and load it the same way you would load any other piece of lua code.
Someone also made a whole typed dialect, implemented in lua. this is how you load file written in it.
local tl = require("tl")
tl.loader()
require("lib.teal.mytealmodule") -- <-- ./lib/teal/mytealmodule.tl
https://www.lua.org/manual/5.1/manual.html#pdf-module
Thus, you can bootstrap a fully functional lisp....
https://fennel-lang.org/
fennel also has a full repl: https://wiki.fennel-lang.org/Repl
We also have our own emacs/squeak
https://github.com/lite-xl/lite-xl
it's much faster. it also has a more flexible (but not too much) graphics api. very comfortable. lua supports the smalltalk style event-based programming thanks to the hashtables acting like jumptables for the syntax of
object.eventname(...)
with full introspection, and even the ability to set local variables in another scope.
luachads eat good bros.