v0.2.2 - Optimisations and stabilisation
Pre-releaseBugs fixed since v0.2.1:
-
Fixed the
while
loop
The test for thewhile
loop was inverted
The location of theend
andrepeat
keywords was swapped -
Fixed bug in detection of multiplication overflow
The computation of the factorial of 23 and up is now correct. -
Fixed bug mistakenly converting some fractions to integers
For example,2/17 INV
would return17
instead of17/2
-
Add spacing to large numbers
A number that did not fit on 64-bit would not respect spacing settings -
Repaired the test suite
Tests were setting-dependent, and would fail with default settings because
they did not take number spacing into account.
Features implemented since v0.2.1:
-
Implemented local variables, e.g.
<< -> A B C << A B - C * >> >>
Local variables are a very fast way to reference data. Internally, they are
represented by an offset to a known location, which makes them practically as
fast as stack accesses, and much faster than global variable lookups. -
Implement the
same
function
Thesame
function detects if two objects are identical.
Like the HP48, there are multiple "equality" variants:same
detects if two objects are binary-identical==
does the same, but dereference names=
is a mathematical equality (does not exist in HP48 RPL)
-
Add feature to import ASCII versions of
«
,»
and→
In .48S files, you can use<<
,>>
and->
instead. -
Implement
→List
(stack to list)
This was the last missing command to be able to execute the
HP calculator's N-queens benchmark
-
Better truncation of very large numbers when shown on stack
A very large number, like the factorial of 64, would show up truncated
at 80 digits, so the first digits shown were wrong. -
Various optimizations to make things a bit snappier, notably on battery power
-
Refactored the object model to use a simpler lookup mechanism
-
Implemented a C++ interface for arithmetic and functions, which will be
useful when implementing complex number and matrix operations, and already
simplified the code for operations such asabs
orcubed
. -
Sime fine-tuning of LEB128 handling for types
-
Execution time for
NQueens
measured, reduced from about 980ms down
to about 530ms.
-
Full Changelog: v0.2.1...v0.2.2