Streamline internals of teapot #59
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The primary proposed change here is to add a "funcall" token, so that an entire expression can be encapsulated as a single expression; then the content and iterative content just become tokens like the value and the base value, rather than the more cumbersome token vectors. This allows parse trees to be stored, simplifying evaluation and allowing future extensions (like #56).
This change will break savexdr(); there is no point in preserving it, since the world does not need another binary spreadsheet format. Keep loadxdr() working to
preserve backward compatibility.
While we are at it, add another token to a cell for future use for computed attributes. (cf. #22).
Also may as well change from doubles and ints as values to long doubles and long longs.
This is now well in progress, nearing completion. Items that must be checked prior to committing are:
A) every function in the func table works
B) go through functions of floats and make sure they deal properly with long doubles
C) go through functions of ints and make sure they are OK with long longs
D) make sure we can load old xdr files for backward compatibility
OK, I have made a pretty good pass at (B) above
And now I am in good shape on (C), so on to (A)
Hmm, have an issue clocking the sheet that needs to be debugged.
yes, definitely a cell containing 1 -> @()+1 dies with an assertion when clocked. However, debugging it is blocked by the fact that when run under the debugger, fteapot receives some strange character from the Alt key, and so there is no way to
enter the iterative content.
When I next get a chance, I will debug terminal teapot.
That close was accidental. The clock issue turned out to be minor and is fixed. I have now made at least some test to every function, so it is time to try loading a previously existing xdr file.
OK, with some difficulty got the xdr loading working. So the code just needs final review and then it can be checked in and this issue closed.