Commit Graph

50 Commits (master)

Author SHA1 Message Date
Marius Kintel b6558889b4 bugfix: Don't return a temporary string from exception::what 2015-02-10 18:59:11 -05:00
Marius Kintel 2e8d93d5be Some Expression refactoring 2014-11-25 17:08:14 -05:00
Marius Kintel d99dea1db2 bugfix after merging master - dynamic memory caused contexts not to be destructed 2014-11-25 15:53:44 -05:00
Marius Kintel 2644b19ce7 Reimplemented serialization of expression to string after last refactoring 2014-11-25 15:05:36 -05:00
Marius Kintel be9b0ee925 indentation 2014-11-25 11:26:14 -05:00
Marius Kintel d8010a0659 Take a copy of the name of the recursive component, don't use a pointer to a temporary string 2014-11-24 18:25:38 -05:00
Torsten Paul aa586136ae Remove duplicate warning message. 2014-11-24 23:52:07 +01:00
Torsten Paul 241723dd8f Merge branch 'stack-size-hack' of github.com:openscad/openscad into stack-size-hack
Conflicts:
	src/expr.cc
2014-11-24 23:46:39 +01:00
Torsten Paul dc8f559b85 Use class hierarchy for the different types of expressions. 2014-11-24 23:37:42 +01:00
Marius Kintel ab96a82629 Minor cleanup of recursion exception handling 2014-11-24 17:30:05 -05:00
Marius Kintel 54a111472f Initial experiment with using exceptions to handle stack overflows 2014-11-24 12:54:14 -05:00
Torsten Paul 6ed14dafb0 Remove big switch statement from expression evaluation.
The switch statement causes a huge stack overhead that is very bad for
evaluating recursive functions.
2014-11-24 00:53:46 +01:00
Torsten Paul 1f73807097 Hack to track stack size in function evaluation. 2014-11-24 00:53:41 +01:00
Marius Kintel 406e6e1bac #409 Pass Value objects as shared_ptr instances instead of by Value to battle excess stack usage 2014-11-23 00:59:17 -05:00
Oskar Linde 7358e1108f Resolve issue #883 2014-07-22 11:11:57 +02:00
Oskar Linde dd4e229a46 let()-expression: disable reassignments 2014-05-22 22:24:26 +02:00
Oskar Linde 0a610baf5b Refactor let and list comprehension expressions a little
to be more in line with the other expression evaluation refactoring to minimize stack space
2014-05-22 21:51:29 +02:00
Marius Kintel 0e3b2d0f2f Merge branch 'list-comprehensions' of git://github.com/OskarLinde/openscad into OskarLinde-list-comprehensions 2014-05-13 13:22:27 -04:00
Marius Kintel e14df37c0e Merge branch 'let-expression' of git://github.com/OskarLinde/openscad into OskarLinde-let-expression 2014-05-13 13:13:48 -04:00
Oskar Linde b611ed5eac Add list-comprehensions 2014-05-03 17:24:44 +02:00
Oskar Linde ed3041c551 Add a let() expression 2014-05-03 11:19:30 +02:00
Tim V. Shaporev ebb075315f low-level optimization to reduce stack usage & accelerate calculations 2014-05-02 10:03:46 +04:00
Torsten Paul e6b2884805 Fix output of range expressions. 2013-11-11 01:38:34 +01:00
Torsten Paul 00a329f0bd Add support for handling negative step values in ranges (fixes #500). 2013-11-11 01:31:44 +01:00
Vicnet ce27757712 use explicit Value::RangeType for clarity 2013-10-07 16:04:42 +02:00
Marius Kintel 1b7cc41a7f Short circuit boolean logic - fixes #411 2013-06-25 23:39:02 -04:00
Marius Kintel 3bb22f9c53 Increase recursion limit to 1000 2013-06-05 20:28:10 -04:00
Marius Kintel 6951655422 Some expressions didn't support toString, which caused an assertion failure. Part of #384 2013-06-01 16:04:24 -04:00
Marius Kintel f179e0b567 Forgot to initialize recursioncount in all constructors 2013-05-13 20:40:32 -04:00
Marius Kintel ee6f149dd0 bugfix: Fixed recursion crash (#346) 2013-05-13 16:27:17 -04:00
Marius Kintel 886bc85eec Fixes remaining dxfdim() issue from #217 2013-04-27 00:53:41 -04:00
Marius Kintel ba20c0e800 Modified parse to allow overloading of variables in local blocks. Also did some minor cleanups while at it. Test cases missing 2013-04-26 18:32:19 -04:00
Marius Kintel 64ed1eb9fe Experiment: Lazy evaluation of argument lists in evaluation context. Allows e.g. for loop variables to be dependent on each other 2013-04-26 17:42:32 -04:00
Marius Kintel 58bd9c9e3f Cleaned up argument list handling, related to #116 2013-04-18 18:34:14 -04:00
Marius Kintel a37813a899 Refactored context handling into using separate Module contexts and Eval contexts. This allows for recursive module calls, and cascading children. I believe this fixes issue #116 2013-04-09 00:28:16 -04:00
Marius Kintel 327310f190 Rewrote the Value class to be based on boost::variant - this should reduce memory footprint and improve performance 2012-03-28 00:05:58 +02:00
Andrew Plumb d4efb54284 Cleaned up unsigned int compiler warnings 2012-02-13 11:23:18 -05:00
Marius Kintel faf4a64851 Killed some warnings 2011-12-04 22:20:19 +01:00
Brad Pitcher dcf4b83306 string indexing 2011-11-12 22:58:15 -08:00
Marius Kintel 7d9104e748 Evaluate expressions for the ternary operator the same way as for if-else, i.e. cast any value to bool 2011-10-23 22:33:11 +02:00
Marius Kintel 16b74df941 killed warnings 2011-09-03 18:42:45 +02:00
Marius Kintel 6f632190a0 Ported a bunch of stuff from Qt to STL 2011-09-03 06:10:36 +02:00
Marius Kintel d24b3cc84d Ported recent changes to master into the visitor branch 2011-04-12 20:35:44 +02:00
Marius Kintel 91c640fb5e Copyright updates 2011-01-21 02:21:09 +01:00
Marius Kintel ab90b38780 Value::QVector -> std::vector 2010-11-07 17:12:34 -05:00
Marius Kintel e0a068a0e8 Refactored some QString usage in the backend to std::string 2010-11-07 16:29:34 -05:00
kintel 63c1154f8e Fixed crash when using negative array indices
git-svn-id: http://svn.clifford.at/openscad/trunk@433 b57f626f-c46c-0410-a088-ec61d464b74c
2010-02-10 15:26:15 +00:00
clifford 07bc7dbecd Clifford Wolf:
Added CGAL exception to all copyright notes, as it is suggested on:
	http://www.cgal.org/license.html
	http://www.fsf.org/licensing/licenses/index_html



git-svn-id: http://svn.clifford.at/openscad/trunk@405 b57f626f-c46c-0410-a088-ec61d464b74c
2010-02-01 09:34:18 +00:00
kintel 191dc4857c header file reorg
git-svn-id: http://svn.clifford.at/openscad/trunk@365 b57f626f-c46c-0410-a088-ec61d464b74c
2010-01-30 04:26:05 +00:00
kintel 6940d17181 reorganized file structure layout. more to follow...
git-svn-id: http://svn.clifford.at/openscad/trunk@364 b57f626f-c46c-0410-a088-ec61d464b74c
2010-01-30 04:17:05 +00:00