Jason Turner
caf2b39995
Attempt caching optimization of object lookups
2016-05-03 08:15:03 -06:00
Jason Turner
03803ee4c4
Initial take on Tracer hooks
...
This will allow the user to add hooks in for debugging / execution
tracing / throttling / etc for each node execution
The cost is *almost* 0 if no tracing is enabled.
2016-04-30 20:53:01 -06:00
Jason Turner
f6c69f2826
Allow folding of if blocks
2016-04-25 21:32:48 -06:00
Jason Turner
ff2ab6bb8d
Make optimizer split out
2016-04-23 15:52:19 -06:00
Jason Turner
683164650a
Add ability to 'compile' for loops
2016-04-21 08:09:10 -06:00
Jason Turner
7d5a97aa2f
Clean up if block parsing and eval
2016-04-16 15:39:32 -06:00
Jason Turner
83c6df11f0
Fix global reference assignment
2016-04-16 14:30:12 -06:00
Jason Turner
cf2fa09d6c
Eliminate branching in var decl
2016-04-16 14:13:14 -06:00
Jason Turner
32bd936a18
Remove 'annotation' feature
2016-04-16 07:52:39 -06:00
Jason Turner
8d808f75c0
Remove pretty_print functionality
2016-04-13 12:04:55 -06:00
Jason Turner
fe8f8a89a7
Implement constant expression folding
2016-04-11 08:19:02 -06:00
Jason Turner
40694c798c
Eliminate Str_AST_Node
2016-04-10 23:12:35 -06:00
Jason Turner
443828fa23
More parser simplification
2016-04-10 22:27:35 -06:00
Jason Turner
866db4ee8b
Reduce instances of Str_AST_Node
2016-04-10 21:38:44 -06:00
Jason Turner
e02ac78195
Remove Char_AST_Node
2016-04-10 18:57:23 -06:00
Jason Turner
62cd8031ac
Make quoted strings into Constants
2016-04-10 18:29:16 -06:00
Jason Turner
61dfcb00c0
Move int/float into Constant
2016-04-10 17:19:48 -06:00
Jason Turner
08a68f310a
Move to strongly typed algebraic enum
2016-04-09 21:50:23 -06:00
Jason Turner
34a2001a7b
Reduce lookups into stack indexes
2016-03-12 07:05:12 -07:00
Jason Turner
5247de7d1b
use a global void value for returning unknown values
2016-03-11 10:21:39 -07:00
Jason Turner
cd1b3f8887
Virtual / override / public cleanups
2016-03-11 09:24:00 -07:00
Jason Turner
b5b6e5a5a3
Drop ifdef'd code for gcc4.6 and msvc12
2016-03-04 11:15:39 -07:00
Jason Turner
07fa8010e4
Ack! Rollback debug statement print out
2016-02-16 11:06:20 -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
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
84e2d449b9
Support default
case in the non-last position
2015-10-15 15:02:49 -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
9f362608b7
Eliminate extra unneeded scope
2015-08-28 21:19:00 -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
8f98e16e5e
Reset return value flag on reference assignment
2015-08-13 13:45:31 -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
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
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
b270a198dc
Don't clone return values into vector/map
2015-07-02 22:10:09 -06:00
Jason Turner
748c18f465
Save stack & and prevent lookups
2015-06-28 15:17:58 -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
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
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
646563eb3f
A couple of cleanups and fixes
2015-06-19 20:10:45 -06:00
Jason Turner
f9e0193353
Add map .at
method from c++11
...
closes #184
2015-06-10 18:41:50 -06:00
Jason Turner
919c3f2b4a
Finish removing std::function and std::bind internally
2015-05-23 13:10:29 -06:00