diff --git a/GENERATION.md b/GENERATION.md index 4f63814..1c391cd 100644 --- a/GENERATION.md +++ b/GENERATION.md @@ -1,4 +1,4 @@ -# **rpn v2.2** - generation +# **rpn v2.3** - generation For now rpn is proposed only for **GNU/Linux** @@ -6,25 +6,23 @@ It can be generated following the steps below ## version identification -rpn v2.2 is statically linked against +rpn is dynamically linked against - GNU MP v6.1.2 - GNU MPFR v3.1.5 -- linenoise-ng v1.0.1 -## GNU MP v6.1.2 +and embeds the source code of linenoise-ng v1.0.1 -- download and install **GNU MP v6.1.2** from https://gmplib.org/ +It is necessary to get MPFR and linenoise-ng to generate rpn. -## GNU MPFR v3.1.5 +## install GNU MPFR v3.1.5-p8 headers -- download and install **GNU MPFR v3.1.5** from http://www.mpfr.org +- download **GNU MPFR v3.1.5-p8** from http://www.mpfr.org +- install it with usual autotools commands `./configure && make && make install` -## linenoise-ng v1.0.1 +## install linenoise-ng v1.0.1 source code - download **linenoise-ng v1.0.1** from https://github.com/arangodb/linenoise-ng - - checkout the tag v1.0.1 - - apply the following patch to the source code ``` @@ -34,7 +32,7 @@ rpn v2.2 is statically linked against // ctrl-I/tab, command completion, needs to be before switch statement if (c == ctrlChar('I') && completionCallback) { -+ // lru for rpn ++ // rpn #178: enable autocompletion on void entry + #if 0 if (pos == 0) // SERVER-4967 -- in earlier versions, you could paste // previous output @@ -47,8 +45,9 @@ rpn v2.2 is statically linked against killRing.lastAction = KillRing::actionOther; historyRecallMostRecent = false; ``` +- install linenoise-ng with cmake commands `mkdir build && cd build && cmake .. && make install` -## rpn +## generate rpn - clone [rpn project](https://github.com/louisrubet/rpn/) or download a zipped version from [the release directory](https://github.com/louisrubet/rpn/releases) ``` @@ -86,6 +85,4 @@ rpn v2.2 is statically linked against (...) CPack: Create package using TGZ (...) - # ls rpn* - rpn rpn-2.1-amd64.deb rpn-2.1-amd64.rpm rpn-2.1-amd64.tar.gz ``` diff --git a/MANUAL.md b/MANUAL.md index d29023b..f766ec1 100644 --- a/MANUAL.md +++ b/MANUAL.md @@ -1,4 +1,4 @@ -# **rpn v2.3**- reference manual +# **rpn**- reference manual **rpn** - is a **math-oriented language** inspired by Hewlett-Packard **R**everse **P**olish **L**isp (**HP28S** user manual is provided as a reference), it includes at least **stack**, **store**, **branch**, **test**, **trig** and **logs** commands @@ -31,7 +31,7 @@ var 1: name 'quadratic_solution', type program, value << rot * swap 2 / chs dup ``` rpn> << -> x y << x y + ln >> >> 'P' sto rpn> 1 2 P -rpn> 1.0986122886681096914 +rpn> 1.0986122886681096913952452369225257046 ``` ### **arbitrary precision** @@ -61,14 +61,15 @@ rpn> ``` rpn> -Display all 142 possibilities? (y or n) -nop test neg sq %CH ip arg sci < not rot rolld pos for unti purge sto/ asin e log2 tanh -? version * sqr mod fp c->r prec <= same dup over sub next while vars sneg cos ln alog2 atanh -h uname / abs fact min r->c round != swap dup2 ->str if step whil clusr sinv acos log exp2 -help history inv dec mant max p->r default == drop dupn str-> then ift repeat edit eval tan exp sinh -q + ^ hex xpon re r->p type and drop2 pick chr else ifte repea sto+ -> atan log10 asinh -quit - pow sign floor im std > or dropn depth num end do sto sto- pi d->r alog10 cosh -exit chs sqrt % ceil conj fix >= xor erase roll size start until rcl sto* sin r->d exp10 acosh +Display all 144 possibilities? (y or n) +nop exit chs sqrt sign floor im std > or dropn depth num end do sto sto- pi d->r alog10 cosh +help test neg sq % ceil conj fix >= xor erase roll size start until rcl sto* sin r->d exp10 acosh +h version * sqr %CH ip arg sci < not rot rolld pos for unti purge sto/ asin e log2 tanh +? uname / abs mod fp c->r prec <= same dup over sub next while vars sneg cos ln alog2 atanh +q history inv dec fact min r->c round != swap dup2 ->str if step whil clusr sinv acos log exp2 +quit + ^ hex mant max p->r default == drop dupn str-> then ift repeat edit eval tan exp sinh +q - pow bin xpon re r->p type and drop2 pick chr else ifte repea sto+ -> atan log10 asinh +rpn> ``` ## keywords diff --git a/src/version.h b/src/version.h index 15c96b4..9cc6c44 100644 --- a/src/version.h +++ b/src/version.h @@ -1,5 +1,5 @@ // version and soft name -#define RPN_VERSION "2.2" +#define RPN_VERSION "2.3" static const char version[] = RPN_VERSION; static const char uname[] = "rpn v" RPN_VERSION ", (c) 2017 , GNU LGPL v3\n";