Revert "patch: m1/llvm4"

This reverts commit 41461bdddc.
This commit is contained in:
Richard Holland
2023-06-26 12:58:53 +00:00
parent 1bf5088b16
commit 2211d6f851
4 changed files with 246 additions and 251 deletions

View File

@@ -2,8 +2,6 @@
NIH dep: wasmedge: web assembly runtime for hooks. NIH dep: wasmedge: web assembly runtime for hooks.
#]===================================================================] #]===================================================================]
find_package(Curses REQUIRED)
include_directories(${CURSES_INCLUDE_DIR})
find_package(LLVM REQUIRED CONFIG) find_package(LLVM REQUIRED CONFIG)
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
@@ -26,7 +24,6 @@ ExternalProject_Add (wasmedge_src
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DLLVM_DIR=${LLVM_DIR} -DLLVM_DIR=${LLVM_DIR}
-DLLVM_LIBRARY_DIR=${LLVM_LIBRARY_DIR} -DLLVM_LIBRARY_DIR=${LLVM_LIBRARY_DIR}
-DLLVM_ENABLE_TERMINFO=OFF
$<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> $<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
$<$<BOOL:${MSVC}>: $<$<BOOL:${MSVC}>:
"-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP -march=native" "-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP -march=native"
@@ -66,6 +63,4 @@ set_target_properties (wasmedge PROPERTIES
"${wasmedge_src_BINARY_DIR}/include/api/" "${wasmedge_src_BINARY_DIR}/include/api/"
) )
target_link_libraries (ripple_libs INTERFACE wasmedge) target_link_libraries (ripple_libs INTERFACE wasmedge)
target_link_libraries(ripple_libs INTERFACE ${CURSES_LIBRARY})
target_link_libraries(ripple_libs INTERFACE xar)
add_library (NIH::WasmEdge ALIAS wasmedge) add_library (NIH::WasmEdge ALIAS wasmedge)

View File

@@ -79,7 +79,7 @@ Invoke::calculateBaseFee(ReadView const& view, STTx const& tx)
XRPAmount extraFee{0}; XRPAmount extraFee{0};
if (tx.isFieldPresent(sfBlob)) if (tx.isFieldPresent(sfBlob))
extraFee += XRPAmount{ static_cast<XRPAmount>(tx.getFieldVL(sfBlob).size()) }; extraFee += XRPAmount{ tx.getFieldVL(sfBlob).size() };
if (tx.isFieldPresent(sfHookParameters)) if (tx.isFieldPresent(sfHookParameters))
{ {
@@ -93,7 +93,7 @@ Invoke::calculateBaseFee(ReadView const& view, STTx const& tx)
(param.isFieldPresent(sfHookParameterValue) ? (param.isFieldPresent(sfHookParameterValue) ?
param.getFieldVL(sfHookParameterValue).size() : 0); param.getFieldVL(sfHookParameterValue).size() : 0);
} }
extraFee += XRPAmount { static_cast<XRPAmount>(paramBytes) }; extraFee += XRPAmount { paramBytes };
} }
return Transactor::calculateBaseFee(view, tx) + extraFee; return Transactor::calculateBaseFee(view, tx) + extraFee;

View File

@@ -547,7 +547,7 @@ SetHook::calculateBaseFee(ReadView const& view, STTx const& tx)
(param.isFieldPresent(sfHookParameterValue) ? (param.isFieldPresent(sfHookParameterValue) ?
param.getFieldVL(sfHookParameterValue).size() : 0); param.getFieldVL(sfHookParameterValue).size() : 0);
} }
extraFee += XRPAmount { static_cast<XRPAmount>(paramBytes) }; extraFee += XRPAmount { paramBytes };
} }
} }

View File

@@ -69,281 +69,281 @@ private:
Json::Value ret{Json::objectValue}; Json::Value ret{Json::objectValue};
ret[jss::TYPES] = Json::objectValue; ret[jss::TYPES] = Json::objectValue;
// auto const translate = [](std::string inp) -> std::string { auto const translate = [](std::string inp) -> std::string {
// auto replace = [&](const char* f, const char* r) -> std::string { auto replace = [&](const char* f, const char* r) -> std::string {
// std::string out = inp; std::string out = inp;
// boost::replace_all(out, f, r); boost::replace_all(out, f, r);
// return out; return out;
// }; };
// auto find = [&](const char* s) -> bool { auto find = [&](const char* s) -> bool {
// return inp.find(s) != std::string::npos; return inp.find(s) != std::string::npos;
// }; };
// if (find("UINT")) if (find("UINT"))
// { {
// if (find("256") || find("160") || find("128")) if (find("256") || find("160") || find("128"))
// return replace("UINT", "Hash"); return replace("UINT", "Hash");
// else else
// return replace("UINT", "UInt"); return replace("UINT", "UInt");
// } }
// if (inp == "OBJECT") if (inp == "OBJECT")
// return "STObject"; return "STObject";
// if (inp == "ARRAY") if (inp == "ARRAY")
// return "STArray"; return "STArray";
// if (inp == "AMM") if (inp == "AMM")
// return "AMM"; return "AMM";
// if (inp == "ACCOUNT") if (inp == "ACCOUNT")
// return "AccountID"; return "AccountID";
// if (inp == "LEDGERENTRY") if (inp == "LEDGERENTRY")
// return "LedgerEntry"; return "LedgerEntry";
// if (inp == "NOTPRESENT") if (inp == "NOTPRESENT")
// return "NotPresent"; return "NotPresent";
// if (inp == "PATHSET") if (inp == "PATHSET")
// return "PathSet"; return "PathSet";
// if (inp == "VL") if (inp == "VL")
// return "Blob"; return "Blob";
// if (inp == "DIR_NODE") if (inp == "DIR_NODE")
// return "DirectoryNode"; return "DirectoryNode";
// if (inp == "PAYCHAN") if (inp == "PAYCHAN")
// return "PayChannel"; return "PayChannel";
// static const std::map<std::string, std::string> static const std::map<std::string, std::string>
// capitalization_exceptions = { capitalization_exceptions = {
// {"NFTOKEN", "NFToken"}, {"NFTOKEN", "NFToken"},
// {"UNL", "UNL"}, {"UNL", "UNL"},
// {"XCHAIN", "XChain"}, {"XCHAIN", "XChain"},
// {"ID", "ID"}, {"ID", "ID"},
// {"AMM", "AMM"}, {"AMM", "AMM"},
// {"URITOKEN", "URIToken"}, {"URITOKEN", "URIToken"},
// {"URI", "URI"}}; {"URI", "URI"}};
// std::string out; std::string out;
// size_t pos = 0; size_t pos = 0;
// for (;;) for (;;)
// { {
// pos = inp.find("_"); pos = inp.find("_");
// if (pos == std::string::npos) if (pos == std::string::npos)
// pos = inp.size(); pos = inp.size();
// std::string token = inp.substr(0, pos); std::string token = inp.substr(0, pos);
// if (auto const e = capitalization_exceptions.find(token); if (auto const e = capitalization_exceptions.find(token);
// e != capitalization_exceptions.end()) e != capitalization_exceptions.end())
// out += e->second; out += e->second;
// else if (token.size() > 1) else if (token.size() > 1)
// { {
// boost::algorithm::to_lower(token); boost::algorithm::to_lower(token);
// token.data()[0] -= ('a' - 'A'); token.data()[0] -= ('a' - 'A');
// out += token; out += token;
// } }
// else else
// out += token; out += token;
// if (pos == inp.size()) if (pos == inp.size())
// break; break;
// inp = inp.substr(pos + 1); inp = inp.substr(pos + 1);
// } }
// return out; return out;
// }; };
// ret[jss::TYPES]["Done"] = -1; ret[jss::TYPES]["Done"] = -1;
// std::map<int32_t, std::string> type_map{{-1, "Done"}}; std::map<int32_t, std::string> type_map{{-1, "Done"}};
// for (auto [value, name] : magic_enum::enum_entries<SerializedTypeID>()) for (auto [value, name] : magic_enum::enum_entries<SerializedTypeID>())
// { {
// std::string type_name = std::string type_name =
// translate(STR(name).substr(4) /* remove STI_ */); translate(STR(name).substr(4) /* remove STI_ */);
// int32_t type_value = std::stoi(STR(value)); int32_t type_value = std::stoi(STR(value));
// ret[jss::TYPES][type_name] = type_value; ret[jss::TYPES][type_name] = type_value;
// type_map[type_value] = type_name; type_map[type_value] = type_name;
// } }
// ret[jss::LEDGER_ENTRY_TYPES] = Json::objectValue; ret[jss::LEDGER_ENTRY_TYPES] = Json::objectValue;
// ret[jss::LEDGER_ENTRY_TYPES][jss::Invalid] = -1; ret[jss::LEDGER_ENTRY_TYPES][jss::Invalid] = -1;
// for (auto [value, name] : magic_enum::enum_entries<LedgerEntryType>()) for (auto [value, name] : magic_enum::enum_entries<LedgerEntryType>())
// ret[jss::LEDGER_ENTRY_TYPES] ret[jss::LEDGER_ENTRY_TYPES]
// [translate(STR(name).substr(2) /* remove lt_ */)] = [translate(STR(name).substr(2) /* remove lt_ */)] =
// std::stoi(STR(value)); std::stoi(STR(value));
// ret[jss::FIELDS] = Json::arrayValue; ret[jss::FIELDS] = Json::arrayValue;
// uint32_t i = 0; uint32_t i = 0;
// { {
// Json::Value a = Json::arrayValue; Json::Value a = Json::arrayValue;
// a[0U] = "Generic"; a[0U] = "Generic";
// Json::Value v = Json::objectValue; Json::Value v = Json::objectValue;
// v[jss::nth] = 0; v[jss::nth] = 0;
// v[jss::isVLEncoded] = false; v[jss::isVLEncoded] = false;
// v[jss::isSerialized] = false; v[jss::isSerialized] = false;
// v[jss::isSigningField] = false; v[jss::isSigningField] = false;
// v[jss::type] = "Unknown"; v[jss::type] = "Unknown";
// a[1U] = v; a[1U] = v;
// ret[jss::FIELDS][i++] = a; ret[jss::FIELDS][i++] = a;
// } }
// { {
// Json::Value a = Json::arrayValue; Json::Value a = Json::arrayValue;
// a[0U] = "Invalid"; a[0U] = "Invalid";
// Json::Value v = Json::objectValue; Json::Value v = Json::objectValue;
// v[jss::nth] = -1; v[jss::nth] = -1;
// v[jss::isVLEncoded] = false; v[jss::isVLEncoded] = false;
// v[jss::isSerialized] = false; v[jss::isSerialized] = false;
// v[jss::isSigningField] = false; v[jss::isSigningField] = false;
// v[jss::type] = "Unknown"; v[jss::type] = "Unknown";
// a[1U] = v; a[1U] = v;
// ret[jss::FIELDS][i++] = a; ret[jss::FIELDS][i++] = a;
// } }
// { {
// Json::Value a = Json::arrayValue; Json::Value a = Json::arrayValue;
// a[0U] = "ObjectEndMarker"; a[0U] = "ObjectEndMarker";
// Json::Value v = Json::objectValue; Json::Value v = Json::objectValue;
// v[jss::nth] = 1; v[jss::nth] = 1;
// v[jss::isVLEncoded] = false; v[jss::isVLEncoded] = false;
// v[jss::isSerialized] = false; v[jss::isSerialized] = false;
// v[jss::isSigningField] = true; v[jss::isSigningField] = true;
// v[jss::type] = "STObject"; v[jss::type] = "STObject";
// a[1U] = v; a[1U] = v;
// ret[jss::FIELDS][i++] = a; ret[jss::FIELDS][i++] = a;
// } }
// { {
// Json::Value a = Json::arrayValue; Json::Value a = Json::arrayValue;
// a[0U] = "ArrayEndMarker"; a[0U] = "ArrayEndMarker";
// Json::Value v = Json::objectValue; Json::Value v = Json::objectValue;
// v[jss::nth] = 1; v[jss::nth] = 1;
// v[jss::isVLEncoded] = false; v[jss::isVLEncoded] = false;
// v[jss::isSerialized] = false; v[jss::isSerialized] = false;
// v[jss::isSigningField] = true; v[jss::isSigningField] = true;
// v[jss::type] = "STArray"; v[jss::type] = "STArray";
// a[1U] = v; a[1U] = v;
// ret[jss::FIELDS][i++] = a; ret[jss::FIELDS][i++] = a;
// } }
// { {
// Json::Value a = Json::arrayValue; Json::Value a = Json::arrayValue;
// a[0U] = "hash"; a[0U] = "hash";
// Json::Value v = Json::objectValue; Json::Value v = Json::objectValue;
// v[jss::nth] = 257; v[jss::nth] = 257;
// v[jss::isVLEncoded] = false; v[jss::isVLEncoded] = false;
// v[jss::isSerialized] = false; v[jss::isSerialized] = false;
// v[jss::isSigningField] = false; v[jss::isSigningField] = false;
// v[jss::type] = "Hash256"; v[jss::type] = "Hash256";
// a[1U] = v; a[1U] = v;
// ret[jss::FIELDS][i++] = a; ret[jss::FIELDS][i++] = a;
// } }
// { {
// Json::Value a = Json::arrayValue; Json::Value a = Json::arrayValue;
// a[0U] = "index"; a[0U] = "index";
// Json::Value v = Json::objectValue; Json::Value v = Json::objectValue;
// v[jss::nth] = 258; v[jss::nth] = 258;
// v[jss::isVLEncoded] = false; v[jss::isVLEncoded] = false;
// v[jss::isSerialized] = false; v[jss::isSerialized] = false;
// v[jss::isSigningField] = false; v[jss::isSigningField] = false;
// v[jss::type] = "Hash256"; v[jss::type] = "Hash256";
// a[1U] = v; a[1U] = v;
// ret[jss::FIELDS][i++] = a; ret[jss::FIELDS][i++] = a;
// } }
// { {
// Json::Value a = Json::arrayValue; Json::Value a = Json::arrayValue;
// a[0U] = "taker_gets_funded"; a[0U] = "taker_gets_funded";
// Json::Value v = Json::objectValue; Json::Value v = Json::objectValue;
// v[jss::nth] = 258; v[jss::nth] = 258;
// v[jss::isVLEncoded] = false; v[jss::isVLEncoded] = false;
// v[jss::isSerialized] = false; v[jss::isSerialized] = false;
// v[jss::isSigningField] = false; v[jss::isSigningField] = false;
// v[jss::type] = "Amount"; v[jss::type] = "Amount";
// a[1U] = v; a[1U] = v;
// ret[jss::FIELDS][i++] = a; ret[jss::FIELDS][i++] = a;
// } }
// { {
// Json::Value a = Json::arrayValue; Json::Value a = Json::arrayValue;
// a[0U] = "taker_pays_funded"; a[0U] = "taker_pays_funded";
// Json::Value v = Json::objectValue; Json::Value v = Json::objectValue;
// v[jss::nth] = 259; v[jss::nth] = 259;
// v[jss::isVLEncoded] = false; v[jss::isVLEncoded] = false;
// v[jss::isSerialized] = false; v[jss::isSerialized] = false;
// v[jss::isSigningField] = false; v[jss::isSigningField] = false;
// v[jss::type] = "Amount"; v[jss::type] = "Amount";
// a[1U] = v; a[1U] = v;
// ret[jss::FIELDS][i++] = a; ret[jss::FIELDS][i++] = a;
// } }
// for (auto const& [code, f] : ripple::SField::knownCodeToField) for (auto const& [code, f] : ripple::SField::knownCodeToField)
// { {
// if (f->fieldName == "") if (f->fieldName == "")
// continue; continue;
// Json::Value innerObj = Json::objectValue; Json::Value innerObj = Json::objectValue;
// uint32_t fc = code & 0xFFU; uint32_t fc = code & 0xFFU;
// uint32_t tc = code >> 16U; uint32_t tc = code >> 16U;
// innerObj[jss::nth] = fc; innerObj[jss::nth] = fc;
// innerObj[jss::isVLEncoded] = innerObj[jss::isVLEncoded] =
// (tc == 7U /* Blob */ || tc == 8U /* AccountID */ || (tc == 7U /* Blob */ || tc == 8U /* AccountID */ ||
// tc == 19U /* Vector256 */); tc == 19U /* Vector256 */);
// innerObj[jss::isSerialized] = innerObj[jss::isSerialized] =
// (tc < (tc <
// 10000); /* TRANSACTION, LEDGER_ENTRY, VALIDATION, METADATA */ 10000); /* TRANSACTION, LEDGER_ENTRY, VALIDATION, METADATA */
// innerObj[jss::isSigningField] = f->shouldInclude(false); innerObj[jss::isSigningField] = f->shouldInclude(false);
// innerObj[jss::type] = type_map[tc]; innerObj[jss::type] = type_map[tc];
// Json::Value innerArray = Json::arrayValue; Json::Value innerArray = Json::arrayValue;
// innerArray[0U] = f->fieldName; innerArray[0U] = f->fieldName;
// innerArray[1U] = innerObj; innerArray[1U] = innerObj;
// ret[jss::FIELDS][i++] = innerArray; ret[jss::FIELDS][i++] = innerArray;
// } }
// ret[jss::TRANSACTION_RESULTS] = Json::objectValue; ret[jss::TRANSACTION_RESULTS] = Json::objectValue;
// for (auto [value, name] : magic_enum::enum_entries<TELcodes>()) for (auto [value, name] : magic_enum::enum_entries<TELcodes>())
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value)); ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
// for (auto [value, name] : magic_enum::enum_entries<TEMcodes>()) for (auto [value, name] : magic_enum::enum_entries<TEMcodes>())
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value)); ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
// for (auto [value, name] : magic_enum::enum_entries<TEFcodes>()) for (auto [value, name] : magic_enum::enum_entries<TEFcodes>())
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value)); ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
// for (auto [value, name] : magic_enum::enum_entries<TERcodes>()) for (auto [value, name] : magic_enum::enum_entries<TERcodes>())
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value)); ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
// for (auto [value, name] : magic_enum::enum_entries<TEScodes>()) for (auto [value, name] : magic_enum::enum_entries<TEScodes>())
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value)); ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
// for (auto [value, name] : magic_enum::enum_entries<TECcodes>()) for (auto [value, name] : magic_enum::enum_entries<TECcodes>())
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value)); ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
// auto const translate_tt = [](std::string inp) -> std::string { auto const translate_tt = [](std::string inp) -> std::string {
// if (inp == "PaychanClaim") if (inp == "PaychanClaim")
// return "PaymentChannelClaim"; return "PaymentChannelClaim";
// if (inp == "PaychanCreate") if (inp == "PaychanCreate")
// return "PaymentChannelCreate"; return "PaymentChannelCreate";
// if (inp == "PaychanFund") if (inp == "PaychanFund")
// return "PaymentChannelFund"; return "PaymentChannelFund";
// if (inp == "RegularKeySet") if (inp == "RegularKeySet")
// return "SetRegularKey"; return "SetRegularKey";
// if (inp == "HookSet") if (inp == "HookSet")
// return "SetHook"; return "SetHook";
// return inp; return inp;
// }; };
// ret[jss::TRANSACTION_TYPES] = Json::objectValue; ret[jss::TRANSACTION_TYPES] = Json::objectValue;
// ret[jss::TRANSACTION_TYPES][jss::Invalid] = -1; ret[jss::TRANSACTION_TYPES][jss::Invalid] = -1;
// for (auto [value, name] : magic_enum::enum_entries<TxType>()) for (auto [value, name] : magic_enum::enum_entries<TxType>())
// ret[jss::TRANSACTION_TYPES][translate_tt(translate(STR(name).substr(2)))] = ret[jss::TRANSACTION_TYPES][translate_tt(translate(STR(name).substr(2)))] =
// std::stoi(STR(value)); std::stoi(STR(value));
// // generate hash // generate hash
// { {
// const std::string out = Json::FastWriter().write(ret); const std::string out = Json::FastWriter().write(ret);
// defsHash = defsHash =
// ripple::sha512Half(ripple::Slice{out.data(), out.size()}); ripple::sha512Half(ripple::Slice{out.data(), out.size()});
// ret[jss::hash] = to_string(*defsHash); ret[jss::hash] = to_string(*defsHash);
// } }
return ret; return ret;
} }