3 comments

  • rjsw2 minutes ago
    Lisp has had good native compilers for a long time, just use one of those.
  • Joker_vD1 hour ago
    &gt; What LispE proposes is to turn each instruction of the language into a derived class that exposes an <i>eval</i> method. <i>Every class has its own override of eval</i>. And since <i>all these classes</i> derive from a single mother class with an original and evocative name, <i>Element</i>, you can build a C++ vector that holds them all. And that is where the miracle happens: the AST is kept alive, but each node is an object that can be optimized to the hilt with the full C++ arsenal.<p>That&#x27;s... a tree-walking interpreter. And IIRC the most overhead of it comes from traversing the tree itself, <i>then</i> from the overhead of invoking (virtual) eval() methods, and only <i>then</i> from whatever inefficiencies are inside of those tiny eval() implementations.
    • ncruces6 minutes ago
      If you build flattened a vector of them (as they argue), it can approach a byte code interpreter, though it won&#x27;t be a very dense vector, if it holds &quot;pointers&quot; (that you need to chase) to the instructions instead of the instructions themselves.<p>A lot of the slowness of interpreters (and why JITs work) comes from the fact that you&#x27;re executing (and trying to predict) the interpreter&#x27;s branches - not the branches in the interpreted code.<p>This doesn&#x27;t move the needle there, at all.
  • sourdecor54 minutes ago
    What I find interesting is not only that this is a cool alternative Lisp but that it is developed by a Korean company called Naver[0].<p>[0]: <a href="https:&#x2F;&#x2F;github.com&#x2F;naver" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;naver</a><p>[1]: <a href="https:&#x2F;&#x2F;www.naver.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.naver.com&#x2F;</a>