haderech/eoscc

Use vanilla clang & llvm

Closed this issue · 1 comments

eoscc uses the customized version of clang & llvm (eosio_llvm submodule) adopted from eosio.cdt.

The last released version of llvm is 11, but eoscc still stays at 7 due to diff between vanilla and eosio_llvm. Let's move to vanilla clang & llvm to utilize the improvements in the latest version.

The biggest obstacle to this transfer is ABI generation. eosio-abigen is a deprecated tool, and user-defined attributes like [[eosio::action]] is not supported in vanilla, so we need to implement ABI generator for our own.

The code written for our new 2.x compiler using vanilla will be a little different from that for eosio.cdt, but code compatibility needs to be kept as possible as it can.

blanc will follow this issue.