mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
Release calc version 2.10.3t5.45
This commit is contained in:
99
help/todo
99
help/todo
@@ -32,7 +32,9 @@ Needed enhancements
|
||||
* Figure out how to write all variables out to a file, including
|
||||
deeply nested arrays, lists, and objects.
|
||||
|
||||
* Implement pointers.
|
||||
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.
|
||||
|
||||
@@ -42,9 +44,6 @@ Needed enhancements
|
||||
* Add some kind of #include and #define facility. Perhaps use
|
||||
the C pre-processor itself?
|
||||
|
||||
* Allow one to undefine anything. Allow one to test if anything
|
||||
is defined.
|
||||
|
||||
* Support a more general input and output base mode other than
|
||||
just dec, hex or octal.
|
||||
|
||||
@@ -137,39 +136,6 @@ Needed enhancements
|
||||
could save the result of cmdnum() in a variable and later use
|
||||
it as an arg to the histval() or history() functions.
|
||||
|
||||
* Add a builtin to determine if an object as been defined.
|
||||
For example:
|
||||
|
||||
isobjdef("surd")
|
||||
|
||||
would return true if one had previously defined the
|
||||
surd object. I.e., if "obj surd {...};" had been
|
||||
executed.
|
||||
|
||||
One cannot redefine an object. If a script defines an object,
|
||||
one cannot reload it without getting lots of already defined
|
||||
errors. If two scripts needed the same object, both could
|
||||
define it and use isobjdef() to avoid redefinition problems.
|
||||
|
||||
* Add a builtin to determine if a function as been defined.
|
||||
For example:
|
||||
|
||||
isfunct("foo")
|
||||
|
||||
would return true if foo has been defined as a function.
|
||||
|
||||
* Permit one to destroy an object.
|
||||
|
||||
What if one does want to redefine an object? Consider the case
|
||||
where one it debugging a script and wants to reload it. If
|
||||
that script defines an object you are doomed. Perhaps
|
||||
destroying a object would undefine all of its related functions
|
||||
and values?
|
||||
|
||||
* Add NAN (Not A Number) to calc. Where is it reasonable, change
|
||||
calc to process these values in way similar to that of the IEEE
|
||||
floating point.
|
||||
|
||||
* 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
|
||||
@@ -202,32 +168,12 @@ Needed enhancements
|
||||
fold output. Another option should be to append a trailing
|
||||
\ on folded lines (as some symbolic packages use).
|
||||
|
||||
* 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.
|
||||
|
||||
* 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.
|
||||
|
||||
* Make the cryrand functions, or some useful subset builtin
|
||||
functions. This is needed for speed reasons.
|
||||
|
||||
The additive 55 / shuffle generators in cryrand.cal have
|
||||
been turned into the rand() builtin function. The main
|
||||
crypto / Blum-Blum-Shub generators still need to be
|
||||
converted into builtin functions.
|
||||
|
||||
* Add a builtin to generate random primes using methods suggested
|
||||
by Ueli M. Maurer: "Fast Generation of Prime Numbers and
|
||||
Secure Public-Key Cryptographic Parameters" 9 Sep 1991.
|
||||
Such a builtin would be useful to generate large primes.
|
||||
|
||||
* Be sure that regress.cal tests every builtin function.
|
||||
|
||||
* Add read -once -try "filename" which would do nothing
|
||||
if "filename" was not a readable file.
|
||||
|
||||
@@ -250,3 +196,42 @@ Needed enhancements
|
||||
at by 'fizbin' and the HALF array pointer at by 'data' should be
|
||||
treated as read-only.
|
||||
|
||||
* Blocks should have the following features:
|
||||
|
||||
+ read/write to/from files (ala fread/fwrite)
|
||||
|
||||
+ misc memory functions (ala memcpy, memcmp, memset,
|
||||
memchr, etc.)
|
||||
|
||||
+ scatter and gather functions (to send every n-th octet
|
||||
to another block and to copy from n blocks, the 1st
|
||||
then 2nd then 3rd ... octets)
|
||||
|
||||
* Printing of blocks should be under the control of the
|
||||
config() interface. This should allow one to select
|
||||
from any of the following formats:
|
||||
|
||||
+ as one long string
|
||||
|
||||
+ as a series of lines (< 80 chars wide)
|
||||
|
||||
+ in od command style (offset: value value value ...)
|
||||
|
||||
+ in hex dump style (offset: val val val val ... 3hf.Uas.c)
|
||||
|
||||
* In addition one should be able to control the following
|
||||
aspects of printing blocks via the config() interface:
|
||||
|
||||
+ base (hex, octal, char, base 2)
|
||||
|
||||
+ amount of data (the first n octets or the entire block)
|
||||
|
||||
+ skipping printing of duplicate print lines (ala od)
|
||||
|
||||
+ have the ability to print the block as raw data
|
||||
|
||||
* It is overkill to have nearly everything wind up in libcalc.a.
|
||||
|
||||
One should make available a the fundimental math operations
|
||||
on ZVALUE, NUMBER and perhaps COMPLEX (without all of the
|
||||
other stuff) in a separate library.
|
||||
|
Reference in New Issue
Block a user