EVM-C

EVM-C – C interface to Ethereum Virtual Machine. this looks like the library we need to create a Livecode library easily in Livecode Builder. This would enable cross platform creation of DAPPs in LiveCode - let's call it Ethereum for Kids.

YOUTUBE PLAYLIST PLaM7G4Llrb7xnKb_SeaKZ27opvaIjlBv5 Pawel Bylica (Ethereum – C++ developer) presents EVM-C: Portable API for Ethereum Virtual Machines - github

# High level design rules

Pass function arguments and results by value. This rule comes from modern C++ and tries to avoid costly alias analysis needed for optimization. As the result we have a lots of complex structs and unions. And variable sized arrays of bytes cannot be passed by copy.

The EVM operates on integers so it prefers values to be host-endian. On the other hand, LLVM can generate good code for byte swaping. The interface also tries to match host application "natural" endianess. I would like to know what endianess you use and where.

# Portability

The Ethereum C++ client code is exceedingly portable, and is being successfully used on a huge range of different operating systems and devices - ethdocs.org

# See also - ethereum.github.io - Paweł Bylica (pawel@ethereum.org) - twitter - Slides - docs.google.com - C Header - github