The core need of any system software language is a pointer type. GHDL doesn't have this, only the VHPIDIRECT pure-function-call interface system. No big deal, though - we should be able to pass constrained integer types through to an assembly-language trampoline which will do the memory interfacing for us. IIRC, the new versions of gcc and binutils will optimize away the object-to-object calling indirection, eliminating the overhead normally associated with calling an API function outside of local object scope.
Jon
EDIT: Woops, looks like one needs to use gcc itself to get the LTO stuff to work. Since GHDL doesn't use a C-intermediate form, this optimization won't work. Hopefully this won't be too much of a performance problem... perhaps in the future newer versions of GHDL will be able to generate GIMPLE LTO-hint-set output, much as the newer GCCs do. --Jon
EDIT 2: Woops again. Looks like GHDL does in fact use a C language intermediate form, and one can pass GCC flags through GHDL to the C compiler. Looks like we are back in business!