v0.2.2 - Optimisations and stabilisation #75
c3d
announced in
Announcements
Replies: 3 comments 4 replies
-
Already on my calc, and testing. |
Beta Was this translation helpful? Give feedback.
2 replies
-
|
Beta Was this translation helpful? Give feedback.
2 replies
-
@balta1980 Note that I already found a couple of issues with v0.2.4 (already fixed on my dev branch):
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Bugs fixed since v0.2.1:
Fixed the
while
loopThe test for the
while
loop was invertedThe location of the
end
andrepeat
keywords was swappedFixed 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
functionThe
same
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 as
abs
orcubed
.Sime fine-tuning of LEB128 handling for types
Execution time for
NQueens
measured, reduced from about 980ms downto about 530ms.
Full Changelog: v0.2.1...v0.2.2
This discussion was created from the release v0.2.2 - Optimisations and stabilisation.
Beta Was this translation helpful? Give feedback.
All reactions