Commit graph

7920 commits

Author SHA1 Message Date
ridiculousfish
4452d9ce18 [muparser] Remove m_pParseFormula function pointer
This is a very strange design that determines whether initialization
needs to be performed by reassigning a function pointer. A misguided
optimization? Just check explicitly.
2017-12-18 23:01:17 -08:00
ridiculousfish
3ed9c851a3 [muparser] Remove some OpenMP / "bulk mode" detritus 2017-12-18 23:01:17 -08:00
ridiculousfish
fdefabdb1d [muparser] Remove fun_type overloads that have four or more parameters
Supporting these is rather excessive.
2017-12-18 23:01:17 -08:00
ridiculousfish
bb9e15675e [muparser] Remove muParserDLL.h and muParserDLL.cpp
This is a C interface (?) which fish does not use and is not needed.
2017-12-18 23:01:17 -08:00
ridiculousfish
128aacaf87 [muparser] Disable muparser shared lib build
fish does not use its shared library, only the static one
2017-12-18 23:01:17 -08:00
ridiculousfish
554382a286 [muparser] Remove 'AllowOpt' parameters
This parameter was used as a hint to optimize functions invoked
with constants, but is no longer used.
2017-12-18 23:01:17 -08:00
ridiculousfish
452211ebf5 Disable exception handling in autotools build
Now that muparser no longer relies on exceptions, we can disable them
again.
2017-12-18 23:01:17 -08:00
ridiculousfish
3099d46736 Disable exception handling in CMake build
Now that muparser no longer relies on exceptions, we can disable them
again.
2017-12-18 23:01:17 -08:00
ridiculousfish
8b16fccebf Disable exception handling in Xcode build
Now that muparser no longer relies on exceptions, we can disable them
again.
2017-12-18 23:01:17 -08:00
ridiculousfish
11e6cfeb82 [math] Remove exception handling in builtin_math
This handles errors explicitly instead of catching them.
2017-12-18 23:01:16 -08:00
ridiculousfish
5d2cf3f666 [muparser] Remove getOrThrow()
This is no longer used or needed
2017-12-18 23:01:16 -08:00
ridiculousfish
2f2f4b4287 [muparser] ParserBase::Eval to return an error instead of throwing 2017-12-18 23:01:16 -08:00
ridiculousfish
11d729d09c [muparser] DefineFun() to return an error instead of throwing 2017-12-18 23:01:16 -08:00
ridiculousfish
6f14d55612 [muparser] Convert more exception handling into explicit errors 2017-12-18 23:01:16 -08:00
ridiculousfish
d3822e4cb3 [muparser] Propogate and check for lots more errors 2017-12-18 23:01:16 -08:00
ridiculousfish
0be08e4683 [muparser] DefinePostfixOprt and DefineInfixOprt to return errors
Return errors explicitly instead of throwing.
2017-12-18 23:01:16 -08:00
ridiculousfish
f3a9773849 [muparser] Make some error handling in ParserBase explicit
Return ParserError instead of throwing exceptions
2017-12-18 23:01:16 -08:00
ridiculousfish
62bedde23d [muparser] Clean up error handling in ParserTokenReader 2017-12-18 23:01:16 -08:00
ridiculousfish
91c28449aa [muparser] Parser mathematical functions to return errors instead of throw
Remove exceptions from Parser functions such as sqrt, min, and others.
2017-12-18 23:01:16 -08:00
ridiculousfish
bceef6c125 [muparser] ParserInt::IsBinVal to return false on overflow
Instead of throwing an exception, simply return false. It is too
complicated to thread the error return through this function and
ParserInt is unused by fish anyways.
2017-12-18 23:01:16 -08:00
ridiculousfish
67a6f756f2 Add some math tests for invalid inputs 2017-12-18 23:01:16 -08:00
ridiculousfish
3faccc8b3e [muparser] Remove querying variables and constants
fish does not need to query variables and constants from muparser.
This simplifies the code.
2017-12-18 23:01:16 -08:00
ridiculousfish
234808bc32 [muparser] ApplyRemainingOprt to return explicit errors 2017-12-18 23:01:16 -08:00
ridiculousfish
60d9c9fa00 [muparser] More functions to return errors
Return OptionalError for more functions, allowing for explicit error
handling.
2017-12-18 23:01:16 -08:00
ridiculousfish
d97bb3425f [muparser] Clean up ParserTokenReader constructor 2017-12-18 23:01:16 -08:00
ridiculousfish
83799832bc [muparser] Make ParserTokenReader non-copyable
There's no reason to copy these.
2017-12-18 23:01:16 -08:00
ridiculousfish
3b1b5b30ca [muparser] Clean up ParserToken::GetFuncAddr 2017-12-18 23:01:16 -08:00
ridiculousfish
c4c89dff4e [muparser] Clean up ParserCallback interface
Remove Clone() method and mark some functions as defaulted.
2017-12-18 23:01:15 -08:00
ridiculousfish
9443a4bf2d [muparser] Remove copy and assignment
There is no reason for muParsers to be copyable or assignable.
Also remove some dead code and switch an auto_ptr to unique_ptr.
2017-12-18 23:01:15 -08:00
ridiculousfish
65f4963542 [muparser] Eliminate MUP_FAIL and MUP_ASSERT
Replace MUP_ASSERT with assert(). MUP_FAIL was unused.
2017-12-18 23:01:15 -08:00
ridiculousfish
f05b55c84c [muparser] Remove \throw nothrow comments
Soon it will all be nothrow!
2017-12-18 23:01:15 -08:00
ridiculousfish
9649b132bd [muparser] Continue adopting ValueOrError 2017-12-18 23:01:15 -08:00
ridiculousfish
bfd70880a5 [muparser] Begin adopting ValueOrError
Switch custom function types to return ValueOrError, which will
enable us to remove exceptions.
2017-12-18 23:01:15 -08:00
ridiculousfish
5655f255ef [muparser] Add a muParser ValueOrError type
First steps towards removing exceptions from muParser.
2017-12-18 23:01:15 -08:00
ridiculousfish
c0af4ba70a [muparser] Fix "backslash and newline separated by space" warning
ASCII art is serious business.
2017-12-18 23:01:15 -08:00
ridiculousfish
fc110d2c0e [muparser] Fix "enumeration value not handled in switch" warning
It's unclear whether the default behavior is ever executed. Add an
assertion to find out the hard way.
2017-12-18 23:01:15 -08:00
ridiculousfish
a7f6105497 [muparser] Remove the optimizer
The optimizer adds a fair amount of complexity in muparser with no
benefit to fish, since fish is not going to use complicated expressions
or cache parsed expressions.
2017-12-18 23:01:15 -08:00
ridiculousfish
85334432ed [muparser] Remove cmFUNC_BULK
fish does not need bulk functions, which are used to enable parallel
computations.
2017-12-18 23:01:15 -08:00
ridiculousfish
c5a0c58cfb [muparser] Remove NDEBUG from its autoconf build
Ensure that assertions are tripped.
2017-12-18 11:58:14 -08:00
ridiculousfish
dac13d51fa [muparser] Switch autoconf build to C++11
This will enable testing via muparser's test suite while
incorporating C++11 features.
2017-12-18 11:58:14 -08:00
ridiculousfish
38a2e0218d [muparser] Remove muParserError.h
To help remove exception handling, we will need to have a type that
has visibility into both ParserError and value_type. We're going to
put this type in muParserDef.h. Remove the error header and fold its
contents into muParserDef.h.
2017-12-18 11:58:14 -08:00
ridiculousfish
5f7f1102db [muparser] Remove ParserErrorMsg
This was a class to "manage" error messages. Remove it and replace
it with a function.
2017-12-18 11:58:14 -08:00
ridiculousfish
cad9bbd2a2 [muparser] Remove muParserStack.h
This was a silly data structure that didn't carry its weight.
Replace it with a wrapper around std::vector that doesn't explicitly
throw exceptions. It's unclear if muparser relied on the exception
throwing behavior of ParserStack, and it seems there's no way to find
out except removing it and seeing what breaks.

The tests pass for what that's worth!
2017-12-18 11:58:13 -08:00
ridiculousfish
e2b798cda3 [muparser] Restyle muparser sources to match fish
Add muparser soruces to style.fish, and run it to make muparser
match fish style guidelines.
2017-12-18 11:58:13 -08:00
ridiculousfish
b39d0adc39 Add muparser example executable to .gitignore 2017-12-18 11:58:13 -08:00
ridiculousfish
8364e59709 [muparser] Remove MUP_USE_OPENMP
We are not using OpenMP in the fish shell.
2017-12-18 11:58:13 -08:00
ridiculousfish
483930946b [muParser] Remove ecINTERNAL_ERROR
Internal errors should not be represented as exceptions, but
instead as assertion failures.
2017-12-18 11:58:13 -08:00
Fabian Homborg
edcf9ebc12 [git completions] Remove staged_files function
Turns out "__fish_git_staged_files" does the same thing as "__fish_git_modified_files --staged".

Also use "--staged" instead of "--cached", which is a more
understandable synonym.

Many thanks to @thomcc on gitter.
2017-12-18 20:05:56 +01:00
David Adam
3a10e76874 CHANGELOG: drop bare variable note
This behaviour was never in a released version.

[ci skip]
2017-12-18 21:06:32 +08:00
ridiculousfish
81dd4a4536 [math] Remove more bare variable support
Prior to this fix, a "bare variable" in math like 'x + 1' would be
looked up in the environment, i.e. equivalent to '$x + 1'. This appears
to have been done for performance. However this breaks the orthogonality
of fish; performance is not a sufficient justification to give math this
level of built-in power, especially because the performance of math is
not a bottleneck. The implementation is also ugly.

Remove this feature so that variables must be prefixed with the dollar
sign and undergo normal variable expansion. Reading 'git grep' output
does not show any uses of this in fish functions or completions.

Also added to changelog.

Fixes #4393
2017-12-17 12:40:09 -08:00