Releases: c3d/db48x
Release 0.9.2 "Temptations" - Multi-variate solver, documentation
This release introduces a true multiple-variables solver, additional matrix operations, and extends the RPL programming documentation.
New features
- The
Root
command now selects a true multi-variable solver (Jacobian solver), capable of solving systems of equations with multiple variables, even when variables cannot be isolated one at a time, for example solving{ 'sin(x)=y' 'sin(y)=x+1' }
. As a result, the DB48xRoot
command now covers the functionality provided by the HP50G'sROOT
,MROOT
andMSLV
. - Compatibility for
MSLV
is preserved thanks to a dedicated command, which like the HP50G leaves input equations and variables on the
stack. - Add
RNRM
andCNRM
(row and column norms) commands for matrices. - Add
TRN
andTRAN
commands (matrix transpose, with or without conjugate)
Bug fixes
- Add several missing images used by the test suite to the
git
repository, e.g. for theTVM
menu. - Fix rare bug parsing lists causing a validation error
- Fix theoretical risk of memory corruption in
det
- Solutions found by the solver no longer depend on the existence and value of global variables by the same name prior to solving
- Emit "Interrupted" error when interrupting the solver
- Fix bug comparing decimal zero with small decimal values
Improvements
- Add a section with RPL programming examples, seeded with examples from Chapter 1 of the HP50G Advanced Reference Manual.
- Add documentation about program objects, text, symbols and comments.
- Update documentation for complex numbers, e.g.
ℝ→ℂ
command. - Add documentation for
abs
- Add links to "Rules" in constant uncertainty section
- Add a few additional tests in the documentation
- Split instrumentation for the three solver algorithms.
- The solver now uses the display precision to limit the precision of the desired result, like the integrator and like HP calculators.
Video demo: https://www.youtube.com/watch?v=hj-LGN2nhzU
Release 0.9.1 "Follow" - Finances, bit-counting and constants
This release follows-up on 0.9.0 by improving the way constants are evaluated to better serve the equation library. It also adds finance-related functions, and specialized bit-counting functions.
New features
-
Add standard and relative uncertainty for all constants. For a constant like
G
, which when edited looks likeⒸG
, the standard uncertainty isⓈG
and the relative uncertainty isⓇG
. This shows asUsG
andUrG
on screen, to match common practice. -
The constants menu now contains helpers to enter constants, and for the commands
Const
,StdUnc
andRelUnc
, which generate a constant, a standard uncertainty or a relative uncertainty from a name. -
Implement precision-control functions that make it possible to adjust the result of computatoins adjusting to relative or standard uncertainty.
→Us
and→Ur
convert betwen standard and relative uncertainty.StandardRound
,RelativeRound
andPrecisionRound
round a value based on its standard or relative uncertainty, or according to the precision of some other value. -
Add bit-counting operations.
FirstBitSet
andLastBitSet
find the position of the first and last bit set in an integer value.CountBits
counts the number of bits set in an integer value. -
Add finance operations. The finance menu
TVM
now shows a solver for time value of money, with payments at beginning (TVMBeg
) or at end (TVMEnd
). TheAmort
command generates the amortization (principal, interest and balance). TheAmortTable
, a DB48x extension, generates a complete amortization table. A new setting,FinanceRounding
, a DB48x extension, sets the rounding of finance results. -
Add the
Sub
command to extract a subset of texts, lists or grobs. As an illustration, theAnagram
program was added to the demo state. As a side effect, the named variants for arithmetic operators have been renamed fromsub
,mul
anddiv
tosubtract
,multiply
anddivide
.
Bug fixes
-
Avoid possible crash when using the delete key while searching.
-
Fix a few broken (obsolete) links in the help file.
-
UVal
now works on numbers, not just on unit objects, like on HP calculators. -
Remove NewRPL names for some commands like
ToRectangular
, and replace them with the DB48x spelling.
Improvements
-
Constants are brought up to date to the latest best practice from the scientific community. This includes computing many derived constants from a smaller subset of exact constants, as well as providing standard and relative uncertainty for each constant.
-
Constant values are cached to accelerate their evaluation. This avoids having to parse and evalute constant definitions.
-
The
ConstantMenus
was reorganized with more constant categories covering dates, mathematics, chemistry, phsyics, particle masses, electromagnetism, atomic sizes, Compton scattering, magnetism, materials and computing. -
The
MathMenu
was reorganized, notably to make the exp and log functions easier to access. This merges the formerPowerMenu
andExpLogMenu
so that theMathMenu
still has less than 18 entries. -
Numerical integration now uses the refinements documented in Kahan's 1980 HP Journal article about numerical integration on the HP34. This makes it possible for example to integrate
'sin(x)/x'
over 0 to π interval. -
Numerical integration now limits its precision to the number of digits being displayed, like on HP calculators.
-
Document the difference and rationale for parsing quoted names compared to HP calculators.
Release 0.9.0 "Wilson's Dream" - Full equation library
This version integrates an extended version of the HP50G equation library that Jean Wilson has been working on for many weeks. Equations are also fully documented, with examples illustrating how to use them, and a full documentation of the variables they contain.
It also fully enables the algebraic-assisted solver, i.e. a version of the solver that attempts to isolate variables to evaluate expressions directly, which is both faster and more accurate when possible.
WARNING Equations in the current state of the library are not fully validated yet. DB48x users are invited to test them and report issues they find.
WARNING Constants used in the library are relatively accurate and have been modernized compared to the HP50G version. However, an effort is underway to compute the physical constants that are not fundamental but derived from other constants. It is expected that the numerical values returned from the equations will changeslightly as constants are udpated.
Features
- Improved equation library and documentation The equation library now features more than 650 equations, more than 700 variables, 18 sections and 158 subsections. This is roughtly twice as big as the HP50G equation library, and covers more modern aspects of science such as nuclear physics.
Bug fixes
- solver: Do not propagate errors during
isolate
When using the algebraic-assisted solver, errors raised by the internal calls toisolate
no longer manifest as solver errors. - units: Do not leave error behind in
unit::convert_to_real
This could cause spuriousInconsistent units
errors while solving. - logical: Make logical operations behave symmetrically, i.e. ensure that
#100+1
and1+#100
both return#101
. - nfunctions: Evaluate symbolic arguments symbolically and fix bugs converting arguments to decimal. The evaluation of
'∫(0;1;x+1;x)'
afterx=3
would result in a nonsensical expression'∫(0;1;4;3)'
. - integrate: Report errors in bound evaluation. An error in the evaluation of the first bound could be "erased" if the evaluation of the second bound was successful. For example, in
'∫(0;1;sin(x)/x;x)'
, theDivide by zero
error evaluating'sin(x)/x'
atx=0
is erased by the successful evaluation atx=1
that follows.
Improvements
- equations: Accept units in
isolate
This allows many equations in the equation library to successfully use the symbolic approach, improving accuracy significantly. - add/sub: Accept zero as an operand around units. An operation like
1_km+0
is now accepted, and evaluates as1_km
.
Signed-off-by: Christophe de Dinechin [email protected]
Release 0.8.11 "Accomplishment" - Towards full equation library
This release contains a number of fixes and features intended for use in the equation library being contributed by Jean Wilson
Features
- Accept library items for functionc calls. For example, the expression
'ⓁSiDensity(273_K)'
is now accepted. This function is usd in semi-conductor equations in the library. - The
Root
command now attempts symbolic solving using theIsol
command. This can lead to exact solutions for common equations. - The
SigDig
command is a DB48x extension that returns the number of significant digits in a number, i.e. the number of non-zero digits. - The
xpon
andmant
now apply to unit objects - Functions now accept assignments as input, e.g.
x=9
sqrt
gives3.0
- The equation referenced to by the
Equation
variable can now be identified using a name. - The
NxEq
command now works with quoted equations
Bug fixes
- The
ln(1E-100)
expression no longer gives aArgument outside domain
error. The error was caused by rounding during argument reduction. - Comparison between a value and a unit object now work correclty
- Arithmetic now correctly deals with dimensionless unit objects, for example in expression
'1-1000_mm/m'
, and improves the evaluation of unit expressions when adding or subtracting unit objects. - Names containing programs or functions are now evaluated as part of algebraic evaluation
- The solver now correctly processes equations wrapped in an expression.
Convert
now correclty evaluates its arguments when necessary- Assignment objects no longer cause a crash on error. For example,
x='ln(0)'
no longer crashes.
Improvements
- Improve solver heuristic when slope is small. This allows the solver to find a solution for an equation like
'tan(x)=224'
in degrees mode. - Add more recorder entries in the solver describing what is being solved.
- Move recorder entries for tests to
tests
data logger. - Tests use a larger text rendering limit
- Tests now purge the directory between examples. This prevents stray variables from influencing later tests.
- The handling of long UTF-8 sequences in tests was improved, which allows tests involving a lot of text (e.g. examples) to run faster.
Release 0.8.10 "Fire Dove" - Input and Prompt, Android preparation
The focus of this release is support for user input in programs, with the addition of the Input
and Prompt
commands. Internally, a lot of groundwork was performed towards Android builds.
New features
-
Add
Prompt
command, which programs can use to let users manipulate the stack or do other operations before resuming execution. -
In order to facilitate the use of
Prompt
, added theRun
command, which resumes execution of halted programs and otherwise evaluates the first item on the stack. The key at the left of the + key, which is labeled R/S on the DM-42 calculators, is now bound to theRun
command instead ofEvaluate
. Therefore, after aPrompt
, you can resume execution with a single key. -
Add
Input
command, which programs can use to let users enter data. The DB48x version makes it easier to enter and validate numerical data or other non-text objects, with input validators for numbers, integer values, arithmetic objects or expressions. It is also possible to use custom code to validate user input. -
Additional
Compile
variants were created to help with this user input validation, checking if the input is a number, an integer, a positive integer, a real number, a single object, a single algebraic object or an expression.
Bug fixes
-
Fixed problem with the computation of the length of the integer value being parsed if it was parsed from a text value at the end of the temporaries.
-
Emit an error from
Step
and variants if no program is being debugged. The effect was that the next program being run would halt after the first step. -
Avoid persisting beep in the simulator when two beeps were emitted rapidly in successioon.
-
Reload the user-selected keymap file after loading the state file.
Improvements
-
Change capitalization of
DTag
as a shortcut forDeleteTag
. -
Various code improvements making it easier to compile for Android. A side effect is that the simulator can now safely be started from any current directory.
-
Improve rescaling of the window in the simulator to keep the keyboard and screen larger and easier to read.
-
Improve the detection of the default simulator size for Hi-DPI screens.
-
Add documentation about matrix multiplication performance
-
Make the default memory size more consistent with the simulated device.
Release 0.8.9 "Advent" - Mostly bug fixes
This is a relatively minor release, with mostly bug fixes, but also a new, explicit syntax for hardware-accelerated floating-point.
New features
- Hardware-accelerated IEEE-754 binary floating-point values are now identified with a suffix,
D
fordouble
(64-bit),F
forfloat
(32-bit). For example,1.23
is a variable-precision decimal value,1.23D
is a 64-bit binary floating-point value, and1.23F
is a 32-bit binary floating-point value. This ensures that theHardwareFloatingPoint
setting does not change the way a program is compiled or presented, only its computations. - plot: Draw a bar on the horizontal axis for errors. This makes it easier to identify where the function is not defined.
- probabilities: Extend
COMB
andPERM
to real arguments. For real argument, the Gamma function extension of the factorial is
used with the usual expressions to compute combinations and permutations. One user remarked that some half-integer combinations of arguments, for example, directly give some common Taylor series factors with a single expression. - decimal: Add decimal to integer conversion (
R→I
) - simulator: Add
-N
option to disable sound. This is notably useful on Linux where some hardware platforms takes tens of seconds to fail, slowing down error messages. - simulator: Recognize settings on the command line. For example, you can enable the silent beep feature (flashing screen on error) by passing the
SilentBeepOn=true
parameter on the command-line. - parser: Add
PREC
alias forPrecision
.
Bug fixes
- random: Fix bias in integer version of
Random
. Using1 10 Random
would generate values1
and2
at half the frequency of other
values. - help: Do not process links that are not visible. This could cause links that had scrolled past the top of the screen to be incorrectly selected when pressing the ENTER key, even if there was an RPL code example visible on the screen.
- simplifications: Do not simplify infinities. Earlier versions would incorrectly apply a rule like
X-X=0
to the case whereX
was an infinity, giving incorrect results. This could manifest for example inComb
with decimal input returning1
for large values (as a result of dividing∞
by∞
) andDet
returning0
(as a result of subtracting∞
from∞
). - expression: Fix rendering of
derivative
,primitive
andwhere
in HP compatibility mode. This could cause programs to become unparseable, e.g. with∂X(X+1)
turning intoDERIVATIVEX(X+1)
. - expression: Do not render arity-2 commands as infix. For example,
CONVERT(X;1_m/s)
no longer renders asX CONVERT 1_m/s
. - simulator: Improve extension checks on case-independent filesystems. On such systems, files
foo.48s
andFOO.48S
are identical. The simulator could incorrectly add a second extension if the case did not match. - arcsin: Fix the incorrect computation of
arcsin(1)
. More generally, improve the way exact angles are generated by functions that require them. This allows such functions to now return non-rounded results when using angle modes such asdegrees
. Previously, a computation involving the value of theπ
constant would cause some rounding even if an exact result was possible. - Fix a rare bug in the user interface which could lead to memory corruption if a garbage collection happened at the wrong time.
- Accelerated arithmetic evaluation is now correctly disabled when the
HardwareFloatingPoint
setting changes. - Fix silent errors when
NumericalResults
is on and computations involve non-normal results (e.g. infinities). - Convert infinities correctly from hardware floating-point to decimal.
Improvements
- simulator: Return relative paths when selecting files when possible. For example, when selecting the name of a keyboard layout, a file is written on disk that used to contain the absolute path of the layout file being used. As a result, moving the simulator directory elsewhere would make the file unreadable.
- files: Automate tracking of open files. A mechanism was implemented in earlier releases to avoid opening two files at the same time, because that is a limitation of the DMCP implementation on SwissMicros calculators. That mechanism required manual maintenance by developers, and was the source of many bugs. A new mechanism replaces it that transparently manages scenarios where multiple files are open simultaneously. This should quash annoying bugs, such as one where the simulator would write state files with incorrect spelling for constants or library items.
- doc: Remove the
docol.md
section of the help. This file was inherited from newRPL documentation, and incorrectly documented existing DB48x functions, or mentioned functions that do not exist on DB48x. - grob: Accept BMP files with zero colours. Some contributors have submitted files generated by Windows tools that describe the BMP file as a bitmap with 0 colours instead of 2. These files were not loading in the helpfile. They are now read and displayed correctly.
- Hardware-accelerated floating-point arithmetic now also benefits from the accelerated dynamic dispatch.
Release 0.8.8 "Voice" - Power usage reduction
This release focuses on reducing power usage and improving reactivity, notably while running on battery.
Features
-
Cache rendered graphics and text on the stack to reduce the time spent redrawing the stack.
-
Limit the size of objects being rendered on the stack. Objects that are too large will simply render as something like
Large bignum (399 bytes)
on the stack. This is configured by two new settings,TextRenderingSizeLimit
andGraphRenderingSizeLimit
. -
Limit the size spent rendering graphical objects. There are four settings controlling the maximum time spent rendering objects graphically.
ResultGraphingSizeLimits
controls the display for the first level on the stack,StackGraphingSizeLimit
controls the display for the other levels on the stack,ShowTimeLimit
controls the display for theShow
command, andGraphingTimeLimit
controls other graphical rendering. -
Blink the battery icon when in a low-battery situation.
-
Add configurable
MinimumBatteryVoltage
to adjust the threshold for low-battery detection and automatic power-off. -
Power-related commands: The
BatteryVoltage
andPowerVoltage
read the battery and power voltage respectively. TheUSBPowered
commands detects if the calculator is running on USB power. TheLowBattery
command detects if the calculator is running low on battery. -
Detect and reject Unicode characters that look like mathematical characters, and are produced by auto-correction on Windows, notably the
-
and*
signs that look like-
and*
. This is notably useful when copy-pasting in the simulator on Windows.
Bug fixes
-
Fix
NDupN
again. While the previous release fixed whatNDupN
does, it did not fix the detection of the number of arguments, meaning thatNDupN
would incorrectly complain about missing arguments if the stack was not deep enough. -
Fix the precedence of unary
-
when in front of a parenthesized expression. For example,-(X)^2
now parses correctly. -
Disable keyboard repeat timer when no key is pressed. It was possible to trigger a condition where the keyboard repeat timer would trigger continuously if two keys had been pressed in rapid succession, keeping the CPU in a busy loop and depleting the battery unnecessarily rapidly until another key was pressed. This could also trigger incorrect long-press detections, e.g. the shift key triggering alpha mode instead of a simple shift.
-
Disable all timers when switching the calculator off. In some situations, the display refresh timer could still remain active
after the calculator had been switched off. -
RclΣ
now returns the statistics data even when theΣData
variable contains the name of a variable or file. -
The
Off
command can now be used while editing and no longer causes immediate command-line evaluation. -
Return to the first page of the catalog menus when updating it, to avoid scenarios where the catalog appeared empty
-
Return to the first page of the cartalog menu when changing directories, to avoid showing an empty variables menu in a non-empty directory.
-
Do not leave garbage on the stack after failed array arithmetic.
-
Avoid occasional test crashes due to concurrent pixmap updates in the simulator.
-
Avoid occasional spurious error on
Primitive
test due to long execution time. -
Switch to
kg
as the base unit forUBASE
instead ofg
, following the SI standard.
Improvements
-
Reduce animations more drastically while on battery power. Notably, the cursor does not blink, and menu animations are entirely disabled.
-
Rework the animation and screen refresh system to make it easier to maintain and more power-efficient while on battery.
-
Refresh the display using hardware-accelerated background refresh routines provided by the DMCP platform. This can be disabled using the
SoftwareDisplayRefresh
flag. -
Redraw the battery immediately on power change, i.e. plugging or unplugging the USB cable.
-
Updated built-in constants with latets CODATA values(contributed by Jean Wilson)
v0.8.7 "Signs" - Performance optimizations
This release focuses on performance improvements and bug fixes for issues reported by users and contributors.
Features
-
Long array operations such as matrix multiplications can now be interrupted with the EXIT key.
-
Eliminate local names from
LNAME
output. For example, if you perform a sum with a variable namedi
as an index, no longer reporti
as being a name used by the expression.. -
Implement
HEAD
andTAIL
for text objects. -
Allow constant definitions to contain expressions, which will be fully evaluated when using the
→Num
. This makes it possible now define constants using other constants, in the spirit of the more recent CODATA recommandations. -
Library management commands
Attach
,Detach
andLibs
are now implemented. These commands make it possible to reload a library entry after changing its definition on disk. While they take arguments that are similar to what HP calculators do, they are not interpreting them in the same way due to hardware differences between SwissMicros and HP calculators.
Bug fixes
-
Fix hard crash when running some RPL programs using conditional loops, local variables and/or deep recursion. The crash was caused by a non-robust check of whether the call stack needed to grow or shrink, which was replaced with a much more robust check.
-
Fixed the precedence of the unary
-
operator, so that-X^2
now parses correctly (it used to be interpretd as(-X)^2
) -
Fix a crash where an error during an array operation could cause a null pointer to be pushed on the stack.
-
The test suite now correctly reports error detected while checking the examples in the online help.
-
The multi-solver no longer considers the index variable in a sum or product as a variable to solve for. This avoids spurious errors claiming that a solution cannot be found. The same also applies other functions that take a variable name as an argument, such as
Root
,Integrate
orIsolate
. -
Fix a crash when comparing unit objects that cannot be converted from one to the other, e.g. comparing
1_m
and1_h
. -
Fix the order of commands in the build instructions for Windows.
-
Fix the
NDupN
command to duplicate an object N times. In earlier releases, it was incorrectly duplicating N objects and leaving N on the stack. -
Accept addition and subtraction between a number and a unit object where the unit can be reduced to a number, so that
'1+1_km/m'
is now a valid expression. A few additional entries in the equation library now work thanks to that fix. -
Avoid a rare crash where the error command would be corrupted when cleaning temporaries.
Improvements
-
Performance optimizations for decimal arithmetic, using 25x25 matrix multiplication as a test scenario to optimize. The performance of such multiplication was improved by about one order of magnitude, and is now comparable to DM42 performance. This was achieved in particular by making more aggressive cleanup of temporaries, by reducing the need for garbage collection, by adding a fast-tracked path for arithmetic operations when the types are the same as for the last operation, and by deferring the construction of arrays until the value of all elements are computed.
-
Add a few new sanity checks for the runtime when running on the simulator, notably to detect cases where the internal pointers are not in the expected order, and to more precisely report issues if integrity checks fail during garbage collection
-
Add locking to the garbage collected pointers list when running on the simulator, in order to improve test stability. Testing on the simulator is the one case where multiple threads may concurently access the pointers list.
-
Accelerate the tests that insert large amounts of text from source code, notably the equation parsing tests and the help examples checks. In addition, use a smarter method to insert RPL separators such as
[]
or''
, taking advantage of the fact that they are usually entered in pairs. These two improvements reduce the total runtime of the entire test suite by a factor of more than 4. -
While testing the online help examples, only report the exact section title and not all the section titles that contain the same
text. -
Systematically strip tags and assignment objects for all arithmetic operations.
-
Add a version of the
debug_printf
that automatically selects where to draw on the screen, and automatically clear what follows the printed text using a gray pattern. -
Render the DB48x TrueType font to bitmap using a more recent version of the FreeType library. This causes minor glyph differences compared to earlier releases. The test suite was adjusted accordingly.
-
Remove some of the leftover references to newRPL commands that will not be implemented or make no sense for DB48x. This work is not finished yet. The mechanism to remember which command caused a particular error was also made somewhat more efficient.
-
Consolidate the two distinct documentations of the
Root
command.
Release 0.8.6 "Daniel" - Bug fixes and optimizations
This release is mostly intended to fix a number of issues reported by users or discovered during testing.
Features
- Fancy digits are now accepted for decimal and based numbers. This means that
1.E³²
is now a valid input toStr→
, ensuring that we can parse the output of→Str
if it uses fancy characters, or that copy-paste works from the stack to the editor. - Accept array arguments for
min
andmax
, applied element-wise in the same way as addition for example. - Add
CompatibleBasedNumbers
setting to render16#AB
as#ABh
like HP calculators. - Improve protection against mismatched QSPI and PGM. Only binaries issued from the same build are now accepted. This is mostly of interest to developers, although releases that are very close to one another, like v0.8.4 and v0.8.5 were, can require this protection.
- On DM32, numbers with an explicit numerical base keep that base if it's 16, 10, 8 or 2. For example,
10#200
and#200₁₀
will display in base 10 irrespective of theBase
setting, just like#200d
. - Add
ϵ
character (Greek Lunate epsilon), which appears in some equations. - Add text alignment options to
DrawText
, making it possible to align text horizontally or vertically. See examples at end of theTexts
program inDemo.48s
- Add
UnitsSIPrefixCycle
command to set the variable with the same name to customize SI prefixes cycling for units on the command-line.
After"KMG" UnitsSIPrefixCycle
, typing theCycle
key (_×10ⁿ or EEX) with1_B
will cycle through1_KB
,1_MB
,1_GB
and back to1_B
. - Accept
u
as an alternative SI prefix for "micro-", e.g.1_us
. This is intended to allow entering of the "micro" prefix using transient alpha mode. - Add help lookup for solver variables. When in the
SolverMenu
, holding the function key for a vairable brings up the help for the corresponding variable in the equations library. - Add
SiDensity
(SIDENS
on HP) andFanning
functions to the library. These functions are used by some equations in the library. - Add
invert
alias for 1/x operation (likenegate
forneg
).
Bug fixes
- Fix unit scale cycling for multi-character units
- Fix incorrect computation of output matrix size for non-square matrices.
[[1 2]][[3 4]] +
now works. - Negation on based numbers and polynomials now works.
- Conversion of decimal values smaller than 1.0 to integer no longer crashes (this could only happen with the
RanM
command) - Render
-
for first term of polynonials if negative - On DM42, update the bases menu when cycling based numbers
- Fix parameter mixup for call to
program::run
. In theory, this could lead to programs not evaluating correctly ifNoLastArguments
setting was set, although another bug apparently made this very unlikely to be observed. - Update index footer to point to
https://48calc.org
instead of obsoletehttps://github.io
location. - Updating a
for
loop variable from within the loop now behaves like on HP calculators, and can be used to control loop exit. - Do not draw activity indicator in graphical mode. This was a regression introduced with
BusyIndicatorRefresh
. - Mark
xroot
command as implemented in thePowersMenu
- Use consistent case for variable
x
in the equations library - Do not error out comparing text values
- doc: Fix typo
latter
->letter
Improvements
- Add auto-cleaner optimizations for matrix and vector operations. This reduces the memory usage and frequency of garbage collections.
- Reduce
random
bias for integer input, e.g.-10 10 random
no longer has a +0.5 bias on average. - doc: Several updates and fixes to the documentation, notably with respect to the description of the current status, and instructions for Windows developers.
- Add
→Prg
alias for→Program
- Add the simulator minimum window size
- Add
rmdir
as an alias forpgdir
. "This is Unix". - Add
L
(uppercase) spelling for "liter" unit - doc: Avoid overlapping aliases in
Rcl/
help text by adding some
aditional text to theRcl*
help. - doc: Add documentation for
SolverMenuSolve
andSolverMenuRecall
- doc: Fix documentation for
AssignKey
- doc: Add documentation for comparisons
- doc: Remove duplicate
dup
- doc: Update documentation about
add
- doc: Refer to
CharactersMenu
andCatalog
in alpha overview - doc: Update keyboard sequences typography
- doc: Remove false claim that interactive stack is not implemented
- doc: Update implemented / unimplemented list
Signed-off-by: Christophe de Dinechin [email protected]
Release 0.8.5 "Stone" - Emergency keyboard fixups
The major changes in 0.8.4 caused some damage to keyboard handling code that require a few emergency fixes.
Bug fixes
- Fix incorrect selection of lowercase characters
- Fix the location of
exp
andlog10
in42style
andtrue42
keymaps. - Do not enter interactive stack if reaching leftmost position of the text editor.
Full Changelog: v0.8.4...v0.8.5