692393285d
Fix memory leaks
2022-05-15 19:19:56 +02:00
4d3dfce93f
Improve and cleanup make_foreign_class()
...
No need to have two versions of this.
Static assert when users specify ambiguous overloads.
Currently overloads are discriminated only by
parameter count, not types, so we need to enforce this.
2022-05-15 17:01:57 +02:00
a8cef95cb9
Rename function
...
I think this is the opposite of the code I'm working on
now, ie it's not called by wren to create a c++ object
but from c++ to create a wren object. I'll add an
example for this.
2022-05-15 16:19:42 +02:00
f67ec7afb1
Fix header installation
2022-05-15 16:09:18 +02:00
b8066a3f34
Add working example of constructor overloading
2022-05-15 16:03:29 +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
996a089185
Add support for class constructor parameters
2022-05-15 02:40:41 +02:00
d3ad818b8e
Fix installation
2022-05-14 19:49:29 +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
7fcb89e459
Move more stuff to wren_types.hpp
2022-04-29 18:15:02 +02:00
edd5f27ab2
Build fix
2022-04-29 12:43:06 +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
a63a8c33d8
Add make_foreign_object() function.
...
It creates an instance of the given foreign class and
returns a pointer to it. The wren object is stored in
slot 0.
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
b4383e9449
Set slot in case caller didn't, or else why we get the object parameter?
2022-04-22 10:36:41 +02:00
839dbccfb1
Assert that there is at least one slot allocated
2022-04-22 10:36:35 +02:00
dfb3514ffc
Fix variable names and split long line
2022-04-22 10:36:25 +02:00
b2d1b92c36
Update to wren 0.4.0
2021-06-23 17:37:01 +02:00
f985abca61
Version bump to 0.1.2
2021-02-12 14:43:25 +01:00
68df4d3371
Extend test program a bit to try the new reset() method.
2021-02-12 14:43:25 +01: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
4c65807d93
This option was removed from the subproject
2021-02-10 12:48:21 +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
12c01f6f3e
Fix some unit test failures that were my fault
2021-01-22 13:45:29 +01:00
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