2022-02-18 17:41:27 +01:00
Changelog
- Better parser (now called lexer)
- Use of mpreal instead of raw mpfr for calc on reals
- Use of C++ complex class
- Removing old memory management, efficient but poorly maintainable
- Enhanced code quality and memory usage checks
- Added CircleCI checks: passing functional tests and valgrind mem checks at each pull request
- SonarCloud integration, Sonar way profile
- clang-format now based on google style
- [google c++ style guide ](https://google.github.io/styleguide/cppguide.html ) applied
2022-02-24 19:10:02 +01:00
- c++17
2022-02-24 12:23:26 +01:00
- define guard
- name and order of inclusions
2022-02-24 19:10:02 +01:00
- static and global variables
- common patterns (ex: no static maps or vectors)
- classes (explicit)
2022-02-25 12:19:25 +01:00
- naming:
- file names (.cc .h), types (PascalCase), variables (snake_case), members (trailing _), static const (camelCase begining with k), enum (enum class, values like static const
- consistent comments (//), class comments, functions comments
2022-02-24 19:10:02 +01:00
- cpplint used with a CPPLINT.cfg removing some warnings
2022-02-18 17:41:27 +01:00
- Test files are now markdown (.md) files, tests result are slightly changed
- Delivery as flatpak and snap
2022-02-25 15:32:36 +01:00
- error string are slightly different, althought error codes are still the same
2022-02-19 16:32:05 +01:00
2022-02-18 17:41:27 +01:00
New
- `«` and `»` are now valid as program delimiters. `<<` and `>>` are still valid
- entering the sign after the base (ex: 0x-1e2) is allowed
2022-02-21 00:03:16 +01:00
- rpn is delivered as flatpak and snap packages to be compatible with a maximum of Linux distribs. rpm and deb are no longer generated
2022-02-18 17:41:27 +01:00
Compatibility is broken on these points
2022-02-19 16:32:05 +01:00
- `<< <<` input doesn't lead to `««»»` but to `«<< »` , preventing to eval the real program content
2022-02-18 17:41:27 +01:00
- `1 2+` not allowed anymore, keep `1 2 +` , this corrects bad behaviors like `3b114` pushing `3b11` and `4`
- complexes are written in the form `(1,2)` instead of `(1, 2)` (space is removed)
- removed useless `unti` , `repea` , `whil` (prev.existing for HP28S compatibility)
- removed `sqr` function, please use `sq` instead (prev.existing for HP28S compatibility)
- the binary prefix is always 0b on display, but still can be 0b, 0B, 2b or 2B at input
- the hex prefix is always 0x on display, but still can be 0x, 0X or 16B at input
2022-02-21 00:03:16 +01:00
- `mant` and `xpon` now give binary (and not decimal) significand and exponent, as it is the norm in standard libs (libC, standard C++, mpfr, gmp)
2022-02-18 17:41:27 +01:00
- `dupn` , `roll` , `rolld` are not leaving anymore their argument in front of the stack in case of error
- `sto+` `sto-` `sto*` `sto/` don't accept anymore the syntax `'varname' value stoX` , but only `value 'varname' stoX` , ex: `3 'a' sto*`
2022-02-21 00:03:16 +01:00
- incomplete entry `(1,` is not available anymore
2022-02-20 15:58:15 +01:00
- signed zero is the sign of zero is subject to change compared to previous version, for example `-3 sqrt` now equals `(0.000000,1.732051)` instead of `(-0.000000,1.732051)`
2022-02-24 19:10:02 +01:00
- removed CtrlC for interrupting a program (considered useless)
2022-02-18 17:41:27 +01:00
2022-02-21 00:03:16 +01:00
Debug
- `sub` now only accepts boundaries between 1 and the string length
- `sto/` behavior: sto/ now correctly stores variable / constant and not constant / variable
- `cosh` now returns the hyp cosinus instead of the hyp sinus (!)