Commit graph

98 commits

Author SHA1 Message Date
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