Commit Graph

641 Commits

Author SHA1 Message Date
ThePhD
49a0f71272 library fixes 2016-11-23 02:55:25 -05:00
ThePhD
b40f895fd4 Fix double-delete crash that could also be affecting @IronsDu 2016-11-23 02:39:52 -05:00
ThePhD
97cafbaadd Default error handler function for protected_function 2016-11-17 23:58:24 -05:00
ThePhD
57c933cc9b bitfield example and link in docs 2016-11-15 22:45:34 -05:00
ThePhD
fe162b9643 make sure protect works as advertised 2016-11-15 04:39:42 -05:00
ThePhD
b2d137f65f change resolve to behave better with crappy clang 2016-11-14 21:39:26 -05:00
ThePhD
f5930bfa48 constexpr resolve 2016-11-14 13:58:55 -05:00
ThePhD
1461ab780c Fix an idiot derp in the code
and stop having sleep attacks...
2016-11-14 13:42:55 -05:00
ThePhD
22e17eb9fd Correct spelling is hard. 2016-11-13 04:21:24 -05:00
ThePhD
fbc0fc5f93 Properly word the exception documentation and made some proper links.
Update single and use proper wording.
2016-11-13 03:48:22 -05:00
Anand Aiyer
6e6cb675e2 SOL_LUAJIT_FULL_INTEROPERABILITY - If you are using a platform and
compiler that has full c++ exception interoperability
(http://luajit.org/extensions.html#exceptions), define
SOL_LUAJIT_FULL_INTEROPERABILITY. This will prevent sol from catching
(...) errors - in platforms & compilers than have full c++ exception
interoperability Lua errors can be caught with catch (...) in C++ - in
these cases sol inaccurately prevents Lua errors from being propagated
correctly.
2016-11-13 12:02:29 +05:30
Anand Aiyer
951b821272 missing ';' when SOL_NO_EXCEPTIONS is enabled 2016-11-13 11:22:54 +05:30
ThePhD
02bbe0c528 improve docs heavily 2016-11-11 12:44:34 -05:00
ThePhD
4116db8c89 Add heavy support for all things array and list and stuff 2016-11-09 07:42:45 -05:00
ThePhD
3b4dd52caf Fix is_container derp that triggered fault construction of pointer types 2016-11-07 13:52:20 -05:00
ThePhD
f8705202e2 Update single and update safe usertype checking 2016-11-06 16:34:05 -05:00
ThePhD
1c73fb054b std::cend doesn't exist in older compiler versions... 2016-11-05 23:25:46 -04:00
ThePhD
3e77a77ddc fix container usertype metatables 2016-11-05 23:04:32 -04:00
ThePhD
52f69a2653 Heavily improve documentation and add new container functions. 2016-11-05 20:08:07 -04:00
ThePhD
d863a56760 Weee, script return value tests 2016-11-02 19:00:16 -04:00
ThePhD
9836aba51d octal constants suck =/ 2016-11-01 19:24:59 -04:00
ThePhD
0a165dc5b4 Sometimes? You just don't like C++. At all. 2016-11-01 06:03:54 -04:00
ThePhD
c2c9ccf89c constexpr? More like LULexpr. 2016-11-01 05:57:48 -04:00
ThePhD
d3cb9042c3 Heey, no more submodules needed now. 2016-11-01 05:39:44 -04:00
ThePhD
1213c8959a Ditch the dependency on the optional submodule, nobody's ever gonna care about it... 2016-11-01 05:31:59 -04:00
ThePhD
c9728b7e27 do_string / do_file synonyms. I have to document all this... 2016-10-30 05:56:56 -04:00
ThePhD
0859af3203 Fix comparisons done of improper types 2016-10-30 04:40:17 -04:00
ThePhD
f896a9ea16 Pop errors off the stack if they're present. 2016-10-29 15:12:47 -04:00
ThePhD
5193db55c3 allow for not-containers to be specified
Make sure tables of various sizes are kept working
2016-10-28 04:36:04 -04:00
ThePhD
85329ca183 Mmn. Always making lots and lots of small changes. 2016-10-23 19:17:33 -04:00
ThePhD
2ac711b7f8 fix static initializer bugs from crap -- and remember to hunt down and get rid of all non-constexpr things like it in the future... 2016-10-21 17:32:27 -04:00
ThePhD
a65f795b79 ipairs and pairs improved support, folding the registration table down to avoid duplicated code 2016-10-21 07:05:58 -04:00
ThePhD
661e361b26 inline pls 2016-10-15 18:53:42 -04:00
ThePhD
391f29afb1 Oh boy, new compatibility files...! 2016-10-15 18:36:30 -04:00
ThePhD
940f44db55 Add presentation from Lua Workshop 2016
Have proper detection for numbers (even if it comes at a higher cost)
2016-10-15 18:14:19 -04:00
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
ThePhD
63b9f748f7 Nice segmentation fault, GCC 2016-06-19 19:13:01 -04:00
ThePhD
2706f19976 Having a using statement that references the deprecation mechanism triggers... deprecation.
Thanks, clan/g++
2016-06-19 19:06:35 -04:00
ThePhD
b6928b4b4e Herpin' that derp.
SOL_NO_COMPAT is now in the proper place and documented in the compatibility part of the API.
Basic test for `table::add`
2016-06-19 19:02:40 -04:00
ThePhD
556be8da98 Documentation updates -- require function and add function and size function needed documentation
New `add` function as requested by @EliasD
2016-06-19 17:59:40 -04:00
ThePhD
d626eb0461 Well, that was a nasty hidden bug. But it's all clean now! 2016-06-18 04:10:47 -04:00
ThePhD
48ba47b059 The long road to correctness. 2016-06-18 03:56:44 -04:00
ThePhD
f45ecdcff4 Always unqualify / decay arguments 2016-06-18 03:45:03 -04:00
ThePhD
02428921af SIGH name shadowing 2016-06-18 03:36:26 -04:00
ThePhD
29e4b82b4a Formally introduce c_call to the API with overloading ability
More documentation on how things work.
Once more at a 'feature-complete' state. Continue to work on #116.
Add testcase to ensure #108 is fixed. Then, prep release.
2016-06-18 03:32:54 -04:00
ThePhD
cf5919b705 Proper workings for multiple inheritance work. 2016-06-16 20:15:56 -04:00
ThePhD
ba2dd387eb Herp the derp.
Really fixes #119
2016-06-15 12:18:30 -04:00
ThePhD
3bece97a40 Statikk trampolines and new tests for the newly opened issue
Closes #119
2016-06-15 12:00:25 -04:00
ThePhD
d76b7ebe09 Things're gonna get silly... 2016-06-13 22:31:19 -04:00
ThePhD
9352473d59 Oopsies with index / new_index. Should fix @billw2012 's problem from #71 2016-06-12 05:21:45 -04:00
ThePhD
69b45e4d66 Fixed documentation SNAFUs and typos. Praying for stack_get speed... 2016-06-11 13:10:38 -04:00