1016 Commits

Author SHA1 Message Date
Jason Turner
24e717d532 Fix "bind_first" for non member functions 2009-10-14 22:42:45 +00:00
Jason Turner
1568fedebd Reduce # of required versions for bound_fun and enhance it to work with non-member functions 2009-10-14 17:19:42 +00:00
Jonathan Turner
9827345213 Fix Id Literals so that they are keyed off an Id search. This allows us to add operator overloading on the parse side. 2009-10-14 13:51:35 +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
Jonathan Turner
12e909d9aa Add bit shifting operators 2009-10-13 03:35:01 +00:00
Jason Turner
b1e892487f Enhance "is_type" to be more accurate and to work with Dynamic_Object types 2009-10-13 03:31:56 +00:00
Jason Turner
720eabcb16 Impliment range find functions and add unit test for contains and find. 2009-10-13 02:05:18 +00:00
Jason Turner
1fde71f3f4 Add type generic comparison operations "eq", "gt", and "lt" and port the "contains" operation to use it 2009-10-13 00:18:59 +00:00
Jonathan Turner
90f8b77171 Added .contains() to ranges 2009-10-11 20:02:21 +00:00
Jonathan Turner
315d7521a7 Clean up warnings. Add simple blocks. 2009-10-08 03:01:19 +00:00
Jonathan Turner
ff177b5eaf Add octal support 2009-10-06 21:17:23 +00:00
Jonathan Turner
46fd7e9a58 Add hex value parsing support 2009-10-06 16:04:05 +00:00
Jason Turner
edd274ccce Fix some more obscure warnings 2009-10-06 02:26:47 +00:00
Jonathan Turner
a5b2ec3006 Start code cleanups by moving chaiscript common structures into their own file. 2009-09-23 05:00:14 +00:00
Jason Turner
3bdd79a3fd Correct Windows unicode build issues. 2009-09-22 23:03:16 +00:00
Jason Turner
b04e01cda7 Ensure that __EVAL__ is in the list of loaded files and be smarter about accessing it 2009-09-22 21:06:02 +00:00
Jason Turner
bad5384c96 Fix multi-file compilation issues 2009-09-22 20:59:10 +00:00
Jason Turner
443902f787 Reduce overhead necessary for internal_eval. Desirable due to the use of "eval" during cloning operations 2009-09-22 01:58:16 +00:00
Jason Turner
9762e15460 Fix some range/retro issues and update the visual studio files 2009-09-22 01:23:02 +00:00
Jonathan Turner
03746e7606 Add keywords for NaN and Infinity 2009-09-21 16:50:30 +00:00
Jason Turner
50eace16da Allow "Module" to contain chaiscript snippets to be executed when a module is initialized. Update dynamic_object to use the new feature to clean up some of the _prelude.hpp 2009-09-21 03:07:01 +00:00
Jason Turner
8241e46680 Further refine how clone calls are dynamically generated, to avoid accidentally matching when we should not 2009-09-20 21:49:53 +00:00
Jason Turner
160f64e9c2 Enabled short hand for adding new methods to existing C++ types 2009-09-20 21:32:39 +00:00
Jason Turner
593c6c68ee Port "retro" to use the new built in object typing, add unit test for retro'ing a retro 2009-09-20 03:50:25 +00:00
Jason Turner
991753a492 Add support for cloning of dynamic objects 2009-09-19 23:12:56 +00:00
Jason Turner
7cdd772f2b Add const correctness for proxy functions. Add unit tests for function variable assignment scenarios 2009-09-19 21:13:12 +00:00
Jonathan Turner
c5f837fd19 Added 'finally' to try/catch block 2009-09-19 18:12:22 +00:00
Jonathan Turner
7c244d25b5 Add support for chai objects by adding methods and attrs 2009-09-19 15:32:12 +00:00
Jonathan Turner
18fc4d419f Fix to catch block handling that would have lost the scope of the boost::ref of the exception 2009-09-19 13:40:48 +00:00
Jonathan Turner
813fa055a3 Added guarded exception catches 2009-09-19 13:30:11 +00:00
Jason Turner
6a47846b84 Add runtime_error support, for throwing a normal std::exception. Also, move bootstrap for Dynamic_Object into its proper place. 2009-09-19 12:15:17 +00:00
Jason Turner
b0041217b0 initial checkin of dynamic object support with example usage in example.cpp 2009-09-19 02:36:27 +00:00
Jonathan Turner
b17c6b9748 Add support for std::exception and what() 2009-09-18 22:26:07 +00:00
Jonathan Turner
204d379176 Fix default cmake build to use readline and gdb. Add simple try/catch/throw exceptions 2009-09-18 22:04:07 +00:00
Jason Turner
4bdbcf30ff Move std::list<> support from main.cpp into a module, stl_extra.cpp, to better allow for measuring of core compile times / performance. 2009-09-15 01:30:51 +00:00
Jonathan Turner
63de0fd33c Add a couple more in-string eval unit tests to check for proper escaping 2009-09-13 12:53:12 +00:00
Jonathan Turner
5092713876 Add in-string eval 2009-09-12 14:52:46 +00:00
Jason Turner
f369afed77 Decrease compile times by 30% and runtimes by 10% by eliminating use of boost::bind during function dispatch 2009-09-10 03:44:42 +00:00
Jonathan Turner
f23f0edc70 Fix parser to handle shortform equations (fix bad operator parsing). Add back lines to prelude for line numbers 2009-09-09 14:11:03 +00:00
Jason Turner
daee00da95 Minor performance enhancement for caching function and cleanup of minor windows warning in same function. 2009-09-09 13:17:20 +00:00
Jason Turner
e2cdac0406 Decrease compilation time by removing "Retro" from c++ compiled and making a chaiscript version instead 2009-09-09 03:11:47 +00:00
Jonathan Turner
1bf3b1ed37 Couple changes for module loading in mingw 2009-09-08 21:22:37 +00:00
Jason Turner
f7b530ebae Quick fix to (hopefully) module support on mingw 2009-09-08 19:21:11 +00:00
Jason Turner
b185e2e792 Make Type_Info internal data private and provide more rigorous definitions for comparisions of objects 2009-09-08 13:31:14 +00:00
Jonathan Turner
cfee4c6bc1 Bugfix: cached the wrong boolean value. Fixed. 2009-09-08 02:15:41 +00:00
Jason Turner
798908f127 Add loadable module support for ms Visual C++ and fix visual studio specific type identification problems, (while making the C++ more correct) 2009-09-07 17:05:57 +00:00
Jonathan Turner
7e3127549f Added simple const value caching. Fix CMake to default back to debug mode 2009-09-07 15:48:32 +00:00
Jason Turner
7cc6a3cab9 Add support for loadable modules on POSIX systems 2009-09-06 23:33:03 +00:00
Jonathan Turner
cba5731576 Fixing the last of the const change issues 2009-09-06 02:55:39 +00:00
Jonathan Turner
e9539dfee2 BROKEN./run_unit_tests.sh ! This is to help repair unit tests broken in move to consts. Should be fixed shortly. 2009-09-06 02:24:46 +00:00
Jason Turner
4b40812e26 Add const_var helper function for making const values. 2009-09-06 02:09:19 +00:00
Jason Turner
ef8cd1f591 Add more robust support for handling of const ptr values 2009-09-05 23:46:21 +00:00
Jason Turner
46cdb89921 Add missing chaiscript_threading.hpp 2009-09-05 13:10:27 +00:00
Jason Turner
3094ff6e3b Made thread saftey a compilation option for performance and dependencies reasons 2009-09-05 00:16:46 +00:00
Jason Turner
4d42d6ff33 Add shared objects that can be used by all threads at their root scope only 2009-09-03 11:42:23 +00:00
Jason Turner
a427d2c1a9 Correct function pointer casts to more correct static_cast<>() 2009-09-03 00:15:56 +00:00
Jason Turner
efb7a8d453 Create local thread caches of registered function objects to reduce thread contention 2009-09-02 02:28:38 +00:00
Jason Turner
6c4872eae9 Initial check in of multithreaded support for chaiscript 2009-08-31 19:50:41 +00:00
Jason Turner
ff639a267d Shave a few cycles off by reducing copies and assignments of objects in eval 2009-08-30 02:24:11 +00:00
Jason Turner
94e4b671f3 Make sure to invalidate the cache when a new function name is added 2009-08-30 01:06:21 +00:00
Jason Turner
096c8aab50 Provide for caching of objects in the dispatch get get_object side. Also, update chaiscript_eval to not explicitly add a new stack object to each scope as it is created 2009-08-30 00:48:17 +00:00
Jason Turner
89186a86c8 speed up operator calls by about 10% by reducing Proxy_Function copies and such 2009-08-29 19:19:31 +00:00
Jason Turner
c8c1c65e8c Add std::list support 2009-08-29 14:00:07 +00:00
Jonathan Turner
91011695f0 Allow simple multiline commands in arg list and container arg list 2009-08-26 20:34:32 +00:00
Jason Turner
3a951cea99 Extend the reserved object name registration to include some missing values such as break and return and such 2009-08-26 02:21:41 +00:00
Jonathan Turner
8620f4eaf9 Fix for issue 23, makes for and while loops live in their own deeper scope 2009-08-26 02:02:41 +00:00
Jonathan Turner
59ecf32f9b Add Eval_Error end extents and reserved word errors 2009-08-25 01:10:28 +00:00
Jason Turner
541e453098 check in of reserved word handling 2009-08-25 00:36:02 +00:00
Jason Turner
0b780593a6 Make for better error messages when a clone fails 2009-08-22 13:55:06 +00:00
Jason Turner
2e7c5f413e Cleanup get_function implementation 2009-08-21 22:51:12 +00:00
Jonathan Turner
7e5b7cbd7a Switch get_function to default to not doing object lookup. Correct method eval to maintain method lambda syntax. Add unit test for method lambda 2009-08-21 20:05:05 +00:00
Jason Turner
1f011f3d5b Add "use" function for loading chai files from inside of ChaiScript and fix potential memory bug with filename const char * pointers being passed around 2009-08-21 03:33:57 +00:00
Jason Turner
a136236179 Fix dispatch for const boost::shared_ptr<> & parameters for functions, add a test to example.cpp and fix some issues with building example.cpp 2009-08-20 21:35:56 +00:00
Jonathan Turner
8840f06053 Allow floating point numbers without a zero before the decimal point 2009-08-20 14:50:13 +00:00
Jason Turner
00e4de774f Move "fun_helper" into detail namespace 2009-08-09 19:12:01 +00:00
Jason Turner
bc3a17b3b7 Port VC++ fix from last rev back to Linux 2009-08-09 18:42:32 +00:00
Jason Turner
4a57efde25 Correct bug with bootstrapping of Map type on windows. Also, make it easier to specify the type of a function being added at the time it is being added. 2009-08-09 16:49:14 +00:00
Jason Turner
cf94817869 Add missing new files from last checkin 2009-08-08 16:38:32 +00:00
Jason Turner
6775863415 Clean up chaiscript namespace by adding the "detail" namespace for internal functions/classes 2009-08-08 16:38:04 +00:00
Jason Turner
a3d4b6698a Favor filtering of functions during dispatch over exceptions to determine appropriate function to call. Results in approximately 50% reduction in runtime for long running scripts 2009-08-06 04:22:13 +00:00
Jason Turner
0ff107a818 Rename types_match to call_match in Proxy_Function to more closely match the semantics of the call 2009-08-06 01:35:12 +00:00
Jason Turner
ba6b392174 Approximate 20% reduction in runtime on long running scripts, based on profiling data. Reduce number of execution of object cache culling, reduction of copies of the stack and reduction of Boxed_Value copies 2009-08-05 02:43:13 +00:00
Jason Turner
0b789004e9 Make "clone" a chaiscript based operation instead of forcing the user to register a clone method. 2009-07-24 13:17:00 +00:00
Jason Turner
0d3c90a245 Add "type_name" function and port the "new" in prelude to use it instead of clone/clear. 2009-07-24 04:01:28 +00:00
Jonathan Turner
2f591a25a6 Add ltrim, rtrim, and trim 2009-07-23 17:35:39 +00:00
Jonathan Turner
4127a6ed41 Added 'clear'. Added 'push_back' to string. Added char. Added simple reverse 2009-07-23 17:01:07 +00:00
Jason Turner
4e412c0f6a Fix compilation error for G++ 2009-07-23 13:03:57 +00:00
Jason Turner
370121a9ff add example.cpp to build for VC++, fix minor bug in passing of & parameters to functor<>, move bootstrap functions into bootstrap namespace and clean up function names and add "retro" support for reversing of ranges. 2009-07-23 04:35:15 +00:00
Jason Turner
00ac8113c0 Add additional support for boost::shared_ptr as a return type 2009-07-21 02:00:39 +00:00
Jonathan Turner
72b6647718 Add missing return value 2009-07-20 19:53:31 +00:00
Jason Turner
daacbaa9e0 Correct for warnings and errors for the VC++ port. 2009-07-19 03:59:58 +00:00
Jason Turner
a5a1e3ee1b Revamped method for bootstrapping of types, using a new Module class that collects everything related to a type or group of types 2009-07-19 03:04:46 +00:00
Jason Turner
82bd46bb1a More usage cleansups 2009-07-18 23:34:08 +00:00
Jason Turner
4d4c26bf73 Major updates to the C++ API. Please see trunk/src/example.cpp to follow along 2009-07-18 18:05:54 +00:00
Jonathan Turner
ac817ff33a Change 'elseif' to 'else if' to better support C++ expectations 2009-07-17 14:16:27 +00:00
Jason Turner
689143aba5 Fix broken push_back in prelude, to correct for unit tests. 2009-07-16 23:53:13 +00:00
Jason Turner
9b733b2621 Correct g++ compilation error caused by r308, fix for casting to const boost::shared_ptr<> &. 2009-07-16 23:46:19 +00:00
Jason Turner
727dc7b0d6 Add support for boxed_cast<> to const boost::shared_ptr<Type> &, fixing the problem Jon was having 2009-07-16 21:30:01 +00:00
Jonathan Turner
3fc5f8e8e1 Guard push_back to ensure we have the push_back_ref before we call it 2009-07-16 20:32:33 +00:00
Jonathan Turner
aed493322b Clean up exception story so that there is only one exception type and one thing the user needs to catch 2009-07-16 13:24:15 +00:00
Jason Turner
8dbb43f45f Clean up last bug fix with full support for const & (and presumably some support for const *) contained types. 2009-07-15 23:36:10 +00:00
Jason Turner
ec2f81c674 Fix bug that jon discovered that affects attempting to return a reference to an object that shares a memory location with a containing object but has a different type. 2009-07-15 23:12:49 +00:00
Jonathan Turner
7c7e437b10 Clean up unnecessary Boxed_Value copies in eval 2009-07-15 14:40:53 +00:00
Jonathan Turner
599a21d377 Small bugfix to float parser 2009-07-13 13:48:06 +00:00
Jonathan Turner
5ec3901396 Some minor source header touchups 2009-07-13 03:13:04 +00:00
Jason Turner
45fbe2028a Correct registration of array[]. (Rollback to previous version) to fix broken unit tests. 2009-07-13 03:04:47 +00:00
Jason Turner
7f71c77e56 Add documented example usage for C++ api. To be used for website documentation purposes as well 2009-07-12 17:05:24 +00:00
Jason Turner
a70dc12b2a Documentation updates. 2009-07-12 03:07:45 +00:00
Jason Turner
c9e67f2063 use relative include paths to make moving files around/portability easier potentially. 2009-07-11 13:00:43 +00:00
Jonathan Turner
7da81c8c11 Put eval init in constructor 2009-07-10 15:45:48 +00:00
Jonathan Turner
15979ecdb2 A couple touchups. Fixed package builder 2009-07-10 15:37:10 +00:00
Jonathan Turner
008329f36d Move dispatchkit unittest out of include 2009-07-10 15:26:35 +00:00
Jonathan Turner
5c79c7cec0 Move dispatchkit test out of include 2009-07-10 15:25:14 +00:00
Jonathan Turner
ac2b59796f Moving internal includes to point to the new dir structure 2009-07-10 15:24:24 +00:00
Jonathan Turner
4a5c86f07f Moving files into new locations 2009-07-10 15:10:21 +00:00
Jonathan Turner
a40c71967c Move dispatch kit into new include tree 2009-07-10 15:06:47 +00:00