Paweł Bylica
beb0d92c11
cmake: Add evmc::evmc_cpp INTERFACE library for evmc.hpp
2019-11-29 11:55:51 +01:00
Paweł Bylica
b76e6d1a02
loader: Handle unexpected error code from set_option()
2019-11-19 21:21:32 +01:00
Paweł Bylica
8234e723f0
loader: Simplify logic for finding create function
...
The loader library no longer tries EVMC create function names with removed prefixes.
2019-11-04 16:22:55 +01:00
Paweł Bylica
6b0a37029d
loader: Trim all file extensions for create function name
2019-11-04 14:33:00 +01:00
Paweł Bylica
28dfad3930
Rename evmc_instance -> evmc_vm
2019-09-25 21:30:32 +02:00
Paweł Bylica
56ceca3b29
cmake: Add option to disable install
2019-07-23 12:29:31 +02:00
Paweł Bylica
fb471ef3e7
loader: Standardize configuration syntax and add evmc_load_and_configure()
2019-06-27 13:43:51 +02:00
Paweł Bylica
45da8cfce8
loader: Use strcpy_sx() everywhere
...
Previously we used strcpy_s() standard library function on Windows, but it triggers some additional handlers in some cases. To have the same behavior use strcpy_sx() everywhere.
2019-06-27 13:39:43 +02:00
Paweł Bylica
81db59cede
loader: Make error_code in evmc_load_and_create() optional
2019-06-05 16:07:49 +02:00
Paweł Bylica
8c3b3e61e6
loader: Change strcpy_sx() to be limited version of strcpy_s()
...
The strcpy_sx() now reports errors and behaves as strcpy_s() when buffer is too small (nulls the buffer). But it does not have all the checks.
2019-05-31 08:15:17 +02:00
Paweł Bylica
5757da5859
loader: Expose strcpy_sx() for testing
2019-05-31 08:15:17 +02:00
Paweł Bylica
2de1f81c72
loader: Rename strcpy_s() implementation to strcpy_sx()
...
The implementation strcpy_s() in loader is wrong (to be fixed) and limited in comparison to strcpy_s() spec. Rename it to strcpy_sx() to indicate it is not the one from standard library.
2019-05-31 08:15:16 +02:00
Paweł Bylica
7b02081f2e
loader: Destroy VM with incompatible ABI
...
When a VM is loaded but turns out is has incompatible ABI version it should be destroyed before reporting the loading error and returning a null handle.
Fixes https://github.com/ethereum/evmc/issues/305
2019-05-30 14:21:04 +02:00
Paweł Bylica
39162766df
Update copyright year, include the years of files creation
2019-04-24 18:36:28 +02:00
Paweł Bylica
32af5f41ac
loader: Mark set_error() with format attribute
2019-04-24 15:02:57 +02:00
Paweł Bylica
4484a8b74a
loader: Add loading error messages
2019-04-24 15:02:56 +02:00
Paweł Bylica
51fe9f48d4
loader: Abstract and mock evmc_last_error_msg()
2019-04-24 15:02:56 +02:00
Paweł Bylica
caf6c2a1bd
loader: Make evmc_last_error_msg() return error only once
2019-04-24 15:02:56 +02:00
Paweł Bylica
14c5356ae6
loader: Expose DLL load errors with evmc_last_error_msg()
...
Currently only works for errors by dlopen() on Linux and macos, otherwise returns NULL.
2019-04-16 18:06:54 +02:00
Paweł Bylica
d8f09d1d11
test: Rewrite loader unit tests by mocking DLL loading
2019-03-13 22:07:13 +01:00
Paweł Bylica
e3cf88cea1
loader: Change strcpy_s() availability check
2019-03-13 22:07:13 +01:00
Paweł Bylica
a0bffe9523
Generalize loader searching algorithm
...
Allow loader to shorten the name word by word to the point where only single word is left.
2018-08-30 23:24:24 +02:00
Paweł Bylica
a889442d6a
loader: Fix compilation on Windows with GCC
2018-08-30 11:09:00 +02:00
Paweł Bylica
044a137a36
Format code
2018-08-28 17:05:13 +02:00
Alex Beregszaszi
b3959ec74b
Fall back to evmc_create in the loader as a last resort
2018-08-25 16:30:53 +01:00
Paweł Bylica
43fc619a7e
Update license note in headers of source files
2018-08-22 13:57:25 +02:00
Paweł Bylica
dc4ac2ad4f
Merge pull request #76 from ethereum/authors
...
Introduce AUTHORS file
2018-08-21 23:33:51 +02:00
Paweł Bylica
0659e24db0
Update copyright notice
2018-08-21 09:44:18 +02:00
Paweł Bylica
17fe768522
loader: Always build with PIC
2018-08-21 09:07:03 +02:00
Alex Beregszaszi
3fe4f28867
Add evmc_is_abi_compatible helper
2018-08-20 15:05:41 +01:00
Paweł Bylica
426ff28d89
CMake: Build static libs with fPIC when needed
2018-07-16 12:29:02 +02:00
Paweł Bylica
edb29b7267
loader: Add helper to load and create a VM instance
2018-07-13 16:28:15 +02:00
Paweł Bylica
6b0ab05d07
loader: Fix support for Windows paths
2018-07-10 13:07:07 +02:00
Paweł Bylica
721f2b3083
loader: Return function pointer instead of EVM instance
2018-07-10 13:04:48 +02:00
Paweł Bylica
4a929e248a
loader: Add documentation
2018-07-10 13:03:15 +02:00
Paweł Bylica
49e26b1ede
loader: Add Windows support
2018-07-10 13:02:42 +02:00
Paweł Bylica
02b52e2926
Add evmc::loader library to support dynamic loading
2018-07-10 12:57:29 +02:00