xo-interpreter: apply expressions + llvm builtins working!

This commit is contained in:
Roland Conybeare 2025-11-28 19:32:56 -05:00
commit 1d1e72adf3
31 changed files with 531 additions and 50 deletions

View file

@ -7,12 +7,14 @@
#include "ProcedureExprInterface.hpp"
#include "llvmintrinsic.hpp"
#include "xo/reflect/TaggedPtr.hpp"
#include <type_traits>
namespace xo {
namespace scm {
class PrimitiveExprInterface : public ProcedureExprInterface {
public:
using TaggedPtr = xo::reflect::TaggedPtr;
using void_function_type = void (*)();
public:
@ -24,6 +26,11 @@ namespace xo {
return bp<PrimitiveExprInterface>::from(x);
}
/** @return executable function as tagged pointer.
* Load-bearing for xo-interpreter.
**/
virtual TaggedPtr value_tp() const = 0;
/** if true, Jit will try to explicitly symbol for this primitive
* (instead of looking it up in host process).
* Don't know if this works.