Commit graph

18 commits

Author SHA1 Message Date
65189a5575 Move files around
Sample main.cpp is now into examples/greet
2020-05-02 22:55:10 +02:00
3a8285a518 Fix crash when user's foreign_method_fn() returns nil. 2020-05-02 00:05:36 +02:00
f33900b351 Allow users to store a custom pointer into the VM object. 2020-05-01 17:44:09 +02:00
a3dcb583d7 Attach licence 2020-04-30 23:33:54 +02:00
0f0d149ad2 Move public headers to a separate directory, make a library 2020-04-30 22:50:46 +02:00
751667769c Wrap more c functions. 2020-04-30 19:58:26 +02:00
df52fe0fba Add support for calling wren methods from c++ using call() 2020-04-30 19:58:09 +02:00
2755371792 Refactoring.
VM now aims to only wrap Wren's c functions as closely as
possible. All the fun stuff should be put into vm_fun.hpp.
2020-04-30 19:54:51 +02:00
4a14d75ddb Add more methods. 2020-04-30 16:45:10 +02:00
dafce95c8f Add setters. 2020-04-28 21:24:01 +02:00
ee587d0b9e Add some more functions, simplify code 2020-04-28 21:05:53 +02:00
b5bf777a05 Allow getting variables by handle 2020-04-28 15:15:53 +02:00
79f59f5d36 Add Handle class. 2020-04-28 14:25:35 +02:00
67a5fab3c4 Add variables() method and supporting code. 2020-04-28 14:24:50 +02:00
3d68124a60 Allow client code to provide their foreign_class_fn() implementation. 2020-04-26 21:25:26 +02:00
16c4b8cbe5 Allow foreign_method_fn() in the configuration object.
Wren expects this function to return a pointer to a function
that takes a WrenVM*. This is bad news because that type is
wrapped inside wren::VM and client code doesn't know about it.
It would be better for client code to return a pointer to a
function that takes a VM* instead. In order to do the VM* to
WrenVM* translation I make a "handmade" closure, that is I
generate a function at runtime that contains the VM* hardcoded
into it. The same function also contains the hardcoded
address of the callback function client code wanted to use.
By doing this I can pass a different function pointer to Wren
for each foreign method, and that function knows how to forward
the call to the real client callback.
Currently only implemented for amd64 gnu/linux.
2020-04-26 17:20:12 +02:00
d0be115181 Make VM easily movable 2020-04-26 12:26:39 +02:00
3142e4c4ce Start working on a c++ interface. 2020-04-25 20:45:59 +02:00