ThePhD
b655c07258
Merge remote-tracking branch 'root/master'
2013-12-14 20:07:35 -05:00
Rapptz
5341682503
Change tabs to spaces
2013-12-14 04:42:53 -05:00
Rapptz
f061e0040d
Add operator== and operator!= support for sol::object and nil
2013-12-14 00:28:14 -05:00
ThePhD
20ff49cd66
Merge remote-tracking branch 'root/master'
...
* root/master:
Cast result of floating point retrieval before receiving it
Fix bug with sol::object not being copyable
2013-12-14 00:15:25 -05:00
ThePhD
25f42b4bd3
A hefty slice of changes for functions on the proxy. Not necessary, but was fun to get around MSVC's ICE errors.
2013-12-14 00:15:14 -05:00
Rapptz
a6306d7012
Cast result of floating point retrieval before receiving it
2013-12-14 00:07:41 -05:00
Rapptz
c59fc9e536
Fix bug with sol::object not being copyable
2013-12-14 00:05:14 -05:00
ThePhD
49ad128493
If you want to have return types, use .call
instead of operator()
.
2013-12-13 23:30:16 -05:00
ThePhD
c6f6203ab2
We can avoid unused variable issues entirely and keep MSVC from borking out by explicitly declaring the size of the swallow
declaration. This should make all compilers happy.
2013-12-13 23:26:59 -05:00
ThePhD
009a79606a
It has to be a reference, not a value. I mistakenly thought typename Table
was taken by reference... oh well. It's fixed now. I wish VC++ didn't choke so badly on decltype.
2013-12-13 22:34:56 -05:00
ThePhD
9624dd93e7
VC++ Compat again.
2013-12-13 20:09:51 -05:00
ThePhD
4dab754b86
VC++ Compatibility and some changes to function I'll need to test.
2013-12-13 17:50:24 -05:00
Rapptz
ebbceeb9e2
Add support for const table operator[] retrieval
2013-12-13 15:40:20 -05:00
ThePhD
856d28ab70
EnableIf and DisableIf back in place, type trait fixed for MSVC. Bleh, this is a lot of work. Removed functional
header, because nobody's using it.
2013-12-13 14:59:46 -05:00
ThePhD
dc6935553b
Forgot a private on table.
2013-12-13 14:19:04 -05:00
ThePhD
2192e98eec
MSVC needs explicit overloads and explicit =default operators on sol::function
. It's quite whacky, really. Anyway, it compiles, so let's just make sure this works for GCC too.
2013-12-13 14:16:59 -05:00
Rapptz
af0097fb7f
Add support for setting functions with operator[]
2013-12-12 19:48:26 -05:00
Rapptz
7cc8c93289
Move type traits to its own header and clean up code using the traits
2013-12-12 18:43:36 -05:00
Rapptz
5eeaedec2f
Basic operator[] support for tables
2013-12-12 18:12:07 -05:00
Rapptz
d44a215216
Remove trivial destructors from lua_func types
2013-12-12 14:36:09 -05:00
Rapptz
9f36db8148
Rename script_file to open_file
2013-12-12 05:31:35 -05:00
Rapptz
c241a3df92
Remove redundant check for narr and nrec variables in create_table
2013-12-12 05:12:45 -05:00
Rapptz
fdf145ecd8
Minor stylistic changes to be consistent
2013-12-12 05:11:09 -05:00
ThePhD
2b4f9cc24c
Meh, who needs "eval". It's technically right, but I think evaluate might be for shorter lines and stuff... who knows.
2013-12-11 18:16:52 -05:00
ThePhD
459bbcaba0
GCC is lame. But at least it's building now. Fixed up the build.ninja and made all tests pass (exceptions weren't being thrown because of lua_pcall
: use lua_call
to let exceptions propogate naturally).
2013-12-11 12:42:00 -05:00
ThePhD
bcf4b9b08f
Have I mentioned I hate GCC? I hate GCC.
2013-12-11 11:56:34 -05:00
ThePhD
350f430d74
Improved tests, added a build.ninja for TeamCity, and fixed formatting again to work with Rapptz's style.
2013-12-11 11:18:13 -05:00
ThePhD
dd63621453
Added some catch tests and a basic nil getter.
2013-12-11 08:32:27 -05:00
ThePhD
fc19896815
Some changes to make sure builds go through on 64-bit.
2013-12-11 06:10:30 -05:00
Rapptz
9e47ec6b06
Merge branch 'master' of https://github.com/ThePhD/sol into ThePhD
2013-12-09 17:20:21 -05:00
ThePhD
e53c47f7b1
Okay, so now it compiles without errors or warnings and works pretty well. This should be the last piece necessary for full working conformance. Yey~
2013-12-09 17:01:52 -05:00
Rapptz
404dc641a9
Merge branch 'master' of https://github.com/ThePhD/sol into ThePhD
2013-12-09 14:27:39 -05:00
ThePhD
19d01ecd1d
Okay, cleaned up includes and now the newest feature:
...
STATEFUL FUNCTIONS!
Any stateful function now works and is properly cleaned up, thanks to some additional metatables that are associated with the function values.
This lays the ground work for class bindings, but that's a far off dream. For now, table retrieval and `operator[]` is what's for dinner.
2013-12-09 14:12:38 -05:00
ThePhD
21142e7e7d
Removed std::unordered_map storage on tables since they were getting deleted anyways.
...
Memory leaks are currently present: will have to figure out how to patch those up.
2013-12-09 12:05:17 -05:00
Rapptz
599673150e
Remove construction from a filename as it's pretty useless
2013-12-09 00:22:37 -05:00
ThePhD
51f7010363
Additional nullptr
's for GCC's whining ass, and more reinterpret casts. Also for GCC's whiny ass.
2013-12-09 00:04:37 -05:00
ThePhD
2d2ad59492
Well, now that we've optimized l-values, the only reason for explicit_lua_func and member pointers is for it to actually store it. To we store a T
now, isntead of a T*
.
2013-12-09 00:01:28 -05:00
ThePhD
a66ceb92f7
GCC is retarded. Well, mostly retarded, anyhow...
2013-12-08 23:51:18 -05:00
ThePhD
288fd1319c
Ranged for loop. Because ~~clean code~~.
2013-12-08 23:42:20 -05:00
ThePhD
854cbeef71
Fixing style to fit @Rapptz's usual no-tabs, four-space-indents, template<> no-spaces stuff.
2013-12-08 23:09:07 -05:00
ThePhD
49c73c4725
Heavy optimizations to stateless and lvalue member functions allow us to make many of the general use cases of lambdas and member function pointers work out.
...
This will be useful. The next fix has tobe in table.hpp in the std::false_type ... specialization of the private `set_fx` function.
2013-12-08 23:05:03 -05:00
ThePhD
8c023c54a5
This properly pushes a local function to the table. However, we're having issues because the tables are being constructed without an attachment to sol::state, making it impossible to keep std::shared_ptr's alive that contain the virtual interfaces necessary to handle those goddamn lambdas.
2013-12-07 21:16:23 -05:00
Rapptz
a4a4d21376
Allow polymorphic object class to handle sol::function
2013-12-03 01:20:31 -05:00
Rapptz
101e80c913
Remove unused unordered_map
2013-12-02 23:59:44 -05:00
Rapptz
6ff859ba29
Stylistic changes to match the rest of the code
2013-12-02 23:33:23 -05:00
ThePhD
45000177c3
Alright, this should fix the GCC build errors! Everything should work as advertised. A Sol for the Mun: go, go!
2013-12-02 21:39:21 -05:00
ThePhD
86b16dc61b
GCC is still not compiling, complaining about detail::ltr_pop and not being able to find a proper overload. I'm not sure why it's complaining, I'll have to look in more detail soon.
2013-12-02 20:12:25 -05:00
ThePhD
17ec059c32
Move ltr_pop down, so that GCC can see the right instantiations of the functions it needs.
2013-12-02 19:34:10 -05:00
ThePhD
bf2404bdfd
More style fixes and more attempts to make sure this compiles between GCC and MSVC.
2013-12-02 19:15:23 -05:00
ThePhD
29f171e124
Style fixes and fixes for templates not usually used by MSVC (broken two-phase lookup killing me here. :c)
...
Member functions now work as well for set_function. If performance of `new`ing a type ever becomes too large, we can create a custom allocator for the std::shared_ptr's of the types. We can also up-front allocate for the unordered_map as well.
2013-12-02 18:11:25 -05:00