Commit graph

55 commits

Author SHA1 Message Date
aac87d85c0 Update wren to 0.3.0
Upstream repo got wren-cli split out into a separate
git repo so it can't be built as part of the wren
repo anymore. Unit tests have also changed, meson
script now relies on a python find script to get all
the *.wren files that should be passed to the unit
test executable.
2021-01-22 11:52:20 +01:00
4360ad03cf Version bump to 0.1.1 2020-05-04 00:41:39 +02:00
18e28bd5b6 Add initial README 2020-05-03 15:17:35 +02:00
6a30725a62 Add arbitrary method to foreign_method_t conversion helper
It might not work in every case, you still are restricted
to types that set() and get() understand.
2020-05-03 12:23:06 +02:00
34d2317f11 Add support for foreign types to get()
wren::get() can now be used to get foreign types by pointer.
Invoking get<A>() will return an A*. With this change it's
now possible to use variables() to get mixed foreign
and core types.
2020-05-03 11:32:43 +02:00
90d93d2583 Add calendar example and supporting functions 2020-05-03 01:54:07 +02:00
cad9f96739 Add a reallocate_fn() to DefConfiguration implemented around new/delete 2020-05-02 23:28:48 +02:00
65189a5575 Move files around
Sample main.cpp is now into examples/greet
2020-05-02 22:55:10 +02:00
a3c1199da9 Add a small dice rolling example game 2020-05-02 22:41:58 +02:00
3a8285a518 Fix crash when user's foreign_method_fn() returns nil. 2020-05-02 00:05:36 +02:00
482410356d More trying... 2020-05-01 21:14:01 +02:00
32c4f5e5b5 Still trying to propagate options down...
https://mesonbuild.com/Build-options.html#yielding-to-superproject-option
2020-05-01 20:45:33 +02:00
b5c4182a19 Trying to figure out how I should pass those options down to wren 2020-05-01 20:15:45 +02:00
58da9e761d Add macro definitions to optionally compile random and meta in. 2020-05-01 19:57:03 +02:00
51c69e6343 __func__ is just the function name, ie "type_id", I need the whole signature to capture U as well 2020-05-01 18:34:36 +02:00
f5fcbd193a Fix uninitialised pointers. Whoopsies! 2020-05-01 18:21:33 +02:00
f33900b351 Allow users to store a custom pointer into the VM object. 2020-05-01 17:44:09 +02:00
279a34237b I don't see any reason to get a pointer, I want a ref instead 2020-05-01 01:53:53 +02:00
274a2fea11 Update sample code in main(), fix the rest as required 2020-05-01 01:39:11 +02:00
8ba01de416 Fix release build containing debug info 2020-05-01 00:49:52 +02:00
32f4a01586 Force compiling wren as a static lib 2020-05-01 00:33:51 +02:00
640cc0e493 Reordering things a bit
I currently have meson 0.52.1 and the default_library=static
option has no effect for me, but I'm leaving it there in case
this changes in the future.
2020-05-01 00:14:55 +02:00
a3dcb583d7 Attach licence 2020-04-30 23:33:54 +02:00
4843ddd95e Add overload for Handle 2020-04-30 23:18:41 +02:00
97514085cb Add operator== 2020-04-30 23:05:35 +02:00
6fc3422548 This file also belongs to the wren lib, move it 2020-04-30 22:57:52 +02:00
0f0d149ad2 Move public headers to a separate directory, make a library 2020-04-30 22:50:46 +02:00
7252a6e1ec Remove unneeded function 2020-04-30 22:29:13 +02:00
b1c1ae40f5 Add call() overload that takes a string literal as wren's function name.
Only the function name needs to be passed in and not the full
signature. The implementation will append the appropriate
(_,_,...) part making it at build time.
2020-04-30 21:18:29 +02:00
4f54739ab6 Add substr() method. It looks correct to me. Fingers crossed! 2020-04-30 21:09:53 +02:00
f70899aed1 Import string_bt from duckhandy
Modified to use std::make_index_sequence instead of the
equivalent duckhandy utility.
2020-04-30 20:47:22 +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
36f2b4393c Remove unnecessary declaration. 2020-04-30 17:11:28 +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
2122cb628d Change variables() into a free function. 2020-04-28 20:51:03 +02:00
b5bf777a05 Allow getting variables by handle 2020-04-28 15:15:53 +02:00
59140c6c4b Improve Handle class. 2020-04-28 15:13:29 +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
0d0ea0a0cc It seems right now cpu_family() behaves more consistently than cpu() 2020-04-27 12:05:03 +02:00
b5adc8156f Fix DynafuncMaker::clear() and some other improvements. 2020-04-26 22:29:57 +02:00
0545f26990 Trying to be a bit less platform-specific.
This has only been tested on my amd64 gnu/linux, so take it with
the due suspicions.
2020-04-26 22:06:53 +02:00
3d68124a60 Allow client code to provide their foreign_class_fn() implementation. 2020-04-26 21:25:26 +02:00
2c2d783730 Remove hardcoded binary data, get it from the corresponding assembly instead. 2020-04-26 20:37:12 +02:00
ca067109a2 Rename file 2020-04-26 18:54:01 +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