Commit Graph

425 Commits

Author SHA1 Message Date
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
ThePhD
412718badb Test speed thought... 2016-06-11 11:51:56 -04:00
ThePhD
8eb10388c1 directly insert lua_cfunctions 2016-06-10 23:05:25 -04:00
ThePhD
72fcc1e6a5 nil checks. Nil checks as far as the eye can see. 2016-06-10 21:14:43 -04:00
ThePhD
e1241c110a SPEED AND FIXES, HOOOOOOOOO! 2016-06-10 21:04:48 -04:00
ThePhD
295b7b1a08 The performance went to shit and I need all the perf tools I can get to find out why. 2016-06-09 21:14:12 -04:00
ThePhD
58fc314e6f Fiiixes! Thanks to @CatPlusPlus and @melak47 for helping me fix this one.
Closes #112 .
2016-06-09 15:49:53 -04:00
ThePhD
b762de5c76 Ensure call works properly 2016-06-08 11:55:05 -04:00
ThePhD
606f8275a0 A small oopsie. 2016-06-08 11:29:30 -04:00
ThePhD
89bf8d5cbb Making sure everything is fixed on all compilers + g++ too now 2016-06-08 11:23:17 -04:00
ThePhD
220ff5a475 Fixes the key value being left on the stack when using iterators (the other case that's not "and we're not actually using this for iteration", asides from the empty table case).
Closes #111 - fixed
Closes #110 - need to test exactly how much extra speed was gained
Closes #108 - seems to be fixed, albeit std::mutex is a butt on VC++
2016-06-07 20:32:10 -04:00
ThePhD
53bed40bc5 Merge remote-tracking branch 'feature/boost-optional/boost-optional' into develop 2016-06-06 15:48:32 -04:00
ThePhD
c458849d29 Many of the tests are still busted, but we're getting closer.
Closes #96
Closes #79
Fixes #105 - but we still need to double-check and add a test to prove it
2016-06-06 15:46:53 -04:00
ThePhD
e35fe6be85 This mega-commit implements the new usertype_metatable while keeping everything else still intact. Blurgh, managing API versions suck... 2016-06-03 21:40:23 -04:00
Georg Sauthoff
250661b780 Use Boost Optional if SOL_USE_BOOST is defined
Usecase: Project already uses Boost as dependency, your compiler doesn't
come with <optional> yet and you want to minimize further dependencies.
2016-05-28 20:19:31 +02:00
ThePhD
9b65fb9f93 gotta have it on both sides yo 2016-05-20 05:39:34 -04:00
ThePhD
f70edf5686 Q_Q 2016-05-20 05:33:29 -04:00