Jason Turner
4890b47460
Reduce unary operator overhead
2015-06-23 14:25:34 -06:00
Jason Turner
b53432cf28
Remove remaining uses of std::function
2015-06-23 13:02:43 -06:00
Jason Turner
a112d97141
Simplify a couple of random things
2015-06-23 11:48:01 -06:00
Jason Turner
83281bff52
Use placement new to avoid unique_ptr allocations
2015-06-23 11:11:56 -06:00
Jason Turner
05bec3b4a8
Avoid attempting convert_down when not possible
...
@arBmind this should be significant for you
2015-06-21 21:09:26 -06:00
Jason Turner
cd2fb1ec66
Normalize integer types in the loc saving
2015-06-20 11:45:34 -06:00
Jason Turner
ec33cf2709
Make local location saving atomic
2015-06-20 10:52:05 -06:00
Jason Turner
c7689f18ec
Save local variable location after first pass
2015-06-20 10:28:27 -06:00
Jason Turner
3eb7700912
Add missing <iterator>
2015-06-20 07:45:00 -06:00
Jason Turner
c4633436ba
Avoid placeholder lookup cost
2015-06-20 07:13:54 -06:00
Jason Turner
2870874d91
Fix clang build errors
2015-06-20 06:53:23 -06:00
Jason Turner
a147278a7e
Fix debug builds
2015-06-19 20:59:40 -06:00
Jason Turner
a2577b983c
Don't constantly re-create the function objects
2015-06-19 20:31:39 -06:00
Jason Turner
646563eb3f
A couple of cleanups and fixes
2015-06-19 20:10:45 -06:00
Jason Turner
f9860216c9
Move to std::vector for local stack objects
2015-06-19 16:49:16 -06:00
Jason Turner
b7eb469ac1
Move to some standard algorithms
2015-06-19 14:57:54 -06:00
Jason Turner
bcf573cf26
Don't loop over already filtered functions
2015-06-19 14:23:08 -06:00
Jason Turner
1bf4170d8f
Simplify dispatch
2015-06-19 11:47:16 -06:00
Jason Turner
6d632f6aa4
Normalize methods for numeric->string conversions
2015-06-19 06:18:49 -06:00
Jason Turner
835b5a90af
Reduce to_string overloads down to what is necessary
2015-06-18 21:47:05 -06:00
Jason Turner
2442e9ae20
Register all character types
2015-06-18 13:01:54 -06:00
Jason Turner
0dcac05f2f
Add numeric support for wide characters
2015-06-18 11:57:58 -06:00
Jason Turner
3d36ea6199
Add back CONSTEXPR for Type_Info
2015-06-16 17:01:01 -06:00
Jason Turner
68fa049d6c
Fix g++4.6 build
2015-06-10 19:26:21 -06:00
Jason Turner
f9e0193353
Add map .at method from c++11
...
closes #184
2015-06-10 18:41:50 -06:00
Jason Turner
ba492308f4
Move from multimap to sorted vector in dispatch
2015-06-08 15:19:32 -06:00
Jason Turner
d4e22c2c2c
Merge remote-tracking branch 'origin/remove_std_function' into develop
...
Conflicts:
include/chaiscript/dispatchkit/boxed_number.hpp
2015-06-08 14:34:02 -06:00
Jason Turner
b95526951f
Address warnings on VS
...
We have to ignore many of these warnings due to the nature of Boxed_Number supporting any operation.
2015-06-08 13:18:52 -06:00
Jason Turner
e4be97eb79
Revert "Remove redundant Boxed_Number type operations"
...
This reverts commit 59eecab0e80c9754e7545b152187934dce82d87d.
2015-06-04 11:04:21 -06:00
Jason Turner
59eecab0e8
Remove redundant Boxed_Number type operations
2015-06-04 08:28:38 -06:00
Jason Turner
be159759ea
Further boxed_number simplification
2015-06-03 21:24:09 -06:00
Jason Turner
1e41e73af2
Simplify boxed_number templates
2015-06-03 19:17:58 -06:00
Jason Turner
78819fd3a8
fixed boxed_number to_string impl
2015-06-03 18:39:49 -06:00
Jason Turner
c6c2bcc023
More template reduction in Boxed_Number
2015-06-03 08:59:01 -06:00
Jason Turner
e759a0c544
Reduce template instantiations
2015-06-03 07:00:28 -06:00
Jason Turner
b163065b3c
Begin simplifying boxed_number implementation
2015-06-03 06:25:41 -06:00
Jason Turner
38a83e3e56
Fix MSVC2013 builds
2015-06-02 17:35:31 -06:00
Jason Turner
bacf546dff
Merge branch 'develop' into remove_std_function
...
Conflicts:
include/chaiscript/dispatchkit/proxy_functions_detail.hpp
2015-06-02 16:16:22 -06:00
Jason Turner
85a6d85c1f
Fix warnings
...
- use `(void)` to avoid "unused parameter" warnings
- Move to clang-3.6 for thread sanitizer - found bug in 3.5's reporting
2015-06-02 13:53:07 -06:00
Jason Turner
26a0034176
Fixes for g++4.6
2015-06-01 16:07:10 -06:00
Jason Turner
cb5fbff1e6
Merge branch 'develop' into remove_std_function
2015-06-01 15:57:45 -06:00
Jason Turner
ff378abf84
Merge branch 'coverity_scan' into develop
2015-06-01 15:57:13 -06:00
Jason Turner
520f9bc0d2
Work around bug in g++4.6
...
I'm going to have to start dropping support for older compilers soon.
The 4.6 line is 4 years old now, and 4.7 has these issues fixed
2015-06-01 15:49:50 -06:00
Jason Turner
cf3db70d5d
Merge branch 'develop' into remove_std_function
...
Conflicts:
include/chaiscript/dispatchkit/proxy_functions_detail.hpp
2015-06-01 14:53:09 -06:00
Jason Turner
7026229273
Apply Index expansion technique to simplify code
...
Thanks @sean-parent I saw the technique in your future implementation
2015-06-01 09:43:29 -06:00
Jason Turner
d13d080dee
Remove constexpr from type_info
2015-05-30 15:50:21 -06:00
Jason Turner
61d5e2ad85
Revert "Work around coverity crash"
...
This reverts commit bb0d1005138e53cb2d414401f0338f22fbbc636b.
Conflicts:
include/chaiscript/dispatchkit/dispatchkit.hpp
include/chaiscript/dispatchkit/type_info.hpp
2015-05-30 15:47:22 -06:00
Jason Turner
023a3edf40
Fix static usage of Type_Info objects
2015-05-30 15:36:25 -06:00
Jason Turner
4b577f1f2a
Undefined types are never equal
2015-05-30 15:15:08 -06:00
Jason Turner
ac280a6971
Fix name() lookups
2015-05-30 14:14:48 -06:00
Jason Turner
bb0d100513
Work around coverity crash
...
I'm not 100% convinced on these changes, but they might be for the
better.
2015-05-30 07:33:34 -06:00
Jason Turner
e0234d942e
Various cleanups and fixes for older compilers
2015-05-22 19:40:56 -06:00
Jason Turner
df724b5c33
Completely remove Proxy_Function_Impl
2015-05-22 12:13:49 -06:00
Jason Turner
0b812942d4
Finish removing std::function<>
2015-05-22 11:35:58 -06:00
Jason Turner
48933bc32c
Use std::ref to make free functions callable
2015-05-22 10:28:28 -06:00
Jason Turner
630c618ae7
Remove automagic wrapping to std::function<>
2015-05-22 09:39:21 -06:00
Jason Turner
03143a9f83
Phase one of getting rid of std::function usage
2015-05-22 09:30:42 -06:00
Jason Turner
2129c5318b
Merge pull request #179 from ChaiScript/lambda_type_resolution
...
Lambda type resolution
2015-05-20 12:30:36 -06:00
Jason Turner
515ee711ce
Remove unnecessary code
2015-05-20 12:00:41 -06:00
Jason Turner
bc8a4c42fa
Get non-polymorphic Derived->Base conversions working
2015-05-20 11:08:07 -06:00
Jason Turner
da39b8403b
Remove more usage of new
2015-05-19 14:15:21 -06:00
Jason Turner
5fa44d5eef
Automatically deduce types of lambda for fun()
2015-05-19 13:47:34 -06:00
Jason Turner
cf4efacbe8
Add 'GLOBAL' keyword #122
...
Also provides functionality that makes things like overriding the built in
'print' possible. See #67
2015-05-04 11:47:36 -06:00
Jason Turner
c0dd0a3041
Use static const true/false on platforms with magic statics
2015-05-02 15:27:51 -06:00
Jason Turner
45baf6f8e9
Global const values for booleans
...
- Reduces number of Boxed_Value constructions greatly
2015-05-02 13:08:23 -06:00
Jason Turner
3e5034ecf8
Merge branch 'smaller_make_shared' into develop
2015-04-29 16:58:34 -06:00
Jason Turner
dc6d039a72
Add documentation note workaround for libc++
2015-04-29 13:41:58 -06:00
Jason Turner
2e72fde0ba
Horrible workaround for libc++
...
Libc++ appears to have a problem with dynamic_casting between types
where one of them is a template that has been forward declared. This is
the only case that I see this problem coming up.
Due to the existing interdependencies between header files, I *must*
forward declare the Assignable_Proxy_Function_Impl. I don't see any
other way around this than to work around the standard library bug.
2015-04-29 13:39:57 -06:00
Jason Turner
50e0ce36be
Clean up missing <string> include
2015-04-27 14:12:23 -06:00
Jason Turner
986699a3fe
Merge branch 'develop' into smaller_make_shared
...
And also apply cleanups suggested from resharper
Conflicts:
include/chaiscript/language/chaiscript_parser.hpp
2015-04-27 11:55:12 -06:00
Jason Turner
8889324b2d
Code simplifications and spelling fixes found by clion
2015-04-27 08:09:31 -06:00
Jason Turner
dde7d27b96
A smaller make_shared derived types
2015-04-24 21:35:56 -06:00
Jason Turner
ddc6ac8e00
Eliminate unnecessary warnings on MSVC (catch)
...
Mostly caused by catch
2015-04-23 16:27:43 -06:00
Jason Turner
9ab0b1108a
Wrap up method_missing docs and tests
2015-04-23 15:03:08 -06:00
Jason Turner
a542ec01f6
Update method_missing support to reduce exceptions
2015-04-22 12:15:15 -06:00
Jason Turner
f3943f215f
Merge remote-tracking branch 'origin/develop' into method_missing
2015-04-22 07:29:46 -06:00
Jason Turner
0f4bd2b889
Merge pull request #172 from ChaiScript/libcxx_ubuntu_14_04
...
Libcxx ubuntu 14 04
2015-04-22 07:26:10 -06:00
Jason Turner
650889eae7
Fix issue affecting function ordering for vector
2015-04-21 23:19:15 -06:00
Jason Turner
90102cebd7
Full dynamic object system built on method_missing working
2015-04-21 22:36:48 -06:00
Jason Turner
dc746ee131
Merge branch 'method_missing' of https://github.com/arBmind/ChaiScript into method_missing
...
PR #164
Conflicts:
include/chaiscript/dispatchkit/dispatchkit.hpp
2015-04-21 14:38:15 -06:00
Jason Turner
059c7bcca1
Merge branch 'fix_attr_function_calls' into develop
...
Conflicts:
src/test_module.cpp
2015-04-21 12:45:59 -06:00
Jason Turner
7830085f5e
Merge remote-tracking branch 'origin/add_array_type_support' into develop
2015-04-21 12:28:26 -06:00
Jason Turner
0ed9602ba9
Get libc++ on ubuntu 14.04 working
...
The std::is_member_function_pointer<> template is broken on this version
of the libc++ standard library for const member functions.
To get ChaiScript to work with this, we had to work around the use of
automatically generated std::function wrappers in many cases. This
actually cleaned up the code in a few places and muddied it up in one.
2015-04-21 12:01:29 -06:00
Jason Turner
2f531355cd
Boxed_Value changes necessary for libc++
2015-04-20 20:30:25 -06:00
Jason Turner
db34899225
Address msvc issues with #167 #165
...
The best we can get it down to is 2 moves in MSVC, it does not
elide the moves/copies as well as GCC and Clang do
It's not possible for us to support registering of array types in
MSVC12, but we can in MSVC14 with the latest release of the
compiler.
2015-04-18 20:51:45 -06:00
Jason Turner
71245aa703
Add array type support #167
2015-04-17 20:02:09 -06:00
Jason Turner
ecd2e523f7
attributes / members holding functions works fully now
...
Issue #155
2015-04-17 16:32:59 -06:00
Jason Turner
d2ed8fdcf1
Get class members that are functions working
...
Automatic conversion of return values into Proxy_Function objects
Issue: #155
2015-04-17 12:18:47 -06:00
Jason Turner
2e769d81cf
Get return_value_handling fully working
2015-04-10 09:32:01 -06:00
Andreas Reischuck
cbeeadd6f3
Merge branch 'develop' into method_missing
2015-04-08 16:52:34 +02:00
Jason Turner
1f74bfd9b3
Attempt to create the concept of "return values"
...
to reduce clones of values. This doesn't quite work
2015-04-07 13:54:38 -06:00
Jason Turner
5114ca9d35
Fix double pointer cast test
2015-04-07 11:09:47 -06:00
Jason Turner
79181fe41e
Reduce copies of UDTs
2015-04-07 10:23:43 -06:00
Jason Turner
962bdf4b3c
Reduce exceptions on startup to minimum
...
This still has some exceptions thrown during the loading of modules
since I have no way of knowing where the operating system
`dlopen` and `LoadLibrary` functions will search for me to pre-check
it.
Closes #158
2015-04-06 13:17:41 -06:00
Jason Turner
1557dabf4f
Fixes array access with arithmetic conversions
...
Closes #156
2015-04-06 07:21:32 -06:00
Jason Turner
7f1cd29a2c
Various cleanups
2015-04-02 15:40:45 -06:00
Jason Turner
59103b5a22
Apply some IIFE to reduce copies
2015-03-29 21:58:14 -06:00
Andreas Reischuck
b67dc4e09a
Merge branch 'develop' into method_missing
2015-03-27 21:36:25 +01:00
Jason Turner
95ead0dbfb
Various warning cleanups
2015-03-25 17:30:19 -06:00
Jason Turner
62337062bf
Reduce the number of exceptions created at runtime
2015-03-25 13:36:02 -06:00