This patch allows eixx to work in platforms other than 64-bit platforms.
I also relaxed some of the static_assert's, since it is okay for the data structure to be smaller than the value storage. Nonetheless, I left the strict check for eterm and var, it seemed reasonable to do so since they are the top-level types.
The use of the void* as a value storage in the union (for copy purposes) was limiting eixx to 64-bit platforms. I changed the value storage to a uint64_t and have tested on 32bit and 64bit machines. All tests pass with flying colors! Thanks for the good work you've done with this library.
This patch allows eixx to work in platforms other than 64-bit platforms.
I also relaxed some of the static_assert's, since it is okay for the data structure to be smaller than the value storage. Nonetheless, I left the strict check for eterm and var, it seemed reasonable to do so since they are the top-level types.
The use of the
void*
as a value storage in the union (for copy purposes) was limiting eixx to 64-bit platforms. I changed the value storage to auint64_t
and have tested on 32bit and 64bit machines. All tests pass with flying colors! Thanks for the good work you've done with this library.