mirror of
https://github.com/louisrubet/rpn
synced 2024-11-16 07:47:26 +01:00
100 lines
4.6 KiB
Markdown
100 lines
4.6 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [2.5] - 2022-09-22
|
|
|
|
### Added
|
|
|
|
- A new command `endl`, meaning end-line was added for line formatting sake.
|
|
- Clang compilation is now warning-free (tested with clang 14.0).
|
|
- Program run now optimized. Programs were parsed then linked at each run ; now the parsing and linking phases are done only once at entry time, avoiding terrible performance loss.
|
|
|
|
### Changed
|
|
|
|
- C++20 standard is used instead of C++17. This detected some warnings (now corrected).
|
|
|
|
### Fixed
|
|
|
|
- Syntax errors (and other errors) are now shown after the stack, which is much more convenient.
|
|
- Warnings shown by clang and C++20 (braces initializers, some bad types, removed dangerous #pragma).
|
|
- The linenoise-ng submodule version was well set in CMakeLists.txt but not in the submodule, which showed a permanent linenoise-ng modification in git although the version was the good one.
|
|
|
|
## [2.4.2] - 2022-03-03
|
|
|
|
### Fixed
|
|
|
|
- Version string were not correctly shown using flatpak generation
|
|
|
|
## [2.4.1] - 2022-03-02
|
|
|
|
### Added
|
|
|
|
- A welcome message has been added in interactive mode.
|
|
|
|
### Changed
|
|
|
|
- The function `date` return format is now a string `"YYY-MM-DD"` (local ISO 8601).
|
|
- The function `time` return format is now a string `"HH:MM:SS"` (local ISO 8601).
|
|
|
|
### Removed
|
|
|
|
- The useless function `nop` has been removed.
|
|
- GENERATION.md file has been removed, the generation instructions are in README.md.
|
|
- The useless file TODO.md has been removed.
|
|
|
|
### Fixed
|
|
|
|
- The function `ticks` now returns correctly the current date in µs
|
|
|
|
## [2.4.0] - 2022-02-28
|
|
|
|
### Added
|
|
|
|
- Better parser (in fact just a lexer, because that's all it takes).
|
|
- Use of [mpreal](http://www.holoborodko.com/pavel/mpfr/) instead of raw mpfr for calc on reals.
|
|
- Use of the standard C++ complex class.
|
|
- Enhanced code quality and memory usage checks.
|
|
- Added github actions to pass functional tests and valgrind mem checks at each pull request.
|
|
- Applied [google c++ style guide](https://google.github.io/styleguide/cppguide.html)
|
|
- points covered are very numerous: c++17, define guard, name and order of inclusions, static and global variables, common patterns, classes, naming conventions etc.
|
|
- cpplint used with a CPPLINT.cfg removing some warnings.
|
|
- clang-format is now based on google style.
|
|
- Test files are now markdown (.md) files, tests result are slightly changed.
|
|
- Delived as flatpak, not as rpm and deb anymore.
|
|
- Automatic version string from git.
|
|
- hex and bin numbers accept floating point input and C99 standard output.
|
|
- `«` and `»` are now valid as program delimiters. `<<` and `>>` are still valid.
|
|
- Entering the sign after the base (ex: 0x-1e2) is allowed.
|
|
- rpn is delivered as flatpak and snap packages to be compatible with a maximum of Linux distribs. rpm and deb are no longer generated.
|
|
|
|
### Changed
|
|
|
|
Be carefull, compatibility is broken on these points compared to last version 2.3.2:
|
|
|
|
- `<< <<` input doesn't lead to `««»»` but to `«<< »`, preventing to eval the real program content.
|
|
- Making an operation stick to the previous entry is not possible anymore (ex: `1 2+` instead of `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).
|
|
- The binary prefix is always `0b` on display, but the input can be `0b`, `0B`, `2b` or `2B`.
|
|
- The hex prefix is always `0x` on display, but the input still can be `0x`, `0X` or `16B` at input.
|
|
- `mant` and `xpon` now give binary (and not decimal) significand and exponent, as it is the norm in the standard libs (libC, standard C++, mpfr, gmp).
|
|
- `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*`.
|
|
- Incomplete entry `(1,` is not available anymore.
|
|
|
|
### Removed
|
|
|
|
- Removed useless `unti`, `repea`, `whil` (prev. existing for HP28S compatibility).
|
|
- Removed `sqr` function, please use `sq` instead (prev. existing for HP28S compatibility).
|
|
- Removed CtrlC for interrupting a program (considered useless).
|
|
- Removed old memory management, efficient but poorly maintainable.
|
|
- Removed man page generation.
|
|
|
|
### Fixed
|
|
|
|
- `sub` now only accepts boundaries between 1 and the string length.
|
|
- `sto/` behavior: sto/ now correctly stores variable divided by constant and not constant divided by variable.
|
|
- `cosh` now returns the hyp cosinus instead of the hyp sinus.
|