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
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
c3f343450d
Fix issues found with cppcheck inconclusive
2015-01-16 10:10:14 -07:00
Jason Turner
41a45ce8b5
Enable warnings (and fix up some things)
2015-01-14 21:07:40 -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
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
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
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
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
Jason Turner
935e9de19e
GCC 4.6 fixes to cleanups
2014-10-05 14:58:27 -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
5861c45fc1
C++11 related cleanup and improvments
2014-09-15 21:16:44 -06:00
Jason Turner
eed90b521d
Spelling corrections and comment fixes
2014-09-08 11:10:53 -06:00
Jason Turner
fa1f4b795b
Add class keyword for easier user defined types.
...
Issue #118
2014-08-22 21:11:49 -06:00
Jason Turner
4018c873dc
Spelling fixes, phase 1.
2014-05-29 20:16:47 -06:00
Jason Turner
37982cbdaa
Fix issues found by cppcheck 1.65
2014-05-10 20:12:49 -06:00
Jason Turner
c0bf6ee99d
Apply corrections from the "include what you use" tool
...
Generally cleanups of the includes. Making sure each file
can properly stand on its own and forward declares when possible.
2014-05-10 18:41:11 -06:00
Jason Turner
f29af4618a
Make override a #define for gcc 4.6 support
2014-05-10 09:04:41 -06:00
Jason Turner
6eab8ddfe1
Apply changes applied from clang-modernize
...
Needed 1-2 cleanups by hand. 99% was automatic.
* The version that ships with ubuntu 14.04 seems to not work.
I had to build from scratch
* Use cmake to generate the build commands that clang-modernize wants
```sh
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS:bool=true ../ChaiScript/
```
* Use the clang-modernize tool. Note that you have to be pretty explicit
about the include paths if you want it to also update your include
files
```sh
../llvm-build/bin/clang-modernize ../ChaiScript/src/*.cpp -for-compilers=gcc-4.8 -include /home/jason/ChaiScript/include,/hjason/ChaiScript/include/chaiscript,/home/jason/ChaiScript/include/chaiscript/dispatchkit,/home/jason/ChaiScript/include/chaiscript/language -p compile_commands.json
```
* In my case, it left some unused `typedef`s behind, which I cleaned up.
2014-05-10 08:25:38 -06:00
Jason Turner
2bd1910c70
~30% performance improvement with threading enabled
2014-04-05 22:49:50 -06:00
Jason Turner
52bb08f4d5
Merge branch 'master' into ChaiScript_5_0_CPP_11
...
Conflicts:
include/chaiscript/dispatchkit/bootstrap_stl.hpp
include/chaiscript/language/chaiscript_engine.hpp
include/chaiscript/language/chaiscript_prelude.hpp
2014-02-17 16:31:16 -07:00
Jason Turner
71348b7967
Update copyrights to 2014 and some comment formatting
2014-02-17 16:24:29 -07:00
Jason Turner
5cb78ecd68
Merge branch 'master' into ChaiScript_5_0_CPP_11
...
Conflicts:
include/chaiscript/dispatchkit/bootstrap_stl.hpp
include/chaiscript/dispatchkit/boxed_number.hpp
2013-11-27 09:18:08 -07:00
Jason Turner
41f6ca18ea
Prevent the user from naming an object with "::" #91
2013-11-27 08:53:34 -07:00
Jason Turner
a26d628e5c
Cleanup (indentation, comments) for non-const global support
...
@Zoomulator - I pulled in your non-const global commits.
2013-11-27 08:19:26 -07:00
Jason Turner
d5fef3121a
Merge remote-tracking branch 'zoomulator/master'
...
Adding zoomulator's patches for allowing of non-const globals if the user
wants to.
2013-11-27 08:06:39 -07:00
Jason Turner
73b3762f7a
Get ChaiScript ported to MSVC 2013. See Notes in code.
2013-11-02 07:42:06 -06:00
Jason Turner
d0ce78061c
Merge branch 'master' into ChaiScript_5_0_CPP_11
...
Conflicts:
include/chaiscript/dispatchkit/boxed_cast.hpp
include/chaiscript/dispatchkit/dynamic_cast_conversion.hpp
include/chaiscript/dispatchkit/function_call.hpp
include/chaiscript/dispatchkit/function_call_detail.hpp
include/chaiscript/dispatchkit/proxy_functions.hpp
include/chaiscript/dispatchkit/proxy_functions_detail.hpp
2013-04-25 09:40:22 -06:00
Jason Turner
e68599920a
Move to pointers for Dynamic_Cast_Conversions to avoid problems with using the class before it's defined
2013-04-25 09:15:09 -06:00
Jason Turner
47e44d2f9e
Merge branch 'master' into ChaiScript_5_0_CPP_11
...
Conflicts:
include/chaiscript/dispatchkit/bootstrap.hpp
include/chaiscript/dispatchkit/boxed_cast.hpp
include/chaiscript/dispatchkit/boxed_cast_helper.hpp
include/chaiscript/dispatchkit/dynamic_cast_conversion.hpp
include/chaiscript/dispatchkit/dynamic_object.hpp
include/chaiscript/dispatchkit/exception_specification.hpp
include/chaiscript/dispatchkit/function_call.hpp
include/chaiscript/dispatchkit/function_call_detail.hpp
include/chaiscript/dispatchkit/proxy_functions.hpp
include/chaiscript/dispatchkit/proxy_functions_detail.hpp
include/chaiscript/language/chaiscript_engine.hpp
include/chaiscript/language/chaiscript_eval.hpp
2013-02-25 12:08:32 -07:00
Jason Turner
2afc09dad4
Eradicate global base_class registrations to prevent problems with threading and general memory management issues with knowing how and when to clean them up.
2013-02-25 11:00:14 -07:00
Jason Turner
47ab27fd11
Merge branch 'master' into ChaiScript_5_0_CPP_11
...
Conflicts:
include/chaiscript/dispatchkit/proxy_functions.hpp
releasenotes.txt
2012-11-27 21:42:21 -07:00
Jason Turner
0ea8931b21
Add ability to call functions requiring arithmetic value conversions
...
- Conversions are only attempted on a dispatch
- Conversions are only attempted after a normal dispatch has failed
- Conversions are only attempted if exactly one function matches
the signature of the parameters passed in - excluding the mismatched
arithmetic parameters
- This feature should not be relied on in performance critical code
overhead is added for each function call that requires a conversion
to execute, see the tests performed above.
2012-11-27 21:21:37 -07:00
Kim Simmons
abcc6c9e3e
Chai::add_global was added
...
Just a modification of the add_global_const. I don't see the point in
limiting the user to binding only constants to the global scope if the user
wishes to have a thread safe mutable object as a global. This was my case
anyway.
2012-11-06 17:20:56 +01:00
Jason Turner
8cb49e9494
Merge branch 'master' into 2011-09-09-CxScript
2012-07-16 22:12:29 -06:00
Jason Turner
1155720b14
Add the ability to save and restore the state of local variables #25
2012-07-16 21:27:42 -06:00
Jason Turner
5a76d98692
Enhance and correct error messages
...
Backported from C++11 branch.
Conflicts:
include/chaiscript/dispatchkit/proxy_functions.hpp
include/chaiscript/language/chaiscript_common.hpp
include/chaiscript/language/chaiscript_eval.hpp
include/chaiscript/language/chaiscript_parser.hpp
2012-06-22 18:00:10 -06:00
Jason Turner
a951d2b0af
Fix crash discovered by the move to using stdlib for all tests.
2012-06-04 07:32:05 -06:00
Jason Turner
d2aba2ef56
Eliminate boost::lexical_cast usage completely #39
2012-06-03 09:20:15 -06:00
Jason Turner
ed15cc1730
Clean up a few warnings found in Windows.
2012-05-28 10:48:19 -06:00
Jason Turner
13ffc92bc3
Merge branch 'master' into 2011-09-09-CxScript
...
Conflicts:
CMakeLists.txt
include/chaiscript/dispatchkit/boxed_value.hpp
include/chaiscript/language/chaiscript_eval.hpp
2012-05-21 10:47:12 -06:00
Jason Turner
3a7eff1478
Move to a bit smarter stack based object management
...
- we store all function parameters until the f
outer function call exits
- this results in more values being stored longer than
they need to be, but the results are predictable
and no leaks
2012-05-21 10:16:16 -06:00
Jason Turner
ba9d13bf7b
Merge branch 'master' into 2011-09-09-CxScript
2012-05-19 18:05:58 -06:00
Jason Turner
56757973b6
Actually reenable function
2012-05-19 18:05:41 -06:00
Jason Turner
16bdfe4571
Merge branch 'master' into 2011-09-09-CxScript
2012-05-19 09:51:19 -06:00
Jason Turner
804de05a0a
Fix object_lifetime_test which was broken by last perfomance fix
2012-05-19 09:50:49 -06:00
Jason Turner
62891b8537
Merge branch 'master' into 2011-09-09-CxScript
...
Conflicts:
include/chaiscript/language/chaiscript_engine.hpp
2012-05-19 07:33:16 -06:00
Jason Turner
ae02706c71
Approx 12% speedup for function call heavy profile.chai
2012-05-19 07:09:55 -06:00
Jason Turner
a0f7c46cc9
Merge branch 'master' into 2011-09-09-CxScript
...
Conflicts:
include/chaiscript/language/chaiscript_engine.hpp
include/chaiscript/language/chaiscript_eval.hpp
2012-05-18 16:57:05 -06:00
Jason Turner
897ad7007f
Get system introspection functions fully working
2012-05-18 16:25:13 -06:00
Jason Turner
13fb930676
First part of system introspection for objs and funcs added
2012-05-18 15:31:42 -06:00
Jason Turner
af1e02b0bb
Update copyrights to 2012 #23
2012-05-16 11:55:51 -06:00
Jason Turner
bca86c87e1
Update copyrights to 2012 #23
2012-05-16 11:54:46 -06:00
Jason Turner
a04dbf2c2d
Merge branch 'master' into 2011-09-09-CxScript
...
Conflicts:
include/chaiscript/language/chaiscript_eval.hpp
unittests/object_lifetime_test.cpp
unittests/utility_test.cpp
2012-05-16 11:50:44 -06:00
Jason Turner
4bcaa75fa4
Throw eval exception if a variable or function is redefined #28
2012-05-16 11:40:43 -06:00
Jason Turner
98d2eadde2
Explicitly default the copy assignment operator for clang's benefit
2012-05-14 10:15:38 -06:00
Jason Turner
702b5fdba1
Enhance and correct error messages
2011-09-25 16:46:05 -06:00
Jason Turner
535adce298
Remove exception specifications in favor of noexcept keyword
2011-09-21 12:22:52 -06:00
Jason Turner
6f282b6a56
Remove need for boost::function_types library
2011-09-12 08:18:51 -06:00
Jason Turner
194001f9a1
Remove boost::any requirement by providing our own implementation
2011-09-11 19:51:37 -06:00
Jason Turner
4522ff0732
Remove various other boost libraries
2011-09-10 13:49:29 -06:00
Jason Turner
53108463df
Move from boost::bind to std::bind
2011-09-10 10:19:55 -06:00
Jason Turner
afa96ecbf9
Begin port to C++11
2011-09-10 06:55:27 -06:00
Jason Turner
d9727973c1
Add files missing from last checkin
2011-09-09 17:08:51 -06:00
Jason Turner
7a9baeb350
Rename of numeric to number
2011-06-08 13:53:55 -06:00
Jason Turner
226666c2bb
Rename Boxed_POD_Value to Boxed_Numeric, which is more correct.
2011-06-04 04:24:57 +08:00
Jason Turner
319f9e4de9
Fix issues with trim() and with unit tests relying on certain line endings.
2011-05-20 16:01:50 -06:00
Jason Turner
2786156086
Finalize documentation for 3.0.0 release and update version number in CMakeLists.txt
2011-05-20 13:44:34 -06:00
Jason Turner
0d238b1617
Documentation updates and namespace reorg for docs.
2011-04-02 20:52:49 -06:00
Jason Turner
92c836c58a
Simplify mutex code by providing stubs that are do nothing during
...
CHAISCRIPT_NO_THREADS builds.
2011-03-25 22:49:17 -06:00
Jason Turner
58e5df0a9a
Even more reorganization of namespaces to help with documentation and
...
clarity.
2011-03-25 15:42:18 -06:00
Jason Turner
cd8bead54a
Further namespace reorganization and cleanup to limit to the user the
...
most important aspect of the API and make documenation easier.
2011-03-24 09:23:05 -06:00
Jason Turner
637164e457
Move around some namespaces for documentation purposes.
...
Fix problems with building on clang 2.8.
Remove unneeded function for get_engine() and fix functor<> calls that take a Boxed_Value
2011-03-15 17:35:14 -06:00
Jason Turner
9dd9ffec46
Update copyright information for 2011
2011-03-15 09:42:33 -06:00
Jason Turner
f6b6936348
Normalize on include guard style, removing __ reserved words
2011-03-08 14:06:09 -07:00
Jason Turner
0b97fcb4df
Add better namespaces to make documentation easier to handle
2011-03-05 22:50:38 -07:00
Jason Turner
660e978da3
Implement test for function ordering for dispatch. Catch bug for "const" characterization of function parameters. Add test for type characterizations.
2010-12-13 03:32:47 +00:00
Jason Turner
e90d49bb9d
Function ordering is working properly now, just need to add a unit test for it.
2010-12-11 22:38:08 +00:00
Jason Turner
13f53839c9
Check in of function ordering. Breaks function assignment test - need to understand why still.
2010-12-11 21:01:18 +00:00
Jason Turner
7ef1b81504
Simplify how functions are stored and passed. This is the first step in allowing us to sort functions so that dispatches are attempted in an organized order (as opposed to just the order they were added in).
...
Should have resulted in a speed imrovement too - fewer string copies during dispatch.
2010-11-15 05:52:48 +00:00
Jason Turner
97081b1f33
Remove vestiges of object caching from dispatch kit
2010-11-14 22:28:05 +00:00
Jason Turner
6e18aa3dcd
Further VS 64bit warning fixes.
2010-11-05 02:43:52 +00:00
Jason Turner
2cdfac4e47
Add function meta data functions, plus related tests, and some various cleanups for how functions are constructed internally
2010-10-14 14:33:17 +00:00
Jason Turner
74e719c053
Add object dependency tracking to make sure that during nested function calls all returned values are not prematurely destructed.
...
All tests pass on vc2008 now.
2010-10-02 13:26:06 +00:00
Jason Turner
43dbd8ac78
Rip out object caching. With this removed it becomes that much more critical that we fix the scoping issue with references returned from temporaries.
2010-10-01 02:25:29 +00:00
Jason Turner
7b77af3736
Remove commented out code and make variable declarations/scopes consistent with the rest of the C++ codebase
2010-09-30 19:16:03 +00:00
Jason Turner
a39d70dbca
Rip out caching in dispatch kit to get a more clean view of the performance world
2010-09-19 23:24:52 +00:00
Jonathan Turner
7f037b26d4
Updated email addresses in copyright information.
2010-08-10 05:24:07 +00:00
Jason Turner
f4e4f92dae
Move type registration into module code, and fix problems with unloading of modules and type conversions registered inside of a module.
...
We have to allow the same type registration more than once now, just in case several different modules register the same conversion.
2010-08-03 01:17:38 +00:00
Jason Turner
f5f99961c1
Make sure that stack is properly initialized on a per-thread basis. Fixes #95wq
2010-07-23 20:00:17 +00:00
Jason Turner
f7086c10ec
Roll back changes from last 2 checkins - user defined type conversions are going to be too slow and too hard to keep track of. Need more portable / generic approach to solving the actual problem - the ability to deal with inhertance properly
2010-07-23 14:55:32 +00:00
Jason Turner
3d19138c95
Minor reorg of type conversion code to support move to using it in dispatch
2010-07-18 01:52:07 +00:00
Jason Turner
35ac7342b6
Stub in of support for type conversions. Not yet fully implemented.
2010-07-17 21:49:27 +00:00