On the use of Core Erlang vs Abstract Syntax by tools after 23.0

Stavros Aronis aronisstav@REDACTED
Mon Jun 8 16:36:57 CEST 2020

Thank you for your reply Björn!

I understand the motivation for the changes, and do not really have
the expertise to suggest alternatives (as a small side note: my
comment on variable scoping was a comment against *abstract syntax*,
not Core Erlang; Core Erlang has straightforward scoping and, as far
as I understand from your explanation, it is now even better). I am
simply a little alienated, momentarily, to realise that the compiler
now generates Core *Erlang* *without receive statements*. I do
understand that this is so that some useful pattern matching cases can
be supported.

The concrete use case for all these in Concuerror was the ability to
programmatically extract the clauses from a given receive statement in
order to generate a function that can determine whether some
(intercepted) messages would match a receive or not. When I wrote that
instrumenter I chose Core Erlang as I was already familiar with its
libraries. I now guess that doing the same instrumentation in abstract
syntax will be straightforward (rather than trying to make a different
instrumentation that can work around the new primops).

Other than that, my main goal was to raise awareness, and I see from
Joe's reply in this thread that awareness has indeed been raised. :-)


More information about the erlang-questions mailing list