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
84e2d449b9
Support default case in the non-last position
2015-10-15 15:02:49 -06:00
Jason Turner
1add4c4b0f
Fix issues with integer parsing on MSVC
...
See #212
2015-10-04 14:32:23 -06:00
Jason Turner
14b3870efb
Fix integer overflow and bad numeric parses
2015-10-04 08:53:22 -06:00
Jason Turner
d2cf12f948
Add tests for binary literals
2015-10-03 21:01:52 -06:00
Jason Turner
e221ceaa4c
Greatly simplify integer sizing code
2015-10-03 17:11:03 -06:00
Jason Turner
beedf13d01
Make binary literals sized like other integer types
2015-10-03 16:38:41 -06:00
Jason Turner
9d18360333
Older compiler backport issues
2015-10-02 12:46:50 -06:00
Jason Turner
18e5ee0ba2
Wrap up generic string escape support
...
Closes #211
2015-10-02 12:16:44 -06:00
Jason Turner
41e9027d9a
Octal escape codes supported #211
2015-10-02 11:45:28 -06:00
Jason Turner
8d9dc2b0a3
Reduce redundant escape code parsing #211
2015-10-02 10:35:37 -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
b434d26a5d
Add json tests
2015-09-30 14:24:56 -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
e62a38b39f
JSON output working
2015-09-21 09:27:23 -06:00
Jason Turner
85ac1052dd
Initial support for export to JSON
2015-09-20 16:19:11 -06:00
Jason Turner
8024edeadf
Fix some JSON parsing bug with short strings
2015-09-20 15:46:05 -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
9f362608b7
Eliminate extra unneeded scope
2015-08-28 21:19:00 -06:00
Jason Turner
0a143d1cd3
Make push_* consistant with inplace vector
2015-08-27 15:30:02 -06:00
Jason Turner
c9625b09b0
Fix magic 'this' values
2015-08-26 18:41:46 -06:00
Jason Turner
800c7fb37b
Fix functor scope - break magic 'this'
2015-08-26 13:18:42 -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
8ed2158709
Merge pull request #203 from msbroadf/develop
...
Update chaiscript_engine.hpp
2015-08-13 14:12:38 -06:00
Jason Turner
8f98e16e5e
Reset return value flag on reference assignment
2015-08-13 13:45:31 -06:00
msbroadf
3a595ef912
Update chaiscript_engine.hpp
2015-08-13 13:45:33 +10: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
0c4951d742
Fix parsing of operators
...
* Only parse valid operators
* Don't swallow a symbol if it would produce an invalid operator
Closes #198
2015-08-01 10:05:38 -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
0d4e4090a0
Massive reorg of file position tracking
...
- Should make iterator errors almost impossible in the future
- Fixes tracking of current line number
2015-07-30 16:53:27 -06:00
Jason Turner
22339d10db
Make order of params eval well defined
2015-07-24 12:07:46 -06:00
Jason Turner
3cae2aed1d
Remove unused Inplace Eval ast node
2015-07-23 15:34:45 -06:00
Jason Turner
c6f262c675
Parse in-string eval at regular parse time
...
- don't delay and overcomplicate with an eval
2015-07-23 15:21:39 -06:00
Jason Turner
a2ff672b34
Memory error fixes
...
* prevent recognizing . as a number
* do all checked iterator operations for incrementing through input
stream
* Verify that all is as expected when building up a dot notation call
2015-07-22 11:13:10 -06:00
Jason Turner
9a0a12d230
Bump version number to 5.7.2
2015-07-20 19:50:13 -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
563999f3b8
Add note about handling of thread contexts
2015-07-11 18:34:09 -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
b270a198dc
Don't clone return values into vector/map
2015-07-02 22:10:09 -06:00
Jason Turner
9e93d61236
Allow user to disable nothread warning
2015-07-02 21:18:36 -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
88ab00679f
Fix spelling of Windows.h for cross compiling
...
Closes #176
2015-06-10 18:49:54 -06:00
Jason Turner
86482b0103
Correct docs for 'filter'
...
Closes #183
2015-06-10 18:44:30 -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
ecafb4aad0
Add missing cstring
2015-06-02 18:20:13 -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
7522a19af5
g++4.6 correction
2015-06-01 16:08:04 -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
bb2938307c
Move prelude into stdlib so it's not included everywhere
2015-05-23 16:16:39 -06:00
Jason Turner
919c3f2b4a
Finish removing std::function and std::bind internally
2015-05-23 13:10:29 -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
dec88db26c
Minor efficiency improvement by pre sizing match stack
2015-05-19 10:55:38 -06:00
Jason Turner
9da9012701
Fix version number mismatch
2015-05-13 06:20:25 -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
74a992fad9
VS2015 thread_local doesn't seem ready for primetime yet
2015-05-03 08:43:43 -06:00
Jason Turner
d210f0e4e1
Enable thread_local in more cases, ignore clang warnings
2015-05-02 21:05:45 -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
e64e4b0877
Fix tests broken by last cleanup
2015-05-01 19:54:14 -06:00
Jason Turner
e286b9a9aa
Never access data after moving it!
2015-05-01 07:22:43 -06:00
Jason Turner
d77921f1b5
Reorg of parsing code for maintainability / performance
2015-04-30 22:05:56 -06:00
Jason Turner
3e5034ecf8
Merge branch 'smaller_make_shared' into develop
2015-04-29 16:58:34 -06:00
Jason Turner
c52ad3d827
Merge pull request #174 from totalgee/develop
...
Support scientific notation for floating point (issue #173 )
2015-04-29 16:50:39 -06:00
Glen Fraser
8fc61bf51c
Fixing build error with tolower() on Windows
2015-04-29 21:52:34 +02: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
Glen Fraser
d762ef08b6
Support scientific notation for floating point
2015-04-29 19:40:58 +02:00
Jason Turner
8bbcceed88
Attempt better data layout of AST_Node
2015-04-28 08:56:20 -06:00
Jason Turner
aaf80ac8cf
Merge branch 'develop' into smaller_make_shared
2015-04-27 16:24:17 -06:00
Jason Turner
86ec14c2c8
Merge branch 'develop' of github.com:ChaiScript/ChaiScript into develop
2015-04-27 16:19:41 -06:00
Jason Turner
dbe546fefb
Simplify and reduce eval code where possible
2015-04-27 16:17:01 -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
7a13b6b801
Merge branch 'develop' into smaller_make_shared
2015-04-25 08:53:47 -06:00
Jason Turner
4f5f46a2e5
Don't use scopes around arithmetic operators
2015-04-24 22:36:22 -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
Jason Turner
a3f88b43ce
Merge branch 'return_value_handling' into develop
2015-04-10 08:20:55 -06:00
Jason Turner
b489ffe3ed
Fix errors with eval/use of scripts
2015-04-10 08:20:30 -06:00
Andreas Reischuck
cbeeadd6f3
Merge branch 'develop' into method_missing
2015-04-08 16:52:34 +02:00
Jason Turner
63684d0042
Add the ability to get the return value from 'use'
2015-04-08 08:17:33 -06: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
c32a944b9d
Fix macos clang builds
2015-03-25 14:04:42 -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
6ba3e92d6e
Various tree optimizations
2015-03-24 14:15:47 -06:00
Jason Turner
bd1b5c0687
Disable block optimization - it didn't handle stack
2015-03-24 10:15:08 -06:00
Jason Turner
40e2bf4099
Test optimizing the AST
2015-03-23 21:43:57 -06:00
Jason Turner
5b9878b070
Minor speed improvements
2015-03-23 20:07:07 -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
Jason Turner
1113cafca2
Merge branch 'develop' of github.com:ChaiScript/ChaiScript into develop
...
Conflicts:
CMakeLists.txt
2015-03-21 21:04:03 -06:00
Jason Turner
98e36ab836
Minor cleanups, increment to 5.7.0
2015-03-21 20:56:28 -06:00
Jason Turner
976e4ec46c
Enable parsing of lambda captures
...
Closes #161
2015-03-21 20:30:52 -06:00
Jason Turner
9963933f51
Normalize the number of child nodes in a Lambda node
2015-03-21 19:50:04 -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
516ca8eec2
Merge branch 'master' into develop
2015-03-13 22:28:24 -06:00
Jason Turner
b71f9db5c2
MSVC Fixes
2015-03-13 22:27:51 -06:00
Jason Turner
aa0ed17e43
Merge tag 'v5.6.0'
2015-03-13 21:59:37 -06:00
Jason Turner
34e3551ebd
Fix spelling error in document examples
2015-02-19 08:27:22 -07:00
Jason Turner
c584c29951
Simplification
2015-01-31 16:12:19 -07:00
Jason Turner
c285c4d40b
Reduce code in assignment oper eval
2015-01-31 15:07:17 -07:00
Jason Turner
b5188b9eda
Cleanup assignment eval
2015-01-31 14:40:26 -07:00
Jason Turner
d558019bb3
Simplify logical && || operator eval
2015-01-31 13:41:29 -07:00
Jason Turner
722e9ed3d1
Various code cleanups
2015-01-31 10:10:35 -07:00
Jason Turner
76ac7c36fe
Simplify redundant bool condition checking
2015-01-31 07:28:37 -07:00
Jason Turner
f0ed3a5cf7
Add 'var' 'auto' and typed param documentation
2015-01-19 09:19:31 -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
26bf531cab
Remove unused parameter
2015-01-13 17:07:46 -07:00
Jason Turner
7761ceb736
Clean up some numeric processing code
2015-01-13 17:04:34 -07:00
Jason Turner
ef69e4a2f1
Allow typing of exception handlers
2015-01-13 14:05: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
c1f47cbc16
Update prelude to use new typed params
2015-01-13 11:39:24 -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
12533ce3e1
Add note about State tracking of Type_Conversions
2015-01-09 16:14:47 -07:00
Jason Turner
2e02273673
Add .bundle to module search extensions
2015-01-09 10:40:20 -07:00
Jason Turner
d91294b989
Add warning for c-style casts to gcc
2015-01-07 13:56:48 -07:00
Jason Turner
52d03a66b1
Add future support, and fix returning of r-values
2015-01-06 15:31:06 -07:00
Jason Turner
e225654289
Tick version up to 5.5.1
2014-12-21 13:12:56 -07:00
Jason Turner
7b7e7176f5
Merge remote-tracking branch 'origin/develop' into performance_test
2014-11-17 14:17:28 -07:00
Jason Turner
423e872720
Work around bug in gcc 4.6 for initializer_list
...
Hopefully also fixes MSVC 2012
2014-11-17 07:02:52 -07:00
Jason Turner
1e8c0ab93e
Reduce redundant parsing / error code
2014-11-16 21:22:55 -07:00
Jason Turner
c90fe16858
Clean up Prefix() implementation
...
Reducing redundant code
2014-11-16 21:02:28 -07:00
Jason Turner
161652b5d9
Reworking of binary operators
...
- Eliminates re-parsing of operator strings
- Reduces much redundant code
Results
1. smaller binaries
2. less runtime memory usage
4. faster runtime
2014-11-16 20:28:44 -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
5daf837037
Increment version number to 5.5.0
2014-11-04 09:47:32 -07:00
Jason Turner
99396ba05c
Add \r skipping code from @jespada
2014-11-03 21:37:25 -07:00
Jason Turner
f5304ac75c
Merge branch 'develop' of http://github.com/ChaiScript/ChaiScript into develop
2014-11-03 18:36:10 -07:00
Jason Turner
3f460fdd20
Fix 64bit msvc warning
2014-11-03 18:34:33 -07:00
Jason Turner
4f972bcf67
Refine lifetime of parameters to functions
...
Fixes crash caused when making function calls in a global context, and
probably fixes other things.
2014-11-03 09:13:30 -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
8ecc11c275
First pass of modernization of chaiscript_eval.hpp done
2014-10-04 18:31:08 -06:00
Jason Turner
81dc4949d2
1/4 through modernization of chaiscript_eval.hpp
2014-10-04 15:34:32 -06:00
Jason Turner
9a7d03df05
Modernization of chaiscript_parser
2014-10-04 09:37:33 -06:00
Jason Turner
4f5a6da280
Move constructor and noexcept correctness
2014-09-21 14:19:41 -06:00
Jason Turner
e1b80abac4
Update documenation to-dos regarding gcc 4.6
2014-09-20 14:20:37 -06:00
Jason Turner
b6e8605aee
Attempt again to satisfy gcc 4.6
2014-09-20 14:17:41 -06:00
Jason Turner
0e381e333e
Attempt to satisfy G++4.6 and decltype usage
2014-09-20 08:31:18 -06:00
Jason Turner
8c31255012
Windows and GCC 4.6 error cleanups
2014-09-20 07:21:30 -06:00
Jason Turner
01cf906e18
Clean up 32bit windows warnings
2014-09-19 21:58:28 -06:00