mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Experimental standard library
Change import syntax and cover with tests
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# This will re-generate the headers if any file within src was modified.
|
||||
set_directory_properties(PROPERTY CMAKE_CONFIGURE_DEPENDS ${CMAKE_SOURCE_DIR}/stdlib/src/)
|
||||
|
||||
set(STDLIB stub)
|
||||
set(GENERATED_STDLIB_HEADERS)
|
||||
foreach(src IN LISTS STDLIB)
|
||||
set(STDLIB_FILE ${CMAKE_SOURCE_DIR}/libstdlib/src/${src}.sol)
|
||||
file(READ ${STDLIB_FILE} STDLIB_FILE_CONTENT HEX)
|
||||
string(REGEX MATCHALL ".." STDLIB_FILE_CONTENT "${STDLIB_FILE_CONTENT}")
|
||||
list(REMOVE_ITEM STDLIB_FILE_CONTENT "0d")
|
||||
string(REGEX REPLACE ";" ",\n\t0x" STDLIB_FILE_CONTENT "${STDLIB_FILE_CONTENT}")
|
||||
set(STDLIB_FILE_CONTENT "0x${STDLIB_FILE_CONTENT}")
|
||||
set(STDLIB_FILE_NAME ${src})
|
||||
configure_file("${CMAKE_SOURCE_DIR}/libstdlib/stdlib.src.h.in" ${CMAKE_BINARY_DIR}/include/libstdlib/${src}.h NEWLINE_STYLE LF @ONLY)
|
||||
list(APPEND GENERATED_STDLIB_HEADERS ${CMAKE_BINARY_DIR}/include/libstdlib/${src}.h)
|
||||
endforeach()
|
||||
|
||||
configure_file("${CMAKE_SOURCE_DIR}/libstdlib/stdlib.h.in" ${CMAKE_BINARY_DIR}/include/libstdlib/stdlib.h NEWLINE_STYLE LF @ONLY)
|
||||
@@ -0,0 +1,9 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
pragma solidity >=0.0;
|
||||
|
||||
pragma experimental solidity;
|
||||
|
||||
function identity(uint256 x) pure returns (uint256)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include <map>
|
||||
#include <string>
|
||||
|
||||
#include "libstdlib/stub.h"
|
||||
|
||||
namespace solidity::stdlib
|
||||
{
|
||||
|
||||
static std::map<std::string, std::string> sources = {
|
||||
{ "std.stub", stub }
|
||||
};
|
||||
|
||||
} // namespace solidity::stdlib
|
||||
@@ -0,0 +1,13 @@
|
||||
// The generation of this file is defined in stdlib/CMakeLists.txt.
|
||||
// This file was generated by using the content of stdlib/src/@STDLIB_FILE_NAME@.sol.
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace solidity::stdlib
|
||||
{
|
||||
|
||||
static char const @STDLIB_FILE_NAME@[] = {
|
||||
@STDLIB_FILE_CONTENT@, 0
|
||||
};
|
||||
|
||||
} // namespace solidity::stdlib
|
||||
Reference in New Issue
Block a user