Annotation of coherent/d/bin/bc/readme, revision 1.1

1.1     ! root        1: Done:
        !             2: Write library:
        !             3:        sine, cosine, exponential, log, arctangent, Bessel functions
        !             4: 
        !             5: Rewrite yytname so that += is += not ADDAB, etc.
        !             6: 
        !             7: gerror should cause the parser to enter the error state.
        !             8: 
        !             9: In the event of a syntax error (or any error in a definition for
        !            10: that matter) someone should do a remloc on the parameters and autos.
        !            11: As it is now, you can never use those variables as parameters again,
        !            12: and whats more, if you refer to their global equivalents while in
        !            13: a function, it uses the aborted local value instead.
        !            14: One solution (gross) is to simply walk the dictionary on errors and
        !            15: remove all local stuff.  Another is to have the error production
        !            16: notice that a definition is going on because retfrom is non-null
        !            17: 
        !            18: Note that currently, literal number space is never recovered.  The result
        !            19: is that if you give bc a large file with expressions to evaluate, it
        !            20: will run out of space.  Strings are also lost.
        !            21: 
        !            22: Fix exponentiation so that negative powers are implemented or reported
        !            23: as errors.  Also report sqrt(x<0) as bc error not mp fatal.
        !            24: 
        !            25: Change `foo' into "foo", damn terminal parochialists.
        !            26: 
        !            27: Recover literal storage in defunct function bodies when the function is
        !            28: being redeclared.  Requires size field in function definition so literal
        !            29: scanner can find end of function body.
        !            30: 
        !            31: Provide line numbers on syntax errors within files.
        !            32: 
        !            33: Note that currently a quit in a file simply goes to the next file.
        !            34: Note also that quit is executed when parsed, even if it is in a
        !            35: function definition or a conditional which is never true.
        !            36: These are both certainly wrong.
        !            37: 
        !            38: The reservation of A-F for digits is stupid, the recognition of A-F as
        !            39: digits in ibase==10 is doubly stupid, the local escapes to hex and octal
        !            40: are trebly stupid.  Require numbers to begin with a digit or full stop.
        !            41: 
        !            42: ibase=16; 0.FFFF; /* does not compute */
        !            43: 
        !            44: Note that the output routine gets totally confused as to what column it is
        !            45: on with tabs.  It should do it right.
        !            46: 
        !            47: Not done:
        !            48: Ask Rico and Johann if there is any way for interp and yyparse to
        !            49: work as coroutines rather than subroutines so that the interp stack
        !            50: and the yyparse stack can share memory.
        !            51:        I don't think so, except by accepting at each end of statement
        !            52:        or define.
        !            53: 
        !            54: Eventually the asserts and bogus defaults should be removed, but
        !            55: no need to do so until we have faith.
        !            56:        If anyone knew which they were.
        !            57: 
        !            58: Should bc catch interrupts.
        !            59:        Yes.
        !            60: 
        !            61: My random number spectral test blows up for n = 4.  The bug changes
        !            62: depending on the strings entered in the program and the amount of
        !            63: debugging code entered into bc.  Typically: sqrt of negative, bad
        !            64: pointer in free, segmentation violation in free.  Number of iterations
        !            65: of computation accomplished also varies as the contents of the program
        !            66: changes.  Now: smult.c: 50: assert(0 <= carry && carry <= NEFL) failed.
        !            67: 
        !            68: #include "file" should be allowed.
        !            69: #redirect "file" should be allowed.
        !            70: 
        !            71: Make more than one auto per define legal. Too hard?
        !            72: 
        !            73: Implement && and || and !. Too hard?
        !            74: 
        !            75: Fix realloc work around in bcmutil.c/select()
        !            76: 
        !            77: Merge changes from cef's msdos port.
        !            78: 
        !            79: Fix any conflicts with /usr/src/cmd/dc
        !            80: 
        !            81: Make cstream dynamically grow; must convert all the absolute loc pointers
        !            82: into cstream offsets and fix the patches so they still work.  Also shrink
        !            83: cstream after it has grown to encompass a function.
        !            84: 
        !            85: The stack should be cleaned up after bcmerr(), which should also catch
        !            86: the mpalc() call to mperr();  people should understand that they can't
        !            87: expect everything to be hunky-dory at this point, but they should be
        !            88: allowed to salvage what information they can.
        !            89: 
        !            90: Type check argument lists for functions.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.