ThePhD
4a39020df9
macro-proof the library
2017-11-17 07:20:17 -05:00
ThePhD
fa912a57f6
add cstdint
header to get SIZE_MAX
2017-11-17 07:07:56 -05:00
ThePhD
6738ceedae
finally fix handling of exceptions, pray to the Lord it works
2017-11-11 18:33:56 -05:00
ThePhD
2d31d84070
attempt to wrangle exception handling on multiple systems
2017-11-11 07:42:14 -05:00
ThePhD
2203c1f64f
Overhaul examples
...
Overhaul docs for examples
Overhaul function_result and protected_function_result proxies
2017-11-09 17:41:46 -05:00
ThePhD
10b1bb04a9
formalize unsafe_function_result
...
add index-based getter to function_result
add safety checks for double deleters and other things of that nature
2017-11-07 20:19:36 -05:00
ThePhD
9a0b5ef34a
fixed ipairs swap bug
2017-10-30 14:38:16 -04:00
ThePhD
882f337c48
vet propagation handlers
2017-10-26 13:15:02 -04:00
ThePhD
d107cb8cc9
allow final classes to be used
...
improve error reporting for stack checks
2017-10-26 12:54:30 -04:00
ThePhD
8811a268a2
improvement to how handling of safe exceptions are done
2017-10-20 20:59:52 -04:00
ThePhD
3ee36c7d2e
fix proxy compare
...
try to silence some really dumb PVS STudio warnings
2017-10-16 19:28:43 -04:00
ThePhD
475b285347
update compat layer
2017-10-04 08:36:25 -04:00
ThePhD
8f007074ff
I REMEMBER NOW
2017-10-03 10:46:26 -04:00
ThePhD
c5505c234a
I'm not the smartest.
2017-10-03 08:26:23 -04:00
ThePhD
3660aec56e
continue to analyze alignment issues
2017-10-03 08:11:48 -04:00
ThePhD
73484bf8e9
add smaller environment example that's easier to process
...
vet entire framework for aligned reads/writes of memory for userdata
update documentation, links and tutorials accordingly
2017-10-02 17:32:58 -04:00
ThePhD
228df2630d
apple platforms use XSI-style strerror_r
2017-09-30 23:00:40 -04:00
ThePhD
5c9e8e2e45
is_stringable trait
2017-09-28 19:07:33 -04:00
ThePhD
0027ce6c84
make sure default userdata_getter
does not error everything horribly
...
update single
2017-09-24 16:04:10 -04:00
ThePhD
6d879f571a
add code to steal guts and grab stuff from other frameworks.
2017-09-23 20:26:03 -04:00
ThePhD
8f3699bea5
initializer_list support and tests, waiting for the day when we can use some kind of lua_any
to store any value into Lua and thus have initializer lists become the new hot stuff
2017-09-22 18:54:49 -04:00
ThePhD
290a67134a
Make sure nil_t
is still available, even if nil
is defined.
...
One day, there'll be a time when I get nearly everything right
2017-09-22 11:04:46 -04:00
ThePhD
0114882e13
force usage of lua_nil
across everything and add a proper macro / feature-test for it
2017-09-22 07:30:41 -04:00
ThePhD
1b23ad8b4f
attempt to silence warnings about array usage and keep a definition check for nil
...
add some "max size" checks in other places.
2017-09-21 21:32:52 -04:00
ThePhD
61d610bb70
make minor changes for XCode and Visual Studio Warning Level 4.
2017-09-21 19:24:21 -04:00
ThePhD
76d7195e64
test new compat mode (we only test text, but I don't really generate binary files, and it seems to play ball both ways, so...)
2017-09-16 14:18:45 -04:00
ThePhD
2aecb11e97
update single
2017-09-14 08:51:12 -04:00
ThePhD
1fc00278d5
repair all constructors, expand type recognition
2017-09-14 08:45:44 -04:00
ThePhD
ed341e00aa
clang error on some proxy stuff
2017-09-14 00:46:38 -04:00
ThePhD
8d828ac47b
implement main_reference as per @eliasdaler's suggestions
2017-09-14 00:35:40 -04:00
ThePhD
72143a494b
don't forget to pop!
2017-09-13 11:45:31 -04:00
ThePhD
7ff3a390b1
final lua_xmove fixes
2017-09-13 11:29:32 -04:00
ThePhD
dcff5cdaa0
re-implement xmove implicit transfers and hope it works proper this time
2017-09-13 10:20:24 -04:00
ThePhD
5816c6c34b
.clang-format the crap out of everything, I guess...!
2017-09-13 02:46:56 -04:00
ThePhD
e3bd984062
cannot do automatic lua_xmove
because of state differences
2017-09-12 22:01:29 -04:00
ThePhD
0325e27454
update single and add unused parameter checks to thread
2017-09-12 19:52:09 -04:00
ThePhD
fcdb471167
update docs and benchmarks to include images directly to cut down on doc build warnings
...
add coroutine tests for new xmove copy and move constructors
cry tears because Lua does not kill the variables on the thread before killing the thread
2017-09-12 19:15:23 -04:00
ThePhD
8643dec9e5
with the xmove constructors, we finally are forced to do safety checks.
2017-09-11 16:44:02 -04:00
ThePhD
074b9ae655
add xmove constructors for function, (light )userdata, table, reference and object
...
add additional coroutine example
improve traits
add tests for thread transfers
update single
2017-09-11 16:12:23 -04:00
ThePhD
85c81f618c
ignore test files
...
fix using wrong mode in the improper place
2017-09-11 13:25:05 -04:00
ThePhD
ac849a54c7
add compat53_ prefix where appropriate
...
make sure all checking macros define to 0 if not defined
make sure to vet use of `fsopen` on Windows since it it may or may not lock: use non-locking security version by default if possible
2017-09-11 13:15:27 -04:00
ThePhD
b4c1ab0915
add f and update single
2017-09-11 11:42:11 -04:00
ThePhD
7a29676633
update implementation of luaL_loadfilex
2017-09-11 11:31:18 -04:00
ThePhD
5fe73be5b5
use sizeof(buf), and update single
2017-09-10 12:28:39 -04:00
ThePhD
b38a382b03
fix compat loadfilex issues and investigate luajit completely
2017-09-10 12:08:43 -04:00
ThePhD
7aca8ac8cd
fix macro definitions to define to 0 when not explicitly defined and requirements are not met
...
macro checks now used defined() plus an is-truth check to see if its valid
fix void return for declaration but int return for definition of luaL_loadbufferx and luaL_loadfilex
update macro style to be similar to the rest of the library
fix comment styling
2017-09-10 11:02:47 -04:00
ThePhD
ae07a5dd67
fix unused parameter warnings using (void)
...
make sure signatures of macro declarations match
2017-09-10 10:30:30 -04:00
ThePhD
2ca0393a94
hunt down all uses of the k
variants of lua_pcall and lua_call
2017-09-10 04:11:30 -04:00
ThePhD
a6d209fbec
Not sure I want these compat changes but hopefully I'll get all the tests to pass one day.
2017-09-10 04:02:50 -04:00
ThePhD
232abab96a
EXPERIMENTAL DO NOT PULL
...
using new compatibility headers and testing on the tests (works on VC++ Lua 5.3 and LuaJIT so far)
2017-09-09 21:38:13 -04:00
ThePhD
d80748e6bb
fix raw/global parameter swapping
...
prepare for compat changes
2017-09-07 00:51:35 -04:00
ThePhD
30c7e40f08
ipairs for array types too
2017-09-06 16:50:27 -04:00
ThePhD
fb276676d1
create and test raw_set
and raw_get
...
add `new_enum` overload for initializer lists
add ipairs overload for 5.2 users
2017-09-06 15:09:51 -04:00
ThePhD
adff0ccbce
one day, i'll make a commit and it'll work first try
2017-09-05 23:06:02 -04:00
ThePhD
fc91147edc
fix errors
2017-09-05 21:07:33 -04:00
ThePhD
eb313eb8bc
remove string_shim
and just outright make a basic_string_view
mockup that serves our purposes. It won't be a real string view, but then again nobody should be using it extensively!~
2017-09-05 20:29:21 -04:00
ThePhD
761641202f
initial __type implementation, need to bikeshed over what goes in it and how to query information (sol::lib::extensions
time?)
...
fixed `sol::string_view` not pushing a string based on return type
2017-09-05 13:58:17 -04:00
ThePhD
a11e127d4d
update single and remove traits from the right place properly
2017-09-03 09:52:51 -04:00
ThePhD
54bcda140c
upgrade checkers and handlers to take a semi-optional "reason" type (const char* c-string desired)
...
add constructor_handler in same vein of handlers
add argument_handler in same vein of handlers
rewrite env_t checkers
2017-08-31 20:47:09 -04:00
ThePhD
3549bfa8ae
android fixes, wee?
2017-08-30 16:16:48 -04:00
ThePhD
dea0ec0a8a
update single and properly group tests
2017-08-28 09:38:30 -04:00
Stanislav Zhukov
043deed2be
Fix "'_MSVC_LANG' is not defined" warning
2017-08-28 09:28:50 -04:00
ThePhD
64baf6e491
testing fixes for proxy_base stuff
2017-08-27 01:59:37 -04:00
ThePhD
ec34e2ca96
inline iiiiiit
2017-08-27 00:41:10 -04:00
ThePhD
a39679293c
add constructors and assignment operators for protected function results and the like
...
improve documentation about saving compilation time and space
add docs about the two `script_..._error` functions
update single
2017-08-27 00:05:35 -04:00
ThePhD
d98155cd22
update examples and documentation, proof typing for user
2017-08-24 14:57:28 -04:00
ThePhD
92a6fb8c11
update all the examples
...
fix implicitly convertible function pointers from classes using `call_detail`'s `lua_call_wrapper`
specificaly add documentation for working with `std::function`
2017-08-24 14:39:02 -04:00
ThePhD
e4c3ded4b2
update table documentation and force traits not to use a deleted destructor -- rather, default it according to what it inherits
2017-08-22 10:53:46 -04:00
ThePhD
8d034adbdd
Merge remote-tracking branch 'origin/develop' into develop
...
# Conflicts:
# sol/simple_usertype_metatable.hpp
2017-08-21 15:34:21 -04:00
ThePhD
0c9d567d0a
"automatic usertypes" are now applied everywhere, regardless of what happens
...
new sol::filters (currently undocumented)
new gc tests, new plain_type tests
core abstractions over usertypes streamlined
SOL_STRINGS_ARE_NUMBERS triggers added
update single
2017-08-21 15:25:43 -04:00
Elias Daler
06e0ba7417
Update simple_usertype_metatable.hpp
...
Renamed loop index to j to avoid hiding function parameter
2017-08-17 08:57:09 -04:00
ThePhD
488edd9cd1
More MinGW fixes because Thanks MinGW SeemsGood
2017-08-14 10:00:17 -04:00
ThePhD
9b1c70cdf8
jit should be opened with a non-global name of "jit".
2017-08-13 20:40:32 -04:00
ThePhD
3a12435b17
yaaay, mingw.....
2017-08-13 13:24:59 -04:00
ThePhD
769faeec64
e.e weak standards suck
2017-08-13 13:17:04 -04:00
ThePhD
5683216e26
thread_local weee
2017-08-12 09:42:44 -04:00
ThePhD
b81483a406
shift travis test to run the luaJIT on the most updated
...
block windows macro crap
update single
2017-08-11 22:27:05 -04:00
ThePhD
7af8b4e80a
make sure tests don't throw where possible
...
edit stack checks
update container_usertype_as_container examples
2017-08-11 18:12:13 -04:00
mrgreywater
372db6f6ab
large integer
2017-08-11 11:39:46 -04:00
ThePhD
5e109c2c37
clang keeps complaining about overload issues...
2017-08-11 10:36:11 -04:00
ThePhD
4f7f1af515
trying to pin this error down...
2017-08-11 10:21:15 -04:00
ThePhD
644a5c549b
modifying tests to find out where crash is...
2017-08-11 09:59:42 -04:00
ThePhD
e0f6b636f1
now we start making a half-dozen commits trying to appease the various forms of clang++ and g++
2017-08-11 09:40:56 -04:00
ThePhD
eb1560d12a
add as_container documentation
...
improve exception documentation
improve state_view default handlers
add SAFE_PROPAGATION defines for compiling C++ as Lua
add examples for automatic operator registrations and as_container
fix tutorial code
change tests to not throw unless absolutely necessary
provide synchronization for file writing in tests
provide thread safety around thread tests for REQUIRE
add ostream automatic support
change 5.1 compat to only kick in luaL_loadbufferx and luaL_loadfilex when LuaJIT is version 2.0.1 and lower
2017-08-11 03:24:17 -04:00
ThePhD
b1f7d81acb
immunize as_table from std::reference_wrapper and pointer types.
2017-08-07 15:10:05 -04:00
ThePhD
c4b13b2b73
modify table push operations
2017-08-07 14:54:17 -04:00
ThePhD
c8728af5b5
throwing is unreliable... sigh
2017-08-07 14:22:56 -04:00
ThePhD
6eaa277860
bootstrap update to link pthreads, on top of container_traits improvement because of clang++ bounds-checking
2017-08-07 13:58:06 -04:00
ThePhD
092fec7afb
improve traits
2017-08-07 08:47:17 -04:00
ThePhD
62b242bc96
unused parameter, accidental string
2017-08-07 07:59:13 -04:00
ThePhD
f1ff3d6492
improve tests
...
change the default chunk name (and make it trail off if chunk name is too small)
minor changes to appease g++'s and clang++'s many warnings
2017-08-07 07:54:43 -04:00
ThePhD
b86d90f0e5
std::cend doesn't exist in C++11
...
remove unused variables detected by clang and g++
appease the parenthesis monster that was put into g++ 5.0
2017-08-07 02:27:08 -04:00
ThePhD
ca685e01c9
gcc plagues me , and will continue to, for a while to come
...
BUT IT WOOORKS!
2017-08-07 02:07:21 -04:00
ThePhD
03c229b25b
overhaul examples and add 2 new ones in preparation for the coming hell
...
fix how `stack_aligned_protected_function` and its friends behave
add new internal handler details to allow for stack-based handlers with maximum performance
update `string_shim` typedef to simply be called `string_view` and use `string_view` in all public-facing APIs.
2017-08-06 12:20:32 -04:00
ThePhD
104485bebd
this mega commit prepares to fix all of the issues listed in the repository for the past 3 weeks
2017-08-05 19:20:28 -04:00
ThePhD
2d65f6caa5
vetting for C++17
2017-07-09 19:04:51 -04:00
ThePhD
afaecbad2c
in_place will be the death of me
2017-07-09 13:44:28 -04:00
ThePhD
930f82cd5b
missed some comment markers
2017-07-09 12:59:28 -04:00
ThePhD
e69e7c79fa
C++17 additions: std::variant, string_views of all types, checker for if we have the right version
...
added variadic_results, to return a variable number of arguments to Lua
added variadic_results and as_results
added improved function examples (for multiple results and split overloading out)
added tests for variadics
added tests for C++17 utilities
added a forwarding header
added a specific `unsafe_function` header
added and improved documetation pages
2017-07-09 12:54:52 -04:00
Rohlem
077448bfc8
enable move semantics when pushing rvalue optional
...
add forward_like-style cast to stack::pusher<optional<O>>
2017-07-06 20:13:09 -04:00
ThePhD
504f49f3c7
update state to use default handler
2017-07-04 04:41:32 -04:00
ThePhD
da28527421
prepare for container_traits to be a thing
...
update large parts of the documentation and add a new section to streamline information about functions
2017-07-01 11:02:15 -04:00
ThePhD
1a6937e24e
Revert previous change of not pushing nil
when we encounter a nullptr
from special usertypes. If people want to check, they'll need to use optional or a raw pointer: messing with the raw usertype can also lead to some surprising problems, so we don't need to specialize for that use case.
2017-06-30 18:18:25 -04:00
Ilia Udalov
8d5aa69117
Fix compilation on Max OS X with lua 5.1
2017-06-27 21:26:07 -04:00
ThePhD
af2136ba00
Closes #431
...
If only I had a test that took a unique_ptr as a second argument. RIP.
2017-06-26 10:10:47 -04:00
ThePhD
13370e7e42
more constructors PogChamp
2017-06-24 10:20:07 -04:00
ThePhD
17271c84cb
BREAKING CHANGE: std::pair
for regular containers that are not marked as as_table_t
or as_nested
will now behave like regular containers and not force themselves to be key-value pairs. table-style serialization is still unaffected.
2017-06-23 18:07:24 -04:00
ThePhD
6b34a15d68
it would help if I was not blind
2017-06-19 23:06:57 -04:00
ThePhD
5468ab8b4e
Let's hope we didn't break shit...
2017-06-19 23:04:23 -04:00
ThePhD
5363a63de0
g++ sometimes chokes on parsing certain combinations of characters because of disambiguation rules
2017-06-17 00:52:02 -04:00
ThePhD
b811e73b90
who knew noexcept proofing would be so hard...? And there's so many places it could be activated in...!
2017-06-17 00:43:26 -04:00
ThePhD
11916a7c72
add noexcept function type barriers and guards
...
noexcept-proof function call trampolines
add noexcept tests to ensure its being checked
TODO: check g++ 7.1 builds when using -std=c++17 ...
2017-06-16 18:43:40 -04:00
Rohlem
39fdb5e041
add noexcept specializations to meta (detail) template trait structs
...
fixes the noexcept tests for C++17 (on my compiler)
2017-06-16 13:35:28 -04:00
ThePhD
0fb53335c4
this commit adds support for differentiating between multiple different unique_usertypes without actually having to store type information. It does not include the ability to override a unique_usertype
label for a specific type, but that might not prove necessary if differentiation remains possible with this methodology
...
Complete fixes #422 and addresses #423
2017-06-15 01:23:51 -04:00
ThePhD
85620df63c
new checker for unique_usertype to ensure type safety, when SOL_CHECK_ARGUMENTS or a protected tag is used to protect a function
2017-06-13 16:34:18 -04:00
ThePhD
42253cadfb
guard against is_integral
accepting booleans as integers
2017-06-12 10:45:51 -04:00
ThePhD
661386c384
revert codecvt fix for MinGW v7 and greater
...
add docs about compiler support
add notes about compilation issues
update single
2017-06-07 12:33:59 -04:00
ThePhD
090c834f2c
Let nullptr pass through, but we still can't do a conversion from lua_nil
to unique_usertype
s.
2017-06-07 11:02:47 -04:00
ThePhD
ea895b4338
hard errors for container usertypes if SOL_CHECK_ARGUMENTS is defined.
...
otherwise, as usual, we assume you know what you're doing
2017-06-03 06:25:06 -04:00
ThePhD
51245a9e7b
go to hell, gcc and clang
2017-05-29 13:06:37 -04:00
ThePhD
fd8e2df92e
fix some semantics for container usertypes, their iterators, and how they push their value types (to cope with crappy input iterator "containers")
...
add better handling for `readonly` to prevent bugs from `const`-ifying the return value of a member variable (e.g., unexpected copy semantics)
add more tests and add a few more handlers for new readonly type
fix simple_usertype_metatable's handling of newindex and index when not at the top level
2017-05-29 10:32:37 -04:00
ThePhD
c6d11a2bac
fix index and newindex semantics on simple_usertypes
...
we do not have to hit the metatable by-name since we go to special lengths to ensure we have a simple usertype table we can use
2017-05-28 19:14:18 -04:00
ThePhD
6047f48343
vet container_usertype and wrap for the proper traits regarding assignment and checking of said assignments
...
update documentation with more tips and other similar things
2017-05-20 20:01:04 -04:00
ThePhD
5ff394ae0d
use the copy assignable trait, even if that's not exactly what we're going for...
2017-05-16 20:20:59 -04:00
ThePhD
51d6f6fa54
You would think that we'd have accounted for this earlier...
...
Fixes #405
2017-05-16 06:12:28 -04:00
ThePhD
34b81bef6b
Handle qualified name failures of VC++, where using
templates do not match the fully qualified names of what they alias to (Thanks, VC++)
2017-05-15 10:41:50 -04:00
ThePhD
86e2de297d
update single, ensure unused variables are axed
2017-05-09 13:31:44 -04:00
ThePhD
58003669fb
this_environment is now live
2017-05-09 13:24:56 -04:00
ThePhD
c7237806ef
add a new example, add a note, adjust for LuaJIT Beta3 and beyond (hopefully it doesn't flip its crap: will have to warn suers....)
2017-05-07 10:16:47 -04:00
Carlos Carrasco
e13711ed84
add find method to containers to make fast lookups into set/unordered_set
2017-05-03 18:54:38 -04:00
ThePhD
fc3e7c40f3
static properties work as intended, I guess
2017-04-25 19:44:53 -04:00
ThePhD
c124d51353
Fix #398 by ensuring proper usertype propagation.
2017-04-20 20:27:32 -04:00
ThePhD
3d5f80e35a
Fix bad tag for clang
2017-04-19 15:29:26 -04:00
ThePhD
a3d6f8044c
working stuff!~
2017-04-19 13:00:47 -04:00
ThePhD
2acc8bee14
get_environment, documentation updates, and tests
2017-04-18 20:23:20 -04:00
ThePhD
36cc7f2863
crush the stack on final error when throwing to prevent 'leaks' in bad cases
2017-04-09 19:37:45 -04:00
ThePhD
a6e03ac214
tfw you break everything 'cause you're bad
2017-04-09 13:03:41 -04:00
ThePhD
2df532f79b
There was a leak when running scripts and catching errors, where she didn't properly clean up the stack.
2017-04-09 12:04:57 -04:00
ThePhD
814562260d
Fixes #394
2017-04-08 08:25:49 -04:00
ThePhD
28fff10637
Well, that bug was annoying to track down, but it was from the single.py script. This fixes #392
2017-04-06 21:15:22 -04:00
ThePhD
8c94cb730b
Fix static initialization order fiasco with meta_function_names
2017-04-04 16:16:22 -04:00
ThePhD
185f5ecc05
new travis environments to be tested out for osx stuff, plus new_table docs and environments on function calls
2017-04-02 22:37:01 -04:00
ThePhD
309325d0f5
New feature: environment plus documentation about the environment table and its usage with scripts.
2017-04-02 16:10:00 -04:00
ThePhD
fb06c8a754
Fix slight error when error handler was called and the result wasn't properly moved.
2017-03-31 22:39:16 -04:00
ThePhD
91aff613bc
Let's hope this isn't busted too
2017-03-31 17:59:55 -04:00
ThePhD
59b196a1db
add a new kind of error handling script call, updating docs and examples
2017-03-31 17:38:04 -04:00
ThePhD
4094ba3e7a
New feature: nested
getter for complex nested tables, plus docs and example
2017-03-30 14:11:43 -04:00
ThePhD
791aecbcd0
New documentation for as_table and some container examples
2017-03-30 01:31:55 -04:00
ThePhD
e27922e844
Fix a latent herpderp from when I added new constructors to protected_function
that resolves an ambigious implicit conversion.
2017-03-25 20:28:22 -04:00
ThePhD
3342e65b38
fixes to a lot of tests and proper subclassing for internal metatable data and work done to all of the usertypes to make them behave as expected
2017-03-23 21:13:46 -04:00