Jason Turner
947d7c2591
Merge branch 'develop' into update_travis_toolchain
...
Conflicts:
.decent_ci-Windows.yaml
CMakeLists.txt
include/chaiscript/chaiscript_defines.hpp
2016-03-05 21:12:14 -07:00
Jason Turner
539ee3c84f
Ignore unknown pragmas in older apple clang
2016-03-05 10:44:40 -07:00
Jason Turner
ad7e2138d9
Various Windows fixes
2016-03-04 17:39:32 -07:00
Jason Turner
c07f413694
Merge branch 'develop' into typed_function_ordering
2016-03-04 13:33:29 -07:00
Jason Turner
b5b6e5a5a3
Drop ifdef'd code for gcc4.6 and msvc12
2016-03-04 11:15:39 -07:00
Jason Turner
8feff5bc76
Clean up some more warnings
2016-03-04 10:03:39 -07:00
Jason Turner
d4f02b5e67
Address sign promotion warnings, add todo test
2016-03-04 07:58:21 -07:00
Jason Turner
645377e191
Remove memory_order_relaxed usage
2016-03-02 20:36:05 -07:00
Jason Turner
5a03c88ee3
Add -Wconvert and address the warnings from it
...
closes #254
2016-03-02 17:40:15 -07:00
Jason Turner
172ab7b8e4
Merge branch 'develop' into typed_function_ordering
2016-02-18 08:57:55 -07:00
Jason Turner
7f8a6f24f9
Fix a few warnings from old gcc
2016-02-16 11:13:14 -07:00
Jason Turner
e024b99b36
Fixes for type_conversion handling
2016-02-16 08:29:01 -07:00
Jason Turner
ed65ad72d0
Update copyrights
2016-02-14 20:04:17 -07:00
Jason Turner
bc0eaa5d15
Fix some issues found by cppcheck
2016-02-14 20:01:49 -07:00
Jason Turner
bde2a45384
Add map conversions
...
closes #57
2016-01-29 20:41:12 -07:00
Jason Turner
7222390c96
Fix build
2016-01-29 16:12:10 -07:00
Jason Turner
b33f0a08bc
Remove initializer_list conversion due to the issues mentioned here:
...
http://stackoverflow.com/questions/18895583/convert-a-vectort-to-initializer-listt
2016-01-29 16:04:06 -07:00
Jason Turner
140a90f72a
Fix g++4.6 build issues
2016-01-29 15:35:40 -07:00
Jason Turner
f697384028
Merge pull request #243 from vrennert/feature_initializer_list_conversion
...
Added initializer_list<T> conversion as possible function call argument or return type.
2016-01-29 15:20:38 -07:00
Jason Turner
dfd04c8291
Clean up formatting from last merge
...
Closes #238
2016-01-29 15:16:35 -07:00
Jason Turner
209d6ed2e4
Merge remote-tracking branch 'ktm/set-global' into develop
2016-01-29 15:14:32 -07:00
Viktor Rennert
af1eba1b0e
Added type fix for gcc/clang and tiny formating fixes.
2016-01-26 18:36:45 +01:00
Jason Turner
f82f6c2068
Some fixes found by resharper c++
2016-01-25 16:41:11 -07:00
Viktor Rennert
fcca453223
Added initializer_list<T> conversion as possible function call argument or return type.
2016-01-26 00:06:57 +01:00
Jason Turner
5cb6f6a1a2
Merge branch 'develop' into typed_function_ordering
2016-01-20 18:28:28 -07:00
Jason Turner
c067575ac4
Merge branch 'develop' into add_performance_tests
2016-01-20 18:24:50 -07:00
ktm
3587c3e165
fixed comment on set_global
2016-01-18 13:24:59 -05:00
ktm
43def57852
add set_global, update unit test
2016-01-17 00:01:51 -05:00
Jason Turner
561b47e463
More explicit int/bool conversions
2016-01-16 09:27:16 -07:00
Jason Turner
9885534b5b
Merge branch 'develop' into add_performance_tests
2016-01-16 09:02:52 -07:00
Jason Turner
4e69e5a3d2
Merge branch 'Fix_Crash_From_CppCon' of github.com:ChaiScript/ChaiScript into Fix_Crash_From_CppCon
2015-11-25 07:51:12 -07:00
Jason Turner
49c89a3b88
un-break ** cast operation
2015-11-25 09:49:26 -05:00
Jason Turner
681b7db727
Merge branch 'Fix_Crash_From_CppCon' of github.com:ChaiScript/ChaiScript into Fix_Crash_From_CppCon
2015-11-20 06:49:35 -07:00
Jason Turner
4826bddb5b
Add overloads for cosnt *& casts
2015-11-20 07:46:52 -06:00
Jason Turner
49436e5740
Merge branch 'develop' into Fix_Crash_From_CppCon
2015-11-20 05:53:44 -07:00
Jason Turner
6fe7f5ce98
Don't return reference to copied values
2015-11-03 16:02:25 -07:00
Jason Turner
95256417ac
Merge branch 'add_performance_tests' of github.com:ChaiScript/ChaiScript into typed_function_ordering
2015-10-25 15:00:08 -06:00
Jason Turner
8bd7ccfa9f
Only run performance tests on linux
2015-10-23 16:38:04 -06:00
Jason Turner
40b1549b3b
Fix use of broken bitset implementation in g++
2015-10-21 09:30:22 -06:00
Jason Turner
8496a86043
Use a bitset instead of bools for type_info flags
2015-10-20 18:14:42 -06:00
Jason Turner
09748275db
Fix warnings from clang
2015-10-17 09:22:13 -06:00
Jason Turner
7ba7b81a5c
Implement option explicit for dynamic objects.
...
Closes #218
2015-10-16 21:41:54 -06:00
Jason Turner
882cbf2dfb
Add option explicit code, but don't throw yet
...
Work towards #218
2015-10-16 18:47:26 -06:00
Jason Turner
985b62705f
Add support for != bools
...
closes #217
2015-10-15 22:06:06 -06:00
Jason Turner
ad69bf7d38
Get vector push_back_ref working as expected
2015-10-15 21:42:25 -06:00
Jason Turner
36765df3c0
Fix vector element assignment issues
2015-10-15 21:20:12 -06:00
Jason Turner
beedf13d01
Make binary literals sized like other integer types
2015-10-03 16:38:41 -06:00
Jason Turner
5a651e2b8a
Fix numeric overload resolution
...
Closes #209
2015-10-01 09:56:53 -06:00
Jason Turner
3a8cb581cc
Merge branch 'add_json_support' into develop
2015-09-30 14:39:21 -06:00
Jason Turner
ba30d4f483
Add support for == for Map
2015-09-30 08:57:36 -06:00
Jason Turner
b4ffcd594d
Fix long long type usage
...
Closes #208
2015-09-30 06:49:03 -06:00
Jason Turner
681f18ee62
backport JSON for G++4.6
2015-09-21 12:27:33 -06:00
Jason Turner
85ac1052dd
Initial support for export to JSON
2015-09-20 16:19:11 -06:00
Jason Turner
f9f1d5807a
Basic support for parsing of JSON objects
2015-09-20 15:35:53 -06:00
Jason Turner
14227475b2
Merge remote-tracking branch 'origin/cpp_fun_call_performance' into develop
2015-09-18 13:41:44 -06:00
Jason Turner
e1a80fb5ce
A couple of MSVC fixes
2015-09-16 10:28:05 -06:00
Jason Turner
aabe53c934
Make var work with move-only types
2015-09-12 22:21:05 -06:00
Jason Turner
f3dbb7ed87
Control how fast global vectors grow
2015-08-31 11:09:03 -06:00
Jason Turner
52e11bf001
Fun location caching phase2
...
This shows ~25% performance over develop
2015-08-31 11:00:56 -06:00
Jason Turner
f06e5cdcd6
Cache function lookups
2015-08-31 09:44:47 -06:00
Jason Turner
15eb78bd8f
Move to indexed function storage
2015-08-31 08:41:47 -06:00
Jason Turner
0a143d1cd3
Make push_* consistant with inplace vector
2015-08-27 15:30:02 -06:00
Jason Turner
2d2251c1da
Merge branch 'develop' of github.com:ChaiScript/ChaiScript into typed_function_ordering
2015-08-26 18:58:34 -06:00
Jason Turner
0adacc0b5e
Merge branch 'develop' of github.com:ChaiScript/ChaiScript into typed_function_ordering
2015-08-26 18:47:43 -06:00
Jason Turner
c9625b09b0
Fix magic 'this' values
2015-08-26 18:41:46 -06:00
Jason Turner
28f5a74e98
Merge branch 'develop' of github.com:ChaiScript/ChaiScript into develop
2015-08-15 19:28:45 -06:00
Jason Turner
781d62d3a5
Make result of dynamic constructor marked as return value
2015-08-15 07:29:07 -06:00
Jason Turner
bd9af5eff4
Order typed functions over untyped
...
specifically the chaiscript defined ones
2015-08-14 21:58:54 -06:00
Jason Turner
5aa0bfcea4
Add some convenience functions for parsing
2015-08-11 19:20:18 -06:00
Jason Turner
04e2256c92
Fix error caused by last fix
2015-08-02 18:21:48 -06:00
Jason Turner
38ba00e55c
Get MSVC2015 quieted down on warnings
...
re @arBmind
2015-08-02 16:52:43 -06:00
Jason Turner
8931346230
Eradicate internal exceptions during object clone
2015-08-01 13:47:25 -06:00
Jason Turner
31b3195c17
Don't allow conversion to std::function on arity mismatch
2015-07-30 20:23:34 -06:00
Jason Turner
419c2d72a8
Merge branch 'develop' of github.com:ChaiScript/ChaiScript into multithreaded_performance
...
Conflicts:
include/chaiscript/language/chaiscript_eval.hpp
2015-07-16 18:12:09 -06:00
Jason Turner
6a7a934e3e
Merge branch 'develop' of github.com:ChaiScript/ChaiScript into multithreaded_performance
...
Conflicts:
include/chaiscript/language/chaiscript_eval.hpp
2015-07-16 13:16:04 -06:00
Jason Turner
1f72afc8f5
Add crashes and fixes found during fuzzy testing
...
* Let unhandled exceptions propogate to user
* Report eval_error when break statement is not in loop
* Fix handling of 0 length scripts closes #193
* Don't crash on arity mismatch - Specifically affects the case where no overloads exist for a given function
* Fix error printing for `bind` calls
* Handle unexpected continue statement
* Check arity during bind
* Don't allow arith conversion on variadic function
* Correct `bind` parameter match count
* Add in expected Boxed_Value exception cases
* Check access to AST, don't allow `;` in func def
* Don't attempt arithmetic unary & call
* Don't crash on 0 param call to `bind`
* Catch errors during member function dispatch
* Properly handle type of const bool &
2015-07-16 12:51:50 -06:00
Jason Turner
2fbc377119
More strongly typed handling of push_back wrapper
...
Closes #192
2015-07-11 18:36:07 -06:00
Jason Turner
1ea608babe
Better detect arithmetic types #192
2015-07-11 18:32:47 -06:00
Jason Turner
37120f486f
Handle user defined conversions of return types from functor
2015-07-04 08:43:52 -06:00
Jason Turner
484ff7a98b
Add utility for converting std::vector types
2015-07-03 14:39:21 -06:00
Jason Turner
72aedca39c
Fix wrapping of functions with move only params
2015-06-29 20:43:12 -06:00
Jason Turner
748c18f465
Save stack & and prevent lookups
2015-06-28 15:17:58 -06:00
Jason Turner
b9875e2844
Miscellaneous performance tweaks
2015-06-28 13:20:20 -06:00
Jason Turner
902f48cd4c
Revert "Use placement new to avoid unique_ptr allocations"
...
This reverts commit 83281bff52a4ceb7a2a479a42efd5795c54924ac.
2015-06-24 11:25:56 -06:00
Jason Turner
e339055e0b
Address some warnings for clang/gcc
2015-06-23 16:07:57 -06:00
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
Jason Turner
d396f8e6a0
Enhancements for > 1 param function dispatch
2015-03-25 10:01:36 -06:00
Jason Turner
0b28603cdc
Merge branch 'develop' of github.com:ChaiScript/ChaiScript into develop
2015-03-23 14:16:48 -06:00
Jason Turner
91bcaaa037
Reduce use of mem_fn when possible
2015-03-23 14:16:23 -06:00
Jason Turner
04bceedf64
Reduce versions of shared_ptr created
2015-03-23 13:44:40 -06:00
Jason Turner
9326539f3b
Fix gcc 4.6 errors/issues
2015-03-22 08:14:59 -06:00
Andreas Reischuck
4e614729dc
using copy construction
2015-03-22 00:23:49 +01:00
Andreas Reischuck
d0e763d77e
fixed method_missing parameter order
2015-03-22 00:17:53 +01:00
Andreas Reischuck
c15e0174c9
added "method_missing" feature
2015-03-21 22:29:16 +01:00
Jason Turner
722e9ed3d1
Various code cleanups
2015-01-31 10:10:35 -07:00
Jason Turner
9b19aa3b6e
Get ready for 5.6.0 release
...
- Update copyrights to 2015
- Set version to 5.6.0
- Update release notes
2015-01-17 07:05:10 -07:00
Jason Turner
e86fc96b2f
Merge branch 'AddMoreWarningFlags' into develop
...
Conflicts:
include/chaiscript/dispatchkit/boxed_number.hpp
include/chaiscript/dispatchkit/proxy_functions.hpp
include/chaiscript/language/chaiscript_eval.hpp
2015-01-16 19:32:53 -07:00
Jason Turner
66801349a8
Merge remote-tracking branch 'origin/OptionalTypedArgs' into develop
2015-01-16 10:19:27 -07:00
Jason Turner
bde4eb04b6
Merge remote-tracking branch 'origin/DivideByZeroProtection' into develop
2015-01-16 10:18:50 -07:00
Jason Turner
c3f343450d
Fix issues found with cppcheck inconclusive
2015-01-16 10:10:14 -07:00
Jason Turner
c7b2b3095a
Merge branch 'develop' of https://github.com/ChaiScript/ChaiScript into AddMoreWarningFlags
2015-01-15 15:45:45 -07:00
Jason Turner
9449fca22f
Memory leak error fixes. Various compiler fixes.
2015-01-15 15:42:35 -07:00
Jason Turner
759d6fc42f
Remove [[ noreturn ]], MSVC14 doesn't yet support attributes?
2015-01-15 15:15:02 -07:00
Jason Turner
f95ca75aca
Clean up more warnings with stricter warning levels
2015-01-15 14:24:39 -07:00
Jason Turner
41a45ce8b5
Enable warnings (and fix up some things)
2015-01-14 21:07:40 -07:00
Jason Turner
5b6e6042f3
Work around MSVC 2014 issue with future
...
have to wrap std::future::valid in a lambda due to noexcept?!
2015-01-14 20:41:41 -07:00
Jason Turner
3f23e57a3d
Fix build error
2015-01-13 12:07:08 -07:00
Jason Turner
f66b4aafc1
Fix g++ 4.6 initializers
2015-01-13 11:58:23 -07:00
Jason Turner
3d1edbf38f
Add missing dynamic_object_detail
2015-01-13 11:44:13 -07:00
Jason Turner
4761a68d06
Enable optional typing of function params
2015-01-13 11:24:40 -07:00
Jason Turner
31ef683ced
Use SFINAE to clean up divide by zero protection
2015-01-12 10:06:42 -07:00
Jason Turner
9b3bb493e9
Clean up some MSVC warnings
2015-01-10 07:18:10 -07:00
Jason Turner
2f90b3ae6b
Correct exception specifier for arithmetic_error
2015-01-09 20:31:40 -07:00
Jason Turner
576816e3b1
Add unit test for divide by zero protection
2015-01-09 20:17:20 -07:00
Jason Turner
25b15a3449
Only apply divide by zero protection to integers
...
Also allow arithmetic error to bubble up to the caller.
2015-01-09 20:06:04 -07:00
Jason Turner
8746a9eea5
Make divide by zero protection the default
2015-01-09 19:38:27 -07:00
Jason Turner
0695eec3ca
Limit scope of #ifdefs, remove macros
...
Macros do not fit within the ChaiScript coding standards because
they do not respect namespaces and are more difficult to debug
of something goes wrong.
2015-01-09 19:30:28 -07:00
Jason Turner
1a4dec0df0
Remove redundant/unnecessary constructors and object copies.
2015-01-09 19:06:08 -07:00
Jason Turner
de09489355
Fix formatting (tabs vs spaces) in divide/0 protection
2015-01-09 19:02:56 -07:00
Jason Turner
440ceeebbb
Merge branch 'develop' of https://github.com/lufinkey/ChaiScript into DivideByZeroProtection
2015-01-09 19:01:58 -07:00
Jason Turner
52d03a66b1
Add future support, and fix returning of r-values
2015-01-06 15:31:06 -07:00
Jason Turner
cc5bf45b3b
Merge branch 'develop' into performance_test
2014-11-14 21:37:07 -07:00
Jason Turner
28124e4b33
Fix stack memory management
...
From 747M to 6.2M for profiling tests.
2014-11-14 20:28:53 -07:00
Jason Turner
283152a880
Speed up print functions
2014-11-14 09:45:49 -07:00
Jason Turner
cf49b1b30c
Make def more efficient, fix to_string(string)
2014-11-13 12:28:52 -07:00
Jason Turner
63a083b47b
Remove uses of std::endl, which imply a flush
2014-11-13 10:13:51 -07:00
Jason Turner
3f460fdd20
Fix 64bit msvc warning
2014-11-03 18:34:33 -07:00
Jason Turner
5d5e881971
Fix arity of functions
...
A value was being accessed after it was moved.
2014-11-03 08:24:02 -07:00
Jason Turner
5515d058bb
Fix some warnings for clang / 64bit windows
2014-11-03 07:33:53 -07:00
Jason Turner
79c5f71975
Fix compilation on gcc 4.6
2014-11-02 21:47:42 -07:00
Jason Turner
c876a89030
Fix crash during user_defined_conversions_2
...
Temporaries created during user conversion operations were being dropped
before the result of the conversion was able to be used. This fixes that
by temporarily storing the result of the conversion inside the
current Function_Push_Pop context.
2014-11-02 21:37:01 -07:00
Jason Turner
20c0e6016e
Add type_conversion helper and failing unit test
2014-11-02 14:08:57 -07:00
Jason Turner
dd12785b72
Reduce virtual calls for get_arity
...
Saves compiled code size and some minor runtime differences
2014-11-01 18:40:42 -06:00
Jason Turner
87cee688a8
Fix broken type conversion call implementation
...
- We need to properly order the function so that the one with the least
number if type differences is the one that is tried first.
2014-11-01 15:52:02 -06:00
Jason Turner
e2cf8a48be
Correct check for which types might have conversions
2014-10-29 07:07:12 -06:00
Jason Turner
7c766f87a4
Add thread specific cache of type info
...
Reduces the number of locks necessary to check of a user defined type
conversion should be scanned for / applied.
2014-10-28 22:12:03 -06:00
Jason Turner
e85be6eb3d
Add C++ test for user defined conversion
2014-10-28 20:23:19 -06:00
Jason Turner
7b42d5307a
Add ability to register a user defined type conversion
...
Currently this adds a fair bit of overhead. It will need to be evaluated
further before it's merged.
2014-10-28 14:52:24 -06:00
Jason Turner
43d6f0cf16
Rename dynamic_cast into type_conversion
...
Prep work for getting user defined type conversions implemented
2014-10-28 12:43:30 -06:00
Jason Turner
86e26966c1
More code cleanups
2014-10-28 10:53:29 -06:00
Luis Finke
b41c0f432b
Added (optional) protection against divide by zero exceptions
...
defining the preprocessor CHAISCRIPT_PROTECT_DIVIDEBYZERO adds checking of right side values before division arithmetic, allowing the user to safely catch a divide by zero error, rather than dealing with a SIGFPE and having the entire program exit without a choice
2014-10-24 17:41:33 -04:00
Jason Turner
9e8b833d11
Code cleanups
2014-10-18 16:18:56 -06:00
Jason Turner
021e2a7949
Fix returning of boolean values from functors
2014-10-12 22:12:54 -07:00
Jason Turner
78cd980067
Work around broken Apple clang implementation
...
This line of code does not cause an error on clang-3.4 or clang-3.5
on Linux. Apple's clang is somewhere between the two, no way to know
where.
For an unknown reason, specifying default move operations in 'Data'
causes the compiler to think that Boxed_Value is an incomplete type.
This is highly illogical since Data is only used via a shared_ptr, so
the size / type of Boxed_Value should be fully known (and is known on
every other compiler/platform combination).
2014-10-01 15:49:11 -06:00
Jason Turner
58d9e69479
Work around missing move operations in MSVC12
2014-10-05 21:53:44 -06:00
Jason Turner
935e9de19e
GCC 4.6 fixes to cleanups
2014-10-05 14:58:27 -06:00
Jason Turner
f547b4bb10
Enable moving of data into Boxed_Values when possible
2014-10-05 12:11:46 -06:00
Jason Turner
87e40237d3
Enable moving of Any objects
2014-10-05 11:47:50 -06:00
Jason Turner
5619f2602d
Eliminate extra dynamic allocation in the Stack
2014-10-05 08:58:29 -06:00
Jason Turner
5986531bba
dispatchkit modernization
2014-10-04 22:59:52 -06:00
Jason Turner
81dc4949d2
1/4 through modernization of chaiscript_eval.hpp
2014-10-04 15:34:32 -06:00