8000 Enhancement: plan for calc v3 · Issue #103 · lcn2/calc · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Enhancement: plan for calc v3 #103
Open
@lcn2

Description

@lcn2

This is a placeholder for TODO items needed to have the release calc version 3 (after calc 2.15.1.x is released and stable). Think of this TOOD list as a planned set of changes that will come with calc v3

Things TODO when starting work on calc v3

  • create calcv2 bran 8000 ch on GitHub
    See How to Create a New Branch in GitHub - What's a Branch, Anyway?
    See Creating and deleting branches within your repository

  • on master branch change calc version to 3.0.0

  • check in to ==>> master <<== branch the calc version to 3.0.0 change as a unstable release

  • use calloc(3) instead of malloc(3) were reasonable

  • assume C has const
    use const instead of CONST
    eliminate use of have_const.h

  • assume C has extern
    use extern instead of E_FUNC and EXTERN
    NOTE: address the DLL need for Cygwin compilers, so
    perhaps use external DLL instead?
    clean up decl.h

  • assume C has static
    use static instead of STATIC
    clean up decl.h

  • require <inttypes.h>
    eliminate use of have_inttypes.h

  • require <limits.h>
    eliminate use of have_limits.h

  • assume use of memmove()
    eliminate use of have_memmv.h

  • assume use of memcpy() and memset()

  • do not assume getprid()
    eliminate use of have_getprid.h
    eliminate code that depends on HAVE_GETPRID

  • require <stdbool.h>
    eliminate use of have_stdbool.h
    eliminate use of bool.h

  • require <stdint.h>
    eliminate use of have_stdint.h

  • require <stdlib.h>
    eliminate use of have_stdlib.h

  • require <strdup.h>
    eliminate use of have_strdup.h

  • require <string.h>
    eliminate use of have_string.h

  • require <unistd.h>
    eliminate use of have_unistd.h

  • require use of <stdarg.h>
    eliminate use of have_stdvs.c
    eliminate use of have_varvs.c
    remove code that depends on VARARGS being defined

  • assume use of vsnprintf() and vsnprintf()

  • require use of c17 or later C compiler
    update banned.h to ban gmtime()
    update banned.h to ban localtime()
    update banned.h to ban ctime()
    update banned.h to ban ctime_r()
    update banned.h to ban asctime()
    update banned.h to ban asctime_r()
    change chk_c.c to test for c17 or later.

  • eliminate BASEB == 16 option

  • remove any #include of calc *.h files that are not needed

  • make v_type and v_subtype an int32_t in value.h
    This will allow for number larger than 4GB in size

  • reformat C code using Xformat
    The format is TBD (perhaps discussed in a comment below)

  • test for support of 128-bit and also for 256-bit data types
    This would allow for a BASEB of 64 and 128
    See issue Enhancement: Try to support BASEB == 64 #48

  • Remove calc -O and the old classic defaults

  • Change the calc default as of the following had been set:
    config("tilde_space",1),;
    config("fraction_space",1),;
    config("complex_space",1),;

  • Support hex float constants
    A "hex float' matches the following regex: [+-]?0x[0-9a-f]+([.][0-9a-f]+)?(p[+-]?[0-9]+)?
    See issue Enhancement: support hex floats #14 for more details.

  • Document or flag as syntax error when the numerator is assumed
    When calc is given just /2 (no numerator), calc assumes a numerator of 1.
    This /x becomes equivalent of 1/x. If this a bug, then flag as a syntax error,
    otherwise if this a a feature then document under help/unexpected.
    See issue Enhancement: Document or warn when the numerator is assumed #49 for more details.

  • Change #define CONFIG_SOMETHING in config.h into an enum

  • Move to a 3-level version system
    Update README.RELEASE to use a 3 level version system.
    See issue Move to a more ordinary versioning scheme or document current scheme #113

  • Improve how someone can control where calc installs things
    Improve the documentation on how and where calc installs things.
    See issue [Msys2] It will always install to /usr regardless of whether PREFIX is set or not #108

  • Improve use of readline and the programmable completion feature
    Look into completing the names of functions, variables, and providing lists of available help files or functions
    See issue command completion? #115.

  • Add pre-defined constants to calc
    See comment 1749699647 below.
    See also comment 1751269852, comment 1751309220, and comment 1751332488

  • Release calc also as a macOS DMG for universal binary
    NOTE: A single DMG for x86_64 and Apple Silicon

  • Release calc also as a s390x RPM
    NOTE: See Support self-hosted runner on linux-s390x platform
    NOTE: See also Run-On-Arch GitHub Action

  • Release calc as a Debian ".deb" binary package
    NOTE: See Debian packaging

  • Split help/command into separate help files
    Have help/read just report on the read command, for example.
    The help/command should be a concatenation of these separate help files.
    The help/command at the top should suggest help usage and help man.

  • Improve help help
    The current help/help file need to be improved, both in the order of items presented as well as to provide topics of better interest.
    Consider how man perl breaks up and names sections. This might be a useful model.

  • Add help man to print the formatted calc man page.
    Replace help usage with help man and print the formatted man page.
    Alias help calc.1 to help man.

  • Move help/functlist* outside of the help dir
    Put only help files and help/Makefile under the help/ directory.

  • Change help/Makefile to print a special help file about calc Makefiles.
    Alias help makefile to help Makefile.

  • Change help/usage and change calc -h to print information about the calc command line
    This print a short message about using the help command, and then print a typical command line usage summary.

  • Add help faq to print a calc frequently asked questions file
    Look over open and closed discussions and old Email for various FAQ ideas.

  • Explore the possibility of being able to save and restore calc history in machine ("native") form
    See comment 1754161473

  • Integrate calc with gnuplot(1)
    Come up with a good way for calc to drive gnuplot.
    See issue Enhancement: Plotting #126.

  • Rewrite the Blum-Blum-Shub pseudo-random number generator seed code in zrandom.c
    Rewrite the seed code to be a straightforward generator seeding, while maintaining backward compatibility.
    That is, no difference from a user's perspective. Fix the one known and minor calc memory leak as well.

  • Add a pipe object

Give calc the ability to perform I/O with programs it launches: I.e., core concepts relating to "pipes, forks, and I/O with other processes, etc."

See also pull request #153 that was created by @vike2000 for additional ideas.

MORE TODOs to be added over time.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    0