mirror of
https://github.com/lcn2/calc.git
synced 2025-08-19 01:13:27 +03:00
Some folks might think: “you still use RCS”?!? And we will say, hey, at least we switched from SCCS to RCS back in … I think it was around 1994 ... at least we are keeping up! :-) :-) :-) Logs say that SCCS version 18 became RCS version 19 on 1994 March 18. RCS served us well. But now it is time to move on. And so we are switching to git. Calc releases produce a lot of file changes. In the 125 releases of calc since 1996, when I started managing calc releases, there have been 15473 file mods!
258 lines
9.5 KiB
Plaintext
258 lines
9.5 KiB
Plaintext
Calc Enhancement Wish List:
|
|
|
|
We welcome calc comments, suggestions, bug fixes, enhancements and
|
|
interesting calc scripts that you would like you see included in
|
|
future distributions.
|
|
|
|
To send such items, first subscribe to the calc-tester mailing list.
|
|
Then send your comments, suggestions, bug fixes, enhancements and
|
|
interesting calc scripts to the calc-tester mailing list.
|
|
|
|
To subscribe to the calc-tester mailing list, visit the following URL:
|
|
|
|
http://www.isthe.com/chongo/tech/comp/calc/calc-tester.html
|
|
|
|
This is a low volume moderated mailing list.
|
|
|
|
This mailing list replaces calc-tester at asthe dot com list.
|
|
|
|
If you need a human to help you with your mailing list subscription,
|
|
please send EMail to our special:
|
|
|
|
calc-tester-maillist-help at asthe dot com
|
|
|
|
NOTE: Remove spaces and replace 'at' with @, 'dot' with .
|
|
|
|
address. To be sure we see your EMail asking for help with your
|
|
mailing list subscription, please use the following phase in your
|
|
EMail Subject line:
|
|
|
|
calc tester mailing list help
|
|
|
|
That phrase in your subject line will help ensure your
|
|
request will get past our anti-spam filters. You may have
|
|
additional words in your subject line.
|
|
|
|
=-=
|
|
|
|
* In general use faster algorithms for large numbers when they
|
|
become known. In particular, look at better algorithms for
|
|
very large numbers -- multiply, square and mod in particular.
|
|
|
|
* Implement an autoload feature. Associate a calc resource filename
|
|
with a function or global variable. On the first reference of
|
|
such item, perform an automatic load of that file.
|
|
|
|
* Add error handling statements, so that QUITs, errors from the
|
|
'eval' function, division by zeroes, and so on can be caught.
|
|
This should be done using syntax similar to:
|
|
|
|
ONERROR statement DO statement;
|
|
|
|
Something like signal isn't versatile enough.
|
|
|
|
* Add a debugging capability so that functions can be single stepped,
|
|
breakpoints inserted, variables displayed, and so on.
|
|
|
|
* Figure out how to write all variables out to a file, including
|
|
deeply nested arrays, lists, and objects.
|
|
|
|
Add the ability to read and write a value in some binary form.
|
|
Clearly this is easy for non-neg integers. The question of
|
|
everything else is worth pondering.
|
|
|
|
* Eliminate the need for the define keyword by doing smarter parsing.
|
|
|
|
* Allow results of a command (or all commands) to be re-directed to a
|
|
file or piped into a command.
|
|
|
|
* Add some kind of #include and #define facility. Perhaps use
|
|
the C pre-processor itself?
|
|
|
|
* Support a more general input and output base mode other than
|
|
just dec, hex or octal.
|
|
|
|
* Implement a form of symbolic algebra. Work on this has already
|
|
begun. This will use backquotes to define expressions, and new
|
|
functions will be able to act on expressions. For example:
|
|
|
|
x = `hello * strlen(mom)`;
|
|
x = sub(x, `hello`, `hello + 1`);
|
|
x = sub(x, `hello`, 10, `mom`, "curds");
|
|
eval(x);
|
|
|
|
prints 55.
|
|
|
|
* Place the results of previous commands into a parallel history list.
|
|
Add a binding that returns the saved result of the command so
|
|
that one does not need to re-execute a previous command simply
|
|
to obtain its value.
|
|
|
|
If you have a command that takes a very long time to execute,
|
|
it would be nice if you could get at its result without having
|
|
to spend the time to reexecute it.
|
|
|
|
* Add a binding to delete a value from the history list.
|
|
|
|
One may need to remove a large value from the history list if
|
|
it is very large. Deleting the value would replace the history
|
|
entry with a null value.
|
|
|
|
* Add a binding to delete a command from the history list.
|
|
|
|
Since you can delete values, you might as well be able to
|
|
delete commands.
|
|
|
|
* All one to alter the size of the history list thru config().
|
|
|
|
In some cases, 256 values is too small, in others it is too large.
|
|
|
|
* Add a builtin that returns a value from the history list.
|
|
As an example:
|
|
|
|
histval(-10)
|
|
|
|
returns the 10th value on the history value list, if such
|
|
a value is in the history list (null otherwise). And:
|
|
|
|
histval(23)
|
|
|
|
return the value of the 23rd command given to calc, if
|
|
such a value is in the history list (null otherwise).
|
|
|
|
It would be very helpful to use the history values in
|
|
subsequent equations.
|
|
|
|
* Add a builtin that returns command as a string from the
|
|
history list. As an example:
|
|
|
|
history(-10)
|
|
|
|
returns a string containing the 10th command on the
|
|
history list, if a such a value is in the history list
|
|
(empty string otherwise). And:
|
|
|
|
history(23)
|
|
|
|
return the string containing the 23rd command given to calc, if
|
|
such a value is in the history list (empty string otherwise).
|
|
|
|
One could use the eval() function to re-evaluate the command.
|
|
|
|
* Allow one to optionally restore the command number to calc
|
|
prompts. When going back in the history list, indicate the
|
|
command number that is being examined.
|
|
|
|
The command number was a useful item. When one is scanning the
|
|
history list, knowing where you are is hard without it. It can
|
|
get confusing when the history list wraps or when you use
|
|
search bindings. Command numbers would be useful in
|
|
conjunction with positive args for the history() and histval()
|
|
functions as suggested above.
|
|
|
|
* Add a builtin that returns the current command number.
|
|
For example:
|
|
|
|
cmdnum()
|
|
|
|
returns the current command number.
|
|
|
|
This would allow one to tag a value in the history list. One
|
|
could save the result of cmdnum() in a variable and later use
|
|
it as an arg to the histval() or history() functions.
|
|
|
|
* Add a factoring builtin functions. Provide functions that perform
|
|
multiple polynomial quadratic sieves, elliptic curve, difference
|
|
of two squares, N-1 factoring as so on. Provide a easy general
|
|
factoring builtin (say factor(foo)) that would attempt to apply
|
|
whatever process was needed based on the value.
|
|
|
|
Factoring builtins would return a matrix of factors.
|
|
|
|
It would be handy to configure, via config(), the maximum time
|
|
that one should try to factor a number. By default the time
|
|
should be infinite. If one set the time limit to a finite
|
|
value and the time limit was exceeded, the factoring builtin
|
|
would return whatever if had found thus far, even if no new
|
|
factors had been found.
|
|
|
|
Another factoring configuration interface, via config(), that
|
|
is needed would be to direct the factoring builtins to return
|
|
as soon as a factor was found.
|
|
|
|
* Allow one to config calc break up long output lines.
|
|
|
|
The command: calc '2^100000' will produce one very long
|
|
line. Many times this is reasonable. Long output lines
|
|
are a problem for some utilities. It would be nice if one
|
|
could configure, via config(), calc to fold long lines.
|
|
|
|
By default, calc should continue to produce long lines.
|
|
|
|
One option to config should be to specify the length to
|
|
fold output. Another option should be to append a trailing
|
|
\ on folded lines (as some symbolic packages use).
|
|
|
|
* Allow one to use the READ and WRITE commands inside a function.
|
|
|
|
* Remove or increase limits on factor(), lfactor(), isprime(),
|
|
nextprime(), and prevprime(). Currently these functions cannot
|
|
search for factors > 2^32.
|
|
|
|
* Add read -once -try "filename" which would do nothing
|
|
if "filename" was not a readable file.
|
|
|
|
=-=
|
|
|
|
Calc bug reports and calc bug fixes should be sent to:
|
|
|
|
calc-bug-report at asthe dot com
|
|
|
|
NOTE: Remove spaces and replace 'at' with @, 'dot' with .
|
|
|
|
This replaces the old calc-bugs at asthe dot com address.
|
|
|
|
To be sure we see your EMail reporting a calc bug, please use the
|
|
following phase in your EMail Subject line:
|
|
|
|
calc bug report
|
|
|
|
That phrase in your subject line will help ensure your
|
|
request will get past our anti-spam filters. You may have
|
|
additional words in your subject line.
|
|
|
|
However, you may find it more helpful to simply subscribe
|
|
to the calc-tester mailing list (see above) and then to
|
|
send your report to that mailing list as a wider set calc
|
|
testers may be able to help you.
|
|
|
|
=-=
|
|
|
|
The calc web site is located at:
|
|
|
|
http://www.isthe.com/chongo/tech/comp/calc/
|
|
|
|
NOTE: The EMail address uses 'asthe', while the web site uses 'isthe'.
|
|
|
|
## Copyright (C) 1999,2014 Landon Curt Noll
|
|
##
|
|
## Calc is open software; you can redistribute it and/or modify it under
|
|
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
## as published by the Free Software Foundation.
|
|
##
|
|
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
## Public License for more details.
|
|
##
|
|
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
##
|
|
## Under source code control: 1991/07/21 04:37:24
|
|
## File existed as early as: 1991
|
|
##
|
|
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
|
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|