Verse (paper/slides, language reference) is the “language for the metaverse” being developed by Epic Games and some very well-known PL researchers.
It has some very ambitious and non-traditional features: first-class types, effects, non-strict evaluation, choice (kind of like non-determinism), and transactional memory. Transactional memory means that a Verse computation (transaction) can be aborted early, and all effects produced by the transaction will be reverted.
Verse also is interoperable with C++, and part of that interop is that C++ functions called in Verse must also have their C++ effects reverted. Furthermore, this is for graphically-intensive realtime games so this rollback implementation must cause as minimal overhead as possible. That’s what this article is about.
There’s already some Verse code running in Fortnite and you can write Fortnite plugins in Verse today, but it’s very WIP.
Haven’t read the paper yet, but skimming the front page of the docs, their description makes “choice” sound more like Java/C++ exceptions than Prolog’s choice point system.
Edit: Yeah. It looks like the
if
expression takes a fallible expression rather than a Boolean expression. It’s basically acatch
in other languages.Maybe I’m being a bit too critical. But I’m a fan of choice in logic programming, and this ain’t that.
Huh, the docs are the only place where I see
if
defined in that way; in the slide decks and the paper the term “choice” means what you would expect in a logic programming context, and they even show concrete examples of unification. Maybe the Unreal Engine is using a subset of the full language for its dialect so that it can be mapped to and from C++?Ah, ok. I’ll have to check this out in more detail.