addb48822f
Refactor so that make_method_bindable also accepts free functions now
2022-05-19 19:22:20 +02:00
1fa6d62f17
Add support for registering foreign methods that return foreign objects
...
Still a bit work in progress but functioning
2022-05-18 18:48:18 +02:00
41692eb0bc
Fix for aarch64
2022-05-17 01:33:51 +02:00
eadd25b827
Foreign function callbacks now receive a ModuleAndName parameter too.
...
This commit breaks the ARM64 version, I will fix it next.
Lots going on here. DynafuncMaker got updated to store strings
to back the ModuleAndName objects that get hardcoded in the
assembly glue function.
ModuleAndName is not a typedef to a tuple anymore, because I
discovered that tuples suck. They get always pushed on the stack
when passed as parameter, instead the new implementation gets
passed into 2 registers being it a standard layout type.
dhandy::bt::string got updated so it can be used as a literal
value for non-type template parameters, which allowed for a
really easy to use `wren::MN<>` helper. Code now fully requires
c++20.
2022-05-17 01:06:36 +02:00
ce7be396d2
Improve error reporting
2022-05-15 20:17:07 +02:00
692393285d
Fix memory leaks
2022-05-15 19:19:56 +02:00
abbb3b3818
Clean up include directory structure
2022-05-15 15:41:00 +02:00
9921e59a6b
Add support for foreign constructor overload
...
Make vm_fun.hpp fun again by moving setters/getters
into a separate header.
Add new make_overloaded_foreign_class(), but code is still
untested and it's a work in progress at this point.
Interface will change.
2022-05-15 15:35:25 +02:00
036dd57524
Allow chaining calls to add_class_maker()
2022-05-14 18:06:35 +02:00
258237cbf3
Implement ClassManager
...
Very similar to CallbackManager in its functioning.
2022-05-14 17:06:25 +02:00
74670f4683
Extract consecutive strings logic into a separate class
...
This is going to be also used in the upcoming ClassManager class.
It also makes FullSignatureOwning less cluttered.
2022-05-14 16:20:50 +02:00
d985ebc417
Fix assert due to typo
2022-05-12 23:53:15 +02:00
c2089568f3
Bugfixes and improvements, simplify examples
2022-04-29 18:35:46 +02:00
fa0183a3bf
Implement CallbackManager
...
With it users don't have to provide a foreign_method_fn()
function anymore, it's become optional.
2022-04-29 18:16:57 +02:00
5d6575f328
Add make_foreign_object() overload
...
It's only available when users define WRENPP_WITH_NAME_GUESSING
and it automatically retrieves the class name of T using
new code in guess_class_name.hpp. Only tested on gcc so far.
Microsoft compiler doesn't seem to understand consteval keyword.
2022-04-29 12:34:01 +02:00
10e3c9adac
Correctly manage the case of string=nil if wreng_string_t is string_view
2022-04-29 12:34:01 +02:00
31ba3af348
Update copyright year
2022-04-28 22:56:11 +02:00
6f4b0ce094
Pass string_view instead of const char* to callback functions
2022-04-28 22:55:22 +02:00
f84234cede
Remove redundant const
2022-04-25 01:30:22 +02:00
30746aec19
Revert "Add ret to avoid data being "executed""
...
This reverts commit 1713a22ef4
.
2022-04-25 00:41:02 +02:00
1713a22ef4
Add ret to avoid data being "executed"
2022-04-24 22:07:39 +02:00
e157607df6
Update copyright year on recently modified files
2022-04-24 03:43:19 +02:00
7a821fcd2c
Add support for aarch64
2022-04-24 03:41:14 +02:00
1a01a016f2
Remove unnecessary function
2022-04-22 22:38:19 +02:00
f749b7fb18
call() will fail earlier when object for call doesn't exist
2022-04-22 22:04:09 +02:00
0255edb8be
Update wren to latest and fix build
2022-04-22 22:02:59 +02:00
839dbccfb1
Assert that there is at least one slot allocated
2022-04-22 10:36:35 +02:00
cfc8bb89f8
Add convenience variable_ensure_slot
2021-02-12 14:43:25 +01:00
52d9210400
Include vector size in mem usage count
2021-02-12 14:43:25 +01:00
dc10c38a3f
Add reset() method
2021-02-12 14:43:25 +01:00
719a57d3e8
Add lib name to config header
2021-02-10 23:14:13 +01:00
3c318d6771
Add a very simple test program
...
Not quite a unit test, it looks more like an example
but still something.
2021-02-02 14:04:27 +01: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
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
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
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
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
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