82 Commits

Author SHA1 Message Date
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
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
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
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
56757973b6 Actually reenable function 2012-05-19 18:05:41 -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
ae02706c71 Approx 12% speedup for function call heavy profile.chai 2012-05-19 07:09:55 -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
4bcaa75fa4 Throw eval exception if a variable or function is redefined #28 2012-05-16 11:40:43 -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
Jason Turner
799b3ef388 Update copyright for 2010 2010-05-15 22:48:54 +00:00
Jason Turner
5c98a5d6e7 Add sync_cache to set_state code to fix logic flaw in resetting of state and memory leak. #92 2010-03-09 02:09:05 +00:00
Jason Turner
e601de9d18 Reduce use of Param_List_Builder by providing call_function implementations for 0,1,2 arity 2009-12-06 01:31:58 +00:00
Jason Turner
fbf8f53e04 Add Type_Info type and add *_type objects at time of type registration. 2009-11-21 22:47:44 +00:00
Jason Turner
d3e4af433e Add support for saving/restoring of chaiscript engine state. 2009-11-18 04:43:08 +00:00
Jason Turner
cca477dae6 Only share const globals between threads. Require all globals to be const. 2009-11-11 05:47:54 +00:00
Jason Turner
480761c1f7 Add bound_fun helper and put it to use cleaning up the engine bootstrapping 2009-10-14 02:34:09 +00:00