Commit Graph

135 Commits

Author SHA1 Message Date
ThePhD
a9644d0956 valid checks should be used only for non-stack-based objects: otherwise, stack things should appropriately trigger none of them and let the checker handle that portion of the code 2017-03-22 07:53:57 -04:00
ThePhD
dce8053248 Time to break everything.
Added the ability to extend all usertypes at runtime. The performance implications need to be examined closely.
variadic_args documentation was updated with the desired example demonstrating proper usage
usertype examples were updated demonstrating Lua runtime and C++ runtime updating of a usertype table
SOL_SAFE_FUNCTIONS is now part of the definitions and defined (thanks @eliasdaler)
2017-03-12 21:35:19 -04:00
RaptorFactor
cee7d16412 Fix building tests with Catch v1.7.2.
From the Catch docs:
Please note that the THROW family of assertions expects to be passed a single
expression, not a statement or series of statements. If you want to check a
more complicated sequence of operations, you can use a C++11 lambda function.

https://github.com/philsquared/Catch/blob/master/docs/assertions.md

In current versions of Catch violating this causes a build error.
2017-02-17 18:40:51 -08:00
ThePhD
4aee6d3ed9 size checks don't really work out well with LuaJIT's memory patterns, so we'll leave them there but commented out in most cases 2017-02-15 06:27:48 -05:00
ThePhD
85194e0135 Fix leak issues and some ordering in state(view) move operations. Closes #336. 2017-02-15 05:42:44 -05:00
ThePhD
d1c203b0c5 Update teh docs, woooo. 2016-11-04 19:41:16 -04:00
ThePhD
d863a56760 Weee, script return value tests 2016-11-02 19:00:16 -04:00
ThePhD
0859af3203 Fix comparisons done of improper types 2016-10-30 04:40:17 -04:00
ThePhD
ebc8d0ffc3 D'oh. Goofed the copy/paste: now the test is proper. 2016-10-15 18:16: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
0ba4650c64 Another example, constness derp fix 2016-10-05 20:39:49 -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
81ffb3f334 make sure proxies can be properly set to one another 2016-08-24 12:21:14 -04:00
Kevin Brightwell
b79498cb40 Replace std::cout with INFO() from catch
* Removes unecessary verbosity.

I tried to wrap the `INFO` calls in a lua function to remove some of the
`print()` statements, but it turns out Catch relies on the macros heavily,
so that fails.
2016-08-22 13:36:27 -04:00
Kevin Brightwell
afd32908d5 Add test case for require_file with a usertype
I was having problems with usertypes and require_file, so I figured I
shoudl work in a less complicated testbed than mine, and worked here.
There as not a test case, so I wrote this one.

Additionally, adjusted bootstrap.py to allow for `--lua-version lua53`
syntax since most older linux systems use lua52, its useful to override.
2016-08-22 12:19:03 -04:00
ThePhD
f9931e9172 sigh 2016-08-11 11:44:58 -04:00
ThePhD
ff8ac8a6d4 One day I'll have a perfect release... 2016-08-11 11:36:39 -04: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
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
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
cf5919b705 Proper workings for multiple inheritance work. 2016-06-16 20:15:56 -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
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
ThePhD
7be09d0781 Who would have thought Lua's API between versions would be so... inconsistent. 2016-05-20 04:20:22 -04:00
ThePhD
96f231a183 We do have a cheap char type now, but figuring out that codecvt is super busted makes me sad
Safety macros are now in place. Usertype ones turned on by default
Closes #93
Closes #94
2016-05-18 21:29:17 -04:00
ThePhD
033c61ff1a Constructors for many of the types updated. sol::object now makes many more styles of types. Tests updated to match. Update documentation as per #87. Close #88. Close #86 2016-05-13 02:48:22 -04:00
ThePhD
9e31119f16 This commit adds some QoI constructor keys / types, as well as implements make_object. The documentation has been updated as well.
Closes #78
Closes #77
Closes #76
Closes #75
2016-05-03 14:19:30 -04:00
ThePhD
706ca803c8 push_reference and specific notes in the documentation for it 2016-05-01 17:10:41 -04:00
ThePhD
38d21827b1 :l Stop finding bugs in my code -- unique_usertype_traits implemented, sol::overloaded work for static functions 2016-04-24 01:39:44 -04:00
ThePhD
006357430b Shiny quick 'n' dirty tutorial -- variadic_args now is iterable -- fixed bug with transparent args in overload resolution -- added load functions 2016-04-23 17:07:51 -04:00
ThePhD
2cfe74cc7f Better demangling
Userdata pushed before the usertype is pushed will not latch onto the new metatable if its added
Updated tests
2016-04-22 17:06:56 -04:00
ThePhD
9872c67b4f jit lib and all 2016-04-17 21:00:24 -04:00
ThePhD
4fb5edab59 today is not a good day 2016-04-17 02:59:09 -04:00
ThePhD
a585dd45ab cout-style debugging... caaaan't wait.... 2016-04-17 02:52:41 -04:00
ThePhD
88155d44e0 sol::property is implemented for usertypes now
sol::this_state is  a transparent argument that gets the current state at any position in any callback
sol::variadic_args allows a person to get something that can reference the "rest of the arguments", though it doesn't enforce that it has to be the last argument

Closes #57
Closes #59
Closes #60
2016-04-17 02:18:34 -04:00
ThePhD
42f4455383 Allow for "static functions" to be registered on userdata like other parts of the framework, as well as self-contained structs and lambas.
sol::readonly for the ability to make a variable set on a userdata readonly.
No support for property yet: put on issues list for later
2016-04-11 01:02:43 -04:00
ThePhD
16007fa792 Documentation update, get_or for proxies, and other goodies. 2016-04-09 00:55:12 -04:00
ThePhD
4854cc98a5 S I G H Luajit 2016-04-07 05:29:08 -04:00
ThePhD
9734577fdb stack implementation, plus reference semantics within lua for usertypes/data now.
I hate my life.
I hate the projects I'm working on.
Closes #53
Closes #56
Closes #52
2016-04-07 05:21:49 -04:00
ThePhD
7af3fc4ffa Added nullopt pushing, optional pushing, improved tests 2016-03-30 16:52:51 -04:00
ThePhD
92c388e30a And nooow we're set for optional. Totally. With the get_or implementation as well. Hopefully this will be all we need. 2016-03-30 01:40:40 -04:00
ThePhD
9804d7dd63 Merge remote-tracking branch 'zwparchman/develop' into develop 2016-03-30 00:34:05 -04:00
ThePhD
5acb33e2bc full-on optional support. so much support it's coming through my eyeballs. Goodness.
Support for c_call wrapper to be a thing.
2016-03-30 00:31:18 -04:00
Zachary
6637f2e1b7 Added table::get_with_default method
There is now a sol::table::get_with_default method that takes 2
arguments, one being the key to search on, the other being the default.
If the key does not have a value in the table the default value is
returned.
2016-03-29 13:03:19 -05:00
ThePhD
a0fdaaaa7d Full-on optional support. 2016-03-25 10:39:54 -04:00
ThePhD
68660a1bed Allow for checking whether or not a given proxy is valid. 2016-03-25 05:27:19 -04:00
ThePhD
09a0a5051a Documentation updates and new stack::check_get API. 2016-03-24 15:45:44 -04:00
ThePhD
f43adf9a3d Additional function creation tables and tests to keep them there. 2016-03-15 07:32:59 -04:00