ThePhD
c2d219ea7d
Reworked the architecture of usertype functions to include a shim table between it and the actual metatables.
...
This means that usertype tables visible in the code and bound to the name specified with `new_usertype` and friends will be normal tables, and those tables delegate their responsibilities to the 3 backend tables of `sol.unique_usertype<T>`, `sol.T`, and `sol.T*`. This separation allows for a few caveats for updating and overriding members of `new_simple_usertype` tables to 'just work' without any serious hassle, and to have a single point that lets up decide how to perform updates properly. It also restores an optimization we had to turn off by ham-fisting whether ot not indexing was turned on the usertype metatables themselves.
o wow wow wow it's such a nice commit message look at how organized it is
PFFFFFFFFFF.
2016-10-11 05:58:49 -04:00
ThePhD
e0e376a370
-1 size key is bad: remember to add this to presentation...
2016-10-05 20:55:40 -04:00
ThePhD
0ba4650c64
Another example, constness derp fix
2016-10-05 20:39:49 -04:00
ThePhD
009d6b0fa9
Fix protected_function shenanigans, hopefully for good.
2016-10-04 23:37:08 -04:00
ThePhD
4ac35aa8f4
sometimes, I have a dumb. Othertimes, the lua docs are sneaky and have subtle maybe-behaviors when other parts of their API never do. Sneaky, sneaky API...
2016-10-02 13:37:52 -04:00
ThePhD
23c2c6dedc
weee slight fix and doc update
2016-10-01 18:19:35 -04:00
ThePhD
b05ce97247
Allllll the fixes. All the time. Mostly to make sure constructors don't fight with each other and safety is respected. And documentation updates.
2016-10-01 01:27:40 -04:00
ThePhD
6c34a2ac4f
updated protected_function stuff
2016-09-30 01:42:23 -04:00
ThePhD
72a445ff6a
Some minor fixes and updates
2016-09-29 03:29:48 -04:00
ThePhD
cbe599a901
Referential transparency is important.
2016-09-28 19:05:26 -04:00
ThePhD
d7b037da73
Sigh. Make sure that tuple expansion works in buggy VC++ compiler.
2016-09-26 04:02:03 -04:00
ThePhD
d88db0faff
Buh. Capturing the right semantics is always hard.
2016-09-22 11:49:29 -04:00
ThePhD
3a00ce0adf
Some minor fixes and DOCS AND EXAMPLES WOOoOooOOooOoo
2016-09-22 07:13:04 -04:00
ThePhD
9d52ed49ba
balance that stack, goddamnit, BALANCE IT
2016-09-19 23:37:00 -04:00
ThePhD
8c9c662d97
Truly, I am a spectacular idiot...
2016-09-19 01:17:58 -04:00
ThePhD
89107d3b90
Fix crashing of simple usertypes from a previous herpderp.
2016-09-19 00:36:50 -04:00
ThePhD
1593ca00af
eat a dick gcc 4.9
2016-09-17 22:39:21 -04:00
ThePhD
1dfeb1dc7c
i hate old tools
2016-09-17 22:27:28 -04:00
ThePhD
330df79ab9
OoOoOooh and the world exploooodes.
...
Added new examples to illustrate a few things people were wondering about
HEAVILY fixed up usertypes and inheritance. Again. Sigh. One day it'll all be correct.
2016-09-17 22:15:46 -04:00
ThePhD
8028628868
Merge remote-tracking branch 'origin/develop' into develop
2016-09-17 12:03:43 -04:00
ThePhD
52836c12a3
o boi simple usertype shenaaaanigans!~
2016-09-17 12:03:20 -04:00
OrfeasZ
95ddf46b55
Introduced a new simple_usertype class which derives from usertype.
...
Exposed an "add" function for it in order to allow adding members one at a time before registration.
Introduced state_view.create_simple_usertype<T>() methods for creating simple_usertypes.
2016-09-17 18:22:19 +03:00
ThePhD
3df64718ad
update everything
2016-09-14 00:10:25 -04:00
ThePhD
0e56783de9
Bark. I always forget things.
2016-09-14 00:02:15 -04:00
ThePhD
34d844a06f
gdi gcc, catch that shit -- update single
2016-09-13 12:53:59 -04:00
ThePhD
0de30f3b3a
Upgrading simple_usertype implementation with BREAKING changes. Docs now include that information too. as_function now works with usertypes for limited cases.
2016-09-13 12:37:08 -04:00
ThePhD
5dface25fb
fix problem with instantiations of abstract classes in optional reference
2016-09-10 20:59:12 -04:00
ThePhD
cb0116a3df
Add guard for luaL_loadbufferx
2016-09-04 11:41:24 -04:00
ThePhD
d451271bf4
protected function updates
2016-09-04 10:54:55 -04:00
ThePhD
c6540caf67
herped the derp: gotta leave these things alone...
2016-09-01 12:36:25 -04:00
ThePhD
431977a568
herpin' that derp
2016-09-01 09:02:50 -04:00
ThePhD
6a3b0adf0d
error detection for coroutine and protected function
2016-09-01 08:49:30 -04:00
xujh
6791d6ebf2
change std::snprintf to snprintf for android compile
2016-09-01 12:02:41 +08:00
ThePhD
5093f61615
Attempt to fix #119 by using less-powerful C++11 features and praying for the best
...
Fix #205
Partially address #204 (will need to do more -- perhaps add an automatic-conversion shim?)
2016-08-30 18:09:42 -04:00
ThePhD
5b5d1e9ca6
MIGHT AS WELL.
2016-08-27 08:45:37 -04:00
ThePhD
354c26772a
2.12.1 version includes automatic operator binding for basic comparators
...
it'll only be a matter of time before people ask me to auto-bind `operator+` and shit, but the answer for that will be no...
2016-08-25 12:50:50 -04:00
ThePhD
81ffb3f334
make sure proxies can be properly set to one another
2016-08-24 12:21:14 -04:00
ThePhD
54cffb7b6d
tables and userdata and pairs and ipairs, oh my
2016-08-24 08:31:18 -04:00
ThePhD
cf76f6baa0
V E T T E D
...
Slight breaking change, but at the source level almost nothing changes (ipairs is the only thing that changes because for some reason it checks if what is passed is a table and that really doesn't make any fucking sense)
Closes #195
Closes #196
2016-08-23 21:42:27 -04:00
ThePhD
5b65ea1460
O-O-O-OVERHAAAAAUL no not really just bug fixes....
2016-08-22 22:45:06 -04:00
Kevin Brightwell
a6c95dbb74
Add check for validity with object in require_file
...
Closes #193
2016-08-22 17:13:25 -04:00
ThePhD
56ed859d3f
unqualified unqualified unqualified
2016-08-21 22:13:26 -04:00
ThePhD
6243cbe103
push_reference should respect unique usertypes
2016-08-21 19:24:26 -04:00
ThePhD
ec97dac651
push_reference must respect unique_usertypes are primitives
2016-08-21 19:20:31 -04:00
ThePhD
fd657ea249
qq clang pls
2016-08-19 21:38:19 -04:00
ThePhD
e31ed71006
Add hinting optimization to arrays
2016-08-19 21:08:03 -04:00
ThePhD
1ae78e1b54
High performance iteration for arrays
2016-08-18 23:51:41 -04:00
ThePhD
5ac32c7863
SIGH unused FUCKING variable
2016-08-17 16:00:27 -04:00
ThePhD
d06f2e6458
remove used variable
2016-08-17 15:53:26 -04:00
ThePhD
f256afffa3
Merge remote-tracking branch 'nava2/fix-osx-include' into develop
2016-08-17 15:49:14 -04:00
ThePhD
7744a49cfe
I can spell good I promise
...
update bootstrap to properly use depsfile
2016-08-17 15:47:18 -04:00
ThePhD
4c2748eaef
Fix in_place and optional usage here
...
Add `has_begin_end` getters for standard things
2016-08-17 15:05:26 -04:00
Kevin Brightwell
366937830c
Fix #180
2016-08-17 14:29:21 -04:00
ThePhD
7903e1ec05
New initializer type called sol::factories
, and the documentation to go with it
2016-08-17 01:16:44 -04:00
ThePhD
80981c2675
Fix the inheritance for newindex based calls
2016-08-14 13:20:27 -04:00
ThePhD
f608c4f0f8
Guess who joined the fuccboi club with g++ and VC++? THAT'S RIGHT, IT'S MINGW AND IT'S HANDY DANDY FRIEND, LIBSTDC++! WOOOOOO!
2016-08-12 15:57:53 -04:00
ThePhD
0d1d5ebd09
Turns out C++ sucks when all implementers don't do things equally as fast. WHO KNEW?
2016-08-12 13:08:59 -04:00
ThePhD
ffdff21487
Trying to be smart about shit, take 1. :B
2016-08-12 12:30:18 -04:00
ThePhD
391152382c
[ci-skip] update feature table and be good at stuff
2016-08-12 11:06:14 -04:00
looki
09ba220e62
Fix 'expected .. received ..' message for function arguments
2016-08-12 04:33:26 +02:00
ThePhD
ff8ac8a6d4
One day I'll have a perfect release...
2016-08-11 11:36:39 -04:00
ThePhD
0338b7d18f
Baby you construct me in all the right ways, let's spend our lifetimes together in this wonderful scope.~
...
Closes #168
2016-08-11 09:16:23 -04:00
ThePhD
4cde2b6a3b
making questionable decisions since 1892
2016-08-11 07:25:57 -04:00
ThePhD
4aea285769
So we have 'inherited' metatables now. But is it fast?
2016-08-10 07:23:49 -04:00
ThePhD
94a1898b37
[OH GOD SO BROKEN WHY] This is tentative, untested "support" for calling inherited functions.
2016-08-10 06:32:44 -04:00
ThePhD
49cc3bddf0
Make everything super robust, thanks to @eevee pointing out some derps in how things were handled
2016-08-07 20:56:05 -04:00
ThePhD
57333bb529
Grumblemumble goddamn Xeo grumbleMumble
2016-08-07 14:04:07 -04:00
ThePhD
ba5465dd86
Fix #149 's issue because Clang and Apple together are not an OTP. 0/10 would NEVER ship together
...
Fix regression of #166 because I am retarded
Get to looking at OrfeasZ's changes so I can know what to do with base classes
2016-08-07 12:41:29 -04:00
ThePhD
dc79e72c59
sol::vars support in most places, and updated documentation
2016-08-06 18:41:54 -04:00
ThePhD
dc05552e81
sol::var is now in business
2016-08-06 17:29:07 -04:00
OrfeasZ
51b583c88a
Small typo.
2016-08-06 17:10:54 +03:00
OrfeasZ
373251c9e1
Better handling so we have 100% coverage of switch options.
2016-08-06 16:54:08 +03:00
OrfeasZ
7d6276448b
Adding open_libraries(...) support for the Lua 5.3 utf8 library.
2016-08-06 16:48:51 +03:00
ThePhD
89250697aa
Documents nullptr ( Closes #159 )
...
Documents callable structures and the function to use with `table.set` if needed (Closes #162 )
2016-08-06 00:30:35 -04:00
ThePhD
89e0b62f2d
const-ness fucking me in the ass again
2016-08-01 04:04:44 -04:00
ThePhD
045d9371df
customization points are now live
2016-07-29 00:57:47 -04:00
ThePhD
be946d415c
Merge remote-tracking branch 'origin/develop' into develop
2016-07-28 13:33:36 -04:00
ThePhD
de359acb3e
Let's do iiiit.
2016-07-28 13:33:08 -04:00
FYP
62b21b1cec
fix std::nullptr_t getter and pusher
...
according to
http://sol2.readthedocs.io/en/latest/tutorial/ownership.html it should
be that way
2016-07-26 00:31:31 +03:00
ThePhD
f1965a4364
const qq
2016-07-15 10:13:38 -04:00
ThePhD
85daffaa00
Havin' lots of derps these days. Fix #141
2016-07-15 07:33:54 -04:00
ThePhD
87eb901b01
Fix #139
2016-07-12 20:55:26 -04:00
ThePhD
6b85ed2936
At least I have users who can help me catch my dumbness. One day, I'll find someone who wants to work on something and isn't somehow insufferable.
2016-07-11 12:41:17 -04:00
ThePhD
ac5f13ce2f
Now protect should work in multiple places, albeit we still need to do some optimizations to kick it in
...
Address #137 and improve implementation to not have to pop arguments
2016-07-09 13:38:55 -04:00
ThePhD
febfdbadb7
protect could use some additional optimizations for space, but I'm kinna tired.
2016-07-09 03:43:51 -04:00
ThePhD
14ced4af69
Add more tests and fix smaller errors with overloading and such.
2016-07-09 01:12:33 -04:00
ThePhD
f7108d5e37
Usertype documentation
2016-07-07 18:11:03 -04:00
ThePhD
dbaa8f58f0
Bogus clang errors make me sad.
2016-07-07 17:11:43 -04:00
ThePhD
47f29db964
qq so close to perfect
2016-07-07 17:02:11 -04:00
ThePhD
27174aba9c
This mega-commit produces simple_usertype
to allow for faster compile times by avoiding the use of __index
internally. It sacrifices some speed and some storage optimizations and also does not allow variable syntax, but the produced table is directly modifiable.
...
Adds a `protect()` function to trigger safety for an item.
This commit also optimizes away all instances of virtual function calls for function calls and storage. Will need to test speed to see how it works out.
Closes #133
Closes #134
Closes #135
Closes #136
2016-07-07 16:52:39 -04:00
ThePhD
09ee4db1ed
More templated fixes.
...
Closes #131
Closes #126 , for the time being -- we can't make it go any faster without fundamentally breaking the system, and I can't do that to users rn
2016-06-29 14:08:26 -04:00
ThePhD
833be87011
More reductions...
2016-06-27 12:47:56 -04:00
ThePhD
bd62d99fbc
One day, I won't run into compiler differences and lame pedanticisms for C++.
...
Addresses #126
2016-06-27 12:24:14 -04:00
ThePhD
374acaa7f5
Attempt #1 at reducing compiler overhead for large numbers of template instantiations.
2016-06-27 12:15:32 -04:00
ThePhD
97c132d91d
Preserve internal type of member function calls / pointers, even if they're base types linked to derived types
2016-06-22 13:26:27 -04:00
ThePhD
0fef6556e4
Closes #125
...
Adds documentation for the new feature
Removes usages of "sol::bond" in documentation, because that was supposed to be "sol::tie"
I really don't want to spend time trying to figure out how to slim down these templates...
2016-06-22 11:33:07 -04:00
ThePhD
83ba698aba
More documentation, fix for signed/unsigned conversion issues.
2016-06-22 01:20:38 -04:00
ThePhD
d0ca1d8317
Maximum the features.
2016-06-20 09:51:26 -04:00
ThePhD
0faacb5d2c
Slight refactoring of implementation. Also, stray #endif due to not being recognized by include guard regex -- the formula must be kept...!
...
(TODO: transition sol2 to include guards...?)
2016-06-20 07:03:44 -04:00
Lau Ching Jun
b6ba214f43
Use nullptr when converting to std::function if value is nil
2016-06-20 11:53:51 +08:00